殷昌山,楊林楠,胡海洋
(1. 云南農業大學大數據學院,昆明市,650201; 2. 云南省農業大數據工程技術研究中心,昆明市,650201;3. 綠色農產品大數據智能信息處理工程研究中心,昆明市,650201)
農資標簽是印刷于農資包裝上的文字,主要包括有效成分含量、產品名稱、登記證號、生產許可證號、產品標準號等用于描述該產品相關信息的內容。農民根據該信息查詢并判斷該產品是否符合自身需求,農資監督機構根據該信息進行農資安全相關的檢測和分析,國外購買者依據該信息對出口農資進行識別。作為農資標簽識別的必要步驟,農資標簽的文本檢測對于農資安全監督和識別出口農資非常重要。
目前,基于深度學習的文本檢測方法主要分為基于區域建議和基于分割這兩類。基于區域建議的算法根據文本獨有的特點,在目標檢測通用算法模型的框架下對其進行改進。Tian等[1]借助了Faster RCNN中anchor回歸機制,提出了CTPN網絡框架來獲得圖像中的文本行,對水平方向文本檢測效果良好。Shi等[2]借助一階段檢測框架SSD,提出了Seglink算法,該算法讓模型學習文本框的旋轉角度,對水平方向和多方向的文本檢測有較好的魯棒性,但對任意形狀的文本不能準確定位。而基于分割的方法則是受到經典語義分割算法的啟發,在像素級上對每個點進行分類,經后處理輸出文本區域。Li等[3]提出了PSENet,該網絡使用漸進式擴張算法,有助于緊密文本區域的分離,能夠精確地定位任意形狀的文本實例。Liao等[4]提出的DB算法用近似可微分的二值化替代固定閾值,使后處理過程變得簡單且泛化能力更強。該類方法可以適應任意形狀的文本目標。
不同的農資包裝包含不同尺寸、顏色、形狀、對比度的標簽文本,并且農資標簽的背景更加復雜,其文本分布大多數是比較密集的,文本形狀以水平形狀規則文本居多,但也有任意形狀文本存在。基于以上難題,提出了一個基于注意力機制的農資標簽文本檢測模型,并在自建的農資包裝圖片數據集上進行試驗,能夠較為精確地檢測出農資圖像中的文本。
本文提出的模型架構如圖1所示,具體來說首先采用Swin-Transformer[5]作為主干網絡,用于多層次特征圖的特征提取。通過4個Stage構建不同大小的特征圖C1、C2、C3、C4,除了Stage1中先通過一個Linear Embeding層外,剩下3個stage都是先通過一個Patch Merging層進行下采樣。然后,按照FPN中的特征金字塔設計,選擇C1、C2、C3、C4進行上采樣和特征聚合。在特征聚合階段,使用TFFM模塊來整合局部和全局上下文的特征表示,并通過通道聚合將增強的C1、C2、C3、C4特征映射融合起來,進一步將語義特征從低層次升到高層次,并在檢測頭也使用TFFM模塊,用來增強特征的信息表征能力。最后,將縮放式擴展算法生成的分割結果聚合到輸入圖像的原始規模,以預測文本區域并重建文本實例。

圖1 模型基本架構
目前基于分割的文本檢測方法在像素級上對圖像區域進行劃分,只提取感興趣區域的文本,忽略了全局特征的存在,對文本檢測結果的準確性有很大影響,所以本文的動機就在于建立融合局部和全局特征的關系模型,首先想到的是全局自注意力機制,此方法能夠很好地捕捉到全局信息,但也會帶來過多的額外計算負擔。受到DANet[6]的啟發,設計了雙特征融合模塊TFFM,該模塊利用注意力機制,將全局特征中更強的語義信息與局部特征中更好的細節感知能力融合起來,以此來得到更豐富的特征表示,增強模型對文本的檢測能力。模塊具體結構如圖2所示,其中r為系數。

