導讀:圖像識別中最貼近我們生活的可能就是 OCR 技術了。在金融行業銀行流水,以及紙質圖片等在業務流程中極爲重要,上一期技術沙龍我們對OCR深度學習技術做了分享,但在OCR技術的實際應用中,還需要將OCR識別的座標塊排列組合,轉化爲目標結構,從而形成有效的可分析的數據,OCR識別文字排版技術降低了研發成本,大幅提高開發效率。本次我們主要結合圖像識別領域文字排版方面的技術進行展開, 從抽象行列識別、模板分析,以及結構化三個方面結合落地場景給大家提供嶄新的實踐思路。
分享大綱:
1、項目背景
2、詳解版面分析技術實踐
抽象行列識別方法及其演進(俄羅斯方塊法)
模板開發
結構化
3、探索過程及總結
PPT下載鏈接: https://pan.baidu.com/s/1f_oFi3vpW7JNqfQngVLNAA 密碼: 65lt
以下爲直播視頻,可點擊回放,時長32m18s,建議在WiFi環境下觀看。
https://v.qq.com/x/page/i3135lgkagd.html
分享實錄
一、項目背景
業務端大量的新增數據來自紙質報告、電子郵件、文檔、圖像、視頻等非結構化內容。據統計,業務線對於80%的非結構化內容無法有效管理,60%的管理人員在決策時無法獲得關鍵信息,50%的信息內容無法爲公司帶來業務價值。
1.1 解決痛點
1、降本增效: 幫助客戶減少人力投入,解放傳統OCR識別場景耗費的時間,提升工作效率。
2、關鍵信息提取: 涉及多類複雜場景,理解識別文檔內容、提取關鍵信息,爲風險控制、營銷擴展、流程優化做支撐。
3、識別準確率,速度,安全性、穩定性: 基於人工智能的深度學習算法解決傳統OCR識別率低、模版固定、設備依賴的問題。
1.2 項目目標
我們的目標是,由最左側銀行單據圖像,經由AI模塊,識別出帶有座標和文字內容的半結構化數據,再經版面分析模塊解析出業務可理解的結構化數據。其中藍色框的過程就是我們今天講解的版面分析模塊過程,也就是說從AI識別結果到版面分析結果。兩種過程也是AI技術和編程技術的結合的一種表現。
1.3 版面分析現狀
前期我們對行業內版面分析技術進行調研,查閱文檔,查找一些大廠公開的解決方案,借鑑其中部分經驗,結合實際場景需求,研發人員依次突破了行列識別、模板、結構化的技術難點,並進行總結、抽象和優化,提取出一套較爲統一的OCR版面分析解決方案。
二、抽象行列識別
2.1 行列識別介紹
-
什麼是行列識別?
行列識別即將AI模塊識別回來的座標塊,依據一定方法,分辨出哪些塊,在邏輯上屬於同一行或同一列
-
爲什麼要進行行列識別?
版面分析開發中,行列識別是結構化的前提條件
-
如何進行行列識別?
在研發過程中,形成了很多行列識別方法,我們挑幾個典型方法介紹
2.2 行列識別抽象方案演進
-
方法一:按標題識別:根據已識別出的標題座標,可以覆蓋到該列範圍,再根據列順序判斷行號
-
缺點:
1、標題文字識別不準確或未識別到標題
2、標題左右粘連(即識別到一個塊中)
3、中間串行導致行號不正確
-
方法二:屬於標題法的升級版,針對多數場景,行的作用大於列,識別出行就可以進行結構化解析了,因標題過多,全識別成功率低,那麼只要知道最後一列的位置橫座標範圍,在根據縱座標排序,一旦某一塊屬於最後一列,那麼後面的就一定是屬於下一行了
-
缺點:
和方法一類似,最後一列標題也可能會識別失敗,部分模板,最後一列還可能受蓋章影響
-
方法三:根據模板數據特點,參考經驗值設置數據塊平均高度,再從標題下邊開始,把數據根據平均高度切割行
-
缺點:
行高度是經驗值,不一定靠譜,例如圖片分辨率就可能會有影響
-
方法四:投影法。把所有數據塊的豎邊投射到右側,重疊的部分即屬於同一行
-
優點:
方法效率高,可封裝,爲開發屏蔽細節
-
缺點:
有較長干擾塊,會把大部分塊包含進去,密集數據也會混亂
- 俄羅斯方塊法
1、按橫座標分別排序
2、從第一個數據塊開始放入第i列集合
3、如果新數據滿足下麪條件則數據當前列,否則換列了
3.1 在當前列所有數據的右側
3.2 和當前列中數據在縱軸上有重疊
4、依次算完每個數據塊
5、同理計算行數據
- 優點:
封裝代碼,對開發屏蔽細節
開發週期大幅縮短,從3-5天縮短爲一小時
提供可配置參數
- 缺點:
參數比較多,開發需要一定學習時間
- 問題:
1、條件2中,如果兩塊屬於重疊,但是邊緣壓的不多,可以設置閾值,看成不重疊
2、圖片上下左右可能會存在部分干擾,可以設置一些匹配規則,滿足條件的外部區域可以裁剪掉,提高識別成功率
總結:
以上各個方法各有優缺點,適應場景各不相同,目前我們使用較多的方法是俄羅斯方塊法和投影法。
這些是我們初期探索出的一些方法,相信還會有更好的方法,我們也會繼續探索。
三、模板開發
3.1 什麼是模板
模板:
- 識別的目標文件可能有不同業務線的圖片,例如流水、卡證、報告、其他單據等 – 我們叫業務類
- 每種業務線還有細化的類型,例如銀行流水中的不同銀行,保單中不同保險公司等 – 我們叫大類
- 每家銀行或保險公司的單據在不同地點、時間上還可能不是一個樣子,這每種圖片樣子叫做模板
爲了提高成功率我們需要針對模板定製化解析,要理解一點,專屬的一定比公用的好。
那麼第一步我們就需要區分圖片屬於哪種模板。
針對剛纔說的,到大類這一層比較固定,通過api層判斷。
現在來形象看下模板這層的問題。
3.2 模板舉例
看三張圖片,針對同一個大類,分別是無表格、虛線表格和有表格的,需要通過訓練驗出來,有助於模板區分
3.3 模板方法
在開發中,總結了兩種模板判斷方法,當業務模板種類較少較固定時,我們採用大標題法。
大標題判斷方法,查找已知模板在大類中存在特殊的文字表示判斷
缺點:
1、可能找不出經驗特點
2、可能識別失敗
相反第二種方法 可配置的模板匹配度方法,配置模板中各屬性的內容和座標範圍等要素,計算出匹配評分,選取分高者。
優點:
1、開發效率極高
2、對開發屏蔽了細節
缺點:
僅能區分已知模板
四、結構化
4.1 什麼是結構化
結構化是版面分析最後一步,在行列和模板識別完成後,把數據塊轉化爲目標報文結構,用於存儲、傳輸、分析等
4.2 如何結構化
通常使用標題和座標來抽取數據,但有時一些特殊的模板會使結構化難度提高
4.3 特殊模板舉例
有些圖片有水印或印章,干擾結構化結果
目前我們只解決部分水印,蓋章問題,還沒有較好統一解決方案,這也是目前我們重點要解決的課題,希望有機會同行交流交流經驗
針對上面幾種場景,我們依據經驗,採用 模式匹配方式 封裝了一些常用方法來解析和抽取關鍵數據,最後組裝數據
由於圖片質量問題,會出現缺數據塊的情況,這時即使模式匹配也無法抽取,目前我們AI模型在逐漸優化過程中,這種問題會越來越少
4.4 語義矯正
部分業務對文字準確率要求高,例如 工資 有時會識別成7資 7貝 1識別成I 0識別成o,遇到這種情況, 我們綜合利用全局及局部語義信息進行的NLP文字校正正
上期劉創老師有介紹過文字糾錯內容,這裏就不細講了,有興趣的同學可以翻回上期內容複習一下,至此版面分析技術側內容分享完畢
第12期技術沙龍: 宜信OCR技術探索與實踐|直播速記
五、總結
我們回顧一下今天講解內容。先介紹了項目背景,又從版面分析技術角度,分別介紹了行列識別五種技術方案探索過程,並重點講解了俄羅斯方塊法,然後介紹什麼是模板開發,並介紹了兩種不同的模板,最後介紹什麼是結構化及結構化遇到的問題和解決方案。至此今日分享到此結束感謝大家。
作者介紹:
劉鵬飛,宜信高級研發工程師
本文轉載自公衆號宜信技術學院(ID:CE_TECH)。
原文鏈接: