OCR在數(shù)據(jù)搶救中的應用設計

LCC
2 評論 12552 瀏覽 21 收藏 14 分鐘

OCR是通過算法識別出圖像中的文字內(nèi)容,算是圖像識別的一個分支。但是在數(shù)據(jù)管理搶救上,也非常實用。本文作者對具體的實現(xiàn)途徑展開了梳理總結,并對過程中存在的問題進行了分析,與大家分享。

一、服務于業(yè)務:數(shù)據(jù)搶救的痛點在哪?

大數(shù)據(jù)工程的第一步是獲得數(shù)據(jù),而傳統(tǒng)行業(yè)、政府機構、科研院所中有大量的存量數(shù)據(jù),數(shù)據(jù)搶救就是把這些數(shù)據(jù)數(shù)字化,一是避免數(shù)據(jù)流失,二是提高利用價值。而存量數(shù)據(jù)中包括大量珍貴的紙質(zhì)數(shù)據(jù),比如天文地理水文測量數(shù)據(jù)、試驗數(shù)據(jù)、政府公文、古舊書籍等等。

紙質(zhì)數(shù)據(jù)如何搶救?這步很簡單,基本解決方法就是先掃描成電子版進行存儲。但光是掃描存儲就夠了嗎?我覺得是不夠的。

像前邊所說的,數(shù)據(jù)搶救的目的一是避免數(shù)據(jù)流失,二是提高利用價值,掃描存儲僅僅解決了第一個問題避免數(shù)據(jù)流失,但并沒有很好的提高數(shù)據(jù)的利用價值。紙質(zhì)數(shù)據(jù)的價值大部分在于文檔的內(nèi)容,僅僅把紙質(zhì)文檔電子化仍然不能對內(nèi)容進行進一步的檢索、分析。

所以我們把產(chǎn)品的目標聚焦在了“提高數(shù)據(jù)利用率”上。接下來就是對目標進行細化拆解。關于如何提高利用率,也就是數(shù)據(jù)如何應用,我是這樣思考的,一是從大數(shù)據(jù)角度看,如何利用統(tǒng)計分析等手段提高數(shù)據(jù)整體的價值;二是從單份文檔角度方面看,如何讓單份文檔更有價值,讓有興趣的用戶更容易找到它,讓用戶找到這份文檔后能快速了解其內(nèi)容。

  • 讓有興趣的用戶更容易找到數(shù)據(jù),也就是大家都非常熟悉的“百度一下”“谷歌一下”。紙質(zhì)數(shù)據(jù)在圖片/PDF狀態(tài)時,無法檢索到內(nèi)容,如果只根據(jù)文檔名稱檢索肯定效果會大打折扣,所以我們需要所謂的【全文檢索】。通過全文檢索,數(shù)據(jù)就有了一個出口。
  • 讓用戶找到數(shù)據(jù)后能快速了解其內(nèi)容,也就是大家讀paper時熟悉的的關鍵詞、摘要。我們可以利用【內(nèi)容分析】,比如提取文章中的關鍵詞、生成摘要等等,對信息進行概括。這樣在通過全文檢索發(fā)現(xiàn)數(shù)據(jù)后,用戶能盡可能快速對數(shù)據(jù)進行更充分的理解。

通過上邊的分析,單份數(shù)據(jù)利用的方式基本確定為【全文檢索】和【內(nèi)容分析】,而這兩種利用方法都需要對紙質(zhì)文檔中的文字進一步進行處理,這就需要我們數(shù)據(jù)搶救的好伙伴:OCR上場了。

二、功能設計

1. 業(yè)務場景

小李所在的單位有大量多年積累下來的文書,有些年代久遠的已經(jīng)出現(xiàn)了破損遺失的情況,借著大數(shù)據(jù)工程建設的契機,單位決定開展歷史數(shù)據(jù)搶救工作。

工作的第一步就是整理文書文檔,然后掃描電子化,每掃描完一份文件小李就在頁面上預覽確認沒有問題后提交,之后系統(tǒng)對文檔進行OCR識別,識別完成后小李在頁面上可以預覽查看識別結果,發(fā)現(xiàn)位置識別不準或者文字識別有誤可以進行調(diào)整,最后保存調(diào)整結果即可。

