汪嘉明,趙發友
(上海大學理學院,上海200444)
人臉檢測相關研究始于20世紀60年代末期,主要是利用人臉的幾何特征進行檢測,這類方法簡單易行,但是很容易丟失人臉的有用信息[1]。人臉檢測的方法主要包括基于特征的方法[2]、基于知識的方法[3]、基于模板匹配的方法、基于統計學習的方法[4]。基于特征的方法是提取人臉面部膚色、紋理等不變特征來對輸入圖像進行人臉檢測;基于知識的方法利用先驗知識根據眼睛、鼻子、嘴巴等器官的特征和空間位置來檢測人臉;基于模板匹配的方法關鍵是建立標準的模板,用模板來刻畫人臉的面部特征,計算圖像中子窗口和標準人臉模板之間的相似性,根據相似性判別輸入圖像中是否存在人臉;基于統計的方法則將人臉看作一個整體的模式,從統計的觀點通過大量人臉圖像樣本構造人臉模式空間,根據相似度來判斷人臉是否存在。
在圖像馬賽克研究領域,研究人員提出過許多生成不規則分塊圖像馬賽克的方法,突破了長方形圖像分塊單元的局限。Hausner采用質心Voronoi圖以及從用戶指定輪廓計算得出的距離場方法生成馬賽克圖像分塊,并用均一顏色對每個分塊進行填充,從而模擬古典裝飾馬賽克效果[5]。隨后Dobashi等擴展了Haeberli的想法,將圖像特征邊緣信息加入Voronoi圖生成過程中,從而大大提高了生成圖像馬賽克結果的質量[6]。最近Orchard和Kaplan提出一種“cut.out”圖像馬賽克,他們提取原圖像中各個不同部分組成圖像數據庫,然后采用數據庫中的圖像表現源圖像[7]。Liu等針對馬賽克生成問題,設計一個全局能量優化框架用于生成圖像馬賽克[8]。現在高清攝像頭獲取的靜態圖像或者視頻中可以清楚看到人臉部信息,為保護個人隱私,在公開相關信息時需要進行馬賽克處理隱藏人臉部分。人臉檢測是實現人臉馬賽克的第一環節,因此,研究實現高效的人臉檢測算法和人臉馬賽克處理方法是十分重要的。
人臉馬賽克需要先進行人臉檢測,人臉檢測效果直接影響人臉馬賽克處理。本文人臉馬賽克方法主要分為3個模塊:圖像預處理、人臉檢測、人臉馬賽克處理。
在圖像與視頻采集、傳輸、存儲過程中,由于外部環境等因素的影響,不可避免地存在噪聲問題,這會嚴重影響后續的人臉檢測效果。預處理的目的就是去除圖像中的噪聲,強化圖像中的有用信息,提高圖像的質量,使人臉檢測更精確。圖像預處理技術現在發展得比較成熟[9],主要步驟如圖1所示。

圖1 預處理流程
鑒于圖像像素在空間上的高度相關性,本文采用高斯濾波方法去除圖像中的噪聲。高斯濾波的優點在于其線性特征,它能有效地過濾噪聲、平滑圖像。高斯濾波的原理與均值濾波類似,輸出濾波器窗口內像素的均值。但均值濾波的模板系數都是1,而高斯模板系數隨著距中心距離的增大而減小。這樣相比于均值濾波,圖像經高斯濾波處理后,圖像更加清晰,并使得圖像細節部分能夠得到有效保護。圖像縮放使用雙線性插值法,保證像素點大小在未經改變的基礎上,對原圖像進行處理,并采用直方圖均衡化的方法對圖像進行非線性拉伸,使得峰頂對比度增強,谷底對比度減弱。在所要求的灰度范圍內,對原始圖像灰度進行映射與變換,降低光源的影響,提高人臉檢測效率。
研究基于膚色的人臉檢測技術需要選取膚色顏色空間和建立膚色模型。由于目前硬件設備采集的彩色圖象都是在RGB色彩空間,但RGB彩色空間不適合膚色上的差異,因此需要將RGB色彩空間轉化為YCbCr色彩空間。YCbCr色彩空間是亮度和色度分離的一種色彩空間,適用于膚色在色度上的差異遠小于亮度上差異的特點,有利于將膚色區域的亮、色分離。RGB色彩空間可以根據它們之間的關系式直接轉換為YCbCr色彩空間,相關關系參見文獻[10]。
當實現圖像色彩空間的轉換后,建立高斯膚色模型。由于高斯膚色模型具有統計學意義,可認為符合正態分布的隨機樣本也符合高斯模型。高斯型函數:

