呂志剛,李亮亮,王洪喜,王 鵬,李曉艷
(1.西安工業(yè)大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710021;2.西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710021)
在軍工、航空航天等部門,早期的機(jī)械表格類檔案大多以紙質(zhì)版形式存在,不但不便于存儲(chǔ)、檢索、運(yùn)輸,還容易受外部環(huán)境破壞和人為折損。因此,對(duì)紙質(zhì)版的機(jī)械表格類檔案進(jìn)行數(shù)字化,并對(duì)其有效元素進(jìn)行光學(xué)字符識(shí)別(Optical Character Recognition, OCR)的提取與管理,可以達(dá)到有效管理機(jī)械產(chǎn)品的目的。機(jī)械表格類檔案中的有效元素包括表格、字符、圖形等,由于制表技術(shù)的限制,早期紙質(zhì)版表格類檔案中包含不規(guī)則因素,表現(xiàn)為表格縱向直線不連續(xù)、表格框線錯(cuò)位、表格跨頁(yè)、特殊字符、油漬污染等。目前的表格提取算法主要采用傳統(tǒng)形態(tài)學(xué)和深度學(xué)習(xí)的方法,兩種方法各有優(yōu)劣。
王緒等[1]通過(guò)投影特征和結(jié)構(gòu)特征實(shí)現(xiàn)對(duì)表格文本與非文本的分類;鄺振等[2]采用投影法提取橫縱直線坐標(biāo)和構(gòu)造表格特征點(diǎn)來(lái)識(shí)別選票表格;段露等[3]采用水平投影對(duì)問(wèn)卷表格進(jìn)行行分割;XIAO等[4]采用Hough和Opencv中的形態(tài)學(xué)函數(shù)進(jìn)行表格定位分割,但存在一定的局限性。文獻(xiàn)[1-4]的算法執(zhí)行效果取決于水平框線和垂直框線的提取質(zhì)量,需要有針對(duì)地調(diào)節(jié)閾值才能取得較好的效果,因此不能實(shí)現(xiàn)自適應(yīng)閾值且魯棒性欠佳。
白偉等[5]采用基于游程和同線直線的聚類提高對(duì)復(fù)雜表格高度的識(shí)別率,但也在一定程度上加大了算法的時(shí)間開銷;BANSAL等[6]提出基于定點(diǎn)模型的表格提取算法,然而算法復(fù)雜度較高,不便于實(shí)際應(yīng)用;SHI等[7]提出一種基于表格模型的單元格檢測(cè)方法,但建立表格驅(qū)動(dòng)模型比較繁瑣,工作量較大,其可行性和魯棒性受到很大限制;LIANG等提出一種魯棒的表格識(shí)別系統(tǒng),其采用改進(jìn)的Sauvola魯棒二值化算法能夠更好地處理光照不均勻和成像模糊的圖像,并基于形態(tài)學(xué)檢測(cè)方法提取表格橫縱直線,雖然具有一定可行性,但是未對(duì)魯棒性進(jìn)行大量復(fù)雜的表格測(cè)試,且形態(tài)學(xué)檢測(cè)方法不能自適應(yīng)處理表格,存在局限性[8]。
文獻(xiàn)[9-11]為基于深度學(xué)習(xí)模型的表格識(shí)別,最終得到的是表格邊界坐標(biāo),其算法執(zhí)行依賴于硬件設(shè)備的質(zhì)量及大量數(shù)據(jù)集的前期訓(xùn)練測(cè)試,雖然在很大程度上限制了應(yīng)用的普及,但是相對(duì)傳統(tǒng)的表格布局分析方法提高了檢測(cè)準(zhǔn)確率。文獻(xiàn)[12-14]為基于深度學(xué)習(xí)模型的OCR,是本文數(shù)字化復(fù)現(xiàn)的基礎(chǔ),其中卷積遞歸神經(jīng)網(wǎng)絡(luò)(Convolutional Recurrent Neural Network,CRNN)能夠獲取不同尺寸的輸入圖像,并產(chǎn)生不同字符序列長(zhǎng)度的預(yù)測(cè),其直接在粗粒度的標(biāo)簽(如單詞)上運(yùn)行,訓(xùn)練階段不需要詳細(xì)標(biāo)注每個(gè)單獨(dú)的元素(如字符)[12-14],因此選用CRNN模型作為OCR數(shù)字化復(fù)現(xiàn)框架。
在傾斜表格校正和表格檢測(cè)過(guò)程中,針對(duì)以上算法不能自適應(yīng)處理表格、魯棒性欠佳且表格單元分割算法陳舊等問(wèn)題,改進(jìn)現(xiàn)有算法。首先,改進(jìn)傳統(tǒng)的表格圖像傾斜校正算法;其次,給出一種基于圖像統(tǒng)計(jì)學(xué)聚類的表格定位提取算法,以處理多分辨率、不同成像質(zhì)量的表格圖像;再次,給出一種基于局部小區(qū)域內(nèi)像素占比的跨頁(yè)判別拼接算法,以保證表格單元分割圖像的完整性;最后,選擇端到端的CRNN作為OCR的網(wǎng)絡(luò)框架,針對(duì)分割出來(lái)的單元格圖像識(shí)別文字信息。綜上所述,本文的主要工作總結(jié)如下:
(1)改進(jìn)傳統(tǒng)傾斜表格矯正算法。
(2)提出一種基于圖像統(tǒng)計(jì)學(xué)聚類的直線方程擬合算法,在不同分辨率和不同成像質(zhì)量的表格圖像(包括不規(guī)則表格圖像)中定位提取表格信息。
(3)提出一種基于局部小區(qū)域內(nèi)像素占比的跨頁(yè)拼接算法。
(4)提出一種基于圖像統(tǒng)計(jì)學(xué)聚類的表格交點(diǎn)提取算法,處理多分辨率、多成像質(zhì)量表格圖像和跨頁(yè)拼接圖像。
(5)在處理分割后的Cell(單元格)圖像時(shí),針對(duì)性地構(gòu)建文本信息數(shù)據(jù)集,訓(xùn)練CRNN網(wǎng)絡(luò)結(jié)構(gòu),并成功識(shí)別與復(fù)現(xiàn)文字信息。
圖1所示為本文的主算法流程,圖2所示為本文算法進(jìn)行的可視化演示。
本文基于Hough橫向直線檢測(cè)擬合的水平矯正方法進(jìn)行改進(jìn),因?yàn)橹苯硬捎肏ough橫向直線檢測(cè)會(huì)產(chǎn)生很多誤檢測(cè)直線,所以通過(guò)自定義構(gòu)造水平檢測(cè)結(jié)構(gòu)元素來(lái)自適應(yīng)提取形態(tài)學(xué)閾值的橫向直線,再用Hough重構(gòu)橫向直線,從而極大提高了橫向直線的檢測(cè)準(zhǔn)確率及矯正準(zhǔn)確性。
主要操作流程如下:
(1)將多分辨率的表格圖像進(jìn)行灰度化處理,然后進(jìn)行腐蝕膨脹,并采用大津法(OTSU)進(jìn)行二值化處理。
(2)構(gòu)造水平檢測(cè)結(jié)構(gòu)元素,再對(duì)二值化圖像進(jìn)行形態(tài)學(xué)處理,提取圖像中的橫向直線信息。
假設(shè)輸入圖像像素為rows×cols,構(gòu)造水平檢測(cè)元素height=1,width=cols/10,選擇MORPH_RECT進(jìn)行形態(tài)學(xué)檢測(cè),即可實(shí)現(xiàn)對(duì)橫向直線的自適應(yīng)判別。
(3)采用Hough重構(gòu)橫向直線,以避免形態(tài)學(xué)檢測(cè)時(shí)出現(xiàn)間斷直線,重構(gòu)后得到連續(xù)的橫向直線集合。
(4)Hough變換計(jì)算平均旋轉(zhuǎn)角度。將圖像從圖像空間變換到參數(shù)空間,變換公式為
ρ=xcosθ+ysinθ。
(1)
式中:直角坐標(biāo)系中的變量空間(x,y)為已知量,k為直線斜率;極坐標(biāo)下,以原點(diǎn)為起點(diǎn),做直線y=kx+b的垂線,ρ為原點(diǎn)到該直線的距離;設(shè)(x,y)與原點(diǎn)之間的連線為l,θ為l與X軸正向的夾角。
變換以后,圖像空間中的一個(gè)點(diǎn)在參數(shù)空間為一條曲線,而圖像空間共線的各點(diǎn)在參數(shù)空間為交于一點(diǎn)的多條曲線。對(duì)所有曲線的旋轉(zhuǎn)角度進(jìn)行累加并取平均值,得到步驟(5)所需的平均旋轉(zhuǎn)角度。
(5)計(jì)算二維旋轉(zhuǎn)仿射變換矩陣。
(6)基于原尺寸逆時(shí)針旋轉(zhuǎn)圖像角度。
本文在掃描的A4大小文檔圖像中提取表格信息,圖3所示為本文所研究的不規(guī)則表格類型??梢?jiàn),表格的橫線完整,豎線不完整,因此表格檢測(cè),特別是表單元分割比較困難,為本文解決的難題之一。
在進(jìn)行表格定位分割時(shí),需提取表格標(biāo)題1和測(cè)試時(shí)間信息,以便數(shù)字化復(fù)現(xiàn)分類存儲(chǔ)管理;因?yàn)檠芯繉?duì)象——橫向直線均連續(xù)完整,并在表格檢測(cè)之前已經(jīng)進(jìn)行了傾斜矯正,所以得到的圖像近似為橫平豎直且行間距相同。
定位分割操作流程如下:
(1)采用Harris進(jìn)行角點(diǎn)檢測(cè),預(yù)框選感興趣區(qū)域(包括本頁(yè)文檔圖像中所有表格區(qū)域和非表格區(qū)域),并進(jìn)行灰度腐蝕二值化,記錄感興趣區(qū)域縱向極值Ymax和Ymin。
(2)預(yù)提取橫向直線,并用Hough重構(gòu)直線(與傾斜矯正算法類似,不做詳細(xì)說(shuō)明),得到僅含橫向直線的二值化圖像。
(3)進(jìn)行基于擬合直線方程的表格定位分割。
設(shè)輸入的本頁(yè)文檔圖像表格列數(shù)為col,第i條橫向均值坐標(biāo)即直線方程為y=yi,可知本頁(yè)文檔行間距為yi+1-yi,因?yàn)楸疚难芯康谋砀駡D像存在標(biāo)題和時(shí)間信息,行距占據(jù)一行且表格與表格之間至少有1.5倍行間距,所以設(shè)計(jì)如下表格定位分割規(guī)則:
規(guī)則1若(yi+2-yi+1)-(yi+1-yi)≥10或(yi+1-yi)-(yi+2-yi+1)≥10(i=0,1,2,3,…),則表格之間可能存在分割直線方程。其中,yi+1為上一個(gè)表格的結(jié)束直線方程,yi+2為下一個(gè)表格的開始直線方程。
規(guī)則2若滿足規(guī)則1,且在輸出(yi+2,yi+1)開區(qū)間范圍內(nèi)不存在col條縱向直線,則確定yi=0,yi+1,yi+2為當(dāng)前輸入文檔圖像頁(yè)的表格間隔分割直線方程。
規(guī)則3若基于規(guī)則2提取標(biāo)題和時(shí)間信息(不包含不規(guī)則表格上下文信息),則得到最終確定表格中的第一條直線方程為:
y=yi=0-(yi+1-yi)×1.5,i=0;
y=yi+2-(yi+1-yi)×1.5,i>0。
(2)
修正i=0,如果式(3)成立,則yi=0=Ymin,表示表格框線中包含不完整信息;否則,yi=0=yi=0-(yi+1-yi)×1.5,i=0(包含不規(guī)則表格上下文信息)。另外,
yi=0-(yi+1-yi)×1.5-Ymin∈[(yi+1-yi)×1.5,
yi=0-(yi+1-yi)×1.5],i=0。
(3)
規(guī)則4若滿足規(guī)則3,則可以確定最后一個(gè)表格的最后一條直線方程y=yi+1(表示表格框線中未包含不完整信息)。
根據(jù)式(4)修正編號(hào)4表格的最后一條直線方程規(guī)則(包含不規(guī)則表格上下文信息):
y=yi+1+((yi+1-yi)·thresh)∈
[(yi+1-yi)·thresh,Ymax],i>0。
(4)
需要根據(jù)不規(guī)則表格殘缺類型確定閾值thresh,不規(guī)則表格的殘缺類型分為有內(nèi)容無(wú)頁(yè)碼殘缺、無(wú)內(nèi)容無(wú)頁(yè)碼殘缺、有內(nèi)容有頁(yè)碼殘缺、無(wú)內(nèi)容有頁(yè)碼殘缺。本文以有內(nèi)容無(wú)頁(yè)碼為例,介紹閾值thresh的求解過(guò)程。圖4所示為有內(nèi)容無(wú)頁(yè)碼的殘缺示意圖,根據(jù)屏幕像素尺寸和實(shí)際文檔像素比例求解閾值。從圖可知屏幕像素尺行間距為22 pixel,最后一條直線方程與表格底部的差值為20 pixel,因此thresh=20/22=0.909。其中,是否包含頁(yè)碼元素,并不影響最終閾值的確定,為滿足實(shí)際需求,設(shè)各種類型殘缺表格的thresh=0.909。
根據(jù)規(guī)則4確定的橫向直線方程,以y=yi=0和y=yi+1為上下邊界進(jìn)行處理。圖5所示的右上角外圍虛線框內(nèi)為冗余處理后的圖像,對(duì)其進(jìn)行Hough檢測(cè)處理,得到構(gòu)成橫向直線的各點(diǎn)坐標(biāo)。設(shè)坐標(biāo)最小值為xmin,最大值為xmax,為保證獲取表格縱向直線邊界,將xmin-15和xmax+15作為表格左右縱向直線的邊界。
根據(jù)本節(jié)設(shè)計(jì)的表格定位分割規(guī)則進(jìn)行掃描文檔的表格定位分割,其中第一個(gè)表格和最后一個(gè)表格中包含不規(guī)則表格的上下文信息,需要進(jìn)一步處理,將當(dāng)前分割定位的表格信息存入集合table={tablei}(i=0,1,2,3,…)。
本節(jié)主要對(duì)包含不規(guī)則表格中的殘缺表格上下文信息的表格圖像進(jìn)行處理,在殘缺表格上下文信息中剔除非表格冗余信息,保留有效表格信息,并通過(guò)判斷表格的完整性決定是否進(jìn)行跨頁(yè)拼接。設(shè)計(jì)跨頁(yè)拼接規(guī)則時(shí),首先制定跨頁(yè)判定規(guī)則,然后根據(jù)該規(guī)則判定殘缺表格,具體如下:
通過(guò)上述跨頁(yè)判定規(guī)則可以明確表格是否存在跨頁(yè)現(xiàn)象,是則拼接殘缺表格的上下文信息。根據(jù)殘缺狀態(tài)矩陣制定以下跨頁(yè)拼接規(guī)則:
規(guī)則5拼接時(shí)下一頁(yè)頂表補(bǔ)上一頁(yè)底表(當(dāng)前頁(yè)大于2且tablei=0完整)。
規(guī)則6拼接時(shí)上一頁(yè)底表與下一頁(yè)頂表寬度相同。
規(guī)則7拼接圖像數(shù)量大于等于2,在內(nèi)存允許下,可連續(xù)跨頁(yè)拼接N頁(yè)(N為正整數(shù))。
在滿足規(guī)則5~規(guī)則7的前提下,用殘缺狀態(tài)矩陣進(jìn)行跨頁(yè)拼接??珥?yè)拼接流程如圖6所示。
本文提出一種基于局部小區(qū)域內(nèi)像素占比的跨頁(yè)拼接算法,本算法可以剔除不完整表格信息并檢測(cè)完整性,根據(jù)規(guī)則5~規(guī)則7進(jìn)行跨頁(yè)拼接,圖7a所示為兩張跨頁(yè)表格,分別為上一頁(yè)底部殘缺和下一頁(yè)頂部殘缺,根據(jù)跨頁(yè)拼接算法及拼接規(guī)則進(jìn)行跨頁(yè)拼接得到圖7b。
針對(duì)跨頁(yè)拼接完畢的表格圖像,本文提出一種基于圖像統(tǒng)計(jì)學(xué)聚類的表格交點(diǎn)提取算法,以分割多種分辨率的表單元。圖8所示為本文所提表單元提取算法流程圖,其中橫向直線方程擬合算法思路與2.2節(jié)介紹的表格定位分割流程類似,此處主要針對(duì)縱向直線方程擬合進(jìn)行詳細(xì)說(shuō)明。
根據(jù)擬合得到的縱向直線方程和橫向直線方程求得表格交點(diǎn),進(jìn)而對(duì)表單元進(jìn)行分割。圖9所示為表單元分割的可視化演示。
本文設(shè)2.2節(jié)和2.3節(jié)處理后的表格圖像中的橫向直線方程集合為y={sheetyj}(j=0,1,2,3,…),該方程集合可以在橫向直線方程擬合階段得到。
基于縱向投影直方圖的縱向直線方程擬合的主要步驟如下:
(1)縱向直線重構(gòu)
該部分采用構(gòu)造縱向形態(tài)學(xué)檢測(cè)結(jié)構(gòu)元素對(duì)縱向直線進(jìn)行預(yù)提取,同時(shí)拼接連續(xù)跨N頁(yè)圖像,導(dǎo)致縱向直線檢測(cè)極為困難,本文基于橫向直線方程構(gòu)造垂直檢測(cè)結(jié)構(gòu)元素height=(sheetyj+1-sheetyj)/4,width=1,選擇MORPH_RECT進(jìn)行直線逼近并輸出檢測(cè)??梢钥闯觯Y(jié)構(gòu)體元素的height與表格實(shí)際行高建立關(guān)聯(lián),即實(shí)現(xiàn)了閾值的自適應(yīng)選擇。然后,對(duì)輸出圖像進(jìn)行Hough重構(gòu),得到僅含縱向直線的二值化圖像。
(2)縱向直線預(yù)處理
處理區(qū)域?yàn)閇sheetyj+thresh_sheet(sheetyj+1-sheetyj),sheetyj+1-thresh_sheet(sheetyj+1-sheetyj)],其中根據(jù)圖5 中A區(qū)域里的細(xì)虛框線確定thresh_sheet=4/22=0.182。
將所求處理區(qū)域的像素值賦值為0,對(duì)處理后的圖像進(jìn)行縱向直方圖投影,得到X方向的像素區(qū)域集中分布圖及X坐標(biāo)集合sheetx={sheetxi}(i=0,1,2,3,…)。
(3)對(duì)預(yù)提取的縱向坐標(biāo)集合進(jìn)行順序排序
對(duì)集合sheetx按sheetxi+1>sheetxi(i>0)進(jìn)行排序。
(4)將同一聚類中相鄰坐標(biāo)偏差較小且區(qū)間內(nèi)極差偏移量較小的一組直線作為同一類縱向直線
聚類條件為sheetxi+1-sheetxi (5)根據(jù)輸入的表格列數(shù)和波峰提取聚類數(shù) 設(shè)當(dāng)前輸入表格的列數(shù)為sheet_col,即有效聚類數(shù)為sheet_col+1。首先,提取sheetxnew集合,用集合sheetxj值代替sheetxnewi{sheetx{sheetxj}}集合中的sheetx;其次,對(duì)集合sheetxnew按sheetxnewi>sheetxnewi+1(i>0)進(jìn)行排序,在集合sheetxnew中提取sheet_col+1個(gè)集合,構(gòu)成新的集合sheetxnew_ok={sheetxnew_oki{sheetx{sheetxj}}}(i=0,1,…,sheet_col,j=0,1,2,3,…)。 (6)取聚類結(jié)果的平均值,輸出縱向區(qū)間均值坐標(biāo) 在集合sheetxnew_ok中,將同一組縱向直線的坐標(biāo)取平均值,得到縱向直線的均值坐標(biāo)sheetxsumi,并將sheetxsumi更新為集合sheetxnew_ok,最終的集合為sheetxnew_ok={sheetxsumi}(i=0,1,…,sheet_col)。 (7)根據(jù)輸出縱向均值坐標(biāo)建立縱向直線方程 根據(jù)步驟(6)輸出的確定集合構(gòu)建縱向直線方程組 y=sheetxsumi,i=0,1,…,sheet_col。 (5) (1)預(yù)處理 本文方法分割的表單元,在文字左右兩邊有非文字空白區(qū)域,因?yàn)镺CR及數(shù)字化復(fù)現(xiàn)會(huì)造成相應(yīng)的文本錯(cuò)誤,所以通過(guò)投影法進(jìn)行進(jìn)一步處理。圖10所示為表格單元格邊界處理流程圖,圖10a為輸入的分割后的單元格圖像,圖10d為輸出的處理后的單元格圖像。 (2)數(shù)字化識(shí)別 數(shù)字化識(shí)別部分采用現(xiàn)有的CRNN模型識(shí)別和提取分割表單元內(nèi)容[15],同時(shí)有針對(duì)性地構(gòu)建訓(xùn)練測(cè)試數(shù)據(jù)集。CRNN模型對(duì)文字和數(shù)字的識(shí)別效果較好,但不能很好地識(shí)別±,℃,%,≥,≤,Δ,Ψ,Ω,Φ,Υ,δ,ζ,μ,σ,ψ,ω等特殊符號(hào),甚至?xí)敵鲥e(cuò)誤符號(hào)。因此,本文研究重點(diǎn)在于如何使用CRNN模型數(shù)字化識(shí)別特殊符號(hào),在原來(lái)的文字和數(shù)字等數(shù)據(jù)集的基礎(chǔ)上增加特殊符號(hào)訓(xùn)練數(shù)據(jù)集。該數(shù)據(jù)集來(lái)源于掃描圖像,通過(guò)對(duì)大量表格圖像進(jìn)行掃描,分類提取帶有特殊符號(hào)的表單元數(shù)據(jù),然后進(jìn)行CRNN模型訓(xùn)練,初步提高對(duì)特殊符號(hào)的識(shí)別率。 本文采用C++調(diào)用Python文件進(jìn)行數(shù)字化識(shí)別,C++與Python文件交互的關(guān)鍵代碼及設(shè)置可參考個(gè)人博客[16]。 本文算法在Window 10操作系統(tǒng)、Intel(R)Core(TM)CPU i7-8700HQ 3.20 GHz 8 G內(nèi)存電腦平臺(tái)進(jìn)行開發(fā)測(cè)試,掃描設(shè)備為Alaris E1025和EPSON Perfect v19。非深度學(xué)習(xí)部分代碼采用C++語(yǔ)言,集成開發(fā)環(huán)境為QT5.9.8,編譯器采用MSVC2015,計(jì)算機(jī)視覺(jué)庫(kù)選擇Opencv3.1。配置流程可參考個(gè)人博客[17],同時(shí)調(diào)用Python 3.7.4+Tensorflow 1.13.1版本構(gòu)建的CRNN深度學(xué)習(xí)模型進(jìn)行OCR識(shí)別[15]。 本節(jié)主要測(cè)試所提改進(jìn)傾斜校正算法的可行性。在相同條件下測(cè)試本文改進(jìn)算法和原始算法,對(duì)比結(jié)果如表1所示。 因?yàn)楸疚脑诨谥本€的傾斜表格矯正中增加了直線的預(yù)提取環(huán)節(jié),以增加矯正準(zhǔn)確率,所以算法的空間復(fù)雜度相對(duì)傳統(tǒng)方法更高。 針對(duì)掃描后的多種表格圖像,在相同條件下,分別采用本文算法和傳統(tǒng)算法進(jìn)行處理,定位分割結(jié)果如圖11和圖12所示??梢?jiàn),在測(cè)試樣本中,本文算法可以實(shí)現(xiàn)100%定位分割,傳統(tǒng)算法只有正常表格和一部分測(cè)試樣本能夠準(zhǔn)確實(shí)現(xiàn)定位分割。因此,本文算法的識(shí)別率明顯優(yōu)于傳統(tǒng)基于輪廓的識(shí)別算法。 對(duì)測(cè)試樣本中的6張文檔圖像,采用本文算法和傳統(tǒng)算法進(jìn)行算法復(fù)雜度測(cè)試。 識(shí)別率計(jì)算公式為 recognition_rate= (6) 如表2中的序號(hào)1~6所示,本文算法的識(shí)別率和算法復(fù)雜度均優(yōu)于傳統(tǒng)基于輪廓的識(shí)別算法,在處理圖11中第6個(gè)表格圖像時(shí),雖然定位區(qū)表格范圍存在交叉現(xiàn)象,但是仍然能夠準(zhǔn)確定位表格,如圖11中的虛線框所示。出現(xiàn)該情況的原因是相鄰兩個(gè)表格間距離太近,將其作為個(gè)案在表2中加粗表示。同時(shí),對(duì)多種低分辨率的文檔圖像進(jìn)行測(cè)試,如表2中的序號(hào)7~10所示。分析表中數(shù)據(jù)可知,本文算法相對(duì)傳統(tǒng)算法在空間復(fù)雜度和準(zhǔn)確率上均有明顯提高,且適應(yīng)性和魯棒性更強(qiáng)。 表2 表格定位算法耗時(shí)測(cè)試 對(duì)定位提取后的第一個(gè)表格和最后一個(gè)表格進(jìn)行完整性和跨頁(yè)拼接魯棒性測(cè)試。針對(duì)最復(fù)雜的跨N頁(yè)拼接情況,采用本文提出的完整性檢測(cè)、跨頁(yè)拼接規(guī)則進(jìn)行檢測(cè)和拼接。測(cè)試條件為:依次輸入N頁(yè)不完整文檔,保證第一頁(yè)頂部和最后一頁(yè)底部完整,才能完成對(duì)跨N頁(yè)表格文檔的拼接??珥?yè)拼接結(jié)果如圖13所示,相關(guān)量化結(jié)果如表3所示。 表3 跨頁(yè)拼接算法耗時(shí)測(cè)試 跨頁(yè)拼接部分算法時(shí)間包括N頁(yè)文檔表格定位分割時(shí)間、表格頂?shù)淄暾詸z測(cè)時(shí)間和跨N頁(yè)分割表格拼接時(shí)間??珥?yè)數(shù)量越多,拼接耗時(shí)及內(nèi)存占用率越高。表格完整性對(duì)后續(xù)表單元分割和OCR數(shù)字化復(fù)現(xiàn)的質(zhì)量起決定作用。 (1)算法魯棒性和自適應(yīng)性測(cè)試 圖14所示為多種復(fù)雜表格縱向直方圖統(tǒng)計(jì)過(guò)程輸出圖,圖14d為本文算法處理后X方向的像素區(qū)域集中分布圖。當(dāng)前輸入的有效聚類數(shù)為5,取其波峰最高的前5+1個(gè)作為最終聚類輸出[18-19],對(duì)比4種不同類型的復(fù)雜表格,均能有效得到輸出聚類。 圖14e為同一條件下橫向直線與縱向直線使用傳統(tǒng)算法輸出的交點(diǎn),白色實(shí)線框中的一部分和白色虛線框中為誤檢測(cè)冗余輸出,可見(jiàn)交點(diǎn)檢測(cè)存在一定局限性,需要針對(duì)特殊圖像調(diào)節(jié)閾值,因此魯棒性和自適應(yīng)性均較差。 圖15所示為橫縱直線實(shí)際相交情況下,采用傳統(tǒng)算法未輸出交叉點(diǎn),即使采用深度學(xué)習(xí)驅(qū)動(dòng)的交點(diǎn)檢測(cè)模型也很難準(zhǔn)確檢測(cè)出表格交點(diǎn),其中表格內(nèi)部大量出現(xiàn)“十、古、王、玉、汪、工”等文字,當(dāng)字體加粗且字體直線寬度大于表格直線寬度時(shí),會(huì)誤將文字交叉點(diǎn)檢測(cè)為表格交叉點(diǎn),該方法因交點(diǎn)檢測(cè)準(zhǔn)確性較差且算法復(fù)雜度較高而缺乏可行性。 圖16所示為X方向上像素區(qū)域集中分布對(duì)比圖,其中:圖16a為準(zhǔn)備進(jìn)行表單元分割的輸入圖;圖16b為對(duì)圖16a進(jìn)行Hough重構(gòu)處理后的輸出圖;圖16c為直接對(duì)圖16b進(jìn)行縱向投影的結(jié)果,可見(jiàn)很難得到有效聚類;圖16d為采用本文聚類提取算法得到的縱向投影圖,白色虛線框?yàn)榈玫降挠行Ь垲悺=Y(jié)合圖14的實(shí)驗(yàn)測(cè)試證明,本文算法在多種復(fù)雜表格下均能準(zhǔn)確得到有效聚類,具有一定的自適應(yīng)性和魯棒性。 (2)表單元分割測(cè)試 以圖16a所示的復(fù)雜表格為例,通過(guò)直線方程的橫縱交叉,確定橫縱坐標(biāo)來(lái)分割單元格,如表4所示。 表4 單元格橫縱坐標(biāo)表 根據(jù)表4中的各交叉點(diǎn)坐標(biāo)分割單元格,分割結(jié)果為:輸出8行5列表格,共8×5=40個(gè)單元格。如圖17所示。 (3)算法復(fù)雜度測(cè)試 本節(jié)對(duì)跨N頁(yè)表格和正常表格進(jìn)行表單元分割,如表5所示。 表5 表單元分割算法復(fù)雜度測(cè)試 通過(guò)測(cè)試可知,本文提出的表單元交點(diǎn)聚類提取算法,在輸入當(dāng)前待分割表格列數(shù)后,可實(shí)現(xiàn)100%的提取分割。同時(shí),算法在多種分辨率的表格圖像提取分割中具有一定普適性,以及較強(qiáng)的自適應(yīng)和魯棒性。 因?yàn)樗崛”韱卧械奈谋緢D像不包含非文字區(qū)域,所以可直接輸入CRNN模型進(jìn)行字符的數(shù)字化識(shí)別。本文采用CRNN模型進(jìn)行構(gòu)建和訓(xùn)練可以較好地識(shí)別印刷體文字、數(shù)字、字母,采用額外增加的帶有特殊符號(hào)的樣本訓(xùn)練集進(jìn)行預(yù)訓(xùn)練能夠較好地提高對(duì)特殊符號(hào)的識(shí)別。由于初步構(gòu)建的特殊符號(hào)數(shù)據(jù)集較少,目前對(duì)單獨(dú)特殊符號(hào)只構(gòu)建了20個(gè)訓(xùn)練樣本集。 將現(xiàn)有147張紙質(zhì)版、包含有不規(guī)則表格的測(cè)試報(bào)表,在75 dpi~400 dpi等多種成像分辨率下進(jìn)行掃描脫密,隨機(jī)重復(fù)抽取20張樣本,采用網(wǎng)易、薪火、騰訊、百度、金銘、翔云、漢王、ABBYY等主流公司表格OCR進(jìn)行測(cè)試,表6所示為各指標(biāo)的迭代均值。 表6 表格識(shí)別算法定量分析 對(duì)于在線軟件開發(fā)工具包(Software Development Kit, SDK)測(cè)試,平均一頁(yè)文檔處理速度在1 s以內(nèi),其中ABBYY、漢王、騰訊等表格區(qū)域定位較好,但是對(duì)縱向存在間斷線的表格內(nèi)部結(jié)構(gòu)識(shí)別效果不佳,表格內(nèi)部數(shù)字化復(fù)現(xiàn)效果較差。本文算法可實(shí)現(xiàn)對(duì)不規(guī)則表格的識(shí)別與處理,包括殘缺表格定位、跨頁(yè)拼接、單元格提取及字符識(shí)別,但是空間復(fù)雜度略高于現(xiàn)有算法,主要是跨語(yǔ)言交互式調(diào)用時(shí)開銷較大。由于算法實(shí)現(xiàn)需要跨語(yǔ)言交互,在加載不同集成開發(fā)環(huán)境以及相互調(diào)用時(shí),會(huì)造成較大的額外時(shí)間開銷,后續(xù)可以將不同編程語(yǔ)言實(shí)現(xiàn)的功能封裝成本地SDK,以減少額外的時(shí)間開銷。本文算法的表格識(shí)別率和文本識(shí)別率可以分別達(dá)到97.32%,92.75%,主要原因是錯(cuò)位表格框線的干擾會(huì)將錯(cuò)位的框線識(shí)別為“1,I,|”。 本文提出一種基于圖像統(tǒng)計(jì)學(xué)的聚類表格定位分割和跨頁(yè)拼接算法,用于檢測(cè)表格和提取表單元。該算法旨在解決縱向豎線不完整的表格定位、表單元分割,以及跨N頁(yè)表的拼接,若將表格的實(shí)際列數(shù)作為算法的輸入量,則可顯著提高表單元格分割成功率。介紹了如何根據(jù)表格定位分割規(guī)則對(duì)不完整殘缺表格進(jìn)行定位和分割,如何根據(jù)跨頁(yè)拼接規(guī)則完整拼接跨N頁(yè)表,以及如何提取基于圖像統(tǒng)計(jì)學(xué)的聚類表格交點(diǎn)。在不同成像分辨率條件下,掃描現(xiàn)有147張存在非規(guī)則現(xiàn)象的機(jī)械零部件測(cè)試報(bào)表,并進(jìn)行表格定位、表格拼接、表單元分割、字符識(shí)別等操作,迭代測(cè)試實(shí)驗(yàn)結(jié)果表明,殘缺復(fù)雜表格的識(shí)別準(zhǔn)確率可達(dá)97.32%。本文所提算法對(duì)不完整殘缺表格定位、表單元分割及跨N頁(yè)表拼接的測(cè)試效果良好,且具有較好的自適應(yīng)性和魯棒性,但在處理存在較大污漬或手寫字符的測(cè)試報(bào)告時(shí)效果不佳,需要借助深度學(xué)習(xí)的方法,進(jìn)一步提高表格和字符的識(shí)別準(zhǔn)確率。2.5 文本信息識(shí)別
3 實(shí)驗(yàn)與分析
3.1 圖像預(yù)處理及傾斜矯正測(cè)試
3.2 表格定位分割測(cè)試
3.3 完整性檢測(cè)及跨頁(yè)拼接測(cè)試
3.4 表單元分割測(cè)試
3.5 字符識(shí)別情況
3.6 定量分析
4 結(jié)束語(yǔ)