圖2 雙特征融合模塊結構
對于通道數為C、高度為H、寬度為W的輸入特征圖Fi(i=1,2,3,4),首先各自應用一個1×1×C的卷積層,改變通道數,然后由通道注意力模塊(Channel Attention Module,CAM)和外部注意力模塊(External Attention Module,EAM)這兩個注意力模塊分別對卷積后的特征進行優化,最后將兩個注意力模塊提取的特征相加以此來得到輸出特征outi如式(1)所示。
outi=CA(Conv1(Fi))+EA(Conv1(Fi))
?i={1,2,3,4}
(1)
式中:CA(·)——CAM運算;
EA(·)——EAM運算;
+——對應元素相加。
其中CAM先做全局的平均池化,將輸入特征F綜合為通道為C的一維特征向量,然后通過全連接神經網絡MLP來比較全面地得到通道級別的依賴,獲得各個通道的權重,其中MLP是由兩個全連接層和ReLu激活函數組成,最后將權重與原始特征融合起來,運算細節如式(2)所示。
CA(F)=σ(MLP(AvgPool(F)))
(2)
EAM是對線性自注意力機制的應用,其計算復雜度是線性的,減小了網絡的計算開銷。先將維度擴充到四倍,然后采用線性層Mk通過式(3)得到注意力圖A,并對A在第一維用了Softmax操作,在第二維用了L1-norm來歸一化,最后采用線性層Mv通過式(4)獲得輸出EA。
A=Mk(Reshape(F))
(3)
EA=Linear(Reshape(Mv(A)))
(4)
式中:σ(·)——激活函數Sigmoid;
Linear(·)——全連接層,把特征圖恢復成原來的維度。
經典的目標檢測模型采用NMS算法來篩選候選框并標出物體類別。然而,文本本身有其獨有的特點,文本大多以長矩形形式存在,即長寬比一般較大或較小,候選區域經IOU篩選后,預測的結果仍會出現邊界框重疊現象,影響檢測效果,受到PSENet中漸進尺度擴展算法的啟發,采用了縮放式擴展算法。
漸進尺度擴展算法產生n個分割結果,然后根據尺度擴展將文本實例從最小一步步擴充到最大,這樣可以很好地解決緊靠的文本實例,從而保證文本實例的準確位置,但是農資文本在印刷過程中,為了更好地展現產品,相鄰的文本實例并不太密集。考慮到農資文本的特殊性,使用三個收縮率系數來實現擴展算法,分別為0.5、0.8和1.0,具體算法如圖3所示,先通過最小內核的文本實例的分割結果S1生成連通域,并用數字標記出來,然后通過尺度擴展展開內核輪廓,以便將前景像素分配到文本實例,擴展到最大的內核S3,對于每一個文本實例,將點坐標序列表示的文字遮罩轉換為文字邊界點坐標,最后得到實例邊界及其實例置信度,即文本實例的最終檢測結果。
使用Vatti算法[7]來縮小原始多邊形文本框,以此來得到對應的不同內核的分割結果,在圖4(a)左邊邊框是基于最大內核的文本實例,也就是原始標注的多邊形邊框,而圖4(b)左邊邊框是基于最小內核的文本實例,圖4(a)和圖4(b)的右邊是對應的分割標簽掩碼,可以看到文本邊框明顯縮小了,相比于左邊原始的文本區域的邊框p與縮小后的文本區域的邊框pi之間的偏移di如式(5)所示。
(5)
式中:Ai——第i個多邊形的面積;
Li——第i個多邊形的周長;
smooth——平滑系數;
ri——內核的收縮率;
Shrinkmax——最大收縮距離。

圖3 生成文本框的流程

(a) 最大內核

(b) 最小內核
本文使用的損失函數L由文本實例損失函數Lt和內核實例損失函數Lk兩部分組成,如式(6)所示。
L=αLt+(1-α)Lk
(6)
式中:α——平衡系數。
為了避免網絡只預測圖像中的很小部分范圍的問題,使用Dice系數s來注重對前景區域的檢測,使網絡更傾向于文本區域。Dice系數s用來計算Ground Truth分割圖像和Pred分割圖像之間的相似度,取值范圍為[0,1],如式(7)所示,內核實例損失函數Lk如式(8)所示。此外,為了處理檢測網絡中容易出現的正負樣本不均衡的問題,在文本實例損失函數中加入了難樣本挖掘(Online Hard Example Mining,OHEM)[8]策略,正負樣本比例設定為1∶3,將通過難樣本挖掘算法的掩膜記為M,則Lt計算公式如式(9)所示。
(7)
(8)
Lt=1-s(X·M,Y·M)
(9)
式中: |X|——Ground Truth元素個數;
|Y|——Pred元素個數;
|X∩Y|——X和Y之間的交集,可近似為Ground Truth和Pred之間的點乘,并將點乘元素的結果相加。
目前公開數據集大多是關注自然場景圖像,沒有對農資方向做研究,因此通過自建數據集形式進行模型訓練和試驗研究。數據集大多來源于網絡圖片,這些圖像涵蓋了農藥、化肥、農機銘牌等主要農資組成部分,有不同顏色以及透明的袋、瓶和罐狀包裝,得到農資包裝圖像共計708幅。圖像中含有不同形狀的農資標簽文本,文本框總共11 322個,其中矩形文本框10 136 個,多邊形文本框1 186個。在標注過程中利用labelme圖像標注軟件對數據集進行人工標注,再轉換成CTW1500格式,文本區域由若干個坐標點順時針連接構成的多邊形表示,可以滿足任意形狀的文本檢測。原始圖像和人工標注如圖5所示。