其中,Cb和Cr分別表示藍色和紅色的濃度偏移量成份,x=[Cb,Cr]T為樣本像素在YCbCr空間的值;m=為YCbCr空間的樣本均值;為膚色相似度的2×2協方差矩陣[11]。
將樣本的每一個點在YCbCr空間上的值帶入高斯函數,令第i個點相似度值為

因為S(i)的范圍為[0,255],因此根據膚色相似度所對應的值可以確認膚色。
這樣,通過高斯膚色模型,對每一個像素點進行膚色相似度判斷,就產生以膚色點為白、非膚色點為黑的黑白區域。再對黑白圖像進行形態學處理,將面部區域聯通起來。但是通過膚色區域定位操作就能正確標記出人臉區域是不夠的,在研究中發現,不同人的五官位置存在一定的共性。因此,通過檢測臉部眼、鼻子、嘴巴等五官來確定是否是臉部區域,對顯示為白色的面部進行加框,即檢測到人臉的圖片。
人臉馬賽克處理就是把檢測的人臉區域分割成小矩陣,然后按照橫向、縱向、斜向和橫縱向等4種涂抹方式把小矩陣中像素涂抹成相同像素值。對涂抹灰度值,采用相鄰點像素求平均值的方法,即

D( i,j )代表第i行第j列的像素值。
為了驗證本文方法的有效性和可行性,實驗采用主頻為2.5 GHz、操作系統為Microsoft Windows7、CPU為Inter(R)Core(TM)、處理器為i5 7 200U、4G內存的PC機,借助Matlab 2014a搭建實驗環境。驗證人臉庫是從互聯網上找出的80幅不同的含單人人臉和多人人臉圖片。圖像中單人人臉馬賽克處理相對簡單,對圖像進行預處理,然后檢測出圖像中人臉區域,最后對人臉區域馬賽克處理,效果如圖2所示。本實驗基本能成功地檢測出了人臉,檢測準確率高達96.05%,誤檢率為10.1%,檢測效果較好。利用Matlab軟件的運行計時功能,發現每一張大小為600×400的圖片完成馬賽克總耗時為18~24 s,能夠迅速地實現人臉檢測與馬賽克效果,本文算法效率高,耗時短。

圖2 部分實驗結果
圖3 給出多姿態、多表情的人臉檢測及馬賽克效果實驗結果。通過高斯膚色模型,先對每一個像素點進行膚色相似度判斷,產生以膚色點為白、非膚色點為黑的黑白區域;再利用bwlabel函數對黑白圖像進行形態學處理;最后對顯示為白色的面部進行加框,即檢測到人臉的圖片。利用imresize圖像再對圖像縮放得到馬賽克圖像,將框外黑色內容以原圖像顯現即得到打碼圖片。
在信息處理過程中,人臉檢測與人臉馬賽克意義重大。每一個人的臉都有獨一無二的面部特征,借助人臉,可確認出每一個人的信息,是行走的“身份證”。而對人臉進行打碼操作,則可有效保護個人隱私。本文利用Matlab軟件實現人臉檢測與人臉馬賽克,優點主要有3個方面。人臉檢測率高,相比于動態自適應調整Haar檢測函數閾值檢測人臉的常規方法,該方法將人臉檢測率從95.47%提高到了96.05%;利用Matlab軟件同步進行人臉檢測與馬賽克,規避了一般算法只能單獨進行檢測或馬賽克的不足,提高了效率;利用Matlab軟件,算法程序較為簡單,只需擁有基礎的編程知識并且熟識Matlab操作即可。

圖3 人臉檢測與人臉馬賽克全過程