董 娜
(華北計算技術研究所,北京 100083)
基于彩色圖像的手部特征點自動識別方法
董 娜
(華北計算技術研究所,北京 100083)
手部特征點識別是手部尺寸測量的關鍵問題,本文給出了基于彩色圖像的手部特征點自動識別方法。首先,給出了提取手部輪廓的算法,基本原理是利用人體皮膚的色調特征將手部彩色圖像二值化并提取手部輪廓,其優點是圖像二值化過程在YUV空間進行,不受測量個體膚色差異、光照、遮擋等因素的影響。然后,給出了在手部輪廓線上自動識別全部 25個特征點方法,針對特征點的不同特點給出了不同的處理方法,位于指尖以及指縫末端處的特征點,使用了 DOS方法進行自動識別,其他特征點則利用統計得到的經驗公式進行計算。實驗結果說明,本文給出的算法在手部特征點的自動識別率和準確率上都已經能夠滿足手部尺寸測量的需要,并且具有較強的魯棒性,已成功應用于未成人和軍人等的手部尺寸測量系統中。
手部測量;輪廓提取;特征識別;手部特征點
手部特征點識別是手部尺寸測量和手部身份認證等的關鍵問題[1-6]。本文給出基于彩色圖像的手部特征點自動識別方法,該研究以全國未成年人和軍人等的“手部尺寸自動測量系統”[1]為背景。
由于特征點主要分布在手部的輪廓線上,手部輪廓的提取是手部測量中非常重要環節,得到手部輪廓線后,提取特征點以及計算測量項都可以在手部邊界點集序列的基礎上進行的。本文第一節給出了一種在彩色手部圖像中提取手部輪廓的方法。首先利用膚色信息將手與背景區分出來,生成二值化圖像;然后利用中值濾波器消除噪聲影響,然后,用邊界跟蹤方法得到手部邊界點集序列,從而得到手部的輪廓點集。
特征點識別是手部測量算法所面對的主要問題,本文第二節在提取手部輪廓線的基礎上,給出了在手部輪廓線上自動識別全部25個特征點方法,其中,位于指尖以及指縫末端處的特征點,由于手部輪廓在經過這些位置時方向改變顯著,使用了DOS(Difference of Slopes)[7,8]方法得到輪廓點的曲率特征曲線,然后經兩次濾波處理以及閾值分割等方法,最終得到了比較準確的特征點位置;剩余的特征點則利用手部各個位置之間的比例關系在輪廓上進行提取。
手部尺寸測量系統的輸入為兩幅標準姿態的手部彩色圖像,姿勢1為手指并攏,姿勢2為手指伸開;系統的輸出為特征點的坐標和測量項尺寸,測量項(如手長、手寬、食指長、拇指關節寬等)根據相關特征點的位置進行計算,因此系統的關鍵問題為手部特征點的識別問題,其成功率和準確程度直接影響到最終的測量結果;系統要求在兩個姿態下共識別25個特征點,其位置和分布如圖2。

圖1 系統的輸入輸出圖

圖2 特征點位置分布圖
基于彩色圖像的手部輪廓提取算法的主要步驟如下:(1)色度變換;(2)二值化;(3)中值濾波器濾波;(4)輪廓提取。考慮到手部區域與背景區域的灰度差別不明顯,若直接利用灰度信息來進行二值化會導致前景和背景區分效果不好。因此先對彩色圖像進行色度變換,利用彩色信息首先將手部從背景中分割出來并生成二值化圖像,再經濾波處理后,采用輪廓跟蹤算法提取手部輪廓點集序列,從而得到手部輪廓點集。
2.1 色度變換
通過掃描儀掃描產生的原始手部圖像如圖3(a)所示。要提取手部輪廓,首先需要將手部從背景中分割出來。

