国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RGB 相機(jī)的駕駛員注視區(qū)域估計

2019-03-04 10:56:48劉覓涵代歡歡
現(xiàn)代計算機(jī) 2019年36期
關(guān)鍵詞:關(guān)鍵點人臉頭部

劉覓涵,代歡歡

(四川大學(xué)計算機(jī)學(xué)院,成都610065)

0 引言

隨著我國汽車保有量以及機(jī)動車駕駛?cè)藬?shù)的不斷上升,交通事故的死亡人數(shù)也在直線上升,僅2017 年由于交通事故所導(dǎo)致的死亡人數(shù)就有63772 人,直接造成經(jīng)濟(jì)損失121311.3 萬元[1]。道路交通事故的影響因素可以歸納為人為因素、車輛因素以及其他因素,人為因素中駕駛員的分心駕駛占有很大的比例,例如在駕駛過程中查看手機(jī)、低頭撿拾物品、觀看路邊建筑等,都會導(dǎo)致駕駛員的視線離開道路,最終釀成不可挽回的后果。因此,實時監(jiān)測駕駛員的注意力很有必要。

近些年,有許多學(xué)者對于駕駛員注意力分析進(jìn)行了研究。例如,文獻(xiàn)[2]通過提取駕駛員臉部特征以及頭部姿態(tài),將這些信息送入一個隨機(jī)森林分類器進(jìn)行分類后得到駕駛員的注視區(qū)域,但是這種方法的泛化能力不強(qiáng),在跨個體上面的表現(xiàn)較差。文獻(xiàn)[3]和文獻(xiàn)[4]使用RGBD 相機(jī)通過圖像信息結(jié)合深度信息的方式得到駕駛員的姿態(tài)等相關(guān)信息進(jìn)而分析駕駛員的注意力,但是深度相機(jī)價格一般比較高昂不如普通相機(jī)普遍,并且深度相機(jī)的數(shù)據(jù)量更大,耗電量更高,在汽車這種移動設(shè)備上面的實用性不高。

基于上述問題,本文提出一種基于普通RGB 相機(jī)的駕駛員注意力分析的方法,不依賴特定的駕駛員的駕駛數(shù)據(jù)集進(jìn)行訓(xùn)練且不需要深度相機(jī)如此高昂的設(shè)備,通過放置與駕駛員正前方的一個普通RGB 相機(jī)得到駕駛員的注視區(qū)域,進(jìn)而分析駕駛員的注意力。

1 系統(tǒng)總體設(shè)計

本文提出的方法基于一個已標(biāo)定的RGB 相機(jī),首先通過相機(jī)獲取駕駛員的人臉位置以及人臉關(guān)鍵點信息,結(jié)合一個平均的3D 人臉模型[5],通過求解PNP(Perspective-N-Point)問題[6]得出駕駛員頭部的姿態(tài)信息,借助得到的姿態(tài)信息將駕駛員雙眼中心的法線投影到駕駛室的前方,以獲取駕駛員的注視的區(qū)域。進(jìn)而分析駕駛員的注意力。攝像機(jī)的放置位置如圖1 所示,平均3D 人臉模型如圖2 所示,算法的流程圖如圖3 所示。

圖1 相機(jī)安放位置

圖2 平均3D人臉模型

圖3 方法流程

2 駕駛員頭部姿態(tài)估計

頭部姿態(tài)的估計有很多種方法:按照輸入可分為基于RGB 圖像的和基于深度圖像的方法,其中基于RGB 圖像的方法又可以分為基于人臉關(guān)鍵點的和不基于人臉關(guān)鍵點的。

基于深度信息的方法,如文獻(xiàn)[7],通過RGB 圖像結(jié)合深度信息得出最后的頭部姿態(tài)。深度相機(jī)的優(yōu)點是能夠獲得極高的精度,但是深度相機(jī)相對于普通的RGB 相機(jī)來說功耗更高,在汽車這種移動設(shè)備上會存在耗能問題,并且不如RGB 相機(jī)普及,其次深度相機(jī)的數(shù)據(jù)傳輸量更大使得傳輸時延更長。這些局限性使得深度相機(jī)在駕駛員狀態(tài)監(jiān)控這種情景下并不實用。

