余培東
(中鐵第一勘察設(shè)計院集團有限公司,陜西 西安)
隨著我國空間科學(xué)技術(shù)的迅速發(fā)展,遙感對地觀測數(shù)據(jù)呈指數(shù)級增長,如何有效利用遙感影像數(shù)據(jù)成為一項難點[1]。遙感影像目標檢測是遙感大數(shù)據(jù)智能解譯的一項關(guān)鍵技術(shù),在人員搜救、偵查、監(jiān)測和預(yù)警等軍民領(lǐng)域有著重要的應(yīng)用價值[2]。計算機技術(shù)的發(fā)展,特別是深度學(xué)習技術(shù)的突破,基于深度學(xué)習的遙感影像目標分類和檢測成為遙感領(lǐng)域的研究熱點,應(yīng)用深度學(xué)習技術(shù)進行遙感影像快速自動化處理使得遙感技術(shù)的現(xiàn)代化成為可能。
作為遙感影像中一種典型人工目標,橋梁通過連接兩塊陸地,在整個交通網(wǎng)絡(luò)中具有樞紐地位。橋梁目標的快速準確檢測,在軍事制導(dǎo)領(lǐng)域、災(zāi)后救援以及地理信息系統(tǒng)更新領(lǐng)域等具有重要價值[3]。
針對傳統(tǒng)目標檢測算法在遙感影像橋梁檢測中精度較差的缺陷,本文以經(jīng)典單階段目標檢測算法YOLOv4為基礎(chǔ),融入注意力機制模塊,同時采用深度超參數(shù)化卷積替代原始卷積層,提出了一種具有高檢測精度的遙感影像橋梁目標檢測算法,有效提高了算法的遙感影像橋梁目標檢測精度。
Alexey Bochkovskiy 通過融入多種算法的核心思想,最終提出了性能顯著提高的YOLOv4 算法[4],其主要創(chuàng)新點集中在四個方面:
(1) 數(shù)據(jù)輸入部分采用Mosaic 數(shù)據(jù)增強、標簽平滑、CmBN 正則化以及自對抗訓(xùn)練等手段,使算法更好的適應(yīng)單GPU 訓(xùn)練的同時,有效提升了算法的抗干擾能力和泛化性。
(2) 使用CSPDarknet53 網(wǎng)絡(luò)結(jié)構(gòu),在網(wǎng)絡(luò)結(jié)構(gòu)輕量化的同時保持了較好的算法性能。
(3) 使用FPN+PAN 的特征提取模塊提升算法特征提取能力。
(4) 損失函數(shù)采用CIOU Loss,非極大值抑制算法使用DIOU NMS。能夠有效提升算法對小尺寸、重疊目標的檢測性能。
自首次使用SE 模塊的SENet[5]問世并取得成功,研究人員對于注意力機制的研究熱潮便從未停止,空間域注意力機制、通道域注意力機制以及混合域注意力機制等領(lǐng)域的研究成果層出,并在多種領(lǐng)域得到應(yīng)用。
SE 模塊可以學(xué)習輸入信息不同通道特征的重要程度,進而提升模型對通道維度特征的關(guān)注度,使目標檢測性能得到提升;CBAM[6](Convolutional Block Att-ention Module)在SE 模塊基礎(chǔ)上,通過結(jié)合空間和通道兩個維度的注意力機制,解決了關(guān)注什么特征以及哪里的特征更有意義的問題,從而取得了更好的效果。
為了解決復(fù)雜模型容易過擬合的現(xiàn)象,Cao[7]等人提出DO_Conv,(深度超參數(shù)化卷積, Depthwise Over parameterized Convolut-ional Layer)。DO_Conv 在普通卷積層中添加深度增強卷積層,同時使用不同的二維卷積核在每個通道中完成卷積計算,通過增加模型可學(xué)習參數(shù)量的方式構(gòu)成超參數(shù)。在模型推理階段,DO_Conv 被轉(zhuǎn)換為普通卷積,因此這種方式不會增加模型推理中的計算復(fù)雜度。實驗證明,使用DO_Conv 可以在加快模型訓(xùn)練速度的同時獲得比傳統(tǒng)卷積層更好的效果。
(1) 注意力機制對比實驗
以YOLOv4 算法為基礎(chǔ),使用多尺度訓(xùn)練和fp_16訓(xùn)練策略進行模型訓(xùn)練,分別嵌入SE 模塊和CBAM 模塊并在實驗數(shù)據(jù)集中訓(xùn)練檢測,比較不同算法的各項檢測指標來衡量模塊性能優(yōu)勢。不同算法在兩個數(shù)據(jù)集的預(yù)測結(jié)果例圖分別如圖1(左列為高分橋梁數(shù)據(jù)集,右列為DOTA 橋梁數(shù)據(jù)集。目標漏檢用綠框標識,目標誤檢用紅×標識),表1 通過實驗結(jié)果評價指標詳細對比了各種算法的檢測結(jié)果。
表1 嵌入注意力機制的算法檢測結(jié)果
圖1 注意力機制對比實驗例圖
(1) 實驗平臺:基于Win 10 操作系統(tǒng),選取NVIDIA 3090 顯卡,顯存24 GB,在CUDA 加速下完成模型訓(xùn)練檢測。使用Pytorch 深度學(xué)習框架,python 版本為3.8.4。
(2) 實驗數(shù)據(jù)集:第一個數(shù)據(jù)集為高分橋梁數(shù)據(jù)集[8],分辨率668-1 000,包含圖像2 000 幅;第二個數(shù)據(jù)集為DOTA 數(shù)據(jù)集,提取出包含橋梁的圖像并進行分割處理,獲取分辨率為1 000× 1 000 的圖像1 300 幅,構(gòu)成DOTA 橋梁數(shù)據(jù)集。
實驗過程中,按照3:3:4 的比例劃分訓(xùn)練集、驗證集和測試集,比較檢測結(jié)果評價指標來衡量算法性能。
(3) 模型訓(xùn)練策略:采用多尺度訓(xùn)練(將輸入圖像的尺寸設(shè)置為320×320 到608×608 不等,尺寸區(qū)間內(nèi)隨機增加32 的整數(shù)倍,共計有10 類不同尺寸的輸入圖像)和fp_16 訓(xùn)練策略[9]。
(4) 實驗結(jié)果評價指標:選取深度學(xué)習目標檢測中常用的查準率P(Precision)、召回率R(Recall)、平均準確率AP(Average Precision)、檢測速度FPS 以及模型平均訓(xùn)練一批次所需時間T(Time)五項指標進行算法性能評估。
圖1 中三組實驗結(jié)果之間的區(qū)別不太明顯,從三組對比實驗例圖中粗略觀察較難發(fā)現(xiàn)明顯差異,但是可以看出嵌入SE 模塊算法的目標誤檢核和漏檢相對較少。檢測結(jié)果評價指標更加準確地展示了三組實驗的最終結(jié)果:嵌入CBAM 模塊小幅度提高了算法在高分橋梁數(shù)據(jù)集的檢測精度,但在DOTA 橋梁數(shù)據(jù)集中反而使算法檢測精度降低,而它對模型訓(xùn)練時間的提升卻十分顯著;相比較而言,SE 模塊對模型訓(xùn)練時間增加更少,降低算法檢測速度也更少,但能小幅度提升模型檢測準確率P 和召回率R,最終能夠獲得最大的精度提升(使高分橋梁數(shù)據(jù)集的AP 提升1.3% ,使DOTA 橋梁數(shù)據(jù)集的AP 提升1.4%)。實驗證明SE 模塊在遙感影像橋梁目標檢測中比CBAM 模塊更有優(yōu)勢,故選取SE 模塊作為注意力機制嵌入算法。
(2) 替換卷積層對比實驗
根據(jù)上部分實驗的結(jié)果選取SE 模塊作為注意力機制嵌入算法,在此基礎(chǔ)上,使用DO_Conv 替換算法原始卷積層,提出D-YOLO 算法,并與RetinaNet、YOLOv3、CenterNet 等經(jīng)典單階段目標檢測算法進行對比實驗。按照實驗設(shè)置分別在兩個數(shù)據(jù)集中進行算法訓(xùn)練檢測,不同算法在兩個數(shù)據(jù)集的目標檢測結(jié)果示例如圖2 所示,表2 中各項實驗結(jié)果評價指標詳細展示了不同算法之間的性能差異。
表2 替換卷積層前后算法與其他單階段目標檢測算法檢測結(jié)果對比
圖2 替換卷積層前后算法與其他單階段目標檢測算法檢測結(jié)果例圖(第一行為高分橋梁數(shù)據(jù)集,第二行為DOTA橋梁數(shù)據(jù)集)
從圖2 可以看出,RetinaNet 算法不存在誤檢,但漏檢嚴重;YOLOv3 算法和CenterNet 算法的誤檢和漏檢現(xiàn)象較為均衡;YOLOv4+SE 算法漏檢和誤檢相對更少,而D-YOLO 算法漏檢和誤檢最少,整體表現(xiàn)更好。進一步對比表2 中各項檢測結(jié)果評價指標可以發(fā)現(xiàn),RetinaNet 算法、YOLOv3 算法和CenterNet 算法均保持了極高的檢測準確率,但檢測召回率很低,因此算法AP 值較低;YOLOv4 改進算法在保持較高檢測準確性的同時,大幅提升了目標檢測召回率,使得算法AP 值有明顯提升。而在檢測效率方面,CenterNet 算法具有最高的檢測效率,其他幾種算法的檢測效率較為接近。
本文提出的D-YOLO 算法相比較其他三種經(jīng)典單階段目標檢測算法有明顯優(yōu)勢,同時在實驗(1)基礎(chǔ)上進一步提升了算法的目標檢測精度,最終將YOLOv4 算法在兩個數(shù)據(jù)集中的AP 值分別提升2.1%和1.9%(從78.3%提升至80.4%、從65.3%提升至67.2%),有力證明了本文改進算法的有效性。
針對現(xiàn)有深度學(xué)習目標檢測算法在遙感影像橋梁目標檢測中檢測精度不足的缺陷,本文以YOLOv4 算法為基礎(chǔ),通過嵌入注意力機制模塊以及替換卷積層的方式進行算法改進,并通過設(shè)計對比實驗驗證本文改進算法的有效性:實驗結(jié)果證明:
(1) 相比較與CBAM 模塊,SE 模塊在少量增加模型訓(xùn)練成本的前提下,能夠獲得更高的算法檢測精度提升,更適宜在目標檢測算法中應(yīng)用。
(2) DO_Conv 可以在不損失模型推理速度的同時有效提高算法對橋梁目標的檢測精度,相比較傳統(tǒng)卷積層具有一定的性能優(yōu)勢。