本發明屬于計算機視覺和圖像處理技術領域,特別是涉及一種綜合膚色信息和紋理信息的基于模板匹配的人臉檢測方法。
背景技術:
隨著當今人工智能和機器視覺領域的快速發展,由于人臉識別具有非接觸性的特點,因此在人機交互方面有著廣闊的應用前景。人臉檢測作為人臉識別的基礎,在圖像或視頻中如何快速精準地檢測人臉的位置仍是當今的研究熱點。
目前,主流的人臉檢測方法主要有三種:(1)基于膚色、邊緣、幾何關系等人臉特征的檢測方法,該類方法一般運算速度較快,但缺點是受局部特征影響較大。(2)基于模板匹配的檢測方法,該類方法一般運算量較大,匹配時間較長。(3)基于數據的檢測方法,該類方法通過統計知識提取人臉特征,優點是檢測精度較高,但需要很大的數據集和較長的時間去訓練,且該方法是一種黑盒算法,無法直觀地從內部理解人臉檢測的原理。
基于膚色特征的人臉檢測方法屬于上述第一種方法,該方法利用膚色的聚類性篩選膚色區域,其計算量小,能夠快速地將人臉的待測區域分割出來。但膚色特征易受到類膚色背景和非人臉膚色區域干擾。
基于模板匹配的人臉檢測方法有兩個難點:一是模板的選擇。模板匹配要求模板所含的信息簡單有效,目前大多采用K-L變換后的“本征臉”作為檢測模板,但K-L變換中特征值分解的運算量較大。二是模板匹配的掃描次數。模板匹配需要不斷變換模板的大小對輸入圖像進行滑窗掃描,然而由于模板大小不確定,只能采取變換模板大小多次掃描的方式,因此其檢測時間會變長。這兩點都會嚴重影響檢測性能。
楊等[Yang Y,Xie C,Du L,et al.A new face detection algorithm based on skin color segmentation[C]//Chinese Automation Congress.IEEE,2015.]將膚色特征提取之后,通過判別每塊膚色區域是否滿足一定的對稱性來判斷是否是人臉,雖然該方法簡便但準確性較低,沒有深層次地去挖掘人臉圖像的特征。中國專利CN103632132A將膚色分割與模板匹配結合來進行人臉檢測,并使用連通區域標記,其模板匹配也具有一定的自適應性。但在進行模板匹配時,是采用直接計算各膚色連通區域的特征值,其運算量較大,且易受大片非人臉膚色區域的影響,從而造成檢測率較低。
技術實現要素:
為了解決上述問題,本發明的目的在于提供一種基于膚色分割和小波變換的人臉檢測方法。
為了達到上述目的,本發明提供的基于膚色分割和小波變換的人臉檢測方法包括按順序進行的下列步驟:
1)輸入圖像膚色分割:對輸入圖像進行光照補償,然后將光照補償后的圖像從RGB彩色空間轉換到YCbCr彩色空間,通過設定閾值區間對膚色區域進行分割,然后對分割后的區域進行去噪處理和連通區域標記;
2)輸入圖像特征提取:對輸入圖像進行小波變換,取小波變換后的圖像中水平頻率分量和垂直頻率分量兩個次高頻信息重構圖像的類邊緣特征,然后對該重構圖像進行中值濾波,最終得到低維圖像;
3)變長模板匹配:將步驟1)中得到的連通區域對步驟2)中得到的低維圖像進行掩模運算,然后通過統計步驟1)中標記的各連通區域的大小,針對不同連通區域制作不同大小的模板來對得到的連通區域進行變長模板匹配,最終通過判斷與模板相關性的大小來完成人臉檢測過程。
在步驟1)中,所述的輸入圖像膚色分割的具體步驟如下:
(1.1)光照補償
選取輸入圖像亮度的前百分之五的平均值作為亮度補償參考值,利用該值作為系數與輸入圖像相乘,由此對輸入圖像進行光照補償,其公式為:
其中Iori表示輸入圖像,sort0.05(·)表示取輸入圖像前百分之五的亮度成分,mean(·)表示取平均運算,ref為亮度補償參考值,I為光照補償后的圖像;
(1.2)色彩空間轉換和膚色分割
將上述光照補償后的圖像從RGB彩色空間轉換到YCbCr彩色空間,色彩空間轉換公式為:
光照補償后的圖像中每一點的像素點I(i,j)經式(2)轉換后由IY(i,j)ICr(i,j)ICb(i,j)表示,其中i和j表示該像素點所在的行和列,然后通過式(3)將膚色區域篩選出來并用二值圖像表示,其中黑色表示“0”,白色表示“1”;
由此完成膚色分割;
(1.3)去噪和連通區域標記
所述的去噪和連通區域標記方法的具體步驟如下:
1.3.1)填補空洞:將上述分割后的區域中的小空洞填補好;
1.3.2)開運算去除細小毛刺:本發明共進行了兩次開運算操作,分別采用5×5和9×9的方形算子作為開運算單元,5×5算子用于去除一些細小的噪聲點,9×9算子用于分割有微弱連接的連通區域,便于后續的連通區域標記;
1.3.3)連通區域標記:該步驟在整個去噪篩選過程中共使用兩次,第一次連通區域標記在開運算后,第二次連通區域標記在完成所有去噪和篩選后作為膚色分割的輸出;
1.3.4)去除長寬比異常的連通區域:經連通區域標記得到連通區域Qi后,計算連通區域Qi的最大外接矩形的長li和寬wi;由于人臉的正常長寬比例大約是4:3,通過設置長寬比:
來剔除部分不合理區域,當長寬比不合理時,可判斷該區域非人臉,從而剔除該區域;考慮到脖子與人臉部分常連接在一起,本發明將T>3和T<0.33作為長寬比異常的區間;
1.3.5)去除面積較小的區域:計算每個連通區域的面積Si=sum(Qi),即統計每個連通區域像素點的個數,設置與各連通區域的平均面積相關的門限來剔除較小的連通區域;連通區域的平均面積為:
本發明采用0.3倍的連通區域的平均面積Save作為剔除小塊區域的閾值;
1.3.6)去除面積結構不合理的區域:計算連通區域的面積Si與最大外接矩形面積的比值本發明設置比值ri的閾值為ri≥0.5,將結構不合理的區域剔除,完成篩選;
最終對經上述去噪篩選后的連通區域重新進行標記而得到Q′i,總的連通區域面積為:
在步驟1.3.1)中,所述的填補空洞的步驟為:
1.3.1.1)遍歷二值圖像,將I(i,j)=0的像素點值標記為待定點,并標記為Wait;
1.3.1.2)遍歷二值圖像,將靠近邊界的待定點標記為False,即不進行填補操作;
1.3.1.3)循環遍歷二值圖像,當標記為Wait的待定點的四鄰域點有False的標記時,將此待定點標記為False,直到標記為Wait的待定點不再增加時,結束遍歷;
1.3.1.4)將標記為Wait的待定點置為1,標記為False的靠近邊界的待定點不改變原來的像素值。
在步驟1.3.3)中,所述的連通區域標記的步驟為:
1.3.3.1)從左至右,從上到下掃描開運算后的圖像;
1.3.3.2)如果像素點為1,則:
a.若像素點上面點或左面點只有一個標記,則復制該標記;
b.若兩點有相同的標記,則復制該標記;
c.若兩點有不同標記,則復制上面點的標記且將這兩個標記輸入等價表中構成等價標記集;
d.否則給該像素點分配一個新的標記并將這一標記輸入等價表;
1.3.3.3)若考慮更多的點,則回到步驟1.3.3.2);
1.3.3.4)在等價表的每一等價標記集中找到最低的標記;
1.3.3.5)掃描二值圖像,用等價表中每個等價標記集的最低標記取代每一標記;
經連通區域標記后的各個連通區域由Qi表示,其中i為連通區域的標號,最終標記好的連通區域個數為n。
在步驟2)中,所述的輸入圖像特征提取的方法為:
用Haar小波對輸入圖像I進行小波分解而得到小波圖像,為了便于顯示,將小波圖像的細節系數取絕對值并八倍放大;僅利用水平分量和垂直分量完成小波重構,最終得到圖像的類邊緣特征信息,對重構后的圖像進行中值濾波而使圖像模糊化,最后得到低維圖像并記為W。
在步驟3)中,所述的變長模板匹配的具體步驟如下:
3.1)掩模運算
將步驟1)中膚色分割后得到的連通區域Q′對步驟2)中得到的低維圖像W進行掩模運算;
3.2)模板匹配
3.2.1)模板制作
具體方法為:在網上選取69張1寸免冠照片,并按照下述規則截取照片人臉區域作為模板制作的來源,其規則為:將兩個外側眼角間的距離作為截取部分的寬,并將長度方向位置固定;截取部分長和寬滿足長寬比4:3,鼻子下邊緣線對應長的0.618的位置,以此來確定寬度方向的位置;最后將截取部分的圖像大小轉換成40×30像素;按照上述規則,得到了69張大小相同、位置近似的人臉;隨后,將這69張照片進行前述的小波變換和重構,然后將重構后的照片累加,通過中值濾波將相加后的圖像模糊化,隨后進行歸一化,最終得到人臉匹配的模板;
3.2.2)變長模板匹配
變長模板匹配方法是對步驟1)中得到的已標記的多個連通區域Qi分別進行自適應滑窗掃描;通過參考標記后各個連通區域Qi的長和寬,選擇4種與連通區域Qi大小相關的模板進行匹配;本發明默認一個連通區域Qi中只有一個人臉,其步驟為:
3.2.2.1)將標號為i的連通區域Q′i置1,其他標號為非i的連通區域置-100,;
3.2.2.2)計算連通區域Q′i的長li和寬wi,并將連通區域Qi中上、下、左、右邊界所處的位置記錄下來;
3.2.2.3)取連通區域Q′i的長li和寬wi值中的最小值:當取長為最小值時,令寬為長的3/4倍;當取寬為最小值時,令長為寬的4/3倍,使長寬比滿足固定的4:3,最終得到的長和寬為和
3.2.2.4)根據和Wi*將原模板轉換成4種不同尺寸的匹配模板,分別為:
3.2.2.5)從連通區域Q′i的起始位置和開始進行滑窗掃描,共執行四次,每次掃描都變換一次掃描大小,且大小與步驟3.2.2.4)中的模板大小相同;每一次掃描所掃到的區域都與變換后相同大小的模板進行相關運算,比較兩者的相似度;最終把四次掃描后相關值ρi最大的位置Pi、區域大小和相關值ρi記錄下來,重新跳轉到步驟3.2.2.1);
相關值ρ值的計算公式為:
其中,μA、σA和μB、σB是向量A和向量B的均值和標準差,這里的向量A和向量B是由矩陣形式轉化的;
通過變長模板匹配后,每個連通區域Q′i都有一個相關值ρi最大的標定區域,且其面積為相關值為ρi;將每一個面積相關值ρi都除以其對應子集{ρi}的中值得選擇在閾值區間為內的區域為人臉區域。
本發明提供的基于膚色分割和小波變換的人臉檢測方法具有如下有益效果(1)提出了一種新的圖像特征提取方式。通過對圖像進行小波分解,將圖像的兩個次高頻成分提取出來重新構造圖像,并對重構圖像采用中值濾波進行模糊,最終可以得到一種新的低維人臉特征。(2)本發明在膚色分割中去噪階段,從圖像結構出發,剔除了大部分不合理非人臉的膚色區域,減少了運算量。(3)在模板匹配時,將膚色分割的連通區域大小考慮進來,針對不同大小的連通域設置不同的模板,實現了模板匹配的自適應。
附圖說明
圖1為本發明提供的基于膚色分割和小波變換的人臉檢測方法流程圖。
圖2(a)、(b)分別為膚色分割前的圖像和膚色分割后的二值圖像。
圖3為本發明中去噪和連通區域標記流程圖。
圖4為本發明中經去噪和連通區域標記后的效果圖。
圖5為本發明中輸入圖像特征提取方法示意圖。
圖6為本發明中掩模運算效果圖。
圖7為本發明中模板制作過程步驟圖。
圖8為本發明中變長模板匹配過程示意圖。
具體實施方式
下面結合附圖和具體實施例對本發明提供的基于膚色分割和小波變換的人臉檢測方法進行詳細說明。
如圖1所示,本發明提供的基于膚色分割和小波變換的人臉檢測方法包括按順序進行的下列步驟:
1)輸入圖像膚色分割:對輸入圖像進行光照補償,然后將光照補償后的圖像從RGB彩色空間轉換到YCbCr彩色空間,通過設定閾值區間對膚色區域進行分割,然后對分割后的區域進行去噪處理和連通區域標記;
所述的輸入圖像膚色分割的具體步驟如下:
(1.1)光照補償
光照補償可提高膚色分割的準確性,本發明選取輸入圖像亮度的前百分之五的平均值作為亮度補償參考值,利用該值作為系數與輸入圖像相乘,由此對輸入圖像進行光照補償,其公式為:
其中Iori表示輸入圖像,sort0.05(·)表示取輸入圖像前百分之五的亮度成分,mean(·)表示取平均運算,ref為亮度補償參考值,I為光照補償后的圖像;
(1.2)色彩空間轉換和膚色分割
由于膚色在YCbCr彩色空間中具有良好的聚類性,且膚色與亮度成分無關,本發明將上述光照補償后的圖像從RGB彩色空間轉換到YCbCr彩色空間,色彩空間轉換公式為:
光照補償后的圖像中每一點的像素點I(i,j)經式(2)轉換后由IY(i,j)ICr(i,j)ICb(i,j)表示,其中i和j表示該像素點所在的行和列,然后通過式(3)將膚色區域篩選出來并用圖2所示的二值圖像表示,其中黑色表示“0”,白色表示“1”。
由此完成膚色分割。
(1.3)去噪和連通區域標記
由于上述步驟(1.2)中得到的二值圖像存在很多細小的噪點和一些非人臉區域,因此需對上述分割后的區域進行去噪和連通區域標記。
如圖3所示,所述的去噪和連通區域標記方法的具體步驟如下:
1.3.1)填補空洞:將上述分割后的區域中的小空洞填補好,步驟為:
1.3.1.1)遍歷二值圖像,將I(i,j)=0的像素點值標記為待定點,并標記為Wait;
1.3.1.2)遍歷二值圖像,將靠近邊界的待定點標記為False,即不進行填補操作;
1.3.1.3)循環遍歷二值圖像,當標記為Wait的待定點的四鄰域點有False的標記時,將此待定點標記為False,直到標記為Wait的待定點不再增加時,結束遍歷;
1.3.1.4)將標記為Wait的待定點置為1,標記為False的靠近邊界的待定點不改變原來的像素值。
1.3.2)開運算去除細小毛刺:本發明共進行了兩次開運算操作,分別采用5×5和9×9的方形算子作為開運算單元,5×5算子用于去除一些細小的噪聲點,9×9算子用于分割有微弱連接的連通區域,便于后續的連通區域標記。
1.3.3)連通區域標記:該步驟在整個去噪篩選過程中共使用兩次,第一次連通區域標記在開運算后,第二次連通區域標記在完成所有去噪和篩選后作為膚色分割的輸出,其步驟為:
1.3.3.1)從左至右,從上到下掃描開運算后的圖像;
1.3.3.2)如果像素點為1,則:
a.若像素點上面點或左面點只有一個標記,則復制該標記;
b.若兩點有相同的標記,則復制該標記;
c.若兩點有不同標記,則復制上面點的標記且將這兩個標記輸入等價表中構成等價標記集;
d.否則給該像素點分配一個新的標記并將這一標記輸入等價表;
1.3.3.3)若考慮更多的點,則回到步驟1.3.3.2);
1.3.3.4)在等價表的每一等價標記集中找到最低的標記;
1.3.3.5)掃描二值圖像,用等價表中每個等價標記集的最低標記取代每一標記。
經連通區域標記后的各個連通區域由Qi表示,其中i為連通區域的標號,最終標記好的連通區域個數為n。
1.3.4)去除長寬比異常的連通區域:經連通區域標記得到連通區域Qi后,計算連通區域Qi的最大外接矩形的長li和寬wi。由于人臉的正常長寬比例大約是4:3,通過設置長寬比:
來剔除部分不合理區域。當長寬比不合理時,可判斷該區域非人臉,從而剔除該區域。考慮到脖子與人臉部分常連接在一起,本發明將T>3和T<0.33作為長寬比異常的區間。
1.3.5)去除面積較小的區域。計算每個連通區域的面積Si=sum(Qi),即統計每個連通區域像素點的個數。主觀上可知,連通區域較大的部分應屬于人臉,小的部分應屬于開運算無法剔除的小塊噪聲,因此可以設置與各連通區域的平均面積相關的門限來剔除較小的連通區域。連通區域的平均面積為:
本發明采用0.3倍的連通區域的平均面積Save作為剔除小塊區域的閾值。
1.3.6)去除面積結構不合理的區域。計算連通區域的面積Si與最大外接矩形面積的比值正常結構的人臉膚色區域應占據其外接矩形的大部分,比值ri應較大,而某些非人臉區域分布奇特,雖然外接矩形較大,但整體面積占矩形區域的比例較小,因此本發明設置比值ri的閾值為ri≥0.5,將結構不合理的區域剔除,完成篩選;
最終對經上述去噪篩選后的連通區域重新進行標記而得到Q′i,總的連通區域面積為:
經上述去噪和連通區域標記后的效果見圖4,圖中從左至右為經上述6個步驟后獲得的效果圖。
2)輸入圖像特征提取:對輸入圖像進行小波變換,取小波變換后的圖像中水平頻率分量和垂直頻率分量兩個次高頻信息重構圖像的類邊緣特征,然后對該重構圖像進行中值濾波,最終得到低維圖像;
本發明采用Haar小波作為輸入圖像特征提取的工具,Haar小波函數的定義為:
其尺度函數為:
尺寸為M×N的函數f(x,y)的二維離散小波變換是:
對應反變換為
如圖5所示,所述的輸入圖像特征提取的方法為:
用Haar小波對輸入圖像I進行小波分解而得到小波圖像,為了便于顯示,將小波圖像的細節系數取絕對值并八倍放大。本發明剔除和分量,僅利用水平分量和垂直分量完成小波重構,最終得到圖像的類邊緣特征信息,但重構后的圖像中有許多距離相距較近的集群點,若直接用這些集群點去匹配,會降低模板匹配的準確率。因此為了將大面積分布的點轉換成面,提高對集群點的匹配效果,這里對重構后的圖像進行中值濾波而使圖像模糊化,最后得到低維圖像并記為W。
3)變長模板匹配:將步驟1)中得到的連通區域對步驟2)中得到的低維圖像進行掩模運算,然后通過統計步驟1)中標記的各連通區域的大小,針對不同連通區域制作不同大小的模板來對得到的連通區域進行變長模板匹配,最終通過判斷與模板相關性的大小來完成人臉檢測過程。
所述的變長模板匹配的具體步驟如下:
3.1)掩模運算
將步驟1)中膚色分割后得到的連通區域Q′對步驟2)中得到的低維圖像W進行掩模運算,效果圖見圖6。通過將兩者結合起來,可以提高模板匹配檢測的準確率。
3.2)模板匹配
3.2.1)模板制作
由于步驟2)中的輸入圖像特征提取方法是本發明的一個創新點,并沒有類似的模板可以直接套用,因此本發明自行制作模板,具體制作過程見圖7。具體方法為:在網上選取69張1寸免冠照片,并按照下述規則截取照片人臉區域作為模板制作的來源,其規則為:將兩個外側眼角間的距離作為截取部分的寬,并將長度方向位置固定;截取部分長和寬滿足長寬比4:3,鼻子下邊緣線對應長的0.618的位置,以此來確定寬度方向的位置。最后將截取部分的圖像大小轉換成40×30像素。按照上述規則,得到了69張大小相同、位置近似的人臉。隨后,將這69張照片進行前述的小波變換和重構,然后將重構后的照片累加,通過中值濾波將相加后的圖像模糊化,隨后進行歸一化,最終得到人臉匹配的模板。由圖7可以看出,模板峰值主要分布在人眼、鼻子和嘴巴位置,且人眼相對其他部位較高。
3.2.2)變長模板匹配
變長模板匹配方法是對步驟1)中得到的已標記的多個連通區域Qi分別進行自適應滑窗掃描。通過參考標記后各個連通區域Qi的長和寬,選擇4種與連通區域Qi大小相關的模板進行匹配,從而大大減少了普通模板匹配的運算量。本發明默認一個連通區域Qi中只有一個人臉。
如圖8所示,其步驟為:
3.2.2.1)將標號為i的連通區域Q′i置1,其他標號為非i的連通區域置-100,;
3.2.2.2)計算連通區域Q′i的長li和寬wi,并將連通區域Qi中上、下、左、右邊界所處的位置記錄下來;
3.2.2.3)取連通區域Q′i的長li和寬wi值中的最小值:當取長為最小值時,令寬為長的3/4倍;當取寬為最小值時,令長為寬的4/3倍,使長寬比滿足固定的4:3,最終得到的長和寬為和
3.2.2.4)根據和Wi*將原模板轉換成4種不同尺寸的匹配模板,分別為:
3.2.2.5)從連通區域Q′i的起始位置和開始進行滑窗掃描,共執行四次,每次掃描都變換一次掃描大小,且大小與步驟3.2.2.4)中的模板大小相同。考慮到相鄰像素的區域相似性較高,為了減少運算量,選取掃描的方式為隔行匹配,具體躍過的行數由區域大小決定。每一次掃描所掃到的區域都與變換后相同大小的模板進行相關運算,比較兩者的相似度。最終把四次掃描后相關值ρi最大的位置Pi、區域大小和相關值ρi記錄下來,重新跳轉到步驟3.2.2.1)。
相關值ρ值的計算公式為:
其中,μA、σA和μB、σB是向量A和向量B的均值和標準差,這里的向量A和向量B是由矩陣形式轉化的。
通過變長模板匹配后,每個連通區域Q′i都有一個相關值ρi最大的標定區域,且其面積為相關值為ρi。將每一個面積相關值ρi都除以其對應子集{ρi}的中值得選擇在閾值區間為內的區域為人臉區域。
經過測試,本發明提供的方法能夠較為快速準確地檢測出臉。