詹益俊, 陳光喜, 黃 勇, 王佳鑫, 呂方方
(1.桂林電子科技大學(xué) 廣西圖像圖形智能處理重點實驗室,廣西 桂林 541004;2.廣州大學(xué) 廣東省數(shù)學(xué)教育軟件工程技術(shù)研究中心,廣州 510006)
傳統(tǒng)的駕駛員安全帶檢測方法已無法處理龐大的交通視頻數(shù)據(jù)流,而如何實現(xiàn)汽車駕駛員檢測和安全帶佩戴識別的智能化執(zhí)法已成為當(dāng)前交通系統(tǒng)亟需解決的問題。
計算機視覺的迅猛發(fā)展讓智能交通的實現(xiàn)成為可能,隨著計算機視覺相關(guān)理論的不斷深入發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)[1-3]在智能化的很多方面都取得了優(yōu)異的成果,如對交通路口行人檢測數(shù)據(jù)進(jìn)行分析、人臉識別車站乘車等[4-6]。卷積神經(jīng)網(wǎng)絡(luò)具有高效的數(shù)據(jù)特征提取和簡化的數(shù)據(jù)計算流程等優(yōu)點。采用卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行駕駛員檢測和駕駛員安全帶識別,適應(yīng)性強,能夠自動提取和分析駕駛員圖像的特征,能減少因遮擋、光照等復(fù)雜環(huán)境下的誤檢和漏檢,從而獲得更加準(zhǔn)確的駕駛員檢測和安全帶識別結(jié)果。
現(xiàn)有的汽車駕駛員安全帶檢測方法主要有基于圖像處理的傳統(tǒng)方法、基于Adaboost的安全帶檢測系統(tǒng)和深度學(xué)習(xí)的汽車駕駛員安全帶檢測方法等。Guo等[7]通過基于圖像處理的傳統(tǒng)方法,采用駕駛區(qū)域定位模塊和安全帶檢測模塊,將HSV與邊緣檢測變化相結(jié)合,定位車窗檢測區(qū)域,通過車牌、車窗與駕駛員的幾何關(guān)系,確定駕駛員位置,用Hough變換檢測安全帶的2條長直線邊緣,實現(xiàn)安全帶的檢測。但該方法的不足之處是,姿態(tài)遮擋、車身顏色和拍攝角度的變化都會對結(jié)果產(chǎn)生較大影響,魯棒性差。Chen等[8]提出了基于Adaboost的安全帶檢測系統(tǒng),通過提取Haar-like特征,將車窗、駕駛員和安全帶目標(biāo)對應(yīng)訓(xùn)練為3個弱分類器,再加權(quán)級聯(lián)成強分類器,經(jīng)過高斯混合模型處理,檢測出安全帶。與傳統(tǒng)方法相比,該系統(tǒng)準(zhǔn)確率和魯棒性有一定提高,但對圖像質(zhì)量要求較高,適應(yīng)性較差,誤報較多。章東平等[9]提出了一種深度學(xué)習(xí)的汽車駕駛員安全帶檢測方法,通過運用Faster-RCNN算法[10]訓(xùn)練車窗模型,檢測出車窗,對車窗中的駕駛員進(jìn)行標(biāo)注,再用Faster-RCNN算法訓(xùn)練模型檢測出駕駛員,用AlexNet算法[11]進(jìn)行駕駛員安全帶識別。該方法在精度上有較大提升,但結(jié)構(gòu)復(fù)雜,訓(xùn)練時間長,檢測速度慢,實時性和應(yīng)用性較差。
針對駕駛員安全帶檢測面臨駕駛員定位復(fù)雜,安全帶因姿勢遮擋,拍攝角度,光照強度變化等問題,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的駕駛員檢測和安全帶識別方法。用多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(multi-task convolutional neural network,簡稱MTCNN)算法[12]進(jìn)行汽車駕駛員檢測,卷積神經(jīng)網(wǎng)絡(luò)充分提取汽車駕駛員特征,初步篩選和判別駕駛員候選框,經(jīng)微調(diào)和去虛警,得到駕駛員檢測目標(biāo),并通過級聯(lián)構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行駕駛員安全帶佩戴識別。實驗結(jié)果表明,本方法與主流駕駛員安全帶檢測算法相比,召回率、準(zhǔn)確率和F值有較大提高,時耗大幅降低,實時性好。
為了在復(fù)雜環(huán)境中快而精確地檢測出駕駛員是否佩戴安全帶,采用卷積神經(jīng)網(wǎng)絡(luò)駕駛員檢測及安全帶識別的方法。首先,運用MTCNN算法的P-Net駕駛員訓(xùn)練模型,對檢測的圖像進(jìn)行駕駛員初定位處理,P-Net經(jīng)過卷積得到駕駛員的特征圖,以滑窗方式進(jìn)行模型特征圖比對,設(shè)定閾值判定,生成駕駛員候選框,經(jīng)非極大值抑制(non maximum suppression,簡稱NMS)[13]合并重疊和邊界框回歸校準(zhǔn),粗定位出駕駛員候選框,與O-Net特征模型進(jìn)行比對,通過閾值判定是否為駕駛員,通過非極大值抑制和邊界框回歸微調(diào),得到最佳駕駛員候選框,最后用構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行駕駛員安全帶識別。該方法無需分模塊定位車牌、車窗,再定位出駕駛員的位置,而是充分利用卷積神經(jīng)網(wǎng)絡(luò)強大的特征提取能力和適應(yīng)性,正確區(qū)分駕駛員特征和背景特征,快速檢測出駕駛員,再經(jīng)構(gòu)建的分類器處理,識別駕駛員是否佩戴安全帶。該方法的主流程圖如圖1所示。
圖1 駕駛員檢測和安全帶識別主流程圖
1)抓拍的汽車圖像,經(jīng)檢測器D充分利用駕駛員和背景特征區(qū)別,判別駕駛員目標(biāo),微調(diào)和去虛警,檢測出汽車駕駛員目標(biāo)。
2)將檢測的駕駛員圖像送入構(gòu)建的二元分類器C中,并判別駕駛員是否系安全帶,完成抓拍汽車圖像駕駛員安全帶檢測。
1.1.1 改進(jìn)的MTCNN算法
MTCNN算法是由P-Net、R-Net和O-Net級聯(lián)構(gòu)成。P-Net用來生成候選框,通過NMS合并重疊的候選框,用邊界框回歸校正候選框,得到粗選候選框;R-Net和O-Net網(wǎng)絡(luò)功能大致相同,通過NMS合并和邊界框回歸,輸出最終的駕駛員框。
MTCNN算法的訓(xùn)練樣本分為駕駛員正樣本(positives)、駕駛員負(fù)樣本(negatives)和部分駕駛員(parts)3個部分。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ò)級聯(lián),除去R-Net網(wǎng)絡(luò),以減少檢測耗時;將P-Net網(wǎng)絡(luò)訓(xùn)練圖像增大至24×24,提高圖像精度,增加細(xì)密紋理特征提取量,使檢測器提取出較多的駕駛員框,不漏檢,從而提高召回率;在O-Net網(wǎng)絡(luò)的每個卷積層之后加上BN(batch normalization)[14]層,以加快訓(xùn)練速度,提高駕駛員檢測的準(zhǔn)確率。
駕駛員檢測網(wǎng)絡(luò)的模型結(jié)構(gòu)如圖2所示,結(jié)構(gòu)參數(shù)如表1所示。
圖2 駕駛員檢測網(wǎng)絡(luò)結(jié)構(gòu)示意圖
1.1.2 非極大值抑制篩選
在汽車駕駛員檢測過程中,滑動窗口提取特征,經(jīng)分類識別并將閾值大于0.6的框作為候選框,經(jīng)非極大值抑制得到駕駛員粗選候選框,再次閾值篩選概率大于0.9的框,經(jīng)非極大值抑制后得到精選駛員候選框。汽車駕駛員非極大值抑制(NMS)的流程如圖3所示。
圖3 汽車駕駛員非極大值抑制流程圖
1.1.3 交叉熵?fù)p失函數(shù)和邊界框回歸
1.1.4 重疊度判斷
對于邊界框的定位精度,可以用重疊度來描述,定義為:
表1 駕駛員檢測網(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ū)域的候選框,以提高駕駛員檢測的準(zhǔn)確率。邊界框的重疊度如圖4所示。
圖4 A和B圖像的重疊圖示
檢測網(wǎng)絡(luò)得到駕駛員區(qū)域的圖像后,需要一個二元分類器對駕駛員分類,判斷駕駛員是否系安全帶?;诮?jīng)典AlexNet、GoogLeNet和Inception V2網(wǎng)絡(luò),構(gòu)造卷積神經(jīng)網(wǎng)絡(luò)來識別駕駛員有無系安全帶。具體工作如下:
1)將卷積神經(jīng)網(wǎng)絡(luò)的第1層卷積核尺寸調(diào)整為5×5,前4層卷積層后加上Max_Pooling層,能降低模型參數(shù)量,也能減輕模型過擬合問題。
2)在每個卷積層后加一個BN層,BN層是很有效的正則化方法,能成倍提高訓(xùn)練速度,也能讓收斂后的分類準(zhǔn)確率得到較大提升。調(diào)整基礎(chǔ)學(xué)習(xí)速率由0.01減至0.001,以適用BN規(guī)范化后的數(shù)據(jù)。
3)減少全連接層數(shù)量,一方面減少參數(shù)量,防止參數(shù)量過大而出現(xiàn)過擬合;另一方面減輕了訓(xùn)練以及測試的計算工作量,降低耗時,在第5卷積層后加Ave_Pooling層,減少鄰域大小受限造成的估計值方差增大的影響,更多地保留圖像的背景信息。
汽車駕駛員安全帶識別的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表2,模型結(jié)構(gòu)如圖5所示。
表2 安全帶識別的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
圖5 駕駛員安全帶識別網(wǎng)絡(luò)結(jié)構(gòu)示意圖
本方法運行環(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的臺式機。程序采用深度學(xué)習(xí)的caffe[15]框架,運行環(huán)境為Visual Studio 2013,圖像尺寸單位是像素,訓(xùn)練和測試過程均在GPU條件下進(jìn)行。
駕駛員檢測實驗采用的評判標(biāo)準(zhǔn)是準(zhǔn)確率P、召回率R、時間T和綜合評判標(biāo)準(zhǔn)F。一般來說,前2個評判標(biāo)準(zhǔn)的參數(shù)值是自相矛盾的,而F值則是準(zhǔn)確率和召回率的綜合評判參數(shù),當(dāng)F值越高時,實驗的檢測性能越好。準(zhǔn)確率P為檢測到的正確駕駛員數(shù)占檢測到的駕駛員總數(shù)百分比,召回率R為檢測到的正確駕駛員數(shù)占檢測到的實際駕駛員總數(shù)百分比,綜合評判標(biāo)準(zhǔn)
車輛圖像數(shù)據(jù)集均來自不同時段、不同卡口的交通監(jiān)控視頻的采集,目的是增加卷積神經(jīng)網(wǎng)絡(luò)的環(huán)境適應(yīng)能力,提高魯棒性。用MTCNN算法檢測駕駛員,采用14 690張可以看清駕駛員的汽車圖像作為訓(xùn)練集進(jìn)行模型訓(xùn)練,其中駕駛員(正駕駛和副駕駛)的數(shù)量為20 226個,測試時使用的圖像數(shù)為3 000張,其中駕駛員數(shù)量為3 969個。將汽車圖像統(tǒng)一轉(zhuǎn)換為533×624的彩色圖像。
在相同實驗條件下,分別對改進(jìn)的MTCNN算法、經(jīng)典ACF行人檢測算法[16]、文獻(xiàn)[9]算法作駕駛員檢測對比。將原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ǔ)上,每個卷積層后加BN層;model-3是在model-1的基礎(chǔ)上,去掉R-Net網(wǎng)絡(luò),同時把P-Net的訓(xùn)練圖像增大至24×24;model-4在model-3的基礎(chǔ)上,在O-Net網(wǎng)絡(luò)的每個卷積層后加上BN層。
表3為駕駛員檢測對比數(shù)據(jù)。從表3可看出,文獻(xiàn)[9]算法、4個改進(jìn)MTCNN算法與ACF算法相比,召回率、準(zhǔn)確率和F值均有不同程度的提高,而model-3算法的綜合性能遠(yuǎn)優(yōu)于前4種算法,平均檢測時間為0.033 2 s,雖然model-4算法的平均檢測速度比model-3算法慢0.002 5 s,但其準(zhǔn)確率、召回率以及F值分別提高了0.049、0.025和0.037,因此,可認(rèn)為model-4是綜合性能最佳算法。
圖6 汽車駕駛員檢測、安全帶識別不同時段的部分樣本
算法總駕駛員人數(shù)正確檢測數(shù)檢測到總數(shù)準(zhǔn)確率召回率F值檢測時長/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ù)集中檢測駕駛員,并裁剪和篩選出38 462張較清晰、可分辨駕駛員是否系安全帶的圖像作為訓(xùn)練和驗證集,其中系安全帶的駕駛員圖像32 120張,未系安全帶的駕駛員圖像6342張,從每4張駕駛員圖像中隨機抽取1張作為驗證集,再用相同的方法得到訓(xùn)練和驗證集不重復(fù)的駕駛員圖像作為測試集,共篩選了7648張駕駛員圖像,系安全帶的駕駛員圖像5096張,不系安全帶的駕駛員圖像2552張,并將汽車駕駛員圖像統(tǒng)一轉(zhuǎn)換為116×116的彩色圖像。在同一條件下,數(shù)據(jù)集訓(xùn)練迭代相同次數(shù),使用訓(xùn)練得到的模型對測試集測試,以各算法測試的最優(yōu)實驗結(jié)果做對比。
表4為本算法與文獻(xiàn)[7-9]算法、Densenet-40[17]算法對比數(shù)據(jù)。從表4可看出,本算法相比文獻(xiàn)[7]算法、Adaboost算法[8]和Alexnet算法[9],系安全帶的召回率和準(zhǔn)確率平均提高了8.2%和4.5%;與文獻(xiàn)[17]的Densenet-40相比,召回率下降了0.06%,但檢測時長降低了0.012 s,準(zhǔn)確率提高了0.25%,具有明顯的檢測識別時間優(yōu)勢。
表4 5種算法性能比較
利用MTCNN算法的多任務(wù)特性及汽車駕駛員的全局和局部特征,檢測出駕駛員,而無需先定位車窗等模塊,再定位和篩選出駕駛員,簡化了檢測過程,降低了計算量,提高了檢測效率;級聯(lián)構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò),利用駕駛員系和不系安全帶特征的變化,識別駕駛員是否佩戴安全帶,與其他方法相比,駕駛員安全帶識別準(zhǔn)確率提高至94.51%,檢測時長低至0.038 08 s,實時性強。因此,本方法對智能交通違章執(zhí)法具有一定的實用性。今后將對駕駛員的吸煙、打電話等屬性問題進(jìn)行深入研究,以達(dá)到多屬性實時檢測和識別的效果。