圖3 (a)原始手部圖像;(b)原始圖像的灰度圖像;(c)灰度圖像二值化
圖3(b)是圖3(a)對應的灰度圖像,采用一個合適的閾值對灰度圖像進行分割[9,10],結果如 3(c)所示。由于手部和背景的灰度差別不大,可以看到相當大一部分背景與手部沒有成功的區分開。然而在原始的彩色圖像中,用肉眼則可以比較明顯的分辨出兩者之間的差異。因此,應該考慮利用手部色彩信息進行輪廓提取。
通常的彩色圖像一般采用 RGB色彩模型來進行描述,RGB色彩模型中任何色彩都可由紅、綠、藍三原色通過不同的比例混合而成。然而,這種顏色的表示方式與人在實際中解釋顏色的方式是不一致的。人在實際中觀察一個物體時,通常是用色調、色飽和度以及亮度來描述顏色。而且,當光照和環境發生變化時,同一種顏色的RGB分量會有顯著不同,但是色調和色飽和度則不受影響。對于手部圖像而言,手內部光線強的部分與光線弱部分之間RGB分量的差異,就可能會大于它們與背景色之間RGB分量的差異,這對于手部分割非常不利。
YUV顏色空間是被廣泛應用于電視信號以及圖像、視頻壓縮領域的另外一種顏色表示方法。其三個分量中Y分量表示亮度,即所謂灰度值,U、V兩個分量描述色彩信息,分別表示色度以及飽和度。這種顏色的表示方式與人在實際中解釋顏色的方式是一致的。
YUV空間跟RGB空間之間為一種線性關系,可以互相轉換,轉換公式如下:

其中,U、V兩個分量在二維坐標平面中構成了表示色度的矢量;幅角表示色彩的色調,與光的強度無關。
為證實幅角φ有助于我們區分手部與背景,我們將圖3(a)由RGB空間變換到YUV空間并計算每一個點的幅角φ,再將φ做放縮變換映射到 RGB空間中的R分量,G和B分量均取0,生成相應的圖像如圖4所示。由此可以看到,手內部點與背景點的色調差異非常顯著,可用于手部分割。
2.2 二值化
利用手部與背景之間色調的差異,就可以進行彩色圖像的二值化。黃色人種的膚色色調相對比較固定,經驗證表明它基本落在(90,150)范圍之內。通過對圖像中的每一個點都計算其色調,然后利用上述閾值范圍進行過濾,如果落在閾值范圍之內,則將該點設為黑色,否則設為白色,得到二值化的黑白圖像如圖4(b)所示。

圖4 (a)原始圖像由RGB空間變換到YUV空間;(b)二值化得到的黑白圖像;(c)經中值濾波后的圖像
2.3 中值濾波器濾波
二值化后得到的圖像中存在明顯的椒鹽噪聲(白色背景中有許多黑點,同時手的內部有許多白點),如果不進行濾波將影響到邊界的提取。由于這類噪聲是非線性的,本文采用中值濾波器對圖像去噪。對圖4(b)使用進行中值濾波處理后的圖像如圖4(c)所示,4(b)中的噪聲已經被濾掉。
2.4 手部輪廓提取
經濾波器去噪后的二值圖像已經很好地將手部從背景中分離出來,下一步是在此圖上提取手部輪廓邊界(用有序的手部邊界點集表示)。
手部輪廓提取算法的核心思想[11,12]如下:設邊界點集為T,初始時T為空。首先從圖像中取得左上角的第一個黑點(第一行從左往右掃描得到)做為起始點,這個點一定是一個邊界點,記為點 A,如圖5所示。A的右,右下,下,左下四個相鄰點中至少有一個是它的邊界點,如圖中的點 B,將 A和B加入T。從點B開始,按右,右上,上,左上,左,左下,下,右下的順序找8個鄰域內相鄰點中的下一個不在T中的邊界點,在圖中為點C。如此繼續進行下去,依次將D、E、F、G、H、I等點加入 T,直到找到圖像最右上角的黑點結束(判斷方法為該點在第一行)。判斷一個點是不是邊界點比較容易:如果它的上下左右四個鄰居點都是黑點則不是邊界點,否則是邊界點。比如圖中的點B是邊界點,因為它的左鄰點是白點,而點p就不是邊界點。

圖5 8-鄰域輪廓跟蹤算法
最終,T中的點集即為手部輪廓序列,圖7(a)顯示出了T中全部點所構成的手部輪廓。
2.5 實驗結果及結論
本文采用彩色掃描儀得到的 25×2幅手部圖像作為實驗數據(姿勢1和2各25幅),圖像亮度有所不同。經過整個算法流程處理,47幅圖像的手部輪廓被成功識別出來,成功率為 94%。其中有 45張輪廓識別準確完整,準確率達到 95.7%。實驗結果表明該方法完全可以被實際應用。
圖6顯示了兩幅原始手部圖像實際的處理過程。第1列和第2列分別為姿勢1和姿勢2。在手部測量中利用姿勢1的圖像來得到手長、手寬等項目,因此并不需要指縫處的輪廓。圖6中的每一列的第2、3、4幅圖像分別是第1幅圖像經過色度變換及二值化、中值濾波以及輪廓提取后的結果,可以看到結果非常準確,說明本文中提出的方法是不依賴于手的姿勢的。