在基于圖像的方法中,由于近些年來神經(jīng)網(wǎng)絡(luò),特別是卷積神經(jīng)網(wǎng)絡(luò)[8]在圖像領(lǐng)域的大放異彩,也有很多研究人員[9-10]嘗試使用神經(jīng)網(wǎng)絡(luò)回歸頭部的姿態(tài)角度,這種方法的優(yōu)點是在擁有足夠的數(shù)據(jù)集的情況下,能夠有較高的精度,但是標(biāo)注高精度的頭部姿態(tài)訓(xùn)練數(shù)據(jù)集耗時耗力,現(xiàn)有的高精度的頭部姿態(tài)數(shù)據(jù)集極少。并且,這些方法所得到的頭部姿態(tài)無法得知頭部的三維位置信息,而在這里卻恰恰是我們需要的。

基于RGB 圖像獲取頭部姿態(tài)的另一種方法是基于關(guān)鍵點的頭部姿態(tài)估計,這種方法通過人臉關(guān)鍵點檢測所得到的人臉關(guān)鍵點集合,配合上3D 的人臉模型的關(guān)鍵點集合,通過求解PNP 問題得出頭部的姿態(tài)信息,其中人臉關(guān)鍵點檢測已經(jīng)是計算機(jī)視覺領(lǐng)域研究得十分深入的一個方向,有足夠的高精度的人臉關(guān)鍵點訓(xùn)練數(shù)據(jù)集,足以保證較高的泛化能力。

基于關(guān)鍵點的頭部姿態(tài)估計過程如下:

(1)人臉檢測

本文采用基于人臉關(guān)鍵點的頭部姿態(tài)估計方法,首先需要從輸入的圖像中獲得準(zhǔn)確的人臉位置,本文采用了S3FD(Single Shot Scale-invariant Face Detector)[11]作為人臉檢測器。相較于常用的通過SVM(Support Vector Machine)以及HOG(Histogram of Oriented Gradients)特征進(jìn)行人臉檢測的方法[12]擁有更低的誤檢率。而誤檢率對于我們這個項目來說是很重要的指標(biāo)。使用S3FD 預(yù)測的人臉邊界框結(jié)果如圖4 所示。

圖4 人臉檢測結(jié)果

(2)人臉關(guān)鍵點檢測

人臉關(guān)鍵點檢測又稱人臉對齊,在安防、駕駛員狀態(tài)分析、娛樂等領(lǐng)域有著廣泛的應(yīng)用。最早期的人臉特征點檢測方法主要是通過人臉紋理模型以及PCA 統(tǒng)計方法檢測人臉特征點的位置,例如主動形狀模型(Active Shape Model,ASM)[12]和主動表觀模型(Active Appearance Model,AAM)[13]。隨著深度學(xué)習(xí)的在計算機(jī)視覺領(lǐng)域的發(fā)展,也有越來越多的學(xué)者提出基于卷積神經(jīng)網(wǎng)絡(luò)的人臉特征點檢測算法[14-15],并取得了較好的成果。

如圖5 所示,本文使用FAN(Face Alignment Network)[16]作為人臉關(guān)鍵點檢測的方法,它采用圖6 所示的沙漏網(wǎng)絡(luò)層(Hourglass Block)[17]作為基本單元,沙漏網(wǎng)絡(luò)層與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)層在結(jié)構(gòu)上不同。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)通常多采取一種“自下而上”(由高分辨率到低分辨率)的結(jié)構(gòu),而沙漏網(wǎng)絡(luò)則采用了一種對稱的結(jié)構(gòu),既有“自下而上”又有“自上而下”(由低分辨率到高分辨率)的方法,使得網(wǎng)絡(luò)在提取局部特征的同時也能考慮到各個特征之間的空間結(jié)構(gòu)相關(guān)性,其次傳統(tǒng)神經(jīng)網(wǎng)絡(luò)回歸的關(guān)鍵點的二維坐標(biāo)信息是采用直接回歸坐標(biāo)值的方式,而FAN 對于每一個關(guān)鍵點預(yù)測一張熱力圖(heat map),熱力圖是一張和原始圖片形狀大小相同或者等比例的灰度圖,它的最大值點所在的位置代表了圖像的關(guān)鍵點所在的位置。

