甘浪雄 吳金茹 徐海祥 馮 輝 張 磊 束亞清 張東方
(武漢理工大學航運學院1) 武漢 430063) (內河航運技術湖北省重點實驗室2) 武漢 430063) (武漢理工大學船海與能源動力工程學院3) 武漢 430063) (蘇州市港航事業發展中心4) 蘇州 215000)
水路運輸污染小、運量大而且耗能低,日益增長的行船數量也給管理部門造成了監管負擔,為維系水路運輸業的效率與安全,構建智能化航運系統迫在眉睫.隨著計算機視覺技術、深度學習的發展,陸路交通通過將車牌識別技術應用到綜合道路監控系統中,建立起較為成熟的智能交通管理系統.船舶名稱作為船舶能夠合法航行的重要身份標識,具有唯一性和必需性,從采集的船舶圖像中檢測并識別出船名信息,對于打造智能化內河航運系統具有重要意義,而快速、準確地定位船名是實現船名識別的首要任務.
基于深度學習的文本檢測分為兩類:第一類是通過對邊界框執行回歸操作,采用常用目標檢測的處理流程,派生出基于回歸的文本檢測方法[1].在Faster R-CNN[2](faster region with convolutional neural network feature)、SDD(single shot multibox detector)和YOLOv3(you only look once v3)等經典目標檢測的網絡框架上,針對文本特有的特點提出改進.Liao等[3]針對文本具有較大橫縱比的特點,在SSD算法的基礎上修改了錨框比例并采用不規則卷積核,提出了TextBoxes算法來檢測不同長寬比大小的文本,針對文本多方向性的特點,又提出TextBoxes++算法采用定向矩形或四邊形邊界框替換矩形邊界框來達到多方向文本檢測的目的.Zhong等[4]在Faster R-CNN的基礎上,提出了一種用于文本檢測的統一框架,由具有文本特征先驗邊界框的Inception-RPN(inception region proposal network)組成,擴大了文本與一般目標之間的差距.這些方法在檢測水平文本方面較為有效,但難以處理密集文本和任意形狀的文本.第二類是基于文本區域分割的方法,主要受全卷積神經網絡的啟發,對每個像素進行預測得到文本區域分割圖,采用后處理得到文本邊界框.Shelhamer等[5]提出了級聯卷積文本網絡(cascaded convolutional text network,CCTN),實現從粗到細的文本定位.該方法利用低分辨率高層特征粗略區分圖像中的文本和背景,再將檢測的文本區域通過精細檢測網絡預測文本區域和文本中心線區域,最終得到文本框,對不同尺度的文本檢測有較好的魯棒性.Wang等[6]提出了一種漸進式擴展算法,用于解決密集文本之間難以準確分割的問題.Liao等[7]提出DBNet算法,將可微分二值化操作應用于分割網絡中,采用自適應的閾值,簡化了后處理并提高了文本檢測的效果,且具有較強的魯棒性.這類方法對多方向性文本有較好的檢測效果,但存在后處理復雜度高、耗時長以及模型普遍缺少特征級的精細化導致模型不能被充分利用的問題[8].
針對水面船舶船名存在位置多變、分辨率小以及傾斜等問題,文中在DBNet算法的基礎上,提出基于注意力機制與特征增強的船名檢測方法.通過在骨干網絡引入注意力機制,實現跨通道之間的信息交互并加強船名特征信息,采用多尺度特征增強與融合模塊進一步提升特征的多樣性及魯棒性,同時使用新的損失函數,在構建的船名數據集上進行多組對比分析實驗進行驗證.
針對水面船舶圖像中的船名檢測,以基于分割的文本檢測網絡DBNet為基準,設計了一種基于注意力機制與特征增強的船名檢測方法,其網絡結構見圖1.
圖1 基于注意力機制與特征增強的船名檢測網絡結構
在基于深度神經網絡的目標檢測任務中,采取引入注意力機制的方法來提升網絡對目標的聚焦,防止有用特征丟失從而提升網絡的效果.從本質上來看,注意力機制與人類對外界事物的觀察機制相似,可以幫助模型對輸入的每個部分賦予不同的權重,抽取出更加關鍵的信息,使模型做出更準確的判斷.
ECANet[9]中提出了一種高效通道注意力模塊,相較于典型的SENet[10]中提出的通道注意力(squeeze-and-excitation,SE),ECA模塊具有良好的跨通道信息獲取的能力,能夠實現不降維的局部跨信道交互,在降低模型復雜度的同時還能保持性能,其結構見圖2.具體計算步驟如下:①將輸入特征圖進行全局平均池化操作,對整個特征圖求平均值,得到1×1×C大小的特征圖;②采用自適應卷積核進行一維卷積操作,并經過sigmoid激活函數得到各個通道的權重w;③將權重與原始輸入的特征圖對應元素相乘,得到最終輸出特征圖.
圖2 高效通道注意力(ECA)模塊網絡結構
將高效通道注意力模塊引入到船名檢測的特征提取模塊中.將輕量級的ResNet18作為模型的骨干網絡,該網絡是目前應用最廣泛的深度卷積特征提取網絡之一,通過引入殘差學習來解決普通網絡中梯度消失和梯度爆炸的問題,提取更深層次的特征[11-12].將ECA模塊添加到骨干網絡提取的有效特征層上,用于增強圖像中的文本特征.輸入圖像通過骨干網絡分別提取到1/4、1/8、1/16、1/32大小的特征圖,每個特征圖再經過高效通道注意力模塊得到c2、c3、c4和c5四個新的特征圖.
FPEM與特征金字塔(feature pyramid network,FPN)結構類似,通過融合低級和高級信息來增強不同尺度的特征,是一個可以級聯的結構,能夠有效地增強特征.此外,相較于FPN,FPEM還具有以下兩個優點:FPEM是一個可級聯的模塊,隨著級聯數的增加,不同尺度的特征圖能夠融合得更充分,并且能夠增大感受野;FPEM是由可分離的卷積構建,計算成本低.該模塊主要由up-scale增強和down-scale增強兩個階段組成,將骨干網絡輸出的特征金字塔通過up-scale從上到下融合,再通過down-scale從下往上融合,不斷增強各個尺度的特征信息.
在up-scale增強階段,以c4、c5為例,對c5進行兩倍的線性上采樣,再與c4進行逐元素相加,最后通過可分離卷積操作得到新的特征圖c4;在dow-scale增強階段,以c2,c3為例,對c3進行兩倍的線性上采樣,再與c2進行逐元素相加,同樣通過可分離卷積操作,但此時的滑動步長為2,從而得到與c3大小相同的新特征圖p3.逐層進行以上操作,最終得到增強后的特征圖p2、p3、p4、p5.
FFM是用于融合不同深度的FPEM的特征,其結構見圖3.該模塊對同一尺度的特征圖逐個相加,得到最終的多尺度特征后,對不同尺度的特征圖進行上采樣操作使得特征圖具有相同的大小,級聯得到模型的最終輸出特征圖F.相較于直接將不同尺度的特征圖上采樣再全部級聯的方法,FFM能夠有效地減少特征通道數,從而加快預測速度.
圖3 特征融合模塊
對特征圖F進行一次卷積和兩次批量標準化與轉置卷積操作,擴大到和原圖一樣大,再經過sigmoid層得到0-1輸出概率圖P.同樣對特征圖F先進行卷積、批量標準化操作并經過ReLU激活函數,再進行兩次上采樣操作,期間進行一次批量標準化與ReLU,經過sigmoid層后輸出閾值圖T.通過建立概率圖和閾值圖之間的關系,生成近似二值圖,其表達式為
(1)
式中:Bi,j為近似二值圖上(i,j)處的值;Pi,j為概率圖上(i,j)處的值;Ti,j為自適應閾值圖在(i,j)處的值;k為放大系數.
該近似二值化函數與標準二值化函數相似,但具有可微性,所以可以在訓練階段隨分割網絡進行優化,使得分割網絡產生一個邊界效果較好的概率圖和近似二值圖,不僅能簡化后處理過程,還提高了文本檢測的效果.
在后處理過程中,采用概率圖來生成文本框.使用固定閾值t對概率圖進行二值化操作得到二值化圖,通過二值化圖可以得到收縮的文字區域.將收縮文字區域按照裁剪算法的偏移系數d′通過膨脹擴展來生成文本框,計算公式為
(2)
式中:d′為擴展補償;S′為收縮文字區域的面積;C′為收縮多邊形的周長;r′為擴展比例.
在訓練過程中,分別采用不同的標簽對概率圖、閾值圖和近似二值圖進行監督.采用Vatti裁剪算法來生成文本標簽,標注的數據集給定的標簽G一般是完整文本框,為了實現相鄰文本實例之間的有效分離,對標簽進行縮放處理.將人工標注的文本標簽G向內縮小距離d得到Gs,將Gs作為概率圖和近似二值圖的標簽.縮小距離d的計算公式為
(3)
式中:S為多邊形的面積;r為縮小比例;C為多邊形的周長.
同時向外擴張同樣的距離d得到GL,GS和GL中間區域GSL視為文本區域的邊界,計算GSL區域內每個像素點到原始圖像邊界G的歸一化距離(最近段的距離)即為閾值圖的標簽.
本文主要計算的損失包括概率圖的損失、閾值圖的損失和二值圖的損失.其中,概率圖和二值圖的損失屬于分類損失,用來優化網絡對“文本”和“非文本”預測正確的結果;閾值圖的損失屬于回歸損失,用來優化網絡生成定位準確的回歸框.損失函數L的計算公式為
L=Ls+α·Lb+β·Lt
(4)
式中:Ls為概率圖的損失;Lt為閾值圖的損失;Lb為二值圖的損失;α和β用于平衡各損失函數在訓練過程中的比重.
對Ls采用平衡交叉熵損失函數,在損失函數中添加權重因子來平衡正負樣本的權重,即:
Ls=∑w·lgpi+(1-w)lg(1-pi)
(5)
式中:pi為樣本的分類概率;w為權重因子,權重大小根據正負樣本的分布進行設置.
而對于Lb損失的計算采用了Dice損失函數.Dice損失一般應用于語義分割中,對正負樣本不平衡的場景有著不錯的性能,訓練過程中更側重對前景區域的挖掘,是一種類似于IOU度量的損失函數.Lb損失的計算公式為
(6)
式中:yi為近似二值圖的標簽值;xi為預測值;ε為一個極小的數,一般稱為平滑系數,起到平滑損失和梯度的作用.
Lt損失計算的是GL區域內預測與標簽之間損失,本文使用Smooth L1 損失函數來計算Lt.
(7)
(8)
式中:RL為GL內的像素索引;為閾值圖的標簽;為訓練過程中閾值圖的預測值.
由于目前沒有公開的船名圖片數據集,本實驗數據集選自船訊網上帶有船名字符的水面可見光圖片,其中10 169張作為訓練集,1 260張作為測試集,這些圖片中包括遠洋救助拖輪、海巡船、漁船等各種船型的船名.采用PaddleLabel半自動標注工具對圖片進行標注,標注的文本框為四邊形框.為了有效表示船舶圖像中的船名字符區域,將屬于同一標簽內容的區域作為單獨的文本區域.原始圖像和人工標注圖像示例見圖4.
圖4 原始圖像和標注圖像示例
在訓練階段,對訓練數據進行數據增強操作,主要包括:①將輸入圖像按照0.5的比例進行水平翻轉;②將圖像隨機旋轉(-10°,10°)區間內的角度;③圖像按照(0.5,0.3)的比例進行縮放.并將輸入圖像大小設置為640×640.
參數設置:根據GPU內存大小將每次迭代輸入圖像數量設置為2;數據集訓練輪次為100;采用Adam優化器進行端到端的訓練;學習率初始設置為0.005;可微分二值化操作中放大系數k根據經驗設為50;后處理過程中的二值化閾值t設為0.3;擴展比例r′設為1.5;縮小比例r設為0.4;根據損失的數值,α和β分別設為1和10;交叉熵損失函數中w設為0.25.
文本檢測中常用的評價指標包括召回率Rrecall、精確率Pprecision和F1分數.由于本文數據來源于攝像機拍攝,船舶處于航行狀態導致拍攝圖片效果不理想,圖片中存在船名字符角度多變、清晰度不高、大小不一等復雜情況,所以采用計算標定框和檢測框的交并比來判定算法的召回率、精確率.計算公式為
(9)
(10)
(11)
(12)
式中:area()為求多邊形的面積;inter()為求兩個多邊形的交集;umion()為求兩個多邊形的并集;gti為第i個標定框;detj為第j個檢測框;為iouMati,j大于0.5的個數;Numgt為標定框的個數;Numdt為檢測框的個數.
2.4.1不同特征提取模塊的對比
以DBNet為基準,DBNet+ECA表示在DBNet算法的特征提取網絡中引入高效通道注意力模塊,其他部分與DBNet算法一致,分別進行實驗,得到的召回率、精確率以及F值見表1.
表1 不同注意力模塊結果對比 單位:%
由表1可知:在特征提取模塊中引入高效通道注意力模塊ECA,召回率相對基礎算法提升了4.9%,精確率相對下降了0.5%,F值也有不錯的提升,從83.6%提升到85.8%,說明該方法較為有效.結果表明,引入ECA模塊較大幅度地提升了召回率,有效地減少船名漏檢的情況.
2.4.2多尺度特征融合模塊對比
為了驗證特征金字塔增強模塊與特征融合模塊對特征信息的有效利用,以DBNet為基準,DBNet+FPEM_FFM表示在DBNet算法中采用多尺度特征增強與融合模塊來代替FPN的算法,實驗結果見表2.
表2 多尺度特征融合模塊對比實驗結果 單位:%
由表2可知:采用多尺度特征增強與融合模塊代替DBNet算法中的FPN,使得召回率和精確率都有所提升.結果表明,特征金字塔增強模塊能夠更好地利用骨干網絡提取的特征信息,較好地融合淺層和深層特征圖,有效地提高算法的多尺度檢測能力.
2.4.3不同損失函數的對比
為了驗證本文采用的回歸損失函數對模型訓練效果的影響,以DBNet為基準,DBNet*表示在DBNet算法中回歸損失部分使用新的損失函數,分別進行實驗,結果見表3.
表3 損失函數對比實驗結果 單位:%
由表3可知:使用新損失函數的算法在精確率上較基準有一定的提升,提升了3.2%,F值也提升了1.1%.結果表明,本文采用的smooth L1損失函數能夠有效地提高文本框的回歸效果,提升了算法的檢測精度.
2.4.4整體改進實驗
為驗證本文算法相對DBNet在整體性能上的提升,用DBNet**表示本文提出的在DBNet基礎上采用高效通道注意力模塊、多尺度特征增強與融合和改進的損失函數算法,實驗結果見表4.
表4 整體改進實驗結果 單位:%
由表4可知:本文算法對于DBNet算法精確率效果提升明顯,從84.7%提升至88.1%.
圖5a)為采用DBNet算法檢測效果圖,圖5b)為采用本文算法的檢測效果圖,深色框圖是檢測算法輸出的文本邊界框.由圖5可知:本文提出的算法在檢測效果上優于DBNet算法.
圖5 部分檢測效果圖
針對水面船舶圖像中船名檢測問題,提出了一種基于注意力機制與特征增強的船名檢測算法,該算法引入高效通道注意力模塊,增強了網絡對文本特征的提取能力,有效地減少了船名漏檢的情況.采用多尺度特征增強與融合模塊提高網絡的分割性能,提升了檢測精確率.改進了回歸任務的損失函數,提升了檢測效果.在自建船名圖像數據集上進行對比實驗,結果表明本文算法的有效性.