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