王 偉,李 賀,姜小明
(1.重慶郵電大學 生物信息學院,重慶 400065;2.重慶郵電大學 自動化學院,重慶 400065;3.重慶郵電大學 重慶市醫用電子與信息技術工程研究中心,重慶 400065)
針對毛孔[1]的檢測,王賀等[2]提出HSV-Morph算法,利用HSV(Hue,Saturation,Value)顏色空間對采集的微距圖像進行閾值分割處理,再利用形態學運算去除干擾完成對毛孔特征點大小的檢測。但此算法在毛發油分等噪聲影響下,分割結果精度不足且會有邊緣誤差。Jae-Ho等[3]提出Otsu-KAPUA算法,利用直方圖線性擬合皮膚圖像以分離色素沉著和毛孔區域。但此算法對毛發等干擾沒有良好的魯棒性。蘇錦程等[4]基于毛孔色調特征,改進傳統大津法計算最佳毛孔分割閾值,利用閾值進行分塊分割。通過毛孔的尺寸、形狀特征,對分割后的候選目標進行毛孔篩選。文獻[5,6]針對全局面部皮膚,考慮到不同色素層上皮膚色素分布的差異,使用SURF(scale-invariant feature transform)和SIFT(speed up robust feature)算法檢測不同色素層上的皮膚特征,計算歐幾里德距離以描述不同層上相同檢測點的位置相似性,將最佳比例設置為閾值以得到最好的毛孔特征。
通過參考相關文獻,在毛發、皺紋、痤瘡、光照不均尤其是在油分的影響下,對局部皮膚圖像毛孔的判斷都不精確,因此需要對面部皮膚毛孔算法進行改進,使毛孔的檢測更為精準。
皮膚毛孔圖像是一種偏微距圖像,主要有以下特征:①分辨率高,色調一致,毛孔、毛發、皺紋以及油分等皮膚特征較為清晰;②由于油分、皺紋和光照不均勻等因素的影響,亮度不均勻;③當毛孔粗大時色調偏暗,呈現不規則圓形,毛孔細致時,與周圍皮膚顏色相近;④毛發呈現細長狀,與毛孔相連;⑤毛孔粗大常伴有皮膚油分偏大,圖像亮區較多;⑥對于面部皮膚,常有紅血絲、痤瘡及丘疹等面部發紅的癥狀表現。
在皮膚毛孔直方圖方面,如圖1(a)所示,毛孔區域與背景區域顏色相近,緊密結合,且在圖1(b)中的灰度直方圖呈現單峰狀態特征,背景和顏色差別較小,較亮的區域與較暗的區域難以分離。

圖1 局部面部圖像及直方圖
為了更好的對毛孔進行閾值分割,結合面部毛孔特點的各個顯著差異,利用濾波器進行毛發、皺紋、油分等因素的削弱。
針對皮膚的膚色特征,國內外提出了很多如色RGB、CMY、HSV的顏色空間模型[7],RGB和CMY偏向于彩色模型,將亮度飽和度等信息一起存放,難以將其分離。而HSV空間將亮度、飽和度單獨分離出來,適用于皮膚的色彩感知。毛孔和周圍的皮膚環境顏色相近,加上油光等影響因素,很難單從顏色的角度將毛孔信息分離出來[8]。而毛孔區域具有高飽和度的特征,可以利用HSV中的S空間來分離毛孔信息與背景。
針對光照不均以及油分因素給毛孔檢測帶來的影響,采用同態濾波器修正圖像。一幅圖像可以表示為照射成分和反射成分的乘積,使用同態濾波可以更好地控制照射成分和反射成分,達到修正不均勻光照及油分過大的作用,并銳化毛孔邊緣。
由于人臉皮膚紅血絲分布較廣,且常伴有痤瘡、痘印及丘疹等癥狀,在分割時會隱藏很多毛孔細節,導致毛孔分割精確度不高。經研究發現,毛孔信息在皮膚的黑色素層,而紅血絲、痤瘡等分布在皮膚的血色素層上。皮膚的表皮層中蘊含著大量的黑色素,真皮層中蘊含著大量的血紅蛋白。當入射光照在皮膚上,黑色素和血紅蛋白的反射決定了皮膚呈現的顏色,而數字圖像是由R、G、B三通道組成,3個通道的值反映了物體表面的光反射入鏡頭的程度。通過構建數字像素和色素的數學模型,獨立成分分析(ICA)把皮膚分為紅色素層和血色素層[9]篩選毛孔細節信息。
對于毛發噪聲的削減,提取S空間下的高頻和低頻成分,經過低通濾波后保留了毛孔信息的低頻成分,再通過高斯高通濾波和高頻強調濾波計算毛孔信息的高頻成分。此種方式可以有效削弱毛發對毛孔分割的影響。
綜上分析,為了有效解決毛發、皺紋、皮膚油分、光照不均以及皮膚紅血絲導致的分割精度差問題,設計出ICA-Homo濾波器組。ICA-Homo濾波器組是進行預處理的工作,如圖2所示表示濾波器完整過程。輸入圖像I(x,y)在S空間同態濾波(homomorphic filter)后使用巴特沃斯低通濾波器(BLPF)進行低通濾波得到低頻成分r(x,y)。同時對輸入圖像進行ICA處理分離出皮膚圖像的黑色素層,把分離出來的黑色素層低通濾波處理得到低頻成分l(x,y)。

