OCR在資產(chǎn)管理系統(tǒng)的應(yīng)用

LCC
12 評論 13420 瀏覽 69 收藏 12 分鐘

OCR是通過算法識別出圖像中的文字內(nèi)容,算是圖像識別的一個分支。那為什么固定資產(chǎn)管理系統(tǒng)中會用到 OCR 呢?

一、從業(yè)務(wù)說起:為什么需要 OCR?

為什么固定資產(chǎn)管理系統(tǒng)中會用到 OCR 呢?就得從梳理需求時遇到的問題說起。

固定資產(chǎn)的全生命周期管理的第一步是“資產(chǎn)入庫”,而入庫是一個非常繁瑣的過程,需要將大量信息錄入系統(tǒng)。通過前期調(diào)研發(fā)現(xiàn)錄入過程費時費力,還經(jīng)常出現(xiàn)錄入錯誤的問題(比如設(shè)備型號、序列碼是較長的數(shù)字、字母序列,人工錄入很容易出錯)。

有沒有辦法解決這個痛點呢?受證件識別的啟發(fā),我們想到了 OCR 輔助人工錄入,那么接下來就是調(diào)研這種方案的可行性了。

二、關(guān)于 OCR

OCR,也就是 optical character recognation(光學(xué)字符識別),是通過算法識別出圖像中的文字內(nèi)容,算是圖像識別的一個分支。OCR 對純文本的識別已經(jīng)比較成熟,識別率普遍可以達到 90%以上,百度、阿里、騰訊等各大廠都有相應(yīng)的服務(wù)可以直接調(diào)用。

1. OCR 分類

OCR 技術(shù)可以按字體類別、識別語言、識別場景進行細分,每個細分的算法有所不同,現(xiàn)在暫時還沒有非常通用的算法同時適用于多個分類。

其中:

  • 印刷體識別成熟度要高于手寫體(原因也比較好理解,印刷體比較規(guī)范,手寫體五花八門有時候人都難以辨認)。
  • 中文和西文的識別成熟度高于小語種,中英文混合識別也能比較好的解決。
  • 自然環(huán)境中的文字識別難度也要大于文檔圖片識別,因為自然環(huán)境中文字所處環(huán)境要更加復(fù)雜,文字檢測難度要大于文檔圖片。
  • 對特定格式文檔(如身份證、發(fā)票、成績單)的識別要好于自由文檔(文字、表格、圖片、公式混排)。

調(diào)研到這里,我們可以發(fā)現(xiàn):OCR 輔助資產(chǎn)入庫的需求,屬于上述分類里的【自然環(huán)境】下的【中英文混合】【印刷體】識別。目前文字識別印刷體識別已經(jīng)比較成熟,但自然環(huán)境下的拍照可能會給識別帶來一些難度,初步判斷 OCR 輔助人工進行資產(chǎn)入庫信息錄入是可行的。

2. OCR 算法理解

既然 OCR 是圖像識別的一種,那么處理的流程就和大多數(shù)圖像識別算法是一致的,即預(yù)處理-圖像檢測-圖像識別。以自然環(huán)境下的文字識別為例,OCR 算法的工作流程大概是這樣的:

預(yù)處理:文本經(jīng)過掃描或拍照后會發(fā)生形變等問題,會對識別造成干擾,預(yù)處理就是通過灰度化、二值化,傾斜校正等方式消除這種干擾,以提高識別準(zhǔn)確率。其中傾斜矯正的常見算法有投影法、hough 法等。

文字檢測:目的在于找出文字的區(qū)域,是文字識別的基礎(chǔ)。簡單背景(e.g.掃描、截屏)和復(fù)雜背景(e.g.廣告牌、說明書)下的文字檢測方法差異較大,實現(xiàn)算法可以分為傳統(tǒng) CV 算法和 DL 算法兩大類。

  • 形態(tài)學(xué)方法:通過膨脹腐蝕等操作找到文字區(qū)域,只適用于簡單背景。
  • MSER:常用的傳統(tǒng)文字檢測算法,檢測速度快,在簡單背景和部分復(fù)雜背景中適用。但背景特別復(fù)雜時,檢測效果可能較差。
  • CTPN:是 CNN 和 RNN 相結(jié)合的算法,適用于簡單和復(fù)雜背景的文字檢測,但文字傾斜時的檢測效果較差。
  • SegLink:可以用于檢測傾斜文字(但文字間隔不能太大)。
  • EAST:端到端文本檢測方法,也可用于檢測傾斜文字,檢測的準(zhǔn)確性和速度都不錯。

文字識別:文字識別又根據(jù)文字的長度分為定長(e.g.驗證碼)和不定長。不定長文字識別現(xiàn)在主要是通過 DL 算法實現(xiàn),目前兩大主流技術(shù)是 CRNN OCR 和 attention OCR。由于文字識別的特殊性,雖然其表現(xiàn)形式是圖像,但本質(zhì)是序列化的文本。所以不論是CRNN還是attention,思路其實都是用CNN提取特征,然后用RNN處理序列化,充分運用了文本圖像的所有信息。

通過對 OCR 工作流程以及主流算法的了解,我們能對后續(xù)技術(shù)實現(xiàn)有個大概的認識,和 RD battle 時候也更加有底了。

三、功能設(shè)計

1. 核心場景

最近公司采購了一批新的辦公電腦,資產(chǎn)管理部門的小方來到倉庫打算對這批電腦進行入庫登記,他拿出手機打開 app,對著每臺電腦上的標(biāo)簽進行拍照,標(biāo)簽上的信息就被識別出來填入相應(yīng)的輸入框,很快小方就完成了入庫登記的工作。

