華 容, 夏子濤, 馮 蕾
(上海應用技術大學 a.電氣與電子工程學院;b.圖書館,上海 201418)
膚色檢測算法在人臉檢測、人體追蹤、手勢識別以及人機交互接口中有著廣泛的應用[1]。目前膚色檢測算法主要是基于像素的分類方法,該方法通過每個像素的特征來區分該像素是皮膚還是非皮膚區域。在這種膚色分類方法中,研究者主要考慮兩個問題:首先是選擇什么樣的顏色空間;其次是建立什么樣的分類模型[2]。膚色檢測中采用的顏色空間有RGB、Normalized RGB、HIS、YCbCr、YUV等等,采用的分類算法有Adaboost、貝葉斯網絡、J48、MLP、樸素貝葉斯、隨機森林、徑向基函數、支持向量機等[2-3]。文獻[3]中比較了不同顏色空間下,不同的分類算法基于像素的膚色檢測算法。文獻[4]中提出了一種膚色檢測方法,該方法提出了兩個閾值,如果一個像素超過較高的閾值則該像素直接判定為膚色;如果一個像素只超過較低的閾值的膚色,而且其領域的像素超過較高的閾值,則這個像素也被判定為膚色。
文獻[4]中的不同在于其膚色檢測算法考慮到圖像的空間關系。在某些情況下,背景像素和膚色像素是完全一樣的,僅僅基于單個像素本身的信息是不能識別該像素是否為膚色區域。假如一個像素的鄰域內的像素都是被識別為膚色,則該像素有較大的概率是膚色像素;反之,如果其領域都為非膚色,而像素本身的信息支持其為膚色,則其是膚色的概率較小。
對于膚色分類算法,通過單個像素本身的信息提取的特征信息并不充分。本文提出了一種基于超像素的膚色檢測算法,通過分水嶺算法將圖像分割為成百上千的特征相似的超像素,從超像素中提取直方圖特征值進行膚色檢測。利用提取的特征值,比較了支持向量機和隨機森林算法,在試驗中取得了較好的效果。
超像素[5]指有一些紋理、顏色等特征相似的相鄰的像素構成的圖像塊。
文獻[6]中指出已有研究的超像素分割算法有分水嶺、MeanShift、SLIC算法。分水嶺算法是一種基于拓撲理論的數學形態學分割方法,該方法速度快,而且可以保證分割區域的連續性和封閉性。分水嶺算法也存在著一些缺點,無法保證超像素的個數和容易導致過分割,但是對于本文提出的膚色識別方法沒有影響。
本文為了更好地區分不同顏色的像素,采取的方式是對3個通道分別求導,然后再求3個通道的平方和的平方根。在得到該圖像的基礎上,利用分水嶺算法生成超像素,分割結果如圖1所示。

圖1 基于分水嶺的超像素分割
不同光照條件下,不同人種的膚色之間差異較大,所以膚色分布在顏色空間中分布并不是非常集中。對從不同環境和不同人種的圖片中提取的160萬個膚色像素的RGB顏色空間中的3個通道進行統計,如圖2所示。
為了能夠充分表達膚色的特征,同時又不使得特征向量的維度過多,本文采取的方式為每個顏色通道劃分8個區域。在RGB顏色空間中,針對每個顏色通道,將0~255劃分為8個區域,即[0,31]、[32,63]、依次類推直到[223,255],3個顏色通道總共24個區域。這種劃分方法在處理像素值時會很便利,將像素的通道值邏輯右移5位即可以劃分為對應的區域。

