?

面向電力作業的工作票分割與作業信息提取方法

2023-01-14 12:10林翔宇彭博雅
電力科學與技術學報 2022年6期
關鍵詞:單元格表格像素

丘 浩,張 煒,林翔宇,蒙 亮,彭博雅

(1.廣西電網有限責任公司電力科學研究院,廣西 南寧 530023;2.廣西電網有限責任公司,廣西 南寧 530023)

電力作業中票證作業制度是保障危險性較大作業(如動火、動電、動土、進入受限空間、高處作業及檢查維修作業等)安全性的基本制度。工作票的主要內容是明確工作職責、評估危險作業時可能發生的問題以及應采取的應對措施[1-2]?;诠ぷ髌敝械淖鳂I信息,可以有效引導工作人員規避作業風險。

為了便于傳輸與打印,電力工作票文件通常以PDF(portable document format)格式存儲,需要人為將其內容錄入作業前風險評估系統。由于工作票表格結構復雜、內容繁多,人工提取表格信息不僅耗費時間,而且容易出錯。光學字符識(optical character recognition,OCR)技術是近年來得到快速發展的一種自動文本提取技術。1929年德國科學家Tausheck首次提出了OCR的概念[1]。1960年后得益于計算機技術的發展,OCR技術逐漸得以實現。近10年來,深度學習算法的發展成熟顯著地推動了OCR技術的普及應用。1998年LeCun等人提出了LeNet卷積神經網絡框架[3],并首次將深度學習算法用于識別手寫數字;為了提高卷積神經網絡的特征提取能力,Alex于2012年提出了AlexNet深度卷積神經網絡[4]。文獻[5]在AlexNet的基礎之上提出了VGGNet,增加網絡深度的同時使用了更多連續的小尺寸卷積核,可以減小模型的參數量、提高易用性;文獻[6]將字符識別看成序列識別問題,提出卷積循環神經網絡(convolutional recurrent neural network,CRNN),成為了當下的主流OCR模型之一。OCR技術的識別準確率能較好地滿足一般應用,已在交通和貿易等領域得到廣泛應用[7-8]。

與簡單的字符識別不同,實際業務文檔往往包含多個相對復雜的結構性模塊,這些模塊之間具有相對獨立而又關聯的復雜關系,從具有復雜結構的文檔中提取有效信息仍然是一項具有挑戰性的工作。除識別文字外,準確識別復雜表格結構以及單元格信息之間的匹配關系是在實際業務文檔中應用OCR技術的瓶頸。

文獻[9]提出了一種基于深度學習的表格結構識別方案,該方案可處理結構簡單的表格文件,但失敗案例也將隨結構復雜度的提升而明顯增多;文獻[10]設計了一個票據字符識別平臺,對市場交易中常見票據的采取票據版面分析后,由基于YOLO-v3的目標檢測算法提取定位票據中表格區域信息,再采取OCR引擎識別。該模型能泛化不同格式的票據圖像,但由于模型參數量龐大,需要有海量的訓練數據,對硬件性能的要求也較為苛刻。文獻[11]提出使用語義識別的方法進行電力工作票的文字識別與語義分割,但OCR字符檢測效果受表格框線影響較大并會導致識別精度低下、影響語義識別的效果。以上方法均基于“深度學習+OCR”的方法實現表格分割,但普遍存在模型訓練量大、工作票分割效果受OCR檢測準確率影響較大等問題。

本文利用電力作業工作票的復雜結構具有框線分割的特點,提出一種電力作業工作票分割與作業信息自動提取方法。該方法首先提取框線來分割單元格,然后使用OCR技術識別各單元格的工作票作業信息,最后基于正則匹配方法對識別結果進行結構化處理。與傳統方法相比,該方法不需要額外的模型訓練,運算量小,同時可有效避免表格框線對OCR檢測精度的影響,提高電力工作票的識別效率。

1 基于CRNN的光學字符識別算法

光學字符識別是模式識別領域的重要分支在圖像文檔的信息提取中有廣泛應用。傳統OCR方法采取人工設計的特征,在復雜場景中表現出識別率低、泛化能力弱等缺點[12-13]。因此,對基于深度學習的OCR方法的研究成為主流。在基于深度學習框架的OCR技術中,人工神經網絡主要用于提取字符特征以及根據特征進行分類的功能。人工神經網絡的加入省去了人工設計特征和訓練分類器的步驟,極大地簡化了人工設計的過程。