圖5 FAN 網(wǎng)絡(luò)結(jié)構(gòu)

圖6 沙漏網(wǎng)絡(luò)層結(jié)構(gòu)

沙漏網(wǎng)絡(luò)首先通過多組卷積層和池化層對輸入的特征圖進(jìn)行降采樣,然后通過多組上采樣層和卷積層將特征圖再次上采樣到原始特征圖的分辨率。由于池化層會丟失一些圖像中的細(xì)節(jié),在沙漏網(wǎng)絡(luò)中添加了跳層(skip layer)將丟失的細(xì)節(jié)帶回到上采樣后的特征圖里面去。這樣當(dāng)多個沙漏網(wǎng)絡(luò)重疊在一起的時候,這些網(wǎng)絡(luò)可以反復(fù)地處理這些特征圖以獲取更高層次的信息。這種基礎(chǔ)的網(wǎng)絡(luò)模型原本是用于人體姿態(tài)檢測(人體關(guān)鍵點檢測),在人臉關(guān)鍵點檢測方面也有不俗的表現(xiàn)。

本文采用Multi-PIE[18]的68 個關(guān)鍵點的規(guī)范來標(biāo)記人臉關(guān)鍵點,其人臉關(guān)鍵點的分布如圖7 所示,通過上述方法的人臉關(guān)鍵點檢測結(jié)果如圖8 所示。

圖7 人臉關(guān)鍵點分布

圖8 關(guān)鍵點檢測結(jié)果

(3)基于PNP 算法的頭部姿態(tài)估計

在獲取了人臉的二維坐標(biāo)點之后,需要結(jié)合人臉三位坐標(biāo)點的信息求解頭部的姿態(tài)。本文所采用如圖9 所示的針孔相機(jī)成像模型,其中點P(X,Y,Z)為三維世界中的點,p(u,v)為成像平面的點,它們之間的對應(yīng)關(guān)系由式4 所示,式中:R 和t 分別為旋轉(zhuǎn)矩陣和平移向量,它們與相機(jī)的位姿有關(guān),矩陣M 是相機(jī)的內(nèi)參矩陣,可以通過對相機(jī)進(jìn)行標(biāo)定得出,s 是縮放因子。PNP 問題就是在已知一組互相對應(yīng)的三維世界中的P的點和成像平面上的對應(yīng)的二維坐標(biāo)點p 求解出式(3)中的R 和t。

圖9 針孔相機(jī)成像模型

求解PNP 問題已經(jīng)有很多的經(jīng)典解法,例如迭代法、P3P、EPNP、DLS 等,本文采用迭代法求解,其主要思想是:通過直接線性變換(Direct Linear Transformation,DLT)求得一組初始的R 和t,再通過萊文貝格-馬夸特方法(Levenberg-Marquardt algorithm)對重投影的誤差進(jìn)行優(yōu)化以得到最小化的數(shù)值解。

在本文中,三維世界中的點集為圖2 所示的平均三維人臉坐標(biāo)點,成像平面上的點集為通過人臉關(guān)鍵點檢測所得到的二維坐標(biāo)點集。根據(jù)上述方法最終預(yù)測到的頭部姿態(tài)如圖10 所示。

圖10 頭部姿態(tài)估計結(jié)果

3 注意力分析

本文對于駕駛員的注意力分析是通過對駕駛員的注視區(qū)域進(jìn)行分類,以確保駕駛員的視線保持在與駕駛相關(guān)的區(qū)域上面。

在獲取到了駕駛員的頭部姿態(tài)(R,t)之后,本文采用如圖11 所示的射線投影的方法來估計注視區(qū)域。以駕駛員的雙眼中心為起點向駕駛艙前部發(fā)出射線,求出與求出射線與駕駛艙前部的交點,以交點所在的位置作為駕駛員的注視位置。在圖11 中,駕駛員頭部的局部坐標(biāo)系為OmXmYmZm,相機(jī)坐標(biāo)系為OcXcYcZc。以(Om,nm)向量的方向發(fā)射一條射線與XcOcYc平面相交與點I(xi,yi),點I 就是我們要求的注視點。

圖11 注視區(qū)域估計方式

