張豐節(jié),郁書好,王冠凌,代廣珍*
(1.安徽工程大學(xué)電氣工程學(xué)院,安徽 蕪湖 241000;2.高端裝備先進(jìn)感知與智能控制教育部重點(diǎn)實(shí)驗(yàn)室,安徽 蕪湖 241000)
在實(shí)際應(yīng)用場(chǎng)景中,無人機(jī)獲取的圖像可以看作是一個(gè)特殊的物體檢測(cè)場(chǎng)景,這些圖像中的小目標(biāo)信息通常特征較少. 當(dāng)無人機(jī)飛行高度變化時(shí)極易導(dǎo)致物體比例發(fā)生變化,使得檢測(cè)精度降低,在密集場(chǎng)景中可能會(huì)存在目標(biāo)之間相互遮擋的情況,使得一些目標(biāo)遺失.[1-4]因此,需要設(shè)計(jì)一種適用于搭載在無人機(jī)上的目標(biāo)檢測(cè)模型. 目前,無人機(jī)小目標(biāo)檢測(cè)研究取得了較多進(jìn)展,不少學(xué)者在雙階段目標(biāo)檢測(cè)算法Fast R-CNN 和單階段算法YOLO 的基礎(chǔ)上給出了優(yōu)化方案. 宋建輝[5]等在Faster R-CNN 基礎(chǔ)上,采用骨干網(wǎng)絡(luò)ResNet-50 以進(jìn)行多特征融合,針對(duì)正負(fù)樣本不均衡的問題采用Focal Loss 損失函數(shù)進(jìn)行優(yōu)化,大大提高了模型的感受野和平均精度. 黃文斌[6]等基于YOLOv3-SPP 模型,在BN 層中添加縮放因子以進(jìn)行稀疏訓(xùn)練和通道剪枝,再對(duì)數(shù)據(jù)及數(shù)據(jù)集進(jìn)行優(yōu)化,這一方法提升了模型的推理速度和檢測(cè)精度. 韓玉潔[7]等通過在YOLOv4 上運(yùn)用空間金字塔池化和路徑聚合網(wǎng)絡(luò)的方法以改進(jìn)特征層之間的連接,采用自對(duì)抗訓(xùn)練、馬賽克法等數(shù)據(jù)增強(qiáng)方法,提升了無人機(jī)對(duì)地面小目標(biāo)的檢測(cè)精度;陳旭[8]等參考了YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)了一種改進(jìn)的淺層網(wǎng)絡(luò)YOLOv5sm,引入可增大感受野的殘差空洞卷積模塊來提高空間特征的利用率,使得模型的精度在前人的基礎(chǔ)上大大提高. 應(yīng)用無人機(jī)航拍視頻流進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè),對(duì)算法模型的檢測(cè)速度有較高要求,而無人機(jī)上嵌入式機(jī)載平臺(tái)算力有限、存儲(chǔ)容量小,對(duì)于模型參數(shù)量較高的雙階段算法,雖然其檢測(cè)精度較高但檢測(cè)實(shí)時(shí)性達(dá)不到實(shí)際需求.
YOLOv5 模型參數(shù)量小,具有推理速度快,精度高等優(yōu)點(diǎn),推理速度上最快能夠達(dá)到140 FPS[9-10].本文采用基于YOLOv5 算法,提出一種無人機(jī)小目標(biāo)檢測(cè)方法. 主要從兩個(gè)方面進(jìn)行改進(jìn):在模型主干網(wǎng)絡(luò)引入CAM-SAM 注意力模塊,在特征融合中采用跳躍式連接方法,進(jìn)行不同尺度的特征融合;在預(yù)測(cè)網(wǎng)絡(luò),使用高斯加權(quán)的Soft-NMS 替換NMS( 圖1).
圖1 改進(jìn)的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
注意力機(jī)制源于對(duì)人類視覺的研究,使神經(jīng)網(wǎng)絡(luò)能夠?qū)W⒂谝粋€(gè)特征子集并選擇特定的輸入,將輸入圖像特征輸出到下一層進(jìn)行加權(quán)組合,增強(qiáng)特征圖中有效特征的積累,并在深度的學(xué)習(xí)中得到廣泛應(yīng)用[11-12].本文在CBAM 基礎(chǔ)上進(jìn)行改進(jìn),得到通道-空間注意力模塊CAM-SAM,其結(jié)構(gòu)如圖2 所示.CAM-SAM 利用空間和通道兩個(gè)維度的注意力權(quán)值,挖掘小目標(biāo)密集區(qū)域的特征信息,提高小目標(biāo)區(qū)域的注意程度.
圖2 改進(jìn)的通道-空間注意力結(jié)構(gòu)
圖3為注意力機(jī)制CBAM 的結(jié)構(gòu),與通道-空間注意力進(jìn)行對(duì)比,通道-空間注意力的優(yōu)點(diǎn)在于沒有將CBAM 結(jié)構(gòu)中的特征Ms與通道特征向量F1相乘輸出最終特征圖,而是將特征Ms與通道特征Mc相乘得到的結(jié)果作為最后的特征輸出,其優(yōu)點(diǎn)是減少了該模塊的參數(shù)量和計(jì)算量,使其能作為輕量級(jí)通用 模塊集成到檢測(cè)網(wǎng)絡(luò)中.
圖3 CBAM 結(jié)構(gòu)
通道和空間注意力采用平行-串聯(lián)的方式連接組成通道-空間注意力模塊.首先,將特征F∈RC*H*W輸入通道注意力,進(jìn)行全局最大池化和全局平均池化,將生成的兩組序列發(fā)送給神經(jīng)網(wǎng)絡(luò)MLP,得到兩組特征向量1×1×C,將兩組特征向量相加,并使用sigmoid 函數(shù)激活,得到通道注意權(quán)值Mc,并與原始輸入特征F相乘得到通道特征向量F1. 計(jì)算公式為:
將通道-注意力生成的特征向量F1作為空間注意力模塊的輸入特征,得到兩個(gè)H×W×1 特征圖,并利用7*7 卷積核進(jìn)行降維操作生成一個(gè)H×W×1 特征圖,得到空間注意權(quán)重Ms,最后與通道注意權(quán)重Mc相乘,輸出通道-空間注意力特征圖.F2
[13-14]計(jì)算公式為:
上式中,F(xiàn)∈RC*H*W為輸入特征圖,C為特征圖的通道數(shù),H和W分別為特征圖的高度和寬度,MLP為人工神經(jīng)網(wǎng)絡(luò),表示使用7×7 的卷積核對(duì)特征進(jìn)行卷積處理,σ 為Sigmoid 函數(shù),?表示兩個(gè)向量之間的乘法.
NMS 是目標(biāo)檢測(cè)領(lǐng)域中重要的組成部分,在YOLO 算法的后處理階段中,采用非極大值抑制NMS進(jìn)行檢測(cè)框篩選,抑制非極大值的元素.NMS 算法是對(duì)每個(gè)類別所有檢測(cè)框的分類得分進(jìn)行排序,計(jì)算分?jǐn)?shù)最高的檢測(cè)框與其他框的IOU 值,刪除大于閾值的框,保留小于閾值的框.[15]其目的是在檢測(cè)目標(biāo)生成的多個(gè)候選框中,去除冗余邊框,保留最佳候選框.存在的問題是:當(dāng)面對(duì)多目標(biāo)且相互重疊遮擋的情況時(shí),NMS 算法易將重疊程度大的邊框得分置為0,從而造成目標(biāo)漏檢.因此,本文采用Soft-NMS算法并引入分?jǐn)?shù)重置的方法,完成預(yù)測(cè)框的篩選.通過對(duì)大于閾值的框進(jìn)行懲罰,保留IOU 值大且置信度高的同類別遮擋目標(biāo),利用加權(quán)降低置信度的方法,取代原NMS 中直接刪除大于閾值的框.Soft-NMS加權(quán)的方式有線性加權(quán)與高斯加權(quán)[16-17],線性加權(quán)的公式如(5)所示.
式(5)中,Si為第i個(gè)預(yù)測(cè)框?qū)?yīng)的分類得分,Ni為預(yù)設(shè)閾值,bi表示第i個(gè)預(yù)測(cè)框,M為每一輪得分最高的預(yù)測(cè)框,Xiou為預(yù)測(cè)邊界框面積A與實(shí)際邊界框面積B的交集與并集的比值.
高斯加權(quán)對(duì)IOU 值較大的目標(biāo)得分衰減更強(qiáng),而線性加權(quán)的分?jǐn)?shù)重置函數(shù)是一個(gè)斷層不連續(xù)函數(shù),為防止檢測(cè)序列突然發(fā)生變化,提出高斯分?jǐn)?shù)懲罰函數(shù)來解決檢測(cè)序列不連續(xù)的情況.對(duì)重疊遮擋的候選框使用高斯加權(quán)比使用線性加權(quán)有更好的檢測(cè)作用.本文在高斯加權(quán)的基礎(chǔ)上,對(duì)函數(shù)進(jìn)行改進(jìn),公式為:
(6)式中,σ 取值0.5,分?jǐn)?shù)重置函數(shù)的衰減幅度更大,對(duì)于有高度重疊的預(yù)測(cè)框,有利于預(yù)測(cè)框bi的置信度得分衰減至分?jǐn)?shù)閾值之下,從而加快預(yù)測(cè)框的篩選過程.
本文采用天津大學(xué)無人機(jī)拍攝的數(shù)據(jù)集VisDrone-2019.數(shù)據(jù)集共計(jì)包含6 471 張訓(xùn)練集圖像,548張驗(yàn)證集圖像,1 610 張測(cè)試集圖像,平均每張圖片包含50 多個(gè)目標(biāo),其訓(xùn)練集10 類檢測(cè)目標(biāo)樣本數(shù)量總計(jì)343 205 個(gè),檢測(cè)目標(biāo)類別一共10 類,包括car, bus, motor, people, pedestrian, van, bicycle, truck,tri-cycle,awning-tricycle[18-19],數(shù)據(jù)集中,小目標(biāo)較多.
網(wǎng)絡(luò)訓(xùn)練基于pytorch 深度學(xué)習(xí)框架,硬件配置:CPU 為AMD EPYC-7543,GPU 為RTX A5000,24 G內(nèi)存,云臺(tái)鏡像環(huán)境為pytorch1.7.0,Python3.8,Cuda11.0.
模型相關(guān)超參數(shù)設(shè)置:批量大小(Batch Size) 為4,訓(xùn)練周期(epochs)為200,權(quán)重衰減系數(shù)為0.000 5,初始學(xué)習(xí)率為0.02.實(shí)驗(yàn)評(píng)估指標(biāo)使用平均精度(Averge Precision, AP)、平均精度均值(mean Average Precision, mAP)、參數(shù)量(Params)、檢測(cè)速率(FPS)檢驗(yàn)算法的性能,計(jì)算公式為:
式(7)和式(8)中,AP代表訓(xùn)練數(shù)據(jù)集中各類別目標(biāo)的平均精度值,mAP表示所有類別目標(biāo)AP值的平均值[18],N為預(yù)測(cè)總類別數(shù).
評(píng)價(jià)指標(biāo)交并比(IOU)計(jì)算公式如(9)所示.其中,A為實(shí)際框,B為預(yù)測(cè)框.分子部分A∩B的值為預(yù)測(cè)框和實(shí)際框之間的重疊區(qū)域,分母部分A∪B為預(yù)測(cè)框和實(shí)際框所占有的全部區(qū)域.
選擇YOLOv5m 作為本文改進(jìn)設(shè)計(jì)目標(biāo)的檢測(cè)模型. 將YOLOv3, YOLOv4, YOLOv5m 和YOLOv5m+CAM-SAM+Soft-NMS 在相同數(shù)據(jù)集上進(jìn)行200 輪訓(xùn)練,實(shí)驗(yàn)結(jié)果表明,YOLOv5m+CAMSAM+Soft-NMS 模型在平均精度均值上要優(yōu)于其他3 種模型,且4 種模型在訓(xùn)練約150 輪后逐漸趨于穩(wěn)定,均沒有出現(xiàn)過擬合與欠擬合的情況.
為了驗(yàn)證改進(jìn)模塊的有效性,實(shí)驗(yàn)在輸入圖像分辨率大小為640×640、IOU 閾值0.5、相關(guān)超參數(shù)和訓(xùn)練輪數(shù)相同的情況下,得到訓(xùn)練的實(shí)驗(yàn)參數(shù)結(jié)果如表1 所示.表1 的實(shí)驗(yàn)4 通過引入改進(jìn)的通道-空間注意力CAM-SAM 和高斯加權(quán)的Soft-NMS,大大提高了模型的性能,其mAP 為42.1,與原始YO- LOv5m相比提高了5.8%,檢測(cè)速度FPS 提高了3 幀.檢測(cè)精度的提高反映出CAM-SAM 注意力機(jī)制增加了小目標(biāo)通道的權(quán)重比例,通過挖掘目標(biāo)特征信息引導(dǎo)模型更加關(guān)注小目標(biāo)相關(guān)特征信息,并加強(qiáng)了這些特征的訓(xùn)練.模型在引入改進(jìn)的Soft-NMS 后,準(zhǔn)確識(shí)別了一部分重疊的遮擋目標(biāo),加快了模型的收斂速度.在此基礎(chǔ)上分別使用YOLOv3 和YOLOv4 進(jìn)行對(duì)比實(shí)驗(yàn).結(jié)果顯示,改進(jìn)的YOLOv5m 算法在檢測(cè)精度和推理速度上有明顯的提升.
表1 4 種目標(biāo)檢測(cè)算法實(shí)驗(yàn)
2.4.1 YOLOv5 模型版本選擇
YOLOv5 目標(biāo)檢測(cè)網(wǎng)絡(luò)中共有4 個(gè)版本,分別為YOLOv5s, YOLOv5m, YOLOv5 l, YOLOv5x. 本文需要在這四個(gè)版本中選擇一個(gè)檢測(cè)精度較高、檢測(cè)速率合適且易部署在無人機(jī)終端的目標(biāo)檢測(cè)網(wǎng)絡(luò)模型.因此,使用YOLOv5s, m, 1, x 四種網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn).在輸入圖像分辨率和相關(guān)實(shí)驗(yàn)超參數(shù)相同的情況下,實(shí)驗(yàn)結(jié)果如表2 所示.
表2 YOLOv5 不同版本模型的檢測(cè)精度和速度
分析四種模型的訓(xùn)練結(jié)果,YOLOv5l 與YOLOv5x 在mAPs0 值比YOLOv5m 高出不到9%的情況下,模型的檢測(cè)速率下降了45%左右,且網(wǎng)絡(luò)訓(xùn)練時(shí)間更長(zhǎng),所得到的訓(xùn)練權(quán)重文件更大,難以在無人機(jī)中部署,且檢測(cè)實(shí)時(shí)性上不滿足實(shí)際需求.雖然YOLOv5s 在檢測(cè)速率上能夠達(dá)到每秒121 幀,且參數(shù)量較少,但其檢測(cè)精度相比YOLOv5m 下降了7.3.因此,在權(quán)衡下選擇YOLOv5m 作為無人機(jī)目標(biāo)檢測(cè)模型.
2.4.2 不同算法實(shí)驗(yàn)對(duì)比
為了驗(yàn)證改進(jìn)后YOLOv5m 算法的有效性,將改進(jìn)后YOLOv5m 算法與其他算法進(jìn)性對(duì)比,結(jié)果見表3.文獻(xiàn)[6]使用的YOLOv3-SPP 模型是在YOLOv3 的基礎(chǔ)上,在第五層和第六層卷積中添加一個(gè)空間金字塔池化SPP 模塊,并使用GIoU 損失函數(shù)替代損失模型,提高目標(biāo)定位的精度,相比YOLOv3,其mAP50提高了18.3%,但檢測(cè)速度有所下降.相比文獻(xiàn)[20],在相同數(shù)據(jù)集和圖像分辨率的情況下,改進(jìn)模型mAP50值比文獻(xiàn)中的模型提高了27.6%.對(duì)比改進(jìn)模型與其他五種模型實(shí)驗(yàn)結(jié)果,可以發(fā)現(xiàn),改進(jìn)模型在檢測(cè)精度要優(yōu)于其他模型,檢測(cè)速度也達(dá)到了不錯(cuò)的效果.
表3 不同目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)比
2.4.3 Soft-NMS 與NMS 對(duì)比驗(yàn)證
用高斯加權(quán)Soft-NMS 替換預(yù)測(cè)網(wǎng)絡(luò)中的NMS, 驗(yàn)證改進(jìn)的Soft-NMS 模塊對(duì)重疊遮擋目標(biāo)檢測(cè)精度的影響.實(shí)驗(yàn)?zāi)P椭芯胪ǖ?空間注意力機(jī)制.AP(NMSo.s)表示IOU 閾值為0.5 時(shí)的平均精度,AP(NMSo5)表示IOU 閾值為0.75 時(shí)的平均精度.結(jié)果見表4.對(duì)比NMSo.s 和Soft-NMSo.s 的檢測(cè)數(shù)據(jù)發(fā)現(xiàn),使用高斯加權(quán)的Soft-NMS 可以有效減少重疊遮擋目標(biāo)的漏檢,提高各類別目標(biāo)檢測(cè)的精度.用NMSo75時(shí),因閾值過大,真實(shí)預(yù)測(cè)框被抑制,導(dǎo)致AP 精度顯著降低.
表4 不同非極大抑制方法對(duì)精度的影響
采用NMS 在閾值為0.5 和0.75 時(shí)與Soft-NMSo.s 對(duì)實(shí)際小目標(biāo)漏檢和誤檢的改進(jìn)效果顯示,使用高斯加權(quán)的Soft-NMS 能有效減少重疊目標(biāo)的漏檢和誤檢問題.
實(shí)驗(yàn)無人機(jī)搭載開源飛控PX4 和 Nvidia Jetson Xavier NX 機(jī)載計(jì)算機(jī),采用Intel Realsense D435i 深度相機(jī)作為視覺傳感器,通過無人機(jī)上搭載的深度相機(jī)進(jìn)行圖像采集,利用地面站與板載計(jì)算機(jī)的高清圖傳進(jìn)行實(shí)時(shí)數(shù)據(jù)交互.
在無人機(jī)平臺(tái)上使用YOLOv5m 與YOLOv5m+CAM-SAM+Soft-NMS 模型進(jìn)行測(cè)試,將模型訓(xùn)練得到的權(quán)重文件部署在無人機(jī)機(jī)載平臺(tái)上,并選擇一處公園進(jìn)行實(shí)景試飛檢測(cè).實(shí)驗(yàn)結(jié)果見圖4.兩種模型都能夠準(zhǔn)確檢測(cè)出圖中3 個(gè)行人小目標(biāo),YOLOv5m+CAM-SAM+Soft-NMS 模型在檢測(cè)精度數(shù)值上分別為0.84,0.80,0.73,高于原YOLOv5m 模型中的0.81,0.79,0.49.
圖4 兩種模型搭載無人機(jī)檢測(cè)效果圖
本文提出了一種改進(jìn)的YOLOv5m 目標(biāo)檢測(cè)算法,解決無人機(jī)航拍圖像中小目標(biāo)像素信息少、特征表示弱導(dǎo)致的模型檢測(cè)準(zhǔn)確率低的情況.首先,基于CBAM 提出了一種輕量級(jí)通用的通道-空間注意力CAM-SAM 模塊,使小目標(biāo)群體獲得更大的注意力權(quán)重,提高關(guān)鍵特征提取能力,并集成在主干網(wǎng)絡(luò)中,在頸部網(wǎng)絡(luò)中使用跳躍式特征金字塔結(jié)構(gòu)提高模型檢測(cè)性能.其次,在預(yù)測(cè)網(wǎng)絡(luò)使用高斯加權(quán)的 Soft-NMS 替換NMS 算法,作為遮擋情況下精度優(yōu)化的方法.改進(jìn)的模型在保證檢測(cè)精度的同時(shí),檢測(cè)速度上也得到了保證,在無人機(jī)目標(biāo)檢測(cè)實(shí)際任務(wù)當(dāng)中得到了較好的應(yīng)用 .