圖2 ICA-Homo濾波器組
低頻成分l(x,y)經過高斯高通濾波(GHPF)的多次迭代,把迭代的結果進行高頻強調(HFEF)得到高頻成分h(x,y)。
針對皮膚毛孔的特征與文獻算法的不足,本文提出一種針對面部局部皮膚圖像的毛孔檢測算法。
(1)預處理:針對局部面部皮膚圖像設計了一個ICA-Homo濾波器組,由于在飽和度S空間下,毛孔區域與普通區域信息差異較大,該濾波器組首先在HSV空間下分離S空間,進行同態濾波,以消除光照不均帶來的影響。為了保證毛孔細節不被紅血絲和丘疹、痤瘡等因素等影響,利用ICA分離出原皮膚圖像的黑色素成分,進行低通濾波得到低頻成分。同態濾波后的圖像進行低通濾波和高通濾波,以提取毛孔信息的低頻和高頻成分,消除毛發、皺紋等其它因素的影響。
(2)閾值分割:對提取的低頻成分和高頻成分進行分割。針對熵值法容易出現背景誤判、迭代法的初始閾值難以確定的問題,提出以最大熵值法和迭代法相結合的分割方式。
(3)邏輯運算:對閾值分割后的低頻和高頻信息進行邏輯運算,保證分割結果的全面性。
步驟1分離S空間。HSV將亮度、飽和度單獨分離,適用于皮膚的色彩感知。其可以表示為一個圓錐體空間模型,飽和度S表示半徑,取值范圍是0-1,越接近1則表示越飽和;亮度V表示縱軸,取值為0-1,越接近1顏色越亮;色調H為角度。底面圓所在的平面對應著亮度為1,繞V軸的角度表示色調信息,紅、綠、藍三原色分別對應0度、120度和240度
(1)
(2)
利用毛孔的高飽和度特征,分離S空間的方式來分離毛孔和復雜的背景信息。采集到的面部圖像I(x,y)為RGB類型,按式(1)、式(2)轉化為HSV類型,并單獨分離出S空間Is(x,y)。
步驟2同態濾波修正。為了減少光照不均以及油分因素給檢測帶來的影響,采用同態濾波器修正圖像。皮膚圖像可以表示為照射成分和反射成分的乘積,使用同態濾波可以更好地控制照射成分和反射成分[10]。對輸入的Is(x,y)取自然對數后進行傅里葉變換(DFT)得到F(u,v)。把F(u,v)代入如式(3)所示的同態濾波函數Hh(u,v)
Hh(u,v) =(γH-γL)[1-e-w[D2(u,v)/D02]] +γL
(3)
式中:γL和γH是濾波器的過渡區間,常數w控制函數邊坡的銳利度,D(u,v)是頻率域中點(u,v)到頻率矩形中心的距離。Hh(u,v)再經過DFT的逆變換和指數運算Exp輸出同態濾波后的圖像g(x,y)。
通過濾波器函數可以用不同的可控方式改變傅里葉變換的低頻和高頻,以便更好地控制照射反射成分,達到修正不均勻光照,銳化毛孔邊緣的作用。如圖3所示,對面部毛孔圖像S空間分離后進行同態濾波的修正,從圖3(b)可以看出毛孔邊緣的細節得到強化,光照的不均勻也得到了改善。