由于此時的(Om,nm)向量是在頭部局部坐標(biāo)系下表出的,而XcOcYc平面處在相機(jī)坐標(biāo)系下,無法進(jìn)行計算。此時需要進(jìn)行坐標(biāo)轉(zhuǎn)換,將(Om,nm)向量轉(zhuǎn)換到相機(jī)坐標(biāo)系下。

當(dāng)駕駛員頭部偏移時,我們可以通過頭部姿態(tài)估計得到相應(yīng)的旋轉(zhuǎn)矩陣R,以及平移向量t,之后我們可以通過式(5)的方法,將人臉局部坐標(biāo)系下的(Om,nm)向量轉(zhuǎn)成為相機(jī)坐標(biāo)系下的(Omc,nmc),此后在相機(jī)坐標(biāo)系下可以由三角形相似的方法求出I 點的坐標(biāo)(xi,yi),我們令Omc=(Xs,Ys,Zs),nmc=(Xe,Ye,Ze),則可以用式(6)求出I 點的坐標(biāo)。

為了對駕員的注視區(qū)域進(jìn)行分析,本文對于駕駛區(qū)域的分類如圖12 所示,其中1 號左后視鏡,2 號左擋風(fēng)玻璃,3 號內(nèi)后視鏡,4 號右擋風(fēng)玻璃,5 號右擋風(fēng)玻璃,這五個區(qū)域作為與駕駛相關(guān)的區(qū)域,而6 號儀表盤,7 號中控臺作為與駕駛無關(guān)的區(qū)域。

圖12 駕駛員注視區(qū)域分類

4 實驗設(shè)置與結(jié)果分析

4.1 頭部姿態(tài)估計效果分析

對于頭部姿態(tài)估計,通常是將人體的頭部作為剛體進(jìn)行的檢測,但是在實際生活中人體的頭部并不是一個純剛體,人體有各種表情,其中人體嘴部及臉部輪廓是動作最大的區(qū)域,對于使用PNP 算法來說所造成的誤差最大。例如,一個咧嘴的動作會讓頭部的姿態(tài)估計在Roll 這個維度產(chǎn)生較大的誤差。為了證實這一觀點本文設(shè)計了一組實驗來探討不同區(qū)域的關(guān)鍵點對于頭部姿態(tài)估計的誤差的影響。

本實驗所采用的數(shù)據(jù)集是BIWI 數(shù)據(jù)集[19],BIWI數(shù)據(jù)集通過深度相機(jī)采集了15000 多張不同個體在不同頭部姿態(tài)下的圖片。它的頭部姿態(tài)的分布范圍是:俯仰角(pitch)±60°,偏航角(yaw)±75°,旋轉(zhuǎn)角(roll)±50°。該數(shù)據(jù)集給通過跟蹤每一個個體的三維點云信息獲得頭部的姿態(tài)。該數(shù)據(jù)集通常作為評估使用深度信息的方法的一個標(biāo)準(zhǔn)數(shù)據(jù)集,官方標(biāo)稱數(shù)據(jù)集的誤差在±1°。本文在實驗測試過程中只使用,它的RGB 圖像以及對應(yīng)的真實頭部姿態(tài)信息,不使用深度信息。

表1 是使用本方法在不同關(guān)鍵點分布情況下在BIWI 數(shù)據(jù)集上面的平均誤差。其中第一行是保留了全部68 個關(guān)鍵點的頭部姿態(tài)估計結(jié)果,第二行是去除了人臉輪廓之后剩下的51 個關(guān)鍵點的集合,第三行是僅僅保留了人眼4 個角點、眉毛6 個點和鼻尖位置的11 個點的集合。在分別去除了人臉輪廓以及嘴部關(guān)鍵點之后,對于頭部姿態(tài)估計的誤差有了明顯的下降,驗證了本文之前的設(shè)想。因此本文決定采用表1 所示的第三行的關(guān)鍵點集合。同時,為了驗證本文方法的性能,選擇了現(xiàn)有的頭部姿態(tài)估計的算法作為比較對象,它們在BIWI 數(shù)據(jù)集上能效性能效果如表2 所示。

表1 不同關(guān)鍵點分布的誤差分析

表2 與各種方法的比較

4.2 注視區(qū)域估計準(zhǔn)確度分析

