劉 恒 陳姚節(jié),2 許曉峰
(1.武漢科技大學計算機科學與技術(shù)學院 武漢 430065)
(2.智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室 武漢 430065)
當下,文本的檢測與識別在導航定位、證件識別、安防監(jiān)控等領(lǐng)域有重要的使用價值,而文本檢測作為文本識別的先覺條件自然成為了計算機視覺領(lǐng)域的一個研究熱點。主流的場景文本檢測算法分為兩類,基于候選框的回歸算法和基于圖像分割的算法,雖然這兩類算法相較于依賴手工設(shè)計特征去進行特征提取和分析的傳統(tǒng)算法存在著巨大的優(yōu)勢,但它們也存在著一些問題?;诤蜻x框的回歸算法在得到最后的預測框之前存在著設(shè)置預選框和去重的操作,而基于分割的算法最終得到的預測框太依賴于分割的精度。針對上述兩類方法存在的問題,本文將最近在自然語言處理領(lǐng)域大放異彩的Transformer[1]應用在文本檢測領(lǐng)域中,因此基于Transformer的場景文本檢測網(wǎng)絡(luò)應運而生。
深度學習近些年在眾多研究領(lǐng)域的嘗試以及成功,展現(xiàn)了它的優(yōu)勢以及獨特的魅力,這份優(yōu)勢也同樣影響了文本檢測領(lǐng)域。其中回歸和分割方法是文本檢測的強力手段。
文字的出現(xiàn)往往成段落式,一塊文字恰好可以用包絡(luò)框圍住,許多學者基于邊界框回歸的思想進行文本檢測。CTPN[2]算法在網(wǎng)絡(luò)中設(shè)定了一個固定寬度大小的anchor 使用雙向長短記憶神經(jīng)網(wǎng)絡(luò)進行文本行檢測,該方法有效地解決了場景圖像中文本行具有復雜長寬比的問題。Jiang 等提出的R2CNN[3]為了解決圖像中具有極端長寬比和多方向的文本難以檢測的問題,首先使用了不同尺度的感興趣區(qū)域池化操作,增加了特征尺寸,然后在Fast R-CNN 中額外增加了一個分支預測傾斜框,最后并在該支路后采用了非極大值抑制后處理算法得到檢測結(jié)果。TextBoxes[4]算法在SSD 算法的基礎(chǔ)上修改其anchor 來檢測不同比例的文本。TextBoxes++[5]方法通過四邊形或者傾斜的矩形來表示圖像中的文本區(qū)域,在SSD的多個輸出層后面通過預測回歸從而檢測任意方向的文本區(qū)域。Liao等著力于解決文本與軸向角度過大的情況,提出RRD[6]方法關(guān)注其旋轉(zhuǎn)不變的特征,并實驗驗證了文本與軸向角度過大時此方法的有效性。He 等提出SSTD[7]方法學習生成注意力圖來突出文本區(qū)域,然后將生成的注意力圖與原始圖像進行元素級別的相乘操作,使得文本區(qū)域的特征得到增強。Ma 等提出的RRPN[8]方法提出了旋轉(zhuǎn)區(qū)域建議網(wǎng)絡(luò),該方法通過對角度信息進行調(diào)整,然后進行邊框回歸以達到檢測任意方向的文本。
基于分割的文本檢測方法主要是對全卷積網(wǎng)絡(luò)(FCN)[9]的改進。Long S 等基于FCN 提出TextSnake[10]算法,該方法利用全卷積網(wǎng)絡(luò),借助多候選框能夠檢測出水平、多方向和彎曲的文本。PixelLink[11]算法在對特征圖中的像素進行預測時,首先,通過對像素進行二分類,即像素歸為文本或非文本;然后,基于連通域操作將該像素周圍8 個方向存在預測為文本類的像素歸為一個區(qū)域;其次進行噪聲過濾去除操作;最后通過并查集得到最終的文本邊界框。Zhou等提出的EAST[12]算法采用一個全卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn)文本區(qū)域的檢測,其特征提取網(wǎng)絡(luò)通過特定的分支網(wǎng)絡(luò)來進行文本和非文本的二分類,并且還對文本區(qū)域進行了曼哈頓方向的回歸,以獲取文本的旋轉(zhuǎn)角度和形狀。Liao 等提出的Mask TextSpotter[13]算法共享網(wǎng)絡(luò)和多任務(wù)損失函數(shù)進行端到端的訓練,通過分割掩碼機制對區(qū)域進行細分,能應對不同形狀、大小和方向的文本。Xie 等提出的SPCNet[14]算法利用空間優(yōu)先的上下文信息來提高文本檢測的性能,通過多個分支的卷積神經(jīng)網(wǎng)絡(luò)進行文本區(qū)域的分類和定位,能夠適應不同形狀和復雜背景的文本檢測任務(wù)。Wang等提出了一種基于分割的算法PSENet[15],它先對文本行不同核大小做預測,然后采用漸進式算法將小文本核擴展到最終的文本行大小,因此它可以很好地區(qū)分相鄰行。CRAFT[16]算法通過兩個并行分支網(wǎng)絡(luò)來對每個像素進行文本/非文本和字符級別的分類,引入兩個表示文本方向的熱圖,CRAFT 算法能夠利用角度信息來輔助文本檢測。Liao 等提出DB[17]算法,將ResNet網(wǎng)絡(luò)所提取的特征送入特征金字塔中,并提出可微分近似二值化替換固定閾值的一般二值化,使該過程可與分割網(wǎng)絡(luò)一起訓練,該方法可以很好地區(qū)分前背景對象和距離相近的文本實例。
基于對邊界框執(zhí)行回歸操作的文本檢測方法不夠直觀,主要有兩個問題:存在著對網(wǎng)絡(luò)生成的預選框、先驗框進行回歸和分類,而非端到端的一步到位的直接預測目標框的問題;模型的效果會受到后處理消除大量重疊框、anchors 的設(shè)計、怎么把目標框與anchor 關(guān)聯(lián)起來等問題的影響?;诜指畹姆椒梢詫Χ喾较蚝筒煌螤畹奈谋具M行檢測,但往往依賴于邊界框或像素級掩模來表示文本區(qū)域。針對不同形狀的文本和復雜的文本尺度影響文本檢測精度的情形,本文提出了一種將文本檢測轉(zhuǎn)化為一個序列預測的任務(wù)方法,即在CNN 后增加Transformer模塊[18],由輸入圖像直接得到預測結(jié)果,在Transformer模塊中將自注意力機制改為可變形注意力機制解決小目標文本的問題,提高文本檢測性能。
通過將文本檢測看作集合預測問題,本文簡化了訓練網(wǎng)絡(luò)。如圖1 所示,首先將圖片傳入骨干網(wǎng)絡(luò)為ResNet50 的標準CNN 網(wǎng)絡(luò)中得到多尺度特征圖,然后將得到的特征圖采用注意力機制傳到圖中黑框部分名為Transformer的編解碼器結(jié)構(gòu)。Transformer 是一種利用注意力機制實現(xiàn)了并行預測序列的結(jié)構(gòu),并且它的自注意機制可以將序列中全部的元素進行兩兩交互,因此此架構(gòu)特別適合于特定的集合約束。
圖1 基于可變形注意力Transformer的檢測模型結(jié)構(gòu)
本文的檢測模型在最后輸出預測結(jié)果時一次性預測所有文本對象,并通過損失函數(shù)在預測文本和真實文本之間進行二分圖最大匹配。檢測模型首先通過舍棄設(shè)置預選框、去重等操作,從而簡化了檢測網(wǎng)絡(luò)。然后,與大多數(shù)文本檢測方法不同,該網(wǎng)絡(luò)不需要任何人為設(shè)計的網(wǎng)絡(luò)去篩選預測框,因此可以在任何包含標準CNN 和Transformer 類的框架中輕松復制。
與以往直接預測文本對象的方法相比,該方法的主要特點是將二部匹配損失和Transformer 與并行譯碼結(jié)合起來。本文的匹配損失函數(shù)唯一地將一個預測賦給一個真實文本對象,并且對預測文本對象的排列不變,因此我們可以并行地輸出它們。
本文在Transformer 中將它原本的自注意力機制改為了可變形注意力機制,它結(jié)合了可變形卷積稀疏空間采樣的優(yōu)點和Transformer 的關(guān)系建模能力,解決了算法收斂速度慢、復雜度高的問題。可變形注意力模塊只會關(guān)注參考點附近少量的關(guān)鍵采樣點,作為突出的關(guān)鍵元素代表特征圖上所有的像素,即在高分辨率特征圖上計算復雜度也不會太大。
3.2.1 編碼器
編碼器的結(jié)構(gòu)如圖2 左黑框所示,首先,此部分結(jié)構(gòu)由N個完全相同的大模塊堆疊而成;然后,對于這每一個大的模塊又可以分為兩個模塊,分別是多頭注意力層和前饋神經(jīng)網(wǎng)絡(luò)層;其次,繼續(xù)挖掘模塊的組成,多頭注意力模塊可以分為放縮點積注意力層和正則化層,而前饋神經(jīng)網(wǎng)絡(luò)層可以分為線性層和正則化層。
圖2 Transformer結(jié)構(gòu)圖
1)放縮點積注意力機制
與人的視覺注意力類似,注意力機制的本質(zhì)是通過快速瀏覽全局圖像,獲得需要特殊關(guān)注的局部區(qū)域,然后對這部分區(qū)域進行重點關(guān)注,得到其更多的細節(jié)信息。
不同于傳統(tǒng)Attention 的形式,Transformer 采用的是參數(shù)矩陣之間進行點積運算來計算相似度的Attention,計算輸出矩陣的方法如下所示:
如式(1)所示,在計算Attention 的時候先用矩陣Q點乘矩陣K的轉(zhuǎn)置在除以dk的平方根,將計算得到的結(jié)果經(jīng)過softmax 后點乘V 矩陣得到最終結(jié)果。在上述的計算過程中矩陣之間的運算采用的都是點乘而非加法,從大部分人的數(shù)學認知上來看,這顯然會增加計算量,但是換個角度想,矩陣加法在作為一個整體的去計算Attention 的時候相當于一個隱層,整體的計算量和點乘是類似的。
注意到標題的放縮字樣,公式中的dk就很好的反映了這一點。如圖3 所示,隨著輸入向量x的增大,剛開始向量點積結(jié)果增大的速度極快,而快到臨界值時,此時softmax 的梯度趨近于0,顯然這對于模型的訓練不友好,所以加入dk這一放縮因子緩解此現(xiàn)象。
圖3 向量點積結(jié)果圖
2)多頭注意力機制
類似于卷積神經(jīng)網(wǎng)絡(luò)中一個卷積層使用多個卷積核的模式,Transformer也使用了多個放縮點積注意力層組成了多頭注意力模塊。如圖4所示。在多頭注意力模塊中,每一個注意力模塊都接受了三個參數(shù)矩陣KQV 作為輸入,它們分別通過層歸一化后進入放縮點積注意力模塊計算Attention,最后通過合并和歸一化后得到輸出。不難看出多個注意力模塊的作用是允許模型在不同的表示子空間里學到相關(guān)的信息。如下公式表示:
圖4 多頭注意力模塊
式(2)、(3)中的是第i頭的輸出,h為模塊頭的總數(shù),,,,為參數(shù)矩陣,,,分別對Q、K、V進行線性映射,對多個頭的輸出進行線性映射,并且∈,∈,∈,∈。
3.2.2 解碼器
解碼器的模塊組成如圖2 右邊黑框所示,解碼器同樣由N個相同的層組成,每一層包含遮掩多頭注意力模塊和多頭注意力模塊。其中遮掩多頭注意力模塊的部分用于將未來的信息遮掩掉,因為在生成的時候是無法知道未來的信息的;多頭注意力模塊除了接收來自每個編碼器層輸出的兩個矩陣K和V之外,解碼器還加入了第三個矩陣Q,與矩陣K、V一起作為輸入,然后執(zhí)行多頭注意力操作得到最后的輸出信息。參照編碼器的結(jié)構(gòu),解碼器同樣在每個模塊的最后加入了殘差連接,然后正則化。
3.2.3 位置編碼
Transformer 中的Attention 機制并沒有包含位置信息,即序列中的詞在不同位置時在Transformer中體現(xiàn)不出區(qū)別,這顯然不符合常理。因此非常有必要在Transformer 中加入位置信息。位置編碼公式如下:
在式(4)、(5)中,PE為二維矩陣,i為詞語關(guān)聯(lián)的向量位置,pos為詞語輸入位置,dm代表i的維度,采用正弦操作和余弦操作的原因是可以得到詞與詞之間的相對位置以此填滿PE矩陣,因為
即由sin(pos+k)可以得到,通過線性變換獲取后續(xù)詞語相對當詞語的位置關(guān)系。
在圖像特征圖上應用Transformer 注意力的關(guān)鍵問題是,在初始化時注意模塊會對特征圖中的所有像素施加幾乎一致的注意權(quán)重,即它會關(guān)注所有可能的空間位置,這樣會導致處理高分辨率特征圖的計算和內(nèi)存復雜度非常高,從而導致從高分辨率圖像中檢測出小物體非常的困難。為了解決這個問題,本文采用了可變形注意力模塊,僅關(guān)注少量采樣點,為每次詞語分配少量key。給定輸入特征圖X∈RC×H×W,用q作為一個query 元素的索引,其特征表示是zq,二維參考點pq,可變形注意力特征的計算如下:
其中m是注意力head 的索引,k是采樣keys 的索引,K是所有采樣key 的個數(shù)(K<<HW)。 Δpmqk和Amqk分別表示第m個注意力head 中第k個采樣點的采樣偏移量和注意力權(quán)重。標量注意力權(quán)重Amqk位于[0,1]之間,用做歸一化。Δpmqk∈R2是二維實數(shù),取值范圍沒有限制。因為pq+Δpmqk是小數(shù),故采用了雙線性插值。Δpmqk和Amqk是對query 特征zq做線性映射得到的。在實現(xiàn)時,query 特征zq輸入進一個有3MK 個通道的線性映射操作符,前2MK 個通道編碼采樣偏移量Δpmqk,剩下的MK 個通道則輸入進一個softmax 操作符,得到注意力權(quán)重Amqk。
由于圖像中物體的形狀各異且大小不一,甚至存在著一些極小、極大等極端狀況,因此為了更精確的檢測目標物體,多尺度特征圖就顯得尤為重要。那么為了更好地對復雜形狀的文本進行檢測,本文的可變形注意力模塊可以擴展到多尺度特征圖上。
式(9)中m是注意力head的索引,l是特征圖層級的索引,k是采樣點的索引。Δpmlqk和Amlqk分別表示第m個注意力head 在第l個特征層級上第k個采樣點的采樣偏移量和注意力權(quán)重。標量注意力權(quán)重Amlqk用做了歸一化。這里,使用歸一化坐標p?q∈[0,1]2為了尺度表述更清晰,歸一化的坐標(0,0)和(1,1)分別表示圖像的左上角點和右下角點。函數(shù)?l(p?q)對歸一化的坐標重新做了縮放,符合第l 個特征圖層級。多尺度可變形注意力和之前的單尺度版本很像,除了它會從多尺度特征圖上采樣LK個點,而不是單尺度特征圖的K個點。
本文的數(shù)據(jù)集(場景文本數(shù)據(jù)集)收集并制作了10000 張包括明亮、灰暗等各式背景圖片,其中8000 張圖片用于訓練,2000 張圖片用于測試,每一份標簽數(shù)據(jù)都是在圖片調(diào)整分辨率為512*512 后生成文字然后標注而成。標簽文件中的標注由文本區(qū)域的左上角頂點坐標和右下角的坐標共4 個數(shù)字組成。
ICDAR-2013(IC13)是一種常用的多方向英文場景文本檢測數(shù)據(jù)集。數(shù)據(jù)集中的圖像涵蓋了各種不同的條件和場景,例如低分辨率、不同的字體和語言、噪聲、傾斜等。
為了提升數(shù)據(jù)集的多樣性,對訓練中的數(shù)據(jù)集進行了數(shù)據(jù)增強,包括:裁剪、水平翻轉(zhuǎn)、腐蝕。在進行數(shù)據(jù)增強后的數(shù)據(jù)集樣例效果圖如圖5所示。
圖5 數(shù)據(jù)增強樣例
本文的檢測器使用ImageNet 預訓練的ResNet-50 作為骨干網(wǎng)絡(luò),將初始的學習率設(shè)置為2e-4,學習率的衰減大小為1e-5,并且所有網(wǎng)絡(luò)都采用AdamW 進行優(yōu)化。本文的實驗在RTX 2070super 上進行,在IC13 和本文的數(shù)據(jù)集分別訓練100個epoch后進行測試。
本文在IC13 數(shù)據(jù)集上采用精確率Precision 和召回率Recall 以及F1 值對模型進行評價。精確率反映模型對文本行的查準率,召回率反映模型對文本行的查全率。F1 則反映了模型性能的好壞。公式如下:
其中,TP 代表判定是正樣本,真實標簽也是正樣本;FP 代表判定是正樣本,但其實是負樣本;FN 為判定是負樣本,但實際上是正樣本。F1 值越高則檢測器對文本的檢測越有效。
本文在場景文本數(shù)據(jù)集上采用平均精確度AP對模型進行評價。如下公式:
在這一積分中,p代表精確度,r代表召回率,p是一個以r為參數(shù)的函數(shù),積分的結(jié)果為對0~1 之間的多種閾值下的精確度與召回率相乘累加而得。
表1為各方法在ICDAR2013上的測試結(jié)果,從表上的數(shù)據(jù)不難看出本文方法明顯優(yōu)于CTPN 等傳統(tǒng)方法,在F1score 指標上,本文方法比R2CNN高了3.66%。
表1 本文檢測模型與其他檢測模型在IC13上的指標
表2為各方法在ICDAR2015上的測試結(jié)果,從表上的數(shù)據(jù)可以看出本文方法要優(yōu)于基于分割的PSENet 算法,在F1score 指標上,本文方法比PSENet高了4.18%。
表2 本文檢測模型與其他檢測模型在IC15上的指標
表3 為各方法在MSRA-TD 500 上的測試結(jié)果,從表上的數(shù)據(jù)可以得到本文方法比DB 算法高了2.67%。
表3 本文檢測模型與其他檢測模型在MSRA-TD 500上的指標
表4 為本文方法與Faster RCNN 和不含可變形注意力的Transformer檢測模型的對比,從表上的數(shù)據(jù)來看出,基于Transformer 的檢測模型與Faster RCNN 在性能上只有微弱的差別,而在Transforner上增加了可變形注意力機制后,檢測效果得到了明顯的提高,體現(xiàn)在Ap(0.50∶0.95)上升了4.03%。
表4 本文檢測模型與其他檢測模型在場景文本數(shù)據(jù)集指標
如圖6 所示,本文的檢測模型在具有不同背景和不同尺寸大小情況下的檢測樣例。
圖6 檢測結(jié)果樣例
為了更直觀地感受模型檢測文本的效果,本文將編碼器和解碼器中最后一層的采樣點與權(quán)值可視化。如圖7 所示,每個取樣點被標記為一個填充的圓點,預測的邊界框顯示為一個矩形。由圖上圓點的分布不難看出,模型會更注意文本所在的區(qū)域,即圓點會密集的會聚在文本區(qū)域,而在非文本區(qū)域圓點則呈現(xiàn)分散的狀態(tài)。
圖7 采樣點可視化樣例
如圖8 所示,與不采用多尺度可變形注意力機制相比,應用了多尺度可變形注意力機制,模型從計算整個特征圖的復雜度,下降到只用計算采樣點及其周圍幾個像素點的復雜度,致使訓練loss 下降的速度增快了幾倍,模型的收斂需要的epoch 自然而然的減少。
圖8 是否采用多尺度可注意力機制loss下降對比
本文提出了一種基于可變形注意力機制改進的Transformer的場景文字檢測模型,模型利用了基于ResNet 作為骨干網(wǎng)絡(luò),結(jié)合Transformer 編解碼模塊,實現(xiàn)端到端的圖像文字檢測。模型的有以下優(yōu)點:沒有傳統(tǒng)邊界回歸方法的一些后處理操作,如消除大量重疊框、anchors 的設(shè)計等;采用了可變形注意力模塊,讓模型只關(guān)注參考點附近少量的關(guān)鍵采樣點,減少高分辨率特征圖的計算復雜度,這樣能在高分辨率特征圖上檢測到小目標。
從實驗分析得到的結(jié)果來看,本文方法在場景文本檢測領(lǐng)域擁有著能與Faster RCNN 媲美的性能,因此本方法能使用在類似證件照識別,安防監(jiān)控等存在文字檢測需求的領(lǐng)域中。