?

基于膚色的人臉檢測系統的設計及實現

2019-03-12 06:59呂凱凱韋德泉
棗莊學院學報 2019年2期
關鍵詞:二值膚色人臉

呂凱凱,韋德泉

(棗莊學院光電工程學院,山東棗莊 277160)

0 引言

人臉檢測[1]即判斷待檢測視頻或圖像中是否存在人臉,存在幾個人臉,標記出人臉的位置并提取候選人臉圖像,是人臉識別工程的第一步,其結果對之后的人臉特征提取和人臉識別分類有決定性的影響.

膚色特征是人臉重要的特征之一.不同國家、不同種族的人臉膚色看上去差別很大,比如非洲人膚色偏黑,歐洲人膚色偏白,而亞洲人偏黃,但是這種差異僅僅是在人眼看上去的差異,即亮度上的差異,在去除了亮度信息后的色度空間中,這些膚色不同的人臉膚色分布是具有聚類性的[2].另外,跟其它人臉特征比,人臉的表情對膚色沒有影響,所以基于膚色作為人臉特征的檢測方法受到了很多的關注,并且取得了不錯的檢測效果[3~5].本文用C++語言設計并實現了一個基于膚色的人臉檢測系統.

1 顏色空間與膚色檢測

在人眼的眼中,所有的顏色都是紅(R),綠(G),藍(B)三個基色的不同組合,所以RGB色彩空間在生活中最為常見.當然,除了RGB色彩空間,還有其它的色彩空間,但RGB色彩空間是其它色彩空間的基礎,幾乎所有的圖像設備都使用RGB色彩空間來表示圖像.在RGB色彩空間中,圖像的色度信息和亮度信息是沒有分開的,所以基于膚色的人臉檢測方法中,RGB色彩空間是無法利用的.因此,我們必須要找到一種能把顏色表達中的色度信息與亮度信息分開的色彩空間.可以將色度信息與亮度信息分開的色彩空間主要有YUV彩色空間、YIQ彩色空間、YCbCr彩色空間、HSB彩色空間等,它們分別用于不同的用途.通過比較幾種色彩空間,本文決定使用HSB色彩空間來進行基于膚色的人臉檢測.

HSB顏色空間中,H代表色調(Hues),S代表色飽和度(Saturation),B代表亮度(brightness),其中,H的值在0-360之間變化,S的值在0-1之間變化,B的值在0-1之間變化.HSB色彩空間可以用一個六角模型表示,如圖1所示.

圖1 HSB六面體彩色模型

色調H代表顏色,是由與色飽和度S之間的旋轉角度a確定,a的不同取值代表不同顏色,比如a=60時,代表紅色,a=120時,代表黃色等等.色飽和度S代表某種顏色的的純度,取S=0時代表灰色圖像,當S=1時表示此時顏色是最純的彩色.亮度B代表某種顏色的亮度,當B=0時,表示亮度為零,此時對應黑色,當B=1時,此時顏色最鮮亮.為了本文檢測需要,應該把RGB色彩空間轉換成HSB色彩空間,轉換由如下公式進行:假設Max=max(R,G,B);Min=min(R,G,B);即Max和Min分別代表R、G、B三者中的最大值和最小值,定義Delta=Max-Min.那么色調、色飽和度和亮度H、S、B的計算方法如下:

H=0 當Delta=0時;

H=60(G-B)/Delta當Max=R且G>=B時;

H=60(G-B)/Delt+360 當Max=R且G

H=60(B-R)/Delt+120 當Max=G時;

H=60(R-G)/Delt+240 當Max=B時;

S=0 當Max=0時;

S=Delta/Max其它情況時;

B=Max;

圖2~5顯示了同一幅RGB圖像,分別轉換成不同彩色空間時的圖像,可以看出相比其它顏色空間,HSB顏色空間中膚色與背景分離較好.

圖2 YUV顏色空間 圖3 YIQ彩色空間

圖4 YCbCr顏色空間 圖5 HSB顏色空間

2 二值圖像與圖像濾波

根據實驗,在HSB顏色空間中,我們定義人臉膚色閾值R>=90&&G>=30&&B<30,在進行膚色確認時,程序針對一張待檢測的圖像,逐個掃描每個像素點,讀取相應像素點的三個分量的顏色值,看是否滿足上述我們定義的膚色區域值,如果滿足,那我們將該像素點的二值化圖像置為255,即是白色,如果不滿足,那我們將該像素點的二值化圖像置為0,即是黑色,由此得到的二值化圖像中,白色的區域就是可能的候選人臉區域.圖6是按上述方法得到的二值圖像.

在不破壞圖像的前提下,圖像濾波可以對圖像中的噪音進行過濾去除,這項技術也對后續的檢測結果有很大的影響.常見的圖像濾波技術包括簡單平均值濾波、加權平均濾波、最大值濾波、最小值濾波和中值濾波等多種濾波.圖7是本文比較了幾種濾波方法之后采用3*3掩模中值濾波后的二值圖像.

圖6 二值圖像 圖7 中值濾波后二值圖像

3 求連通域并按規則確定人臉區域

本文中,我們假設原始圖像的長和寬分別為X和Y.復雜背景下的原始圖像經過如上步驟處理以后,我們得到了一幅與原始圖像同等大小的一幅二值化圖像,圖像中存在著可能的人臉區域.接下來我們需要對此二值化圖像進行的操作是提取出圖像中含有的所有的連通域.每個連通域包含在一個矩形框內,矩形框的左下角坐標為(x0,y0),矩形框的右上角坐標為(x1,y1),如圖8所示,此矩形區域就是我們的目標人臉區域之一.

圖8 二值化圖像連通域示意圖

那么我們將得到的目標矩形區域的長和寬分別定義為h和w,那么長h=y1-y0+1,寬w=x1-x0+1.本文基于膚色的人臉檢測算法篩選人臉的規則定義如下:人臉區域的長寬比例應該符合一個約束范圍,利用該約束范圍可快速排除那些太過狹長或太過寬扁的非人臉區域.根據實驗,本文我們取w/h>=0.55且w/h<=0.85;另外目標人臉區域的人臉像素面積與目標矩形區域的面積之比faceratio應該大于某一個閾值并且這個閾值不能過大,否則為非人臉區域,將其排除掉.大于某個閾值可以排除一些不規則但和膚色比較接近的物體,也可以排除一些人體的其他非人臉區域,如彎曲的四肢等;限制faceratio不能過大,可以排除一些大塊的與膚色很相近的非人臉區域.本文我們取faceratio>=0.55且faceratio<=0.9,介于此區間的目標區域我們認為是人臉區域.基于以上判定規則的本文系統檢測結果如圖9所示.圖10是本文系統提取出來的檢測結果的原始圖像和二值圖像.

圖9 本文系統檢測結果 圖10 本文系統提取的結果

4 總結

本文用C++語言設計并實現了一個基于膚色的人臉檢測系統, 膚色不會受人臉的表情和姿態的影響,取得了比較滿意的檢測效果.本文確定膚色閾值和人臉區域規則是通過實驗數據得出,針對復雜多變的環境,這些參數并不能夠自適應的動態調整,這是后續考慮改進的地方.

猜你喜歡
二值膚色人臉
有特點的人臉
一起學畫人臉
膚色(外一首)
Conversation in a house
人的膚色為什么不同
為什么人有不同的膚色?
三國漫——人臉解鎖
面向網絡邊緣應用的新一代神經網絡
基于二值圖像數字水印算法研究
基于稀疏表示的二值圖像超分辨率重建算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合