在CRNN應用于字符識別技術之前,文字識別過程分為單字切割和分類任務兩步。識別過程高度依賴于字符切分結果,誤切分對識別準確率有突出影響?;贑RNN的字符識別模型將文字識別轉化為序列學習問題,不再需要字符切割環節,在圖像的序列識別上具有良好的表現。CRNN由卷積層、循環層和轉錄層3個部分組成,其結構如圖1所示。

圖1 CRNN結構Figure 1 The network architecture of CRNN

CRNN從輸入圖像提取文字信息的流程可以分為兩部分:①特征序列提取,即在CRNN底部,由連續分布的多層卷積神經網絡自動從輸入圖像中提取特征,得到特征圖,然后轉化成特征序列;②特征序列識別,即循環神經網絡對特征序列中的每個特征向量進行學習后輸出預測標簽分布,由轉錄層從預測的標簽分布中找到概率最高的標簽序列,之后轉換成最終的識別結果。

1.1 特征序列提取

CRNN的卷積層采用卷積計算層和最大池化層的組合。卷積計算層的核心是一個二維濾波器(卷積核)。卷積操作如圖2所示,卷積核中每個元素都代表一個權重值,通過滑動濾波的方式,將輸入圖像與卷積核中的對應元素依次相乘并求和,進而確定特征圖中的元素值[14]。

圖2 卷積操作Figure 2 Convolution operation

池化層分布在卷積計算層之間,常用的池化方式有平均池化和最大池化,平均池化選取區域均值作為該區域的值,而最大池化則選取區域最大值作為該區域的值。池化操作可以去除冗余信息,壓縮數據和參數的量,對鄰域內特征進行聚合[15]。

通過卷積與池化操作會將輸入圖像所包含的原始數據映射到特征空間,形成特征圖。從卷積層輸出的特征圖無法直接送入循環層進行訓練,需要轉化為特征序列。因此,在CRNN的結構中加入了一個轉換層,在該層將特征圖中的某列像素順序連接就形成了一個特征向量,所有的特征向量就構成一個序列。

1.2 特征序列識別

區別于傳統的目標檢測方法,字符識別的目標通常是一個序列,將字符識別看成序列識別問題,需要引入循環神經網絡(recurrent neural network, RNN),RNN以序列數據為輸入,具有一定記憶能力,能夠存儲短時間內輸入數據的信息,這是因為在RNN中,當前時刻的輸出ht由當前輸入xt和前一時刻輸出ht-1共同決定,即

ht=f(Uxt+Wht-1+b)

(1)

其中,U、W是權重系數,b為偏差量,這些值都是通過訓練得到的。

在傳統的RNN中,時間累積會最終導致梯度消失現象。為克服該問題,有學者提出了一種改進后的RNN結構—長短時記憶網絡(long short-term memory,LSTM)[16],LSTM單元引入門控機制,通過遺忘門、輸入門和輸出門來控制細胞狀態,實現新信息的加入和無用信息的遺忘,其結構如圖3所示,具體步驟如下。

圖3 LSTM單元結構Figure 3 The structure of LSTM

1)由遺忘門決定細胞狀態,需要遺忘上一個狀態ht-1的部分信息,其表達式為

ft=σ(Wf[ht-1,xt]+bf)

(2)

2)經過輸入門決定細胞狀態添加哪些新的信息。輸入門的輸出可以表示為

it=σ(Wi[ht-1,xt]+bi)

(3)

(4)

(5)

4)由輸出門輸出更新后的狀態ot,并將其與處理后的細胞狀態相乘,獲得序列的識別結果ht。

ot=σ(Wo[ht-1,xt]+bo)

(6)

ht=tanhCt

(7)

在LSTM單元中,信息的傳遞是一個單向過程,因此,單個LSTM單元只能利用文字序列中某一個方向的信息。將一個LSTM向前另一個向后組合,形成一個雙向LSTM,就能同時利用上下文信息。當LSTM輸出的序列分布輸入轉錄層后,通過去冗余操作,解碼即可輸出概率最大的文字識別結果。

2 電力作業工作票分割與作業信息提取方法

