蔡祖洪
(杭州電子科技大學(xué)智能與軟件研究所,浙江杭州310018)
傳統(tǒng)的人機交互設(shè)備主要是鍵盤、鼠標、按鈕、觸摸屏等接觸式設(shè)備,為了擺脫傳統(tǒng)人機交互設(shè)備的局限性,人們利用計算機視覺技術(shù),通過手指運動跟蹤和人手的形態(tài)檢測來實現(xiàn)非接觸式的人機交互[1]。目前,很多指尖檢測方法對硬件裝置都有一些約束條件,比如人為地將圖像序列采集區(qū)域的背景設(shè)置成單一簡單背景,或是假設(shè)系統(tǒng)采集到的圖像序列中除了運動人手外無其它運動信息[2],或是假設(shè)人手與攝像頭的距離范圍固定[3],然而實際人機交互中由于背景的復(fù)雜性以及運動前景的動態(tài)多樣性,使得上述方法無法適應(yīng)實際場景。本文給出的指尖檢測方法綜合考慮多種因素,能有效準確得從多種運動前景信息中提取出感興趣運動前景區(qū)域,再進行指尖檢測,同時該方法也能有效的判斷場景中有無指尖存在。
本文用于指尖檢測的硬件裝置有一臺普通的PC和一個攝像頭組成,整個系統(tǒng)的算法流程框圖如圖1所示。整個系統(tǒng)由4個大部分組成:圖像序列的采集、感興趣運動前景提取、運動人手指尖的檢測和檢測結(jié)果的輸出。
本文采用基于混合高斯模型(Gaussian Mixture Model,GMM)的背景建模法提取運動前景。GMM算法的主要思想是:對于緩慢變化的背景,其圖像中每一個象素可以通過多個高斯分布的加權(quán)和來描述,將獲取的新圖像中每一個象素點與其對應(yīng)的背景模型進行匹配,從而判斷該點屬于前景還是背景,同時更新背景模型參數(shù)。本文中GMM算法的高斯模型數(shù)為3,采用文獻4的方法對高斯模型的參數(shù)進行更新。
圖1 系統(tǒng)算法流程框圖
GMM算法提取的前景會包含有所有運動信息,包括人臉的輕微抖動,手臂、衣服等的運動信息,指尖檢測中感興趣的運動前景是運動的人手,由于人手具有膚色特征,因此本文提出GMM結(jié)合膚色分割的方法,即將GMM提取的前景二值圖像與膚色分割提取的膚色二值圖像做邏輯與操作,這樣就可以過濾掉所有與膚色無關(guān)的運動前景。過濾后的運動前景中會有一些臉部運動區(qū)域以及由于光照等造成的噪聲區(qū)域,在人機交互的實際場景中,指尖的運動在圖像中應(yīng)該最為明顯,因此包含有指尖的圖像區(qū)域在該二值圖中的區(qū)域面積應(yīng)該最大?;谶@樣一個事實,在過濾后的運動前景二值圖像中尋找出閉合區(qū)域面積最大的的區(qū)域就是感興趣的運動前景區(qū)域,即包含有指尖的二值圖像區(qū)域。
綜上所述,感興趣運動前景區(qū)域提取的算法描述如下:
(1)采集圖像序列;
(2)混合高斯建模提取所有運動前景,得到二值圖像定義為FrImg;
(3)在YCbCr顏色空間中進行膚色分割,得到二值圖像定義為SkinSegmentImg;
(4)做圖像邏輯與運算過濾掉與膚色無關(guān)的運動前景信息;
(5)計算FrSkinImg中面積最大的閉合區(qū)域并去除其它區(qū)域得到感興趣運動前景的二值圖像,定義為ROIFrImg。
感興趣運動前景提取算法的結(jié)果如圖2所示,圖2(a)為GMM算法提取的運動前景圖像,圖2(b)為膚色分割得到的二值圖像,圖2(c)為與膚色有關(guān)的運動前景二值圖像,圖2(d)為感興趣運動前景二值圖像。
圖2 感興趣運動前景提取算法的結(jié)果
本文指尖檢測方法只考慮圖像中只存在單指尖情況,充分利用指尖輪廓的幾何特征來檢測指尖,如輪廓曲率、輪廓點質(zhì)心距、手指輪廓的整體幾何形狀等。指尖檢測算法描述如下。
(1)提取感興趣運動前景圖像的輪廓,由于前述操作的不理想,會造成輪廓鋸齒、突變等,因此以10個點為間隔對提取的輪廓等間隔采樣,使得采樣后輪廓點變得比較光滑,同時可減少后續(xù)計算的計算量。設(shè)采樣后的輪廓點序列為:P={P0,P1,…,Pn-1}。
(2)K曲率等價測度值計算。曲率可以反應(yīng)輪廓上一個點的彎曲程度,可以通過計算兩個向量的點積得到兩向量夾角的余弦值來間接的衡量曲率的大小[1]。
為了突出指尖點與其他輪廓點的曲率的不同,本文定義了另外一種衡量曲率的測度值,將該值定義為(Pi)。
(3)輪廓點質(zhì)心距計算。首先計算輪廓點序列P的質(zhì)心位置Pcentroid,再計算每個輪廓點到質(zhì)心點的歐式距離,定義為 D={D0,D1,…,Dn-1}。
(4)指尖檢測閾值的計算。實際圖像中提取的人手輪廓可能同時包含幾個彎曲度較大的點,因此僅用曲率檢測指尖可能會造成誤檢測,為了克服曲率檢測的這種不足,本文利用曲率測度值結(jié)合輪廓點質(zhì)心距來檢測指尖,設(shè)檢測指尖的閾值序列為T={T0,T1,…,Tn-1}。
(5)提取指尖檢測閾值序列的極大值所對應(yīng)的輪廓點,定義為PTMAX。
(6)判斷PTMAX是否為指尖。手指輪廓形狀可看作由兩條近似平行的直線和一條有弧度的曲線構(gòu)成,基于這一幾何特征來判斷檢測閾值極大值點是否為指尖。首先以該點開始分別在逆時針和順時針方向選擇3個采樣過的輪廓點構(gòu)成3對測試點,然后分別計算這3對測試點的距離方差。經(jīng)過大量實驗后將該距離方差的閾值定為20,若該點檢測閾值滿足式(5),則判定該點位指尖點,如果不滿足則說明該圖像中無指尖。
指尖檢測算法的結(jié)果如圖3所示,其中圖3(a)為感興趣運動前景圖像,圖3(b)為人手輪廓圖像,圖3(c)為采樣后的輪廓點圖像,圖3(d)為指尖檢測結(jié)果。
圖3 指尖檢測算法的結(jié)果
本文算法的實現(xiàn)使用的計算機硬件配置為CPU酷睿雙核2.8GHz,2GB內(nèi)存,顯卡是ATI Radeon HD3450,攝像頭為普通網(wǎng)絡(luò)攝像頭,分辨率為640×480,15fps。整個指尖檢測方法的結(jié)果如圖4所示。經(jīng)過大量的實驗表明本文提出的算法能適應(yīng)各種實際背景以及動態(tài)前景,極少誤檢測或誤判。
圖4 指尖檢測算法的結(jié)果
本文提出了一種能適應(yīng)復(fù)雜背景以及復(fù)雜運動前景的指尖檢測方法,能提取出感興趣運動前景區(qū)域,使得基于視覺的人機交互應(yīng)用中不再需要人為設(shè)定背景與前景約束,同時該方法也能較為準確的檢測指尖位置以及判斷有無指尖。本文的方法主要應(yīng)用在二維空間、單指尖的交互場景中,而更自然的人機交互要求實現(xiàn)三維空間、多指尖的運動軌跡檢測,這些需進一步研究。
[1]趙永峰,王毅剛.采用手指的三維人機交互方法[J].微電子學(xué)與計算機,2009,26(6):21-24.
[2]郭康德,張明敏,孫超,等.基于視覺技術(shù)的三維指尖跟蹤方法[J].計算機研究與發(fā)展,2010,47(6):1 013-1 019.
[3]梅萍華.基于手勢的人機交互和指尖檢測算法的研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2010:20-21.
[4]KaewTrakulPong P,Bowden R.An Improved Adaptive Background Mixture Model for Realtime Tracking with Shadow Detection[C].Kingston upon Thames:The 2nd European Workshop on Advanced Video-based Surveillance Systems,2001:1-5.
[5]Oka K,Sato Y,Koike H.Real-time Tracking of Multiple Fingertips and Gesture Recognition for Augumented Desk Interface System[C].Washington D C:Proceeding of the 5th IEEE Intl Conf on Automatic Face and Gesture Recognition,2002:411-416.