一種表格圖像檢測識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像識別領(lǐng)域,特別涉及一種表格圖像檢測識別方法。
【背景技術(shù)】
[0002] 圖像識別技術(shù)是目前智能識別技術(shù)領(lǐng)域中非常重要的發(fā)展方向,圖像識別的發(fā)展 經(jīng)歷了三個階段:文字識別、數(shù)字圖像處理與識別、物體識別;其中在眾多的圖像識別技術(shù) 中,對圖像文字的識別技術(shù)顯得尤為重要,這是因為圖像文字往往比單純圖像包含更加重 要的可利用信息,文字識別一般是識別字母、數(shù)字和符號,從印刷文字識別到手寫文字識 另IJ,應(yīng)用非常廣泛。圖像識別問題的數(shù)學(xué)本質(zhì)屬于模式空間到類別空間的映射問題。目前, 在圖像識別的發(fā)展中,主要有三種識別方法:統(tǒng)計模式識別、結(jié)構(gòu)模式識別、模糊模式識別。
[0003] 隨著圖像文字的深入發(fā)展,越來越多的種類的圖像文字資料,被納入圖像文字識 別的范疇中,其中表格作為文字?jǐn)?shù)據(jù)記錄匯總最精簡表達方式,或者數(shù)據(jù)統(tǒng)計、結(jié)果分析中 最常用的表達格式,是各種數(shù)據(jù)分析工具中基礎(chǔ)工具。表格在各行各業(yè)應(yīng)用的廣泛性不言 而喻。不難看出對于表格式圖像文字識別的重要性,比如對一個企業(yè)年度業(yè)績報表,可能包 含企業(yè)年度業(yè)績中最重要的統(tǒng)計數(shù)據(jù)和分析結(jié)果,這些信息的重要性和概括性是其他任何 材料所比擬不了的,目前的網(wǎng)絡(luò)信息中充斥著各種表格資料,但是很多表格都是以圖片的 形式提供,比如各種掃描檔案文件、PDF文件,自動識別這些圖像表格資料,將圖片類型的表 格內(nèi)容還原成數(shù)字資料是將這些資料進行快速處理和分析的基礎(chǔ)。
[0004] 但是,由于表格資料本身的表格結(jié)構(gòu)特征,使得表格圖像文字的識別比一般的普 通圖像文字資料更加困難,現(xiàn)有技術(shù)中在進行圖像中文字的識別時,首先需要將圖像中的 字符串切分開,形成包含單個文字的小圖片,然后使用一定的方法對切分后的文字進行識 另IJ。而進行文字切分最常用的方法為投影法,即是將圖像文字二值化處理后,通過垂直投影 找到兩個文字之間的分界線,根據(jù)分界線將文字切分開來。由于表格的框線的存在,直接使 用傳統(tǒng)的投影發(fā)所實現(xiàn)的文字切分和識別就不太現(xiàn)實。同時由于表格本身結(jié)構(gòu)的復(fù)雜多 變,復(fù)雜多變的輪廓框線使得投影法難以實現(xiàn)將表格文字信息的切分。同時由于圖片文字 信息中的文字信息的復(fù)雜性(比如說左右結(jié)構(gòu)的的漢字),在使用投影法進行切分時,左右 結(jié)構(gòu)部件由于之間存在的間隙而容易被切分為獨立的兩部分,這不利于圖像文字信息的準(zhǔn) 確識別,面對大量的圖像表格數(shù)據(jù)的快速分析需要,亟待一種快速、完整、準(zhǔn)確的圖像表格 文字識別方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中所存在的上述不足,提供一種表格圖像檢測識 別方法,能夠快速完整的將圖像表格中的文字信息切分出來。本發(fā)明首先檢測出待識別圖 像表格中的單元格輪廓;根據(jù)單元格輪廓所對應(yīng)的四角頂點坐標(biāo)將對應(yīng)單元格中的文字信 息切分出來;通過投影法找出單元格內(nèi)每個文字塊的備用切分坐標(biāo)位置;最后通過貝葉斯 分類器對備用切分點之間的文字塊進行分類識別,實現(xiàn)文字部件,數(shù)字、字母或者標(biāo)點符號 的分類切分,在對文字的準(zhǔn)確的切分的基礎(chǔ)上,將切分出來的文字塊輸入到神經(jīng)網(wǎng)絡(luò)中完 成文字內(nèi)容的識別。
[0006] 為了實現(xiàn)上述發(fā)明目的,本發(fā)明提供以下技術(shù)方案,一種表格圖像檢測識別方法, 包含以下實現(xiàn)過程:
[0007] 將待處理圖片進行二值化處理,檢測出所述圖像表格中的單元格,將各單元格中 的內(nèi)容作為一個整體切分出來,形成對應(yīng)的子圖片;
[0008] 使用投影法找出子圖片中文字信息的備用切分點;
[0009] 通過貝葉斯分類器對所述備用切分點之間的文字信息進行判斷,找出優(yōu)化切分 點,并通過優(yōu)化切分點將圖片中的文字切分出來;
[0010] 將切分出的文字圖片輸入訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中識別出對應(yīng)的文字內(nèi)容。
[0011] 具體的,本表格圖像檢測識別方法采用以下實現(xiàn)步驟:
[0012] (1)將待處理圖像表格進行二值化處理,使用openCV圖像處理工具中的 f indcontours函數(shù)檢測出圖像表格單元格輪廓;將檢測出的單元格輪廓的點集提取出來放 置在對應(yīng)的點類中;
[0013] (2)對所述步驟(1)提取出的單元格輪廓點集,調(diào)用minAreaRect函數(shù)構(gòu)建出包含 單元格輪廓點集的面積最小的旋轉(zhuǎn)矩形區(qū)域;并提取出該旋轉(zhuǎn)矩形區(qū)域的四角頂點坐標(biāo) 點;根據(jù)所述四角頂點坐標(biāo)值將對應(yīng)單元格中的文字信息作為整體切分出來,形成對應(yīng)的 子圖片;
[0014] (3)采用投影法找出所述子圖片中文字信息的備用切分點;
[0015] (4)并通過貝葉斯分類器對所述備用切分點進行判斷找出優(yōu)化切分點,將圖片中 的文字切分出來;
[0016] (5)將切分好的文字塊圖片輸入經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)中,識別出對應(yīng)的文字內(nèi)容。
[0017] 進一步的,所述步驟(3)中,根據(jù)橫向投影和縱向投影坐標(biāo)確定每個文字的坐標(biāo)位 置,根據(jù)坐標(biāo)位置可以依次把單個文字切分出來,將子圖片中切分出來的文字按照原有的 順序進行識別,保證了子圖片中文字識別的順序和邏輯準(zhǔn)確性。
[0018] 進一步的,所述步驟(3)中對切分出來的單元格文字圖像進行側(cè)向投影,計算出一 行的非〇像素的個數(shù),并將該值放到pro jection_y類中。每一行非0像素的計算方法為:
X .,i是行數(shù),j是列數(shù),PiX(i,j)是對應(yīng)像素值,n+1是像素點的總列數(shù)。
[0019] 進一步的,所述步驟(3)中對projection_y類中的元素進行遍歷,變量k遍歷范圍 為從1開始到pro jection_y · size( )_1結(jié)束。如果pro jection_y[k] =0,pro jection_y[k+l ] >0, project ion_y[k+2]>0,則判斷k為某一行的起始切分點,并將其放到類vector〈int> top中;如果pro jection_y[k] = 0,pro jection_y[k_l] >0,pro jection_y [k_2] >0,則判斷 k為某一行的終點切分點,并將其放到類vector〈int>bottom中;top. size() = bottom, size ()?;陬恡op和bottom中的元素值即可將單元格中的文字行向切分出來,對應(yīng)的兩個坐標(biāo) 值也就是該行所有文字的上下兩個y坐標(biāo)。
[0020]進一步的,對于切分出來的每一行的文字圖像進行垂直投影,計算出一列的非0像 素的個數(shù),并將該值放到P r 0 j e c t i ο η _ X類中。每一列非0像素的計算方法為: 是列數(shù),i是行數(shù),pix(i,j)是對應(yīng)像素值,m+1像素點的總行數(shù)。 L〇〇21」
進一步的,對pro jection_x類中的元素進行遍歷,變量k遍歷范圍為從1開始到 pro jection_x .size()_l結(jié)束。如果pro ject ion_x[k] = 0,pro ject ion_x [k+Ι ] >0, projection_x[k+2]>0,則判斷k為某一文字塊的起始切分點,并將其放到類vector〈int> left中;如果pro jection_x[k] = 0,pro jection_x[k_l ] >0,pro jection_x[k_2] >0,則判 斷k為某一文字塊的終點切分點,并將其放到類vector〈int>right中;遍歷完后left. size ()應(yīng)該等于right, size()。類left和right中的元素值就是單文字可選用的備用切分位置