本文設計的電力作業工作票分割與作業信息提取方法具體工作流程如圖4所示。該方法主要包括表格分割和作業信息提取與結構化兩部分。工作票表格分割部分包括3個模塊:工作票二值化處理、表格框線檢測和單元格分割模塊。作業信息提取與結構化部分包括:作業信息提取和信息結構化處理模塊。

圖4 電力作業工作票分割與作業信息提取流程Figure 4 The workflow of proposed method

2.1 工作票表格分割

2.1.1 工作票二值化處理模塊

輸入的工作票文件為彩色圖像,為去除圖像中的冗余信息、提高工作效率,需要對輸入的工作票圖像進行二值化處理,把大于某個臨界灰度值的像素灰度設為灰度極大值,把小于這個值的像素灰度設為灰度極小值,其公式如下:

(8)

式中g(x,y)為該點的灰度值,范圍為0~255;T為臨界灰度值(閾值),工作票文件存在的色系固定且有限,因此閾值T可設為固定值。

對工作票進行二值化處理后的效果如圖5所示。二值化僅去除對文字識別無用的部分顏色信息,不會改變圖像中的作業信息與表格結構信息。

圖5 工作票經二值化處理后的效果Figure 5 Result of binarization of work ticket

2.1.2 表格框線提取模塊

表格框線提取實際上是將表格框線像素與非框線像素分離的過程,可以采取基于數學形態學的方法來實現。數學形態學中有2種最基本的運算:腐蝕和膨脹[17]。數學形態學的運算過程需要2個對象:一個是輸入圖像,記其代表的所有像素集合為A;另一個是結構元素,記其代表的所有像素集合為B。腐蝕和膨脹運算的過程如圖6所示。

圖6 數學形態學基本運算Figure 6 Basic operations of mathematical morphology

腐蝕是一種消除邊界點,使邊界向內收縮的過程。膨脹是腐蝕的對偶運算,是一種使邊界向外擴展的過程。形態學運算可以看成是在目標圖像中檢測由結構元素所描述的特征形狀的過程,這一特性可用來檢測圖像中的表格框線。采用形態學運算的表格框線提取步驟如下:

1)使用大小為l1×1的水平結構和1×l2的垂直結構元素,對表格區域進行水平和垂直方向的腐蝕,分別獲得水平和豎直框線;2)使用大小為l1×1的水平結構和1×l2的垂直結構元素,對腐蝕過的圖像進行膨脹,更好地恢復水平和垂直表格框線;

3)將前兩步得到的框線在同一坐標系下相加,即得到完整的表格區域以及單元格頂點位置信息。

表格框線提取效果主要取決于結構元素的長度l1、l2。若l1、l2太長,在步驟1)中會腐蝕掉一些較短的表格框線,得到的表格結構不完整;若l1、l2太短,則會保留一些不必要的文字線段,對之后的識別造成干擾。因此,結構元素的長度應滿足2個條件:小于最短表格線的長度和大于單個字符的尺寸。

使用本文提出的框線提取方法處理電力作業工作票的結果如圖7所示,可以看出,2種表格框線均被完整提取,而在水平表格框線圖中存在部分非框線像素,這些像素來自于工作票文檔中的文下劃線,由于這些下劃線不會與垂直表格框線相交,因此不會影響對表格結構的判斷。

圖7 表格框線提取Figure 7 Table frame lines extraction

2.1.3 單元格分割模塊

該模塊接收來自表格框線檢測模塊輸出的表格框線和交點位置,然后對工作票表格進行單元格分割,其流程如圖8所示。具體步驟如下:

圖8 單元格分割流程Figure 8 Flow chart of cell segmentation

1)從圖片最上方開始,記錄下第1條水平表格框線上所有點的位置,從第1個點開始,以它為一個單元格的左上角頂點,然后判斷該點下方是否存在構成直線的連續像素;若存在,則該點為一個單元格的左上角頂點;2)在同一水平位置上向右尋找該單元格的右上角頂點,找到右上角頂點后,判斷該頂點下是否存在構成直線的連續像素;3)在與左上角頂點同一垂直位置的直線上尋找該單元格的左下角頂點,最后一個頂點可以根據已知的3個頂點位置推斷確定,只需驗證在對應位置是否存在第4個頂點即可;4)通過4個頂點的位置信息,可確定對應單元格所在區域;而后可將該單元格所在區域裁剪、保存并進行編號,保留其所在的行信息與列信息;5)對處在同一水平位置的頂點重復步驟1)~4)中的操作,可分割出該行所有的單元格;6)跳轉到下一行重復上述所有操作,直至所有單元格分割完畢。

