田 坤 李 冠 趙衛(wèi)東
(山東科技大學(xué)計算機科學(xué)與工程學(xué)院 山東 青島 266590)
汽車事故調(diào)查表明,如果系安全帶,在發(fā)生正面撞車時,可使死亡率減少57%,側(cè)面撞車時可減少44%,翻車時可減少80%。因此駕駛員安全帶檢測逐漸成為智慧交通領(lǐng)域的一個研究熱點?;谟嬎銠C視覺的檢測方法由于其信息獲取簡單、對人和車輛影響較小及非接觸性等特點,成為最有前景和價值的檢測方法。
目前,國內(nèi)外研究人員在安全帶檢測方面做了大量的研究。由于檢測工具和應(yīng)用環(huán)境的不同,檢測方法也不盡相同。Guo等[1]提出的基于圖像處理的安全帶檢測方法。首先通過邊緣檢測和霍夫直線變化方法對圖像進(jìn)行預(yù)處理,定位駕駛員區(qū)域,然后通過基于邊緣檢測和Hough變換的方法對安全帶進(jìn)行檢測。然而該方法容易受到光照、車輛顏色的影響,對圖片質(zhì)量和拍攝角度要求也較高,并且缺乏魯棒性,因此很難普及推廣。Chen等[2]提出的基于Adabooast的安全帶檢測方法。首先對車窗區(qū)域進(jìn)行一個粗定位,找到多個車窗候選區(qū),然后再對駕駛員區(qū)域進(jìn)行粗定位,找到多個駕駛員候選區(qū),接著對安全帶進(jìn)行檢測,找到多個安全帶檢測區(qū)域,最后通過高斯混合模型處理后得到安全帶的最終檢測結(jié)果。然而該方法對圖像質(zhì)量要求較高,并且檢測精度達(dá)不到推廣的地步。付春芬[3]提出的基于深度學(xué)習(xí)的安全帶檢測方法研究,首先運用幀差法定位交通視頻中的車輛,然后利用邊緣檢測和積分投影定位駕駛員車窗區(qū)域,最后訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型檢測安全帶。然而該方法訓(xùn)練速度較慢,并且容易受到光照和遮擋因素的影響。謝錦等[4]提出的基于圖像不變特征深度學(xué)習(xí)的交通標(biāo)志分類。首先基于慢特征分析的深度學(xué)習(xí)框架自動學(xué)習(xí)得到每個階段的特征映射矩陣,然后將第一階段和第二階段特征聯(lián)合輸出作為交通標(biāo)志的特征,最后使用支持向量機進(jìn)行交通標(biāo)志分類。運用該方法在對安全帶進(jìn)行檢測分類時,能有效地進(jìn)行特征提取,并且泛化能力較強,但檢測速度達(dá)不到實時檢測的要求。楊凱杰等[5]提出的基于深度學(xué)習(xí)的安全帶檢測方法。該方法包括兩個檢測器D1、D2和一個分類器C1,首先將高清圖片輸入檢測器D1,定位汽車的擋風(fēng)玻璃區(qū)域,然后再用檢測器D2定位到主駕駛區(qū)域,最后將主駕駛區(qū)域圖片送入二元分類器C1判斷是否系安全帶。但是該方法時效性不高,處理速度較慢。施輝等[6]提出改進(jìn)的YOLO V3的安全帽佩戴檢測方法。首先采用圖像金字塔結(jié)構(gòu)獲取不同尺度的特征圖,用于位置和類別預(yù)測,然后對數(shù)據(jù)集目標(biāo)框進(jìn)行聚類,確定目標(biāo)框參數(shù),最后訓(xùn)練迭代過程中改變輸入圖像尺寸,增加模型對尺度的適應(yīng)性。該方法能夠滿足實時性檢測的要求,但是YOLO算法在提升檢測速度的同時也損失了部分的準(zhǔn)確率。
本文將YOLO網(wǎng)絡(luò)和極限學(xué)習(xí)機結(jié)合起來應(yīng)用到道路監(jiān)控視頻中的汽車駕駛員安全帶檢測。首先將視頻中的汽車圖片提取出來輸入到Y(jié)OLO網(wǎng)絡(luò)中,利用YOLO網(wǎng)絡(luò)的深層次特征提取、高精度檢測分類特性對主駕駛區(qū)域進(jìn)行目標(biāo)提?。蝗缓髮⑻崛〉闹黢{駛區(qū)域特征傳遞給極限學(xué)習(xí)機,利用極限學(xué)習(xí)機訓(xùn)練速度快、泛化能力強的優(yōu)點,訓(xùn)練成一個二元分類器;最后對駕駛員是否佩戴安全帶進(jìn)行準(zhǔn)確分類。實驗時通過Nvidia 1060顯卡進(jìn)行加速,處理速度可以達(dá)到198 幀/s,基本可以實現(xiàn)對道路監(jiān)控視頻中駕駛員安全帶的實時檢測。
YOLO算法[7]是一個基于單個神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測系統(tǒng),以回歸的方式對目標(biāo)進(jìn)行檢測,輸入圖像后,直接在圖像的多個位置上回歸出目標(biāo)的位置以及其分類類別。YOLO算法的創(chuàng)新之處在于采用了端到端的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計,其最大優(yōu)勢就是能夠?qū)崿F(xiàn)實時檢測。YOLO的目標(biāo)檢測網(wǎng)絡(luò)由24個卷積層和2個全連接層組成。其中卷積層的功能是提取圖像特征,全連接層的功能是預(yù)測圖像位置和類別置信概率。YOLO分類網(wǎng)絡(luò)結(jié)構(gòu)采用的是GoogLeNet[8],它將輸入圖像分成S×S個格子,如果某個物體的中心位置的坐標(biāo)落入到其中一個格子內(nèi),那么這個格子就負(fù)責(zé)檢測出該物體。YOLO網(wǎng)絡(luò)的輸出結(jié)果為一個張量,計算公式如下:
S×S×(5×B+C)
(1)
式中:S×S為劃分網(wǎng)格數(shù)目;B為每個網(wǎng)格預(yù)測的物體邊界框數(shù)目;C為類別個數(shù)。每個網(wǎng)格要預(yù)測B個邊界框還要預(yù)測C個類別。
在最新的YOLO V3網(wǎng)絡(luò)[9]中使用了一個53層的卷積網(wǎng)絡(luò),包含52層卷積層和1個全連接層,加入了多個連續(xù)的3×3和1×1的卷積,命名為Darknet-53。Joseph Redmon的實驗表明,在平衡分類準(zhǔn)確率和效率時,Darknet-53模型比ResNet-101、 ResNet-152[10]和Darknet-19[11]表現(xiàn)得更加優(yōu)秀。一方面,Darknet-53網(wǎng)絡(luò)采用全卷積結(jié)構(gòu),YOLO V3前向傳播過程中,張量的尺寸變換是通過改變卷積核的步長來實現(xiàn)的。另一方面,Darknet-53網(wǎng)絡(luò)引入了residual結(jié)構(gòu),得益于ResNet的residual結(jié)構(gòu),訓(xùn)練深層網(wǎng)絡(luò)的難度大大減小。因此Darknet-53網(wǎng)絡(luò)做到53層,精度提升比較明顯。YOLO V3網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLO V3網(wǎng)絡(luò)結(jié)構(gòu)
極限學(xué)習(xí)機(Extreme Learning Machine,ELM)是由新加坡南洋理工大學(xué)的黃廣斌教授提出的一種針對單隱層前饋神經(jīng)網(wǎng)絡(luò)的新算法[12-14]。ELM可以對初始輸入權(quán)重和偏置輸入任意的參數(shù),并得到相應(yīng)的輸出權(quán)重。假設(shè)有N個任意的樣本(Xi,ti),其中Xi=[xi1,xi2,…,xin]T∈Rn,ti=[ti1,ti2,…,tim]T∈Rm。對于一個有K個隱層節(jié)點的單隱層神經(jīng)網(wǎng)絡(luò)可以表示為:
(2)
式中:g(x)為激活函數(shù);Wi=[wi1,wi2,…,win]T為輸入權(quán)重參數(shù);βi為輸出權(quán)重參數(shù);bi是第i個隱層單元的偏置參數(shù);Wi·Xj表示W(wǎng)i和Xj的內(nèi)積值。
在單隱層神經(jīng)網(wǎng)絡(luò)中,最小化輸出誤差值是其學(xué)習(xí)的目標(biāo),其公式為:
(3)
Hβ=T
(4)
式中:H是隱層節(jié)點的輸出;β為輸出權(quán)重;T為期望輸出。H、β、T分別為:
(5)
(6)
(7)
式中:i=1,2,…,L,這等價于最小化損失函數(shù)如下:
(8)
為了訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò),可以將其轉(zhuǎn)化為求解一個線性系統(tǒng)Hβ=T的問題,輸出權(quán)重可以被確定為:
(9)
YOLO模型在物體檢測方面有很大的優(yōu)勢,主要表現(xiàn)在以下幾個方面:YOLO目標(biāo)檢測效率很高,因為檢測過程非常簡單,只需要將圖像輸入神經(jīng)網(wǎng)絡(luò)就可以獲得檢測結(jié)果;YOLO能夠很好地避免背景錯誤,產(chǎn)生false positives,由于在目標(biāo)檢測時能很好地利用上下文信息,所以在背景上很難預(yù)測出錯誤的物體信息;YOLO可以學(xué)到物體的泛化特征,從而遷移到其他領(lǐng)域。YOLO雖然在物體檢測方面速度很快,但在分類準(zhǔn)確率方面達(dá)不到較高的水準(zhǔn)。
極限學(xué)習(xí)機可以直接用于多物體分類,需要手動設(shè)置的參數(shù)只有隱含層結(jié)點個數(shù)。其優(yōu)點表現(xiàn)在以下幾個方面:在訓(xùn)練樣本前,只需要設(shè)置隱藏層神經(jīng)元的個數(shù),在執(zhí)行算法時不需要人工調(diào)整參數(shù);相比傳統(tǒng)訓(xùn)練算法,迭代次數(shù)少,收斂速度快,減少了訓(xùn)練時間;唯一最優(yōu)解大大保證了網(wǎng)絡(luò)的泛化性能。極限學(xué)習(xí)機在處理多物體分類時是很好的分類算法,但前提是有好的分類特征。
為了適應(yīng)和提高在道路監(jiān)控視頻中駕駛員安全帶檢測的準(zhǔn)確率和速度,本文將YOLO網(wǎng)絡(luò)和極限學(xué)習(xí)機算法相結(jié)合,充分發(fā)揮兩者的優(yōu)點,應(yīng)用于實時的目標(biāo)檢測分類。因此提出了基于YOLO和極限學(xué)習(xí)機相結(jié)合的安全帶檢測模型,如圖2所示。
圖2 基于YOLO和極限學(xué)習(xí)機的安全帶檢測模型
基于YOLO和極限學(xué)習(xí)機相結(jié)合的安全帶檢測模型主要包含三個部分:
(1) 定位主駕駛區(qū)域部分:采用YOLO V3特征提取的主要網(wǎng)絡(luò)結(jié)構(gòu)Darknet-53。這些卷積層是從各個主流網(wǎng)絡(luò)結(jié)構(gòu)選取性能比較好的卷積層進(jìn)行整合得到。對訓(xùn)練樣本的主駕駛區(qū)域進(jìn)行特征學(xué)習(xí),得到Y(jié)OLO網(wǎng)絡(luò)輸出特征層的參數(shù)。
(2) 特征轉(zhuǎn)換部分:將YOLO V3網(wǎng)絡(luò)提取到的主駕駛區(qū)域特征進(jìn)行特征轉(zhuǎn)換,然后傳遞給極限學(xué)習(xí)機。
(3) 安全帶分類部分:將轉(zhuǎn)換的特征層參數(shù)輸入到極限學(xué)習(xí)機進(jìn)行訓(xùn)練,訓(xùn)練成一個準(zhǔn)確率很高的安全帶檢測分類器,最后極限學(xué)習(xí)機對分類結(jié)果進(jìn)行輸出。
該模型還對駕駛員安全帶數(shù)據(jù)集的目標(biāo)框進(jìn)行聚類,確定anchor參數(shù),主要原因是在YOLO算法中引入了Faster R-CNN[15]中的anchor boxes[16]的方法,使用anchor boxes作為先驗框?qū)D像中的目標(biāo)進(jìn)行檢測。本文采用的YOLO V3算法的初始候選框的anchor參數(shù),最初是根據(jù)COCO數(shù)據(jù)集進(jìn)行聚類確定的,聚類結(jié)果為9。由于COCO數(shù)據(jù)集中類別很多,而本文實驗數(shù)據(jù)集種類相對較少,因此初始候選框不再適用于汽車主駕駛區(qū)域的檢測。在主駕駛區(qū)域檢測中,主駕駛區(qū)域的長寬比不會因為環(huán)境背景等發(fā)生大的改變,所以需要重新對數(shù)據(jù)集進(jìn)行聚類分析來選擇最優(yōu)的anchor參數(shù)。
設(shè)置先驗框的主要目的是提高預(yù)測框與ground truth之間的交并比。IOU是產(chǎn)生候選框(candidate bound)與原標(biāo)記框(ground truth bound)的交疊率[17],即它們的交集與并集的比值。傳統(tǒng)的K-means聚類算法常用曼哈頓距離、歐氏距離等方式對兩點間的距離進(jìn)行計算。然而使用歐氏距離函數(shù)會讓大的框比小的框產(chǎn)生更多的錯誤,考慮到主駕駛區(qū)域檢測數(shù)據(jù)集中駕駛員尺寸問題,本文采用的聚類中的距離函數(shù)如下:
d(box,centroid)=1-IOU(box,centroid)
(10)
式中:centroid代表簇的中心;box代表樣本聚類結(jié)果;IOU(box,centroid)代表簇中心框和聚類框的交并比。交并比IOU表示預(yù)測框的準(zhǔn)確程度,其公式為:
(11)
式中:bbgt表示真實框,bbdt表示預(yù)測框。
本文選擇 416×416 作為模型輸入尺寸,對主駕駛區(qū)域檢測數(shù)據(jù)集進(jìn)行聚類分析,選取k=[1,9]。通過計算不同k值下的IOU值,選取k的最優(yōu)值。IOU與k的關(guān)系如圖 3所示。根據(jù)圖中的折線可知,在k=5之后,曲線逐漸變得平緩。考慮到網(wǎng)絡(luò)的計算量,最終采用k=5的聚類結(jié)果。
圖3 IOU-k折線圖
本文訓(xùn)練模型所用圖片來自于道路交通視頻監(jiān)控所拍攝的圖像,一共選取了6 000張圖片。數(shù)據(jù)集分為訓(xùn)練集和測試集,訓(xùn)練集包含正負(fù)樣本,其中正樣本2 733張,負(fù)樣本2 267張;測試集包含正樣本861張,負(fù)樣本639張。為了提高訓(xùn)練模型的效率,需要對數(shù)據(jù)集進(jìn)行人工標(biāo)注。部分樣本示例如圖4所示。
(a) 正樣本(圖中系安全帶)
(b) 負(fù)樣本(圖中未系安全帶)圖4 部分樣本示意圖
實驗使用Core i7- 8750H的處理器,8 GB的內(nèi)存,NVIDIA GeForce GTX 1060的顯卡,CUDA9.1,CUDNN7.1的GPU加速庫,Windows 10操作系統(tǒng),Darknet深度學(xué)習(xí)框架。
(1) 數(shù)據(jù)預(yù)處理。本文通過使用LableImg工具標(biāo)記訓(xùn)練數(shù)據(jù)集的每張圖片中的汽車駕駛員區(qū)域。當(dāng)對圖片標(biāo)注完成時,軟件會在原圖目錄中生成與原圖對應(yīng)的XML文件,該文件記錄了原圖的路徑、標(biāo)記框的相對位置、標(biāo)記框中物體的類別等信息。
為了更好地驗證模型的效果,本文對檢測結(jié)果進(jìn)行定量分析,我們使用檢出率(DR)、漏檢率(MAR)以及平均時間開銷作為目標(biāo)檢測的評價指標(biāo)[18-19]:
(12)
(13)
DR反映了在所有的檢測目標(biāo)中,正確檢測出主駕駛區(qū)域所占的比例,而MAR反映了在所有的檢測目標(biāo)中,主駕駛區(qū)域漏檢數(shù)量所占的比例。
(2) 主駕駛區(qū)域檢測分析。目前,汽車主駕駛區(qū)域檢測常用的方法主要有文獻(xiàn)[3]中的Faster RCNN、SSD和YOLO V3三種。為了驗證本文采用的YOLO V3算法對主駕駛區(qū)域檢測有較好的效果,對三種方法進(jìn)行主駕駛區(qū)域檢測時間開銷對比實驗,實驗結(jié)果如圖5所示。從主駕駛區(qū)域檢測的時間開銷對比圖中可以看出,YOLO V3方法在對主駕駛區(qū)域檢測速度上具有明顯優(yōu)勢,能夠為駕駛員安全帶的實時檢測提供有力支持。本文利用YOLO V3對主駕駛區(qū)域檢測實驗結(jié)果:檢出率為97.6%,漏檢率為1.7%。主駕駛區(qū)域的檢測示例如圖6所示。
圖5 主駕駛區(qū)域檢測的時間開銷對比
圖6 主駕駛區(qū)域檢測示例
1) 極限學(xué)習(xí)機算法求解過程:
輸入:訓(xùn)練主駕駛區(qū)域樣本和對應(yīng)的期望輸出。
輸出:經(jīng)過訓(xùn)練好的駕駛員安全帶分類模型。
(1) 對主駕駛區(qū)域樣本進(jìn)行初始化訓(xùn)練;
(2) 根據(jù)樣本的特征數(shù)確定隱含層神經(jīng)元的個數(shù),對輸入層與隱含層的連接權(quán)值w和隱含層神經(jīng)元的閾值b隨機賦值;
(3) 選擇sigmoid函數(shù)作為隱含層神經(jīng)元的激活函數(shù),從而計算隱含層輸出矩陣H;
原始圖像大小為416×416像素,經(jīng)過YOLO V3對主駕駛區(qū)域定位后,分別對檢測到的每幅主駕駛區(qū)域圖像下采樣至24×21形成504維特征向量。ELM分類器中隱藏層單元數(shù)為200,激活函數(shù)為sigmoid函數(shù)g(x)=1/(1+exp(-x))。
2) 安全帶檢測分析:
根據(jù)訓(xùn)練樣本得到ELM分類器,使用ELM分類器對測試主駕駛員圖像進(jìn)行分類,得到識別率accuracy為0.945 1。安全帶檢測示例如圖7所示。
圖7 安全帶檢測示例
為了驗證本文提出的基于YOLO和極限學(xué)習(xí)機相結(jié)合的駕駛員安全帶檢測模型的有效性,本文與YOLO V3方法、文獻(xiàn)[3]的雙網(wǎng)絡(luò)安全帶檢測方法和文獻(xiàn)[6]中改進(jìn)的YOLO V3方法做了對照實驗。四種安全帶檢測方法均采用實驗數(shù)據(jù)集作為輸入,同時對安全帶檢測的評價采用檢出率和檢測速度兩個指標(biāo),實驗對比結(jié)果如表1所示。
表1 四種方法檢測結(jié)果對比
從表1可以看出,本文所提出的基于YOLO和極限學(xué)習(xí)機相結(jié)合的駕駛員安全帶檢測模型檢測方法檢出率為94.51%,檢測速度為198幀/s,都遠(yuǎn)高于其他三種方法的檢出率和檢測速度。
本文提出了將YOLO網(wǎng)絡(luò)和極限學(xué)習(xí)機相結(jié)合的駕駛員安全帶檢測模型,采用深度學(xué)習(xí)多層次網(wǎng)絡(luò)訓(xùn)練和模型級聯(lián)的方式。利用YOLO網(wǎng)絡(luò)快速定位且實時性高的優(yōu)點,快速定位主駕駛區(qū)域,并且保證輸出區(qū)域最優(yōu)。同時利用極限學(xué)習(xí)機訓(xùn)練速度快、泛化能力強的優(yōu)點來作為一個二元分類器,提高了安全帶區(qū)域分類的準(zhǔn)確性和系統(tǒng)的魯棒性。相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)對圖像的處理方法,本文在檢測速度上大大提升,能基本滿足道路監(jiān)控視頻中駕駛員安全帶實時檢測的需要,并且準(zhǔn)確率較高。