2022-08-20 文本識別算法理論

1. 背景介紹

具體地犬第,模型輸入一張定位好的文本行芒涡,由模型預(yù)測出圖片中的文字內(nèi)容和置信度英妓,可視化結(jié)果如下圖所示:

文本識別是OCR(Optical Character Recognition)的一個子任務(wù)搜囱,其任務(wù)為識別一個固定區(qū)域的的文本內(nèi)容。在OCR的兩階段方法里趾痘,它接在文本檢測后面,將圖像信息轉(zhuǎn)換為文字信息蔓钟。


文本識別示意圖

文本識別的應(yīng)用場景很多永票,有文檔識別、路標(biāo)識別滥沫、車牌識別侣集、工業(yè)編號識別等等,根據(jù)實際場景可以把文本識別任務(wù)分為兩個大類:規(guī)則文本識別不規(guī)則文本識別兰绣。

  • 規(guī)則文本識別:主要指印刷字體世分、掃描文本等,認(rèn)為文本大致處在水平線位置
  • 不規(guī)則文本識別: 往往出現(xiàn)在自然場景中狭魂,且由于文本曲率罚攀、方向、變形等方面差異巨大雌澄,文字往往不在水平位置斋泄,存在彎曲、遮擋镐牺、模糊等問題炫掐。

下圖展示的是 IC15 和 IC13 的數(shù)據(jù)樣式,它們分別代表了不規(guī)則文本和規(guī)則文本睬涧∧嘉福可以看出不規(guī)則文本往往存在扭曲、模糊畦浓、字體差異大等問題痹束,更貼近真實場景,也存在更大的挑戰(zhàn)性讶请。

因此目前各大算法都試圖在不規(guī)則數(shù)據(jù)集上獲得更高的指標(biāo)祷嘶。

IC15 圖片樣例(不規(guī)則文本)
IC13 圖片樣例(規(guī)則文本)

不同的識別算法在對比能力時,往往也在這兩大類公開數(shù)據(jù)集上比較夺溢。對比多個維度上的效果论巍,目前較為通用的英文評估集合分類如下:

文本識別數(shù)據(jù)集

2. 文本識別算法分類

在傳統(tǒng)的文本識別方法中,任務(wù)分為3個步驟风响,即圖像預(yù)處理嘉汰、字符分割和字符識別。需要對特定場景進行建模状勤,一旦場景變化就會失效鞋怀。面對復(fù)雜的文字背景和場景變動双泪,基于深度學(xué)習(xí)的方法具有更優(yōu)的表現(xiàn)。

多數(shù)現(xiàn)有的識別算法可用如下統(tǒng)一框架表示接箫,算法流程被劃分為4個階段:

文本識別通用框架

主流的算法類別和主要論文攒读,參考下表:

算法類別 主要思路 主要論文
傳統(tǒng)算法 滑動窗口、字符提取辛友、動態(tài)規(guī)劃 -
ctc 基于ctc的方法薄扁,序列不對齊较幌,更快速識別 CRNN, Rosetta
Attention 基于attention的方法貌踏,應(yīng)用于非常規(guī)文本 RARE, DAN, PREN
Transformer 基于transformer的方法 SRN, NRTR, Master, ABINet
校正 校正模塊學(xué)習(xí)文本邊界并校正成水平方向 RARE, ASTER, SAR
分割 基于分割的方法,提取字符位置再做分類 Text Scanner乾蛤, Mask TextSpotter

2.1 規(guī)則文本識別

文本識別的主流算法有兩種邑滨,分別是基于 CTC (Conectionist Temporal Classification) 的算法和 Sequence2Sequence 算法日缨,區(qū)別主要在解碼階段。

CTC(Connectionist Temporal Classification)是一種避開輸入與輸出手動對齊的一種方式掖看,是非常適合語音識別或者OCR這種應(yīng)用的匣距。
原理可參考CTC理論和實戰(zhàn)