小李辛辛苦苦做完的工作體現(xiàn)在哪里呢?

同事小陳最近做的一項工作需要查閱往年數(shù)據(jù)A的相關記錄,小陳登錄系統(tǒng)直接搜索“數(shù)據(jù)A”,搜索結果顯示了所以包含“數(shù)據(jù)A”的文檔。小陳依次點擊搜索結果就可以查看文檔的摘要和關鍵詞,從而判斷該文檔是否對他有用。

大概業(yè)務的流程就是下圖這樣,我們這篇主要介紹小李的工作部分。

2. 實現(xiàn)途徑

?(1)數(shù)據(jù)采集

數(shù)據(jù)采集主要依賴于掃描紙質(zhì)文檔的掃描儀,所以這一部分是一要考慮掃描儀本身的性能,二要考慮掃描儀與整個系統(tǒng)的集成。

考慮到紙質(zhì)數(shù)據(jù)量大、裝訂方式多樣的特點,掃描儀最好滿足快速掃描、不拆書、盡量自動化的要求。調(diào)研了市面上成熟的商用掃描儀,符合要求的掃描儀大概有幾類:

  1. 專門用于古籍掃描的全自動翻書掃描儀,就一個缺點,太貴(140-180w)
  2. 需要手工翻頁,但不用拆書的高速掃描儀,這類掃描儀選擇比較多,成本也可以接受
  3. 最后一種選擇,非常有趣,是google books的開源自動掃描儀方案,需要自行組裝,有興趣的朋友可以了解一下(https://linearbookscanner.org/)

系統(tǒng)與掃描儀集成方面,就涉及到掃描好的文件怎么存儲到系統(tǒng)?大概有兩種方案:

1)我們平時用的掃描儀,一般是連接電腦(客戶端),把掃描好的文件存在本地,然后由用戶把文件手動上傳系統(tǒng)

2)網(wǎng)絡掃描儀直接通過局域網(wǎng)連接服務器,掃描好的文件直接存儲在服務器指定位置。這種網(wǎng)絡掃描儀的方案需要掃描儀支持TWAIN或者其他SDK、api,好處是多個用戶可以共用掃描儀,操作步驟也要簡化很多

結合掃描儀性能、系統(tǒng)集成和成本角度考慮,我們選擇了一款支持TWAIN接口的手動翻頁掃描儀作為數(shù)據(jù)搶救系統(tǒng)中硬件支撐。

?(2) OCR識別

首先我們需要對OCR的算法有個大概的了解,可以參考OCR在資產(chǎn)管理系統(tǒng)的應用。

用于數(shù)據(jù)搶救的OCR和用于資產(chǎn)標簽識別的OCR還是有一點區(qū)別的,資產(chǎn)標簽識別中的識別對象是【自然環(huán)境】中的【印刷文字】,而數(shù)據(jù)搶救對象是【文檔圖片】中的【印刷文字】。

但總體來說處理的流程還是預處理-文字檢測-文字識別,只不過對紙質(zhì)文檔中復雜的排版(圖片、表格、文字、頁碼、公式混排等等)的文字檢測換了種說法叫做版面分析(layout analysis),做的事情還是差不多的,除了負責檢測出文字的位置外,也要同時確圖表等其他要素的位置。

1)預處理:

預處理的目的主要是提高圖像質(zhì)量,一般用傳統(tǒng)的圖像處理手段就可以完成,現(xiàn)在很多掃描儀也會把這部分做在里邊,比如自動糾偏、去黑邊等,如果可以滿足要求,預處理部分放在數(shù)據(jù)采集時由掃描儀完成也是可以的。

2)版面分析:

先看下直觀的看下版面分析的預期效果。關于版面分析這塊我們需要確認的事情主要有3件:一是檢測的目標有哪些,二是目前算法的成熟度,三是性能方面的要求有哪些。