2. 業(yè)務(wù)流程

對用戶來說 OCR 識別的過程是無感的,操作上只是用拍照代替了手工填寫某些字段的步驟。

3. OCR 實現(xiàn)中的幾點考慮

1)輸入和輸出

在本需求中,OCR 算法的輸入就是用戶拍攝的照片,然后需要把算法的識別結(jié)果填寫到資產(chǎn)登記表單中相應(yīng)的輸入框中,所以需要確定 :a)識別哪些字段;b)每個字段識別出的結(jié)果。

a)識別哪些字段:綜合考慮了常見的資產(chǎn)標(biāo)簽類型,結(jié)合最開始我們遇到的問題“字母數(shù)字序列輸入容易出錯且效率低”,確定了【資產(chǎn)名稱】【型號】【SN碼】三個需要識別的字段,也就是 OCR 處理完的結(jié)果只是中間結(jié)果,后邊還需要做一個類似標(biāo)注問題的處理(標(biāo)注問題的處理方法暫不在這里展開)。

b)文字識別的結(jié)果反映到頁面上就是把識別出來的字段填到相應(yīng)的文本框中,所以需要算法部分輸出的結(jié)果是“型號:Lenovo IdeaPad Y580”這樣的 k-v 形式。

細化一下可以得到下圖:

2)服務(wù)端 or 客戶端

模型直接放在客戶端的好處是可以離線使用,缺點也十分明顯:一是識別準(zhǔn)確率會受影響;二是安裝包會變大;三是算法迭代必須等軟件整體更新。所以除非是特殊的離線要求,還是把識別放在服務(wù)端好一點。

3)技術(shù)選型

實現(xiàn)途徑無非兩種:自研或者調(diào)用第三方服務(wù)。

自研的話,也不太可能從輪子造起,一般是在成熟的開源項目(如 chinese-ocr)或者是團隊已有的算法基礎(chǔ)上優(yōu)化,最后得到的模型在特定場景的準(zhǔn)確度肯定會比通用服務(wù)好。

自研算法主要包括兩方面的工作:一是數(shù)據(jù)集獲取、標(biāo)注;二是模型優(yōu)化,時間和人力成本都較高。但出于團隊發(fā)展、算法積累以及后續(xù)可能需要私有化部署的考慮,我們最后還是選擇了自研的形式。

為了給自研提供支撐和幫助,我對第三方服務(wù)也做了一些調(diào)研,如果有小伙伴恰好有類似的需求也可以參考。百度、阿里、騰訊三個開發(fā)平臺都沒有針對我們這種需求的特定解決方案,所以只能使用通用 OCR 模型。

以同一張標(biāo)簽圖片為例(實際中試驗了不同分辨率、不同品牌的資產(chǎn)標(biāo)簽),三個平臺通用 OCR 識別結(jié)果如下:

(百度AI開發(fā)平臺)

(阿里云)

(騰訊AI開放平臺)

可見通用 OCR 模型已經(jīng)能比較好的識別出資產(chǎn)標(biāo)簽信息,所以調(diào)用第三方服務(wù)的方案也是可行的。

4)性能需求

  1. 由于用戶需要即時獲得識別結(jié)果,正常網(wǎng)絡(luò)環(huán)境下,處理單張圖片請求到返回結(jié)果應(yīng)該在2s以內(nèi);
  2. 由于后續(xù)流程中有人工確認、更正信息的步驟,所以在平衡精度和召回率時,可以適當(dāng)?shù)靥岣哒倩芈省?/li>

4. 優(yōu)化思路:批量處理

個人認為批量操作是 2B 業(yè)務(wù)的一個核心思想。設(shè)備特別多的情況下每個設(shè)備拍照-錄入這種流程也會比較慢,而且一批設(shè)備很大概率上是同一品牌型號的,所以批量錄入的需求是存在且可以實現(xiàn)的(比如輸入相同信息,然后批量識別 SN 碼)。

實現(xiàn)批量錄入的需求,一方面前端業(yè)務(wù)流程需要調(diào)整,另一方面 OCR 算法為適應(yīng)批量識別在速度上也需要提升。這也是這個功能點后續(xù)優(yōu)化的方向~

參考資料

大話文本檢測經(jīng)典模型:CTPN

大話文本識別經(jīng)典模型:CRNN

自然場景OCR檢測(YOLOv3+CRNN)

端到端不定長文字識別CRNN算法詳解

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 企業(yè)直營的倉庫、門店的商品出入庫管理有沒有類似的案例講解呢

    回復(fù)
  2. 請求轉(zhuǎn)載

    來自河南 回復(fù)
  3. 請問哪里能較完整的了解資產(chǎn)管理系統(tǒng)呢 ??

    來自廣東 回復(fù)
    1. 我有 哈哈

      來自廣東 回復(fù)
    2. 求分享_(:з」∠)_

      來自廣東 回復(fù)
    3. 求大佬分享

      來自江蘇 回復(fù)
    4. 求分享

      來自廣東 回復(fù)
    5. 求分享

      來自浙江 回復(fù)
    6. 大佬,可以分享下么

      回復(fù)
    7. 可以分享嘛

      回復(fù)
  4. 有道理 樓主可以分享一些市場上目前成熟的OCR開源或者第三方服務(wù)嗎?

    來自上海 回復(fù)
    1. 開源項目Chinese OCR,開源引擎tesseract

      來自北京 回復(fù)