趙曉飛,于雙和*,李清波,閻 妍,趙 穎
(大連海事大學(xué)a.船舶電氣工程學(xué)院;b.環(huán)境科學(xué)與工程學(xué)院,遼寧 大連 116026)
由于水下環(huán)境復(fù)雜、數(shù)據(jù)采集困難,所以水下目標(biāo)檢測一直是計(jì)算機(jī)視覺領(lǐng)域一項(xiàng)重要且富有挑戰(zhàn)性的工作.早期的水下目標(biāo)檢測算法采用人工制定的特征提取方法提取圖像特征,如尺度不變特征變換匹配算法[1](scale-invariant feature transform,SIFT),然后利用支持向量機(jī)(support vector machine,SVM)等分類器對圖像進(jìn)行分類.近年來,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)被廣泛應(yīng)用于目標(biāo)檢測[2-3],取得了令人滿意的效果.卷積神經(jīng)網(wǎng)絡(luò)以原始圖像作為輸入,通過簡單的非線性模型從大量樣本中學(xué)習(xí)相應(yīng)的特征,避免了復(fù)雜的特征提取過程.基于卷積神經(jīng)網(wǎng)絡(luò)的現(xiàn)代目標(biāo)檢測算法可分為one-stage和two-stage兩種.Two-stage方法首先生成一組候選對象框以減少搜索空間,然后再進(jìn)一步分類和回歸.如Ren[4]和Zhu[5]等采用此類方法在PASCAL VOC和MS COCO等具有挑戰(zhàn)性的數(shù)據(jù)集上取得了良好效果;黃杰等[6]在Faster R-CNN算法的基礎(chǔ)結(jié)構(gòu)中添加一種拋錨策略,用于提高圖像中的火焰檢測效率.與此相反,one-stage方法具有較高的計(jì)算效率,但其檢測精度較低.如Zhang等[7]在SSD(single shot multibox detector)算法中加入上下文信息,對圖像高維和低維信息進(jìn)行融合,提高了檢測性能,但在精度方面,與two-stage方法仍有較大差距.上述方法在陸地?cái)?shù)據(jù)集上均已測試成功,但天然水下場景的目標(biāo)檢測難度更大,研究進(jìn)展較少.這主要是因?yàn)?1)水下圖像通常由自動(dòng)設(shè)備采集,很難將成像設(shè)備與物體之間的距離約束在一定范圍內(nèi),且海洋空間巨大,物體的尺度往往較小;2)受水下光線散射和泥沙的影響,拍攝對象可能模糊不清或不全,導(dǎo)致特征丟失;3)目標(biāo)檢測算法須搭載水下機(jī)器人使用,故對模型的實(shí)時(shí)性和高效性要求較高.
針對水下目標(biāo)檢測,本文提出一種新的目標(biāo)檢測算法FRANet,以解決多尺度目標(biāo)檢測問題和類別不平衡問題.在標(biāo)準(zhǔn)SSD算法框架上,提出特征增強(qiáng)模塊和特征融合模塊,設(shè)計(jì)產(chǎn)生多尺度的上下文特征,以提高SSD中的淺層特征表征能力;同時(shí)采用雙路徑模塊(dual path module,DPM)代替SSD中額外增加的卷積層,以提高深層特征表征能力.此外,本文采用一種級(jí)聯(lián)的注意力機(jī)制方案[8]以獲得多尺度的上下文特征,突出給定特征圖上空間區(qū)域的目標(biāo),使網(wǎng)絡(luò)更有利于水下小目標(biāo)的識(shí)別.
在復(fù)雜的水下場景中,圖像退化會(huì)丟失許多特征.如海膽、扇貝等生物的顏色信息較穩(wěn)定,但紋理信息易被破壞;海參等生物的紋理信息分辨度較強(qiáng),但顏色信息會(huì)因光照不足等原因被破壞.針對水下檢測任務(wù),本文采用如圖1所示的FRANet算法.FFMv1和FFMv2對應(yīng)兩種不同的特征融合模塊(feature fusion module,FFM),將2個(gè)具有不同語義信息的特征圖相組合,然后利用特征增強(qiáng)模塊(feature enhancement module,FEM)強(qiáng)化其語義,獲得新的特征圖.同時(shí),采用2個(gè)雙路徑模塊DPM代替?zhèn)鹘y(tǒng)SSD算法中的深層特征表征,以加強(qiáng)深層語義.為提高網(wǎng)絡(luò)對水下目標(biāo)分類和回歸的性能,結(jié)合上述不同類型的模塊,本文還提出一種級(jí)聯(lián)的注意力機(jī)制方案,該方案由錨框精化模塊(anchor refinement module,ARM)、空間注意力模塊(spatial attention module,SAM)以及目標(biāo)檢測模塊(object detection module,ODM)3個(gè)相互連接的模塊組成.
圖2為特征增強(qiáng)模塊示意圖.FEM使用2個(gè)殘差卷積塊以增加深度并學(xué)習(xí)更多的非線性特征.在第1個(gè)殘差卷積塊中,首先利用1個(gè)1×1的卷積層以減少特征圖中的通道數(shù)量,然后使用2個(gè)堆疊的3×3 卷積層代替5×5卷積層,以減少參數(shù)并學(xué)習(xí)更多的非線性表示.每個(gè)分支中都有一個(gè)帶有空洞系數(shù)的卷積,以生成更高分辨率的特征圖,在保持參數(shù)數(shù)量不變的情況下,在更大的區(qū)域捕捉更多的背景信息.在此基礎(chǔ)上,引入第2個(gè)殘差塊,以獲得更多的特征通道信息.參考文獻(xiàn)[9],采用2個(gè)1×1卷積層代替2個(gè)全連接層的方法.
圖2 特征增強(qiáng)模塊結(jié)構(gòu)圖Fig.2 Feature enhancement module structure diagram
標(biāo)準(zhǔn)SSD算法僅在深層特征表征中使用額外的卷積層,易導(dǎo)致深層特征圖中大量細(xì)節(jié)信息丟失.故本文設(shè)計(jì)雙路徑模塊,以加深骨干網(wǎng)絡(luò),獲得更多的語義信息.雙路徑模塊的詳細(xì)結(jié)構(gòu)如圖3所示,該設(shè)計(jì)對網(wǎng)絡(luò)進(jìn)行了深度化處理,并通過元素求和及通道拼接的操作,使淺層和深層具有隱性的特征融合,增加深層的特征信息量.
圖3 雙路徑模塊結(jié)構(gòu)圖Fig.3 Dual path module structure diagram
為了增加標(biāo)準(zhǔn)SSD算法中淺層的語義信息,設(shè)計(jì)兩種特征融合塊FFMv1和FFMv2,然后應(yīng)用局部注意力機(jī)制突出淺層的目標(biāo)區(qū)域.具體而言,首先對FC7層的特征圖做通道維度上的壓縮及特征圖的上采樣,對Conv4_3層的特征圖做通道維度上的壓縮,然后引入局部注意力機(jī)制,最后利用通道維度的拼接操作輸出新的Conv4_3層,利用Conv4_3和FC7的特征構(gòu)建特征融合模塊,相互增強(qiáng)和完善.
在局部注意力機(jī)制中,首先給定兩組相同維度的特征圖XC×H×W和YC×H×W,其中C是特征圖通道數(shù)量,H和W為特征圖的高和寬.然后利用1×1的卷積將特征圖在多個(gè)通道維度上合并,再利用一組全連接層和激活函數(shù)在每個(gè)空間位置產(chǎn)生權(quán)重激活值,最后通過對輸入Y重新加權(quán)得到輸出Z=Y·δ(Wf·F(X))+Y.其中δ(·)為Sigmoid函數(shù),Wf是訓(xùn)練得到的權(quán)重,F(·)代表1×1的卷積層、批歸一化和激活運(yùn)算.
級(jí)聯(lián)的注意力機(jī)制方案包括以下3個(gè)模塊:
1)ARM.ARM對錨框進(jìn)行二元分類和坐標(biāo)回歸,以過濾負(fù)類錨框,減少分類器的搜索空間,同時(shí)為后續(xù)回歸進(jìn)行初始化.在基礎(chǔ)網(wǎng)絡(luò)的特征圖上為每個(gè)規(guī)則分割單元匹配3個(gè)錨框;然后ARM得到4個(gè)精化后的錨框偏移量及2個(gè)表示錨框中存在前景對象的置信度分?jǐn)?shù).ARM中的二元分類結(jié)果可預(yù)測每個(gè)錨框?yàn)榍熬盎虮尘?生成空間注意力特征圖,以抑制背景、突出目標(biāo),減少正負(fù)錨框之間的類別不平衡.
2)SAM.首先,沿通道維度對給定空間位置上的錨框的目標(biāo)類別預(yù)測結(jié)果進(jìn)行最大池化操作,然后進(jìn)行Sigmoid函數(shù)激活,產(chǎn)生空間注意力特征圖A,該特征圖對基本網(wǎng)絡(luò)獲得的特征Fn進(jìn)行改進(jìn),改進(jìn)后特征Fm=Fn×A+Fn.然后,進(jìn)行可變形信息的提取加入.采用1×1的卷積從ARM的回歸結(jié)果中提取空間偏移量Δp=WsFa,其中Ws是1×1卷積核訓(xùn)練得到的權(quán)值,Fa是精化后錨框的坐標(biāo)回歸.通過可變形卷積將空間偏移量加入到相應(yīng)的特征圖中,每個(gè)卷積層的空洞率分別設(shè)為5、4、3、2,以便進(jìn)一步提高局部信息.最終的精化特征圖Ffinal=∑p∈RWpFp,Δp.其中p為特征圖上每個(gè)空間的位置,R是對輸入特征進(jìn)行采樣的規(guī)則網(wǎng)格,Wp是可變性卷積層訓(xùn)練得到的權(quán)重,Fp,Δp為未精化特征圖.
3)ODM.以精化的錨框和增強(qiáng)的特征圖作為ODM輸入,進(jìn)一步改進(jìn)回歸,預(yù)測多類標(biāo)簽.ODM計(jì)算輸出不同目標(biāo)種類的置信度分?jǐn)?shù)和精化錨框相對于目標(biāo)真實(shí)邊界框的4個(gè)偏移量.
本文使用的水下數(shù)據(jù)集由2020年全國水下機(jī)器人目標(biāo)抓取大賽提供 (http://www.cnurpc.org/a/js/).?dāng)?shù)據(jù)集包括海參、海膽、扇貝和海星等4類水下小目標(biāo),共含6 000張圖片,其中20%作為測試集,80%作為訓(xùn)練驗(yàn)證集,再以8∶2的比例將訓(xùn)練驗(yàn)證集分為訓(xùn)練集和驗(yàn)證集.以平均精度均值(mean average precision,mAP),即每個(gè)類別的準(zhǔn)確率-召回率曲線所圍面積的平均值,作為模型評(píng)估指標(biāo).準(zhǔn)確率P為預(yù)測結(jié)果中正樣本的比例,召回率R為原始樣本中正樣本能夠被正確預(yù)測的比例.
受水下復(fù)雜環(huán)境的影響,若拍攝到的數(shù)據(jù)樣本小于目標(biāo)整體的30%,則忽略此目標(biāo);若部分?jǐn)?shù)據(jù)樣本模糊不清,則采用自適應(yīng)直方圖均衡化的方法處理.此外,為構(gòu)建穩(wěn)健模型以適應(yīng)目標(biāo)變化,在預(yù)處理階段使用SSD算法中的數(shù)據(jù)增強(qiáng)策略,即對原始訓(xùn)練圖像進(jìn)行隨機(jī)擴(kuò)容、裁剪,附加隨機(jī)光度失真和翻轉(zhuǎn)以生成訓(xùn)練樣本.硬件試驗(yàn)平臺(tái)采用深度學(xué)習(xí)工作站,Ubuntu18.04,64位操作系統(tǒng),內(nèi)存32 G,顯卡為NVIDIA GeForce GTX 1080Ti,CUDA 9.0版本,試驗(yàn)在基于深度學(xué)習(xí)框架PyTorch 0.4.0下進(jìn)行.
學(xué)習(xí)率過低會(huì)導(dǎo)致梯度下降慢、訓(xùn)練時(shí)間長;學(xué)習(xí)率過高可以加速訓(xùn)練,但易造成梯度爆炸的問題.故本文的學(xué)習(xí)率采用一種“熱身”策略,即將前5個(gè)周期的初始學(xué)習(xí)率從10-6逐步上升到4×10-3.“熱身”階段結(jié)束后,再采用原來的學(xué)習(xí)率計(jì)劃,分別在150和200個(gè)周期時(shí)減小10倍學(xué)習(xí)率,在250個(gè)周期時(shí)停止訓(xùn)練.
訓(xùn)練過程中使用小批量隨機(jī)梯度下降算法更新神經(jīng)網(wǎng)絡(luò)的梯度信息,網(wǎng)絡(luò)根據(jù)誤差通過反向傳播更新參數(shù),使損失函數(shù)逐漸收斂.其中權(quán)重衰減為0.000 5,動(dòng)量為0.9,網(wǎng)絡(luò)使用的輸入像素為320×320,批量大小設(shè)置為32.本文根據(jù)水下任務(wù)對SSD,RFBNet[10],RefineDet[11]三種目標(biāo)檢測算法進(jìn)行了調(diào)整,以便與FRANet算法進(jìn)行比較.以上模型都用預(yù)訓(xùn)練模型VGG16[12]初始化,在水下數(shù)據(jù)集上以相同的超參數(shù)進(jìn)行訓(xùn)練.不同算法的平均精度均值結(jié)果如表1所示.由表1可知,FRANet算法的mAP優(yōu)于其他三種算法.雖然SSD,RFBNet,RefineDet算法的性能在PASCAL VOC和MS COCO等數(shù)據(jù)集上得到驗(yàn)證,但在水下數(shù)據(jù)集上的表現(xiàn)卻不理想,原因可能是水下的干擾因素較多.圖5給出了FRANet和RefineDet算法在水下數(shù)據(jù)集圖片中的識(shí)別效果.如圖5所示,在復(fù)雜的水下環(huán)境中,RefineDet算法出現(xiàn)了不同程度的漏檢現(xiàn)象,而FRANet算法的檢測準(zhǔn)確率較高.此外,FRANet的計(jì)算開銷小,在使用NVIDIA GTX 1070和CUDA 9.0的便攜式機(jī)器上,對分辨率為320×320的視頻進(jìn)行處理的速度約為40幀·s-1,可以滿足實(shí)際應(yīng)用的實(shí)時(shí)性要求.
表1 不同算法的平均精度均值結(jié)果Tab.1 Mean average precision results for different algorithms %
圖中數(shù)字表示預(yù)測類別的置信度;邊框顏色:紅色表示扇貝,藍(lán)色表示海參,黑色表示海膽,紫色表示海星.圖5 不同算法在水下數(shù)據(jù)集圖片中的識(shí)別效果Fig.5 Recognition effects of different algorithms in underwater dataset images
為檢查算法各模塊對網(wǎng)絡(luò)性能的貢獻(xiàn),以深入理解算法行為,本文進(jìn)行了消融實(shí)驗(yàn).SSD算法以及在SSD算法中依次累加特征融合模塊、特征增強(qiáng)模塊和注意力機(jī)制算法的mAP分別為73.2%,74.7%,77.0%,80.5%,說明相對于SSD算法而言,特征融合模塊和特征增強(qiáng)模塊均增強(qiáng)了前層和深層特征圖上的語義信息,一定程度上提升了檢測精度.而注意力機(jī)制的添加,對mAP的提升最為明顯,這是因?yàn)樽⒁饬C(jī)制能夠有效突出特征圖上空間區(qū)域的目標(biāo),改善目標(biāo)類別的不平衡性,使得網(wǎng)絡(luò)更有利于識(shí)別水下小目標(biāo).
FRANet目標(biāo)檢測算法以特征融合模塊和特征增強(qiáng)模塊相結(jié)合的方式,利用深度卷積神經(jīng)網(wǎng)絡(luò)自適應(yīng)地提取多尺度特征圖,同時(shí)采用由錨框精化模塊、空間注意力模塊以及目標(biāo)檢測模塊組成的級(jí)聯(lián)注意力機(jī)制方案改進(jìn)分類和回歸.多模塊化結(jié)構(gòu)獲得多尺度的上下文特征,級(jí)聯(lián)的注意力機(jī)制方案突出給定特征圖上空間區(qū)域的目標(biāo),使網(wǎng)絡(luò)更有利于識(shí)別水下小目標(biāo).試驗(yàn)表明,本算法在兼顧檢測速度的基礎(chǔ)上提高了檢測精度.將來計(jì)劃引入一種無錨機(jī)制進(jìn)一步增強(qiáng)網(wǎng)絡(luò)性能以實(shí)現(xiàn)更強(qiáng)大的特征學(xué)習(xí).