張璠璠
(四川大學計算機學院,成都 610065)
染發仿真及基于人臉檢測的發型配準
張璠璠
(四川大學計算機學院,成都 610065)
提出將人臉檢測用于發型自動配準以及發型染色的算法,通過灰度投影及Susan邊緣檢測和角點提取獲得人臉的特征點,再和發型相對應的特征點匹配以達到發型配準;再通過三段折線式染色算法進行染色,既能使頭發的顏色達到預期的目標,又能盡量保持原發型的亮度變化層次,達到有層次感的、自然的、不失真的染色效果。
人臉檢測;灰度投影;角點檢測;發型配準;染發仿真
隨著人們對于自身外部美的不斷重視,發型合適與否也變得越來越重要,一款合適的發型往往能為自身加分不少。但礙于與理發師的言語交流中缺少實際效果的展示以及宣傳畫冊與實際情況差距較大的原因,往往選擇的發型會與初衷有所出入。現階段的發型設計軟件較少,且已有的方法多為人工拖動縮放、移動,不是很便利。因此本文提出了一種基于人臉檢測的發型配準方法,可以根據人臉圖像的特征自動縮放、旋轉、移動發型;還提出了一種染色方法,在保持原發型亮度變化層級的基礎上達到效果較好的自然染發效果。
1.1 圖像預處理
由于外部因素的影響,往往使得圖像的質量不太理想,如噪聲較多、光照不均勻等,因此要先對圖像進行一定的預處理。本文采用了圖像的灰度變換,灰度變換使得圖像的灰度從一個較窄的灰度域擴展到整個的灰度域中,以利于圖片的特征識別。
1.2 圖像積分投影
目前有大量的人臉檢測方法[1~2],本文選擇積分投影方法。由于人的頭發、眼睛、鼻子、嘴巴等的灰度值與其他區域的灰度值不同,對圖像進行積分投影可以確定人臉邊界的位置和臉部特征點的大致區域。垂直積分投影反映了圖像在水平方向上的灰度變化[3],通過分析找出圖像垂直積分投影曲線上的梯度值最大點和梯度值最小點,這兩點所在的列就為臉部的左右邊界點。在臉部左右邊界區域內,再對圖像進行水平積分投影,水平積分投影反映了圖像在垂直方向上的灰度變化,分析水平積分投影曲線可獲得頭頂、眼睛、下巴在垂直方向上的坐標點[4]。相比較其他地方,頭發的灰度值較低,因此水平積分投影曲線中的第一個極小值點為頭頂點。再根據一定的人臉先驗知識,劃定出眼睛和下頜點在垂直方向上的大致搜索區域,由于眼睛和周邊區域的灰度值相差較大且眼部的灰度值低,因此在眼部區域,水平積分投影曲線會有較大的梯度變化。
1.3 眼角點定位
根據獲取的人臉的邊界及眼部在垂直方向上的坐標點,進一步細分出眼部的檢測范圍,在眼部區域灰度圖的基礎上,以滿足類間方差與各類方差的比值為最大作為二值化閾值選取的原則,獲得眼部區域的二值化圖像。在此基礎上再利用Susan算子對眼部圖像進行邊緣檢測和角點提取[5],獲取眼角點[6]。
Susan算子[7]的原理為:用一個圓形模板在圖像上移動,模板半徑為r(本文中r取3.4),把模板內的每一個像素與中心點像素進行比較,計算每點處的USAN值:



Susan算子不僅具有很好的邊緣檢測性能,而且對角點檢測也具有很好的效果。通過控制閾值t和g的大小,對于不同質量或者對比度的圖像均有較好的檢測效果。
1.4 發型與人臉的配準
根據檢測得到的眼角點,可計算得到人臉的偏轉角度,為和人臉圖像相配準,需將發型庫中的發型圖像標注相對應的特征點,如原發型臉部邊界和眼角點等,再根據人臉及發型圖像的各自特征點計算出發型圖像相對于人臉的縮放比例、旋轉角度及移動的距離,再將發型和人臉配準。

圖1
發型本身就具有不同的亮度變化層次,在對發型進行染色時,不僅要調整圖像整體的亮度值達到或接近目標顏色的亮度,同時還需要保留反映原圖環境光照和發質的亮度變化層次,這樣才能做到有層次感的、自然而不失真染色效果。本文的染色算法采用的是HSL色彩空間,其中H:Hue/色相,S:Saturation/飽和度,L:Lightness/亮度,因為相對于三原色光模式即RGB模型來說,HSL模型更加直觀、更加貼近于人類感知顏色的方式。在HSL色彩空間中,選擇一個新的顏色進行染色時,對于這個顏色來說,H、S、L的值是固定的,發型上的不同的明暗效果變化就在于L(亮度)的值的變化。因此如何確定發型上L的變化是染色最重要的問題。此外,染色時也不可單純地保留原發型的亮度值,而只改變色相和飽和度的值,以黑發情況為例,若不調整圖像亮度L,而只調整色相H和飽和度S的話,因為原始圖像的亮度較低,就會在視覺效果上導致一種圖像未被染色,還是保持原始黑色的感覺。
本文提出一種三段式折線亮度變化法,既能使圖像的平均亮度達到預期的目標,又能保留原發型的亮度變化情況,使發型達到一種有層次感的染色效果。此方法具體內容如下:
對于給定的染色值,轉換到HSL顏色空間后,其中L值就設為染色后發型圖像的平均亮度值,為避免L值過于偏大或偏小,對其進行一定的調整,設調整系數為α,即:wishL=HALFLUMINANCE+α(L-HALFLUMINANCE),wishL為調整后的期望亮度值;HALFLUMINANCE為亮度變化區域的中間點,即為常值120,經過實驗測試,本文中α取0.8。以亮度增加的情況為例,在整個亮度范圍中(0-MAXL)設定兩個點k1和k2,使得增加后的亮度曲線轉為三段式,當發型的亮度不發生改變時,此映射線為45度的直線,如圖2:

