一、項目背景
業務端大量的新增資料來自紙質報告、電子郵件、文檔、圖像、視訊等非結構化内容。據統計,業務線對于80%的非結構化内容無法有效管理,60%的管理人員在決策時無法獲得關鍵資訊,50%的資訊内容無法為公司帶來業務價值。
解決痛點
1、降本增效:幫助客戶減少人力投入,解放傳統OCR識别場景耗費的時間,提升工作效率。
2、關鍵資訊提取:涉及多類複雜場景,了解識别文檔内容、提取關鍵資訊,為風險控制、營銷擴充、流程優化做支撐。
3、識别準确率、速度、安全性、穩定性:基于人工智能的深度學習算法解決傳統OCR識别率低、模版固定、裝置依賴的問題。
項目目标

我們的目标是,由最左側銀行單據圖像,經由AI子產品,識别出帶有坐标和文字内容的半結構化資料,再經版面分析子產品解析出業務可了解的結構化資料。其中藍色框的過程就是我們今天講解的版面分析子產品過程,也就是說從AI識别結果到版面分析結果。兩種過程也是AI技術和程式設計技術的結合的一種表現。
版面分析現狀
前期我們對行業内版面分析技術進行調研,查閱文檔,查找一些大廠公開的解決方案,借鑒其中部分經驗,結合實際場景需求,研發人員依次突破了行列識别、模闆、結構化的技術難點,并進行總結、抽象和優化,提取出一套較為統一的OCR版面分析解決方案。
二、抽象行列識别
行列識别介紹
- 那麼什麼是行列識别?
行列識别即将AI子產品識别回來的坐标塊,依據一定方法,分辨出哪些塊,在邏輯上屬于同一行或同一列
- 為什麼要進行行列識别?
版面分析開發中,行列識别是結構化的前提條件
- 如何進行行列識别?
在研發過程中,形成了很多行列識别方法,我們挑幾個典型方法介紹
行列識别抽象方案演進
方法一:
按标題識别
根據已識别出的标題坐标,可以覆寫到該列範圍,再根據列順序判斷行号
缺點:
1、标題文字識别不準确或未識别到标題
2、标題左右粘連(即識别到一個塊中)
3、中間串行導緻行号不正确
方法二:
屬于标題法的更新版,針對多數場景,行的作用大于列,識别出行就可以進行結構化解析了,因标題過多,全識别成功率低,那麼隻要知道最後一列的位置橫坐标範圍,在根據縱坐标排序,一旦某一塊屬于最後一列,那麼後面的就一定是屬于下一行了
問題:
和方法一類似,最後一列标題也可能會識别失敗,部分模闆,最後一列還可能受蓋章影響
方法三:
根據模闆資料特點,參考經驗值設定資料塊平均高度,再從标題下邊開始,把資料根據平均高度切割行
行高度是經驗值,不一定靠譜,例如圖檔分辨率就可能會有影響
方法四:投影法
把所有資料塊的豎邊投射到右側,重疊的部分即屬于同一行
優點:
方法效率高,可封裝,為開發屏蔽細節
有較長幹擾塊,會把大部分塊包含進去,密集資料也會混亂
俄羅斯方塊法
1、按橫坐标分别排序
2、從第一個資料塊開始放入第i列集合
3、如果新資料滿足下面條件則資料目前列,否則換列了
3.1 在目前列所有資料的右側 3.2 和目前列中資料在縱軸上有重疊
4、依次算完每個資料塊
5、同理計算行資料
封裝代碼,對開發屏蔽細節
開發周期大幅縮短,從3-5天縮短為一小時提供可配置參數
參數比較多,開發需要一定學習時間
1、條件2中,如果兩塊屬于重疊,但是邊緣壓的不多,可以設定門檻值,看成不重疊
2、圖檔上下左右可能會存在部分幹擾,可以設定一些比對規則,滿足條件的外部區域可以裁剪掉,提高識别成功率
總結:
以上各個方法各有優缺點,适應場景各不相同,目前我們使用較多的方法是俄羅斯方塊法和投影法
這些是我們初期探索出的一些方法,相信還會有更好的方法,我們也會繼續探索
三、模闆開發
什麼是模闆
模闆:
- 識别的目标檔案可能有不同業務線的圖檔,例如流水、卡證、報告、其他單據等 – 我們叫業務類
- 每種業務線還有細化的類型,例如銀行流水中的不同銀行,保單中不同保險公司等 – 我們叫大類
- 每家銀行或保險公司的單據在不同地點、時間上還可能不是一個樣子,這每種圖檔樣子叫做模闆
為了提高成功率我們需要針對模闆定制化解析,要了解一點,專屬的一定比公用的好
那麼第一步我們就需要區分圖檔屬于那種模闆
針對剛才說的,到大類這一層比較固定,通過api層判斷
現在來形象看下模闆這層的問題
模闆舉例
看三張圖檔,針對同一個大類,分别是無表格、虛線表格和有表格的,需要通過訓練驗出來,有助于模闆區分
模闆方法
在開發中,總結了兩種模闆判斷方法
當業務模闆種類較少較固定時,我們采用大标題法
1、大标題判斷方法,查找已知模闆在大類中存在特殊的文字表示判斷
缺點:1、可能找不出經驗特點 2、可能識别失敗
相反2、可配置的模闆比對度方法配置模闆中各屬性的内容和坐标範圍等要素,計算出比對評分,選取分高者
1、開發效率極高 2、對開發屏蔽了細節
僅能區分已知模闆
四、結構化
什麼是結構化
結構化是版面分析最後一步,在行列和模闆識别完成後,把資料塊轉化為目标封包結構,用于存儲、傳輸、分析等
如何結構化
通常使用标題和坐标來抽取資料,但有時一些特殊的模闆會使結構化難度提高
特殊模闆舉例
有些圖檔有水印或印章,幹擾結構化結果
目前我們隻解決部分水印,蓋章問題,還有沒教好較統一解決方案,這也是目前我們重點要解決的課題,希望有機會同行交流交流經驗
更有這種标題分多行的
針對上面幾種場景,我們依據經驗,采用模式比對方式封裝了一些常用方法來解析和抽取關鍵資料,最後組裝資料
由于圖檔品質問題,會出現缺資料塊的情況,這時即使模式比對也無法抽取,目前我們AI模型在逐漸優化過程中,這種問題會越來越少
語義矯正
部分業務對文字準确率要求高,例如 工資 有時會識别成7資 7貝 1識别成I 0識别成o,遇到這種情況,我們綜合利用全局及局部語義資訊進行的NLP文字校正正
上期劉創老師有介紹過文字糾錯内容,這裡就不細講了,有興趣的同學可以翻回上期内容複習一下,至此版面分析技術側内容分享完畢
五、總結
我們回顧一下今天講解内容。先介紹了項目背景,又從版面分析技術角度,分别介紹了行列識别五種技術方案探索過程,并重點講解了俄羅斯方塊法,然後介紹什麼是模闆開發,并介紹了兩種不同的模闆,最後介紹什麼是結構化及結構化遇到的問題和解決方案,至此我的分享結束感謝大家。
作者:宜信技術學院 劉鵬飛