鐘銘恩, 譚佳威, 袁彬淦, 吳志華, 馮妍, 朱程林
(1. 廈門(mén)理工學(xué)院 機(jī)械與汽車(chē)工程學(xué)院, 福建 廈門(mén) 361024;2. 廈門(mén)大學(xué) 航空航天學(xué)院, 福建 廈門(mén) 361104)
路口等復(fù)雜交通環(huán)境下的二輪機(jī)動(dòng)車(chē)違法行為是政府部門(mén)提升通行安全的一大障礙.數(shù)據(jù)表明,一半以上的交通死亡發(fā)生在弱勢(shì)道路使用者中,包括摩托車(chē)、電動(dòng)車(chē)載乘人員等,而未規(guī)范佩戴頭盔正是二輪機(jī)動(dòng)車(chē)載乘人員發(fā)生事故后死亡的重要原因[1].相較于宣傳教育,行政治理由于其威懾作用而更加直接有效.目前,交管部門(mén)主要采用人工攔檢的方式在路口查處此類(lèi)行為,需耗用大量的人力資源,且易因駕駛員的危險(xiǎn)逃竄行為及執(zhí)法人員可能實(shí)施的不文明執(zhí)法而阻礙交通,甚至誘發(fā)嚴(yán)重事故.因此,如何在目標(biāo)密集和隨機(jī)遮擋頻發(fā)的復(fù)雜路口環(huán)境下更科學(xué)、高效地檢測(cè)和治理二輪機(jī)動(dòng)車(chē)乘員不規(guī)范佩戴頭盔的行為,一直是社會(huì)各界積極探索的課題.
得益于數(shù)字圖像處理、模式識(shí)別等技術(shù)的不斷發(fā)展,機(jī)器視覺(jué)在交通管理和智能交通系統(tǒng)中扮演著越來(lái)越重要的角色.近年來(lái),相關(guān)研究主要集中于數(shù)據(jù)集制備[2-3]和頭盔佩戴檢測(cè)算法[4-8]等方面.然而,現(xiàn)有數(shù)據(jù)集的場(chǎng)景較為單一且對(duì)應(yīng)算法的泛化能力不足.因此,有必要進(jìn)一步提出更為復(fù)雜、多樣的二輪機(jī)動(dòng)車(chē)交通圖像數(shù)據(jù)集,以充分體現(xiàn)我國(guó)的交通現(xiàn)狀和特點(diǎn),并探討在該交通條件下提升算法的頭盔佩戴綜合檢測(cè)性能的方法.基于此,本文提出一種復(fù)雜交通環(huán)境下二輪機(jī)動(dòng)車(chē)乘員頭盔檢測(cè)算法.
數(shù)據(jù)集是研究的前提,鑒于當(dāng)前公開(kāi)的二輪機(jī)動(dòng)車(chē)交通數(shù)據(jù)集的場(chǎng)景相對(duì)簡(jiǎn)單、交通密度較低、攝像頭視野角度不夠多樣、乘員頭盔較少出現(xiàn)重疊和遮擋等不足,擬自行構(gòu)建數(shù)據(jù)集以增強(qiáng)檢測(cè)算法的適應(yīng)能力.通過(guò)運(yùn)動(dòng)相機(jī)分別采用固定和移動(dòng)拍攝模式(圖1)在福建省廈門(mén)市各路口實(shí)景多角度拍攝二輪機(jī)動(dòng)車(chē)的交通視頻圖像.通過(guò)調(diào)整三腳架和自行車(chē)上金屬立桿的高度和拍攝角度,充分利用運(yùn)動(dòng)相機(jī)的防抖和高幀率攝像功能,較好地模擬了交管部門(mén)部署于道路上方的監(jiān)控探頭固定視角和警用車(chē)輛(警用汽車(chē)、警用摩托車(chē))行車(chē)記錄儀的移動(dòng)視角,采集的數(shù)據(jù)有利于算法在實(shí)際交通場(chǎng)景的大規(guī)模應(yīng)用.
(a) 固定 (b) 移動(dòng)
重點(diǎn)考慮在勞動(dòng)力集中型工業(yè)區(qū)路口進(jìn)行數(shù)據(jù)采集,以提高密集、混合交通圖像數(shù)據(jù)的占比,并在不同時(shí)段(白天、早高峰、晚高峰和夜間)、不同天氣(晴天、陰天、雨天和霧天)、不同光照(逆光、平光和順光)條件下進(jìn)行采集,以提高圖像的復(fù)雜性和多樣性.拍攝后將圖像分辨率統(tǒng)一調(diào)整為800 px×600 px,并使用開(kāi)源工具Labelimg進(jìn)行手動(dòng)標(biāo)注,標(biāo)簽為helmet和helmetless.最終構(gòu)建1個(gè)包含5 381張圖像的、能夠較好體現(xiàn)交通目標(biāo)密集分布和隨機(jī)遮擋特點(diǎn)的二輪機(jī)動(dòng)車(chē)乘員頭盔佩戴數(shù)據(jù)集,并將其命名為XMUT-HELMET.XMUT-HELMET數(shù)據(jù)示例,如圖2所示.
圖2 XMUT-HELMET數(shù)據(jù)示例
該數(shù)據(jù)集中的頭盔多為小目標(biāo),且像素尺寸變化范圍較大.采用深度學(xué)習(xí)技術(shù)進(jìn)行目標(biāo)檢測(cè)時(shí),為使模型先驗(yàn)框尺寸更加符合數(shù)據(jù)特點(diǎn),加快網(wǎng)絡(luò)回歸,降低目標(biāo)漏檢率,使用K-means++算法對(duì)頭盔目標(biāo)的真實(shí)標(biāo)注框進(jìn)行聚類(lèi).聚類(lèi)后的先驗(yàn)框尺寸,如表1所示.
表1 聚類(lèi)后的先驗(yàn)框尺寸
目前,學(xué)術(shù)界和工業(yè)界已涌現(xiàn)諸多經(jīng)典的算法模型,例如,基于錨框的Faster R-CNN系列、SSD系列和YOLO系列和無(wú)需錨框的CenterNet,RetinaNet,以及從屬于不同架構(gòu)的Vision transformer等[9-16].對(duì)比評(píng)價(jià)這些模型的性能時(shí),更多的是在COCO,PASCAL VOC等大型開(kāi)源數(shù)據(jù)集上進(jìn)行.然而,針對(duì)不同的檢測(cè)任務(wù)時(shí),不同算法模型的檢測(cè)性能很可能發(fā)生變化.
主流算法模型在XMUT-HELMET數(shù)據(jù)集上的檢測(cè)指標(biāo),如圖3所示.圖3中:Pma為平均準(zhǔn)確率;Q為模型的參數(shù)量[17].由圖3可知:YOLOv4,YOLOv7的平均準(zhǔn)確率明顯優(yōu)于其他算法,對(duì)圖片中密集分布和隨機(jī)遮擋的小尺度頭盔目標(biāo)的檢測(cè)效果較好;YOLOv7的平均準(zhǔn)確率比YOLOv4略低,但參數(shù)量卻減少了約50%,故選取YOLOv7作為基線參考模型,進(jìn)一步對(duì)特征提取主干網(wǎng)絡(luò)、特征融合結(jié)構(gòu)和檢測(cè)頭等3個(gè)模型組成部分進(jìn)行替換或改進(jìn),以提高平均準(zhǔn)確率,使其在XMUT-HELMET數(shù)據(jù)集上達(dá)到最高水平(SOTA).
圖3 主流算法模型在XMUT-HELMET數(shù)據(jù)集上的檢測(cè)指標(biāo)
YOLOv7主干網(wǎng)絡(luò)由CBS,ELANB,MPConv和SPPCSPC等模塊堆疊而成,這一復(fù)雜的結(jié)構(gòu)對(duì)于多個(gè)類(lèi)別的公共數(shù)據(jù)集目標(biāo)檢測(cè)任務(wù)的適應(yīng)能力較強(qiáng),但對(duì)僅有兩個(gè)類(lèi)別的二輪機(jī)動(dòng)車(chē)頭盔檢測(cè)任務(wù)則存在大量冗余參數(shù)和運(yùn)算量.為了便于在邊緣設(shè)備上進(jìn)行部署,使用輕量級(jí)網(wǎng)絡(luò)進(jìn)行替換(改進(jìn)1),以壓縮整體資源占用量.
EfficientNet[17]是一種輕量級(jí)網(wǎng)絡(luò),具有特征提取能力強(qiáng)、浮點(diǎn)運(yùn)算量(FLOPs)和參數(shù)量較小的特點(diǎn)[18].該網(wǎng)絡(luò)共有EfficientNet-B0~EfficientNet-B7等8種結(jié)構(gòu),這些結(jié)構(gòu)是類(lèi)似的,但參數(shù)量和浮點(diǎn)運(yùn)算量存在較大差異.EfficientNet的參數(shù)量和浮點(diǎn)運(yùn)算量[19],如表2所示.由表2可知:EfficientNet系列模型的參數(shù)量和浮點(diǎn)運(yùn)算量從EfficientNet-B4開(kāi)始大幅增加,導(dǎo)致網(wǎng)絡(luò)的訓(xùn)練和調(diào)用難度也隨之增加.因此,選擇具有優(yōu)良特征抽取能力的EfficientNet-B3作為主干網(wǎng)絡(luò),可有效降低模型參數(shù)量,滿足交管部門(mén)在警用車(chē)輛、監(jiān)控探頭等設(shè)備上的部署需求.
表2 EfficientNet的參數(shù)量和浮點(diǎn)運(yùn)算量[19]
YOLOv7的特征融合結(jié)構(gòu)通過(guò)拼接等多種操作,可充分利用二輪機(jī)動(dòng)車(chē)附近區(qū)域的高低維語(yǔ)義信息,但也易使感受野過(guò)小,從而忽略頭盔底層邊緣信息,造成模型在密集、遮擋等不利條件下漏檢小目標(biāo)頭盔.為了提高模型對(duì)復(fù)雜交通場(chǎng)景小目標(biāo)頭盔的檢測(cè)能力,降低漏檢率,在特征融合結(jié)構(gòu)中引入增大感受野模塊(RFB)[20](改進(jìn)2).不同層數(shù)的感受野RFn+1為
(1)
式(1)中:n為層數(shù);k為卷積核尺寸;s為步長(zhǎng).
RFB從卷積核尺寸著手,使用不同膨脹率的多分支空洞卷積,有效地增大卷積核,從而達(dá)到模擬人類(lèi)視覺(jué),增大感受野的目的.RFB結(jié)構(gòu),如圖4所示.將RFB引入模型第1個(gè)負(fù)責(zé)小尺寸頭盔檢測(cè)的低維特征分支,防止細(xì)粒度特征(如頭盔顏色、橢圓形邊緣等)語(yǔ)義信息的丟失.
YOLOv7中的檢測(cè)頭先使用RepConv對(duì)特征融合結(jié)構(gòu)的輸出進(jìn)行提煉,再進(jìn)行頭盔目標(biāo)框的特征解碼.鑒于二輪車(chē)頭盔檢測(cè)場(chǎng)景的復(fù)雜性和強(qiáng)干擾性,若能在特征解碼前使用注意力機(jī)制糾正網(wǎng)絡(luò)感興趣區(qū)域偏差,從大量全局信息中獲取頭盔重點(diǎn)關(guān)注區(qū)域,則能進(jìn)一步降低模型漏檢率和誤檢率.
常用的注意力機(jī)制有高效的通道注意力(ECA)[21]等,它們大多是單一地對(duì)通道或空間的神經(jīng)元進(jìn)行權(quán)重學(xué)習(xí),進(jìn)行權(quán)值分配時(shí)往往會(huì)缺失某些必要特征(如頭盔輪廓信息等),而SimAM[22]機(jī)制能更好地模擬視覺(jué)信號(hào)處理過(guò)程,使通道和空間注意力協(xié)同工作,從而對(duì)乘員頭盔主要特征區(qū)域進(jìn)行強(qiáng)調(diào),對(duì)馬路、紅綠燈和公交站臺(tái)等背景次要干擾特征進(jìn)行抑制,且SimAM機(jī)制不會(huì)引入額外的參數(shù),有利于實(shí)際部署.SimAM機(jī)制的操作主要由能量值計(jì)算(CEV)和特征加權(quán)(WF)兩部分組成,首先,通過(guò)CEV操作獲取單個(gè)通道中神經(jīng)元的能量值,再基于該能量值使用WF操作,對(duì)輸入的圖像特征進(jìn)行加權(quán),CEV操作的描述為
(2)
WF操作的描述為
(3)
綜合上述參考模型和改進(jìn)內(nèi)容,提出二輪機(jī)動(dòng)車(chē)乘員頭盔檢測(cè)算法(文中算法),用于實(shí)現(xiàn)密集目標(biāo)和隨機(jī)遮擋情況下的二輪機(jī)動(dòng)車(chē)乘員頭盔佩戴檢測(cè).二輪機(jī)動(dòng)車(chē)頭盔檢測(cè)算法模型的整體結(jié)構(gòu),如圖5所示.該模型分為主干網(wǎng)絡(luò)、特征融合結(jié)構(gòu)和檢測(cè)頭3個(gè)部分.主干網(wǎng)絡(luò)EfficientNet-B3通過(guò)多個(gè)模塊的堆疊不斷提取輸入圖像特征,首先,是一個(gè)包含BN和Swish激活函數(shù)的3×3卷積層,然后,是7個(gè)重復(fù)堆疊的MBConv結(jié)構(gòu),最后,是1個(gè)由1×1卷積層和1個(gè)平均池化層組成的CP模塊.特征融合結(jié)構(gòu)中沿用了YOLO系列模型的FPN和PANet結(jié)構(gòu)思想,先進(jìn)行上采樣擴(kuò)大特征圖尺寸,再使用池化的方式提煉上、下文特征,并通過(guò)跨層連接將它們合并,最后得到用于預(yù)測(cè)的有效特征.檢測(cè)頭基于預(yù)先設(shè)定好的交并比(IoU)閾值和置信度閾值進(jìn)行非極大值抑制,以得到較好的頭盔檢測(cè)結(jié)果.
圖5 二輪機(jī)動(dòng)車(chē)乘員頭盔檢測(cè)算法的整體結(jié)構(gòu)
考慮到交管部門(mén)的應(yīng)用需求,選擇準(zhǔn)確率(P)、召回率(R)、Pma(IoU=0.5)、參數(shù)量、浮點(diǎn)運(yùn)算量和幀率作為模型性能的評(píng)估指標(biāo). 準(zhǔn)確率表示預(yù)測(cè)樣本中實(shí)際正樣本數(shù)占所有正樣本數(shù)的比例;召回率表示預(yù)測(cè)樣本中實(shí)際正樣本數(shù)占所有預(yù)測(cè)的樣本數(shù)的比例;參數(shù)量和浮點(diǎn)運(yùn)算量反映模型占用資源的大小;幀率反映模型推理速度.Pma的計(jì)算原理為
(4)
(5)
(6)
式(4)~(6)中:Pa為單個(gè)類(lèi)別的平均精度;TP為真正例,表示實(shí)際為正例且被分類(lèi)器劃分為正例的樣本數(shù);FP為假正例,表示實(shí)際為負(fù)例,但被分類(lèi)器劃分為正例的樣本數(shù);FN為假反例,表示實(shí)際為正例,但被分類(lèi)器劃分為負(fù)例的實(shí)例數(shù).
實(shí)驗(yàn)基于Windows 10×64平臺(tái),且通過(guò)Python語(yǔ)言編程實(shí)現(xiàn),使用深度學(xué)習(xí)框架Pytorch 1.8.0搭建網(wǎng)絡(luò)模型.CPU為Intel(R) Core(TM) i7-10700K CPU@3.80 GHz,內(nèi)存為32 GB,GPU為NVIDIA RTX3090,顯存為24 GB.
模型訓(xùn)練時(shí),設(shè)置批尺寸為12,初始學(xué)習(xí)率為0.001,使用EfficientNet-B3預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí).訓(xùn)練的平均準(zhǔn)確率和損失(l)曲線,如圖6所示.經(jīng)過(guò)100個(gè)輪次(e)的訓(xùn)練后,YOLOv7的平均準(zhǔn)確率為87.10%,而文中算法的平均準(zhǔn)確率達(dá)到90.36%,提升了3.26%,損失降至3.92.
(a) 平均準(zhǔn)確率曲線 (b) 損失曲線
在相同的訓(xùn)練設(shè)備和參數(shù)配置下,使用XMUT-HELMET數(shù)據(jù)集分別對(duì)YOLOv7和文中算法進(jìn)行訓(xùn)練,訓(xùn)練后使用測(cè)試集中的圖片進(jìn)行推理.YOLOv7和文中算法檢測(cè)結(jié)果對(duì)比,如圖7所示.
(a) 圖片1 (b) 圖片2 (c) 圖片3
由圖7可知:在交通密集和隨機(jī)遮擋場(chǎng)景下,通過(guò)YOLOv7進(jìn)行頭盔檢測(cè)的效果不甚理想,魯棒性較差,如圖7(a)中間有一個(gè)佩戴黃色頭盔的騎行人員被部分遮擋,導(dǎo)致漏檢,圖7(b)左側(cè)有一個(gè)正常佩戴頭盔的騎行人員被座位后方人員遮擋,導(dǎo)致其被誤檢,圖7(c)的左側(cè)有一個(gè)未佩戴頭盔的騎行人員被立柱式紅綠燈部分遮擋,右側(cè)有一個(gè)正常佩戴頭盔的人員被密集分布的其他人員遮擋,這均被YOLOv7忽略,而文中算法在這些情況下依然具備優(yōu)良的檢測(cè)能力.
為了分析改進(jìn)1~改進(jìn)3對(duì)模型檢測(cè)效果的影響,進(jìn)行消融實(shí)驗(yàn)(實(shí)驗(yàn)A~實(shí)驗(yàn)C),結(jié)果如表3所示.由表3可知以下3個(gè)結(jié)論:1) 采用EfficientNet-B3作為主干特征提取網(wǎng)絡(luò)后,準(zhǔn)確率、召回率、平均準(zhǔn)確率分別提升了1.69%,0.29%,1.98%,最主要的是模型的參數(shù)量和浮點(diǎn)運(yùn)算量分別減少了26.55 MB和34.45×109,幀率提升了17.54 F·s-1;2) 在特征融合結(jié)構(gòu)中引入RFB后,準(zhǔn)確率提升較少,僅為0.28%,但召回率增加了1.67%,說(shuō)明模塊對(duì)小尺度、部分被遮擋的頭盔的檢測(cè)效果較好,降低了漏檢率;3) 在檢測(cè)頭部分引入SimAM機(jī)制后,準(zhǔn)確率、召回率和平均準(zhǔn)確率分別增加了0.87%,0.30%和0.61%,算法排除無(wú)關(guān)干擾的能力有所提升.
表3 消融實(shí)驗(yàn)結(jié)果
綜合這3項(xiàng)改進(jìn),文中算法實(shí)現(xiàn)了提升目標(biāo)檢測(cè)效果、降低參數(shù)量和運(yùn)算量的目的,這有利于將該算法部署于智能交通設(shè)施等邊緣設(shè)備中.
為進(jìn)一步驗(yàn)證文中算法的先進(jìn)性,選用Faster R-CNN,SSD,YOLOv3,YOLOv4,YOLOv5,YOLOv7,CenterNet,RetinaNet,Vision transformer-DETR,Swin Transformer-Mask RCNN[24]等算法與文中算法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果如表4所示.由表4可知:文中算法在準(zhǔn)確率、召回率、平均準(zhǔn)確率、浮點(diǎn)運(yùn)算量和幀率上都達(dá)到了當(dāng)前最佳值,僅在模型參數(shù)量上為次優(yōu)(12.330 MB),比其他算法更具有優(yōu)越性;文中算法的參數(shù)量和浮點(diǎn)運(yùn)算量分別為YOLOv7的33.1%,23.5%,相較于YOLOv7,準(zhǔn)確率、召回率、平均準(zhǔn)確率分別提高了2.84%,2.26%,3.26%.
表4 各模型檢測(cè)性能對(duì)比
此外,為驗(yàn)證文中算法在邊緣設(shè)備上的部署能力,在NVIDIA Jetson Nano開(kāi)發(fā)板上進(jìn)行實(shí)驗(yàn).該開(kāi)發(fā)板采用4核64位ARM CPU和128核集成NVIDIA GPU,提供每秒浮點(diǎn)運(yùn)算量為472×109的計(jì)算性能.結(jié)果顯示,文中模型的平均準(zhǔn)確率為90.24%,幀率達(dá)到47.58 F·s-1,而同等情況下YOLOv7的平均準(zhǔn)確率為86.98%,幀率為18.05 F·s-1,說(shuō)明文中算法能在計(jì)算資源有限的情況下實(shí)現(xiàn)較為準(zhǔn)確、快速的推理,具備優(yōu)良的輕量化部署能力.
為了實(shí)現(xiàn)密集目標(biāo)和隨機(jī)遮擋下頭盔佩戴情況快速、準(zhǔn)確的檢測(cè),制作二輪機(jī)動(dòng)車(chē)在復(fù)雜交通環(huán)境下的圖像數(shù)據(jù)集,并以此為基礎(chǔ)參考YOLOv7提出一種輕量級(jí)的二輪機(jī)動(dòng)車(chē)乘員頭盔檢測(cè)算法.實(shí)驗(yàn)結(jié)果表明,在該數(shù)據(jù)集上的頭盔佩戴檢測(cè)任務(wù)中,文中算法在準(zhǔn)確率、召回率、平均準(zhǔn)確率、浮點(diǎn)運(yùn)算量和幀率上都達(dá)到了當(dāng)前最佳,并在邊緣設(shè)備上有更好的部署能力,有利于在現(xiàn)有智能交通設(shè)施或警用車(chē)輛上應(yīng)用推廣.然而,從實(shí)驗(yàn)結(jié)果來(lái)看,文中模型的參數(shù)量仍高于YOLOv5,存在進(jìn)一步優(yōu)化的空間.未來(lái)將采取模型剪枝、量化和蒸餾等措施,進(jìn)一步縮減參數(shù)量.此外,文中模型對(duì)檢出目標(biāo)的置信度不高,這可能是因?yàn)槌砻芙煌ōh(huán)境下二輪機(jī)動(dòng)車(chē)背景對(duì)模型推理過(guò)程仍存在較大干擾,今后將借助CAM熱力圖等手段,探究模型推理過(guò)程的可解釋性,并使用其他有效策略對(duì)模型進(jìn)行進(jìn)一步優(yōu)化.