圖2 三段式亮度折線圖
此時,整個亮度范圍就劃分為三個區域:[0,k1)、[k1,k2]、(k2,MAXL],其中MAXL為最大亮度值240。不同的區域中,亮度值的變化有不同的計算方法。以區域[0,k1)為例:

其中Δl1是區域[0,k1)上的亮度總變化值;wi為圖像中亮度為i的像素點個數在整幅圖像像素個數中所占的比例;Δi為亮度在i處變化的亮度值;為k1點變化后的亮度值。由此可推出[k1,k2]、(k2,MAXL]上的亮度變化值Δl2和Δl3,即:

此時dl=Δl1+Δl2+Δl3,即三個區域上亮度差值的總和就為染發后的平均亮度和原發型平均亮度的差值dl。對于給定了k1和k2來說,未知量為,設為Δk1和Δk2。在本文的具體應用中,k2定為原發型圖的平均亮度值點,k1的確定方法為:當染色的目標亮度值比原發型圖像的平均亮度值高時,k1定為最小亮度值0;反之,k1定為最大亮度值240。

圖3 區域[0,k1)亮度變化
①Δk1和Δk2的值呈線性關系:
線性中可得Δk1和Δk2的比例關系,即Δk1/Δk2=(kt-k1)/(kt-k2),其中kt是k1和k2點變化方向上的亮度極值,k0是k1和k2點變化方向反方向上的亮度極值,Δk1是k1點處的亮度變化值,Δk2是k2點處的亮度變化值。由上述dl=Δl1+Δl2+Δl3可得線性情況下Δk1和Δk2的值。

圖4 線性比例亮度變化圖
②Δk1和Δk2的值呈非線性關系
由線性關系圖中可以看出,線性方式會造成某一區域,這里是[0,k1)區域的亮度變化過于劇烈,為了平衡這種現象,現再引入非線性的方式。仍以亮度增加的情況來說明,k2點處能增加的最大值就為(kt-k2),設定一個調整系數x,使得k2點處的亮度變化值為(kt-k2)x, 0≤x≤1,若按照線性方式,此時k1點處的變化值就為(kt-k1)x,為了避免線性情況下此點的變化過于劇烈,設定Δk1=(kt-k1)x2。自然此處可以取為x3或x4等,但此處取值為x2已滿足需要。再根據dl=Δl1+Δl2+Δl3可計算出系數x的值,繼而求出Δk1和Δk2的值。

圖5 線性非線性亮度對比曲線圖
如圖5,以增加亮度dl為例,三段式折線圖是非線性方式下的亮度變化曲線,二段式折線圖是線性方式下的亮度變化曲線,在[0,k1)區域中,線性方式的亮度變化會比非線性的方式變化劇烈,但在[k1,k2]區域,線性方式的亮度變化反而比非線性的方式變化平緩。為了平衡兩者的影響,本文中取線性、非線性各自占一半的比例以協調兩者的關系。由計算獲得的最終Δk1和Δk2值以及不同亮度區域內的不一樣的亮度計算方法,替換整幅圖像中像素點的H、S、L的值,達到染色的最終結果。

圖6 染色效果及對應的色塊
本文將人臉檢測與發型匹配相結合,根據檢測得到特征點與原發型圖的特征點相匹配,實現發型的配準。并提出一種染色算法,既能使圖像的平均亮度達到預期的目標,又能保留原發型的亮度變化情況,使發型達到一種有層次感的染色效果,實驗證明效果較好。但對于有較大偏轉角度的臉部圖像,檢測和配準的效果會下降,此外背景過于復雜或者有強烈的側光等因素也會影響到檢測結果,這是下一步亟待研究的問題。
[1] 梁路宏,艾海舟,徐光佑.人臉檢測研究綜述.計算機學報,2002,25(5):449~456
[2] 劉海,朱小平.一種人臉檢測方法[J].計算機系統應用,2010年,19(7):210~212
[3] 徐來,周德龍.人眼檢測技術的方法研究[J].計算機系統應用,2010(06):226~232
[4] 徐鋒,趙懷勛,涂強.基于膚色檢測和人眼定位的人臉檢測方法[J],計算機系統應用;2010,19(2):177~179
[5] 顧華,蘇光大,杜成.人臉識別中的眼角定位和預處理[A].2003年中國智能自動化會議論文集(上冊)[C],2003
Dye Hair Simulation and Hairstyle Registration Based on Face Detection
ZHANG Fan-fan
(College of Computer Science,Sichuan University,Chengdu 610065)
Proposes the face detection for the automatic registration of hair and hair dyed algorithm.Facial feature points obtained by the gray-level projection and Susan edge detection and corners match the corresponding feature points of hair to achieve the hairstyle registration. Through the dyeing algorithm of three sections of broken line type,can make the hair color to achieve the desired goal,and tries to keep the brightness of the original hairstyle change level to keep the administrative levels feeling,natural,undistorted dyeing effect.
Face Detection;Gray-Level Projection;Corner Detection;Hair Registration;Dye Hair Simulation
1007-1423(2015)02-0058-04
10.3969/j.issn.1007-1423.2015.02.015
張璠璠(1991-),女,安徽宿州人,碩士研究生,研究方向為圖形圖像
2014-12-04
2014-12-25