杜薇薇 瞿春柳
摘 要:介紹結合人臉檢測技術及相關圖像處理技術實現(xiàn)在3G時代移動增值業(yè)務中的一個應用[CD2]變臉。變臉首先采用Intel開源OpenCV人臉檢測確定圖像人臉的區(qū)域,然后采用獨創(chuàng)的變異Snake算法提取人臉邊緣輪廓,接著在YCbCr顏色空間對人臉膚色進行調整,使其膚色接近目標人臉膚色,最后基于數(shù)學形態(tài)學的模板邊緣羽化對人臉輪廓結合處進行邊緣羽化,很自然地把一張人臉替換成另一張人臉。
關鍵詞:人臉檢測;OpenCV;Adaboost算法;輪廓提取;Snake算法;膚色調整;邊緣羽化
中圖分類號:TP391
0 引 言
3G(3rd Generation)即是第三代移動通信技術。相對于第一代模擬制式手機(1G)和第二代GSM,TDMA等數(shù)字手機(2G),第三代手機一般地講,是指將無線通信與國際互聯(lián)網(wǎng)等多媒體通信結合的新一代移動通信系統(tǒng)。它能夠處理圖像、音樂、視頻流等多種媒體形式,提供包括網(wǎng)頁瀏覽、電話會議、電子商務等多種信息服務。為了提供這種服務,無線網(wǎng)絡必須能夠支持不同的數(shù)據(jù)傳輸速度,也就是說在室內、室外和行車的環(huán)境中能夠分別支持至少2 Mb/s,384 Kb/s和144 Kb/s的傳輸速度。它的網(wǎng)絡帶寬和應用帶寬的優(yōu)勢是顯而易見的,有效利用它的優(yōu)勢,開發(fā)一些鮮明3G特色的增值業(yè)務,是眼下許多運營商、服務提供商正在思考的問題。[JP]
在此結合人臉檢測及其相關的技術,探討并實現(xiàn)┮桓霆增值服務內容。人臉照片合成,或者簡稱為“變臉”。人們熟悉的變臉是運用在川劇藝術中塑造人物的一種特技,是揭示劇中人物內心思想感情的一種浪漫主義手法。這里說的變臉是運用現(xiàn)代計算機技術,把圖像照片中的一張人臉替換成另一張人臉的“特技”?;谶@個特技,這里將集中討論以下核心技術:
(1) 人臉檢測:識別圖像照片中的人臉位置坐標信息;
(2) 人臉輪廓提取:提取人臉輪廓參數(shù);
(3) 人臉膚色調整:使膚色接近合成對象;
(4) 人臉輪廓邊緣羽化:使邊緣接合部分自然。
1 人臉檢測
人臉檢測(Face Detection)是指在一幅圖像中確定所有人臉位置的信息,是人臉信息處理中的一項關鍵技術,也是一個非常復雜的課題。近年來,人臉檢測成為模式識別與計算機視覺領域非?;钴S的研究課題。人臉檢測的研究可以追溯到二十世紀六、七十年代,經過幾十年的曲折發(fā)展已日趨成熟。
本文采用一個Intel公司成熟的開源庫OPENCV(Intel Open Source Computer Vision Library),它是┮桓霆面向應用程序開發(fā)者的計算機視覺開發(fā)包。其中就包括了對人臉的檢測。OpenCV實現(xiàn)人臉檢測的原理是基于Adaboost算法,該算法是一種分類器算法。
基本思想是利用大量的分類能力一般的簡單分類器(Basic Classifier)通過一定的方法疊加(Boost)起來,構成一個分類能力很強的強分類器(Stage Classifier),再將若干個強分類器串聯(lián)成為分級分類器(Classifier Cascade)完成圖像搜索檢測。串聯(lián)的級數(shù)依賴于系統(tǒng)對錯誤率和識別速度的要求。這一特點非常適合實時性應用的環(huán)境。雖然有些算法很好,但是速度慢,因此就不適合系統(tǒng)的需求。
[JP2]首先,利用樣本(大約幾百幅樣本圖片)的 harr 特征進行分類器訓練,得到一個級聯(lián)的boosted分類器。訓練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢目標樣本,反例樣本指其他任意圖片,所有的樣本圖片都被歸一化為同樣的尺寸大小(例如,20×20)。[JP]
分類器訓練完以后,就可以應用于輸入圖像中的感興趣區(qū)域(與訓練樣本相同的尺寸)的檢測。檢測到目標區(qū)域分類器輸出為1,否則輸出為0。為了檢測整副圖像,可以在圖像中移動搜索窗口,檢測每一個位置來確定可能的目標。 為了搜索不同大小的目標物體,分類器被設計為可以進行尺寸改變,這樣比改變待檢圖像的尺寸大小更為有效。所以,為了在圖像中檢測未知大小的目標物體,掃描程序通常需要用不同比例大小的搜索窗口對圖片進行幾次掃描。
分類器中的“級聯(lián)”是指最終的分類器是由幾個簡單分類器級聯(lián)組成。在圖像檢測中,被檢窗口依次通過每一級分類器, 這樣在前面幾層的檢測中大部分的候選區(qū)域就被排除了,全部通過每一級分類器檢測的區(qū)域即為目標區(qū)域。
在此使用的級聯(lián)分類器也是OpenCV提供的。其使用方法如下:
flags操作方式。當前惟一可以定義的操作方式是cv[CD#*2]Haar[CD#*2]DO[CD#*2]Canny[CD#*2]Pruning。如果被設定,函數(shù)利用Canny邊緣檢測器來排除一些邊緣很少或者很多的圖像區(qū)域,因為這樣的區(qū)域一般不含被檢目標。人臉檢測中通過設定閾值使用這種方法,并因此提高了檢測速度。
min[CD#*2]size檢測窗口的最小尺寸。缺省的情況下被設為分類器訓練時采用的樣本尺寸(人臉檢測中缺省大小是20×20)。
函數(shù) cvHaarDetectObjects 使用針對某目標物體訓練的級聯(lián)分類器,在圖像中找到包含目標物體的矩形區(qū)域,并且將這些區(qū)域作為一序列的矩形框返回。函數(shù)以不同比例大小的掃描窗口對圖像進行幾次搜索。每次都要對圖像中的這些重疊區(qū)域進行檢測。有時候也會利用某些繼承(Heuristics)技術以減少分析的候選區(qū)域,例如利用Canny裁減(Prunning)方法[3]。 函數(shù)在處理和收集到候選的方框(全部通過級聯(lián)分類器各層的區(qū)域)之后,接著對這些區(qū)域進行組合并且返回一系列各個足夠大的組合中的平均矩形。調節(jié)程序中的缺省參數(shù)(scale[CD#*2]factor=1.1,min[CD#*2]neighbors=3,flags=0)用于對目標進行更精確同時也是耗時較長的進一步檢測。為了能對視頻圖像進行更快的實時檢測,參數(shù)設置通常是:scale[CD#*2]factor = 1.2,min[CD#*2]neighbors=2,ゝlags=猚v[CD#*2]Haar[CD#*2]DO[CD#*2]Canny[CD#*2]Pruning。
2 人臉輪廓提取
輪廓提取,實際是確定圖像邊緣,對圖像進行分割。人臉圖像分割作為圖像分析的重要內容之一,是目標重建、識別等問題的基礎,其目的是要將人臉圖像劃分為一些有意義的互不重疊的區(qū)域,但由于雜質、噪聲等的干擾,使得經典的圖像分割方法如邊緣檢測、閾值等往往得不到一個理想的結果。這也使得人臉圖像分割成為一個經典的難題。
近年來,主動輪廓模型(Active Contour Models)成為圖像分析領域的一個研究熱點。參量主動輪廓模型,即Snake模型[4]是一種能量曲線,通過極小化如下的能量函數(shù)來確定目標輪廓。
式中:玁是邊緣點坐標個數(shù);獷﹊nt(i)為內能函數(shù),主要是邊緣點的連續(xù)性和曲率;獷〆xt(i)為外能函數(shù),主要是圖像的梯度信息,一般可根據(jù)不同特性選擇梯度本文選擇Prewitt算子。Snake算法或Active Contour ㎝odels這類算法在給出初始的輪廓后,然后進行迭代,使輪廓沿能量降低的方向靠近,最后得到一個優(yōu)化的邊界。能量函數(shù)包括內外力兩方面,如邊界曲率和梯度。由于用戶無法估計迭代的最后結果,應用Snake 算法往往需要進行多次的交互工作。特別當目標比較復雜時,或與其他物體靠得較近時,初始的輪廓不易確定,而迭代的結果往往不能達到要求。本文采用一種變異Snake的算法,結合人臉橢圓形狀特性,對Snake算法進行分解實現(xiàn)快速而高效的人臉輪廓提取。
式中:V璱=(x璱,y璱)為第i個輪廓點;E┆玞on為連續(xù)性約束,目的是使輪廓點均勻分布;α璱為連續(xù)性約束系數(shù);E┆玞urv為曲率約束,指曲線的彎曲程度;β璱為曲率約束系數(shù)。內能最小化,是要求輪廓點盡可能均勻分布,曲線彎曲程度最小。б話憧梢愿據(jù)不同特性選擇梯度,本文選擇Prewitt算子。
另外,現(xiàn)在有些Snake算法引入形狀能量獷﹕hape來優(yōu)化能量函數(shù),比如人臉的橢圓性。
因此:
И
對Snake算法進行變異,針對人臉的橢圓特性,把形狀能量和連續(xù)性能量結合簡化。首先假定人臉滿足一個橢圓方程:
式中:a,b的取值參照人臉的坐標和眼睛的坐標推算,假定a取人眼中心距的2倍,b取a的1.25倍。得到橢圓方程后,把橢圓曲線N等分,得到N個點。И
由于這些點是在橢圓上均勻分布的,所以得到了形狀能量、連續(xù)能量和曲率能量,并保證這三個能量最小。采用Prewitt算子計算由橢圓中心所做射線的梯度,可選擇相鄰8個方向中最大的梯度射線上的梯度,即相鄰射線距離相近的點的梯度,忽略距離遠的點。將這些點連接形成輪廓線,這些點一定小于等于玁。
為了提高輪廓線的光滑性,還可以對找到的輪廓點進行最小二乘法曲線擬合,這樣找到的人臉輪廓精度就更高了。
這就是最終的輪廓線,是Snake算法的一種簡單快速的變異。
3 人臉膚色調整
顏色空間分許多種,不同應用選擇不同的顏色空間。主要有RGB,HSV,YCbCr等,選擇合適的顏色空間是處理不同的應用的關鍵。電腦顯示選擇RGB,通常處理的JPEG圖像選擇的是YCbCr。YCbCr基于人眼對顏色空間中亮度比色度更敏感來優(yōu)化劃分的。
以下是RGB和YCbCr的轉換關系:
影響圖像中人臉膚色的關鍵是光線,是外在因素。由于兩張臉的膚色因光線等因素的影響會很不一樣,所以必須調整膚色,使原圖人臉膚色和目標圖像人臉膚色基本一致。本身人臉的膚色是穩(wěn)定的,而且不同人的膚色也基本上穩(wěn)定在一個范圍內。也就是說,只要調整膚色顏色空間中的玒參量,就起到事半功倍的效果。在對CbCr進行微調,即可調整到基本一致。
為了簡化計算,應用統(tǒng)計概率的原理,計算人臉輪廓區(qū)域中膚色顏色空間YCbCr的分布,把兩者做比對調整。更簡單的做法是可以用一個線性公式調整,即把輪廓內的點按YCbCr分量累加求平均。然后比較原圖平均值和目標平均值之間的比率。最后把這個比率映射到原圖的每一個輪廓內的點,這樣膚色就基本一致了。如下式所示:
因為有的人臉圖像光線明暗分布不一致,可用化整為零的方法處理。具體講就是把輪廓內的點分區(qū)域,區(qū)域大小一般選擇把區(qū)域分割成10部分左右即可。它的算法和前面所述一致,這樣基本可以克服前面提到的一些問題。精度要求提高需要作線性插值處理或非線性插值處理。
4 人臉輪廓邊緣羽化
羽化原理是令選區(qū)內外銜接的部分虛化,起到漸變的作用從而達到自然銜接的效果。羽化值越大,虛化范圍越寬;羽化值越小,虛化范圍越窄[6]。
羽化就是要使原圖像和目標圖像銜接得比較自然即欺騙人眼,使人誤認為這不是兩個圖像拼接的,而是一個圖像。
邊緣羽化,關鍵是羽化的目標,羽化的范圍和每一個點羽化的參數(shù)。羽化的是輪廓邊緣的點,范圍為一個參數(shù)玁,就是離輪廓邊緣的距離,這個參數(shù)玁一般選擇3個點即可。就是說在輪廓邊緣3個點范圍的距離內進行羽化。這很好理解,但是求某一個點到輪廓的距離卻比較困難。
由前面的介紹可知羽化就是要漸變,在距離輪廓一定范圍內漸變,更通俗點就是逐漸過渡,讓原圖像在邊緣范圍內逐漸過渡到目標圖像。其實就是在圖像輪廓范圍內,由內向外,逐漸過渡到目標圖像。為了方便表述,把距離輪廓范圍內的距離定為負距離,距離輪廓范圍外的距離定為正距離。那么負距離上的點,原圖像顏色分量比重大,相反正距離上的點,目標圖像的顏色比重大,按照這個原理把原圖像和目標圖像進行Alpha混合,這就是邊緣羽化原理。
輪廓范圍的距離計算中,采用直接計算點到曲線的距離,其原理簡單,但計算復雜且效率不高。
膨脹和腐蝕最早出現(xiàn)在數(shù)學形態(tài)學(Mathematical Morphology)中。它是法國和德國的科學家在研究巖石結構時建立的一門學科[7]。形態(tài)學的用途主要是獲取物體拓撲和結構信息,它通過物體和結構元素相互作用的某些運算,得到物體更本質的形態(tài)。在圖像處理中的應用主要是:
(1) 利用形態(tài)學的基本運算,對圖像進行觀察和處理,從而達到改善圖像質量的目的;
(2) 描述和定義圖像的各種幾何參數(shù)和特征,如面積、周長、連通度、顆粒度、骨架和方向性等。
設有兩幅圖像B,X。若X是被處理的對象,而B是用來處理X的,則稱B為結構元素(Structure Element),又被稱作刷子。結構元素通常都是一些比較小的圖像。把結構元素B平移a后得到B璦,若B璦包含于X,記下這個a點,所有滿足上述條件的a點組成的集合稱作X被B腐蝕(Erosion)的結果。用公式表示為:E(X)={a|B璦糥}=XΘB。膨脹可以看作是腐蝕的對偶運算,其定義是:把結構元素B平移a后得到B璦,若B璦擊中X,記下這個a點[8]。所有滿足上述條件的a點組成的集合稱作X被B膨脹的結果。в霉式表示為:
邊緣羽化,其定義是:О呀峁乖素B平移a后得到B璦,記下B璦擊中X的范圍,記下這個a點。描述為,假設結構元素B是一個半徑為3的圓,圓包含點地個數(shù)為n。從處理圖像的起點開始移動,每移動一個點,就記下該點上半徑為3的圓在人臉圖像輪廓內的點的個數(shù),作為原人臉圖像獳lpha混合系數(shù)m,而n-m就是目標人臉[LL]圖像獳lpha混合系數(shù)。用公式表示如下:
式中:D(x,y)為目標圖像在點(x,y)的顏色空間像素值。S(x,y)為原圖像在點(x,y)У難丈空間像素值。
這里顏色空間可以是RGB或者YCbCr。
5 結 語
人臉檢測及其相關技術越來越成熟,應用的范圍也越來越廣泛。結合鮮明時代特征的3G環(huán)境,實現(xiàn)變臉這樣一個移動增值業(yè)務。通過變臉業(yè)務這樣一個業(yè)務,探討相關的核心技術。這些技術不僅在這個特定環(huán)境中可以延展,而且可以在其他環(huán)境中延展。
參 考 文 獻
[1]Open Source Computer Image Library Reference Manual[Z].2000.
[2]染路宏,艾海舟,徐光佑.人臉檢測研究綜述[J].計算機學報,2002(5):449[CD*2]458.
[3]張宏林.數(shù)字圖像模式識別技術及工程實踐[M].北京:人民郵電出版社,2003.
[4]Williams Donna,Shah Mubarak.A Fast Algorithm for Active Contours and Curvature Estimation[J].CVGIP:ImageUnderstanding,1992,55(1):14[CD*2]26.
[5]Vezhnevets V,Sazonov V,Andreeva A.A Survey on Pixel[CD*2]based Skin Color Detection Techniques[A].Proc.ofGRAPHICON′03[C].Moscow,2003:85[CD*2]92.
[6]丁海波,薛質,李生紅.基于HSI空間的膚色檢測方法[J].計算機應用,2004(24):210[CD*2]211.
[7]Hsu R L,Mottaleb M A,Jain A K.Face Detection in Color Images[J].IEEE Trans.on Pattern and Machine Intelligence,2002,24(5):210[CD*2]211.
[8]楊倫標,高英儀.模糊數(shù)學[CD2]原理與應用[M].廣州:華南理工大學出版社,2003.
[9] 馬桂珍,朱玲贊,段麗.基于OpenCV的視頻應用程序的開發(fā)方法[J].現(xiàn)代電子技術,2007,30(4):78[CD*2]79,88.
作者簡介
杜薇薇 女,1976年出生,北京人,碩士研究生。在中國科學技術信息研究所工作。