詹益俊, 陳光喜, 黃 勇, 王佳鑫, 呂方方
(1.桂林電子科技大學(xué) 廣西圖像圖形智能處理重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.廣州大學(xué) 廣東省數(shù)學(xué)教育軟件工程技術(shù)研究中心,廣州 510006)
傳統(tǒng)的駕駛員安全帶檢測(cè)方法已無(wú)法處理龐大的交通視頻數(shù)據(jù)流,而如何實(shí)現(xiàn)汽車駕駛員檢測(cè)和安全帶佩戴識(shí)別的智能化執(zhí)法已成為當(dāng)前交通系統(tǒng)亟需解決的問(wèn)題。
計(jì)算機(jī)視覺的迅猛發(fā)展讓智能交通的實(shí)現(xiàn)成為可能,隨著計(jì)算機(jī)視覺相關(guān)理論的不斷深入發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)[1-3]在智能化的很多方面都取得了優(yōu)異的成果,如對(duì)交通路口行人檢測(cè)數(shù)據(jù)進(jìn)行分析、人臉識(shí)別車站乘車等[4-6]。卷積神經(jīng)網(wǎng)絡(luò)具有高效的數(shù)據(jù)特征提取和簡(jiǎn)化的數(shù)據(jù)計(jì)算流程等優(yōu)點(diǎn)。采用卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行駕駛員檢測(cè)和駕駛員安全帶識(shí)別,適應(yīng)性強(qiáng),能夠自動(dòng)提取和分析駕駛員圖像的特征,能減少因遮擋、光照等復(fù)雜環(huán)境下的誤檢和漏檢,從而獲得更加準(zhǔn)確的駕駛員檢測(cè)和安全帶識(shí)別結(jié)果。
現(xiàn)有的汽車駕駛員安全帶檢測(cè)方法主要有基于圖像處理的傳統(tǒng)方法、基于Adaboost的安全帶檢測(cè)系統(tǒng)和深度學(xué)習(xí)的汽車駕駛員安全帶檢測(cè)方法等。Guo等[7]通過(guò)基于圖像處理的傳統(tǒng)方法,采用駕駛區(qū)域定位模塊和安全帶檢測(cè)模塊,將HSV與邊緣檢測(cè)變化相結(jié)合,定位車窗檢測(cè)區(qū)域,通過(guò)車牌、車窗與駕駛員的幾何關(guān)系,確定駕駛員位置,用Hough變換檢測(cè)安全帶的2條長(zhǎng)直線邊緣,實(shí)現(xiàn)安全帶的檢測(cè)。但該方法的不足之處是,姿態(tài)遮擋、車身顏色和拍攝角度的變化都會(huì)對(duì)結(jié)果產(chǎn)生較大影響,魯棒性差。Chen等[8]提出了基于Adaboost的安全帶檢測(cè)系統(tǒng),通過(guò)提取Haar-like特征,將車窗、駕駛員和安全帶目標(biāo)對(duì)應(yīng)訓(xùn)練為3個(gè)弱分類器,再加權(quán)級(jí)聯(lián)成強(qiáng)分類器,經(jīng)過(guò)高斯混合模型處理,檢測(cè)出安全帶。與傳統(tǒng)方法相比,該系統(tǒng)準(zhǔn)確率和魯棒性有一定提高,但對(duì)圖像質(zhì)量要求較高,適應(yīng)性較差,誤報(bào)較多。章東平等[9]提出了一種深度學(xué)習(xí)的汽車駕駛員安全帶檢測(cè)方法,通過(guò)運(yùn)用Faster-RCNN算法[10]訓(xùn)練車窗模型,檢測(cè)出車窗,對(duì)車窗中的駕駛員進(jìn)行標(biāo)注,再用Faster-RCNN算法訓(xùn)練模型檢測(cè)出駕駛員,用AlexNet算法[11]進(jìn)行駕駛員安全帶識(shí)別。該方法在精度上有較大提升,但結(jié)構(gòu)復(fù)雜,訓(xùn)練時(shí)間長(zhǎng),檢測(cè)速度慢,實(shí)時(shí)性和應(yīng)用性較差。
針對(duì)駕駛員安全帶檢測(cè)面臨駕駛員定位復(fù)雜,安全帶因姿勢(shì)遮擋,拍攝角度,光照強(qiáng)度變化等問(wèn)題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的駕駛員檢測(cè)和安全帶識(shí)別方法。用多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(multi-task convolutional neural network,簡(jiǎn)稱MTCNN)算法[12]進(jìn)行汽車駕駛員檢測(cè),卷積神經(jīng)網(wǎng)絡(luò)充分提取汽車駕駛員特征,初步篩選和判別駕駛員候選框,經(jīng)微調(diào)和去虛警,得到駕駛員檢測(cè)目標(biāo),并通過(guò)級(jí)聯(lián)構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行駕駛員安全帶佩戴識(shí)別。實(shí)驗(yàn)結(jié)果表明,本方法與主流駕駛員安全帶檢測(cè)算法相比,召回率、準(zhǔn)確率和F值有較大提高,時(shí)耗大幅降低,實(shí)時(shí)性好。
為了在復(fù)雜環(huán)境中快而精確地檢測(cè)出駕駛員是否佩戴安全帶,采用卷積神經(jīng)網(wǎng)絡(luò)駕駛員檢測(cè)及安全帶識(shí)別的方法。首先,運(yùn)用MTCNN算法的P-Net駕駛員訓(xùn)練模型,對(duì)檢測(cè)的圖像進(jìn)行駕駛員初定位處理,P-Net經(jīng)過(guò)卷積得到駕駛員的特征圖,以滑窗方式進(jìn)行模型特征圖比對(duì),設(shè)定閾值判定,生成駕駛員候選框,經(jīng)非極大值抑制(non maximum suppression,簡(jiǎn)稱NMS)[13]合并重疊和邊界框回歸校準(zhǔn),粗定位出駕駛員候選框,與O-Net特征模型進(jìn)行比對(duì),通過(guò)閾值判定是否為駕駛員,通過(guò)非極大值抑制和邊界框回歸微調(diào),得到最佳駕駛員候選框,最后用構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行駕駛員安全帶識(shí)別。該方法無(wú)需分模塊定位車牌、車窗,再定位出駕駛員的位置,而是充分利用卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取能力和適應(yīng)性,正確區(qū)分駕駛員特征和背景特征,快速檢測(cè)出駕駛員,再經(jīng)構(gòu)建的分類器處理,識(shí)別駕駛員是否佩戴安全帶。該方法的主流程圖如圖1所示。

