施 政,毛 力,孫 俊
(江南大學人工智能與計算機學院,江蘇無錫 214122)
行人檢測[1-3]作為目標檢測中的重要任務,在無人駕駛、視頻監(jiān)控等領(lǐng)域得到廣泛應用。傳統(tǒng)的行人檢測方法主要使用人工設計的梯度方向直方圖(Histogram of Oriented Gradients,HOG)[4]、小波變換(Haar)[5]、聚合通道特征(Aggregated Channel Features,ACF)[6]等特征提取器來提取行人特征,并使用支持向量機(Support Vector Machines,SVM)[7]、自適應提升(Adaptive Boosting,AdaBoost)[8]等分類器來判斷區(qū)域是否有目標。隨著深度學習的不斷發(fā)展,F(xiàn)aster-RCNN(Faster Region-based Convolutional Neural Networks)[9]、SSD(Single Shot Detection)[10]、YOLO(You Only Look Once)[11]等目標檢測算法相繼被提出,使得行人檢測方法得到較快發(fā)展[12-14]。但是,此類可見光單模態(tài)檢測算法無法應對光照不足的情況,從而導致行人檢測模型在夜間表現(xiàn)效果不佳。如何提高行人檢測模型在光照不足情況下的魯棒性是亟待解決的問題。
紅外相機基于紅外光反射成像,在夜間光照不足條件下也能獲取到圖片的特征,其能夠?qū)梢姽饽B(tài)進行信息補充,使得夜間行人檢測[15]成為可能。但是,由于紅外光圖像的紋理信息較少,在光照良好的條件下,可見光模態(tài)行人檢測模型效果更優(yōu)。因此,近年來有大量紅外光與可見光多模態(tài)相融合的行人檢測算法被提出。文獻[16]提出KAIST 數(shù)據(jù)集,其包括一一匹配的可見光和紅外光圖片,該文提出可見光與紅外光融合的ACF+T+THOG(Aggregated Channel Features+Thermal+Thermal Histogram of Oriented Gradients)行人檢測器,實驗結(jié)果表明,融合后的行人檢測器在性能上優(yōu)于可見光或紅外光的單模態(tài)行人檢測器,但是,因為其使用傳統(tǒng)方法,檢測準確率依然太低。文獻[17]使用深度卷積神經(jīng)網(wǎng)絡,并提出前期融合(Early Fusion)和后期融合(Late Fusion)2種特征融合策略。文獻[18]進一步探討基于深度卷積神經(jīng)網(wǎng)絡的可見光與紅外光圖像特征融合結(jié)構(gòu),并提出比前期融合和后期融合更好的中層融合(Halfway Fusion),再次提升了檢測性能。文獻[19]在Halfway Fusion 的基礎上使用區(qū)域推薦網(wǎng)絡(Region Proposal Network,RPN)作為特征提取模塊,并使用BDT(Boosted Decision Trees)進行分類,提升了行人檢測器的性能。但是,上述多模態(tài)行人檢測算法在進行特征提取時忽略了行人圖像的多尺度問題,只對單獨的特征層進行融合,這使得算法對多尺度行人尤其是小目標行人的檢測效果不佳。此外,這些算法所使用的融合方案為簡單的concat 級聯(lián)融合,忽略了白天和夜晚不同光照條件下各模態(tài)的特征信息差異,導致檢測效果較差。
本文在YOLO 算法的基礎上,提出針對可見光和紅外光雙模態(tài)輸入的行人檢測算法,并對其他算法模態(tài)融合時所使用的concat 級聯(lián)融合進行改進,設計結(jié)合注意力機制的模態(tài)加權(quán)融合方法。
本節(jié)對YOLO 算法進行介紹,包括其進行目標檢測的基本原理和用于特征提取的Darknet53 框架網(wǎng)絡結(jié)構(gòu)?;赮OLO 網(wǎng)絡的檢測方法直接從圖像中提取特征,再端到端地回歸以得到結(jié)果。Darknet53 通過1×1 和3×3 卷積核的交替堆疊來完成特征提取,通過步長為2 的卷積核完成下采樣過程。
YOLO 將輸入圖片縮放為416×416,再分成S×S的網(wǎng)格,待檢測目標的中心落入某個網(wǎng)格時,由該網(wǎng)格預測出B個邊框。若有C類的待檢測物體,則每個邊框輸出的向量大小為C+5,5 代表形如T=(x,y,w,h,S)的五元組,(x,y)為物體中心的橫縱坐標,(w,h)為物體的寬高,S代表預測框的置信度評分,其計算方式為:
當預測框中存在物體時,P(O)=1;否則,P(O)=0。I代表預測框和真實框的交并比,P(Ci)代表物體存在時該物體屬于C類物體中的第i個的概率。在獲得每個邊框的置信度評分之后設置閾值,使用非極大性抑制算法(NMS)進行處理,將得分小于閾值的置為0,將置信度評分S較高的預測框作為檢測框。
Darknet53 是REDMON J 在YOLOv3[20]中提出的用于特征提取的主干網(wǎng)絡,網(wǎng)絡的基本單元由卷積層、批歸一化層(Batch Normalization)和Leaky ReLU 激活函數(shù)組成,其加深了網(wǎng)絡層數(shù),增強了特征提取能力,又借鑒了殘差網(wǎng)絡residual network[21],能夠避免由于網(wǎng)絡層數(shù)過深導致的模型退化問題。網(wǎng)絡結(jié)構(gòu)中有5 個殘差模塊,分別為{Block1,Block2,Block3,Block4,Block5},每個殘差模塊記為Resn,其中,包含n個殘差單元。Darknet53 網(wǎng)絡參數(shù)如圖1 所示。
圖1 Darknet53 網(wǎng)絡結(jié)構(gòu)Fig.1 Network structure of Darknet53
在本文所提基于YOLO 的多模態(tài)加權(quán)融合行人檢測算法模型中,先進行多模態(tài)特征提取,再對提取后的特征進行特征加權(quán)融合和注意力機制加強,最后使用多尺度的特征圖進行目標檢測,以預測出行人目標的位置和概率。
行人檢測算法模型整體流程框架如圖2 所示。選取一一對應的可見光與紅外光圖片作為輸入,分別送入特征提取網(wǎng)絡Darknet53 中,提取出2 個模態(tài)的多尺度特征圖,并將提取后的特征依次送入模態(tài)加權(quán)融合層MAM中進行模態(tài)加權(quán)融合,再將融合結(jié)果送入CBAM(Convolutional Block Attention Module)模塊進行注意力機制加強。在完成以上2 個步驟后,可以獲得多尺度的加權(quán)融合特征圖,最后將多尺度的加權(quán)融合特征圖依次級聯(lián)并送入YOLO 層完成目標檢測任務。本文算法對YOLO 的輸入端進行修改,使得模型可以使用一一對應的多模態(tài)圖像對作為輸入,為了對不同模態(tài)的特征圖進行加權(quán)融合,使用模態(tài)加權(quán)融合模塊MAM和注意力機制模塊CBAM。
圖2 基于YOLO 的多模態(tài)加權(quán)融合行人檢測算法流程Fig.2 Procedure of YOLO-based multi-modal weighted fusion pedestrian detection algorithm
本文使用雙路Darknet53 作為特征提取網(wǎng)絡,提取可見光圖片特征的部分記為Darknet-V,提取紅外光圖片特征的部分記為Darknet-I。對于大小為416×416 的輸入圖片,特征提取網(wǎng)絡的2 個分支分別在Block3、Block4、Block5 后獲得3 個多尺度特征圖,可見光模態(tài)的特征圖記為{V1,V2,V3},紅外光模態(tài)的特征圖記為{I1,I2,I3}。將所得的可見光模態(tài)特征和紅外光模態(tài)特征送入特征融合模塊Fusion 中進行融合,融合結(jié)果為{M1,M2,M3},特征提取模塊架構(gòu)如圖3 所示。
圖3 特征提取模塊架構(gòu)Fig.3 Architecture of feature extraction module
從圖4 的白天可見光-紅外光行人圖像對和圖5的夜晚可見光-紅外光行人圖像對可以看出,白天可見光圖片中行人目標紋理清晰,特征豐富,紅外光行人目標僅具有輪廓信息,而夜晚在光照不充分的條件下,可見光圖片行人目標難以辨認,紅外光圖片行人特征明顯易于識別。在白天、夜晚不同的光照環(huán)境下,2 個模態(tài)的數(shù)據(jù)呈現(xiàn)出不同的特點,因此,要針對不同模態(tài)的數(shù)據(jù)設置加權(quán)特征融合模塊。
圖4 白天場景中行人目標的可見光和紅外光圖像Fig.4 Visible and infrared images of pedestrian targets in daytime scenes
圖5 夜晚場景中行人目標的可見光和紅外光圖像Fig.5 Visible and infrared images of pedestrian targets in nighttime scenes
其他的多模態(tài)融合行人檢測算法采用直接concat的級聯(lián)融合方式[17-19],這種做法默認了2 個模態(tài)提供的信息相等。本文先通過NIN(Network in Network)[22]層對可見光模態(tài)特征圖與紅外光模態(tài)特征圖進行維度壓縮,然后使用圖6 所示的MAM(Modal Attention Module)模塊對2 個模態(tài)的特征圖進行加權(quán),再對加權(quán)后的2 個模態(tài)特征圖實現(xiàn)級聯(lián),以在賦予不同模態(tài)權(quán)重的情況下保證融合特征圖的通道數(shù)和單模態(tài)特征圖的通道數(shù)相等,使得模型可以重用后續(xù)目標檢測模塊中的參數(shù)。可見光多尺度特征圖記為{V1,V2,V3},紅外光多尺度特征圖記為{I1,I2,I3},MAM 層的2個輸入Vnin和Inin分別代表可見光模態(tài)和紅外光模態(tài)經(jīng)過NIN 層壓縮后的特征圖。fnin是NIN 函數(shù),即通過1×1 卷積核對特征圖進行降維,完成各模態(tài)在不同通道上的信息整合。fcat是concat融合函數(shù)。模態(tài)注意力機制獲得了可見光模態(tài)的特征描述符Aν和紅外光模態(tài)的特征描述符Ai,相加后記為Am,將2 個模態(tài)的特征描述符分別除以特征描述符之和Am,作為各自模態(tài)的權(quán)重,與特征圖相乘后再級聯(lián)融合,作為加權(quán)融合特征圖,3 個尺度的加權(quán)融合特征圖記為{M1,M2,M3},則每個尺度的加權(quán)融合特征圖為:
圖6 MAM 注意力機制結(jié)構(gòu)Fig.6 The structure of MAM attention mechanism
在通過MAM 層對特征圖進行加權(quán)融合之后,加入CBAM 注意力機制[23],以優(yōu)化特征融合模塊,對特征圖的通道和空間進行選擇。CBAM 層的輸入為多尺度加權(quán)融合特征圖{M1,M2,M3},經(jīng)過注意力機制加強后輸出的多尺度加權(quán)融合注意力特征圖記為{MA1,MA2,MA3},每個尺度的特征圖為:
其中,fsam代表空間注意力機制,fcam代表通道注意力機制。上述特征圖用于后續(xù)的多尺度目標檢測。如圖7所示,CBAM是一種結(jié)合通道(Channel)和空間(Spatial)的注意力機制模塊,加在每個特征融合模塊之后。
圖7 CBAM 注意力機制結(jié)構(gòu)Fig.7 The structure of CBAM attention mechanism
加權(quán)融合特征圖的通道分別來自可見光特征圖和紅外光特征圖,通道注意力機制(Channel Attention Module)可以利用通道間的關(guān)系學習一個權(quán)重,將其乘以對應的通道,以實現(xiàn)在不同模態(tài)之間的特征選擇。在通道注意力機制中,輸入的多模態(tài)融合特征圖F的通道數(shù)為C,高為H,寬為W,記為F∈?C×H×W。通道注意力機制先對F進行全局平均池化(Avgpool)和最大池化(Maxpool),得到2 個大小為C×1×1 的特征描述符,將其分別送入一個2 層的神經(jīng)網(wǎng)絡MLP 中,將輸出的特征相加后獲得通道注意力權(quán)重,與原來的特征圖F相乘得到新特征F′:
空間注意力機制(Spatial Attention Module)利用不同空間位置之間的關(guān)系學習空間權(quán)重圖,并將其與對應的空間位置相乘,可以加強圖像對中的目標遮擋、光照不足等特征較弱部分的學習。以經(jīng)過通道注意力機制加強的特征圖F′∈?C×H×W作為輸入,進行通道維度的平均池化和最大池化,得到2 個1×H×W的特征描述,將其拼接在一起之后經(jīng)過7×7的卷積核獲得空間注意力權(quán)重,與輸入的特征圖F′相乘得到F″,F(xiàn)″即為融合特征圖,如下:
完整的特征融合模塊如圖8 所示,其中,V代表可見光特征圖,I代表紅外光特征圖,M代表融合特征圖,MA代表經(jīng)過注意力機制加強后的融合特征圖。
圖8 特征融合模塊結(jié)構(gòu)Fig.8 Feature fusion module structure
在獲得了經(jīng)過注意力機制加強后的可見光與紅外光融合的多尺度特征圖之后,將特征圖依次融合并送入YOLO 層進行目標檢測。{MA1,MA2,MA3}代表3 個尺度的注意力加權(quán)融合特征圖,在獲得MA1之后,經(jīng)過數(shù)個卷積層,將大小為13×13 的特征圖送入YOLO1,感受野較大,應用于大尺度目標的檢測;隨后進行上采樣,并與經(jīng)過數(shù)個卷積層的MA2特征圖結(jié)果進行concat,再經(jīng)過卷積獲得大小為26×26 的特征圖,此特征圖送入YOLO2,用于中等尺度目標的檢測;最后再將特征圖上采樣并和經(jīng)過數(shù)個卷積層的MA3進行concat,經(jīng)過數(shù)個卷積層之后獲得大小為52×52 的特征圖并送入YOLO3,此特征圖感受野較小,用于小目標的檢測。經(jīng)過以上過程,模型針對多尺度行人的檢測能力有所提升,多尺度目標檢測網(wǎng)絡整體架構(gòu)如圖9 所示,DBL 即1.2 節(jié)所述的網(wǎng)絡基本單元,UP 為上采樣模塊,Conv 為卷積層。
圖9 多尺度目標檢測網(wǎng)絡結(jié)構(gòu)Fig.9 Multi-scale target detection network structure
本文實驗環(huán)境設置如下:CPU 型號為I7-5930k,內(nèi)存為32 GB,顯卡為GeForce 1080 Ti,顯存為11 GB。在該實驗環(huán)境下本文檢測器的檢測速度達到19.8 frame/s,具有一定的實時性。
本文使用KAIST 公開數(shù)據(jù)集訓練和評價行人檢測模型,KAIST[16]數(shù)據(jù)集是由HWANG 等人建立的可見光圖片與紅外光圖片一一對應的數(shù)據(jù)集,圖片尺寸為640 像素×512 像素,有白天、夜晚2 種場景,其中包含多尺度、被遮擋、光照條件不足等復雜環(huán)境下的行人目標。實驗過程中使用平均精度(Average Precision,AP)作為評價指標,當檢測框和任一標簽框的IOU 大于等于50%時記為正確檢測樣本,IOU小于50%時則記為誤檢樣本,若標簽框與任一檢測框的IOU 都不大于50%時記為漏檢樣本。
本文基于深度學習框架pytorch 構(gòu)建網(wǎng)絡結(jié)構(gòu),設置每批訓練可見光-紅外光圖片對數(shù)為B=4,采用隨機梯度下降法(SGD)進行訓練。初始學習率設為0.001,隨著訓練輪次的增加,減小學習率為0.000 1以接近模型最優(yōu)解。由于YOLO 算法默認anchor 的尺寸是在COCO 數(shù)據(jù)集中得到的,不適用于行人檢測任務,行人目標多為狹長的個體,因此本文通過聚類算法得到尺寸分別為[48,157][34,104][84,50]、[27,80][26,63][25,40]、[18,54][16,44][13,24]的anchor 并作為大、中、小行人目標的檢測框。
不同融合策略的精度對比實驗結(jié)果如表1 所示,其中,concat 代表其他多模態(tài)行人檢測算法常用的直接concat 融合方法,MAM 代表本文融合模塊所使用的模態(tài)加權(quán)融合方法,MAM+CBAM 代表在MAM 算法中加入了CBAM 注意力機制。
表1 不同融合模塊對比實驗結(jié)果Table 1 Comparison experiment results of different fusion modules %
通過表1 可以看出,本文使用的加權(quán)融合機制較其他算法使用的直接concat 方法有較大性能提升,CBAM 注意力機制也對多模態(tài)行人檢測任務有所幫助。
白天部分檢測效果如圖10 所示,夜晚部分檢測效果如圖11 所示,上排為直接concat 的檢測結(jié)果,下排為MAM+CBAM 的檢測結(jié)果,圖中矩形為檢測結(jié)果框,橢圓形為漏檢的行人目標。圖10 中因為目標過小和互相遮擋而難以檢測的目標被準確檢測,圖11 中因為行人目標過于密集、衣服顏色與背景顏色過于接近而導致的特征較弱的目標也都被檢測出來,證明本文算法所進行的特征加權(quán)融合和注意力機制能夠提升行人檢測器的性能。
圖10 不同融合方法在白天時的檢測結(jié)果對比Fig.10 Comparison of detection results of different fusion methods in daytime
圖11 不同融合方法在夜晚時的檢測結(jié)果對比Fig.11 Comparison of detection results of different fusion methods at night
本文算法與其他可見光與紅外光融合的行人檢測算法的對比結(jié)果如表2 所示,其中,各對比算法的結(jié)果來自文獻[24]。通過表2 可以看出,本文算法的精度較對比算法有所提升,且在準確率接近的算法中本文算法的速度有較大優(yōu)勢。
表2 不同多模態(tài)算法的檢測結(jié)果對比Table 2 Comparison of detection results of different multi-modal algorithms
將僅使用可見光進行行人檢測的算法記為YOLOVis,在面對光照不足的問題時,有學者通過曝光增強[25-26]的方式對低照度圖像進行預處理,將對圖片曝光增強后再進行行人檢測的算法記為YOLO-Enhancement。將本文多模態(tài)加權(quán)融合行人檢測算法與上述2 種算法進行對比,結(jié)果如表3 所示。
表3 3 種算法性能對比結(jié)果Table 3 Performance comparison results of three algorithms
從表3 可以看出,可見光單模態(tài)行人檢測算法在速度上具備優(yōu)勢,但在精度上不如本文多模態(tài)加權(quán)融合算法,尤其是在夜晚,其表現(xiàn)效果較差。在對圖片進行曝光增強的預處理后算法精度有所提高,但精度仍然低于利用了紅外光信息作為補充的本文算法。
本文算法與單模態(tài)算法的部分實驗結(jié)果如圖12所示。其中,第1排為YOLO-Vis及YOLO-Enhancement 的檢測結(jié)果,第2 排為本文算法的檢測結(jié)果。圖中矩形為檢測結(jié)果框,橢圓形為漏檢的行人目標。從檢測結(jié)果可看出,對于白天由于陰影而導致目標亮度不足的行人,曝光增強后有效提升了其辨識度。在夜晚圖片中,曝光增強雖然提升了亮度,使得最左方黑衣行人區(qū)別于黑夜背景,變得更加清晰,但最右方靠近車燈的小目標行人由于車燈亮度干擾而無法有效提高辨識度,然而利用了紅外光信息作為補充的本文多模態(tài)行人檢測算法可以有效識別出目標。
圖12 3 種算法檢測結(jié)果對比Fig.12 Comparison of detection results of three algorithms
為驗證本文算法的泛化能力,使用僅在KAIST 數(shù)據(jù)集上訓練得到的模型,在OTCBVS Benchmark Dataset數(shù)據(jù)集[27]的子數(shù)據(jù)集OSU Color-Thermal Database 上進行驗證,該數(shù)據(jù)集中包含一一對應的可見光與紅外光圖像對,圖像尺寸為320 像素×240 像素,由2 組固定的監(jiān)控攝像頭拍攝所得。部分實驗結(jié)果如圖13 所示,從檢測結(jié)果可以看出,對于被樹枝遮擋和陰影中的行人,本文算法依然可以將其檢測出來,證明本文算法具備一定的泛化能力。但是,由于未在驗證集中進行訓練,且驗證集使用的圖片大小僅為訓練所用圖片的23%,導致部分小目標檢測效果不佳。
圖13 OTCBVS 數(shù)據(jù)集上的檢測結(jié)果Fig.13 Detection results on the OTCBVS dataset
為解決可見光圖片在光照不足、信息缺失情況下檢測效果不佳的問題,本文基于YOLO 算法提出一種可見光與紅外光融合的行人檢測算法。對傳統(tǒng)檢測算法常用的級聯(lián)融合方式進行改進,引入模態(tài)加權(quán)融合層MAM 和CBAM 注意力機制。實驗結(jié)果表明,在KAIST 多模態(tài)行人檢測數(shù)據(jù)集上使用級聯(lián)融合時,AP值為82.78%(全天)、83.31%(白天)和82.24%(夜晚),在使用本文結(jié)合注意力機制的模態(tài)加權(quán)融合時,AP 值達到92.60%(全天)、93.39%(白天)和91.54%(夜晚)。本文算法在1080Ti上的檢測速度可達19.8FPS,但與單模態(tài)行人檢測算法的檢測速度(35.7FPS)之間仍然存在一定的差距,因此,下一步將對模型進行壓縮,構(gòu)造更好的輕量級網(wǎng)絡結(jié)構(gòu)用于模型訓練,從而提升網(wǎng)絡模型的實時性。