冉險(xiǎn)生,張之云,陳 卓,蘇山杰,陳俊豪
重慶交通大學(xué) 機(jī)電與車輛工程學(xué)院,重慶 400047
全球的交通機(jī)動(dòng)化導(dǎo)致道路交通的死亡率持續(xù)升高。在一些發(fā)展中國(guó)家,摩托車作為普遍的交通工具,駕駛的安全問題備受關(guān)注,摩托車頭盔的佩戴對(duì)自身的安全十分重要[1],人為監(jiān)督的檢查方式工作量大、成本高,還會(huì)引發(fā)許多交通事故。隨著目標(biāo)檢測(cè)算法的精度和速度的提升,基于檢測(cè)的多目標(biāo)跟蹤算法成為交通管理系統(tǒng)智能化的熱門技術(shù),可以有效地提高密集交通管理的效率和安全性。在監(jiān)控視頻下對(duì)摩托車頭盔佩戴情況進(jìn)行追蹤需要達(dá)到實(shí)時(shí)性的要求,跟蹤結(jié)果主要取決于目標(biāo)檢測(cè)器性能的好壞[2]。取代傳統(tǒng)目標(biāo)檢測(cè)算法的深度學(xué)習(xí)目標(biāo)檢測(cè)算法可分為有候選區(qū)域的兩階段式算法和直接輸出檢測(cè)結(jié)果的一階段式算法[3]。兩階段以R-CNN系列[4-6]模型為代表,一階段以SSD[7]、YOLO系列[8-10]模型為代表。Espinosa等[11]通過一種基于Faster-RCNN的卷積神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行摩托車檢測(cè)和分類。在60%以上的車輛遮擋的情況下評(píng)估該模型,mAP達(dá)到75%。在低遮擋數(shù)據(jù)集上進(jìn)行評(píng)估,mAP高達(dá)92%。劉琛等人[12]基于SSD網(wǎng)絡(luò)引入視覺機(jī)制,實(shí)現(xiàn)了對(duì)摩托車駕乘者頭盔佩戴的檢測(cè)。Boonsirisumpun等人[13]使用SSD網(wǎng)絡(luò)進(jìn)行兩次檢測(cè),第一次檢測(cè)出摩托車駕駛者,第二次在所檢測(cè)出該駕駛者是否佩戴頭盔。
深度學(xué)習(xí)的多目標(biāo)跟蹤方式是通過學(xué)習(xí)檢測(cè)物體的深度特征來進(jìn)行跟蹤的,能夠達(dá)到較好的檢測(cè)性能。Mahmoudi等人[14]提出了一種新的二維在線環(huán)境分組法,基于CNN提取外觀特征,利用最后一幀的位置狀態(tài)對(duì)下一幀中每個(gè)目標(biāo)的位置進(jìn)行預(yù)測(cè),得到運(yùn)動(dòng)位置特征,再將兩種特征進(jìn)行數(shù)據(jù)關(guān)聯(lián)。與現(xiàn)有技術(shù)相比,使用CNNMTT方法實(shí)現(xiàn)了高質(zhì)量的跟蹤效果,達(dá)到更低計(jì)算成本。Huo等[15]提出了一種基于RFB的多目標(biāo)跟蹤算法,在多目標(biāo)檢測(cè)部分,采用CenterNet作為檢測(cè)網(wǎng)絡(luò)。在特征提取部分,將RFBNet與重新識(shí)別網(wǎng)絡(luò)相結(jié)合,提高特征提取能力,DeepSORT算法用于多目標(biāo)跟蹤。
多目標(biāo)追蹤算法采用預(yù)先訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行表觀特征的提取使跟蹤速度和精度都得到了改善。Deep-SORT算法在SORT算法的基礎(chǔ)上,增加外觀特征信息改善了物體遮蔽導(dǎo)致的ID switch現(xiàn)象,采用級(jí)聯(lián)匹配策略提高了匹配精度。為實(shí)現(xiàn)算法在邊緣設(shè)備上達(dá)到較好的實(shí)時(shí)目標(biāo)檢測(cè)和多目標(biāo)追蹤效果,本文提出輕量型的摩托車頭盔多目標(biāo)跟蹤方法。首先對(duì)YOLOv3做了改進(jìn)和對(duì)表觀特征區(qū)分網(wǎng)絡(luò)進(jìn)行了優(yōu)化。針對(duì)YOLOv3模型參數(shù)大、多尺度識(shí)別精度低的問題。通過引入MobileNetv3-Large對(duì)主干網(wǎng)絡(luò)進(jìn)行替換,搭建MLYOLOv3網(wǎng)絡(luò),降低模型復(fù)雜度、提升檢測(cè)速度。設(shè)計(jì)深淺語義融合增強(qiáng)模塊,增強(qiáng)網(wǎng)絡(luò)對(duì)輸入特征的深淺語義利用程度,提升了模型檢測(cè)精度。其次構(gòu)建多任務(wù)學(xué)習(xí)框架,進(jìn)行外觀特征識(shí)別模型優(yōu)化,提升了多目標(biāo)追蹤的準(zhǔn)確率和精度,同時(shí)也實(shí)現(xiàn)了對(duì)摩托車駕乘者數(shù)量、位置、頭盔佩戴的分類,即NPH分類模型,以期實(shí)現(xiàn)摩托車頭盔佩戴的實(shí)時(shí)追蹤檢測(cè)。
本文采用DeepSORT算法對(duì)摩托車進(jìn)行追蹤,Deep-SORT[16]算法是對(duì)SORT[17]多目標(biāo)追蹤算法的改進(jìn),在此基礎(chǔ)上利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)外觀信息特征進(jìn)行提取來減少產(chǎn)生的ID switch次數(shù)。采用級(jí)聯(lián)匹配對(duì)頻繁出現(xiàn)的目標(biāo)物賦予優(yōu)先權(quán),解決目標(biāo)追蹤過程中的不連續(xù)問題。其算法流程如圖1所示。主要分為四個(gè)步驟:(1)基于原始視頻幀,使用目標(biāo)檢測(cè)器獲得目標(biāo)候選框,經(jīng)非極大值抑制算法(non-maximum suppression,NMS)篩除多余的框,得出檢測(cè)結(jié)果。(2)使用卡爾曼濾波算法預(yù)測(cè)目標(biāo)在下一幀所在位置及狀態(tài),將預(yù)測(cè)框與檢測(cè)框進(jìn)行IOU匹配并計(jì)算出代價(jià)矩陣。(3)使用匈牙利算法根據(jù)輸入的代價(jià)矩陣對(duì)檢測(cè)框進(jìn)行最優(yōu)匹配,利用重識(shí)別模型對(duì)物體的外觀特征進(jìn)行提取,賦予確認(rèn)狀態(tài)的跟蹤框優(yōu)先的匹配權(quán)。(4)輸出跟蹤結(jié)果,卡爾曼濾波對(duì)跟蹤器進(jìn)行參數(shù)的更新,再次循環(huán)算法流程直至視頻幀結(jié)束。
圖1 DeepSORT算法流程圖Fig.1 Flowchart of DeepSORT algorithm
YOLOv3是一種性能較為優(yōu)越的單階段目標(biāo)檢測(cè)算法,在檢測(cè)精度和速度上能達(dá)到較好的平衡,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。YOLOv3采用DarkNet53作為主干網(wǎng)絡(luò),使用殘差網(wǎng)絡(luò)防止網(wǎng)絡(luò)加深過程中發(fā)生梯度消失,網(wǎng)絡(luò)構(gòu)建了5個(gè)殘差塊,總共包含53個(gè)卷積層。同時(shí)對(duì)輸入的圖片進(jìn)行了5次降采樣,采用多尺度融合的方式檢測(cè)不同大小目標(biāo)的位置及類別??紤]到摩托車駕駛環(huán)境的復(fù)雜多變性,需要提高模型對(duì)小目標(biāo)的檢測(cè)效果以及在邊緣設(shè)備上的實(shí)用性,對(duì)原始YOLOv3模型進(jìn)行輕量化和深淺語義融合兩方面改進(jìn)。
圖2 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.2 Schematic diagram of YOLOv3 network structure
使用MobileNetv3-Large替換Darknet-53作為YOLOv3的特征提取網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。表中N和Y分別代表未使用、使用NL表示激活函數(shù)(RE為Relu6激活函數(shù),HS為h-swish激活函數(shù)),s為運(yùn)算步長(zhǎng),SE(squeeze-and-excitation networks)為壓縮激勵(lì)模塊,Bneck為MobileNetv3的基本模塊結(jié)構(gòu),exp-size為經(jīng)過Bneck中的膨脹層后的特征通道數(shù)。Bneck模塊結(jié)構(gòu)如圖3所示。該模塊結(jié)構(gòu)主要由1×1的卷積核、3×3或者5×5的深度卷積核、1×1的卷積核等3個(gè)網(wǎng)絡(luò)層組。同時(shí)還引入了SE模塊單獨(dú)添加到resnet層中并行使用。
圖3 Bneck模塊結(jié)構(gòu)Fig.3 Bneck module structure
表1 MobileNetv3-Large網(wǎng)絡(luò)結(jié)構(gòu)Table 1 MobileNetv3-Large network structure
如圖4所示,SE模塊為了獲得卷積核以外的感受野使用全局平均池化層,以此得到各個(gè)特征通道間的統(tǒng)計(jì)量,假設(shè)獲得的統(tǒng)計(jì)量為Y,空間維度被壓縮的特征圖為U,則在第i個(gè)通道C所獲得的統(tǒng)計(jì)值如式(1)所示。為利用通道間的關(guān)系,使用兩個(gè)全連層進(jìn)行通道間信息的整合。第一個(gè)全連接層通過設(shè)置固定的縮減比率來降低網(wǎng)絡(luò)層數(shù),然后第二個(gè)全連接層又將維度升至輸入特征維度,旨在通過輸入維度的變化動(dòng)態(tài)調(diào)整輸入通道間的重要權(quán)值,突出網(wǎng)絡(luò)需要重點(diǎn)學(xué)習(xí)的特征通道,如式(2)所示。最后將模塊所求得特征權(quán)值乘以輸入特征圖做特征強(qiáng)度調(diào)整,進(jìn)而提升了網(wǎng)絡(luò)特征表達(dá)能力,如式(3)所示。
圖4 SE模塊Fig.4 SE module
其中,H、W分別為特征圖的高寬。δ為Relu激活函數(shù),σ為sigmoid函數(shù),分別為第一個(gè)全連接層和第二個(gè)全連接層的權(quán)重。Fscale(?)指代的是權(quán)重值與所對(duì)應(yīng)的特征通道的乘積。
搭建深淺語義融合增強(qiáng)模塊(deep and shallow context fusion enhancement module,DSCFEM)的思想來自ThunderNet[18]語義增強(qiáng)模塊(context enhancement module,CEM),CEM模塊結(jié)構(gòu)如圖5所示,將網(wǎng)絡(luò)中3個(gè)不同尺度的特征圖融合來獲取更有識(shí)別度的特征。其中Cglb為C5通過全局平局池化層所獲取的全局語義特征向量。不同大小的特征圖分別經(jīng)過卷積、反卷積以及廣播機(jī)制得到對(duì)應(yīng)大小和特征通道數(shù)相同的特征圖,結(jié)果分別記為C4_lat、C5_lat、Cglb_lat,最后將3個(gè)特征圖相加。但CEM使用的融合方式將深淺不同的語義信息視為同等重要,從而帶來一定的精度損失,故引入注意力機(jī)制以實(shí)現(xiàn)網(wǎng)絡(luò)對(duì)重要性不同的特征信息區(qū)分性學(xué)習(xí)。
圖5 CEM模塊結(jié)構(gòu)Fig.5 CEM module structure
按照CEM模塊的方式在一定位置將YOLOv3的3個(gè)不同尺度的特征作為類似于CEM模塊的對(duì)應(yīng)特征輸入,經(jīng)過信息通道變換操作將獲取的特征信息作為YOLOv3的一個(gè)檢測(cè)分支的下一步的特征量輸入。為了避免上述CEM模塊所存在的不足,不再簡(jiǎn)單地對(duì)3個(gè)不同尺度的特征進(jìn)行特征量大?。ㄌ卣魍ǖ罃?shù)和特征圖尺寸)的等匹配融合,受SPP[19]模塊啟發(fā)將其替換為池化操作。SPP中的最大池化層,能增大網(wǎng)絡(luò)感受野、緩解訓(xùn)練過程中的過擬合現(xiàn)象,但是容易忽視部分細(xì)節(jié)信息。為此,使用SoftPool對(duì)SPP模塊中的最大池化層進(jìn)行改進(jìn)。SoftPool[20]使用softmax實(shí)現(xiàn)指數(shù)加權(quán)方式累加池化,保留了更多輸入特征的基本屬性,其結(jié)構(gòu)如圖6所示。在網(wǎng)絡(luò)訓(xùn)練期間SoftPool不增加可訓(xùn)練參數(shù),同時(shí)梯度在反向傳播過程中是可微的,保證了每次反向傳播的梯度能夠更新,提升了網(wǎng)絡(luò)神經(jīng)元的連接性。SoftPool可對(duì)每個(gè)池化核所對(duì)應(yīng)的激活值賦予指數(shù)為底的權(quán)重,既保證了較大的激活值又實(shí)現(xiàn)了對(duì)每一個(gè)激活值非線性的特征信息的綜合利用,從而進(jìn)一步提升網(wǎng)絡(luò)精度。
圖6 SoftPool結(jié)構(gòu)圖Fig.6 SoftPool structure diagram
SoftPool的核心思想在于充分利用softmax作為池化核域內(nèi)每個(gè)激活值的權(quán)重分配機(jī)制,如下式所示:
式中,R為池化核域,ai為R中的每個(gè)激活值,Wi為每個(gè)激活值所分配權(quán)重。在求得權(quán)重Wi后,將其作用到R中并求和,得到輸出值:
式中,a為SoftPool的輸出值,最終實(shí)現(xiàn)了對(duì)池化核域內(nèi)所有激活因子的加權(quán)求和。
為了更加充分地利用深層語義信息和通道間的相互依存關(guān)系,將改進(jìn)的YOLOv3網(wǎng)絡(luò)的深度特征經(jīng)過SE模塊的作用得到深度特征權(quán)重值,再與改進(jìn)CEM模塊特征值相乘,以深層語義信息促使網(wǎng)絡(luò)更好地學(xué)習(xí)淺層語義信息,并動(dòng)態(tài)地增強(qiáng)淺層語義信息與深層語義信息融合。通過上述一系列改進(jìn),最終構(gòu)建了深淺語義融合增強(qiáng)模塊(DSCFEM),模型結(jié)構(gòu)如圖7所示。圖中,C5、C4、C3指代YOLOv3網(wǎng)絡(luò)3個(gè)尺度檢測(cè)分支,圖片大小假定為416×416像素值。
圖7 DSCFEM模塊結(jié)構(gòu)Fig.7 DSCFEM module structure
YOLOv3結(jié)構(gòu)與改進(jìn)后的YOLOv3結(jié)構(gòu)以及DSCFEM模塊對(duì)比如圖8所示。圖中(a)、(b)分別為YOLOv3和改進(jìn)后的YOLOv3命名為ML-YOLOv3-DSCFEM。
圖8 YOLOv3改進(jìn)前后結(jié)構(gòu)對(duì)比Fig.8 Structure comparison before and after YOLOv3 improvement
本文采用多任務(wù)學(xué)習(xí)[21]的方式實(shí)現(xiàn)DeepSORT算法對(duì)摩托車外觀特征信息的提取同時(shí)對(duì)摩托車駕乘人員的數(shù)量、位置以及頭盔佩戴進(jìn)行檢測(cè)分類,文中將這三個(gè)元素稱為NPH。
1.2.1 MTL數(shù)據(jù)集構(gòu)建
基于開源數(shù)據(jù)集,編寫腳本分別生成用于訓(xùn)練的txt文本和圖片塊文件夾,txt文本總共包含圖片塊存儲(chǔ)路徑、追蹤ID及駕乘人員頭盔佩戴情況類別3類信息。數(shù)據(jù)集包括7 116個(gè)不同的摩托車共約10萬對(duì)圖片,分辨率為192×192,并調(diào)整數(shù)據(jù)集使得所有圖片對(duì)中來自于同一摩托車的數(shù)量占一半,平均每個(gè)摩托車約有28張圖片用于訓(xùn)練集,5 000對(duì)圖片用于測(cè)試集。
1.2.2 NPH模型分析與建立
根據(jù)HELMET數(shù)據(jù)集,分析其數(shù)據(jù)中12個(gè)地點(diǎn)的圖片信息特點(diǎn),可發(fā)現(xiàn)摩托車駕乘人數(shù)最多可達(dá)5人,為此構(gòu)建了能夠反映駕乘人員數(shù)量、位置和頭盔使用情況NPH模型如圖9所示。圖中D為摩托車駕駛員,P0、P1、P2、P3為乘客,由此可知,構(gòu)建的NPH分類模型能夠全面反映實(shí)際道路中可能存在的摩托車駕乘者的位置、數(shù)量和頭盔佩戴情況。
圖9 摩托車駕乘者信息示意圖Fig.9 Schematic diagram of motorcycle rider information
使用深度網(wǎng)絡(luò)對(duì)NPH模型進(jìn)行分類,既要對(duì)每一類別駕乘者的位置做區(qū)分又要辨別出其對(duì)應(yīng)位置的頭盔是否佩戴。對(duì)該模型分類進(jìn)行類似于one-hot編碼,構(gòu)建5+5位節(jié)點(diǎn)編碼的標(biāo)簽向量,定義下式:
式中,yi為標(biāo)簽值,取值為0和1。如圖10所示,第一個(gè)5位節(jié)點(diǎn)編碼表示駕乘者的位置,若有取值為1,反之為0,第二個(gè)5位節(jié)點(diǎn)編碼表示對(duì)應(yīng)駕乘者位置是否佩戴頭盔,佩戴取值為1,未佩戴為0。通過對(duì)NPH模型的分析,將36種類別分類轉(zhuǎn)化為10個(gè)二分類問題,緩解了數(shù)據(jù)中類別不平衡問題。
圖10 NPH模型分類編碼示意圖Fig.10 Schematic diagram of classification and coding of NPH model
1.2.3 MTL框架搭建
為節(jié)省網(wǎng)絡(luò)訓(xùn)練的時(shí)間,提高檢測(cè)系統(tǒng)的檢測(cè)速度,采用類似于Siamese[22]構(gòu)建多任務(wù)學(xué)習(xí)框架,在深度模型權(quán)重共享的前提下,實(shí)現(xiàn)多個(gè)目標(biāo)任務(wù)的學(xué)習(xí)。網(wǎng)絡(luò)模型的主體使用MobileNetXt[23]替換DeepSORT中的重識(shí)別網(wǎng)絡(luò)結(jié)構(gòu),保證了能實(shí)現(xiàn)分類任務(wù)同時(shí),也使得整體檢測(cè)系統(tǒng)的大小和速度維持在一定范圍。將其后端平均池化層替換為全局平局池化層,以適應(yīng)相似度學(xué)習(xí)。MTL框架如圖11所示,MTL網(wǎng)絡(luò)結(jié)構(gòu)以雙倍通道的方式將大小為192×192兩張圖片同時(shí)輸入網(wǎng)絡(luò)中,使用MobileNetXt網(wǎng)絡(luò)進(jìn)行特征提取,生成高維的特征向量,并經(jīng)過GAP層,在新的空間中最終映射出離,得到相似度值y3,如下式所示:
圖11 MTL框架示意圖Fig.11 Schematic diagram of MTL framework
式中,x(A)、x(B)分別表示輸入圖片塊A、B,?(x(A);θ)、?(x(B);θ)表示的是A、B的1 280維特征向量,D(x(A),x(B))即為所求的相似度值。模型所映射出的1 280維特征向量,再經(jīng)過1×1的卷積得到NPH分類信息的輸出值y1和y2,即10個(gè)由0或1組成的類別值。
1.2.4 多任務(wù)學(xué)習(xí)的迭代優(yōu)化
相似度學(xué)習(xí)輸出值的優(yōu)化:采用孿生網(wǎng)絡(luò)中較為經(jīng)典的對(duì)比損失(contrastive loss)函數(shù),如式(8)所示。引入兩個(gè)損失函數(shù)分界閾值λ1、λ2,通過比對(duì)兩張圖片的ID號(hào)來決定兩者的歐式距離D(x(A),x(B))的大小,若相同那么兩者的歐式距離D(x(A),x(B))應(yīng)盡量得小,反之,則盡可能得大。根據(jù)實(shí)際需求將λ1、λ2的閾值分別設(shè)置為0.8、1.5,以此進(jìn)行該任務(wù)的優(yōu)化學(xué)習(xí),如下式所示:
式中,S表示圖片塊A、B來自于同一個(gè)物體,D表示圖片塊A、B屬于不同物體。
NPH分類信息的輸出值的優(yōu)化,采用交叉熵?fù)p失(cross-entropy loss)函數(shù)進(jìn)行優(yōu)化,其如式(9)中所示。根據(jù)NPH模型編碼規(guī)則,式中的n=10,那么對(duì)模型損失函數(shù)計(jì)算時(shí)這個(gè)10編碼點(diǎn)都需計(jì)算,這樣并不能提升分類精度反而增加了網(wǎng)絡(luò)模型反方向傳播的計(jì)算量。
因此,將10個(gè)編碼點(diǎn)分為兩類,則n=5。損失函數(shù)也分為兩部分,第一部分為駕乘者編碼位置的損失計(jì)算,第二部分為對(duì)應(yīng)頭盔佩戴的損失計(jì)算,該部分由yi決定頭盔佩戴損失是否參與計(jì)算。
其中,LA和LB分別為y1、y2的優(yōu)化損失函數(shù),yi和pi分別為真實(shí)的駕乘者位置編碼值和模型預(yù)測(cè)值,yi+n和pi+n分別為真實(shí)的駕車者頭盔佩戴的編碼值和模型預(yù)測(cè)的編碼值。
綜合式(8)和式(10),即可得MTL框架總的損失函數(shù),如式(11)所示,式中β為各部分損失函數(shù)的權(quán)重系數(shù):
本文基于優(yōu)化后的DeepSORT算法提出了三個(gè)主要步驟:摩托車定位、追蹤以及NPH分類。追蹤檢測(cè)流程如圖12所示,首先使用改進(jìn)YOLOv3算法實(shí)現(xiàn)對(duì)道路中行駛的摩托車進(jìn)行定位,再使用卡爾曼濾波對(duì)目標(biāo)定位框進(jìn)行跟蹤預(yù)測(cè)。當(dāng)目標(biāo)框與預(yù)測(cè)框連續(xù)3次匹配成功時(shí),對(duì)該目標(biāo)框所屬區(qū)域圖片塊按照NPH方式進(jìn)行分類,同時(shí)使用優(yōu)化后的匈牙利算法對(duì)跟蹤框進(jìn)行ID分配,具體的算法實(shí)現(xiàn)流程如下所示,對(duì)提出的算法進(jìn)行跟蹤與分類實(shí)驗(yàn)分析。
圖12 檢測(cè)流程示意圖Fig.12 Schematic diagram of detection process
輸入:像素值為M×N的圖片P,連續(xù)追蹤命中次數(shù)hit_count=0,多任務(wù)框架MTL:(1)MTL_1為NPH分類網(wǎng)絡(luò);(2)MTL_2為相似度判定網(wǎng)絡(luò),追蹤框編號(hào)T={1,2,…,N},目標(biāo)檢測(cè)器檢測(cè)目標(biāo)編號(hào)D={1,2,…,M},kf為卡爾曼濾波。
1.cap=cv2.videoCapture(0/path)#使用Opencv開啟相機(jī)記錄視頻流或讀取視頻
2.ret,P=cap.read()#從視頻中獲取圖像P
3.whileretdo #持續(xù)對(duì)獲取圖像進(jìn)行處理
4.for 0 to 2 do #連續(xù)3次實(shí)現(xiàn)目標(biāo)框與跟蹤框的匹配
5.D←P#目標(biāo)檢測(cè)器獲取目標(biāo)框
6.T←kf(D)#卡爾曼濾波實(shí)現(xiàn)對(duì)目標(biāo)框的預(yù)測(cè)
7.forbiinDdo #對(duì)目標(biāo)框進(jìn)行遍歷
8.fortiinTdo #對(duì)預(yù)測(cè)框進(jìn)行遍歷
9.ifiou(bi,ti)≥閾值then #判斷預(yù)測(cè)框與目標(biāo)框十分匹配
10.hit_count←hit_count+1 #匹配成功則記錄一次
11.end for
12.ifhit_count=3 then
13.實(shí)現(xiàn)NPH分類←MTL_1(bi)#MTL實(shí)現(xiàn)對(duì)匹配成功的圖片進(jìn)行分類預(yù)測(cè)
14.hit_count←0
15.end for
16.end for
17.級(jí)聯(lián)匹配(其中使用MTL_2進(jìn)行相似度判定)#基于匈牙利算法實(shí)現(xiàn)跟蹤框ID分配
18.end
實(shí)驗(yàn)環(huán)境:使用16 GB內(nèi)存、Intel?Core?i7-10870H CPU@2.21 GHz和NVIDIA GeForce RTX 3060顯卡配置的電腦與深度學(xué)習(xí)框架Pytorch進(jìn)行模型的搭建和訓(xùn)練。
數(shù)據(jù)集與參數(shù)設(shè)定:目標(biāo)檢測(cè)部分使用OSF網(wǎng)站中開源的HELMET數(shù)據(jù)集,共包含91 000張圖片,選用其中的63 600張作為訓(xùn)練圖片和18 200張為測(cè)試集圖片。模型訓(xùn)練時(shí)采用Adam作為訓(xùn)練過程中的優(yōu)化器,其中的一階矩估計(jì)指數(shù)衰減率β1和二階矩估計(jì)指數(shù)衰減率β2分別使用默認(rèn)值為0.9、0.999。訓(xùn)練學(xué)習(xí)率由0.001降至0.000 1,batch size設(shè)為16,每次輸入的圖片大小為1 920×1 080像素,訓(xùn)練了26個(gè)epoch。MTL框架使用MTL數(shù)據(jù)集進(jìn)行訓(xùn)練,采用Adam優(yōu)化器,batch size為32,學(xué)習(xí)率為由0.000 5降至0.000 01,總共訓(xùn)練了10個(gè)epoch。DeepSORT算法中超參數(shù)分別設(shè)置為:非極大值重疊率設(shè)置為0.5,最大的歐式距離設(shè)置為1.4,軌跡刪除的最大幀數(shù)設(shè)置為20。
目標(biāo)檢測(cè)算法使用平均精度AP(IOU=0.5)、模型參數(shù)量、模型大小以及檢測(cè)速度四個(gè)指標(biāo)對(duì)檢測(cè)效果進(jìn)行評(píng)價(jià)。本文選用3個(gè)指標(biāo)作為多目標(biāo)跟蹤效果評(píng)價(jià)指標(biāo):多目標(biāo)跟蹤準(zhǔn)確率(multiple object tracking accuracy,MOTA)、多目標(biāo)跟蹤精度(multiple object tracking precision,MOTP)和每秒處理圖片的幀數(shù)FPS。
2.3.1 目標(biāo)檢測(cè)網(wǎng)絡(luò)loss可視化分析
原始算法和改進(jìn)算法在訓(xùn)練過程loss曲線可視化,如圖13所示。圖中(a)和(b)分別為YOLOv3和ML-YOLOv3-DSCFEM訓(xùn)練過程中的loss變化曲線。
由圖13可知,原始算法的起始loss值遠(yuǎn)大于改進(jìn)算法,主要原因?yàn)樵糦OLOv3算法網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、參數(shù)量較大。而ML-YOLOv3-DSCFEM與YOLOv3算法的loss收斂值分別為9.178、11.503,可定性出改進(jìn)模型收斂速度更快,loss值更低。并且通過圖14網(wǎng)絡(luò)AP曲線圖可知,改進(jìn)網(wǎng)絡(luò)有著更好的檢測(cè)精度,此性能的提升得益于特征骨干提取網(wǎng)絡(luò)的優(yōu)化以及特征提取程度的增強(qiáng)等方面的改進(jìn)。
圖13 Loss變化曲線Fig.13 Loss change curve
圖14 改進(jìn)網(wǎng)絡(luò)AP曲線Fig.14 Improved network AP curve
2.3.2 目標(biāo)檢測(cè)網(wǎng)絡(luò)的消融實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)分析
改進(jìn)YOLOv3算法消融實(shí)驗(yàn)結(jié)果如表2所示。在對(duì)YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)和特征提取等方面進(jìn)行改進(jìn)優(yōu)化后,根據(jù)特定檢測(cè)任務(wù)重新使用k-means算法確定出更合理的先驗(yàn)框(anchor),分別為(57,108),(76,135),(98,175),(121,150),(133,225),(178,200),(205,295),(293,370),(444,440)。
表2 改進(jìn)YOLOv3模型在頭盔數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果Table 2 Ablation experiment results of improved YOLOv3 model on helmet dataset
由表2可知,相比原始YOLOv3算法,ML-YOLOv3-DSCFEM的檢測(cè)精度達(dá)到88.27%提升了4.65個(gè)百分點(diǎn),模型大小僅為原始模型的13.7%,參數(shù)量減少了86.17%,在GPU和CPU中的檢測(cè)速度分別提升了2.65倍和3.67倍。改進(jìn)的模型不僅各個(gè)性能指標(biāo)都有提高,也滿足了檢測(cè)速度實(shí)時(shí)性的要求。
對(duì)改進(jìn)模型性能的進(jìn)一步驗(yàn)證,選用二階段檢測(cè)算法Faster R-CNN、一階段檢測(cè)算法SSD、ResNet50、RetinaNet、YOLOv3-tiny以及YOLOv3與其進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。改進(jìn)算法的檢測(cè)精度最高,模型最小僅為33 MB,遠(yuǎn)小于所對(duì)比模型,同時(shí)檢測(cè)速度也遠(yuǎn)高于同類型模型,相比ResNet50,本文算法降低了一部分運(yùn)算速度,但檢測(cè)精度大有提升,仍能夠最大程度上滿足實(shí)時(shí)性的檢測(cè)要求。
表3 摩托車檢測(cè)的各類算法對(duì)比Table 3 Comparison of various algorithms for motorcycle detection
2.3.3 YOLOv3算法改進(jìn)前后的目標(biāo)檢測(cè)效果可視化
圖15展示了YOLOv3算法和本文優(yōu)化YOLOv3算法在HELMET的測(cè)試數(shù)據(jù)上對(duì)摩托車檢測(cè)結(jié)果的可視化。從測(cè)試集1.8萬張圖片中隨機(jī)選取3張圖片作為對(duì)比,圖中第一列為原始圖片,第二列為YOLOv3檢測(cè)結(jié)果,第三列為本文所改進(jìn)YOLOv3檢測(cè)結(jié)果。圖中第二行原始YOLOv3存在對(duì)景深較大的物體漏檢,第三行改進(jìn)算法能夠很好區(qū)別出摩托車是否存在駕乘者和對(duì)景深較大目標(biāo)的正確檢測(cè)。一方面引入的骨干網(wǎng)絡(luò)有著更好的特征提取效果,提升了檢測(cè)精度。另一方面構(gòu)建的深淺語義融合增強(qiáng)模塊增強(qiáng)了特征融合,其中通過對(duì)CEM模塊進(jìn)行改進(jìn)并引入SPP模塊,同時(shí)對(duì)SPP模塊也進(jìn)行了改進(jìn),由此擴(kuò)大了模型的感受野。利用具有通道注意力機(jī)制的SE模塊促進(jìn)了淺層信息與深層信息的融合,最終提高了模型對(duì)小目標(biāo)的特征鑒別能力。從可視化圖中可定性出改進(jìn)算法有著更好的檢測(cè)精度。
圖15 測(cè)試集摩托車檢測(cè)效果可視化圖Fig.15 Visualization of motorcycle detection effect in test set
2.3.4 MTL框架的訓(xùn)練結(jié)果分析
(1)MTL框架對(duì)NPH模型的分類精度分析:在驗(yàn)證集上進(jìn)行準(zhǔn)確率測(cè)試,分類精度的變化曲線如圖16所示。隨著模型的不斷優(yōu)化學(xué)習(xí),準(zhǔn)確率不斷上升,在第10個(gè)epoch時(shí)趨于穩(wěn)定,檢測(cè)精度為82.04%。驗(yàn)證表明,綜合考慮駕乘者位置、數(shù)量以及頭盔佩戴情況下,模型仍能夠保證較高的準(zhǔn)確率。
圖16 NPH模型訓(xùn)練過程驗(yàn)證集上分類精度的變化圖Fig.16 Changes in classification accuracy on validation set during training process of NPH model
(2)相似度學(xué)習(xí)結(jié)果分析:相似度區(qū)分性能使用ROC(receiver operation characteristic)曲線來評(píng)價(jià)該相似度學(xué)習(xí)的區(qū)分性能。ROC曲線形成是通過閾值的不斷變化,隨之改變正確正樣本率(true positive rate,TPR)和錯(cuò)誤正樣本率(false positive rate,F(xiàn)PR)。由表4可知,閾值的增加,TPR不斷增加,當(dāng)閾值設(shè)置為1.4時(shí),深度網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對(duì)所有正樣本的正確判斷。圖17為通過表3中的閾值變化所繪制的ROC曲線,最終求得反映模型區(qū)分性能的ROC曲線的面積AUC(area under the ROC curve)為0.958。
表4 歐式距離閾值對(duì)ROC值影響Table 4 Influence of Euclidean distance threshold on ROC value
圖17 ROC曲線圖Fig.17 ROC curve
為進(jìn)一步驗(yàn)證改進(jìn)算法在摩托車多目標(biāo)跟蹤方面的表現(xiàn),將本文算法的追蹤效果與YOLOv3-DeepSORT算法做了對(duì)比,結(jié)果如表5所示。相較YOLOv3-DeepSORT算法,本文算法在多目標(biāo)跟蹤準(zhǔn)確率提升了15.9個(gè)百分點(diǎn),達(dá)到67.5%。在多目標(biāo)跟蹤精度上提高了18.3個(gè)百分點(diǎn),達(dá)到75.6%。視頻處理速度也由6 FPS提升到20 FPS。
表5 本文方法與YOLOv3-DeepSORT的實(shí)驗(yàn)結(jié)果對(duì)比Table 5 Comparison of experimental results between this method and YOLOv3-DeepSORT
本文改進(jìn)優(yōu)化后的YOLOv3-DeepSORT算法,在復(fù)雜交通場(chǎng)景和遮擋交通場(chǎng)景下多目標(biāo)追蹤結(jié)果分別如圖18和19所示。圖中左上角的編號(hào)為對(duì)應(yīng)的視頻幀數(shù),白色框?yàn)槟繕?biāo)檢測(cè)框,其余色彩框?yàn)楦櫰鬟M(jìn)行數(shù)據(jù)關(guān)聯(lián)后的結(jié)果框。
圖18中所測(cè)試的道路交通場(chǎng)景較為復(fù)雜,視頻中包含人橫穿馬路、汽車行駛以及大量的摩托車行駛等情況。從第62幀和72幀圖片可以看出,在摩托車外觀信息不斷變化的場(chǎng)景下,預(yù)測(cè)框仍然能夠和檢測(cè)框進(jìn)行穩(wěn)定的關(guān)聯(lián)并且避免ID切換。說明改進(jìn)的追蹤算法在復(fù)雜多變的環(huán)境中能達(dá)到良好的跟蹤效果。
圖18 復(fù)雜交通場(chǎng)景可視化Fig.18 Visualization of complex traffic scene
圖19中為對(duì)摩托車行駛時(shí)易發(fā)生遮擋情況的跟蹤結(jié)果。在第3幀圖中,ID為13號(hào)的目標(biāo)在第13幀中仍能被重新識(shí)別為ID為13號(hào)的目標(biāo),說明改進(jìn)的追蹤算法具有一定的抗遮擋性。
圖19 遮擋交通場(chǎng)景可視化Fig.19 Visualization of occluded traffic scenes
(1)引入MobileNet-Large模型替換YOLOv3的主干網(wǎng)絡(luò),在此基礎(chǔ)上,采用CEM模塊思想,結(jié)合SoftPool池化層和SE模塊,設(shè)計(jì)出深淺語義融合增強(qiáng)模塊,搭建ML-YOLOv3-DSCFEM目標(biāo)檢測(cè)網(wǎng)絡(luò)。在多任務(wù)學(xué)習(xí)MTL框架下對(duì)DeepSORT算法中外觀特征識(shí)別模型進(jìn)行優(yōu)化,實(shí)現(xiàn)對(duì)NPH模型的分類。提出一種基于多任務(wù)學(xué)習(xí)的ML-YOLOv3-DSCFEM摩托車頭盔多目標(biāo)跟蹤算法。
(2)改進(jìn)的YOLOv3網(wǎng)絡(luò)精度提升了4.56個(gè)百分點(diǎn),達(dá)到了88.27%,模型大小縮小到13.7%。改進(jìn)與優(yōu)化后的YOLOv3-DeepSORT算法多目標(biāo)跟蹤準(zhǔn)確率提高到67.5%,多目標(biāo)跟蹤精度提升到75.6%。檢測(cè)追蹤速度由6 FPS提升到了20 FPS,最終對(duì)NPH模型分類精度達(dá)到72.42%。本文所提出的改進(jìn)算法,能夠?qū)?shí)際道路中摩托車駕乘者進(jìn)行實(shí)時(shí)跟蹤并檢測(cè)出相應(yīng)的駕乘者數(shù)量、位置和頭盔佩戴等3個(gè)重要的道路行駛安全信息,具有較強(qiáng)的實(shí)用價(jià)值。
(3)本研究主要使用的數(shù)據(jù)集為開源數(shù)據(jù)集,采集過程中使用相機(jī)高度和角度變化較為單一,通過該方式訓(xùn)練出的網(wǎng)絡(luò)目標(biāo)檢測(cè)魯棒性會(huì)有所下降,也將影響后續(xù)的目標(biāo)跟蹤。在后續(xù)工作中,將會(huì)采集更多不同角度條件下的視頻流并制作出相應(yīng)的數(shù)據(jù)集,以提升網(wǎng)絡(luò)的性能。