8.6M超輕量中英文OCR模型開源,訓練部署一條龍

量子位發表於2020-07-21
魚羊 發自 凹非寺
量子位 報導 | 公眾號 QbitAI

要說生活裡最常見、最便民的AI應用技術,OCR(光學字元識別)當屬其中之一。

尋常到日常辦理各種業務時的身份證識別,前沿到自動駕駛車輛的路牌識別,都少不了它的加持。

作為一名開發者,各種OCR相關的需求自然也少不了:卡證識別、票據識別、汽車場景、教育場景文字識別……

那麼,這個模型大小僅8.6M沒有GPU也能跑得動,還提供自定義訓練到多硬體部署的全套開發套件的開源通用OCR專案,瞭解一下?

話不多說,先來看效果。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

可以看到,無論文字是橫排、還是豎排,這個超輕量模型都有不錯的識別效果。

難度略高,且實際生活當中經常遇到的場景也不在話下:

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

那麼,如果情況更復雜一點,這麼小的模型能hold住嗎?

畢竟,在實際應用場景中,影像中的文字難免存在字元彎曲、模糊等諸多問題。

比如,並不高畫質的路牌:

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

主體部分基本都識別無誤,只有英文小字部分因為確實比較模糊,識別效果不太理想。

再看一張文字背景複雜的影像識別效果:

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

出現一個錯別字,扣一分。滿分10分的話,可以打個9分了。

其實,在實際OCR專案落地過程中,開發者往往面臨兩個痛點:

1. 無論是移動端和伺服器端,待識別的影像數目往往非常多,都希望模型更小,精度更高,預測速度更快。GPU太貴,最好使用CPU跑起來更經濟。在滿足業務需求的前提下,模型越輕量佔用的資源越少。

2. 實際業務場景中,OCR面臨的問題多種多樣,業務場景個性化往往需要自定義資料集重新訓練,硬體環境多樣化就需要支援豐富的部署方式。再加上收集資料之類的dirty work,往往一個專案落地中的大部分時間都用在演算法研發以外的環節中,迫切需要一套完整全流程的解決方案,來加快研發進度,節約寶貴的研發時間。

也就是說,超輕量模型及其全流程解決方案,尤其對於算力、儲存空間有限的移動端、嵌入式裝置而言,可以說是剛需。

而在這個開源專案中,開發者也貼心提供了直接可供測試的Demo。

在量子位的實際上手測試中,在移動端Demo上這樣一個不到10M的模型,基本上可以做到秒出效果。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍
想體驗的可戳文末二維碼

在中文公開資料集ICDAR2017-RCTW上,限定圖片長邊尺寸960px,測試資料與測試條件相同的前提下,將該專案與之前一度登上GitHub熱榜的Chineseocr_Lite(5.1k stars)最新發布的10M模型進行測試對比。在模型大小、精度和預測速度方面,結果如下:

該8.6M超輕量模型,V100 GPU單卡平均預測耗時57ms,CPU平均預測耗時319ms。

而Chineseocr_Lite的10M模型,V100單卡預測速度230ms,CPU平均預測耗時739ms。

當然,這裡面模型預測速度的提升不僅是因為模型大小更小了,也離不開演算法與框架深度適配最佳化。

專案中給出的Benchmark如下:

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

作為一名面向GitHub程式設計的程式設計師,頓時感到老闆再來各種OCR需求都不方了。8.6M超輕量中英文OCR模型開源,訓練部署一條龍

而且這個8.6M超輕量開源模型,背後還有大廠背書。

因為出品方不是別人,是國產AI開發一哥百度,他們把這個最新開源的OCR工具庫取名:PaddleOCR

GitHub 地址:

8.6M的通用OCR模型如何煉成

PaddleOCR釋出的超輕量模型,主要由4.1M的檢測模型和4.5M的識別模型組成。

其中,檢測模型的Base模型採用DB演算法,文字模型的Base模型採用經典的CRNN演算法。

鑑於MobileNetV3在端側系列模型中的優越表現,兩個模型均選擇使用MobileNetV3作為骨幹網路,可將模型大小初步減少90%以上

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

除此之外,開發人員還採用減小特徵通道數等策略,進一步對模型大小進行了壓縮。

模型雖小,但是訓練用到的資料集卻一點也不少,根據專案方給出的資料,模型用到的資料量(包括合成資料)大約在百萬到千萬量級。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

但是也有開發者可能會問,在某些垂類場景,通用OCR模型的精度可能不能滿足需求,而且演算法模型在實際專案部署也會遇到各種問題,應該怎麼辦呢?

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

PaddleOCR從訓練到部署,提供了非常全面的一條龍指引,堪稱「最全OCR開發者大禮包」。

「最全OCR開發者大禮包」

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

禮包目錄,堪稱業界最全

支援自定義訓練

OCR業務其實有特殊性,使用者的需求很難透過一個通用模型來滿足,之前開源的Chineseocr_Lite也是不支援使用者訓練的。

為了方便開發者使用自己的資料自定義超輕量模型,除了8.6M超輕量模型外,PaddleOCR同時提供了2種文字檢測演算法(EAST、DB)、4種文字識別演算法(CRNN、Rosseta、STAR-Net、RARE),基本可以覆蓋常見OCR任務的需求,並且演算法還在持續豐富中。

特別是「模型訓練/評估」中的「中文OCR訓練預測技巧」,更是讓人眼前一亮,點進去可以看到「中文長文字識別的特殊處理、如何更換不同的backbone等業務實戰技巧」,相當符合開發者專案實戰中的煉丹需求。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

打通預測部署全流程

對開發者更友好的是,PaddleOCR提供了手機端(含iOS、Android Demo)、嵌入式端、大規模資料離線預測、線上服務化預測等多種預測工具元件的支援,能夠滿足多樣化的工業級應用場景。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍


資料集彙總

專案幫開發者整理了常用的中文資料集、標註和合成工具,並在持續更新中。

目前包含的資料集包括:

  • 5個大規模通用資料集(ICDAR2019-LSVT,ICDAR2017-RCTW-17,中文街景文字識別,中文文件文字識別,ICDAR2019-ArT)

  • 大規模手寫中文資料集(中科院自動化研究所-手寫中文資料集)

  • 垂類多語言OCR資料集(中國城市車牌資料集、銀行信用卡資料集、驗證碼資料集-Captcha、多語言資料集)

還整理了常用資料標註工具(labelImg、roLabelImg、labelme)、常用資料合成工具(text_renderer、SynthText、SynthText_Chinese_version、TextRecognitionDataGenerator、SynthText3D、UnrealText)

並且開源以來,受到開發者的廣泛關注,已經有大量開發者投入到專案的建設中並且貢獻內容。

8.6M超輕量中英文OCR模型開源,訓練部署一條龍

真·乾貨滿滿。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971123/viewspace-2705778/,如需轉載,請註明出處,否則將追究法律責任。

相關文章