基于 CTC 的算法是將編碼產(chǎn)生的序列接入 CTC 進行解碼;基于 Sequence2Sequence 的方法則是把序列接入循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)模塊進行循環(huán)解碼哎壳,兩種方式都驗證有效也是主流的兩大做法毅待。

左:基于CTC的方法,右:基于Sequece2Sequence的方法

2.1.1 基于CTC的算法

基于 CTC 最典型的算法是CRNN (Convolutional Recurrent Neural Network)[1]归榕,它的特征提取部分使用主流的卷積結(jié)構(gòu)尸红,常用的有ResNet、MobileNet刹泄、VGG等外里。由于文本識別任務(wù)的特殊性,輸入數(shù)據(jù)中存在大量的上下文信息特石,卷積神經(jīng)網(wǎng)絡(luò)的卷積核特性使其更關(guān)注于局部信息盅蝗,缺乏長依賴的建模能力,因此僅使用卷積網(wǎng)絡(luò)很難挖掘到文本之間的上下文聯(lián)系姆蘸。為了解決這一問題墩莫,CRNN文本識別算法引入了雙向 LSTM(Long Short-Term Memory) 用來增強上下文建模,通過實驗證明雙向LSTM模塊可以有效的提取出圖片中的上下文信息乞旦。最終將輸出的特征序列輸入到CTC模塊贼穆,直接解碼序列結(jié)果题山。該結(jié)構(gòu)被驗證有效兰粉,并廣泛應(yīng)用在文本識別任務(wù)中。Rosetta[2]是FaceBook提出的識別網(wǎng)絡(luò)顶瞳,由全卷積模型和CTC組成玖姑。Gao Y[3]等人使用CNN卷積替代LSTM愕秫,參數(shù)更少,性能提升精度持平焰络。

CRNN 結(jié)構(gòu)圖

2.1.2 Sequence2Sequence 算法

Sequence2Sequence 算法是由編碼器 Encoder 把所有的輸入序列都編碼成一個統(tǒng)一的語義向量戴甩,然后再由解碼器Decoder解碼。在解碼器Decoder解碼的過程中闪彼,不斷地將前一個時刻的輸出作為后一個時刻的輸入甜孤,循環(huán)解碼,直到輸出停止符為止畏腕。一般編碼器是一個RNN缴川,對于每個輸入的詞,編碼器輸出向量和隱藏狀態(tài)描馅,并將隱藏狀態(tài)用于下一個輸入的單詞把夸,循環(huán)得到語義向量;解碼器是另一個RNN铭污,它接收編碼器輸出向量并輸出一系列字以創(chuàng)建轉(zhuǎn)換恋日。受到 Sequence2Sequence 在翻譯領(lǐng)域的啟發(fā), Shi[4]提出了一種基于注意的編解碼框架來識別文本,通過這種方式嘹狞,rnn能夠從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)隱藏在字符串中的字符級語言模型岂膳。

Sequence2Sequence 結(jié)構(gòu)圖

以上兩個算法在規(guī)則文本上都有很不錯的效果,但由于網(wǎng)絡(luò)設(shè)計的局限性刁绒,這類方法很難解決彎曲和旋轉(zhuǎn)的不規(guī)則文本識別任務(wù)闷营。為了解決這類問題,部分算法研究人員在以上兩類算法的基礎(chǔ)上提出了一系列改進算法知市。

2.2 不規(guī)則文本識別

不規(guī)則文本識別算法可以被分為4大類:

  • 基于校正的方法
  • 基于 Attention 的方法
  • 基于分割的方法
  • 基于 Transformer 的方法傻盟。

基于校正的方法

基于校正的方法利用一些視覺變換模塊,將非規(guī)則的文本盡量轉(zhuǎn)換為規(guī)則文本嫂丙,然后使用常規(guī)方法進行識別娘赴。

RARE

