王容霞,賀 芬,楊偉煌,趙林玲
(廣州南洋理工職業(yè)學(xué)院 信息工程學(xué)院,廣東 廣州 510925)
近幾年,人工智能技術(shù)在諸多領(lǐng)域得到了較為廣泛的應(yīng)用.針對視頻等動(dòng)態(tài)圖片的處理,相關(guān)專家和學(xué)者也進(jìn)行了許多研究,在跟蹤識(shí)別、動(dòng)作識(shí)別、視頻分類等方面具有突出的貢獻(xiàn)[1-3].深度卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Convolutional Neural Network,DCNN)作為一種經(jīng)典的深度學(xué)習(xí)網(wǎng)絡(luò),能夠很好實(shí)現(xiàn)視頻特征的有效提取[4-6].本研究提出一種融合DCNN的面部特征定位模型,并利用駕駛員危險(xiǎn)駕駛狀態(tài)檢測算法實(shí)現(xiàn)危險(xiǎn)狀態(tài)的識(shí)別,旨在為駕駛員的疲勞檢測系統(tǒng)開發(fā)奠定基礎(chǔ).
人臉關(guān)鍵點(diǎn)檢測方法主要包括活動(dòng)外觀模型(Active Appearance Models,AAM)、主動(dòng)形狀模型(Active Shape Models ,ASM)、級(jí)聯(lián)回歸、深度學(xué)習(xí)4種.ASM檢測方法對環(huán)境的適應(yīng)能力弱,運(yùn)行效率非常低.AAM模型在構(gòu)建模型階段會(huì)引入紋理模型,運(yùn)行效率和適應(yīng)性均有明顯的提升.級(jí)聯(lián)回歸檢測方法能完成對預(yù)測結(jié)果的細(xì)化分類.深度學(xué)習(xí)檢測方法擁有較好的精確度和速度.人眼定位算法能很好地實(shí)現(xiàn)駕駛員的疲勞檢測,包括人臉區(qū)域分割法、模板匹配法、Hough變換法、灰度投影法[7-8].人臉區(qū)域分割法能較好地獲取眼睛位置,但在駕駛員戴眼鏡或光照強(qiáng)度較低的情況下,定位效果欠佳.模板匹配法非常簡單,但實(shí)時(shí)性非常差且會(huì)受到人臉表情的影響.Hough變換法在駕駛員正常睜眼的情況下的定位效果較好,但當(dāng)駕駛員眼睛睜開程度較小或戴眼鏡情況下的精確度很低.
DCNN人臉關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò)主要由23個(gè)CNN子網(wǎng)絡(luò)級(jí)聯(lián)組成,DCNN包括S0、S1、S2這3種不同的網(wǎng)絡(luò)結(jié)構(gòu),第1階段F1網(wǎng)絡(luò)采用S0,EM1、EN1使用S1;第2階段和第3階段20個(gè)CNN均采用S2.盡管該網(wǎng)絡(luò)能精確檢測人臉關(guān)鍵點(diǎn),但對嘴巴和眼睛定位存在以下不足:DCNN僅能完成5個(gè)人臉關(guān)鍵點(diǎn)檢測,可定位嘴巴和眼睛的大概位置,但沒法準(zhǔn)確知道嘴巴和眼睛的大小.DCNN網(wǎng)絡(luò)通過級(jí)聯(lián)CNN能保證檢測精度,但因結(jié)構(gòu)復(fù)雜導(dǎo)致檢測速度慢[9-11].BL-DCNN能夠完成20個(gè)人臉關(guān)鍵點(diǎn)的檢測,其中下巴和鼻子各1個(gè),嘴巴、眼睛、眉毛分別4個(gè)、8個(gè)、6個(gè).BL-DCNN定位模型包括精確定位和粗定位,粗定位階段利用1個(gè)CNN網(wǎng)絡(luò)獲取20個(gè)人臉關(guān)鍵點(diǎn),精確定位階段使用1個(gè)CNN網(wǎng)絡(luò)精確定位1個(gè)器官單元.BL-DCNN中人臉關(guān)鍵點(diǎn)粗定位網(wǎng)絡(luò)參數(shù)如表1所示.粗定位網(wǎng)絡(luò)結(jié)構(gòu)采用輕量級(jí)網(wǎng)絡(luò)MobileNetV2中的bottleneck層替代卷積層,輸入圖像大小為96*96*3,相鄰bottleneck層增加add層整合特征,bottleneck層卷積核移動(dòng)步長為2,最后利用dropout層連接兩個(gè)全連接層防止過擬合.
表1 BL-DCNN中人臉關(guān)鍵點(diǎn)粗定位網(wǎng)絡(luò)參數(shù)
BL-DCNN中人臉關(guān)鍵精確定位網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.精確定位網(wǎng)絡(luò)結(jié)構(gòu)輸入圖像的大小為40*40*3,且在傳輸過程中圖像大小依次減小,不同部位的關(guān)鍵點(diǎn)精確定位使用的輸出層神經(jīng)元數(shù)量不同,取值為6或8.利用均方誤差計(jì)算模型的損失值,損失函數(shù)的計(jì)算公式為式(1).
圖1 BL-DCNN中人臉關(guān)鍵精確定位網(wǎng)絡(luò)結(jié)構(gòu)
(1)
通過人臉關(guān)鍵點(diǎn)預(yù)測值和真實(shí)值的歐式距離與人臉大小的比值R確定檢測誤差,計(jì)算公式為式(2).
(2)
(3)
lex和ley分別表示坐標(biāo)空間內(nèi)眼睛邊框矩形頂角對應(yīng)的位置信息,第i個(gè)和第j個(gè)關(guān)鍵點(diǎn)的橫坐標(biāo)分別用xi和yj指代,第m個(gè)和第n個(gè)關(guān)鍵點(diǎn)的縱坐標(biāo)分別用yn和ym指代.嘴巴定位需借助下巴和鼻子的位置,計(jì)算公式為式(4).
(4)
嘴巴邊框矩形頂點(diǎn)對應(yīng)的橫縱坐標(biāo)用mouthx和mouthy指代,第k個(gè)關(guān)鍵點(diǎn)的橫坐標(biāo)用xk指代,第i個(gè)和第j個(gè)關(guān)鍵點(diǎn)的縱坐標(biāo)分別用yi和yj指代.
現(xiàn)階段常用的眼睛狀態(tài)識(shí)別方法有灰度投影法和Hough找圓法.Hough找圓法在駕駛員眼睛瞳孔近乎為圓形或戴眼鏡的情況下的檢測效果很差,而灰度投影法在眼睛被光源直射或光照不均勻的情況下的檢測效果不理想.本研究提出一種基于CNN眼睛狀態(tài)識(shí)別方法,該方法能檢測駕駛員打哈欠動(dòng)作、閉眼時(shí)間、眼睛眨眼頻率.該識(shí)別網(wǎng)絡(luò)包括8層,輸入圖像的尺寸為30*60.首先通過最大池化層和兩個(gè)卷積完成對局部特征的提取,接著采用兩個(gè)全連接層會(huì)整合獲取到的局部特征,最后根據(jù)輸出層最終的結(jié)果確定眼睛的狀態(tài)[12-15].輸出層神經(jīng)元的數(shù)量為1,激活函數(shù)為sigmoid函數(shù),激活值的取值范圍為[0,1],正樣本用睜眼標(biāo)簽值1表示,負(fù)樣本用閉眼標(biāo)簽值0表示.預(yù)測階段,當(dāng)預(yù)測值超過0.5,則斷定眼睛為睜眼;當(dāng)預(yù)測值低于0.5,則斷定眼睛為閉眼.損失函數(shù)計(jì)算公式為式(5).
(5)
圖2 融合多特征的疲勞駕駛檢測
實(shí)驗(yàn)的訓(xùn)練樣本為CeleA人臉數(shù)據(jù)集,數(shù)量為60 000張,測試集和訓(xùn)練集的比例為1∶11.依據(jù)人臉關(guān)鍵點(diǎn)完成20個(gè)人臉關(guān)鍵點(diǎn)的圖像標(biāo)注,數(shù)據(jù)格式為.txt,文件總共60 000行,每行41列.人臉圖像路徑為第1列,其余為人臉關(guān)鍵點(diǎn)的坐標(biāo)位置.網(wǎng)絡(luò)模型需要ton過歸一化完成數(shù)據(jù)模型訓(xùn)練,訓(xùn)練過程中粗定位的網(wǎng)絡(luò)損失值如圖3(a),眉毛、眼睛、嘴巴精確定位的網(wǎng)絡(luò)損失值分別如圖3(b)、圖3(c)、圖3(d)所示.人臉關(guān)鍵點(diǎn)粗定位的網(wǎng)絡(luò)損失值隨著迭代次數(shù)的增加而不斷下降,損失值變化范圍為0.0032—0.3405.而在精確定位網(wǎng)絡(luò)中,嘴巴、眼睛、眉毛位置關(guān)鍵點(diǎn)的損失值隨著迭代次數(shù)的增加而不斷下降,最終分別穩(wěn)定在0.0038、0.0036、0.0041. BL-DCNN模型中粗定位的人臉關(guān)鍵點(diǎn)的平均誤差值為0.07,而精確定位后嘴巴、眼睛、眉毛的誤差值分別為0.034、0.032、0.037.
圖3 BL-DCNN訓(xùn)練過程中粗定位和精確定位的網(wǎng)絡(luò)損失值
BL-DCNN與常見的人臉關(guān)鍵點(diǎn)檢測方法效果對比如表2所示.BL-DCNN人臉關(guān)鍵檢測方法在運(yùn)行時(shí)間和平均誤差方面均具有明顯的優(yōu)勢.BL-DCNN檢測方法在運(yùn)行時(shí)間和人臉關(guān)鍵點(diǎn)平均誤差兩個(gè)方面均優(yōu)于DCNN檢測方法.該研究對比人臉關(guān)鍵點(diǎn)的眼睛定位方法的性能提出的BL-DCNN檢測方法、模板匹配法、Hough變換法、灰度投影法的準(zhǔn)確率分別為94.2%、84.7% 、80.5%、90.2%.因此,眼睛定位方法的檢測效果最佳.與此同時(shí),嘴巴和眼睛定位方法無論在任何情況下均能準(zhǔn)確獲取位置.
表2 BL-DCNN與常見的人臉關(guān)鍵點(diǎn)檢測方法效果
駕駛員閉眼和睜眼數(shù)據(jù)樣本分別來源CEW數(shù)據(jù)集和CeleA數(shù)據(jù)集與sider face數(shù)據(jù)集,數(shù)量分別為15 000張和20 000張,打哈欠數(shù)據(jù)集來源于YawDD.訓(xùn)練集和測試集的比例為4∶1.數(shù)據(jù)集通過2600次迭代訓(xùn)練,眼睛狀態(tài)識(shí)別網(wǎng)絡(luò)的損失值從1.08下降至0.07,而眼睛狀態(tài)識(shí)別的準(zhǔn)確率從60%增加至94%.本研究提出的CNN+張角眼睛狀態(tài)識(shí)別方法對駕駛員睜眼和閉眼的準(zhǔn)確率分別為95.2%和94.5%,而CNN、灰度水平投影、Hough投圓3種眼睛狀態(tài)識(shí)別的準(zhǔn)確率均低于CNN+張角眼睛狀態(tài)識(shí)別方法,CNN眼睛狀態(tài)識(shí)別駕駛員睜眼和閉眼準(zhǔn)確率分別為95.1%和91.4%.本研究選取4名不戴眼鏡、4名戴眼鏡共8名駕駛員來分析疲勞駕駛狀態(tài),疲勞駕駛檢測方法結(jié)果如圖4所示.無特征、閉眼時(shí)間、閉眼時(shí)間+眨眼頻率、融合多特征的4種檢測方法分別用檢測A-D表示. 疲勞總數(shù)量為50個(gè),通過融合多特征的疲勞特征檢測方法能成功檢測的數(shù)量為47個(gè),準(zhǔn)確率高達(dá)94%.
圖4 疲勞駕駛檢測方法的結(jié)果
針對現(xiàn)階段駕駛員疲勞檢測存在效率慢、精度低等問題,提出一種BL-DCNN人臉關(guān)鍵點(diǎn)檢測模型.通過粗定位和精確定位實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)和嘴巴、眼睛、眉毛等特征位置的定位,并依據(jù)定位結(jié)果構(gòu)建融合多特征的疲勞駕駛檢測方法.人臉關(guān)鍵點(diǎn)粗定位網(wǎng)絡(luò)損失值的變化范圍為0.0032—0.3405.而精確定位駕駛員嘴巴、眼睛、眉毛位置關(guān)鍵點(diǎn)分別穩(wěn)定在0.0038、0.0036、0.0041. 粗定位的人臉關(guān)鍵點(diǎn)的平均誤差值為0.07,而精確定位后嘴巴、眼睛、眉毛的誤差值分別為0.034、0.032、0.037.BL-DCNN人臉關(guān)鍵檢測方法在運(yùn)行時(shí)間和平均誤差方面均優(yōu)于其他檢測方法.本研究提出的眼睛定位方法、模板匹配法、Hough變換法、灰度投影法的準(zhǔn)確率分別為94.2%、84.7% 、80.5%、90.2%.眼睛狀態(tài)識(shí)別網(wǎng)絡(luò)的損失值從1.08下降至0.07,而眼睛狀態(tài)識(shí)別的準(zhǔn)確率從60%增加至94%.