本公開屬于計算機視覺和圖像處理技術領域,尤其是涉及一種駕駛員狀態(tài)實時檢測的方法和裝置。
背景技術:
隨著科技經濟的發(fā)展,人們的生活水平日益提高,汽車已經成為人們生活中不可或缺的一部分,但與此同時交通事故數量也在不斷增加,給人們的生命和財產造成了巨大的損失。其中駕駛員的疲勞駕駛和行駛時注意力不集中是引發(fā)交通事故的重要原因。疲勞是日常生活中常見的生理現象,是因人長時間的勞作無法得到充足的休息而引起的,但是由于疲勞駕駛造成的交通事故每年都給全世界各國造成了不可估量的損失。
有如下幾種關于駕駛員的狀態(tài)檢測這方面的工作。首先D’Orazio等在文獻“T.D’Orazio,M.Leo,C.Guaragnella,and A.Distante,A visual approach for driver inattention detection.Pattern Recognition,pp.2341-2355,2007.”中通過關注眼部行為來決定駕駛員的疲勞狀況。打哈欠也是疲勞信號的一種,Abtahi等人在文獻“S.Abtahi,B.Hariri,and S.Shirmohammadi,Driver drowsiness monitoring based on yawning detection.IEEE Conference on Instrumentation and Measurement Technology,pp.1-4,2007.”中通過打哈欠的頻率和嘴巴張開的程度來進行檢測。此外Murphy-Chutorian等人在“E.Murphy-Chutorian and M.Trivedi,Head pose estimation and augmented reality tracking:An integrated system and evaluation for monitoring driver awareness.IEEE Transactions on Intelligent Transportation Systems,pp.300-311,2010.”中使用了頭部運動檢測對于駕駛員進行監(jiān)控和檢測。
但是現有技術中的駕駛員狀態(tài)檢測依然存在魯棒性不足、檢測出錯率高、檢測速度慢等一些問題。
技術實現要素:
本公開的實施例公開了一種駕駛員狀態(tài)實時檢測方法,包括從攝像機拍攝的駕駛員視頻圖像檢測臉部區(qū)域,從臉部區(qū)域檢測眼部區(qū)域和嘴部區(qū)域,將所檢測的眼部區(qū)域和嘴部區(qū)域歸一化并與預先訓練的眼部和嘴部模板匹配以確定駕駛員疲勞狀態(tài),利用局部約束模型從實時臉部區(qū)域檢測面部特征點,將所檢測的面部特征點利用世界坐標系、攝像機坐標系、圖像物理坐標系和圖像像素坐標系之間的轉換進行三維建模以確定駕駛員頭部姿態(tài)以及基于駕駛員疲勞狀態(tài)和頭部姿態(tài)判斷駕駛員狀態(tài)是否為疲勞。
在一些實施例中,檢測臉部區(qū)域包括利用編碼了不同視角的拓撲變化并在樹之間具有部分共享池的混合樹來檢測臉部區(qū)域。
在一些實施例中,檢測臉部區(qū)域還包括將視頻圖像轉換到YCbCr顏色空間以及使用經驗閾值進行膚色分割。
在一些實施例中,檢測眼部區(qū)域包括使用邊緣檢測來檢測眼部區(qū)域。
在一些實施例中,檢測嘴部區(qū)域包括使用聚類和面部區(qū)域的空間關系來檢測嘴部區(qū)域。
在一些實施例中,將所檢測的眼部區(qū)域和嘴部區(qū)域與預先訓練的模板匹配包括使用去均值相關系數放大相關性進行匹配。
在一些實施例中,所確定的頭部姿態(tài)包括駕駛員注意力的方向。
在一些實施例中,利用局部約束模型檢測面部特征點包括使用平均形狀估計特征點位置,對于所估計的特征點位置提取形狀變化,基于所提取的形狀變化使用線性支持向量機獲取響應圖,在響應圖取最大值處擬合將均方差最小化的二次曲線從而得到關于特征點位置的代價函數。
在一些實施例中,基于線性支持向量機的輸出的局部約束模型的形狀約束以及代價函數來得到用于特征點查找的目標函數,以及通過迭代更新目標函數直至收斂到最大值來檢測面部特征點。
本公開的實施例公開了一種駕駛員狀態(tài)實時檢測裝置,包括攝像機、存儲器、處理器和警報器,其中攝像機用于拍攝駕駛員的視頻圖像,存儲器用于存儲所拍攝的視頻圖像,警報器用于向駕駛員發(fā)送警報以及處理器用于從所拍攝的駕駛員視頻圖像檢測臉部區(qū)域,從臉部區(qū)域檢測眼部區(qū)域和嘴部區(qū)域,將所檢測的眼部區(qū)域和嘴部區(qū)域歸一化并與預先訓練的眼部和嘴部模板匹配以確定駕駛員疲勞狀態(tài),從實時臉部區(qū)域檢測面部特征點,將所檢測的面部特征點利用世界坐標系、攝像機坐標系、圖像物理坐標系和圖像像素坐標系之間的轉換進行三維建模以確定駕駛員頭部姿態(tài),基于駕駛員疲勞狀態(tài)和頭部姿態(tài)判斷駕駛員狀態(tài)是否為疲勞;以及在駕駛員狀態(tài)被判斷為疲勞時指示警報器警告駕駛員。
本公開的實施例聯合了基于人眼部和嘴部區(qū)域檢測的眨眼和打哈欠狀態(tài)的檢測以及基于頭部姿態(tài)檢測的駕駛員注意力方向,能夠結合駕駛員狀態(tài)和注意力方向的確定結果對駕駛員是否疲勞駕駛進行綜合分析,有助于提高檢測的準確性和魯棒性,從而防止駕駛員因注意力不集中發(fā)生事故。
附圖說明
本公開提供了附圖以便于所公開內容的進一步理解,附圖構成本申請的一部分,但僅僅是用于圖示出體現發(fā)明概念的一些發(fā)明的非限制性示例,而不是用于做出任何限制。
圖1是根據本公開一些實施例的駕駛員狀態(tài)實時檢測方法的流程圖。
圖2是根據本公開一些實施例的局部約束模型的示意圖。
圖3是根據本公開一些實施例的駕駛員狀態(tài)檢測結果的圖。
圖4是根據本公開一些實施例的駕駛員注意力檢測結果的圖。
圖5是根據本公開一些實施例的駕駛員狀態(tài)實時檢測裝置的框圖。
具體實施方式
下文將使用本領域技術人員向本領域的其它技術人員傳達他們工作的實質所通常使用的術語來描述本公開的發(fā)明概念。然而,這些發(fā)明概念可體現為許多不同的形式,因而不應視為限于本文中所述的實施例。提供這些實施例是為了使本公開內容更詳盡和完整,并且向本領域的技術人員完整傳達其包括的范圍。也應注意這些實施例不相互排斥。來自一個實施例的組件、步驟或元素可假設成在另一實施例中可存在或使用。在不脫離本公開的實施例的范圍的情況下,可以用多種多樣的備選和/或等同實現方式替代所示出和描述的特定實施例。本申請旨在覆蓋本文論述的實施例的任何修改或變型。
對于本領域的技術人員而言明顯可以僅使用所描述的方面中的一些方面來實踐備選實施例。本文出于說明的目的,在實施例中描述了特定的數字、材料和配置,然而,領域的技術人員在沒有這些特定細節(jié)的情況下,也可以實踐備選的實施例。在其它情況下,可能省略或簡化了眾所周知的特征,以便不使說明性的實施例難于理解。
此外,下文為有助于理解說明性的實施例,將各種操作依次描述為了多個離散的操作;然而,所描述的順序不應當被認為是意味著這些操作必須依賴于該順序執(zhí)行。而是不必以所呈現的順序來執(zhí)行這些操作。
下文中的“在一些實施例中”,“在一個實施例中”等短語可以或可以不指相同的實施例。術語“包括”、“具有”和“包含”是同義的,除非上下文中以其它方式規(guī)定。短語“A和/或B”意味著(A)、(B)或(A和B)。短語“A/B”意味著(A)、(B)或(A和B),類似于短語“A和/或B”。短語“A、B和C中的至少一個”意味著(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。短語“(A)B”意味著(B)或(A和B),即A是可選的。
圖1示出了根據本公開一些實施例的駕駛員狀態(tài)實時檢測方法的流程圖。如步驟S101和S102所示,首先利用攝像機拍攝駕駛員的實施視頻圖像,并檢測所拍攝并存儲的視頻圖像的幀。在進行檢測之前,首先應使用人臉檢測算法從視頻圖像中提取駕駛員的面部所在的區(qū)域。由于在駕駛過程中需要快速且實時地檢測駕駛員狀態(tài),可以使用Adaboost人臉檢測器。Adaboost人臉檢測器的原理是把一些比較弱的分類方法合在一起組合為較強的分類方法。在一些實施例中,Adaboost人臉檢測器可以使用Haar-like特征,這種特征反映了圖像中灰度分布的特點,可以用來描述人臉中灰度分布的特點??梢杂煤谏糠峙c白色部分像素和的差來計算一個特征(如眼部、鼻子、嘴部等)對應的特征值。在利用Haar-like特征來計算選取人臉的特征時,可以非??焖俚倪M行計算采用積分圖的方法從而保證了算法的實時性。積分圖是一種能夠描述全局信息的矩陣表示方法。積分圖的構造方式可以是位置(i,j)處的值,ii(i,j)是原圖像(i,j)左上角方向所有像素的和:
當采用如下兩式,只需對原圖像掃描一次即可計算出積分圖:
ii(x,y)=ii(x-1,y)+s(x,y), (2)
s(x,y)=s(x,y-1)+i(x,y). (3)
其中是對積分圖這一行及其以前行的像素值求和,并且有:s(x,-1)=0,ii(-1,y)=0。
單純的Haar-like特征是一個弱分類器,通過弱分類器判斷輸入圖像是不是人臉的方法太過簡陋,所以我們需要把弱分類器組合成強分類器。弱分類器可以表示為:
在一個實施例中,弱分類器由子窗口圖像x,特征f,指示不等號方向的p和閾值θ組成。組合T個弱分類器得到強分類器,組合方式如下:
其中相當于讓所有弱分類器投票,再對投票結果按照弱分類器的錯誤率加權求和,將投票加權求和的結果與平均投票結果比較得出最終的結果。如果在檢測中單獨一個強分類器難以保證檢測的正確率,則采用級聯的策略能很好的解決這個問題。在一些實施例中的級聯分類器中,每一個待檢測窗口只有通過了當前層的強分類器才能進入下一層。這樣大量的待檢測窗口只需要最初幾層的簡單判斷就可以被迅速淘汰,使得平均檢測成本大大降低。如上所述的Adaboost的人臉檢測器可以實時高效的檢測出包含人臉的矩形區(qū)域,隨后可以從檢測到的區(qū)域中繼續(xù)檢測眼部和嘴部區(qū)域。
在一些實施例中,Adaboost的人臉檢測器雖然速度較快但是因為受到姿態(tài)光照影響較大,容易出現誤檢。因此可以采用編碼了不同視角的拓撲變化并在樹之間具有部分共享池的混合樹構造人臉檢測器來檢測臉部區(qū)域。在該混合樹中所有的樹利用了公用的部分模版的共享池,可以形成有效的學習和推理,并且對不同姿態(tài)以及復雜場景的檢測較為魯棒,并提高檢測的精度。
在一些實施例中,可將視頻圖像轉換到YCbCr顏色空間并使用經驗閾值進行膚色分割。在YCbCr顏色空間中Cb和Cr分別代表藍色和紅色分量,而Y為亮度分量,因此能將亮度和色度分離。膚色在YCbCr色彩空間中聚集在一個很小的范圍內,并且YCbCr空間既能充分表達人臉膚色,又能在很大程度上消除了亮度影響,這降低了色彩空間的維數和計算復雜度。視頻圖像的RGB模型與YCbCr空間的轉換關系為:
Y=0.299R+0.587G+0.114B, (6)
Cb=-0.1687R-0.3313G+0.5B, (7)
Cr=0.5R-0.4187G-0.0813B. (8)
通過實踐選取大量膚色樣本進行統(tǒng)計,發(fā)現膚色在CbCr空間的分布呈現良好的聚類特性,統(tǒng)計分布滿足77≤Cb≤127并且滿足133≤Cr≤173。因此可以利用人工閾值法將膚色與非膚色區(qū)域分開。通過膚色分割的方法,我們可以從檢測到的包含背景的人臉圖像中將臉部區(qū)域和背景分開,獲取到臉部區(qū)域。
如步驟S103和S104所示,在利用以上所述的方法獲取人臉區(qū)域后,對檢測中的人臉進行眼部和/或嘴部的提取。在一些實施例中,可以通過快速的眼部檢測算法繼續(xù)檢測人眼。獲取到包含兩個眼睛的矩形區(qū)域。對該區(qū)域執(zhí)行邊緣檢測算法以檢測眼部區(qū)域。例如,對眼部區(qū)域可以使用Sobel邊緣檢測算法提取人的眼部輪廓。Sobel算子包含兩組3×3的矩陣,一個是檢測水平邊緣的,另一個是檢測垂直邊緣的。Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數進行提取。在一些實施例中,可以使用聚類和面部區(qū)域的空間關系來檢測嘴部區(qū)域。例如,可以使用K均值(k-means)聚類的方法去分割嘴部區(qū)域。像素是基于明亮程度分類的,以這種分類方式像素最大有255類,這里可以將其分成5-10類。通過K均值算法能夠選擇合適的閾值并且選擇出檢測不夠明亮的部分所需要的聚類等級。最終圖片中分割出來的區(qū)域為嘴部。
在提取眼部區(qū)域和嘴部區(qū)域之后,將眼部區(qū)域和嘴部區(qū)域歸一化并與預先訓練的眼部和嘴部模板匹配以確定駕駛員疲勞狀態(tài),如步驟S106所示。例如,由于駕駛員頭部到攝像頭的距離和不同個體之間的差異性等會導致攝像頭獲取到的每一幀的人眼和/或嘴部大小總是不盡相同的,所以可將眼部模板和/或嘴部模板歸一化到一個固定尺寸以便于比較??梢詫τ讷@取到的臉部和嘴部區(qū)域通過去均值相關系數進行匹配來進行模板匹配:
將兩個向量的相似部分減去,可以放大相關性。通過模板匹配的方法將攝像機實時獲取的面部特征與事先訓練好的模板進行匹配判斷眼部和嘴部狀態(tài),確定它們處于閉合還是張開的狀態(tài)。眼部和嘴部的閉合或張開的狀態(tài)可以根據預先確定的判斷標準反映駕駛員是否疲勞。例如,如果檢測到連續(xù)多幀中駕駛員的眼部處于閉合狀態(tài),嘴部處于張開狀態(tài),可以認為駕駛員在打瞌睡或打哈欠,并判斷駕駛員處于疲勞狀態(tài)。因此,可以如上述進行模板匹配來判斷駕駛員是否處于疲勞狀態(tài)。
本公開的實施例除了檢測駕駛員的眼部和嘴部區(qū)域以外還用于同時檢測駕駛員的頭部姿態(tài),以判斷駕駛員的注意力情況,如步驟S105所示。在一些實施例中,采用基于約束局部模型(CLM)的方法來檢測駕駛員的頭部姿態(tài)。如圖2所示,該方法包括構建形狀模型(shape model)和形狀變化模型(patch model)。
構建形狀模型的方程可選用為如下式所示:
其中表示平均臉,P是形狀變化的主成分組成的矩陣,取得其值的方法將在下文進行詳細描述。假設給定M張圖片,每張圖片都包含了N個特征點,每個特征點坐標假設為(x,y),一張圖片上的N個特征點用向量表示為x=[x1 y1 x2 y3 … xN yN]T,所有圖像的平均臉可以用如下公式求出:
然后用每張臉的向量減去平均臉向量,可以得到一個均值為0的形狀變化矩陣,如下表示:
對XTX進行主成分分析可以得到形狀變化的決定性成分,即特征向量P和對應的特征值λ。得到P之后可以利用公式(10)~(12)得到一式中的B:
所求出的B即為形狀變化的權重向量,從而完成形狀模型構建,當給定一個權重B,即可通過以上公式重建出形狀。
構建形狀變化模型可以通過多個形狀變化樣本來訓練支持向量機(SVM)分類器和/或檢測器來進行。假設對每個特征點可以獲得m個形狀變化樣本,且其中包含了正負樣本,所有樣本尺寸相同。在CLM中,可以使用輸入向量的線性組合表示SVM的輸出:
y(i)=wT·x(i)+θ. (14)
其中wT=[w1 w2 … wn]代表輸入數據中每個元素的權重,θ是一個常量,作為偏置。在一些實施例中,可以使用從訓練數據中提取的相同大小的形狀變化,當形狀變化來自于特征點的位置時,輸出y為1。當形狀變化從圖片中隨機采樣而來時,輸出y為-1。可以使用這些數據來訓練一個svm,并獲取參數w和θ。由此能夠建立一個形狀變化模型。
基于如上所述的形狀模型和形狀變化模型的建模,可以如圖2所示使用CLM模型去搜索臉部。首先使用常規(guī)的快速人臉檢測器在視頻圖像中定位人臉的大致位置,得到包含人臉的矩形框。常規(guī)的人臉檢測器例如Viola-Jones人臉檢測器等。然后在包含人臉的矩形框中估計特征點的位置,可以使用平均形狀來估計特征點位置。對于所估計的特征點,從其位置提取形狀變化,使用線性SVM獲取響應圖,記為r(x,y)。假設r(x,y)在領域范圍內(x0,y0)處取得最大值,則嘗試在此次擬合一個二次曲線,并最小化均方差。該二次曲線的表達式可如下所示:
r(x,y)=a(x-x0)2+b(y-y0)2+c. (15)
其中a,b,c是需要擬合的變量,并且能滿足最小化均方誤差:
通過公式15完成最小二乘法,可以獲取公式16的參數,有了參數a,b,c,r(x,y)就等于關于特征點位置的代價函數,結合CLM形狀模型的形狀約束就構成了特征點查找的目標函數:
公式17中的第二項即為形狀約束,bj是特征向量j的權重,而λj是特征向量對應的特征值。每次優(yōu)化這個目標函數得到一個新的特征點位置,然后再迭代更新,直到收斂到最大值,就完成了人臉特征點擬合和/或檢測。
在獲得如上文所述的人臉特征點之后,可以通過n點透視的方法來解決頭部姿態(tài)檢測。在一些實施例中,采用2D到3D對應的姿態(tài)建模的方法確定頭部姿態(tài)??臻g某點P到其像點p的坐標轉換過程可通過世界坐標系、攝像機坐標系、圖像物理坐標系、圖像像素坐標系這四套坐標系的三次轉換實現,首先將世界坐標系進行平移和轉換得到攝像機坐標系,然后根據三角幾何變換得到圖像物理坐標系,最后根據像素和公制單位的比率得到圖像像素坐標系。反之亦可與以上步驟相反,將圖像像素坐標系轉化到世界坐標系和/或將3D姿態(tài)轉換為2D圖像。在相機的參數已經標定的情況下,可以得到精確的頭部姿態(tài)。在缺少相機參數的實施例中,仍然可以根據圖像的尺寸給出頭部姿態(tài)的估計值。在如上根據人臉特征點對駕駛員頭部姿勢進行建模之后,可以通過頭部姿態(tài)(例如頭部朝向等)來判斷駕駛員的注意力,如圖1的步驟S107所示。如果連續(xù)多幀頭部朝向沒有朝著前方,可以認為駕駛員注意力不集中。
最后,可以綜合考慮上文得出的駕駛員疲勞狀態(tài)和頭部姿態(tài)判斷駕駛員狀態(tài)是否為疲勞。例如,可以基于駕駛員狀態(tài)為打呵欠和頭部姿態(tài)顯示注意力不集中的至少之一判定為真,確定駕駛員處于疲勞駕駛狀態(tài)。判定疲勞駕駛狀態(tài)的標準可以任意地事先確定,例如還可以確定為駕駛員疲勞狀態(tài)和頭部姿態(tài)均達到預定的標準或閾值時才判定駕駛員為疲勞駕駛。如圖1步驟S108所示,在判定駕駛員為疲勞駕駛的情況下可以使用警報器實時提醒駕駛員保持注意力。
圖3以及圖4是根據本公開一些實施例的駕駛員狀態(tài)檢測結果和駕駛員注意力檢測結果的圖。如圖3所示,當駕駛員眼部和嘴部檢測結果顯示為正常狀態(tài)時,檢測結果為非疲勞狀態(tài)。而當駕駛員眼部和嘴部檢測結果顯示為瞌睡或打哈欠狀態(tài)時,檢測結果為疲勞狀態(tài)。如圖4所示,基于CLM模型檢測頭部姿態(tài)可以準確地定位駕駛員的注意力方向,并且可以在駕駛員的注意力方向一定時間未朝向前方的情況下判定為駕駛員疲勞。
圖5是根據本公開一些實施例的駕駛員狀態(tài)實時檢測裝置500的框圖。駕駛員狀態(tài)實時檢測裝置500包括存儲器501、警報器503、攝像機505和處理器507。攝像機505用于拍攝駕駛員的視頻圖像。攝像機505可以包括能夠拍攝靜態(tài)圖像或動態(tài)圖像序列的任何成像設備。存儲器501用于存儲所拍攝的視頻圖像,并且可包括任何易失性存儲器和非易失性存儲器。警報器用于向駕駛員發(fā)送警報,且可以包括任何可以提供人類感官可感知的信號的聲學、光學、體感等報警裝置。處理器507可以包括復雜指令集計算機處理器(CISC)、精簡指令集計算機處理器(RISC)、x86指令集兼容的處理器、多核處理器、多核移動處理器、微處理器、微控制器和/或中央處理單元(CPU)等。處理器507用于執(zhí)行如上文所述的駕駛員狀態(tài)實時檢測方法,其所執(zhí)行的動作的實施例類似于上文所描述的方法步驟的實施例,因此在此僅示意性地進行描述,具體細節(jié)可參照上文與圖1相關聯而描述的實施例。
本文中的部分方法步驟和流程可能需要由計算機執(zhí)行,從而以硬件、軟件、固件及其任何組合的方式來實施,并且可以包括計算機可執(zhí)行的指令。該計算機可執(zhí)行的指令可以以計算機程序產品的形式存儲在機器可讀介質上或者以從遠程服務器下載的方式進行提供,并由通用計算機、專用計算機和/或其他可編程數據處理裝置的一個或多個處理器讀取和執(zhí)行以實現方法步驟和流程中指明的功能/動作。機器可讀介質包括但不限于軟盤、光盤、壓縮盤、磁光盤、只讀存儲器ROM、隨機存取存儲器RAM、可擦可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、存儲卡、閃存和/或電、光、聲以及其他形式的傳播信號(例如載波、紅外信號、數字信號等)。
另外需注意,本文中的術語“和/或”可表示“和”、“或”、“異或”、“一個”、“一些但不是全部”、“兩者皆不”和/或“兩者皆是”,但在此方面并無限制。本文雖然已經示出和描述了本公開的具體實施例,但對本領域技術人員顯然可以在不脫離所附權利要求書范圍的情況下進行眾多改變、變化和修改。另外,在上述具體實施方式中,可看到各種特征在單個實施例中組合在一起以便簡化公開內容。此公開方式不應解釋為反映要求保護的實施方式需要比每個權利要求項明確所述的具有更多特征。相反,如權利要求所反映的一樣,本公開的主題依賴的是比單個公開實施方式所有特征更少的特征。因此,權利要求書的每個權利要求項本身保持為單獨的完整的實施例。綜上,本領域技術人員將認識到在不脫離本公開的范圍和精神的情況下,可在更廣闊的各方面中進行改變和修改。所附權利要求書在其范圍內涵蓋了落入本公開真實范圍和精神內的所有此類改變、變化和修改。