RARE[4]模型首先提出了對不規(guī)則文本的校正方案,整個網(wǎng)絡(luò)分為兩個主要部分:一個空間變換網(wǎng)絡(luò)STN(Spatial Transformer Network) 和一個基于Sequence2Squence的識別網(wǎng)絡(luò)跟啤。其中STN就是校正模塊诽表,不規(guī)則文本圖像進入STN,通過TPS(Thin-Plate-Spline)變換成一個水平方向的圖像隅肥,該變換可以一定程度上校正彎曲竿奏、透射變換的文本,校正后送入序列識別網(wǎng)絡(luò)進行解碼腥放。

RARE 結(jié)構(gòu)圖

RARE論文指出泛啸,該方法在不規(guī)則文本數(shù)據(jù)集上有較大的優(yōu)勢,特別比較了CUTE80和SVTP這兩個數(shù)據(jù)集秃症,相較CRNN高出5個百分點以上候址,證明了校正模塊的有效性吕粹。基于此[6]同樣結(jié)合了空間變換網(wǎng)絡(luò)(STN)和基于注意的序列識別網(wǎng)絡(luò)的文本識別系統(tǒng)岗仑。

基于校正的方法有較好的遷移性匹耕,除了RARE這類基于Attention的方法外,STAR-Net[5]將校正模塊應(yīng)用到基于CTC的算法上荠雕,相比傳統(tǒng)CRNN也有很好的提升稳其。

2.2.2 基于Attention的方法

基于 Attention 的方法主要關(guān)注的是序列之間各部分的相關(guān)性,該方法最早在機器翻譯領(lǐng)域提出炸卑,認(rèn)為在文本翻譯的過程中當(dāng)前詞的結(jié)果主要由某幾個單詞影響的欢际,因此需要給有決定性的單詞更大的權(quán)重。在文本識別領(lǐng)域也是如此矾兜,將編碼后的序列解碼時损趋,每一步都選擇恰當(dāng)?shù)腸ontext來生成下一個狀態(tài),這樣有利于得到更準(zhǔn)確的結(jié)果椅寺。

R^2AM

R^2AM [7] 首次將 Attention 引入文本識別領(lǐng)域浑槽,該模型首先將輸入圖像通過遞歸卷積層提取編碼后的圖像特征,然后利用隱式學(xué)習(xí)到的字符級語言統(tǒng)計信息通過遞歸神經(jīng)網(wǎng)絡(luò)解碼輸出字符返帕。在解碼過程中引入了Attention 機制實現(xiàn)了軟特征選擇桐玻,以更好地利用圖像特征,這一有選擇性的處理方式更符合人類的直覺荆萤。

R^2AM 結(jié)構(gòu)圖

后續(xù)有大量算法在Attention領(lǐng)域進行探索和更新镊靴,例如SAR[8]將1D attention拓展到2D attention上,校正模塊提到的RARE也是基于Attention的方法链韭。實驗證明基于Attention的方法相比CTC的方法有很好的精度提升偏竟。

Attention機制的應(yīng)用

2.2.3 基于分割的方法

基于分割的方法是將文本行的各字符作為獨立個體,相比與對整個文本行做矯正后識別敞峭,識別分割出的單個字符更加容易踊谋。它試圖從輸入的文本圖像中定位每個字符的位置,并應(yīng)用字符分類器來獲得這些識別結(jié)果旋讹,將復(fù)雜的全局問題簡化成了局部問題解決殖蚕,在不規(guī)則文本場景下有比較不錯的效果。然而這種方法需要字符級別的標(biāo)注沉迹,數(shù)據(jù)獲取上存在一定的難度睦疫。Lyu[9]等人提出了一種用于單詞識別的實例分詞模型,該模型在其識別部分使用了基于 FCN(Fully Convolutional Network) 的方法鞭呕。[10]從二維角度考慮文本識別問題蛤育,設(shè)計了一個字符注意FCN來解決文本識別問題,當(dāng)文本彎曲或嚴(yán)重扭曲時,該方法對規(guī)則文本和非規(guī)則文本都具有較優(yōu)的定位結(jié)果缨伊。