圖3 同態濾波修正后的圖像對比
步驟3ICA分離黑色素層。由于毛孔信息會被皮膚中的紅血絲、痤瘡、痘印和丘疹等因素影響,導致不能精確識別毛孔信息。以皮膚層次結構和光學模型為基礎,首先需要構建數字圖像各通道和色素層之間的數學表達式。設皮膚色素濃度為c,色素顏色值為C;黑色素層和血紅蛋白層的色素濃度分別表示為cm、ch;v為平均光程j和吸光系數(extinction coefficient)h的乘積,如式(4)所示
(4)
p(x,y)與皮膚形狀相關,i為數字圖像R、G、B三通道,將B、G兩通道減去R通道的顏色值,公式簡化為向量表達式(5)

(5)
其中
(6)

(7)
c=[cm,ch]T
(8)
(9)
從式(5)可以看出,光密度空間顏色通道差值可以由黑色素層和血紅蛋白層表示,即式(8)中c向量,其中cm、ch相互獨立,可以通過盲源分離(blind source separation,BSS)方式來解決。利用ICA解決盲源分離的問題[11],計算分離向量Q的值,得到黑色素濃度分布為Im(x,y)。
通過圖4可以看出,圖4(a)面部圖像痤瘡嚴重,紅血絲分布較廣影響檢測毛孔的精度,而圖4(b)分離出的黑色素層,痤瘡和紅血絲已被濾除,背景較為清晰,毛孔的細節部分得到強化。

圖4 ICA分離黑色素層圖像
步驟4低頻高頻濾波。同態濾波后進行對圖像低頻部分的提取,削減毛發和皺紋等因素對分割毛孔的影響。在頻率域平滑圖像可通過衰減高頻來表示,為了更好平滑圖像采用巴特沃斯低通濾波器(BLPF)。對于S空間下的Is(x,y)和黑色素層Im(x,y)輸入傳遞函數式(10)
(10)
式中:n表示BLPF的階數,不同的階數有不同的截止頻率,截止位于原點D0處。此種濾波器可以更好地在低頻和高頻之間平滑過渡。S空間和黑色素層輸出分別為s(x,y)、l(x,y)。
經過低通濾波后保留了毛孔信息的低頻成分,再通過高斯高通濾波和高頻強調濾波計算毛孔信息的高頻成分,強化毛孔的邊緣細節。GHPF會衰減傅里葉變換低頻成分而不會擾亂高頻成分的信息。為了更好地使圖像在閾值分割后完整提取毛孔的信息,使用多次迭代方式進行GHPF的運算,進行N次迭代后,毛孔的邊界提取更為精確

(11)
利用高斯高通濾波器的結果,再進行高頻強調濾波(HFEF)。如式(11)所示,在GHPF上加了常數K1,常數K1、K2會影響最終結果的高頻比例(其中K1≥0為控制距原點的偏移量,K2≥0為控制高頻的比例)最終輸出S空間下低高頻濾波的最后結果h(x,y)。
如圖5所示,圖5(a)組所示的3張原始面部毛孔圖片,經過轉化HSV并分離S空間后如圖5(b)組所示,可以看出毛孔邊緣得到強化,修正了不均勻光照,但依舊可以看到毛發等復雜的背景因素。最終的濾波結果圖5(c)組中毛孔以外的毛發、皺紋、不均勻光照以及皮膚油分等背景因素得到有效的濾除,毛孔邊緣也有了進一步的強化。

