8.6M超輕量中英文OCR模型開源,訓練部署一條龍
魚羊 發自 凹非寺
量子位 報導 | 公眾號 QbitAI
要說生活裡最常見、最便民的AI應用技術,OCR(光學字元識別)當屬其中之一。
尋常到日常辦理各種業務時的身份證識別,前沿到自動駕駛車輛的路牌識別,都少不了它的加持。
作為一名開發者,各種OCR相關的需求自然也少不了:卡證識別、票據識別、汽車場景、教育場景文字識別……
那麼,這個模型大小僅8.6M,沒有GPU也能跑得動,還提供自定義訓練到多硬體部署的全套開發套件的開源通用OCR專案,瞭解一下?
話不多說,先來看效果。
可以看到,無論文字是橫排、還是豎排,這個超輕量模型都有不錯的識別效果。
難度略高,且實際生活當中經常遇到的場景也不在話下:
那麼,如果情況更復雜一點,這麼小的模型能hold住嗎?
畢竟,在實際應用場景中,影像中的文字難免存在字元彎曲、模糊等諸多問題。
比如,並不高畫質的路牌:
主體部分基本都識別無誤,只有英文小字部分因為確實比較模糊,識別效果不太理想。
再看一張文字背景複雜的影像識別效果:
出現一個錯別字,扣一分。滿分10分的話,可以打個9分了。
其實,在實際OCR專案落地過程中,開發者往往面臨兩個痛點:
1. 無論是移動端和伺服器端,待識別的影像數目往往非常多,都希望模型更小,精度更高,預測速度更快。GPU太貴,最好使用CPU跑起來更經濟。在滿足業務需求的前提下,模型越輕量佔用的資源越少。
2. 實際業務場景中,OCR面臨的問題多種多樣,業務場景個性化往往需要自定義資料集重新訓練,硬體環境多樣化就需要支援豐富的部署方式。再加上收集資料之類的dirty work,往往一個專案落地中的大部分時間都用在演算法研發以外的環節中,迫切需要一套完整全流程的解決方案,來加快研發進度,節約寶貴的研發時間。
也就是說,超輕量模型及其全流程解決方案,尤其對於算力、儲存空間有限的移動端、嵌入式裝置而言,可以說是剛需。
而在這個開源專案中,開發者也貼心提供了直接可供測試的Demo。
在量子位的實際上手測試中,在移動端Demo上這樣一個不到10M的模型,基本上可以做到秒出效果。
△想體驗的可戳文末二維碼
在中文公開資料集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如下:
作為一名面向GitHub程式設計的程式設計師,頓時感到老闆再來各種OCR需求都不方了。
而且這個8.6M超輕量開源模型,背後還有大廠背書。
因為出品方不是別人,是國產AI開發一哥百度,他們把這個最新開源的OCR工具庫取名:PaddleOCR。
GitHub 地址:
8.6M的通用OCR模型如何煉成
PaddleOCR釋出的超輕量模型,主要由4.1M的檢測模型和4.5M的識別模型組成。
其中,檢測模型的Base模型採用DB演算法,文字模型的Base模型採用經典的CRNN演算法。
鑑於MobileNetV3在端側系列模型中的優越表現,兩個模型均選擇使用MobileNetV3作為骨幹網路,可將模型大小初步減少90%以上。
除此之外,開發人員還採用減小特徵通道數等策略,進一步對模型大小進行了壓縮。
模型雖小,但是訓練用到的資料集卻一點也不少,根據專案方給出的資料,模型用到的資料量(包括合成資料)大約在百萬到千萬量級。
但是也有開發者可能會問,在某些垂類場景,通用OCR模型的精度可能不能滿足需求,而且演算法模型在實際專案部署也會遇到各種問題,應該怎麼辦呢?
PaddleOCR從訓練到部署,提供了非常全面的一條龍指引,堪稱「最全OCR開發者大禮包」。
「最全OCR開發者大禮包」
△禮包目錄,堪稱業界最全
支援自定義訓練
OCR業務其實有特殊性,使用者的需求很難透過一個通用模型來滿足,之前開源的Chineseocr_Lite也是不支援使用者訓練的。
為了方便開發者使用自己的資料自定義超輕量模型,除了8.6M超輕量模型外,PaddleOCR同時提供了2種文字檢測演算法(EAST、DB)、4種文字識別演算法(CRNN、Rosseta、STAR-Net、RARE),基本可以覆蓋常見OCR任務的需求,並且演算法還在持續豐富中。
特別是「模型訓練/評估」中的「中文OCR訓練預測技巧」,更是讓人眼前一亮,點進去可以看到「中文長文字識別的特殊處理、如何更換不同的backbone等業務實戰技巧」,相當符合開發者專案實戰中的煉丹需求。
打通預測部署全流程
對開發者更友好的是,PaddleOCR提供了手機端(含iOS、Android Demo)、嵌入式端、大規模資料離線預測、線上服務化預測等多種預測工具元件的支援,能夠滿足多樣化的工業級應用場景。
資料集彙總
專案幫開發者整理了常用的中文資料集、標註和合成工具,並在持續更新中。
目前包含的資料集包括:
5個大規模通用資料集(ICDAR2019-LSVT,ICDAR2017-RCTW-17,中文街景文字識別,中文文件文字識別,ICDAR2019-ArT)
大規模手寫中文資料集(中科院自動化研究所-手寫中文資料集)
垂類多語言OCR資料集(中國城市車牌資料集、銀行信用卡資料集、驗證碼資料集-Captcha、多語言資料集)
還整理了常用資料標註工具(labelImg、roLabelImg、labelme)、常用資料合成工具(text_renderer、SynthText、SynthText_Chinese_version、TextRecognitionDataGenerator、SynthText3D、UnrealText)
並且開源以來,受到開發者的廣泛關注,已經有大量開發者投入到專案的建設中並且貢獻內容。
真·乾貨滿滿。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971123/viewspace-2705778/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開源OCR模型對比模型
- 手把手教你從模型訓練到部署(一)模型
- 如何訓練2457億引數量的中文巨量模型“源1.0”模型
- 豆包大模型團隊開源RLHF框架,訓練吞吐量最高提升20倍大模型框架
- 完勝 BERT,谷歌最佳 NLP 預訓練模型開源,單卡訓練僅需 4 天谷歌模型
- 輕量化模型訓練加速的思考(Pytorch實現)模型PyTorch
- 小米開源FALSR演算法:快速精確輕量級的超解析度模型演算法模型
- 一文講透預訓練模型的改進訓練演算法 ,輕鬆達到State of the Art模型演算法
- 知物由學 | 更適合文字分類的輕量級預訓練模型文字分類模型
- 完全私有化部署!一款開源輕量級網站防火牆!網站防火牆
- 這才是真・開源模型!公開「後訓練」一切,效能超越Llama 3.1 Instruct模型Struct
- 輕量級模型設計與部署總結模型
- 海南話語音識別模型——模型訓練(一)模型
- 阿里巴巴開源大規模稀疏模型訓練/預測引擎DeepRec阿里模型
- 讓數百萬臺手機訓練同一個模型?Google把這套框架開源了模型Go框架
- OCR訓練中文樣本庫和識別
- Tesseract-OCR-04-使用 jTessBoxEditor 進行訓練
- 用Flask在伺服器上部署訓練好的模型Flask伺服器模型
- 訓練一個目標檢測模型模型
- 在 NVIDIA DGX Cloud 上使用 H100 GPU 輕鬆訓練模型CloudGPU模型
- 從VGG到ResNet,你想要的MXNet預訓練模型輕鬆學模型
- 監控大模型訓練大模型
- PyTorch預訓練Bert模型PyTorch模型
- fasttext訓練模型程式碼AST模型
- Hexo部落格框架—輕量、一令部署Hexo框架
- 【LLM訓練】從零訓練一個大模型有哪幾個核心步驟?大模型
- 自訓練 + 預訓練 = 更好的自然語言理解模型模型
- GoAccess 開源日誌輕工具部署與分析Go
- 推薦一個Star超過2K的.Net輕量級的CMS開源專案
- 【OCR技術】大批量生成文字訓練集
- 怎麼訓練出一個NB的Prophet模型模型
- SphinxJS——把字串編碼成png圖片的超輕量級開源庫JS字串編碼
- 訓練營 | 如何成為一名開源社群貢獻者?
- 阿里開源 支援10萬億模型的自研分散式訓練框架EPL(Easy Parallel Library)阿里模型分散式框架Parallel
- 大模型如何提升訓練效率大模型
- 預訓練模型 & Fine-tuning模型
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- PyTorch 模型訓練實⽤教程(程式碼訓練步驟講解)PyTorch模型