Mask TextSpotter 結(jié)構(gòu)圖

2.2.4 基于Transformer的方法

隨著 Transformer 的快速發(fā)展,分類和檢測領(lǐng)域都驗證了 Transformer 在視覺任務(wù)中的有效性进宝。如規(guī)則文本識別部分所說刻坊,CNN在長依賴建模上存在局限性,Transformer 結(jié)構(gòu)恰好解決了這一問題党晋,它可以在特征提取器中關(guān)注全局信息谭胚,并且可以替換額外的上下文建模模塊(LSTM)。

一部分文本識別算法使用 Transformer 的 Encoder 結(jié)構(gòu)和卷積共同提取序列特征未玻,Encoder 由多個 MultiHeadAttentionLayer 和 Positionwise Feedforward Layer 堆疊而成的block組成灾而。MulitHeadAttention 中的 self-attention 利用矩陣乘法模擬了RNN的時序計算,打破了RNN中時序長時依賴的障礙扳剿。也有一部分算法使用 Transformer 的 Decoder 模塊解碼旁趟,相比傳統(tǒng)RNN可獲得更強的語義信息,同時并行計算具有更高的效率庇绽。

SRN

SRN[11] 算法將Transformer的Encoder模塊接在ResNet50后锡搜,增強了2D視覺特征。并提出了一個并行注意力模塊瞧掺,將讀取順序用作查詢耕餐,使得計算與時間無關(guān),最終并行輸出所有時間步長的對齊視覺特征辟狈。此外SRN還利用Transformer的Eecoder作為語義模塊肠缔,將圖片的視覺信息和語義信息做融合,在遮擋哼转、模糊等不規(guī)則文本上有較大的收益明未。

NRTR

NRTR[12] 使用了完整的Transformer結(jié)構(gòu)對輸入圖片進行編碼和解碼,只使用了簡單的幾個卷積層做高層特征提取壹蔓,在文本識別上驗證了Transformer結(jié)構(gòu)的有效性亚隅。

NRTR 結(jié)構(gòu)圖

SRACN

SRACN[13]使用Transformer的解碼器替換LSTM,再一次驗證了并行訓(xùn)練的高效性和精度優(yōu)勢庶溶。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煮纵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偏螺,更是在濱河造成了極大的恐慌行疏,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件套像,死亡現(xiàn)場離奇詭異酿联,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門贞让,熙熙樓的掌柜王于貴愁眉苦臉地迎上來周崭,“玉大人,你說我怎么就攤上這事喳张⌒颍” “怎么了?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵销部,是天一觀的道長摸航。 經(jīng)常有香客問我,道長舅桩,這世上最難降的妖魔是什么酱虎? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮擂涛,結(jié)果婚禮上读串,老公的妹妹穿的比我還像新娘。我一直安慰自己撒妈,他們只是感情好爹土,可當(dāng)我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著踩身,像睡著了一般胀茵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挟阻,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天琼娘,我揣著相機與錄音,去河邊找鬼附鸽。 笑死脱拼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坷备。 我是一名探鬼主播熄浓,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼省撑!你這毒婦竟也來了赌蔑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤竟秫,失蹤者是張志新(化名)和其女友劉穎娃惯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肥败,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡趾浅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年愕提,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皿哨。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡浅侨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出证膨,到底是詐尸還是另有隱情如输,我是刑警寧澤,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布椎例,位于F島的核電站,受9級特大地震影響请祖,放射性物質(zhì)發(fā)生泄漏订歪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一肆捕、第九天 我趴在偏房一處隱蔽的房頂上張望刷晋。 院中可真熱鬧,春花似錦慎陵、人聲如沸眼虱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捏悬。三九已至,卻和暖如春润梯,著一層夾襖步出監(jiān)牢的瞬間过牙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工纺铭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寇钉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓舶赔,卻偏偏與公主長得像扫倡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子竟纳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容