圖6 二幅典型手部圖像的處理過程及結果
在手部測量項目中,全部 21個測量項共需要25個特征點,某些測量項的計算使用相同的特征點。全部的特征點分布在手的兩個姿勢的圖像中,如圖2所示。自動識別時需要根據各個特征點的特點使用不同的方法進行識別。有些特征點位于整個手部的最邊緣,例如特征點7位于手的最右側;有些特征點位于指尖處的最突起處,例如特征點 3;有些特征點位于指縫的最凹陷處,例如特征點13;還有些點沒有顯著的特點,例如特征點18和22。
3.1 手腕部分的去除
由于手腕部分是在測量中不僅不需要,而且還會影響后續特征點的識別,為此需要在已得到的輪廓點集中去掉屬于手腕部分,這可以通過提取手腕部分與手掌部分的兩個連接點來完成。參見圖7(a),這兩個點具有如下特點:當邊界點在經過它們時方向改變比較顯著。取邊界上任意點與它前面第ω個點、后面第N個點形成兩條連線,若記連線之間的夾角為 α,則 α在兩個連接點處會明顯小于在手腕部分的其他點處。通過利用計算夾角的方法,分別從左上角和右上角出發,取N=20,從第21個點開始,逐一向后計算該點與它前面的第20個點以及它后面的第20個點的兩條連線的夾角,如果夾角小于了一個閾值,則認為已經到達了連接點。得到了兩個連接點后,在已經得到的邊界點集中去除掉左側連接點前面的所有點以及右側連接點后面的所有點,即完成了手腕部分的去除。圖7(b)給出了去除手腕部分后的結果。

圖7 (a)手部輪廓有序點集;(b)去除腕部的輪廓有序點集
3.2 特征點的識別
參見圖2(a),姿勢1需要提取7個特征點。其中,特征點1、2在去除手腕中已經得到,也即是手部輪廓點集的起點和終點;3、4、5、6是邊界上方向改變比較顯著的特征點,可以利用點的曲率來識別,使用曲率的好處在于可以分析手部輪廓在形狀上所具有的特征信息,同時不需要旋轉手部使其對準坐標系,我們采用 DOS方法[6,7]來發現曲率最大的點。參見圖8,DOS方法步驟如下:在任意點處,取前后兩個大小均為ω的向量,計算它們之間的夾角θ。即:取這個點的前面第ω個點與后面第ω個點,分別與該點組成2個向量v1和v2,則v1和 v2的夾角:

取ω=20,從第ω個點開始,依次對手部輪廓點集中的每一個點計算其θ角的值,得到一個θ值的序列,以輪廓點的序號為橫坐標,以點的θ值為縱坐標,得到的手部輪廓曲率圖,參見圖9。

圖8 計算夾角θ的方法
理想情況下,輪廓曲率圖中每一個尖銳的突起處就是手部邊緣方向改變最顯著的點,它們要么是指尖,要么是兩個手指指縫處點。但是實際情況是:(1)輪廓曲率圖可能存在著兩個連續的尖銳突起,這是由于指縫處在兩個手指末端都有方向改變顯著的位置;(2)由于噪聲的影響存在許多小突起。
可以通過濾波來處理上述兩類噪聲。(1)首先選用核(kernel)為2ω的高斯濾波器來做一次濾波,它能夠平滑圖像中突起處的波形(但是連續的突起情況仍然是存在的),還能夠消除圖像中平緩部分的噪聲波動,參見圖10。(2)使用均值濾波器對經高斯濾波處理后的θ值序列再進行一次濾波,此時圖像已經達到理想要求,參見圖11。
由于已經做過兩次濾波處理,如果這時直接用尖峰點作為特征點就可能會帶來偏差,因為此時的尖峰點的值已經不是真實的θ值,需要進行修正。一種可取的方法是對θ選取一個適當的閾值來分割圖像,這樣圖像中的每個突起部分都會被截出左右2個交點,最終用這兩個點的中點作為實際的特征點。這個過程比直接用尖峰點準確,過程的示意圖可以參照圖12。