圖5 原始圖像和標注圖像示例
由于數據集數量較少,故采用自助采樣法對數據集進行劃分,如表1所示,其中訓練集圖像為448幅且包含7 171個文本框,測試集圖像為260幅且包含4 151 個文本框。

表1 數據集信息Tab. 1 Datasets information
實驗室服務器的主要配置為2塊NVIDIA 3090顯卡,cpu型號為Intel(R) Xeon(R) Silver 4210R CPU @ 2.40 GHz,操作系統為Ubuntu20.04,在此基礎上,搭建Pytorch框架對模型進行訓練和測試。
使用Swin-Transformer模型作為骨干網絡,首先在IC17-MLT訓練集上預訓練600個epoch,然后在試驗中,模型又在自建數據集上做600個epoch的微調訓練,采用自適應梯度優化器,初始學習率為0.000 1,在第200次、第400次迭代進行學習率衰減。
為了提高模型的泛化能力,增強模型的魯棒性,對訓練圖像按50%的概率進行水平翻轉、隨機縮放、色彩抖動來做在線數據增強,最后將圖像尺寸隨機裁剪成640×640。
現有評價指標一般用準確率(Precision)、召回率(Recall)和F值(F-score)這三個參數進行比較。一般來說三個指標的值越高,檢測算法的性能越好。其具體計算公式如式(10)~式(12)所示。此外,采用基于IoU的評估協議。IoU是一種基于閾值的評估協議,默認閾值為0.5。
(10)
(11)
(12)
式中:TP——真陽性;
FP——假陽性;
FN——假陰性。
本文對比了ResNet-50、ResNet-50-Dcnv2和Swin-Transformer骨干網絡對試驗結果的影響,首先將三個骨干網絡各自在IC17-MLT訓練集預先訓練,之后進行試驗,具體結果如表2所示。

表2 骨干網絡對模型的影響Tab. 2 Influence of different backbone network on our model
從表2可以看出,使用Swin-Transformer骨干網絡,模型在三項指標上分別提升了1.3%、3.3%和2.4%,在召回率上上升尤為明顯,這體現了該方法的有效性。由于骨干網絡提取特征能力的不同,使用Swin-Transformer模型能獲得更豐富的特征,從而提高檢測方法的能力。
為了驗證雙特征融合模塊對模型的影響,通過試驗對比改進前后的模型檢測性能。使用IC17-MLT訓練集預先訓練過的ResNet-50作為主干,并構建了圖1中的模型,在C1、C2、C3、C4進行上采樣和特征聚合, 并在檢測頭也使用了TFFM。在這部分試驗中,通過與是否加入TFFM進行比較,研究并驗證了雙特征融合模塊的有效性。在表3中,可以看到,加入TFFM后,在與改進前的模型相比,各項指標都有顯著的增長,在精確率、召回率、F分數分別達到了89.2%,85.9%和87.5%,各項評測指標的提升率為1.6%、2.6%和2.1%。相較于改進前單純使用特征金字塔的方式,通過增加雙特征融合模塊使得全局信息和局部信息在特征融合中進行了加強,減少了在相鄰尺度特征融合過程中造成的信息缺失,即在自頂向下的特征融合過程中會改變通道數,使得全局特征中相當多的語義信息丟失了,而雙特征融合模塊利用通道注意力機制和線性自注意力機制來學習高層的語義信息和低層的定位細節,在一定程度上減少了語義信息的丟失,增強了多尺度特征的表達能力。