圖1 駕駛員檢測(cè)和安全帶識(shí)別主流程圖
1)抓拍的汽車圖像,經(jīng)檢測(cè)器D充分利用駕駛員和背景特征區(qū)別,判別駕駛員目標(biāo),微調(diào)和去虛警,檢測(cè)出汽車駕駛員目標(biāo)。
2)將檢測(cè)的駕駛員圖像送入構(gòu)建的二元分類器C中,并判別駕駛員是否系安全帶,完成抓拍汽車圖像駕駛員安全帶檢測(cè)。
1.1.1 改進(jìn)的MTCNN算法
MTCNN算法是由P-Net、R-Net和O-Net級(jí)聯(lián)構(gòu)成。P-Net用來(lái)生成候選框,通過(guò)NMS合并重疊的候選框,用邊界框回歸校正候選框,得到粗選候選框;R-Net和O-Net網(wǎng)絡(luò)功能大致相同,通過(guò)NMS合并和邊界框回歸,輸出最終的駕駛員框。
MTCNN算法的訓(xùn)練樣本分為駕駛員正樣本(positives)、駕駛員負(fù)樣本(negatives)和部分駕駛員(parts)3個(gè)部分。positives和negatives參與分類任務(wù),positives和parts參與回歸任務(wù),將positives、parts和negatives的數(shù)量比控制為2∶4∶5,目的是增加駕駛員與背景特征的差異性,提高駕駛員框概率值,從而提高準(zhǔn)確率。
改進(jìn)的MTCNN算法采用P-Net和O-Net卷積神經(jīng)網(wǎng)絡(luò)級(jí)聯(lián),除去R-Net網(wǎng)絡(luò),以減少檢測(cè)耗時(shí);將P-Net網(wǎng)絡(luò)訓(xùn)練圖像增大至24×24,提高圖像精度,增加細(xì)密紋理特征提取量,使檢測(cè)器提取出較多的駕駛員框,不漏檢,從而提高召回率;在O-Net網(wǎng)絡(luò)的每個(gè)卷積層之后加上BN(batch normalization)[14]層,以加快訓(xùn)練速度,提高駕駛員檢測(cè)的準(zhǔn)確率。
駕駛員檢測(cè)網(wǎng)絡(luò)的模型結(jié)構(gòu)如圖2所示,結(jié)構(gòu)參數(shù)如表1所示。

圖2 駕駛員檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
1.1.2 非極大值抑制篩選
在汽車駕駛員檢測(cè)過(guò)程中,滑動(dòng)窗口提取特征,經(jīng)分類識(shí)別并將閾值大于0.6的框作為候選框,經(jīng)非極大值抑制得到駕駛員粗選候選框,再次閾值篩選概率大于0.9的框,經(jīng)非極大值抑制后得到精選駛員候選框。汽車駕駛員非極大值抑制(NMS)的流程如圖3所示。

圖3 汽車駕駛員非極大值抑制流程圖
1.1.3 交叉熵?fù)p失函數(shù)和邊界框回歸




