陳世權(quán), 王從慶, 周勇軍
(1.南京航空航天大學自動化學院,南京 210000; 2.近地面探測技術(shù)重點實驗室,江蘇 無錫 214000)
行人檢測是指從圖像或視頻等視覺數(shù)據(jù)中識別出行人目標,同時指出它們的位置和大小,其在軍事偵察、視頻監(jiān)控、野外救援等領(lǐng)域發(fā)揮著越來越重要的作用。傳統(tǒng)的行人檢測算法,如HOG[1]+SVM[2],DPM(DeformableParts Model)[3]等,大多采用人工特征提取的方法,主觀性較強且特征單一,難以適用于低照度等復雜環(huán)境下的多尺度行人目標檢測。此外,采用滑動窗口進行候選框提取的方法沒有針對性,存在大量冗余,因此時間復雜度過高。
近年來,基于深度學習的行人檢測算法不斷取得突破創(chuàng)新,該算法通過對大規(guī)模數(shù)據(jù)的自主學習,主動提取出具有代表性的特征,從而解決了傳統(tǒng)方法需要人工提取特征的問題。深度學習行人檢測算法主要分為兩階段算法和一階段算法兩類。前者先產(chǎn)生目標候選框,再對候選框做分類與回歸,這類算法主要包括R-CNN[4],Fast R-CNN[5],Faster R-CNN[6]等;后者則不用產(chǎn)生目標候選框,僅使用一個神經(jīng)網(wǎng)絡完成目標檢測,這類算法主要包括YOLO[7]系列等。
盡管基于深度學習的行人檢測算法在可見光圖像上的應用已經(jīng)十分成熟,但針對低照度等復雜環(huán)境,僅利用可見光相機往往無法發(fā)揮作用??梢姽鈭D像的優(yōu)勢在于其分辨率高、背景細節(jié)信息豐富,但其缺點是容易受到外界因素影響,在低照度等復雜環(huán)境下甚至不能工作;而紅外圖像中行人目標高亮,受光照條件的影響較小,但其缺點是分辨率低、包含的背景細節(jié)信息較少。而將兩者融合為一幅圖像,綜合兩者的優(yōu)點則可以揚長避短。
因此,本文首先采集低照度環(huán)境下多尺度行人目標的可見光和紅外數(shù)據(jù)集,并通過一種基于生成對抗網(wǎng)絡的可見光與紅外圖像融合算法得到融合圖像數(shù)據(jù)集。然后在YOLOv5s算法的基礎(chǔ)上,對其網(wǎng)絡結(jié)構(gòu)進行優(yōu)化,加入SENet(Squeeze-and-Excitation Networks)[8]通道注意力模塊,刪除部分卷積層,修改激活函數(shù)。最后利用遷移學習的思想進行訓練,這些改進在保持算法實時性的同時,進一步提升了行人檢測的準確性。實驗結(jié)果表明,利用融合圖像數(shù)據(jù)集訓練得到的模型進行行人檢測的平均精度均值(mAP)高于可見光數(shù)據(jù)集和紅外數(shù)據(jù)集,改進后的SE-YOLOv5s模型在可見光、紅外、融合3種數(shù)據(jù)集上的mAP均得到有效提升。
行人檢測對算法準確性和實時性都有較高要求,且行人目標尺度大小不一,而YOLOv5s算法是當前一種實時性與準確性俱佳的行人檢測算法,并且適用于多尺度目標檢測,所以本文采用YOLOv5s模型,其網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s網(wǎng)絡結(jié)構(gòu)Fig.1 Structure of YOLOv5s network
整個網(wǎng)絡結(jié)構(gòu)由輸入(Input)、主干網(wǎng)絡(Backbone)、連接網(wǎng)絡(Neck)和檢測網(wǎng)絡(Detection)4個部分組成,其中重點是Backbone和Neck 部分。Backbone在Darknet- 53的基礎(chǔ)上,引入了CSP[9]模塊。CSP模塊通過將基礎(chǔ)層的特征映射分流再合并,有效防止產(chǎn)生過多的重復梯度信息,在減少計算量的同時保持足夠的準確性。另外,Backbone中Focus模塊的作用是對圖片進行切片操作,使得下采樣時能夠最大程度減少信息損失。SPP模塊利用4個卷積核大小不同的最大池化層實現(xiàn)不同尺度的特征融合,可以更有效地增大主干特征的接收范圍,有利于多尺度行人檢測。
YOLOv5s的Neck部分在FPN(Feature Pyramid Net-works)[10]結(jié)構(gòu)的基礎(chǔ)上又參考了PANet[11]網(wǎng)絡,實現(xiàn)了FPN+PAN結(jié)構(gòu)的多尺度特征融合網(wǎng)絡。待檢測圖像經(jīng)過Backbone的多次下采樣,高層特征映射的語義信息豐富,而底層特征映射的細節(jié)信息豐富。FPN層通過上采樣的方式自頂向下傳達強語義信息,同時PAN層又通過下采樣的方式自底向上傳達強定位信息,這樣可以實現(xiàn)不同尺度的目標特征信息融合,增強對多尺度行人目標的檢測性能。
YOLOv5s目標檢測算法以其卓越的檢測速度和精度在各類目標檢測任務中取得了十分優(yōu)秀的效果,但在針對低照度環(huán)境下的多尺度行人檢測時,由于光照條件差,可見光圖像中的行人目標難以檢測,而紅外圖像中盡管行人目標高亮,易于檢測,但背景細節(jié)信息較少,且分辨率低。因此,本文制作了紅外、可見光融合圖像數(shù)據(jù)集,行人檢測的準確率和召回率都得到了顯著提升,但是相比于召回率,準確率的指標還不夠理想。
所謂準確率,是指被預測為行人目標的樣本中真正的行人目標所占的比率,而召回率是指所有的行人目標中被模型正確預測的比率。原始的YOLOv5s之所以召回率較高而準確率不理想,是因為紅外圖像或者融合圖像中的行人目標是高亮目標,容易檢測,但圖像中還存在其他高亮目標,如路燈、車燈、路標等,將這些背景信息誤當成行人目標檢測出來,就造成了準確率較低。因此,本文將SENet中的SE模塊引入YOLOv5s,通過通道注意力讓網(wǎng)絡更加關(guān)注高亮目標,提取出更多不同的特征來區(qū)分行人目標和其他高亮的背景信息,提高檢測的準確率。改進后的SE-YOLOv5s的網(wǎng)絡結(jié)構(gòu)如圖2所示。
圖2 改進后的SE-YOLOv5s網(wǎng)絡結(jié)構(gòu)Fig.2 Structure of improved SE-YOLOv5s network
圖3 SE模塊結(jié)構(gòu)Fig.3 Structure of SE module
SE模塊包括壓縮和激勵兩個關(guān)鍵步驟。由于卷積只在一個局部空間內(nèi)進行操作,所以輸出的特征映射難以獲得足夠的信息來提取通道之間的關(guān)系,因此,進行壓縮可以讓輸出的特征映射具有整張圖片的感受野。壓縮采用全局平均池化層來實現(xiàn),將每個通道上的整個空間特征轉(zhuǎn)換為一個具有全局感受野的全局特征,即將一個二維的通道特征轉(zhuǎn)換為一個實數(shù),輸入特征映射的大小也從H×W×C轉(zhuǎn)換為1×1×C。
壓縮過程得到了各個通道的全局特征,激勵過程則用來學習各個通道之間的相關(guān)性,得到不同通道的權(quán)重系數(shù)。SE模塊通過兩個全連接層和ReLU激活函數(shù)來學習各通道之間的非線性關(guān)系,其中,第1個全連接層通過降維起到了減少計算量和增強泛化性能的作用,第2個全連接層恢復原來的維度。之后再通過Sigmoid激活函數(shù)進行歸一化,同時產(chǎn)生不同通道的權(quán)重系數(shù)。最后的過程是權(quán)重重標定,即將通道權(quán)重系數(shù)乘以原來的輸入特征映射得到輸出特征映射,使得模型對于各個特征通道的重要程度更加敏感。
YOLOv5s中Backbone是特征提取的主網(wǎng)絡,而添加在網(wǎng)絡末端的SE模塊對準確率的影響較小,因此,本文在Backbone的每個CSP模塊之后添加SE模塊,共添加了4個SE模塊。同時,因為SE模塊中包含2個全連接層,全連接層的計算量較大,所以添加4個SE模塊后會增加模型的參數(shù)量以及計算量。為了保持原算法的檢測速度,本文將原本YOLOv5s中的每個CSP模塊刪減一個卷積層和一個BN層,刪減后的CSP模塊命名為NC(New CSP)模塊,包括NC1_X和NC2_X兩種結(jié)構(gòu),它們具體的網(wǎng)絡結(jié)構(gòu)如圖4所示。
圖4 NC模塊結(jié)構(gòu)Fig.4 Structure of NC module
圖4中,CBS模塊表示一個卷積層、一個批歸一化層和SiLU(Sigmoid-Weighted Linear Units)激活函數(shù)的串聯(lián)模塊。通過對比實驗發(fā)現(xiàn),使用SiLU激活函數(shù)之后行人檢測的準確率更高,所以本文采用SiLU激活函數(shù)替換所有LeakyReLU激活函數(shù)。SiLU激活函數(shù)的表達式為
SiLU(x)=x×σ(x)
(1)
(2)
YOLOv5s原始網(wǎng)絡結(jié)構(gòu)的總參數(shù)量為7 256 120,經(jīng)過上述改進后的SE-YOLOv5s網(wǎng)絡結(jié)構(gòu)的總參數(shù)量為7 237 622,比改進前減少了18 498。由此可見,本文對YOLOv5s網(wǎng)絡結(jié)構(gòu)的改進不會造成計算量的大幅增加,因此可以保持其卓越的檢測速度。
本文使用的行人圖像采集裝置為大疆“御”Mavic2行業(yè)雙光版無人機,該無人機同時配備了可見光相機和紅外相機,其中,可見光相機的分辨率為3840像素×2160像素,紅外相機的分辨率為640像素×360像素。采集的圖像為低照度環(huán)境下的多尺度行人圖像,時間為傍晚或夜間,地點在校園內(nèi)的道路、操場和樹林。為了使圖像中行人目標的尺度變化不一,無人機飛行高度控制在5~20 m之間。對采集到的可見光圖像和紅外圖像,基于尺度不變特征變換(Scale Invariant Feature Transform,SIFT)[12]算法進行配準,包括特征匹配和仿射變換兩個主要步驟,配準后,可見光、紅外圖像的分辨率均為640像素×360像素,為了消除邊緣部分的對齊誤差,再對圖像進行中心裁剪,最終得到1696組480像素×360像素的可見光圖像和紅外圖像。
然后,利用生成對抗網(wǎng)絡(GAN)融合可見光圖像和紅外圖像[13],其結(jié)構(gòu)原理圖見圖5。
圖5 圖像融合結(jié)構(gòu)原理圖Fig.5 Schematic diagram of image fusion structure
其中,生成器G采用U-Net[14]網(wǎng)絡結(jié)構(gòu),其所具有的編碼層和解碼層結(jié)構(gòu)可以更好地提取圖像特征,而且適用于三通道RGB可見光圖像和單通道紅外圖像的融合;判別器D采用馬爾可夫判別器,融合后得到1696幅彩色融合圖像。最后,使用標簽工具對圖像中的行人目標進行標注,得到可見光、紅外、融合3種對應的圖像數(shù)據(jù)集。3種數(shù)據(jù)集的部分圖像如圖6所示,可以看出融合圖像在保持紅外圖像上行人目標高亮的同時引入了可見光圖像中的背景信息。
圖6 3種數(shù)據(jù)集圖像示例Fig.6 Image examples of three data sets
實驗所采用的計算機硬件設置為:Intel?CoreTMi7-10700K CPU,NVIDIA RTX 3080 10 GiB GPU,32 GiB內(nèi)存。實驗平臺操作系統(tǒng)為Linux 18.04 LTS系統(tǒng),深度學習框架采用PyTorch搭建??梢姽狻⒓t外、融合數(shù)據(jù)集均包含1696幅圖像,按照9∶3∶1的比例將圖像隨機劃分到訓練集、測試集和驗證集中,原始圖像大小為480像素×360像素,訓練時縮放到256像素×256像素。由于YOLOv5s算法本身會進行數(shù)據(jù)增強,包括最新引入的Mosaic數(shù)據(jù)增強,所以此次研究未進行單獨的數(shù)據(jù)增強。超參數(shù)設置:批大小(batch size)為16張,訓練次數(shù)(epochs)為300,初始學習率為0.01,權(quán)重衰減系數(shù)為0.000 5。
本文所采用的性能評價指標包括:準確率P、召回率R、平均精度均值(mean Average Precision,mAP)以及幀率。其中,前3個為衡量算法檢測精度的指標,P,R的算式分別為
(3)
(4)
式中:TTP為正例被正確預測數(shù)量;FFP為負例被錯誤預測為正例數(shù)量;FFN為正例被錯誤預測數(shù)量;P′為所有正例數(shù)量。
mAP是對P和R的一種綜合處理指標,表示PR曲線下的面積,針對不同的交并比(Intersection Over Union,IOU)其閾值有所不同,mAP0.5表示IOU為0.5時的mAP,mAP0.5:0.95表示IOU從0.5到0.95,步長為0.05時mAP的平均值。幀率是衡量算法速度的指標,單位為幀/s。針對融合圖像,時間計算包括圖像融合和行人檢測整個過程。
使用SE-YOLOv5s算法和原始YOLOv5s算法分別在3種數(shù)據(jù)集上進行訓練,同時,借鑒遷移學習的思想,利用SE-YOLOv5s算法先在COCO數(shù)據(jù)集上進行預訓練,然后在自建數(shù)據(jù)集上繼續(xù)訓練,得到SE-YOLOv5s-pt模型。訓練完成后,測試集上得到的性能指標對比如表1所示。
表1 性能指標對比表Table 1 Comparison of performance index
由表1可見,在3種不同的數(shù)據(jù)集上,改進后的SE-YOLOv5s模型相比于改進前,均大幅提升了檢測準確率P,由于P和R之間存在一定的相關(guān)性,所以難以避免地會使檢測召回率R稍有降低。針對目標檢測重要的性能指標mAP,改進后的模型在3種數(shù)據(jù)集上均顯著提升了mAP。速度指標方面,改進后模型的幀率相比于改進前略有提升,由此可見,SE-YOLOv5s模型在提升行人檢測準確性的同時,保持了原算法的檢測速度。同時,實驗結(jié)果表明,基于遷移學習訓練的模型可以進一步提升行人檢測的準確性。圖7分別給出了在3種數(shù)據(jù)集上訓練時,3個模型在驗證集上的mAP 0.5:0.95對比。
圖7 3個模型mAP0.5:0.95對比Fig.7 mAP0.5:0.95 comparison of three models
另一方面,從表1可見,融合數(shù)據(jù)集上的各項精度指標均高于可見光數(shù)據(jù)集和紅外數(shù)據(jù)集,幀率滿足實時性要求。由此可見,融合圖像可以進一步增強行人目標與背景信息之間的特征差異,提升行人檢測的準確性。圖8給出了測試集中部分圖像的行人目標檢測結(jié)果,目標框上的數(shù)字表示置信度。由圖8可見,紅外圖像中誤將道路指示標當作行人目標,而融合圖像中沒有;可見光圖像由于光照條件差,檢測結(jié)果很差;紅外圖像中被球門擋住的行人未檢測出,而融合圖像中的檢測效果更為理想。圖9分別給出了采用3個模型進行訓練時,3種數(shù)據(jù)集在驗證集上得到的mAP0.5:0.95對比。
圖8 3種數(shù)據(jù)集部分圖像檢測結(jié)果Fig.8 Partial image detection results of three data sets
圖9 3種數(shù)據(jù)集mAP0.5:0.95對比Fig.9 mAP0.5:0.95 comparison of three data sets
本文針對YOLOv5s算法在低照度環(huán)境下多尺度行人檢測時準確率不足的問題,引入SENet通道注意力模塊,并對其網(wǎng)絡結(jié)構(gòu)進行優(yōu)化,刪除部分卷積層,修改激活函數(shù),得到了準確性和實時性俱佳的SE-YOLOv5s目標檢測算法。同時,本文制作了可見光、紅外融合圖像數(shù)據(jù)集用于行人檢測,進一步提升了檢測性能。實驗結(jié)果表明,利用融合圖像數(shù)據(jù)集訓練得到的模型的平均精度均值高于可見光數(shù)據(jù)集和紅外數(shù)據(jù)集,改進后的SE-YOLOv5s算法在保持原算法高實時性的同時,有效提升了行人檢測的平均精度均值。