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