圖5 ICA-Homo濾波器實現
對于皮膚圖像閾值分割的方式有很多種,如大律法(Otsu)、分水嶺算法、聚類算法,以及上文所提到的Otsu-KAPUA算法、HSV-Morph算法等。針對面部局部皮膚的各種特征,提出把熵值法和迭代法相結合的方式,進行毛孔圖像的分割。
利用最大熵值法分割圖像時,最佳閾值處于目標和背景兩類之間,能夠將兩類場景進行較好的分離。但針對皮膚等背景復雜的圖像,分割效果較差。毛孔與背景灰度差相差不大,熵值法容易出現背景誤判,從而造成毛孔信息的過度選擇,從而采用迭代法分割進行對熵值法的閾值的削減。
在本方法中,首先利用最大熵值法對整個圖像求出基礎的閾值Te;大律法求出背景與目標的比例作為迭代分割的初始比例,由此求出初始閾值T0;通過T0再次劃分新的背景與目標區域,迭代產生新的閾值Td,在所求閾值小于基礎閾值時,重復迭代過程,最終閾值為基礎閾值與迭代閾值的均值。由此完成對最大閾值法的收斂,解決對毛孔信息過度選擇的問題。具體過程如下描述:
步驟1在一個系統中,不同屬性提供的能量不同,熵值也不同[12]。最大熵值法選擇閾值使前景和后景的兩個灰度級分布最大,用熵值來測量信息。設u1,u2…un表示觀察到的灰度級的頻率(n代表灰度級的數量),pi表示在直方圖上特定灰度級發生的比率,如式(12)所示
(12)
假設前景區域為目標,背景全為噪聲,目標包含的灰度范圍為0,1…s,背景包含的像素點的灰度范圍為s+1,…m,由此可以得出如式(13)、式(14)所示決策目標的信息熵HO以及背景的信息熵HB

(13)

(14)
其中
(15)
(16)
(17)
則所求圖像熵的判別函數為HO+HB,最佳分割閾值滿足條件如式(18)所示
Te= arg max(HO+HB)
(18)
步驟2為了更快速地進行迭代,利用大律法(Otsu)確定初始閾值[13]。以Otsu閾值分割后的二值圖像為計算目標和背景的比例,設比例為1/N0,遍歷整個灰度圖像的像素點,尋找整個像素區域的最大值Gmax和最小值Gmin。則預分割閾值為式(19)所示
T0=(Gmax+Gmin)/N0
(19)
根據Otsu確定的預分割閾值,將圖像再次分為目標Gu與背景區域Gd,如式(20)、式(21)求出兩部分的平均灰度值,設G(i,j)為圖像(i,j)的灰度值
(20)
(21)
其中,Q(i,j)為(i,j)的權重系數,初始閾值k=0。重新定義如式(22)閾值Tdk+1
Tdk+1=(Gu+Gd)/Ni
(22)
Ni= N0+ir
(23)
循環上述過程,當Tdk=Tdk+1時結束迭代。
步驟3為解決目標與灰度差不明顯時的誤判,通過迭代法收斂最大熵的閾值,每經過一次迭代,迭代閾值會逐漸變大,直至所得閾值大于Te時迭代停止。通過式(23)執行i次運算(其中r為常數)得到Td1,Td2…Tdm(Td1,Td2…Tdm≤Te),最終閾值為式(24)所示
(24)
采用ICA-Homo中S空間經同態濾波后高頻成分h(x,y)測試改進的最大熵閾值分割算法如圖6所示。

圖6 最大熵分割改進前后對比
由圖6(b)組可以看出,在未改進前的閾值分割中,背景得到誤判,導致毛孔分割面積過大且很多被分割錯誤的毛孔,影響最終分割后毛孔的大小和數量。而改進后與改進前相比,分割較為精確,背景和目標能較好分離,毛孔細節保留完整。
在對ICA分離得到的低頻成分l(x,y)和S空間下同態濾波后的高頻成分h(x,y)分別進行閾值分割后得到低頻和高頻的二值圖像S(l)、S(h),為了能完整提取到毛孔,對閾值處理后的圖片進行邏輯或運算合并圖像
S=S(l)|S(h)
(25)
式中:S是最終邏輯運算的二值結果,以圖1(a)為例,經過本算法的毛孔結果對比如圖7所示。