單元格分割結果如圖9所示。對單元格進行編號時應當保留單元格在原表格中的行列信息,統一命名格式為“0i_0j_0k”,表示該單元格在工作票文件的第i頁,第j行,第k列。

圖9 單元格分割結果Figure 9 Result of cell segmentation

2.2 作業信息提取與結構化處理

分割單元格可將復雜表格的識別任務分解為多個單元格圖像識別子任務。對所獲得的單元格圖像只需要通過CRNN模型就能準確提取其中的作業信息。進行本次電力作業風險評估只需要全部作業信息中的部分關鍵信息(如工作任務,工作地點,單位和班組等)。為此,需要對文字識別結果進行結構化處理,通過正則表達式檢索和匹配符合所需模式(規則)的文本以提取所需信息。

3 實驗驗證

為評估所提方法的性能,訓練一個卷積循環神經網絡,并對100份實際的工作票文檔進行信息自動提取。

3.1 訓練過程

基于MXNet深度學習框架搭建CRNN模型,具體結構如表1所示。在特征提取階段共包含6層卷積計算,均采用3×3大小的卷積核,0~5層的卷積神經網絡濾波器數量分別為64、128、256、512、512、512。循環層為2層各256個隱藏單元的雙向LSTM。轉錄層使用CTC(connectionist temporal classifier)作為損失函數,對序列進行解碼。表中k表示卷積核大小,s表示卷積核滑動時的步長,p表示可用于填充的零元素列數。

表1 CRNN網絡參數Table 1 Network parameters of CRNN

從中文語料庫抽取文字后,通過計算機合成文本圖像樣本作為數據集。該數據集共包括約200萬張圖片,涵蓋了漢字、英文、數字和標點4大類共3 870個字符。按9∶1將數據集分成訓練集和測試集。在搭載Intel Xeon Gold 6240 CPU(2.50 GHz)和NVIDIA GeForce GTX 1650 顯卡(4 G)的計算機上完成訓練,訓練準確率如圖10所示。

圖10 識別準確率Figure 10 Training accuracy

3.2 實驗結果與分析

分別采用本文所提方法與市面常見的商業文字識別軟件對工作票文檔進行信息提取,如圖11所示。

圖11 文字識別結果Figure 11 Results of character recognition

在圖11(b)中,當商業軟件對標題“計劃工作時間”及其對應字段值“自2020年06月30日09時30分至2020年06月30日18時30分”進行識別時,由于沒有正確處理表格結構出現了識別錯誤,標題與字段值無法保持正確的匹配關系,導致后續數據結構化時提取“工作時間”項信息失敗。本文所提方法采用單元格分割算法將復雜表格文檔的文字識別拆分為多個單元格圖像的文字識別,識別結果正確保留了原表格中各個標題及對應字段值的邏輯關系。對該結果進行結構化處理得到的效果如圖12所示。

圖12 數據結構化處理Figure 12 Data structure processing

對100份實際工作票文檔進行信息提取的實驗統計結果表明,本文所提方法文字識別準確率達95.18%,略低于文字識別模型在測試集上的識別準確率。單次信息提取過程平均耗時為22.41 s。

4 結語

本文著眼于實際應用場景,提出了一種電力作業工作票分割與作業信息提取方法,能夠從工作票文檔復雜的表格結構中快速且準確的提取電力作業的關鍵信息,提升了電力作業風險評估效率。在框線提取過程中,由于有少量下劃線像素保留,可能會造成文字識別錯誤,因此,本文的研究工作還可以進一步完善。之后的研究也將關注自然語言處理領域[18],對識別結果進行查錯和糾錯,以進一步提升輸出的工作票信息的正確程度。

猜你喜歡
單元格表格像素
像素前線之“幻影”2000
《現代臨床醫學》來稿表格要求
合并單元格 公式巧錄入
流水賬分類統計巧實現
玩轉方格
玩轉方格
統計表格的要求
“像素”仙人掌
履歷表格這樣填
表格圖的妙用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合