崔穎,韓佳成,高山,陳立偉
哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150001
水下目標檢測技術(shù)是水下探測任務中的重要技術(shù)[1]。由于水下環(huán)境的復雜性和待檢測目標的多樣性,常規(guī)的目標檢測方法在水下環(huán)境中通常缺乏足夠的能力處理這些問題[2]。深度學習技術(shù)在多個領(lǐng)域的任務中表現(xiàn)出了良好的效果。在目標檢測領(lǐng)域,常見的深度學習算法經(jīng)過多年間不斷的更新和優(yōu)化,已經(jīng)可以在多種目標檢測任務上表現(xiàn)出良好的檢測效果[3?5]?;趨^(qū)域的卷積神經(jīng)網(wǎng)絡(regions with CNN features,RCNN)系列[6?8]目標檢測方法是將卷積神經(jīng)網(wǎng)絡(convolutional neural networks, CNN)引入到檢測領(lǐng)域的開山之作,其引入的卷積網(wǎng)絡能大幅提升檢測的準確度。在此之后,YOLO(you only look once)系列[9?12]的檢測方法是應用較為廣泛的一類檢測技術(shù),有著較快的推理速度和較好的檢測精度,被廣泛用于各種各樣的檢測任務中。類似的一階段或二階段檢測方法還有很多[13?14],大多會引入預先設計好形式的錨框或者感興趣區(qū)域作為檢測的基準位置。近些年來,隨著硬件條件不斷的提升,訓練一個較為復雜的模型已經(jīng)成為檢測任務的常態(tài)了[15?18],將Transformer 模塊由自然語言處理任務引入到檢測中的DETR(detection transformer)類方法就是這樣的類型。DETR 類方法通常有著簡單的模型結(jié)構(gòu)設計和相對較多的模型參數(shù),其各個部分之間較低的耦合性使其很容易同一些性能較好的單個組件或者模塊進行結(jié)合,以提升模型整體的性能。除此之外,DETR 類的方法沒有預設的錨框,其采用查詢向量作為一種軟錨框的形式以獲取目標的位置。但是由于這樣的設計,軟錨框通常不能較快的收斂,這導致了原始的DETR 方法通常需要較長的訓練時間。為了解決這樣的問題,研究者們提出了較多的改進方法,這使得模型的收斂速度大大提升。在大量的改進彌補方法自身存在的一些問題后,DETR 類方法成為一類較為新穎且相對成熟的一類檢測方法。目前很少有研究者將這一類的方法引入到水下檢測的任務中。本文將其引入水下目標檢測并進行改進,以提高模型在水下檢測任務中的性能。
為了實現(xiàn)水下光學圖像目標檢測任務,解決由于水下復雜環(huán)境造成的檢測精度低的問題,本節(jié)將主要介紹基于改進Deformable-DETR 水下檢測模型設計。
Deformable-DETR 模型是DETR 模型的一個性能良好的改進模型Deformable-DETR-DA。本文以此為基礎(chǔ)改進并設計水下檢測模型。模型結(jié)構(gòu)主要包含主干網(wǎng)絡、深度特征金字塔、改進編碼器組、解碼器組和用于預測的預測頭。具體結(jié)構(gòu)如圖1 所示。模型輸入經(jīng)過預處理后的圖像,由主干網(wǎng)絡部分進行特征提取,為了平衡模型的參數(shù)量和訓練時間,這里選擇ResNet-50 作為模型的主干網(wǎng)絡,并輸出4、8、16、32 倍下采樣的特征圖。經(jīng)過一個用于增加模型深度的深度特征金字塔模塊后,將多級特征分別進行序列化后進行拼接,獲得特征向量。在獲得特征圖的同時也對其進行位置編碼并序列化及拼接,這里沿用了可學習位置編碼的形式。將特征向量和編碼向量疊加輸入到添加了注意力引導模塊的編碼器進行特征的強化,并將結(jié)果輸入解碼器中進行預測,最終獲得模型預測的預測框和類別,經(jīng)過用于匹配的匈牙利算法獲得最后的檢測結(jié)果。
圖1 改進后的 Deformable-DETR-DA 模型結(jié)構(gòu)
在模型中設計了一個容易嵌入的深度特征金字塔(deep feature pyramid networks,DFPN)模塊,用于增加模型的深度,同時此模塊也容易嵌入到其他的模型中以獲得性能上的提高。
DFPN 部分的主要結(jié)構(gòu)如圖2(a)所示,采用了通常特征金字塔的結(jié)構(gòu)設計,使用標準的Transformer 編碼器塊作為深度特征的強化部分,這里設置N為6。獲得的深度強化特征經(jīng)過上采樣后同輸入的多級特征進行融合,經(jīng)過嵌入空間注意力模塊進行融合,多次重復這個過程直到獲得深化的多級特征。其中,用于融合特征的空間注意力模塊是深度可分離卷積同SAM[19]模塊的結(jié)合,其結(jié)構(gòu)如圖2 (b) 中的空間注意力(spatial attention,SA)模塊所示。SA 模塊首先是由一個3×3 的深度可分離卷積作為輸入部分,輸出的結(jié)果形式為(b,c,h,w), 分別經(jīng)過通道方向的均值池化和最大值池化后進行維度拼接,獲得通道方向經(jīng)過壓縮的結(jié)果,為(b, 2,h,w)。接下來經(jīng)過1×1 卷積和Sigmoid 激活函數(shù)后,獲得空間維度的注意力權(quán)重,為(b, 1,h,w)。將注意力權(quán)重和深度可分類卷積的輸出相乘即可獲得注意力強化后的特征。將強化過的特征由殘差連接后得到的結(jié)果即為模塊輸出。
圖2 DFPN 結(jié)構(gòu)及空間注意力結(jié)構(gòu)
SA 部分的計算過程如下:對于特征圖C∈RN×C,線性映射后分別經(jīng)過通道方向的一維自適應最大值池化層和一維自適應均值池化層,獲得2 個尺寸為N×1的向量w1和w2。將二者在通道方向進行拼接,而后經(jīng)過全連接層壓縮通道維度,獲得空間注意力權(quán)重向量, 并使用Sigmoid 函數(shù)對其規(guī)范化??臻g注意力權(quán)重生成過程如下式所示:
式中:Cin由C經(jīng)過線性映射獲得。
將獲得的權(quán)重WC同特征向量Cin相乘獲得強化空間關(guān)注的特征Cout,如下式所示:
DETR 類模型中編碼器部分主要的作用是增強主干網(wǎng)絡部分提取的多尺度特征,而在編碼器中起主要作用的是多頭自注意力(multi-head selfattention, MHSA)部分。雖然MHSA 能夠使模塊對特征中的重要部分給予更多的關(guān)注。但是,MHSA 的設計上仍然存在一些問題。MHSA 的計算過程可以分解成幾個部分:由輸入向量生成用于計算的Q、K、V共3 個向量;分別將Q、K、V多次線性映射而后計算自注意力,即“多頭”設計;將每個“頭”計算獲得的注意力結(jié)果進行通道維度的拼接;對拼接后的結(jié)果進行線性映射,獲得輸出。在整個過程中,“多頭”設計能夠較明顯地降低計算時所需的內(nèi)存。但是,“多頭”設計同樣會使高維特征的不同通道組之間降低關(guān)聯(lián)性,不同的“頭”對物體關(guān)注的傾向性不同,這制約了編碼器部分對特征有效部分的增強和特征整體的關(guān)注性。DETR 類模型在注意力部分后級聯(lián)了一個前饋神經(jīng)網(wǎng)絡(feed-forward networks,F(xiàn)FN)結(jié)構(gòu),用于調(diào)整通道特征。普通的FFN 結(jié)構(gòu)雖然能擴展和重組單一特征并聚合信息,但其忽略了某一通道或某一“頭”的特征的重要程度。Deformable-DETR 模型作為DETR 類模型中比較高效的模型之一,其MHSA 部分使用可形變注意力進行改進,但類似“多頭”和FFN 的設計仍然有所保留,因此Deformable-DETR 模型同樣存在上述問題。
為了解決這個問題,提高模型的精度和魯棒性,Deformable-DETR-DA 模型設計了一個改良的編碼器塊進行替代。改良編碼器塊的具體結(jié)構(gòu)如圖3 所示,其將原始Deformable-DETR 模型的編碼器部分轉(zhuǎn)變成一個全注意力結(jié)構(gòu)。具體來說,改良編碼器塊的結(jié)構(gòu)設計上仍然保留了多尺度可形變注意力部分,用于在空間維度強化特征。不同的是,改良編碼器塊在FFN 部分額外添加了一個通道注意力引導結(jié)構(gòu),用于在通道維度聚合特征信息。這樣的設計能促進FFN 部分形成更多的特征組合形式,使模塊充分考慮每個通道特征的重要性,并賦予重要信息更高的權(quán)重。受卷積注意力機制模塊啟發(fā),結(jié)合通道注意力引導機制(channel attention guided mechanism,CAGM)的通道注意力引導前饋神經(jīng)網(wǎng)絡FFN-CAGM 如圖4所示,對應的計算過程如下:
圖3 改良編碼器部分結(jié)構(gòu)
圖4 通道注意力引導前饋神經(jīng)網(wǎng)絡部分結(jié)構(gòu)
模塊使用多尺度可形變注意力部分的輸出作為FFN-CAGM 部分輸入的特征向量D∈RN×C,其中N指的是輸入特征向量的長度,C表示特征向量的通道數(shù)目。特征向量D分別經(jīng)過一維的自適應最大值池化層和一維的自適應均值池化層,并分別經(jīng)過全連接層進行映射,獲得帶有不同通道權(quán)重信息的向量D1和D2,將二者疊加后作為特征向量D通道方向的權(quán)重,并使用Sigmoid 函數(shù)對其進行規(guī)范化。通道權(quán)重的生成過程如下式所示:
輸入向量D還需要經(jīng)過FFN 處理。FFN 部分由兩個全連接層結(jié)合一個線性整流(rectified linear units,ReLU)激活函數(shù)組成,F(xiàn)FN 首先對輸入向量D的通道維度進行擴展,其中,通道維度的擴展系數(shù)設置為4。擴展后的向量D經(jīng)過激活函數(shù)處理后增添了非線性因素,再次通過全連接層將通道維度壓縮至初始大小,輸出FFN 處理后的特征向量。這一過程中,F(xiàn)FN 對向量D的特征進行了豐富和重組。最后,將處理后的特征向量與權(quán)重WD相乘,實現(xiàn)通道注意力引導的過程。這個過程如下式所示:
本文使用URPC2020 水下目標檢測數(shù)據(jù)集作為實驗用的數(shù)據(jù)集。URPC2020 是由大連市人民政府和鵬城實驗室等共同主辦的URPC 2020(大連)水下目標檢測算法賽中提出的真實水下環(huán)境目標檢測數(shù)據(jù)集,數(shù)據(jù)來源于真實水下環(huán)境中拍攝,涵蓋包括海參、海膽、扇貝和海星4 個目標類別。本文使用的訓練集共有5 543 張圖片,測試集共有800 張圖片。
本文的模型使用多尺度訓練的方式。模型首先使用隨機翻轉(zhuǎn)。隨機選擇以下2 種方式:一種是使用隨機圖像大小調(diào)整。這個過程先將圖像的短邊調(diào)整大小,隨機選擇[480, 768]中每隔32 的取樣數(shù)值之一作為短邊的長度,長邊依照原圖像的縱橫比進行放縮。設置最大長邊尺寸為768,若放縮后圖像長邊大于768,則改變圖像大小調(diào)整方式為長邊調(diào)整至768,短邊依原圖縱橫比進行調(diào)整。另一種方式是先使用隨機尺寸調(diào)整,將圖像的短邊調(diào)整至[400, 500, 600]其中之一,長邊依比例調(diào)整。之后使用隨機剪裁,將剪裁的結(jié)果依照第一種圖像大小調(diào)整的方式再次進行調(diào)整,獲得輸入圖像。模型使用上述過程進行訓練集的數(shù)據(jù)增強并歸一化。針對測試集,模型將測試圖像的尺寸固定至768×768 并歸一化。
本文中所有模型均使用PyTorch 框架和Python語言構(gòu)建,在Pycharm 平臺中進行模型的訓練和評估。硬件環(huán)境包括Intel i7-10700 處理器(CPU),64 GB 內(nèi)存,NVIDIA GeForce GTX 3060(12 GB)圖形處理器(GPU),操作系統(tǒng)為Window10。程序運行環(huán)境具體版本如下:Python 版本為3.9.12,Pytorch-gpu 版本為1.11.0,CUDA 版本為11.2。
模型參數(shù)設置上,批處理大?。╞atch_size)設置為1,主干網(wǎng)絡使用ResNet-50,加載torchvision中其在ImageNet 數(shù)據(jù)集上訓練的權(quán)重,并給這部分權(quán)重設置學習率為1×10?5。設置模型的其余部分參數(shù)的初始學習率為1×10?4,訓練代數(shù)(epoch)設置為50,在40 epoch 的時候?qū)⑦@部分參數(shù)的學習率下降至原來的0.1 倍。模型使用AdamW 作為優(yōu)化器,dropout 設置為0.1,隨機數(shù)種子設置為42。模型設置編碼器和解碼器的深度均為6 層。FFN 中線性層的擴張維度設置為1 024,每一尺度的特征圖通道維度統(tǒng)一調(diào)整至256,設置查詢向量的尺度為300。
Deformable-DETR-DA 模型中延續(xù)了原始Deformable-DETR 模型中使用的組合損失函數(shù)。DETR 類模型是一類集合匹配模型,這類方法預測的結(jié)果同真實值之間主要存在兩方面的差異:一方面,DETR 類模型通常使用Hungarian 匹配方法將預測值和真實值關(guān)聯(lián),這個過程存在較大的匹配誤差;另一方面,DETR 類模型預測的目標框坐標同真實的標注框坐標之間存在一定誤差。這2 個方面直接影響模型的檢測效果,因此損失函數(shù)對這2 個方面進行約束,以提高模型性能。此外,由于DETR 類模型中通常會一次性預測大量的目標,這些預測目標中有效的正樣本只有少數(shù)部分,更多預測目標是錯誤的或者重復的負樣本,因此損失函數(shù)中引入了聚焦損失(focal loss)解決這類預測目標中正負樣本數(shù)量差異較大的問題。
匈牙利損失(Hungarian loss)是DETR 類模型損失組成中的關(guān)鍵部分,其來源于DETR 類模型預測目標和真實值之間的匹配過程。Hungarian loss 的計算公式為
式中:y和分別為真實的標注集合和預測的目標集合;N為匹配的目標數(shù)目,表示目標的預測類別;為預測目標集合和真實值集合的最佳匹配;為最佳匹配時目標的預測坐標;bi為對應的標注坐標。
DETR 類模型預測集合中的元素包含2 部分:一部分是目標預測類別及置信度;另一部分是目標預測框的坐標。而Hungarian loss 主要包含類別的預測損失和預測框的坐標損失2 個部分。對于類別的預測損失,使用最佳匹配下的預測目標置信度計算focal loss,計算公式為
對于預測框的坐標損失,使用廣義交并比損失(GIoU loss)和L1 損失進行衡量。其計算過程公式為
式中:B(bi,)為同時包含標注框和預測框的最小矩形框; λiou和 λL1分別為GIoU loss 和L1 損失的權(quán)重,默認值為λiou=2和λL1=5。
在本文中使用coco 數(shù)據(jù)集的評價指標形式對模型的檢測效果進行評價,以目標的預測框和實際標注框之間的交并比(intersection over union,IoU)為閾值進行劃分。平均準確度(average precision,AP)指的是交并比在[0.50,0.95]中每隔0.05 取樣后計算準確度的平均值。AP50、AP75分別表示IoU 閾值為0.5、0.75 時的AP 測量值。APS、APM、APL分別表示像素面積小于32×32、大于32×32且小于96×96、大于96×96的目標框的AP 測量值,用于評估小目標、中型目標和大型目標。AP 的計算公式為
式中mAP是以查全率(recall)為橫軸、查準率(precision)為縱軸構(gòu)成的P-R 曲線下的面積。AP 數(shù)值越大,說明目標檢測的性能越好。其中,查全率mrecall、查準率mprecision計算公式為
式中:NTP為IoU 大于設定閾值的檢測框數(shù)目,NFP為IoU 小于設定閾值的檢測框和對同一個標注多余的檢測框數(shù)目,NFN為未檢出的被標注目標數(shù)目。
本文將模型在URPC2020 數(shù)據(jù)集上進行測試并同一些DETR 類檢測方法進行比較,結(jié)果如表1 所示。其中,表1 中的“模型尺度”一欄表示方法中模型主干網(wǎng)絡輸出的特征圖形式,multi 表示多尺度特征圖,F(xiàn)5 表示輸入特征圖尺寸為原尺寸的32 倍下采樣。表1 可見,與原方法相比,改進后的方法AP 值提升1 左右。此外,改進后的模型在URPC2020 數(shù)據(jù)集上獲得了最佳的AP 值,即有著最好的檢測效果。和多數(shù)對比方法相比,在小目標的檢測APS以及粗略檢測AP50上均有著一定的提升。
表1 URPC 數(shù)據(jù)集的多模型檢測效果定量比較
本文還將各個方法的水下檢測結(jié)果進行可視化,如圖5。圖5 中表明改進后的方法有著更好的準確率,檢測框的準確度更好。除此之外,改進后的方法同其他的方法相比誤檢率有所降低。在質(zhì)量較低的水下圖像中,沒有使用圖像增強之類的預處理方式,模型也有較好檢測效果。
圖5 各種對比方法的可視化結(jié)果
本文針對各部分的改進設計消融實驗進行驗證,結(jié)果如表2 和圖6 所示,其中圖6 中紅色框代表標注,黃色框代表檢測結(jié)果。
表2 Deformable-DETR-DA 模型中改進模塊的有效性實驗結(jié)果比較%
圖6 URPC 數(shù)據(jù)集上消融實驗效果比較
由表2 可知,單獨添加CAGM 部分能對模型的檢測效果有著一定的提升。而單獨添加DFPN對檢測的效果幾乎沒有提升,這和Deformable-DETR論文中提到的相同,均由于可形變注意力具有融合多級特征的能力,可以替代特征金字塔的作用。但是,在DFPN 和CAGM 模塊同時添加后,模型的性能又能在僅添加CAGM 的基礎(chǔ)上有所提升,這是因為CAGM 模塊帶來更多的通道方向的關(guān)注,使得DFPN 在通道方向?qū)δP彤a(chǎn)生更深的影響,可以進一步針對通道方向進行調(diào)節(jié),從而提升模型性能。由圖6 可見,在添加了DFPN和FFN-CAGM 之后,模型的漏檢和誤檢有所下降。這也可以體現(xiàn)模型改進的有效性。
針對水下光學圖像目標檢測問題,本文將DETR 類檢測方法引入到水下檢測任務中并加以改進。通過添加設計的DFPN 和FFN-CAGM 部分以提升模型的性能;通過在水下數(shù)據(jù)集上的對比實驗和消融實驗證明本文所用方法的有效性和設計改進的有效性,并通過可視化結(jié)果進一步體現(xiàn)。DETR 類方法在水下目標檢測任務上值得進一步探索。后續(xù)研究可進一步完善檢測模型,針對模型的參數(shù)量和計算量進行輕量化設計,進一步提升模型的實用性,也可以通過添加圖像增強等預處理方法進一步提升模型性能。