詳解提升場景文本識別中的語言模型
一、語言模型定義
1. 什么是語言模型?
如圖1所示,顧名思義,語言模型即根據(jù)當(dāng)前語境的上下文推斷當(dāng)前句子的意思。具體的標(biāo)準(zhǔn)定義為:對于語言序列w1,w2,…wn,語言模型就是計算該序列的概率即P(w1,w2,…wn)。
2. 為什么需要語言模型?
文本圖像中包含兩層信息:視覺紋理信息和語言信息。由于單純根據(jù)視覺紋理信息進行文字識別缺少了對上下文的字符語義信息的挖掘,時常會導(dǎo)致錯誤的文本識別結(jié)果(之后會詳細(xì)說明)。因此如何獲得魯棒的語言信息來提升識別性能成為了最近場景文本識別任務(wù)中比較受歡迎的思路。
3. 統(tǒng)計語言模型(n-gram)
由鏈?zhǔn)椒▌t可以得到:
可以通過采用極大似然估計來計算每個詞出現(xiàn)的條件概率,但是對于任意長的自然語言語句,根據(jù)極大似然估計直接計算P(wn|w1,w2,…wn-1)顯然不現(xiàn)實(計算量太大)。因此為了解決這個問題,n-gram語言模型引入馬爾可夫假設(shè)(Markov assumption),即假設(shè)當(dāng)前詞出現(xiàn)的概率只依賴于前 n-1 個詞,可以得到:
n=1 unigram:
n=2 bigram:
…
因此,綜上可以看出,基于n-gram的語言模型有如下優(yōu)點:1)完全包含了前n-1個詞的全部信息。2)可解釋性強。對應(yīng)也有缺點:1)缺乏長期依賴關(guān)系。2)參數(shù)空間隨著n增大指數(shù)型增長。3)單純的基于統(tǒng)計頻次,泛化能力差。
二、基于深度學(xué)習(xí)的解決思路
在目前基于深度學(xué)習(xí)的語言模型結(jié)構(gòu)主要包括三個類別:基于RNN的語言模型,基于CNN的語言模型和基于Transformer的語言模型。接下來我會對它們進行依次介紹,并且逐一分析他們的優(yōu)缺點。
1.通過RNN的語言模型結(jié)構(gòu)
圖2基于RNN的語言模型結(jié)構(gòu)
隨著深度學(xué)習(xí)的發(fā)展,在受到NLP(Natural Language Processing)等任務(wù)的啟發(fā),Lee等人[1]在視覺特征建模之后,通過引入RNN(Recurrent Neural Networks)代替?zhèn)鹘y(tǒng)的n-gram進行語言模型建模(圖2所示)。RNN通過自回歸的方式(Auto Regression),在t時間步讀取的是t-1步的狀態(tài),即預(yù)測當(dāng)前時間步時會考慮上一時間步的信息,同時通過注意力的方式在glimpse向量中關(guān)注對應(yīng)位置字符的視覺信息。該方法省去了繁瑣的n-gram計算過程,在目前的場景文本識別框架中占據(jù)了主導(dǎo)的地位。
但是基于RNN的語言模型結(jié)構(gòu)存在2個問題:1)梯度消失/爆炸的問題。2)串行計算效率慢。因此,最近的方法對RNN的語言建模方式進行了改進(上下文記憶力差的問題,因為在部分最近的工作中證明對中/短文本影響不大,所以在這里沒有考慮)。
2. 通過CNN的語言模型結(jié)構(gòu)
圖3 視覺和語言模型集成的網(wǎng)路框架
圖4 基于CNN的語言模型結(jié)構(gòu)
為了避免了由RNN造成的梯度消失/爆炸的問題,F(xiàn)ang等人[2]采用了全卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),并通過一個并行的分支單獨學(xué)習(xí)語言信息(圖3),通過將視覺和語言信息集成的方法提升了識別結(jié)果。
基于CNN的語言模型如圖4所示,給定 ,輸出向量 由下式獲得:
sk-2和 sk-1是之前時間步對應(yīng)的向量,因此,該結(jié)構(gòu)可以看成一個近似的bigram語言模型。但是由于該語言模型也是串行的操作過程,導(dǎo)致其計算效率也較慢。
3. 通過Transformer的語言模型結(jié)構(gòu)
圖5 視覺語言模型解耦的網(wǎng)絡(luò)結(jié)構(gòu)
圖6 基于transformer的語言模型結(jié)構(gòu)
Yu等人[3]將語言模型從視覺部分解耦,然后在兩個獨立的結(jié)構(gòu)中分別進行進行視覺和語言模型的建模,最后通過融合視覺和語言信息進行文本預(yù)測(圖5所示)。在語言模型部分,該方法采用了Transformer的結(jié)構(gòu)(圖6所示),通過Transformer中的mask來模擬語言結(jié)構(gòu)中的順序和逆序的建模過程,最終自適應(yīng)地融合視覺和語言信息進行識別。由于Transformer的結(jié)構(gòu)特點,識別過程不同的時間步并行操作,提升了識別效率。
三、語言模型的問題
圖7 語言信息幫助提升識別結(jié)果的效果圖(上:沒有語言模型。下:加入語言模型。)
語言模型能夠幫助在視覺信息不充足的情況下,提升識別的結(jié)果。如圖7所示,語言模型提取的語言信息能夠有效地幫助在視覺缺失,模糊,噪聲的情況下實現(xiàn)準(zhǔn)確的識別結(jié)果。雖然語言模型提升效果顯著,但是也存在著以下幾個問題:1)OC(outside vocabulary)問題。2)計算復(fù)雜度高。
針對OC問題,Wan等人[4]指出了目前基于注意力的方法容易在訓(xùn)練集中沒有出現(xiàn)過的詞匯中識別錯誤,且精度和在測試過程中使用訓(xùn)練集中出現(xiàn)過的詞匯的效果之間gap遠(yuǎn)大于基于分割的識別方法,因此如何獲得一個魯棒的語言模型是一種挑戰(zhàn)。對于計算量問題,雖然目前Transformer應(yīng)用于識別是一種趨勢,且能夠通過并行計算提升識別效率,但是對于長文本的識別,其計算量增加明顯(RNN為線性增長,Transformer為平方增長)。
四、未來展望
語言模型最近是場景文本識別領(lǐng)域比較熱門的研究方向,在我看來語言模型部分以后的研究大致會分為兩個方向:1)結(jié)構(gòu)。即如何通過搭建更強壯的語言模型捕捉更魯邦的語言信息。2)能力。如何降低OC問題的影響。3)計算量。如何在低計算量的前提下提取有效的語言信息。
最近的方法中,僅通過捕捉視覺特征也能取得不錯的效果(基于視覺特征匹配[5])。對于無序的識別(車牌識別),Yue等人[6]引入了位置信息增強視覺特征進行識別。因此,在作者看來,未來的文本識別發(fā)展一定是多元化的,即視覺和語言模型并行發(fā)展,針對不同的具體任務(wù)會有不同的改進。
以上就是詳解提升場景文本識別中的語言模型的詳細(xì)內(nèi)容,更多關(guān)于提升場景文本識別中的語言模型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
bilibili彈幕轉(zhuǎn)ass程序制作思路及過程
本文主要是為了方便線下播放Bilibili的彈幕,而專門制作的一款將彈幕轉(zhuǎn)換為ASS的程序,介紹了程序制作的思路及過程,有需要的朋友可以參考下2014-09-09IntelliJ IDEA插件EasyCode安裝方法與使用技巧
這篇文章主要介紹了IntelliJ IDEA插件EasyCode安裝方法與使用技巧,需要的朋友可以參考下2020-03-03Scala函數(shù)式編程專題--scala基礎(chǔ)語法介紹
這篇文章主要介紹了scala基礎(chǔ)語法的的相關(guān)資料,文中講解非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06