圖2 膚色像素在RGB顏色空間3個通道的統計
所以本文方法是對每個超像素中的像素值進行統計,計算24個區域的每個區域中像素的個數。由于每個超像素中像素的個數是不確定的,因此對得到統計結果進行歸一化處理,即每個超像素的統計結果除以該超像素中的全部像素個數。
支持向量機(SVM)本身是一類線性超平面分類器,由于核函數的引入,將分類的樣本映射到更多維乃至于無限維的空間中,從而使得其可以應用到非線性的分類中[7]。
定義樣本集D如下:
D={(xi,yi)|
(1)
式中:xi為第i個樣本點的特征向量;yi為i個樣本點的對應分類。
分類問題等價于如下凸優化問題:
(2)
式中:ω為特征向量對應的權重向量;b為殘差。引入Lagrange乘子α,將目標函數和條件約束融合到Lagrange函數,如下式所示:
(3)
式中,αi>0,最優解在函數的鞍點上,對于函數的鞍點處有?L/?ω和?L/?b等于零,該QP問題可以轉化為對應的對偶問題,如下式:
(4)
對于線性不可分的分類問題,考慮將樣本特征映射到更多維度的空間,但是為了避免在高維空間爆炸問題而造成的計算困難,引入了Kernels的概念。上式變為:
(5)
式中,k(xi,xj)為核函數。本文的算法采用了徑向基函數,能夠逼近任意的非線性函數,可以處理系統內的難以解析的規律性,具有良好的泛化能力,并有很快的學習收斂速度。
隨機森林算法[8](Random Decision Forests,RBF)顧名思義是有很多決策樹構成的森林,其中每一顆樹都會按一定的概率抽取一部分樣本進行分類,樹的所有節點都會隨機選擇某幾個特征進行分類。因為這種隨機性,每一顆決策樹相互之間都會存在一定的差異,最后以這些決策樹的各自不完全相似的結果投票決定最終的結果,從而確定算法的最終分類結果。
本文隨機森林的算法大致流程如下:將訓練樣本分為M份,從其中取樣N次,以取到的數據合成一個訓練集,沒有被取中的當作算法的驗證集,從而評估算法的誤差。確定樹的數目,在樹的每一節點隨機挑選少量的特征(相對所有的特征數目而言),根據這些特征分類,重復該過程,直到每棵樹完整的生長而不被減枝。
本文采用文獻[9]中的膚色數據集,該數據集的圖像是網絡上隨機下載的用來研究人體皮膚檢測方法。這些圖像是在不同的光照下,并通過不同的色彩增強方法處理得到的,數據集中還包含了正確分類標注的圖像,其中膚色像素的每個顏色通道被標記為255,而非膚色像素的每個顏色通道被標記為0。選取數據集中的兩對圖片如圖3所示。圖中:(c)為圖片(a)對應的膚色標注;(d)為圖片(b)對應的膚色標注。利用分水嶺算法在圖片及其對應的膚色標注圖像上生成超像素,得到對應的圖像,如圖4所示,作為本文中基于超像素的膚色分類方法的訓練集。
基于超像素提取的特征值,本文比較了利用隨機森林和支持向量機算法的試驗結果(采用了十折交叉驗證),如表1所示。
文獻[10]中比較不同算法以及不同顏色空間下基于像素的膚色分類算法,得出的結論是基于隨機森林的膚色分類算法的效果最好。文中采用了F-measure作為算法比較的標準,F-measure的公式:

(a)

(b)

(c)

(d)

(a) 原圖

(b) 對應膚色分類標注圖

精準率召回率支持向量機0.798 80.787 8隨機森林0.807 40.727 2
(6)
式中:β是參數;P表示精準度;R表示召回率。本文中β選擇為1,即是常用的F1-measure。
文獻[10]是基于像素的膚色分類方法,得出的結論為在IHLS顏色空間下,利用隨機森林的膚色分類算法的結果是最好的,其F-measure值為0.709 6。本文的膚色分類算法是基于超像素的直方圖統計特征的,只在RGB顏色空間中,采用了隨機森林和支持向量機驗證了算法效果,得到F-measure值都優于文獻[10]中的最高值。表2說明了本文提出的算法與文獻[10]中一些算法的比較結果。

表2 算法驗證結果F-measure的比較
從表2可以看出,基于超像素的膚色識別算法無論是應用隨機森林還是支持向量機都要優于所有的基于像素的膚色分類算法。
圖5展示了對圖4中圖片進行測試,比較了本文中利用SVM的基于超像素的膚色分類算法結果(見圖6(a))和文獻[10]中的利用隨機森林的基于像素的膚色分類算法結果(見圖6(b))。本文提出的基于超像素膚色分類算法,計算得到膚色分類結果也是基于超像素的,如圖5所示,再利用一個3×3的結構元素進行閉運算,得到最終的膚色分類圖,如6(a)所示。

圖5 基于超像素的膚色分類結果

(a) 基于超像素膚色分類

(b) 基于像素的膚色分類
考慮到以往的膚色分類算法都是基于像素,這種方法沒有考慮到像素皮膚通常集中在一個區域內,而基于超像素的膚色分類方法將同一個區域的相似像素劃分為同一個超像素,同時有可能提供一種更穩定的特征。因此本文提出了一種基于超像素的膚色識別方法,通過實驗驗證了基于超像素的膚色分類算法可以得到比基于像素的分類算法更好的分類效果。
參考文獻(References):
[1] Ruiz J, Verschae R. Skin detection using neighborhood information[C]//Automatic Face and Gesture Recognition, Proceedings. Sixth IEEE International Conference,2004:463-468.
[2] Kakumanu P, Bourbakis N. A survey of skin-color modeling and detection methods[J]. Pattern Recognition, 2007, 3(3): 1106-1122.
[3] Rehanullah K. Color based skin classification[J]. Pattern Recognition Letters, 2012, 33(2):157-163.
[4] Arpit M, Andrew Z, Philip T. Hand detection using multiple proposals[C]//Proceedings of the British Machine Vision Conference.[s.n.]:2011,75:1-11.
[5] Chen G, Zhang P, Wu Y,etal. Denoising magnetic resonance images using collaborative non-local means[J]. Neurocomputing, 2016, 177: 215-227.
[6] 王春瑤,陳俊周.超像素分割算法研究綜述[J]. 計算機應用研究, 2014,31(1):6-11.
[7] Song Y, Ling Z, Chen S,etal. Accurate segmentation of cervical cytoplasm and nuclei based on multiscale convolutional network and graph partitioning[J]. IEEE Trans on Bio-medical Engineering, 2015, 62(10): 2421-2433.
[8] Madabhushi A, Lee G. Image analysis and machine learning in digital pathology: challenges and opportunities[J]. Medical Image Analysis, 2016, 33: 170-175.
[9] Huang L. Improved non-local means algorithm for image denoising[J]. Journal of Computer & Communications, 2015, 3(4): 23-29.
[10] Choi K, Oh K. Subsampling-based acceleration of simple linear iterative clustering for superpixel segmentation[J]. Computer Vision and Image Understanding, 2016, 146: 1-8.
[11] Bergh M V D, Boix X, Roig G,etal. SEEDS: Superpixels extracted via energy-driven sampling[J]. International Journal of Computer Vision, 2015, 111(3): 298-314.
[12] 楊 洲,陳 莉,賈 建.基于超像素分割的非局部均值去噪方法[J].計算機應用研究, 2017,35(4):15-20.
[13] Bensch R, Ronneberger O. Cell segmentation and tracking in phase contrast images using graph cut with asymmetric boundary costs[C]//Proc of IEEE International Symposium on Biomedical Imaging.[s.n.]: 2015.
[14] 於 敏,于鳳芹,陳 瑩.基于相似性和統計性的超像素的圖像分割[J].計算機工程與應用,2017,53(2):177-180.
[15] Chan Sixian,Zhou Xiaolong,Zhang Zhuo,et al.Interactive multi-label image segmentation with multi-layer tumors automata[J].Acta Automatica Sinica,2017,43(10):1829-1840.