吉訓(xùn)生,喻 智,徐曉祥
(1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122;2.無錫市創(chuàng)凱電氣控制設(shè)備有限公司,江蘇 無錫 214400)
場景文本檢測在產(chǎn)品搜索、在線教育、即時翻譯和電路板字符檢測等有著廣泛的應(yīng)用,受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。由于前景文本和背景物體差異很大,并且文本在形狀、顏色、字體、方向和比例等方面也存在變化的多樣性,文本檢測仍然是一項具有挑戰(zhàn)性的任務(wù)。傳統(tǒng)方法中的特征都是人為設(shè)計的[1-2],需要大量的先驗知識,且模型的魯棒性差?;诨貧w[4-9]和分割[10-13]的深度學(xué)習(xí)的文本檢測方法可以學(xué)習(xí)有效的特征來檢測文本。文獻[4]擴展了SSD (single shot MultiBox detector)算法[3]以解決不規(guī)則文本框呈現(xiàn)的不同長寬比的問題,通過修改卷積內(nèi)核和錨框的大小來有效地捕獲各種文本形狀。文獻[5]在Faster R-CNN[6](Faster Regions with CNN)引入RoI-Pooling(regions of interest pooling),以檢測任意方向的場景文本。文獻[7]使用全卷積網(wǎng)絡(luò)FCN(fully convolutional networks)[8]直接預(yù)測像素級的四邊形框,而不需要文本候選框和預(yù)設(shè)錨點。文獻[9]提出了一種基于FCN的注意機制,從本質(zhì)上抑制了特征圖中的背景干擾,實現(xiàn)文本的精確檢測。文獻[10]先將文本區(qū)域當(dāng)作若干組件,再將文本組件連接為文本區(qū)域以實現(xiàn)文本檢測。文獻[11]將文本實例與像素之間的連通性進行文本分割,再根據(jù)分割結(jié)果生成邊界框。文獻[12]設(shè)計文本中心線,通過文本中心線上多個圓環(huán)來預(yù)測任意形狀文本區(qū)域。李敏等[14]先根據(jù)文本像素顏色進行聚類,再對文本檢測。
為了提升網(wǎng)絡(luò)性能,各種注意力模塊廣泛地應(yīng)用于深度學(xué)習(xí)的中,文獻 [15]計算特征圖中各空間點之間的相關(guān)矩陣,利用非局部模塊生成注意圖,然后引導(dǎo)上下文信息聚合。文獻[16]通過疊加兩個交叉注意力模塊,更有效地從所有像素中獲取上下文信息,有效地增強了特征表示。文獻[17]等提出SE(squeeze-and-excitation)模塊,SE通過建模通道之間的相互依賴關(guān)系,利用網(wǎng)絡(luò)的全局損失函數(shù)自適應(yīng)地重新矯正通道之間的特征相應(yīng)強度,實現(xiàn)各個通道的權(quán)重自動分配。文獻[18]等為了解決通道注意和空間注意只能有效的捕獲了局部信息,但不能捕獲通道之間的長依賴關(guān)系的問題,提出一種有效利用不同尺度特征圖中的空間信息的方法,在更細粒度水平上提取多尺度的空間信息。
在文本實例中兩個字符間距很大或很小時,像素的預(yù)測比較模糊,容易產(chǎn)生誤判。對于基于錨框的檢測方法而言,待檢測的文本長度未知,且文本行的長寬比也未知,無法確定錨框的尺寸,這一定程度上加大了檢測的難度。不僅如此,由于缺乏全局上下文信息,在分割兩個緊密相連的文本實例時,難以通過語義分割的方法來分離,對于長文本的檢測又容易被切分成不同的文本實例。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
為了解決上述問題,本文提出一種像素分配的場景文本檢測方法,采用循環(huán)交叉注意力模塊可以有效聚合上下文信息,像素到文本框的分配可以完成文本實例的檢測。交叉注意力模塊(CCAB,criss-cross attention block)收集每個像素所在的水平路徑和垂直路徑上的信息,進一步通過循環(huán)操作整合全圖范圍內(nèi)的上下文信息。由于不同尺度的特征感受野不一樣,進而側(cè)重描述的信息也不同,為了得到更豐富的多尺度特征,對多尺度特征進行自動分配權(quán)重。本文使用FCN模型和多任務(wù)學(xué)習(xí)機制,將高級對象信息和低級像素信息進行整合,完成任意形狀文本的檢測。其中多任務(wù)學(xué)習(xí)包括文本中心區(qū)域得分(Score),像素到文本框的4個頂點的偏移(Quad),像素到文本框的分配(PBA,pixel to box assignment),像素到文本上下邊界的偏移(TBO,text border offset)。結(jié)合Score的二值化圖和Quad確定文本候選框,通過PBA可以有效地解決長文本被分割成不同文本實例片段以及相鄰較近的文本實例無法區(qū)分的問題。在像素分配過程中,為了更有效地區(qū)分不同的文本實例所屬的文本框,針對候選框外的像素添加一個懲罰來抑制其分配到文本候選框中,最后通過TBO細化多邊形文本框,輸出預(yù)測的文本框的多邊形框。
本文所使用的深度學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)結(jié)構(gòu)如圖1所示,采用全卷積網(wǎng)絡(luò)的多任務(wù)學(xué)習(xí)框架來重建文本區(qū)域的各種幾何特性,通過循環(huán)CCAB模塊聚合上下文信息,采用像素到文本框分配的方法完成文本實例分割。輸入圖像經(jīng)過主干神經(jīng)網(wǎng)絡(luò)提取特征,本文的主干神經(jīng)網(wǎng)絡(luò)采用ResNet50-FPN結(jié)構(gòu),并采用多尺度自適應(yīng)模塊MFA(multi-scale feature adaptive module)來融合不同尺度的特征。融合特征F通過循環(huán)CCAB來整合像素的全局依賴性,以獲取更具代表性的特征F″。在特征F″上多任務(wù)學(xué)習(xí),獲取Score、Quad、像素到PBA以及TBO,結(jié)合4個任務(wù)的結(jié)果后并經(jīng)過后處理得到多邊形文本框。通過Score和Quad先確定粗矩形框,PBA將相鄰的矩形框內(nèi)的像素分配到其對應(yīng)的矩形框中,最后通過TBO對Score圖中的像素進行上下邊框的預(yù)測,根據(jù)每一個像素點到文本框的上下邊界的距離來推導(dǎo)文本框。本文的方法是一種端到端的場景文本檢測方法,輸入場景文本圖像,直接輸出文本區(qū)域的文本框預(yù)測。
不同尺度的特征具有不一樣的感受野,它們所側(cè)重描述了不同尺度的信息。對于視覺任務(wù)而言,有效地提取多尺度特征能夠大大提升特征的表示能力。通道注意力機制自提出以來,被廣泛應(yīng)用到深度學(xué)習(xí)網(wǎng)絡(luò)中,在視覺任務(wù)中其對網(wǎng)絡(luò)性能的提升起到了不可忽視的作用。通道注意力機制允許網(wǎng)絡(luò)有選擇的對各個通道的重要性進行加權(quán),從而有更多的信息輸出。多數(shù)方法中采用了SE模塊來對特征圖的各個通道進行權(quán)重自動分配,但是SE模塊只引入了通道注意力而忽略了全局的空間信息。為了豐富多尺度特征,本文采用多尺度特征自適應(yīng)模塊MFA來加強特征表示。如圖1中主干神經(jīng)網(wǎng)絡(luò)ResNet50-FPN所示,ResNet50-FPN輸出有4個尺度的特征,MFA模塊將對這4個不同尺度的特征進行自適應(yīng)融合。如圖1中多尺度特征自適應(yīng)模塊所示,對每個尺度的特征采用SE模塊提取不同尺度特征圖的注意力,獲取通道方向的注意力向量,通過softmax重新校準(zhǔn)通道方向的注意力向量,獲得多尺度通道的權(quán)重分配。將獲取到的多尺度特征注意力向量逐個對多尺度特征進行加權(quán)。利用MFA模塊獲取到的多尺度特征信息更加細化。
注意力模塊廣泛應(yīng)用于各種任務(wù)中,本文采用循環(huán)交叉注意力模塊更有效地獲取上下文信息。將通過特征提取模塊獲取到的特征F輸入交叉注意力模塊中,生成新的特征圖F′,將縱橫路徑中每個像素的上下文信息結(jié)合。如圖2(a)中灰色路徑所示,特征圖F′僅在水平方向和垂直方向獲取上下文信息,難以獲得更加豐富和密集的上下文信息。因此,將特征圖F′再次輸入交錯注意力模塊,對于圖2(a)中灰色路徑上的所有像素的水平方向和垂直方向再次獲取上下文信息,輸出特征圖F″。本文中的2個交叉注意力模塊共享參數(shù),只增加了一小部分計算開銷,使得網(wǎng)絡(luò)的性能更高。
圖2 交叉注意力模塊的信息示意圖
交叉注意力模塊如圖3所示,特征圖F∈C×H×W經(jīng)過2個1*1的卷積運算分別得到Q∈C′×H×W和K∈C′×H×W,為了減少運算,本文中取C′=C/8。計算Q和K的相似性并獲取到注意力圖。
圖3 交叉注意力模塊細節(jié)圖
A∈(H+W-1)×H×W。計算過程如式(1)所示:
di,u=QuKi,uT
(1)
其中:Qu∈C′是Q在空間維度上位置為u的像素向量,Ku∈(H+W-1)×C′是K在空間維度上位置為u的像素所在水平方向和豎直方向的像素向量,Ki,u∈C′是Ku的第i個元素,di,u是D∈(H+W-1)×H×W在空間維度上位置為u的第i個元素,對D∈(H+W-1)×H×W進行softmax運算得到注意力圖A。
特征圖F∈C×H×W經(jīng)過1個1*1的卷積運算得到V∈C×H×W,將特征圖V在注意力圖A上聚集得到新的特征圖F,計算過程如式(2)所示:
(2)
其中:Ai,u是注意力圖A在空間維度上位置為u的第i個通道上的標(biāo)量值,Vu∈(H+W-1)×C是特征圖V在空間維度上位置為u的像素所在水平方向和垂直方向的像素向量,Vi,u∈C是Vu中的第i個元素,F(xiàn)u∈C是F在空間維度上位置為u的像素向量,C是F′在空間維度上位置為u的像素向量。將獲取到的上下文信息添加到原始的特征圖F中,來聚合上下文信息以及增強特征的表示。交叉注意力模塊的運算通過矩陣的運算來完成運算的加速。
在本文中,通過在增強的特征F″上多任務(wù)訓(xùn)練來獲取Score、QUAD、PBA和TBO,Score如圖4所示,
圖4 多任務(wù)學(xué)習(xí)結(jié)果
再經(jīng)過后處理得到文本的實例分割。將圖像送入 FCN網(wǎng)絡(luò)中,先獲取Score和QUAD,其中Score是像素在[0,1]內(nèi)的得分圖,分數(shù)代表了該像素預(yù)測的幾何形狀的置信度,而Quad表示的是文本區(qū)域的像素到4個頂點的偏移量。Score只有1個通道,Quad中的矩形框有4個頂點以及每個頂點的偏移量包含水平偏移量和豎直偏移量,因此,Quad的輸出包含8個通道。根據(jù)文本中心區(qū)域得分圖和給定閾值進行二值化,以及幾何輸出Quad來獲取四邊形文本候選框,用NMS來抑制重疊的文本候選框,文本候選框如圖4(b)所示。通過PAB將文本中心區(qū)域內(nèi)的像素分配到對應(yīng)的文本框中來區(qū)分不同的文本實例,如圖4(c)所示。先計算四邊形文本候選框的中心點位置,再根據(jù)像素到文本中心點預(yù)測的偏移量來分配到對應(yīng)的文本框,像素的文本中心預(yù)測到候選框的中心有水平偏移量和垂直偏移量。
圖4 多任務(wù)學(xué)習(xí)結(jié)果
像素到不同候選框的分配如圖5所示,C1和C2分別表示不同文本候選框的中心點,像素P1和像素P2分別屬于C1和C2的候選框,用一個向量來表示像素P2到文本框中心C1的預(yù)測,其中doff表示預(yù)測的中心到文本框中心C1的偏移量。為了更加有效地區(qū)別不是該文本框中的像素,針對文本框以外的像素添加一個懲罰,P2屬于文本框C1外的像素,由于P2對文本框中心點C1的預(yù)測向量和文本框的邊界有相交,定義P2到交點的距離dout作為懲罰以抑制像素P2對文本中心點C1的預(yù)測。本文方法結(jié)合高級的對象信息和底層的像素信息,可以有效地將文本中心區(qū)域中的像素分配到對應(yīng)的文本候選框中,并且能夠解決長文本實例在分割時被切割成多個不同文本實例的問題。懲罰dout可以很好地區(qū)分相鄰較近的文本實例。
圖5 像素分配示意圖
通過TBO細化每一個文本實例的文本邊界框,對文本中心區(qū)域的每個像素預(yù)測上下邊界的偏移量重建文本實例的邊界框。如圖6所示,像素P到文本候選框的邊界有水平偏移量和垂直偏移量,而邊界有上下2個邊界,因此TBO的預(yù)測輸出有4個通道。
圖6 像素到上下邊界偏移量示意圖
本文的損失函數(shù)分為4個部分,分別是得分圖損失Lscore,四邊形回歸損失Lquad,像素到文本中心偏移損失Lpba,文本到上下邊界便宜損失Ltbo。多任務(wù)學(xué)習(xí)總損失L的計算如式(3)所示,
L=λ1Lscore+λ2Lquad+λ3Lpba+λ4Ltbo
(3)
其中:λ1,λ2,λ3,λ4用于權(quán)衡4個損失之間的重要性,本文中分別設(shè)置為1,1.5,1.5,1 。在多任務(wù)訓(xùn)練中Lscore為二分類損失,其他3個損失都是回歸損失。
為了簡化計算過程,文本使用EAST[7](efficient and accurate scene text)中介紹的得分圖損失Lscore和四邊形回歸損失Lquad。采用類平衡交叉熵作為Lscore損失,Lscore計算如式(4)和 (5)所示,
(4)
(5)
本文的回歸損失函數(shù)采用smoothedL1和Lquad,計算如式(6)和式(7)所示,
(6)
(7)
其中:CQ={x1,y1, ,x4,y4}是4個頂點的坐標(biāo)值,NQ*為四邊形中的最小邊長,PQ*為不同頂點順序的幾何。本文規(guī)定點的順序為左上角為第一個頂點,左下角為最后一個頂點,頂點按順時針方向排列。而Lpba損失和Ltbo損失直接使用smoothedL1損失計算。
本文主要采用Total-text[19]和ICDAR2015[20]兩個公共數(shù)據(jù)集作為訓(xùn)練與測試數(shù)據(jù)集。Total-text是一個具有挑戰(zhàn)性的任意形狀文本檢測數(shù)據(jù)集,它由1 255張訓(xùn)練圖片和300張測試圖片組成,這些圖像具有多種不同的文本形態(tài):水平、任意方向和彎曲形狀,其文本實例的標(biāo)簽由字符級別的標(biāo)注組成。ICDAR2015 是針對多方向文本檢測的數(shù)據(jù)集,該數(shù)據(jù)集包括1 000 張訓(xùn)練圖片和500 張測試圖片,而且圖像中的文本以英文和數(shù)字為主,這些圖像的文本實例標(biāo)簽也是字符級別的標(biāo)簽。
數(shù)據(jù)集的標(biāo)簽采用14點標(biāo)注,左上角的坐標(biāo)為第一個點,按順時針方向依次標(biāo)注,左下角的坐標(biāo)點為最后一個點。如圖7(a)所示,文本區(qū)域的原始標(biāo)簽為外圍橙色虛線框,本文中心區(qū)域為紅色實線框,按0.5的縮減比例在原始簽上縮減得到文本中心區(qū)域標(biāo)簽。如圖7(b)所示,QUAD的標(biāo)簽為文本中心區(qū)域的像素點到四邊形文本框的4個頂點的偏移,如圖7(c)所示,在文本框內(nèi)的像素點的PBA的標(biāo)簽為像素到四邊形文本框中心的偏移,若像素在文本框外部時,需要額外加上懲罰dout。如圖7(d)所示,TBO的標(biāo)簽為文本中心區(qū)域的像素到邊界框的偏移,其中線段K1K2的斜率為線段P1P2斜率與線段P4P3斜率的平均值。通過線段K1P0與線段K1K2的長度之比,在線段P1P2上確定像素P0的上邊界偏移點,同理可確定下邊界偏移點。
圖7 標(biāo)簽生成細節(jié)圖
本文實驗中的評價指標(biāo)主要是精確率Precision、召回率Recall 以及二者的綜合評價F-measure,計算公式如式(8)~(10)所示,
(8)
(9)
(10)
其中:TP、FP、FN分別為混淆矩陣中的真陽值、 假陽值、假陰值。
本次所有實驗的訓(xùn)練和測試都是在同一配置下完成,CPU:Intel(R)Xeon(R)Gold 6 278C CPU @ 2.60 GHz*16,GPU:NVIDIA Tesla V100 16 GB,RAM:32G。本文實驗的優(yōu)化器使用Adam優(yōu)化器,其中β1=0.9,β2=0.999,學(xué)習(xí)率為0.001,每個批次設(shè)置為12。為了提高模型在數(shù)據(jù)集上的性能,對數(shù)據(jù)進行隨機縮放和隨機旋轉(zhuǎn)進行數(shù)據(jù)增強,最后將數(shù)據(jù)調(diào)整和填充到512*512的大小。
為了驗證交叉注意力模塊在網(wǎng)絡(luò)中發(fā)揮的作用,在Total-text數(shù)據(jù)集上進行消融實驗對比,為了保持單一控制變量原則,上述的參數(shù)設(shè)置均相同。在消融實驗中R=0表示沒有交叉注意力模塊,R=1表示只有一個交叉注意力模塊,R=2表示對交叉注意力模塊進行2次循環(huán)操作,R=3表示對交叉注意力模塊三次循環(huán)操作,實驗結(jié)果如表1所示。
表1 Total-text數(shù)據(jù)集上交叉注意力模塊的消融實驗結(jié)果
根據(jù)表1可以看出,在加入交叉注意力模塊后,精確率Precision和綜合指標(biāo)F-measure都有所提升。當(dāng)R=1時的精確率Precision比沒有交叉注意力模塊的結(jié)果提高3.6%,F(xiàn)-measure指標(biāo)提升了0.77%,表明了交叉注意力模塊在橫縱路徑上聚合上下文信息。R=2時的精確率Precision提高6.23%,F(xiàn)-measure指標(biāo)提升了1.37%。證明2個交叉注意力模塊可以提取全圖的上下文信息。R=3時的精確率Precision只提高了6.32%,F(xiàn)-measure指標(biāo)提升了1.39%。同時,隨著注意力模塊的增加,網(wǎng)絡(luò)的實時性有小幅度下降,且隨著R的增加,F(xiàn)PS逐步減少。
為進一步驗證交叉注意力的有效性在ICADR2015數(shù)據(jù)集上進行相同的消融實驗對比,上述的參數(shù)設(shè)置同Total-text數(shù)據(jù)集保持一致。實驗結(jié)果如表2所示。
表2 ICADR2015數(shù)據(jù)集上交叉注意力模塊的消融實驗結(jié)果
在ICADR2015數(shù)據(jù)集上的交叉注意力模塊的消融實驗結(jié)果中精確率Precision和綜合指標(biāo)F-measure都有所提升。當(dāng)R=1時的精確率Precision比沒有交叉注意力模塊的結(jié)果提高2.05%,F(xiàn)-measure指標(biāo)提升了0.31%,表明了交叉注意力模塊在橫縱路徑上聚合上下文信息的有效性。R=2時的精確率Precision提高5.95%,F(xiàn)-measure指標(biāo)提升了2.17%。R=3時的精確率Precision提高了5.95%,F(xiàn)-measure指標(biāo)提升了2.17%。將R=2與R=3進行對比,R=3時的精確率Precision只提高了0.36%,F(xiàn)-measure只提升了0.34%,但是網(wǎng)絡(luò)每秒處理的幀數(shù)卻減少了10.63 FPS。
在ICADR2015數(shù)據(jù)集和Total-text數(shù)據(jù)集上的交叉注意力模塊消融實驗可知,交叉注意力模塊能夠顯著提升網(wǎng)絡(luò)性能。當(dāng)只有一個交叉注意力模塊時只能聚合單一路徑上的上下文信息,對網(wǎng)絡(luò)的提升效果還能進一步加強。通過循環(huán)操作,將單一路徑擴增到了橫縱2個路徑,根據(jù)實驗結(jié)果顯示,對交叉注意力模塊進行2次循環(huán)操作,更進一步提升了網(wǎng)絡(luò)性能。繼續(xù)加入循環(huán)操作,雖然網(wǎng)絡(luò)性能提升了,但是提升效果不明顯,且隨著循環(huán)操作的堆疊,網(wǎng)絡(luò)的實時性下降嚴重,因此進行2次循環(huán)操作能夠兼顧網(wǎng)絡(luò)性能與網(wǎng)絡(luò)的實時性。
為了進一步驗證本文方法的有效性,分別在Total-text和ICDAR2015數(shù)據(jù)集上對本文方法和近年出現(xiàn)的其他方法進行對比。實驗結(jié)果如表3和4所示。從表3、表4中的實驗結(jié)果表明,本文方法在彎曲文本數(shù)據(jù)集Total-text上取得了75.71%的召回率、89.15%的精確率和81.89%的F-measure值。
表3 不同算法在Total-text數(shù)據(jù)集上的比較
表4 不同算法在ICADR2015數(shù)據(jù)集上的比較
其中精確率相較其他算法提升較大。在多方向文本數(shù)據(jù)集ICADR2015上也取得了較好的結(jié)果,其中召回率,精確率,以及F1值分別為79.06%、89.24%、 83.84%。ICADR2015數(shù)據(jù)集與Total-text數(shù)據(jù)集的實驗結(jié)果中精確率均在所有的對比實驗中取得了最好的成績。部分任意文本檢測的實驗結(jié)果可視化如圖8所示,可以看出本文方法對包含密集文本、長文本以及相鄰較近的文本的圖像有較好的檢測結(jié)果。
圖8 部分實驗結(jié)果圖
本文提出一種基于像素分配的場景文本檢測方法。該方法采用多任務(wù)學(xué)習(xí)機制對文本中心區(qū)域的分割,像素到文本框頂點的偏移,像素到文本框的分配和像素到上下邊界的偏移4個任務(wù)進行訓(xùn)練,通過像素到文本框的分配,能夠有效解決長文本被分割成不同文本實例和相鄰很近的文本無法區(qū)分的問題。通過多尺度特征自適應(yīng)分配權(quán)重,豐富了多尺度特征,結(jié)合交叉注意力模塊,在空間和通道上細化了特征的表示,在ICADR2015數(shù)據(jù)集和Total-text數(shù)據(jù)集上進行實驗,實驗結(jié)果證明了本文方法的有效性。