圖9 用DOS方法得到的輪廓曲率圖

圖10 高斯濾波后的輪廓曲率圖

圖11 均值濾波后的輪廓曲率圖

圖12 經閾值截斷的手部輪廓曲率圖
依照上述步驟,姿勢1的3~5三個特征點和姿勢 2的 8~16九個特征點都是位于指尖或指縫末端的,可以通過DOS方法得到,如圖13所示。
在圖13的姿勢1中,中指和無名指之間指縫處的末端點(特征點 6)并沒有被算法識別出來。這是因為姿勢1中除拇指外的其他四指過于并攏,輪廓提取算法不能識別指縫為手部輪廓,從而在得到的手部輪廓中,除拇指外的四個手指的輪廓被連在一起。參見圖13中藍線表示的識別出的手部輪廓線。

圖13 使用DOS方法得到的特征點
特征點6的計算可以采用如下方法:由于兩個姿勢的手部圖像來自同一只手,中指的形狀在兩幅圖像中應該是一樣的,從而中指和無名指之間指縫處的末端點與中指指尖點的相對位置應該是不變的。也就是說,姿勢1中特征點6與5的相對位置,與姿勢2中特征點13與12的相對位置是相同的。這樣,從姿勢2中識別特征點12和13后,計算出它們之間的相對位移,然后即可從姿勢1中根據已識別的特征點5得到特征點6的位置。
姿勢1中的特征點7(尺側掌骨點),可以通過掃描該圖像最右點得到。
對于姿勢2中特征點17、18和19,由于手部輪廓在經過這三個點處并沒有顯著的彎曲,因此采用DOS方法不能識別這三個點。此三個點可以根據統計學方法給出的經驗公式來求。每根手指的指尖點到左右兩個指縫末端點的輪廓分別具有一個外側面(大拇指側)和一個內側面(小拇指側),經大量人體數據統計,拇指、食指和小指的根部外側面長度比內側面長度長15%左右。基于這個特性,假設特征點i的位置用iP表示,在姿勢2的輪廓點集中,拇指根部外側特征點17可以通過拇指的指尖點(特征點8)和拇指內側的指縫處末端點(特征點9)來計算:

同理,食指和小指的根部外側特征點 18與 19也可以得到。
剩下的 6個特征點 20~25跟特征點 17、18和19有類似的特點,即它們都是手指關節處褶紋的端點,除此之外沒有其它顯著的特征。因此同樣也只有尋找特殊的方法以近似的得到它們的位置。觀察拇指可以發現,它被關節處的褶皺分成了上下兩個部分,我們把它們近似的看作是等長的;同理食指被兩個關節分割成近似等長的三段。首先,將拇指上的特征點8、9以及17連接成一個三角形,特征點9與特征點17這條邊上的中點,與特征點8的連線構成了三角形的一條中線。取這條中線上的中點做垂線,與拇指兩側的輪廓都必定有一個交點,則取這兩個交點分別作為特征點 20和特征點 21,如圖14所示。同理,食指上特征點10、11以及18也組成了一個三角形,取它中線上的1/3處和2/3處分別做垂線,與食指兩側輪廓的交點分別作為特征點22、23以及特征點24和25。

圖14 特征點20-25的識別方法
經過上述以不同方法組成的整個特征點識別流程的處理后,兩幅圖像中得到的全部特征點可以在圖20中清楚的看到。從肉眼來判斷識別的結果是相當準確的。