1.1.4 重疊度判斷
對(duì)于邊界框的定位精度,可以用重疊度來(lái)描述,定義為:

表1 駕駛員檢測(cè)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)
IOU=(A∩B)/(A∪B)。
重疊度值設(shè)置為0.5,IOU>0.5為駕駛員區(qū)域,IOU<0.5為非駕駛員區(qū)域,盡可能區(qū)分駕駛員區(qū)域和保留駕駛員區(qū)域的候選框,以提高駕駛員檢測(cè)的準(zhǔn)確率。邊界框的重疊度如圖4所示。

圖4 A和B圖像的重疊圖示
檢測(cè)網(wǎng)絡(luò)得到駕駛員區(qū)域的圖像后,需要一個(gè)二元分類器對(duì)駕駛員分類,判斷駕駛員是否系安全帶。基于經(jīng)典AlexNet、GoogLeNet和Inception V2網(wǎng)絡(luò),構(gòu)造卷積神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別駕駛員有無(wú)系安全帶。具體工作如下:
1)將卷積神經(jīng)網(wǎng)絡(luò)的第1層卷積核尺寸調(diào)整為5×5,前4層卷積層后加上Max_Pooling層,能降低模型參數(shù)量,也能減輕模型過(guò)擬合問(wèn)題。
2)在每個(gè)卷積層后加一個(gè)BN層,BN層是很有效的正則化方法,能成倍提高訓(xùn)練速度,也能讓收斂后的分類準(zhǔn)確率得到較大提升。調(diào)整基礎(chǔ)學(xué)習(xí)速率由0.01減至0.001,以適用BN規(guī)范化后的數(shù)據(jù)。
3)減少全連接層數(shù)量,一方面減少參數(shù)量,防止參數(shù)量過(guò)大而出現(xiàn)過(guò)擬合;另一方面減輕了訓(xùn)練以及測(cè)試的計(jì)算工作量,降低耗時(shí),在第5卷積層后加Ave_Pooling層,減少鄰域大小受限造成的估計(jì)值方差增大的影響,更多地保留圖像的背景信息。
汽車駕駛員安全帶識(shí)別的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表2,模型結(jié)構(gòu)如圖5所示。

表2 安全帶識(shí)別的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)

圖5 駕駛員安全帶識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)示意圖
本方法運(yùn)行環(huán)境為64位Windows 7 Service Pack 1.8 GB內(nèi)存、8核Inter(R) Core(TM) i7-7700@3.60 GHz CPU、GeForce GTX 750Ti GPU的臺(tái)式機(jī)。程序采用深度學(xué)習(xí)的caffe[15]框架,運(yùn)行環(huán)境為Visual Studio 2013,圖像尺寸單位是像素,訓(xùn)練和測(cè)試過(guò)程均在GPU條件下進(jìn)行。
駕駛員檢測(cè)實(shí)驗(yàn)采用的評(píng)判標(biāo)準(zhǔn)是準(zhǔn)確率P、召回率R、時(shí)間T和綜合評(píng)判標(biāo)準(zhǔn)F。一般來(lái)說(shuō),前2個(gè)評(píng)判標(biāo)準(zhǔn)的參數(shù)值是自相矛盾的,而F值則是準(zhǔn)確率和召回率的綜合評(píng)判參數(shù),當(dāng)F值越高時(shí),實(shí)驗(yàn)的檢測(cè)性能越好。準(zhǔn)確率P為檢測(cè)到的正確駕駛員數(shù)占檢測(cè)到的駕駛員總數(shù)百分比,召回率R為檢測(cè)到的正確駕駛員數(shù)占檢測(cè)到的實(shí)際駕駛員總數(shù)百分比,綜合評(píng)判標(biāo)準(zhǔn)
車輛圖像數(shù)據(jù)集均來(lái)自不同時(shí)段、不同卡口的交通監(jiān)控視頻的采集,目的是增加卷積神經(jīng)網(wǎng)絡(luò)的環(huán)境適應(yīng)能力,提高魯棒性。用MTCNN算法檢測(cè)駕駛員,采用14 690張可以看清駕駛員的汽車圖像作為訓(xùn)練集進(jìn)行模型訓(xùn)練,其中駕駛員(正駕駛和副駕駛)的數(shù)量為20 226個(gè),測(cè)試時(shí)使用的圖像數(shù)為3 000張,其中駕駛員數(shù)量為3 969個(gè)。將汽車圖像統(tǒng)一轉(zhuǎn)換為533×624的彩色圖像。
在相同實(shí)驗(yàn)條件下,分別對(duì)改進(jìn)的MTCNN算法、經(jīng)典ACF行人檢測(cè)算法[16]、文獻(xiàn)[9]算法作駕駛員檢測(cè)對(duì)比。將原MTCNN算法中的P-Net、R-Net和O-Net訓(xùn)練圖裁剪為12×12、24×24和48×48進(jìn)行訓(xùn)練,模型為model-1;model-2是在model-1的O-Net網(wǎng)絡(luò)基礎(chǔ)上,每個(gè)卷積層后加BN層;model-3是在model-1的基礎(chǔ)上,去掉R-Net網(wǎng)絡(luò),同時(shí)把P-Net的訓(xùn)練圖像增大至24×24;model-4在model-3的基礎(chǔ)上,在O-Net網(wǎng)絡(luò)的每個(gè)卷積層后加上BN層。
表3為駕駛員檢測(cè)對(duì)比數(shù)據(jù)。從表3可看出,文獻(xiàn)[9]算法、4個(gè)改進(jìn)MTCNN算法與ACF算法相比,召回率、準(zhǔn)確率和F值均有不同程度的提高,而model-3算法的綜合性能遠(yuǎn)優(yōu)于前4種算法,平均檢測(cè)時(shí)間為0.033 2 s,雖然model-4算法的平均檢測(cè)速度比model-3算法慢0.002 5 s,但其準(zhǔn)確率、召回率以及F值分別提高了0.049、0.025和0.037,因此,可認(rèn)為model-4是綜合性能最佳算法。