圖7 毛孔分割算法結果
其中,圖7(a)為油分偏多的皮膚原始圖像,圖7(b)中的圓圈是人工毛孔的標識結果,圖7(c)是本算法閾值分割后的毛孔分割結果,圖7(d)中深灰色部分為毛孔原圖像和分割后圖像疊加結果。經閾值分割前后的對比,分割后的毛孔和大小精度與原始圖像基本吻合。為了有效量化檢測的結果,本文定義有效檢測率(EDR)、誤檢率(WDR)兩個指標
(26)
(27)
把圖7的結果代入上式求得毛孔有效檢測率為95%,誤檢率為4%,驗證了上述分析。
本文以6例不同人、不同皮膚特征的毛孔圖像來進行分割結果的對照,并設計兩個對照組。對照組1主要探討皺紋、毛發以及光照不均對分割結果的影響;對照組2主要分析油分、痤瘡等因素對分割結果的影響。對兩個對照組分別采用Otsu算法,以及上文所提到的Otsu-KAPUA算法、HSV-Morph算法以及本文算法進行毛孔分割,獲得最終對比結果。
圖8是驗證在毛發和皺紋的影響下,驗證對毛孔的分割效果,圖8A組屬于毛發較多的毛孔情況;圖8B組屬于在毛發較多的情況下,皺紋較多且光照不均勻;圖8C組為皺紋較多且深邃。下面是幾種閾值分割后的對比情況。

圖8 對照組1閾值分割結果
根據圖8對照組1閾值分割結果所示,在毛發、皺紋和光照不均的影響下,Otsu算法分割毛孔較為粗糙,受皺紋等復雜背景影響程度較大;Otsu-KAPUA算法能夠較完整的分割出毛孔,但受制于毛發的影響,對于皺紋的分割也存在問題,把大量皺紋等背景誤判為毛孔;HSV-Morph算法能夠的規避皺紋等因素,但對毛孔分割不精確,大量毛孔未被識別分割。而本文算法能夠較好進行毛孔的識別與分割,圖9量化表示毛孔分割結果。

圖9 對照組1特征分析折線圖
為了更好地分析分割結果,除了EDR和WDR之外,本文引入峰值信噪比(PSNR)和模糊系數(KBlur)作為對照參數[14]。PSNR是評價圖像的客觀標準之一,衡量圖片處理后的品質,其值大小與處理后圖片質量成正比。KBlur描述的則是圖像信息量的大小,其值的大小與分割結果質量成反比。
如圖9折線圖所示,描述每組圖片4種算法的分割結果在EDR、WDR、PSNR和KBlur的量化特征數據。折線圖左邊為主坐標軸,PSNR和KBlur的數據結果在主軸讀取;折線圖右邊為副坐標軸,EDR和WDR的數據結果在副軸讀取。如圖9(a)所示,Otsu算法誤檢率過高,圖像模糊系數也偏大,分割不明確。Otsu-KAPUA算法有效檢測率高但誤檢率也偏高;HSV-Morph算法誤檢率大于有效檢測率;本文算法在4個參數下都有較好的結果,峰值信噪比最高,模糊系數最低,有效檢測率為95%,誤檢率為5%,具有較好的性能。圖9(b)和圖9(c)特征分析情況如同圖9(a),3組圖片在本文算法下對毛孔的分割,平均有效檢測率約為95%,平均誤檢率為5%,算法在4組特征的測量下都取得了良好的效果,驗證了本文算法在毛發、皺紋和光照不均的影響下對毛孔分割的有效性。
圖10是驗證在油分和紅血絲、痤瘡等復雜背景的影響下,驗證對毛孔的分割效果,圖10A組毛孔發紅,皮膚粗糙且較為模糊;圖10B組屬于在強烈油分下毛孔細致毛發較少;圖10C組是在強烈油分下毛孔粗糙,且紅腫,伴有紅血絲和痤瘡。下面是幾種閾值分割后的對比情況。
根據圖10閾值分割結果對照組2所示,在毛孔發紅,皮膚粗糙且清晰度不高的影響下,Otsu算法分割毛 孔較為粗糙,受皺紋、油分等復雜背景影響程度較大;Otsu-KAPUA算法能夠較完整的分割出毛孔,但對油分噪聲較為敏感,在強烈油分且伴有痤瘡的毛孔信息下無法準確分割;HSV-Morph算法在強油分且毛孔細致時,大量毛孔未被分割,其它情況下,分割的信息有大量的噪聲。而本文算法能夠較好的毛孔的識別,表1~表3利用4種指標量化表示毛孔分割結果。