確定檢測對象:畢竟版面分析是個檢測問題,和檢測圖片中的貓狗沒有本質(zhì)區(qū)別,所以我們要先確定版面分析需要識別什么東西。在數(shù)據(jù)搶救中我們關心什么呢?首先文字是最重要的,第二為了定位圖片和表格,我們也需要圖片、表格的位置以及圖注、表名,有了這些信息就可以形成類似索引目錄,方便查找。所以初步確定,版面識別需要識別出文字、圖片、表格、圖注、表名五類對象。

算法成熟度:雖然傳統(tǒng)的圖像識別也可以實現(xiàn)簡單的版面分析任務,但對上圖這種非常復雜的版面分析經(jīng)過調(diào)研比較靠譜的方法還是上深度學習??梢宰霭婷娣治龅纳疃葘W習算法主要是圖像檢測一系列的,比如yolo、fastRCNN,這篇文章中的大佬是用MaskRCNN實現(xiàn)的。所以版面分析問題已經(jīng)有不少研究基礎了,但實際落地的應用可能還不是很多,其中需要優(yōu)化的工作肯定還有不少。

性能要求:算法的選擇當然要考慮實際中對硬件性能、識別速度、識別精度、召回率的要求

  1. 用在我們數(shù)據(jù)搶救中,首先系統(tǒng)是采用B/S架構,在服務器完成識別任務,所以沒有特殊硬件要求(如果是在端上實現(xiàn)就要考慮硬件對算法限制了)。
  2. 識別速度方面,目前考慮到一份紙質(zhì)數(shù)據(jù)可能有成百上千頁,所以識別時間會比較長,所以暫定以后臺任務的方式執(zhí)行,這就對識別速度方面要求也比較低(如果要求實時返回識別結果一般識別速度就要做到秒級)。
  3. 識別精度和召回率的平衡方面,由于后邊有人工校驗調(diào)整的環(huán)節(jié),所以還是可以適當提高召回率,即使識別有所誤差也可以通過人工調(diào)整彌補。

c)文字識別:

文字識別部分相對來說也比較成熟,目前兩大主流技術是 CRNN OCR 和 attention OCR。在我們的整體流程中,需要對版面識別后的文字、圖注、表名區(qū)域進行分別識別即可。

上邊技術實現(xiàn)途徑的調(diào)研主要為了證明我們設計的功能是在技術上可實現(xiàn)的,避免出現(xiàn)設計出無法實現(xiàn)的功能的尷尬情況。

3. 功能流程

正如前邊所說的,我們這里的功能只關注紙質(zhì)數(shù)據(jù)搶救工作沒有涉及到數(shù)據(jù)應用的部分,所以從掃描文件到最后人工調(diào)整OCR識別結果,整個紙質(zhì)數(shù)據(jù)搶救的功能就算完成了。對用戶來說,相較于只掃描文件并保存,多出的操作步驟就是查看識別結果并調(diào)整的部分。

4. 核心頁面設計

(OCR識別結果查看)

(OCR識別結果調(diào)整)

OCR相關的兩個頁面主要是查看識別結果和調(diào)整識別結果。查看頁面主要包括預覽文檔、用線框表示圖表區(qū)域和圖表標題、顯示OCR文字識別結果。點擊【編輯】跳轉到調(diào)整頁面,調(diào)整頁面以每頁為單位顯示,圖表框可拖拽調(diào)整、文字變?yōu)榭删庉嫚顟B(tài)。

三、小結

通過需求分析我們發(fā)現(xiàn)在數(shù)據(jù)搶救中的確存在OCR應用的必要性,然后從技術實現(xiàn)的角度進行調(diào)研驗證需求是否是可實現(xiàn)的,最后梳理整個功能流程再加上每個功能點的詳細說明/原型設計功能基本就齊活了~

 

本文由 @LCC 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載。

題圖來自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. ocr識別出來的數(shù)據(jù)是可編輯的還是不可編輯的,例如ocr識別駕駛證

    來自內(nèi)蒙古 回復
    1. 看業(yè)務需求呀
      像ocr識別駕駛證,為保證識別信息的準確性,應該要有人工校驗的過程吧(也就是可編輯

      來自北京 回復