圖15 全部25個特征點的識別結果
我們取來自 50個人的兩個姿勢的手部圖像共100幅圖像作為實驗數據集,有96幅圖像的輪廓提取成功。
由于特征點識別的前提條件是具有完整且準確的手部輪廓數據,因此我們只取輪廓提取成功的手部圖像的輪廓點集來進行特征點識別,96幅圖像的全部特征點均被成功識別出來。因此特征點識別算法的成功率為100%。其中,7幅圖像中含有識別不準確(超出誤差允許范圍)的特征點,均為手指自然伸展姿勢的圖像。若以特征點為單位,識別的特征點總數為1200個(7*48+18*48),其中被準確識別(在誤差允許范圍之內)的有1178個,因此特征點識別算法的準確率為98.17%。
分析算法沒有準確識別的22個特征點時發現,它們均是使用統計學方式得到的,即來自特征點17-25。這說明采用曲率特征曲線的方法是非常準確的,而由于基于統計學的方法本身就來自于對大量數據的統計,因此雖然多數情況下能夠比較準確,但因不同人的手的形狀形存在差異,基于統計學的方法不可能保證全部準確。
從實驗結果可以看到,整個手部特征點識別算法在成功率(識別率)和準確率上都已經能夠滿足實際的需要,因此被手部尺寸測量系統所采用。
本文采用基于特征方法和統計相結合的方法來自動識別手部特征點。在將來的工作中可以考慮采用基于模板變形和匹配等方法來提高特征點 17-25的識別率。
[1]羅仕鑒, 朱上上, 孫守遷.人體測量技術的現狀與發展趨勢[J].人類工效學, 2002, 8(2): 31-34.Luo Shijian, Zhu Shangshang, Sun Shouqian.The Actuality and Trend of Anthropometry[J].Chinese Ergonomics, 2002, 8(2): 31-34.
[2]張錚, 王艷平, 薛桂香.數字圖像處理與機器視覺[M].北京: 人民郵電出版社, 2010.
[3]鞠里.基于彩色圖像的手部測量系統的研究與實現[D].北京航空航天大學, 2004.
[4]Comaniciu D., Meer P.Robust analysis of feature spaces: Color image segmentation.In: Proc.of the IEEE Conf.on Computer Vision and Pattern Recognition (CVPR).1997, 750-755.
[5]Sanchez Reillo R., Sanchez-Avila C., Gonzalez-Marcos A.Biometric Identification Through Hand Geometry Measurements[J].IEEE Trans, PAMI, 2000, 22(10): 1168-117.
[6]Jain A., Arun Ross.A Prototype Hand Geometry based Verification System.Proc.of 2nd Inter.Conf.on Audio and Video based Biom.Person Auth: AVBPA, 1999, 166-171.
[7]O’Gorman L.Curvilinear Feature Detection from Curvature Estimation.Proceedings of the 9th International conference on Pattern Recognition, 1988, 1116-1119.
[8]Guilherme Boreki, Alessandro Zimmer.Hand Geometry: A New Approach for Feature Extraction.Fourth IEEE Workshop on Automatic Identification advanced Technologies, 2005, 149-154.
[9]楊達, 王孝通, 徐冠雷, 等.一種基于圖像分割和圖像拼接技術的全天空云量估計方法[J].新型工業化, 2014, 4(8): 15-21.
[10]吳進, 宋驍, 張金煥.霧天退化圖像的增強技術研究[J].新型工業化, 2014, 4(2): 39-44.
[11]吉亞泰.基于DSP的圖像采集與處理系統的研究與設計[J].軟件, 2013, 34(2): 22-25.
[12]鐘彩.邊緣檢測算法在圖像預處理中的應用[J].軟件, 2013, 34(1): 158-159.
Automatic Identification of Hand Feature Points on Color Images
DONG Na
(CETC 15 Institute, Beijing 100083, China)
Hand feature points identification is a key problem of hand size measurement.This paper provides a novel method to automatically identify hand feature points.First, an algorithm of hand contour extraction is presented in this paper, which uses the skin hue to binarize the hand color image and extracts the hand contour in YUV color space.The advantage of this approach is that the image binarization process will not be affected by individual differences of hand color, ill-lumination and partial occlusion of light.Then, this paper provides an approach to automatically identify all 25 hand feature points from the hand contour.This paper gives two types of processing methods to identify different feature points: (1) The feature points located on finger tips and finger webs are identified with the DOS method; (2) other feature points are computed with statistical formulas.The results show that the algorithm provided in this paper could not only meet the requirements of hand size measurement system both in recognition rate and in precision, but also possess strong robustness.It has been applied successfully in the hand size measurement systems of non-adults and soldiers.
Hand measurement; Contour extraction; Feature recognition; Hand feature points
TP391.4
A
10.3969/j.issn.1003-6970.2017.03.020
董娜,女,(1983-),工程師,主要從事研究方向為計算機圖像處理。
本文著錄格式:董娜.基于彩色圖像的手部特征點自動識別方法[J].軟件,2017,38(3):97-103