為了對所提方法的有效性進(jìn)行評估,本文收集了如圖13 所示的真實駕駛情況下的駕駛員注視區(qū)域的數(shù)據(jù)集。該數(shù)據(jù)集有三個不同的個體,戴眼鏡與不帶眼鏡,以及不同的性別和身高。每個個體需要注視7個區(qū)域,每個區(qū)域收集20 張圖片,三個個體共收集到圖片420 張。在該數(shù)據(jù)集上進(jìn)行測試得到了如表3 所示的混淆矩陣。各區(qū)域的平均準(zhǔn)確率為86.67%,滿足實際使用要求。

圖13 數(shù)據(jù)集部分圖片示例

表3 驗證結(jié)果混淆矩陣

4.3 運(yùn)行時間分析

為了分析本方法的時間效能,本文統(tǒng)計了各個部分的計算用時。實驗所采用的計算機(jī)配置為:CPU 為Intel 酷睿i3-4170,GPU 為英偉達(dá)GTX 1060,其中人臉檢測與人臉關(guān)鍵點檢測使用PyTorch 框架實現(xiàn),使用了GPU 并行加速計算,頭部姿態(tài)的解決使用了OpenCV中實現(xiàn)的solvePnP()方法。測試了3 分鐘的視頻,其平均幀率為8.97,各階段的平均計算耗時如表4 所示。從表中可以看出人臉和人臉關(guān)鍵點檢測耗費(fèi)了較多的時間,但是整體運(yùn)行時間能夠達(dá)到實時性的要求。

表4 時間性能分析

5 結(jié)語

本文提出了一種基于RGB 相機(jī)的駕駛員注視區(qū)域檢測方法,使用人臉檢測、人臉關(guān)鍵點檢測以及圖形學(xué)中的坐標(biāo)變換的方法有效地獲取了駕駛員的注視區(qū)域。但是,由于本方法在輸入方面采用的是可見光源的方法,在夜間的效果不好,下一步將會考慮將加入紅外光源,以增加在夜間的適用性。時間方面,算法在人臉檢測和關(guān)鍵點檢測階段的時間復(fù)雜度較高,可以考慮將兩個神經(jīng)網(wǎng)絡(luò)合成一個多任務(wù)的網(wǎng)絡(luò),使其能夠復(fù)用前面的網(wǎng)絡(luò)層學(xué)到的特征,進(jìn)而減少在人臉部分的時間開支,使系統(tǒng)有更高的實時性。此外通過實驗分析可以看到,本方法對于區(qū)域3、6、7 的預(yù)測精度較差,主要是由于這些區(qū)域的頭部轉(zhuǎn)動角度較小,眼球轉(zhuǎn)動較大,因此下一步還可以眼球注視方向估計以增強(qiáng)注視區(qū)域估計的準(zhǔn)確度。

猜你喜歡
關(guān)鍵點人臉頭部
聚焦金屬關(guān)鍵點
肉兔育肥抓好七個關(guān)鍵點
有特點的人臉
頭部按摩治療老伴失憶
火箭的頭部為什么是圓鈍形?
軍事文摘(2020年22期)2021-01-04 02:16:38
三國漫——人臉解鎖
動漫星空(2018年9期)2018-10-26 01:17:14
自適應(yīng)統(tǒng)計迭代重建算法在頭部低劑量CT掃描中的應(yīng)用
馬面部與人臉相似度驚人
醫(yī)聯(lián)體要把握三個關(guān)鍵點
長得象人臉的十種動物
奇聞怪事(2014年5期)2014-05-13 21:43:01
郧西县| 泰兴市| 华阴市| 拉孜县| 会同县| 普兰店市| 青河县| 荔浦县| 库尔勒市| 方城县| 嘉峪关市| 青冈县| 保康县| 晴隆县| 监利县| 博白县| 彭州市| 云安县| 紫金县| 怀宁县| 万荣县| 渭南市| 汕尾市| 北安市| 大港区| 潼关县| 江川县| 慈溪市| 平山县| 丹巴县| 九江县| 谢通门县| 上栗县| 六枝特区| 张家口市| 辽阳市| 淮北市| 通江县| 申扎县| 城固县| 揭阳市|