表1 圖10A組數據特征分析

表2 圖10B組數據特征分析

表3 圖10C組數據特征分析

圖10 對照組2閾值分割結果
由表1~表3可知,在油分較大的情況下,其它算法的有效檢測率和峰值信噪比較低,誤檢率和模糊系數較大,不能較好完成毛孔分割。本算法在油分影響下毛孔粗大毛孔細致的檢測中也能達到較高的檢測率,在毛孔發紅、粗糙且清晰度不高圖10A組和強烈油分且伴有痤瘡的圖10C組,毛孔達到全部檢測;在強油分、毛孔細致的皮膚圖10B組中,毛孔的有效檢測率也達到71.4%,驗證了本文算法在油分、痤瘡等復雜背景影響下對毛孔分割的有效性。
對兩個對照組進行分析可得,Otsu算法在噪聲干擾大且直方圖不具有顯著雙峰特征的局部面部圖像中處理的效果并不理想[15,16],分割結果較為凌亂,不能區分毛孔的具體輪廓;Otsu-KAPUA算法能夠較為清晰識別毛孔的輪廓,但易受毛發、皺紋的影響,把毛發和背景信息誤識別為毛孔;HSV-Morph算法能夠較好分離皺紋下的毛孔,但誤檢率過高,識別精度不高;本文算法在能夠在油分、毛發、皺紋、光照不均和伴有丘疹等環境下,較為精確檢測毛孔信息,具有較強的抗干擾能力。
本文以手持USB數碼顯微鏡采集的70例面部皮膚圖像作為數據集進行本算法的毛孔分割的測試,人工對圖像中毛孔的位置及數量進行標記分析。如圖11毛孔數量識別折線圖。

圖11 毛孔數量識別
折線圖所顯示的分別是毛孔人工標記的真實值數量,本算法有效檢測的毛孔數量以及算法的錯誤檢測的毛孔數量,可見真實毛孔數量與有效檢測數量相差不大,基本保持在重合狀態,錯檢的毛孔數量總體不高。通過式(26)、式(27)計算得到EDR約為96%,WDR為4.8%,通過毛孔數量折線圖和所測得的數據可以看出本文算法對毛孔檢測準確度的提高相對有效。
為了判別毛孔大小精度,更有效的對毛孔大小進行分析,需測量分割后每張面部圖片毛孔的平均直徑大小以及人工標注毛孔平均直徑大小。定義算法所測的每幅面部圖像平均毛孔直徑大小為dl,人工標注平均毛孔直徑大小為da,誤差范圍為Ed
(28)
(29)
其中,設最終處理后的二值圖像有M個待測毛孔,ND是每個毛孔塊容納的像素總數,pix是每個像素點代表的實際大小,N為圖像總數。
如圖12所示,折線圖所顯示的分別是本算法所測得算法直徑以及標注直徑,由圖像可知算法直徑和標注直徑在所測試的70例面部圖像數據集中幅度相同,重合度較高。利用計算得到EDR約為96%,WDR為4.8%,通過式(29)測得均方根誤差Ed為0.0304,綜合驗證本文算法能夠在油分、毛發、皺紋、光照不均和伴有丘疹、痤瘡的復雜背景環境的影響下有效提高毛孔數量準確度和毛孔大小精度。

圖12 毛孔大小識別
本文提出了一種針對皮膚圖像的毛孔檢測算法,構建了ICA-Homo濾波器組以及提出了改進最大熵的毛孔分割方法。在進行的對比實驗中本文算法相較于其它算法,對于毛孔分割效果顯著增強,有效消除皮膚毛發、光照不均、皺紋、皮膚油分及紅血絲、痤瘡等復雜背景因素的影響,使毛孔有效檢測率達到96%,毛孔大小誤差范圍為0.0304,提高毛孔數量準確度和毛孔大小的精度,具有較強的魯棒性。本文的主要算法主要針對于局部面部皮膚圖像,對于全局人臉毛孔分割還存在一些分割不準確問題,在今后的研究中有待于進一步的改善。