端到端的OCR版面分析演算法
- OCR版面分析痛點
- 演算法設計初衷
- 資料增廣策略
- 兩種端到端的方案
- 1、基于xgboost的版面分析演算法
- 2、基于seq2seq的版面分析演算法
- 結語
OCR版面分析痛點
當前OCR之后的版面分析作業大家都是規則寫的,自己也深受規則之苦,看到ocr輸出的一大堆文字和坐標就頭皮發麻,最近受了chineseocr作者模板引擎的啟發,做了兩個端到端的版面分析演算法,希望能夠幫到各位ocrer,github 鏈接

演算法設計初衷
最開始的想法是在檢測網路上增加類別判斷,預測位置的同時加上box類別的判斷,但是這樣通用性就大大降低了,違背不干預原始的OCR演算法的初衷,版面分析的演算法應該和OCR演算法無縫銜接,所以模型輸入應該是OCR輸出的box坐標和相應文本,
基于此,延伸出兩個思路,一個是忽略box間的位置關系,直接將box坐標和文本編碼,送入分類器,即基于xgboost的分類方案,另一個考慮box間的相互關系,將版面分析當成一種翻譯任務,即基于seq2seq的翻譯方案
資料增廣策略
其次標注資料不能太多,如果標注投入過大就有些得不償失了,演算法設計初衷就是希望只標注一些具有代表性的版面,因此增廣策略就顯得特別重要,增廣策略有以下幾條:
- 隨機擾動檢測框坐標點1~3個像素
- 隨機切分檢測框,并隨機拆分文本
- 隨機替換 數字、日期等文本內容
- 隨機丟棄3~5檢測框

兩種端到端的方案
1、基于xgboost的版面分析演算法
- 編碼方案
- 文本使用doc2vec無監督訓練句向量50dim(可選)
- 文本的數字比例、英文比例、符號比例、其他比例4dim
- box坐標點8dim
- 模型輸出
- onehot編碼
2、基于seq2seq的版面分析演算法
- 編碼方案
- 文本使用doc2vec無監督訓練句向量100dim
- box坐標點因為維度過小,做了維度拉伸8dim*8
- 模型輸出
- onehot編碼
- 模型修改
- 不用teacher forcing
- 解碼輸入: 對應Box編碼 + Attention向量
結語
兩種方案目前在發票的版面分析中都取得了不錯的結果,其中xgboost的方案在版式比較固定的時候表現比較適用,seq2seq的方案在任意拍照場景中比較適用,需要注意的是,如果文字檢測把一些無關的文字和關鍵欄位框到一起的話,還需要稍微做些后處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/203213.html
標籤:其他
