IT之家 9 月 3 日消息,今日晚間,小米創(chuàng)辦人、董事長兼 CEO 雷軍通過社交媒體表示,小米工程師研發(fā)了一套表格識別算法,該算法高效準確地將圖片中的表格轉(zhuǎn)化為可編輯的 Excel 文件,大幅提升使用體驗。
同時,小米技術(shù)官方也發(fā)文對表格識別算法中的一些技術(shù)實現(xiàn)原理進行了解讀,涉及總體框架、表格檢測算法、表格識別算法、對齊算法等內(nèi)容。
以下為小米技術(shù)官方解讀內(nèi)容:
表格識別是指將圖片中的表格結(jié)構(gòu)和文字信息識別成計算機可以理解的數(shù)據(jù)格式,在辦公、商務(wù)、教育等場景中有著廣泛的實用價值,也一直是文檔分析研究中的熱點問題。圍繞這個問題,我們研發(fā)了一套表格識別算法,該算法高效準確地提取圖片中的表格,轉(zhuǎn)化為可編輯的 Excel 文件。目前算法已經(jīng)成功落地于小米 10S 系列、MIX Fold 2 等旗艦機型,大家可以從相冊-更多-表格識別,或者掃一掃進入體驗。
▲ 圖一雷軍在 MIX Fold 2 發(fā)布會上介紹小米表格識別算法
一、背景
大多數(shù)人日常辦公處理的文件,主要是表格和文檔,其中表格的重要性毋庸置疑。在各行各業(yè)的桌面辦公場景中,Excel 和 WPS 是電子表格的事實標準。我們經(jīng)常遇到這種需求:將一個表格圖片的內(nèi)容導(dǎo)入 Excel。
以前我們只能對著圖片一點點把內(nèi)容錄入 Excel,既低效又容易出錯。近年來,隨著技術(shù)的發(fā)展,OCR(光學(xué)字符識別)的可用性不斷提升,用戶可以借助 OCR 軟件,從圖片中自動提取文本信息。
然而對于表格場景,僅提取文字是不夠的,用戶還需反復(fù)手動復(fù)制粘貼以還原出電子表格,這仍會耗費大量時間。為此我們實現(xiàn)了一套表格圖像提取方案,它能切實提升用戶辦公效率。圖二是我們的識別效果展示:
▲ 圖二表格識別效果展示
二、總體框架
圖三展示的是我們目前算法的一個總體框架圖,主要包含手機端的表格檢測算法和服務(wù)端的表格識別算法。
▲ 圖三表格識別技術(shù)框架
表格檢測算法主要是從圖片中準確的提取表格區(qū)域,并對表格進行矯正,得到平整的表格圖片以便下一步的表格識別;表格識別算法主要是從圖片中提取表格結(jié)構(gòu)和表格文字內(nèi)容,然后將這些信息有效的結(jié)合在一起,輸出可編輯的 Excel 表格。下文將詳細介紹表格檢測算法和表格識別算法。
三、表格檢測算法
表格檢測有以下難點:一方面是手機上的算法和內(nèi)存有限,另一方面是對表格檢測結(jié)果要求非常高,表格周圍往往包含其他文字,如果檢測結(jié)果不準,會對后面的識別結(jié)果造成負面影響。我們的表格檢測算法會同時檢測到表格區(qū)域和表格的四個角點,通過透視變換和我們自研的抗扭曲算法得到只有表格區(qū)域的平整表格,效果如圖四所示。
▲ 圖四表格檢測算法效果
表格檢測算法框架如圖五所示,由于算法運行在手機端,需要保證運行速度和模型大小,我們采用了一個非常輕便的一階段檢測框架,backbone 采用 shuffleNetV2;在檢測出表格框的同時,回歸出關(guān)鍵點信息,便于表格的透視矯正,并用 Wing loss 代替 L1 loss 讓關(guān)鍵點回歸更加準確;數(shù)據(jù)方面,用算法低成本地從公開數(shù)據(jù)中挖掘大量表格檢測數(shù)據(jù),顯著性地提高表格檢測效果。最終模型大小為 1M 左右,順暢地運行在小米手機上。
▲ 圖五表格檢測算法框架
四、表格識別算法
表格識別算法如圖三所示,該算法在服務(wù)端運行,主要包含的模塊有:文本檢測、文本識別、表格結(jié)構(gòu)預(yù)測、單元格匹配、對齊算法、Excel 導(dǎo)出。文本檢測識別模塊采用了我們之前已經(jīng)上線的 OCR 服務(wù),這里不再做重點介紹。下面將主要介紹表格結(jié)構(gòu)預(yù)測算法和 Cell 坐標聚合算法。數(shù)據(jù)方面,由于表格數(shù)據(jù)標注困難,我們完成了一套表格渲染工具,可以合成各種樣式的表格數(shù)據(jù),極大地降低了標注成本。
表格樣式多樣,有線的表格、無線的表格、隔段橫線表格等,并且表格中有非常多各種復(fù)雜的合并單元格出現(xiàn);另外,圖片含有陰影、光照、扭曲、變形等也增大了表格預(yù)測的難度。表格結(jié)構(gòu)預(yù)測前人有不少研究,基于傳統(tǒng)算法提取表格線,再由表格線推導(dǎo)行、列、合并單元格的信息;基于目標檢測,檢測出單元格,再用后處理方法組織單元格還原表格結(jié)構(gòu);基于語義分割,分割出表格線,然后對分割結(jié)果進行后處理還原表格結(jié)構(gòu);以上算法有一個共同的問題,后處理復(fù)雜并且魯棒性較差,通常需要針對特定表格的算法適配。
目前主流的方法是將表格用 HTML 的超文本表示,然后對 HTML 進行編碼,預(yù)測 HTML 序列和對應(yīng)的坐標信息。該方法在開源數(shù)據(jù)集上取得了不錯的效果,中國平安科技和百度也采用了這種方案,但是 HTML 的標簽過多導(dǎo)致表格結(jié)構(gòu)識別容易出錯。針對該方法的不足,我們對表格采用全新的編碼方式,僅用四個標簽就能表示任意結(jié)構(gòu)的表格,極大地提高了表格結(jié)構(gòu)識別準確率。
如圖六所示,將表格定義為 M*N 個單元格組成的矩陣,以及內(nèi)部合并單元格組成?!?”:代表普通的單元格、“1”:代表向左合并單元格、“2”:表示向上合并單元格;并且每個單元格對應(yīng)一個坐標框,以便后續(xù)把 OCR 識別的結(jié)果與之匹配。這樣定義的優(yōu)點:無人為語法規(guī)則;數(shù)據(jù)組織具有天然的二維對齊屬性,網(wǎng)絡(luò)更不容易產(chǎn)生漂移;少量標簽可以還原出任意表格結(jié)構(gòu),無開放集分類問題。
▲ 圖六表格結(jié)構(gòu)定義
我們采用了如圖七所示的表格結(jié)構(gòu)預(yù)測框架,該方法基于 cnn+transformer decoder 的圖像到序列學(xué)習(xí)網(wǎng)絡(luò),在解碼階段包含兩個預(yù)測頭,分別預(yù)測表格序列和表格 Cell 的坐標信息。
▲ 圖七表格結(jié)構(gòu)預(yù)測框架
表格結(jié)構(gòu)效果如圖八所示,表格結(jié)構(gòu)識別算法預(yù)測出每個單元格的位置信息和每個位置對應(yīng)的序列信息。圖八左右兩個圖是一一對應(yīng)的,同一種顏色的檢測框?qū)?yīng)右邊 Cell 單元格,Cell 是有順序的。
▲ 圖八表格結(jié)構(gòu)識別效果展示
表格識別在部署過程中,采用 Fastertransformer 推理框架進行加速,我們的推理速度提升了大約 20 倍,明顯改善用戶體驗。
Cell 坐標聚合算法主要是將文本檢測到的內(nèi)容與表格預(yù)測的單元格進行正確匹配,算法流程如圖九所示。文本框與單元格框進行匹配,首先匹配 IOU 最大的,如果 IOU=0,則匹配兩個框中心距最近的。如果一個單元格中包含多個文本框的結(jié)構(gòu),還要在單元格內(nèi)按照閱讀順序輸出,并實現(xiàn)智能換行從而改善用戶體驗。
▲ 圖九 Cell 坐標聚合算法流程
最終我們的算法在表格結(jié)構(gòu)提取和端到端表格還原的準確率上,均領(lǐng)先業(yè)界的主要競品。
五、對齊算法
上述算法已經(jīng)基本還原出表格信息,但是同一表格里單元格的對齊方式并不相同,可能同時存在“左對齊” “右對齊” “居中對齊”。我們設(shè)計了一套對齊算法,通過分析表格中單元格的位置信息實現(xiàn)自動對齊,完全還原出真實表格,明顯改善用戶體驗。對齊算法效果如圖十所示:
▲ 圖十 對齊算法效果
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。