要說生活裏最多見、最便民的AI應用技術,OCR(Optical Character Recognition,光學字符識別)當屬其中之一。尋常到平常辦理各類業務時的身份證識別,前沿到自動駕駛車輛的路牌識別,都少不了它的加持。做爲一名開發者,各類OCR相關的需求天然也少不了:卡證識別、票據識別、汽車場景、教育場景文字識別……git
OCR領域向來開源repo比較少,大部分核心算法用在了商業化產品。今年算是OCR開源領域的豐收年,chineseocr_lite,easyocr,以及百度飛槳推出的PaddleOCR前後橫空出世。github
確實喜大普奔算法
對於OCR方向開發者而言,開源repo最吸引人的莫過於:服務器
① 高質量的預訓練模型微信
② 簡單易上手的訓練代碼網絡
③ 好用無坑的部署能力性能
簡單對比一下目前主流OCR方向開源repo的核心能力學習
對於語種方面,easyOCR的優點在於多語言支持,很是適合有小語種需求的開發者;優化
從預訓練模型來看,easyOCR目前暫無超輕量模型,chineseocr_lite最新的模型是10M左右,而PaddleOCR提供的8.6M是目前業界已知最輕量的;spa
對於部署方面,easyOCR模型較大不適合端側部署,Chineseocr_lite和PaddleOCR都具有端側部署能力;
對於自定義訓練,實際業務場景中,預訓練模型每每不能知足需求,對於自定義訓練和模型Finetuning,目前只有PaddleOCR支持;
PaddleOCR項目地址:
https://github.com/PaddlePaddle/PaddleOCR
PaddleOCR 8.6M超輕量模型,支持自定義訓練、豐富的部署方式(覆蓋服務器端、移動端/嵌入式端(apk/sdk)多場景需求)。提供的超級開源開發者大禮包,無疑讓開發者大呼過癮 ,看一下repo中提供的教程文檔,真心全覆蓋。
高質量的內容也換來了開發者的普遍承認,GitHub Trending 第一,Star數量已經超過2.5k。
這僅僅是開始。。。
隨着大量用戶涌入,也實實在在提出了不少業務場景常見的問題,好比:
可否解決天然場景任意形狀文本檢測問題?
文字識別結果可否經過語義信息自動糾正?
既然開發者有需求,百度飛槳也是誠意滿滿!
下載安裝命令
## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
百度自研SAST、SRN兩大SOTA算法開源啦!
核心信息先睹爲快:
面向天然場景任意形狀文字檢測問題,開源ACM Multimedia 2019上發表的SAST(A Single-Shot Arbitrarily-Shaped Text Detector based on,Context Attended Multi-Task Learning)算法,在多個公開數據集(包括SCUT-CTW1500,Total-Text,ICDAR15 和 MLT),準確度取得了SOTA或可比的結果,速度上位列領先行列。
面向場景文本圖像中兼顧視覺信息和語義信息的需求,開源CVPR2020中發表的SRN(Towards Accurate Scene Text Recognition with Semantic Reasoning Networks )算法,在包括ICDAR1三、ICDAR15,IIIT5K,SVT,SVTP,CUTE80數據集,準確度取得了SOTA或可比的結果。
開源算法詳細解讀
01單階段任意形態文字檢測器-SAST(ACM MM2019)
論文地址:https://arxiv.org/abs/1908.05498
圖 1. SAST算法效果圖
第一列爲語義分割圖,黃色框標記的爲較長文字分割響應斷裂的狀況;第二列爲SAST利用Pixel-to-Quad思想對實例分割的處理結果,相同顏色爲同一個文字實例;第三列紅色框爲最終檢測結果,藍色爲真值,青色爲EAST算法檢測結果。
目前業界解決任意形態文字檢測問題的主流思路有兩種:
-
一種基於Mask-RCNN思想的自頂向下的檢測方法,例如LOMO、PMTD等;
-
另一種是基於語義分割的自底向上的檢測方法,例如TextField、TextMontain 等。
自頂而下的方法每每因爲算法級聯的模塊比較多、特徵抽取比較複雜致使實際使用效率無法獲得很好保證;語義分割的方法因爲缺少實例(instance)的先驗,在面臨距離較近的文字條難以分割開、過長的文本條則容易出現響應不連續等問題。
SAST (「A Single-Shot Arbitrarily-Shaped Text Detector based on Context Attended Multi-Task Learning」) 收錄於ACM Multimedia 2019,是百度研發的面向天然場景任意形狀文字檢測問題,兼顧效率和準確率的解決方案。
SAST使用多任務學習對文字中心線區域進行語分割的同時學習了文字實例的多種幾何信息,進而實現文字的實例分割和多邊形表達的重建。該方法的總體算法流程,如圖1所示:
Ⅰ
首先,經過多任務學習方法學習文字實例的多種幾何信息,包括文字條中心線響應圖 (Text Center Line, TCL),中心線像素與四角點偏移量 (Text Vertex Offset, TVO),中心線像素與文字中心點偏移量 (Text Center Offset, TCO) 和中心線到文字上下邊界偏移量 (Text Border Offset, TBO);
Ⅱ
其次,使用Pixel-to-Quad方法對TCL進行實例分割,該方法結合了高層檢測信息和底層分割信息,具體過程如圖2虛線框中所示。
Ⅲ
最後,在實例分割的基礎上,針對每一個文字實例結合TBO信息,便可恢復出任意形狀文字的幾何表達。
圖 2 SAST算法檢測流程,虛線部分爲Pixel-to-Quad實例分割示意圖。
論文中對SAST在多個公開數據集上進行了效果驗證,包括SCUT-CTW1500,Total-Text,ICDAR15 和 MLT數據集,準確度上取得了SOTA或可比的結果,速度上位列領先行列。這次SAST開源工做中,經過對模型的Backbone和訓練數據作了適當的升級和調整,在icdar2015數據集上hmean達到87.33%,在彎曲文本數據集total-text上hmean達到84.03%。
表1 SAST在各項數據集上的實驗結果
02 利用語義推理網絡強化的場景文字識別器-SRN(CVPR2020)
論文地址:https://arxiv.org/abs/2003.12294
圖3. 現實生活中的場景文本圖像
(a)是較難識別的場景文本圖像,(b)是從(a)中圖像裏分離抽取出的字符圖像,(c)是(a)中圖像對應的語義內容。
場景文本圖像包含兩種層次的內容:視覺信息和語義信息。近年來致力於提升識別性能的工做,大多從提取魯棒且有效的視覺特徵的視角出發,例如升級模型Backbone,增長矯正模塊,校準Attention機制等,每每忽視了改進語義特徵。場景文字識別不單依賴視覺感知信息,也依賴高層次的語義信息的認知理解,例如圖3所示 ,僅依靠視覺信息是很難準確識別分離抽取出的字符圖像,尤爲是(b)中紅框標出的字符;相反地,結合整個單詞完整語義信息進行推理的時候,咱們是能夠很容易識別出完整單詞內容的。
圖4. 兩種不一樣的傳遞語義信息的方式。(a)是單向串行方式;(b)是全局並行方式
爲了解決以下主流Attention-based隱含式語義信息建模的方法缺陷:
1)僅僅感知了歷史時刻的語義信息,而沒法獲取其餘時刻的語義信息;
2)若是較早時刻解碼出的錯誤字符,會爲餘下時刻的解碼傳遞錯誤的語義信息,致使偏差積累效應;
3)串行的解碼模式是相對低效的(特別是在模型預測的環節)
百度在CVPR 2020錄用工做SRN(Towards Accurate Scene Text Recognition with Semantic Reasoning Networks )中借鑑Transformer和NLP預訓練模型思想提出了一種高效的全局並行語義推理模塊GSRM,其信息傳遞方式採用如圖 4(b)所示方式。
圖5. SRN的結構圖。灰色表示並行的數據流
SRN是端到端可訓練的場景文字識別網絡,由四部分組成:基礎網絡Backbone、並行的視覺特診提取模塊(PVAM)、全局語義推理模塊(GSRM) 和視覺語義融合的解碼器(VSFD)。給定一張輸入的文本圖像,基於ResNet50 + Transformer unit的Backbone從中提取出視覺2D feature map V;以後PVAM會針對每一個目標字符獲取其相應的視覺特徵G;GSRM會基於視覺特徵G獲取全局語義信息,並轉化爲每一個目標字符的語義特徵S;最後VSFD融合對齊的視覺特徵和語義特徵,預測出相應字符。在訓練階段和推斷階段,每一個序列中各個字符之間是並行。
SRN在多個公開數據集上進行了效果驗證,包括ICDAR1三、ICDAR15,IIIT5K,SVT,SVTP,CUTE80數據集,在準確度上取得了SOTA或者可比的結果。同時,也在中文長詞數據集合TRW上與主流方法作了精度對比,證實了該方法對於中文的適用性。圖 6中展現了語義推理模塊的使用與否在中英文上的可視化對比效果。
圖 6. SRN w/o GSRM(全局語義推理模塊)的收益效果對比
加了GSRM模塊後,能將一些不符合語義邏輯的單字識別結果進行糾錯。
參考DTRB文字識別訓練和評估流程,使用MJSynth和SynthText兩個文字識別數據集訓練,在IIIT, SVT, IC03, IC13, IC15, SVTP, CUTE數據集上進行評估,算法效果以下:能夠看到SRN檢測算法指標明顯優於其它算法,效果提高明顯。並且值得一提的是,這次PaddleOCR開源SRN工做中,對訓練方法作了適當的優化,採用一步到位端到端的訓練方式,原始論文使用兩階段訓練平均精度爲89.74%,PaddleOCR中使用one-stage訓練,平均精度爲88.33%。精度雖然略有降低,可是訓練效率和實用性明顯增長。
開源數據集建設
除了開源自研算法,百度也一直致力於推進開源數據集的建設。ICDAR「Robust Reading Competitions」競賽是評估天然場景/網絡圖片/複雜視頻文本提取與智能識別新技術進展的權威國際賽事及評測標準,競賽中涌現出諸多方法持續推進業界新技術的創新與應用。
做爲ICDAR 2019 Robust Reading Competition競賽主要組織者之一,百度聯合學術界共同發佈了兩項極具挑戰的競賽任務,ICDAR 2019-LSVT(Large-scale Street View Text with Partial Labeling, 弱標註大規模街景文字識別競賽)、ICDAR 2019-ArT(Arbitrary-Shaped Text, 任意形狀場景文字識別競賽)。
ICDAR 2019-LSVT競賽數據聚焦探索大規模數據場景下深度學習文字識別能力極限,是業界最大的中文場景OCR集合。ICDAR2019-LSVT數據集源於百度真實應用場景,做爲首個提出弱標註數據的場景文字數據集,包括精標註5萬張街景圖像,40萬張弱標註圖像,總計45萬,數據量是現有公開數據集(ICDAR 201七、ICPR 2018等)的14倍以上。場景文字識別具備普遍應用場景,例如:拍照翻譯、圖像檢索、街景地標識別、室外場景理解等。
ICDAR2019-ArT競賽數據總計10176張,是業界最大的任意形狀場景文字集合,聚焦推進天然場景下任意形狀文字檢測識別能力新突破。
PaddleOCR開源的超輕量和通用版中英文模型,訓練數據組成中的中文真實數據集,主要就是上述開源的LSVT數據集,此外,本次SAST算法開源模型total-text指標超過論文指標約4%,主要緣由也是因爲加入了ArT數據集進行了優化。以上數據集也已經在PaddleOCR中開源了,歡迎使用:
https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/datasets.md
GitHub:
https://github.com/PaddlePaddle/PaddleOCR
Gitee:
https://gitee.com/paddlepaddle/PaddleOCR
·SAST論文·
https://arxiv.org/abs/1908.05498
·SRN論文·
https://arxiv.org/abs/2003.12294
·LSVT數據集相關論文地址·
https://arxiv.org/abs/1909.07808
掃描二維碼 | 關注咱們
微信號 : PaddleOpenSource
下載安裝命令
## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu