數(shù)據(jù)值小于所述閾值時(shí),將該列數(shù)據(jù)值置O。
[0046]本發(fā)明實(shí)施例提供的一種人臉的定位方法和裝置,包括:獲取被測(cè)用戶(hù)的圖像對(duì)應(yīng)的預(yù)設(shè)顏色模型;之后,在預(yù)設(shè)顏色模型中選擇并輸出預(yù)設(shè)人體膚色區(qū)域?qū)?yīng)的膚色色調(diào)值;然后,對(duì)輸出的膚色色調(diào)值進(jìn)行直方圖統(tǒng)計(jì),并從統(tǒng)計(jì)結(jié)果中查找得到預(yù)設(shè)的各個(gè)色調(diào)組對(duì)應(yīng)的頻數(shù)最大值的色調(diào)組,并將該色調(diào)組對(duì)應(yīng)的區(qū)域作為人臉區(qū)域;最后,利用掩膜方法對(duì)人臉區(qū)域進(jìn)行掩膜計(jì)算,得到人臉掩膜,以便根據(jù)人臉掩膜對(duì)人眼進(jìn)行定位,與現(xiàn)有技術(shù)中的進(jìn)行人眼定位的方式均不理想相比,其利用了 FPGA硬件,該方式原理簡(jiǎn)單、處理速度快且容易實(shí)現(xiàn),并且通過(guò)FPGA的硬件結(jié)合直方圖的統(tǒng)計(jì)方法以及人臉的掩膜方法可以得到完整的人臉掩膜的區(qū)域,該區(qū)域干凈,且完全覆蓋了人眼區(qū)域,基于上述人臉區(qū)域進(jìn)行人眼定位也使得人眼定位的精確度較高且整個(gè)方法實(shí)用性較好。
[0047]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
【附圖說(shuō)明】
[0048]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
[0049]圖1示出了本發(fā)明實(shí)施例所提供的一種人臉的定位方法的流程圖;
[0050]圖2示出了本發(fā)明實(shí)施例所提供的一種人臉的定位裝置的整體結(jié)構(gòu)示意圖。
[0051]主要元件符號(hào)說(shuō)明:
[0052]11、轉(zhuǎn)換模塊;12、膚色選擇模塊;13、直方圖統(tǒng)計(jì)模塊;14、最大值選擇模塊;15、掩膜計(jì)算模塊;16、定位模塊。
【具體實(shí)施方式】
[0053]下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0054]考慮到現(xiàn)有技術(shù)中應(yīng)用于檢測(cè)用戶(hù)是否疲勞駕駛中的人臉定位方法均存在實(shí)用性較差的問(wèn)題,本發(fā)明提供了一種通過(guò)FPGA (Field — ProgrammabIe Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)實(shí)現(xiàn)的人臉的定位方法和裝置,其利用了 FPGA的硬件,該方式原理簡(jiǎn)單、處理速度快且容易實(shí)現(xiàn),并且通過(guò)FPGA的硬件結(jié)合直方圖的統(tǒng)計(jì)方法以及人臉的掩膜方法可以得到完整的人臉掩膜的區(qū)域,整個(gè)方法實(shí)用性較好。并且,上述人臉掩膜的區(qū)域干凈,且完全覆蓋了人眼區(qū)域,基于上述人臉區(qū)域進(jìn)行人眼定位,也能夠使得人眼定位的精確度較高。
[0055]參考圖1,本發(fā)明實(shí)施例提供了一種人臉的定位方法,所述方法通過(guò)現(xiàn)場(chǎng)可編程門(mén)陣列FPGA實(shí)現(xiàn),具體由轉(zhuǎn)換模塊U、膚色選擇模塊12、直方圖統(tǒng)計(jì)模塊13、最大值選擇模塊14、掩膜計(jì)算模塊15和定位模塊16實(shí)現(xiàn)(上述模塊具體如圖2所示),所述方法包括:
[0056]S101、將采集到的被測(cè)用戶(hù)的圖像轉(zhuǎn)換為HSV顏色模型下的參數(shù),所述參數(shù)包括:色調(diào)、飽和度和亮度;所述預(yù)設(shè)顏色模型至少包括以下中的一種:HSV顏色模型、HSI顏色模型、HSB色彩模式和HSL色彩模式。
[0057]本實(shí)施例中,被測(cè)用戶(hù)的圖像可以通過(guò)攝像機(jī),照相機(jī)等的圖像采集裝置進(jìn)行采集;為了更好進(jìn)行后續(xù)對(duì)人臉進(jìn)行定位,先將采集的用戶(hù)圖像的顏色模型進(jìn)行轉(zhuǎn)換,(本實(shí)施例中均以轉(zhuǎn)為HSV顏色模型為例進(jìn)行說(shuō)明),即將用戶(hù)圖像的顏色模型轉(zhuǎn)換為HSV顏色模型,并在HSV顏色模型中獲取有效的參數(shù);上述有效的參數(shù)包括:色調(diào)、飽和度和亮度,以便后續(xù)根據(jù)這些有效的參數(shù)進(jìn)行到人臉定位。
[0058]S102、從所述HSV顏色模型的色調(diào)參數(shù)中查找與預(yù)設(shè)的人體膚色范圍值匹配的色調(diào)參數(shù),將查找到的所述色調(diào)參數(shù)作為所述被測(cè)用戶(hù)的膚色色調(diào)值;其中,所述預(yù)設(shè)的人體膚色范圍值劃分為多個(gè)色調(diào)組。
[0059]具體的,預(yù)設(shè)的人體膚色范圍值是一個(gè)近似確定的值,如在HSV顏色空間中,當(dāng)H的取值在O度-360度分布時(shí),人體膚色的色調(diào)值一般在2度-50度之間等;在上述查找的過(guò)程中,優(yōu)選的查找色調(diào)與預(yù)設(shè)的人體膚色范圍值相匹配的,這樣能夠保證準(zhǔn)確的確定出人體膚色部分的圖像,便于后續(xù)精確的定位人臉。
[0060]實(shí)際中,在系統(tǒng)的實(shí)際應(yīng)用中,人臉在整個(gè)膚色范圍占的比重是較大的,且人臉的色調(diào)值變化不會(huì)很大,取人臉的色調(diào)值±x(其中,X為人臉色調(diào)變化的一個(gè)閾值,根據(jù)不同的光照,X的取值可能會(huì)有所差別,本實(shí)施例中X可以取10)的色調(diào)范圍用于人臉的粗定位;基于此,本實(shí)施例中,優(yōu)選為將預(yù)設(shè)的人體膚色范圍值優(yōu)選為劃分為多個(gè)色調(diào)組,如I度-10度為一組,10度-20度為一組,20度-30度為一組,30度-40度為一組,40度-50度為一組等。
[0061]S103、對(duì)所述膚色色調(diào)值進(jìn)行直方圖統(tǒng)計(jì),得到各個(gè)所述色調(diào)組對(duì)應(yīng)的頻數(shù)。
[0062]具體的,將上述各個(gè)所述色調(diào)組以及各個(gè)色調(diào)組對(duì)應(yīng)的頻數(shù)均表示在直方圖上,以對(duì)各個(gè)色調(diào)組及其對(duì)應(yīng)的頻數(shù)進(jìn)行統(tǒng)計(jì),用以進(jìn)行直觀的顯示,便于用戶(hù)觀看。
[0063]S104、將所述頻數(shù)中最大的頻數(shù)的色調(diào)組對(duì)應(yīng)的區(qū)域作為人臉區(qū)域。
[0064]由于人臉在整個(gè)膚色范圍內(nèi)占的比重較大,其意味著人臉部分對(duì)應(yīng)的色調(diào)組對(duì)應(yīng)的頻數(shù)最多,且人臉的色調(diào)值變化不會(huì)很大,故在FPGA中實(shí)現(xiàn)在得到各個(gè)所述色調(diào)組中選擇對(duì)應(yīng)的頻數(shù)最大的色調(diào)組,并將該最大的頻數(shù)的色調(diào)組對(duì)應(yīng)的區(qū)域作為人臉區(qū)域。
[0065]S105、利用掩膜方法對(duì)人臉區(qū)域進(jìn)行掩膜計(jì)算,并根據(jù)得到的人臉掩膜對(duì)人臉進(jìn)行定位。
[0066]本步驟中的掩膜計(jì)算是利用FPGA的硬件實(shí)現(xiàn)的,其計(jì)算過(guò)程如下:利用上述步驟得到的人臉區(qū)域?qū)?yīng)的色調(diào)值計(jì)算人臉區(qū)域色調(diào)的邊界,然后將整個(gè)圖像轉(zhuǎn)換后的色調(diào)值與得到的人臉區(qū)域色調(diào)的邊界進(jìn)行比較,將整個(gè)圖像中介于上述得到的人臉區(qū)域色調(diào)的左邊界和右邊界之間的色調(diào)值置I (本實(shí)施例中,I對(duì)應(yīng)的為白色),將整個(gè)圖像中介于上述預(yù)設(shè)的人臉區(qū)域色調(diào)的左邊界和右邊界之外的色調(diào)值置O (本實(shí)施例中,O對(duì)應(yīng)著黑色),從而可以得到人臉部分為白色,其他部分為黑色的圖像,通過(guò)該方法即對(duì)人臉進(jìn)行定位。
[0067]本發(fā)明實(shí)施例提供的一種人臉的定位方法,與現(xiàn)有技術(shù)中的進(jìn)行人眼定位的方式均不理想相比,其利用了 FPGA的硬件,該方式原理簡(jiǎn)單、處理速度快且容易實(shí)現(xiàn),并且通過(guò)FPGA的硬件結(jié)合直方圖的統(tǒng)計(jì)方法以及人臉的掩膜方法可以得到完整的人臉掩膜的區(qū)域,該區(qū)域干凈,且完全覆蓋了人眼區(qū)域,基于上述人臉區(qū)域進(jìn)行人眼定位也使得人眼定位的精確度較高且整個(gè)方法實(shí)用性較好。
[0068]如上所述,本實(shí)施例中的人臉的定位方法是基于FPGA實(shí)現(xiàn)的,故上述步驟102的具體實(shí)現(xiàn)過(guò)程如下:
[0069]步驟102的目的為了獲取人體膚色的色調(diào)值,其原理如下:如果輸入的色調(diào)值在膚色區(qū)域內(nèi),則輸出該色調(diào)值,參與下級(jí)運(yùn)算;如果輸入的色調(diào)值不在膚色區(qū)域內(nèi),則不輸出該色調(diào)。
[0070]如上所述,本實(shí)施例中的人臉的定位方法是基于FPGA實(shí)現(xiàn)的,故上述步驟103的具體實(shí)現(xiàn)過(guò)程如下:
[0071]具體的,在統(tǒng)計(jì)每一個(gè)膚色色調(diào)值對(duì)應(yīng)的數(shù)據(jù)時(shí),按照頻數(shù)分布表,在平面直角坐標(biāo)系中,使橫軸標(biāo)出每個(gè)預(yù)設(shè)的人體膚色范圍值劃分的每個(gè)色調(diào)組的端點(diǎn),使縱軸表示每個(gè)色調(diào)組對(duì)應(yīng)的頻數(shù),每個(gè)矩形的高代表對(duì)應(yīng)的頻數(shù),上述表示方式的統(tǒng)計(jì)圖則為頻數(shù)分布直方圖。因此計(jì)算圖像數(shù)據(jù)的直方圖,先確定組數(shù)(將每一個(gè)膚色色調(diào)值分成幾個(gè)范圍)和組距(每個(gè)組包含的膚色色調(diào)值數(shù)值對(duì)應(yīng)的寬度),再去統(tǒng)計(jì)每組數(shù)據(jù)的頻數(shù)。其中,假設(shè)輸入的數(shù)據(jù)矩陣共有m個(gè)數(shù)據(jù)(即人體膚色色調(diào)值),分成η組(對(duì)人體膚色色調(diào)值分組后的結(jié)果),本實(shí)施例中,每組只包含左端點(diǎn),不含右端點(diǎn)。
[0072]在硬件實(shí)現(xiàn)的時(shí)候,將每一個(gè)膚色色調(diào)值作為FPGA直方圖中頻數(shù)存儲(chǔ)器的地址輸入;其中,每個(gè)頻數(shù)存儲(chǔ)器(如可以為RAM存儲(chǔ)器,還可以為其他存儲(chǔ)器)的地址對(duì)應(yīng)一個(gè)所述色調(diào)組,每個(gè)頻數(shù)存儲(chǔ)器用于存儲(chǔ)對(duì)應(yīng)的所述色調(diào)組的頻數(shù);每當(dāng)接收到一個(gè)膚色色調(diào)值,讀取該膚色色調(diào)值對(duì)應(yīng)地址的頻數(shù)存儲(chǔ)器中的頻數(shù),并通過(guò)頻數(shù)加法器將讀取的所述頻數(shù)存儲(chǔ)器的頻數(shù)加1,然后再寫(xiě)回地址中,當(dāng)數(shù)據(jù)全部處理完,每個(gè)膚色色調(diào)值對(duì)應(yīng)的頻數(shù)便都統(tǒng)計(jì)出來(lái),繼續(xù)存在頻數(shù)存儲(chǔ)器中。此時(shí)再讀取頻數(shù)存儲(chǔ)器中存儲(chǔ)的各個(gè)數(shù)據(jù)的頻數(shù),送到通過(guò)頻數(shù)累加器中求和,即可得到每個(gè)組的頻數(shù)。
[0073]計(jì)算直方圖分三個(gè)階段實(shí)現(xiàn):階段1,計(jì)算各個(gè)數(shù)據(jù)的頻數(shù);階段2,計(jì)算各個(gè)組的頻數(shù);階段3,頻數(shù)存儲(chǔ)器初始化(清零)。
[0074]如上所述,本實(shí)施例中的人臉的定位方法是基于FPGA實(shí)現(xiàn)的,故上述步驟104的具體實(shí)現(xiàn)過(guò)程如下:
[0075]逐一讀取各個(gè)頻數(shù)存儲(chǔ)器RAM中的頻數(shù);通過(guò)頻數(shù)比較器比較當(dāng)前讀取的頻數(shù)和上一個(gè)存儲(chǔ)的最大值的頻數(shù);若當(dāng)前讀取的頻數(shù)大于上一個(gè)存儲(chǔ)的最大值的頻數(shù),則使用上述當(dāng)前讀取的頻數(shù)更新所述最大值的頻數(shù)。