圖6 汽車駕駛員檢測(cè)、安全帶識(shí)別不同時(shí)段的部分樣本

算法總駕駛員人數(shù)正確檢測(cè)數(shù)檢測(cè)到總數(shù)準(zhǔn)確率召回率F值檢測(cè)時(shí)長(zhǎng)/s文獻(xiàn)[16]算法3969322635960.8970.8130.8560.043 8文獻(xiàn)[9]算法3969358038990.9180.9020.9100.181 0Model-1算法3969333336670.9090.8390.8730.036 4Model-2算法3969334534810.9610.8430.8980.039 1Model-3算法3969368940370.9140.9290.9220.033 2Model-4算法3969378839330.9630.9540.9590.035 7
用model-4算法在汽車圖像數(shù)據(jù)集中檢測(cè)駕駛員,并裁剪和篩選出38 462張較清晰、可分辨駕駛員是否系安全帶的圖像作為訓(xùn)練和驗(yàn)證集,其中系安全帶的駕駛員圖像32 120張,未系安全帶的駕駛員圖像6342張,從每4張駕駛員圖像中隨機(jī)抽取1張作為驗(yàn)證集,再用相同的方法得到訓(xùn)練和驗(yàn)證集不重復(fù)的駕駛員圖像作為測(cè)試集,共篩選了7648張駕駛員圖像,系安全帶的駕駛員圖像5096張,不系安全帶的駕駛員圖像2552張,并將汽車駕駛員圖像統(tǒng)一轉(zhuǎn)換為116×116的彩色圖像。在同一條件下,數(shù)據(jù)集訓(xùn)練迭代相同次數(shù),使用訓(xùn)練得到的模型對(duì)測(cè)試集測(cè)試,以各算法測(cè)試的最優(yōu)實(shí)驗(yàn)結(jié)果做對(duì)比。
表4為本算法與文獻(xiàn)[7-9]算法、Densenet-40[17]算法對(duì)比數(shù)據(jù)。從表4可看出,本算法相比文獻(xiàn)[7]算法、Adaboost算法[8]和Alexnet算法[9],系安全帶的召回率和準(zhǔn)確率平均提高了8.2%和4.5%;與文獻(xiàn)[17]的Densenet-40相比,召回率下降了0.06%,但檢測(cè)時(shí)長(zhǎng)降低了0.012 s,準(zhǔn)確率提高了0.25%,具有明顯的檢測(cè)識(shí)別時(shí)間優(yōu)勢(shì)。

表4 5種算法性能比較
利用MTCNN算法的多任務(wù)特性及汽車駕駛員的全局和局部特征,檢測(cè)出駕駛員,而無(wú)需先定位車窗等模塊,再定位和篩選出駕駛員,簡(jiǎn)化了檢測(cè)過(guò)程,降低了計(jì)算量,提高了檢測(cè)效率;級(jí)聯(lián)構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò),利用駕駛員系和不系安全帶特征的變化,識(shí)別駕駛員是否佩戴安全帶,與其他方法相比,駕駛員安全帶識(shí)別準(zhǔn)確率提高至94.51%,檢測(cè)時(shí)長(zhǎng)低至0.038 08 s,實(shí)時(shí)性強(qiáng)。因此,本方法對(duì)智能交通違章執(zhí)法具有一定的實(shí)用性。今后將對(duì)駕駛員的吸煙、打電話等屬性問(wèn)題進(jìn)行深入研究,以達(dá)到多屬性實(shí)時(shí)檢測(cè)和識(shí)別的效果。