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