表3 雙特征融合模塊對模型的影響Tab. 3 Influence of TFFM on our model
對提出的縮放式擴展算法對模型的效果進行了試驗,試驗結果如表4所示。使用該方法的準確率、召回率和F分數都有了提升,在召回率和F分數上分別提升了3.2%和1.8%,由于農資圖像中文本自身的特點,縮放式擴展算法在一定程度上簡化了文本實例擴展的復雜度,并增加了文本框的匹配正確個數,這使得召回率和F分數提升效果更明顯,也證明了縮放式擴展算法能提高檢測效果。

表4 縮放式擴展算法對模型的影響Tab. 4 Influence of scaling expansion algorithm on our model
在自建數據集上進行了消融試驗,以此來展示本文提出的骨干網絡、雙特征融合模塊以及縮放式擴展算法的有效性,試驗結果如表5所示,Baseline是PSENet模型,ResNet-50是Baseline使用的骨干網絡,從表中可以看出,使用Swin-Transformer骨干網絡對模型改進效果很大,而在使用Swin-Transformer骨干網絡的基礎上分別使用雙特征融合模塊和縮放式擴展算法,在三項指標上均有較高的提升。同時使用改進方法,本文提出的模型在準確率、召回率和F分數達到了91.4%、87.3%和89.3%,在三個指標上達到了較好效果,相比之前未修改的模型,在各個指標上都有大幅提升,充分證明了文本方法對農資標簽文本檢測有很好的效果。

表5 不同設置對模型的影響Tab. 5 Influence of different settings on our model
為了驗證本模型的可靠性,將本文提出的模型與近年來優秀的文本檢測算法在自建數據集上進行了對比[9-20],結果如表6所示,試驗結果證明了所提出方法對農資標簽文本檢測有很好的效果。
對農資標簽文本檢測效果不優秀的問題主要在于標簽文本丟失或者檢測不準確,PSENet模型在檢測較小文本時存在丟失問題,該方法核心是對不同分割結果進行漸進尺度擴展算法,但是如果文本區域較小時,算法分割的內核就不明顯,導致檢測文本區域的丟失。FCENet[9]模型雖然能檢測到較小文本,但它的強項在于通過傅里葉變換來擬合任意形狀文本,對規則文本擬合的效果不好,存在偏差,但整體效果比PSENet效果要好,準確率、召回率和F分數上分別達到了89.5%、85.9%和87.7%。在自建數據集上,本文算法與基于區域建議算法的FCENet相比,在三項指標上分別提升1.9%、1.4%和1.6%,與基于分割算法的PSENet相比,在三項指標上分別提升3.8%、4%和3.9%,所以綜合來看本文算法優于其他模型,可以充分提取圖像中文本區域特征,能有效地對其進行檢測,在很大程度上提升了農資標簽文本的檢測效果。

表6 不同算法模型對自建數據集的比較Tab. 6 Comparison of different algorithm models on our datasets
1) 提出了一種基于注意力機制的農資標簽文本檢測模型,在自建的農資包裝圖像數據集上,對模型骨干網絡結構、雙特征融合模塊和縮放式擴展算法的改進使得文本檢測的效果有了大幅的提升,本文提出的模型在準確率、召回率和F值上分別達到91.4%、87.3%和89.3%,優于目前主流的自然場景文本檢測模型。
2) 采用Swin-Transformer骨干網絡來提取更豐富的特征,相比于原來模型的ResNet-50骨干網絡,在三項指標上均有提升,分別提升了1.3%、3.3%和2.4%。針對基于分割的文本檢測方法中忽略全局特征的問題,本文采用了雙特征融合模塊,將全局特征中的語義信息與局部特征中的定位細節融合起來,增強了模型對文本的檢測能力,與未使用雙特征融合模塊作對比,各項評測指標提升了1.6%、2.6%和2.1%。
3) 針對農資包裝圖像中相鄰的文本實例不太密集的特點,本文采用了縮放式擴展算法,該算法在一定程度上簡化了文本實例擴展的復雜度,提高了文本檢測效果,相對于原有算法,在召回率和F分數上分別提升了3.2%和1.8%。