易煥銀++王貴恩++潘偉榮
摘 要:某些企業迫切需要一種能夠自動檢測照片中的人臉皮膚是否存在明顯偏光的技術,存在明顯偏光時需給出光源的方向。提出了一種針對人臉皮膚的偏光檢測方法。該方法首先利用OpenCV的人臉檢測算法檢測人臉,然后進行人臉對齊,得到66個人臉特征點,再以這些特征點的閉包絡作為前景掩碼送給GrabCut算法對圖像進行二分摳圖得到完整的臉部皮膚,最后用過臉部中心特征點的水平直線和垂直直線將皮膚分為4個區域,以區域內皮膚像素的平均亮度為標準來判斷臉部光照是否偏光以及偏光的方向。本方法應用于某家企業的實際項目中。
關鍵詞:皮膚; 人臉檢測; 人臉對齊; 摳圖; 偏光檢測
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2018)02-0152-02
An Illumination Uneven Detection Method for Facial Skin
YI Huan-yin, WANG Gui-en, PAN Wei-rong
(Mechanical and Electrical Engineering of GDCP, Guangzhou 510800, China)
Abstract:Some companies urgently need a technique that automatically detects the presence of significant illumination uneven on the face skin in a photo, and gives the direction of the light source when there is a significant illumination uneven. An illumination uneven detection method for human facial skin is proposed. Firstly, face detection is performed by face detection algorithm of OpenCV. Next, face alignment is performed to obtain 66 face feature points. Then, the closed envelope of these feature points is used as the foreground mask given to the GrabCut algorithm, getting the whole face skin from the binary segmentation of the image. Finally, the skin is divided into four regions by using the horizontal and vertical lines passing through the facial center feature point. The average brightness of the skin pixels in these regions is used as a criterion to determine whether the facial illumination is uneven or not and the direction of light. This method is applied to an actual project of some company.
Key words:skin; face detection; face alignment; segmentation; illumination uneven detection
隨著互聯網和智能終端(手機、平板電腦等)的飛速發展,普通消費者通過手機等移動終端拍照并將照片通過網絡上傳到制證公司的后臺來制作證件照成為可能。制證公司迫切需要一種能夠自動判斷圖片中人臉皮膚的光照是否存在很明顯偏光的技術,如果存在偏光,需給出偏光的方向。文獻[1]、文獻[2]提出了兩種人臉圖像光照方向的估計算法。本文提出了一種檢測人臉皮膚是否存在顯著偏光的方法。算法首先準確地獲取臉部皮膚像素,然后測量出人臉皮膚上下、左右兩個方向是否存在偏光以及偏光的程度和方向。
1 本文算法
算法由臉部皮膚的獲取和判斷臉部是否存在顯著偏光兩部分構成。首先通過人臉檢測、人臉對齊和GrabCut摳圖得到人臉皮膚,再根據皮膚亮度不會過低的特征,通過閾值分割過濾掉其中的眼瞼、瞳孔、眉毛等部分,得到比較準確的人臉皮膚,最后通過比較臉部皮膚上下、左右的平均灰度值來判斷臉部皮膚是否存在顯著偏光。
本文算法分如下幾個步驟(以圖2中的原圖1為例說明):
Step1:利用OpenCV實現的文獻[3]中的人臉檢測算法檢測到人臉,圖3中的藍色方框即為人臉檢測結果。
Step2:根據文獻[4]中的方法進行人臉對齊,圖3中的綠色點即為對齊后獲得的66個特征點,紅色數字為特征點編號,圖4為特征點部分的放大顯示。文獻[4]方法源碼:https://github.com/kylemcdonald/FaceTracker。
Step3:將人臉檢測方框向上下左右4個方向各拓展25%,得到一個新的方框Rect(包含所有臉部皮膚像素);
Step4:根據Step2中的66個特征點,利用OpenCV的fillPoly函數獲得一個由這66個點所圍成的閉包絡區域mask;
Step5:利用OpenCV實現的文獻[5]中的算法,以上面的Rect和mask為主要參數調用grabCut函數(迭代2次),摳圖獲得人臉皮膚,如圖5所示;endprint
Step6:將灰度值小于設定值(此處應用設為60,對于證件照來說這個閾值是很保守的,若皮膚灰度值低于60,必定是拍照環境光照太暗,不可能滿足制證要求)的像素設為非皮膚像素。此步驟可以有效過濾掉超低亮度的眼瞼、瞳孔、眉毛等非皮膚部分,減少對皮膚平均亮度判定的干擾;
Step7:以29號特征點作為人臉中心,分別進行下面兩個子步驟:
n Step7.1:水平分割人臉皮膚,統計并比較上、下兩部分皮膚像素的平均灰度值,大的與小的之比大于設定值(此處應用設為1.3),則上下存在顯著偏光,并將灰度值大的判斷為光源方向;
n Step7.2:垂直分割人臉皮膚,統計并比較左、右兩部分皮膚像素的平均灰度值,大的與小的之比大于設定值(此處應用設為1.3),則左右存在顯著偏光,并將灰度值大的判斷為光源方向;
Step8:若上下、左右都存在顯著偏光,將光源方向設為兩個亮度大的部分的交集。如:假設Step7.1結果是光源方向為上,Step7.2結果是光源方向為右,則最終判定的光源方向為右上。
2 實驗結果
圖2所示的原圖1實驗結果為:down_v/up_v=1.02551,right_v/left_v=1.205。即下、上皮膚亮度的平均值之比和右、左皮膚亮度的平均值之比。由于均小于設定閾值1.3,因此最終判定結果為:不存在顯著偏光。
圖6所示的原圖2實驗結果為:down_v/up_v=1.03489,right_v/left_v=1.52473。由于下、上皮膚亮度的平均值之比為1.03489,小于閾值1.3,因此上下方向沒有明顯偏光。但右、左皮膚亮度的平均值之比為1.52473,大于閾值1.3,存在顯著偏光,光源方向為右。因此最終判定結果為:存在顯著偏光,光源方向為右邊。
3 算法加速
本文算法主要耗時在人臉檢測、人臉對齊和GrabCut摳圖三塊。通過文獻[6]的方法,人臉檢測速度可以提高十倍以上。通過文獻[7]的方法,人臉對齊速度可以提高幾十倍。通過文獻[8]的方法,摳圖速度可以提高十倍以上。這些算法速度都非常快,是將來算法提速非常好的方向。但考慮到這些算法都非常新,出于穩定性的考慮,項目中暫時采用文獻[3-5]中的成熟方法。
4 結束語
本文提出了一種針對人臉皮膚的偏光檢測方法,能夠有效地自動檢測人臉皮膚是否存在著明顯偏光以及偏光的程度,存在顯著偏光時能判定光照的方向。本方法特別適用于對光照要求較高的證件照拍攝場合。
參考文獻:
[1] 孫雪梅, 蘇菲, 蔡安妮. 基于分叉樹和SVM的人臉圖像光照方向估計[J]. 中國圖象圖形學報, 2007, 12(10):1885-1888.
[2] 陳曉鋼, 陸玲, 劉向陽. 經典光照模型實現人臉圖像光照方向準確估計[J]. 計算機工程與應用, 2009, 45(11):203-205.
[3] P. Viola, M. Jones, Robust real-time face detection[C], in: Proceedings of Eighth International Conference on Computer Vision, Vancouver, Vol. 20(11), 2001, pp. 1254 —1259.
[4] J. Saragih, S. Lucey, and J. Cohn. Deformable model fitting by regularized landmark mean-shift[J]. IJCV, 2011. 2, 3, 6.
[5] C. Rother, V. Kolmogorov, and A. Blake, ““Grabcut”: Interactive foreground extraction using iterated graph cuts[J]” , SIGGRAPH, 2004.
[6] N. Markus, M. Frljak, I. S. Pandzic, J. Ahlberg, and R. Forchheimer, Object detection with pixel intensity comparisons organized in decision trees[J]. arXiv preprint arXiv:1305.4537, 2014.
[7] Ren, S., Cao, X., Wei, Y., Sun, J.: Face Alignment at 3000 FPS via Regressing Local Binary Features[C]. In: Computer Vision and Pattern Recognition (2014).
[8] Cheng, M.-M., Prisacariu, V. A., Zheng, S., Torr, P. H. S., and Rother, C. Densecut: Densely connected crfs for realtime grabcut[J]. Computer Graphics Forum, 34(7), 2015.endprint