王明宇
(格拉斯哥大學(xué) 英國蘇格蘭格拉斯哥 G128QQ)
自然場景圖像的文本檢測與識別技術(shù)有助于獲取、分析和理解場景內(nèi)容信息,對提高圖像檢索能力、工業(yè)自動化水平和場景理解能力具有重要意義。它可以應(yīng)用于自動駕駛、車牌識別和智能機器人等場景,具有很大的實用價值和廣闊的研究前景。
與以往用于印刷文本的OCR 技術(shù)不同,自然場景中的文本檢測和識別任務(wù)更加困難。復(fù)雜的背景使得許多文本很難從背景物體中區(qū)分出來。目前的研究通常將自然場景中的文本識別分為兩個步驟:文本檢測和文本識別。即用視覺處理技術(shù)提取中文文本,用自然語言處理技術(shù)獲取文本內(nèi)容。這兩個步驟密切相關(guān),文本檢測結(jié)果的準(zhǔn)確性直接影響到最終的文本識別結(jié)果。因此,本文開發(fā)了一個將檢測和識別這兩個步驟整合在一起的應(yīng)用,以提高識別的效率。
本文的研究內(nèi)容主要包括以下三個方面。
(1)結(jié)合目標(biāo)檢測的知識,對SegLink 模型進行了分析和改進。利用連接組件的CNN 網(wǎng)絡(luò)對檢測結(jié)果進行過濾,提高檢測結(jié)果的準(zhǔn)確性。
(2)針對自然場景文本識別的不足,設(shè)計了結(jié)合二維CTC 和注意力機制的適應(yīng)性強的文本識別模型。本文詳細(xì)介紹了二維CTC的原理以及連接二維CTC 和注意力機制模型的文字識別全過程,并介紹了Encoder-Decoder 模型的詳細(xì)改進和操作,進一步提高對不規(guī)則和傾斜文本序列的識別精度。
(3)通過整合檢測和識別框架,設(shè)計并實現(xiàn)了一個端到端的自然場景文本檢測和識別系統(tǒng),并對識別效果進行了驗證。結(jié)果表明,所提出的模型取得了良好的效果。
SegLink 是一個深度神經(jīng)網(wǎng)絡(luò)文本檢測模型,它將一個文本行視為多個文本片段的集合,這些片段可以是一個字符或文本行的任何部分。這些文本片段被連接在一起,形成一個文本行。在SegLink 的基礎(chǔ)上,本文提出通過使用CNN 網(wǎng)絡(luò)對連接部件進行進一步過濾,以提高檢測結(jié)果的準(zhǔn)確性。如圖1所示。
圖1:SegLink 的網(wǎng)絡(luò)結(jié)構(gòu)
SegLink 文本檢測網(wǎng)絡(luò)使用一個前饋CNN 來檢測文本。給定尺寸為W1×H1 的圖像I,該模型輸出固定數(shù)量的文本片段和連接,根據(jù)置信度對其進行過濾,把過濾后的連接作為邊,構(gòu)造為單詞邊界框。
該網(wǎng)絡(luò)使用vGG16 作為特征提取網(wǎng)絡(luò),從圖像中提取特征,其中vGG16 中的全連接層(FC6,F(xiàn)C7)被卷積層(conv6,conv7)取代。受SSD 網(wǎng)絡(luò)的啟發(fā),SegLink 使用3*3 的卷積層為每層的特征圖生成預(yù)測內(nèi)容,圍繞方框的文本片段為傾斜方框,用S=(xs,ys,ws,hs,θs)表示。每層卷積預(yù)測器產(chǎn)生7 個通道的預(yù)測內(nèi)容,其中兩個通道分別代表默認(rèn)方框為文字/大寫的概率,并進行softw=Max 歸一化,得到文字置信度。剩下的5 個通道代表默認(rèn)框的幾何偏移內(nèi)容。特征圖中某一位置的坐標(biāo)為(x,y),預(yù)測內(nèi)容中的五個通道的內(nèi)容(ΔxS,Δys,ΔwS,Δhs,Δθs)用來表示該位置的文本片段。文本片段幾何信息的位置是用以下公式確定的。
常數(shù)al控制輸出文本片段的大小,它根據(jù)第L 層接受域的大小決定。
將一對相鄰的文本片段連接起來,表示它們屬于同一個詞,如圖2所示。文本片段之間的連接也是由卷積預(yù)測器預(yù)測的。每個鏈接有兩個分?jǐn)?shù),一個是正分?jǐn)?shù),另一個是負(fù)分?jǐn)?shù)。正分用來表示這兩個片段是否屬于同一個詞,應(yīng)該被連接起來;負(fù)分表示它們是否是獨立的詞,應(yīng)該被斷開。每個片段的鏈接是一個8×2=16 維的向量。這兩個通道的值將進一步被softmax 規(guī)范化,以獲得連接的置信度。
如圖2 部所示,黃色方框的鄰居是兩個藍色方框,它們之間有一條連接線(綠線),表明它們屬于同一個詞。
圖2:層內(nèi)鏈路和跨層鏈路
鄰居的歸一化定義為公式(6)。
在這個網(wǎng)絡(luò)中,同一個詞可能在不同的層被檢測到,每個卷積層在一定的尺度范圍內(nèi)智能處理詞。為了解決重復(fù)檢測的冗余問題,引入跨層連接。跨層連接可以將在兩個特征層檢測到的具有關(guān)聯(lián)性的文本片段連接起來。該公式定義如下。
每個文本片段都有4 個跨層連接,這是由兩層特征圖像之間的長度、寬度和倍數(shù)關(guān)系保證的。同樣,跨層連接也是由卷積預(yù)測器預(yù)測的,它輸出8 個通道的值,用于預(yù)測當(dāng)前文本片段和4 個跨層連接段之間的連接關(guān)系。對每2 個通道進行Softmax 歸一化,以產(chǎn)生置信度分?jǐn)?shù)。
跨層連接允許連接并合并不同大小的文本片段。與傳統(tǒng)的非最大抑制算法相比,跨層連接提供了一種可訓(xùn)練的冗余連接方式。
圖3 展示了卷積預(yù)測器的輸出通道,它由一個卷積層和一個Softmax 層實現(xiàn)。
圖3:卷積預(yù)測器的輸出通道
如圖4所示,測試網(wǎng)絡(luò)最終會產(chǎn)生一系列的文本片段和鏈接,按照置信度進行排序和過濾,α 和β 分別代表片段和鏈接的閾值(通過網(wǎng)格搜索發(fā)現(xiàn)這兩個值是最優(yōu)的)。將每個片段視為節(jié)點,鏈接視為邊,建立圖模型,然后用DFS(深度優(yōu)先搜索)來尋找連接成分,每個連接成分就是一個詞。然后再把輸出的詞一起融合在box 中。
圖4
算法1 實際上是一個平均化的過程。首先,計算出所有片段的平均θ,作為詞的θ。然后,以得到的θ 為給定條件,找到最有可能通過每段的線(線段)。以線段的中點作為Word 的中心點(x,y)。用所有線段的平均高度作為字的高度。
SegLink 在窗口層面對圖像進行操作,但是在文本鏈接組件層面沒有特征約束。因此提取的候選文本對象不一定完全是文本,有時可能是一些具有類似整體文本特征的非文本區(qū)域。在此基礎(chǔ)上,我們通過對提取的文本候選區(qū)域使用基于CNN 的字符級過濾算法來改進SegLink 網(wǎng)絡(luò),進一步排除非文本候選區(qū)域,從而提高圖像中文本檢測的準(zhǔn)確性。
具體來說,首先對SegLink 提取的字級文本進行MSER 區(qū)域檢測,并將檢測到的MSER 區(qū)域的最大邊界框作為字符的邊界框,從而將字分割為字符級的候選文本。然后,將分割好的候選字統(tǒng)一調(diào)整大小,作為CNN 分類器的輸入,并進行評分,得到每個候選字的字符文本置信度。在此之后,對同一單詞分割得到的所有候選字符使用非最大抑制算法,得到一個單詞中所有字符的平均得分,作為該單詞的文本置信度,并將置信度低于一個閾值的詞過濾掉。如圖5所示。
圖5:Char-CNN 結(jié)構(gòu)
與A4 紙上的印刷文字不同,自然場景中的文字多為空間排列不規(guī)則、噪聲較大的文字。雖然CRNN+CTC 的收斂速度較快,但CRNN 存在解碼信息缺失的問題,并且CTC 模型要求的特征序列高度為限制了識別能力?;贏ttention 機制的sequence to sequence模型收斂速度慢,但準(zhǔn)確率比CRNN+CTC 模型高,但它也有缺陷。基于注意力機制的序列到序列模型在一定程度上對自然場景中的英語有較高的識別率。但對自然場景中的中文的識別效果并不理想。為了解決上述問題,本文提出了一種基于連接二維CTC 的序列和注意力機制的文字識別模型。
二維CTC 消除了背景噪音的影響,可以自適應(yīng)地關(guān)注空間信息。它還可以處理各種形式的文本實例(水平、定向和彎曲),同時給出更多的中間預(yù)測。對于二維CTC,在路徑搜索中增加了一個額外的維度:除了時間步長(預(yù)測長度)之外,還保留了高概率分布。它確保所有可能的高路徑都得到考慮,不同的路徑選擇仍可能導(dǎo)致相同的目標(biāo)順序。
二維CTC 也需要在高度維度上進行歸一化。一個單獨的SoftMax 層產(chǎn)生了一個額外的形狀為H×W 的預(yù)測路徑轉(zhuǎn)換圖。概率分布和路徑轉(zhuǎn)換被用于損失計算和序列解碼。二維CTC 繼承了CTC 的對齊概念。與一維CTC 相比,二維CTC 實質(zhì)上是將高度轉(zhuǎn)化為大小,從而緩解了信息丟失或連接的問題,為CTC 解碼提供了更多的路徑。
基于二維CTC和注意力機制的文本序列識別框架分為兩部分。編碼部分由一個卷積神經(jīng)網(wǎng)絡(luò)和一個多層雙向LSTM 組成,負(fù)責(zé)將圖像轉(zhuǎn)換為特征序列。解碼部分由一個結(jié)合了二維CTC 和注意力機制的序列-順序模型組成。在基于注意力機制的序列-順序解碼中,所有的特征都以語義C 為中心,并為每個特征計算出注意力權(quán)重。解碼過程的計算方法如下。
其中h I 和j 代表第i 個關(guān)系中JTH h 的編碼特征向量,代表由平滑歸一化函數(shù)處理的權(quán)重參數(shù),e代表注意力的權(quán)重,g代表h I,j和的線性變換。最后,生成下一個狀態(tài)s 和下一個標(biāo)簽y。
在這一點上,注意力損失函數(shù)的計算公式為:
其中y*t-1 是第一個t-1 標(biāo)簽序列。
該模型的思路是在多任務(wù)學(xué)習(xí)框架下,用二維CTC 目標(biāo)函數(shù)作為輔助任務(wù)來訓(xùn)練注意力模型編碼器。與注意力模型不同的是,CTC 的前向-后向算法可以實現(xiàn)語音和標(biāo)簽序列的單調(diào)對齊,而且CTC 要求的特征序列高度為1,不能考慮空間信息,而二維CTC可以考慮文本的空間信息。模型的損失函數(shù)的計算方法是:
該系統(tǒng)使用Python 語言開發(fā),實現(xiàn)了基于SegLink 改進和二維CTC 連接關(guān)注機制的端到端文本檢測和識別。
自然場景圖像文本識別模型的處理流程包括文本檢測、文本處理和文本識別。系統(tǒng)檢測到圖像輸入后,首先檢測文字區(qū)域并畫出文字框,然后切出文字區(qū)域進行水平統(tǒng)一處理,并將其轉(zhuǎn)換成灰度圖像。然后,將校正后的文本圖像輸入到文本識別網(wǎng)絡(luò)模型中進行識別,最后輸出識別結(jié)果。
該系統(tǒng)的主界面如圖6所示。系統(tǒng)的各個功能模塊都可以在主頁上直觀地找到。通過網(wǎng)絡(luò)交互,系統(tǒng)簡單明了。通過系統(tǒng)的界面,直接選擇要上傳的圖片。系統(tǒng)的文字識別功能模塊如圖7所示,對文字區(qū)域進行檢測和識別,并在右側(cè)輸出結(jié)果。圖6 是沒有上傳圖像時的系統(tǒng)主界面。圖7 展示了識別結(jié)果的例子。
圖6:系統(tǒng)主界面
圖7:識別結(jié)果界面
在文字檢測方面,通過增加CNN 網(wǎng)絡(luò)的連接部件的濾波器,改進了SegLink 模型,提高了檢測結(jié)果的準(zhǔn)確性。在文字識別方面,針對自然場景文字識別的不足,設(shè)計了一個結(jié)合二維注意力機制和CTC 的文字識別模型,具有較強的適應(yīng)性,進一步提高了不規(guī)則和傾斜文字的識別精度。結(jié)合上述兩項相關(guān)工作,將該框架整合并擴展為一個端到端的識別系統(tǒng)。該系統(tǒng)的實現(xiàn)簡單高效,在水平和多方向的文本數(shù)據(jù)集上有很好的表現(xiàn)。目前的文本檢測和識別只能達到識別和感知。對于場景文本識別,基于深度學(xué)習(xí)的文本檢測和識別的最終目標(biāo)是排版、存儲和分析圖像文本內(nèi)容。由于本人在自然場景文本檢測和識別的技術(shù)領(lǐng)域的研究和學(xué)習(xí)還不夠深入,有很多需要改進的地方,因此提出了兩點建議供大家進一步參考。
(1)本文提出了一個統(tǒng)一的檢測和識別系統(tǒng),對傾斜和彎曲的文本取得了良好的效果。但是,自然場景中仍然存在較大的噪聲和相對變形的形狀。今后將對文字彎曲變形的檢測進行改進。
(2)雖然本文提出的端到端識別模型具有良好的效果,但由于計算機配置有限,識別時間較長,今后將進一步開展工作,縮短檢測和識別時間。