一種復(fù)雜環(huán)境下指尖檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖像處理與分析技術(shù)領(lǐng)域,更具體地說,涉及一種復(fù)雜環(huán)境下指尖檢 測(cè)方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的人機(jī)交互系統(tǒng)主要通過按鈕、鼠標(biāo)、鍵盤等媒介進(jìn)行人類與計(jì)算機(jī)的信息 交流,這些交互方式大多存在功能有限、占用空間大等缺點(diǎn),制約了人機(jī)交互技術(shù)的發(fā)展。 近年來,隨著計(jì)算機(jī)科學(xué)與人工智能技術(shù)的發(fā)展,人機(jī)交互逐漸趨向于自然、直觀的方式, 其中,基于計(jì)算機(jī)視覺技術(shù)的人機(jī)交互方式憑借其使用方便、靈活性高、抗噪聲能力強(qiáng)等特 點(diǎn),得到了越來越多研究人員的關(guān)注。
[0003] 作為基于計(jì)算機(jī)視覺技術(shù)的人機(jī)交互系統(tǒng)的重要組成部分,指尖檢測(cè)在手勢(shì)識(shí) 另IJ、虛擬控制等領(lǐng)域具有十分廣闊的應(yīng)用前景。早期的指尖檢測(cè)通過特殊顏料標(biāo)記或佩戴 LED燈等方式從場(chǎng)景中檢測(cè)指尖,這種方法雖然簡單,但是使用起來很不方便,只能用于某 些簡單的場(chǎng)景;其后,穿戴式數(shù)據(jù)手套的使用在一定程度上提高了指尖檢測(cè)的魯棒性,但是 其便捷性較差,同時(shí)穿戴式數(shù)據(jù)手套一般價(jià)格較高;隨著攝像頭工藝技術(shù)的發(fā)展,研究人員 開始使用一些特殊攝像頭(如Kinect)獲取特殊的場(chǎng)景信息,雖然指尖檢測(cè)效果有了明顯 提高,但是該類攝像頭普及性不高,難以推廣。與此同時(shí),有不少的研究人員提出了采用普 通攝像頭進(jìn)行指尖檢測(cè)的算法,但是這些算法大多比較簡單,無法在復(fù)雜環(huán)境下進(jìn)行人手 檢測(cè)。綜上所述,當(dāng)前采用普通攝像頭捕獲場(chǎng)景信息進(jìn)行指尖檢測(cè)依然人機(jī)手部交互系統(tǒng) 的研究趨勢(shì)。
[0004] 目前指尖檢測(cè)技術(shù)依然存在很多難題尚未解決:⑴人手是非剛性物體,具有很 高的自由度,因此無法用固定的模板來匹配不同情況下的手指;(2)不同人的手指外觀存 在差別,要精確地檢測(cè)出不同人的手指外形和姿態(tài),具有較大難度;(3)即使是同一個(gè)人的 手指,也存在細(xì)微的差別,如果無法正確識(shí)別這些細(xì)微差別,將給檢測(cè)結(jié)果帶來較大誤差;
[4] 從場(chǎng)景中分割手部區(qū)域是進(jìn)行指尖檢測(cè)的基礎(chǔ),當(dāng)環(huán)境較為復(fù)雜時(shí),手部區(qū)域的精確分 割具有較大難度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的缺點(diǎn)與不足,提供一種復(fù)雜環(huán)境下指尖檢測(cè) 方法;該指尖檢測(cè)方法不僅可有效實(shí)現(xiàn)在復(fù)雜環(huán)境下進(jìn)行手部區(qū)域的分割,而且該檢測(cè)方 法魯棒性強(qiáng),在復(fù)雜環(huán)境下人手在攝像頭前自由地運(yùn)動(dòng)時(shí)也可正確檢測(cè)指尖,從而提高指 尖檢測(cè)的精確度和有效性。
[0006] 為了達(dá)到上述目的,本發(fā)明通過下述技術(shù)方案予以實(shí)現(xiàn):一種復(fù)雜環(huán)境下指尖檢 測(cè)方法,用于對(duì)手部的指尖進(jìn)行檢測(cè);其特征在于:包括以下三個(gè)步驟:
[0007] 第一步,捕獲場(chǎng)景信息,通過計(jì)算與場(chǎng)景信息對(duì)應(yīng)的稠密光流信息并進(jìn)行二值化 預(yù)處理得到含有手部區(qū)域的場(chǎng)景圖像;再構(gòu)建膚色濾波器,對(duì)含有手部區(qū)域的場(chǎng)景圖像進(jìn) 行手部區(qū)域的分割,得到手部區(qū)域;
[0008] 第二步,采用等面積塊構(gòu)建各姿態(tài)手部區(qū)域的模型,根據(jù)手部區(qū)域的面積計(jì)算手 部區(qū)域的質(zhì)心;再對(duì)手部區(qū)域輪廓進(jìn)行采樣,計(jì)算所有輪廓采樣點(diǎn)到質(zhì)心的距離,并計(jì)算出 平均質(zhì)心距;然后根據(jù)上一輪已檢測(cè)到的指尖數(shù)目來確定擴(kuò)展質(zhì)心距,并以質(zhì)心為圓心,擴(kuò) 展質(zhì)心距為半徑進(jìn)行畫圓;最后剔除圓內(nèi)的輪廓點(diǎn)和圓上連續(xù)像素個(gè)數(shù)最多的手腕區(qū)域, 并在圓外尋找局部最大質(zhì)心距的輪廓點(diǎn),則該點(diǎn)標(biāo)記為指尖;將這一輪檢測(cè)到指尖的數(shù)目 與上一輪已檢測(cè)到的指尖數(shù)目比較,若兩者相等,則實(shí)現(xiàn)指尖的檢測(cè),否則將這一輪檢測(cè)到 指尖的數(shù)目更新為已檢測(cè)到的指尖數(shù)目,來確定擴(kuò)展質(zhì)心距并進(jìn)行畫圓,繼續(xù)指尖的檢測(cè)。
[0009] 在第一步中,所述捕獲場(chǎng)景信息,通過計(jì)算與場(chǎng)景信息對(duì)應(yīng)的稠密光流信息并進(jìn) 行二值化預(yù)處理得到含有手部區(qū)域的場(chǎng)景圖像;再構(gòu)建膚色濾波器,對(duì)含有手部區(qū)域的場(chǎng) 景圖像進(jìn)行手部區(qū)域的分割,得到手部區(qū)域是指:包括以下步驟:
[0010] (1. 1)捕獲場(chǎng)景信息,并計(jì)算與之對(duì)應(yīng)的稠密光流信息;
[0011] (1. 2)遍歷光流信息,尋找最大光流值,并利用該最大光流值,在X軸和Y軸方向?qū)?所有光流進(jìn)行正則化處理;
[0012] (1. 3)根據(jù)正則化后的光流,計(jì)算沿光流方向發(fā)生變化的區(qū)域的色調(diào)和飽和度,并 標(biāo)記不同的顏色值;
[0013] (1. 4)設(shè)定閾值,根據(jù)閾值將顏色標(biāo)記的光流變化區(qū)域轉(zhuǎn)化為二值圖像,結(jié)合邏輯 運(yùn)算和數(shù)學(xué)形態(tài)學(xué)運(yùn)算,獲得含有手部區(qū)域的場(chǎng)景圖像。
[0014] (1. 5)根據(jù)人體膚色聚類特性,構(gòu)造YCbCr膚色濾波器,剔除冗余色彩和亮度信 息;
[0015] (1. 6)對(duì)YCbCr膚色濾波器過濾后對(duì)含有手部區(qū)域的場(chǎng)景圖像的所有輪廓進(jìn)行遞 減排序,尋找最大連通區(qū)域作為手部區(qū)域,實(shí)現(xiàn)對(duì)含有手部區(qū)域的場(chǎng)景圖像進(jìn)行手部區(qū)域 的分割。
[0016] 在第二步中,所述采用等面積塊構(gòu)建各姿態(tài)手部區(qū)域的模型,來確定手部區(qū)域的 面積,以計(jì)算手部區(qū)域的質(zhì)心;再對(duì)手部區(qū)域輪廓進(jìn)行采樣,計(jì)算所有輪廓采樣點(diǎn)到質(zhì)心的 距離,并計(jì)算出平均質(zhì)心距;然后根據(jù)上一輪已檢測(cè)到的指尖數(shù)目來確定擴(kuò)展質(zhì)心距,并以 質(zhì)心為圓心,擴(kuò)展質(zhì)心距為半徑進(jìn)行畫圓;最后剔除圓內(nèi)的輪廓點(diǎn)和圓上連續(xù)像素個(gè)數(shù)最 多的手腕區(qū)域,并在圓外尋找局部最大質(zhì)心距的輪廓點(diǎn),則該點(diǎn)標(biāo)記為指尖;將這一輪檢測(cè) 到指尖的數(shù)目與上一輪已檢測(cè)到的指尖數(shù)目比較,若兩者相等,則實(shí)現(xiàn)指尖的檢測(cè),否則將 這一輪檢測(cè)到指尖的數(shù)目更新為已檢測(cè)到的指尖數(shù)目,來確定擴(kuò)展質(zhì)心距并進(jìn)行畫圓,繼 續(xù)指尖的檢測(cè)是指:包括以下步驟:
[0017] (2. 1)用等面積塊構(gòu)建手部區(qū)域外觀模型,根據(jù)手部區(qū)域的不同姿態(tài),得到等面積 塊的數(shù)量,來確定手部區(qū)域的面積;
[0018] (2. 2)根據(jù)手部區(qū)域的面積和各個(gè)等面積塊的坐標(biāo)來計(jì)算手部區(qū)域的質(zhì)心;
[0019] (2. 3)對(duì)手部區(qū)域輪廓進(jìn)行密集采樣,計(jì)算所有采樣的輪廓點(diǎn)到質(zhì)心的距離,并計(jì) 算出平均質(zhì)心距;
[0020] (2.4)根據(jù)已檢測(cè)到的指尖數(shù)目N確定擴(kuò)展質(zhì)心距Dext,并以質(zhì)心為圓心,擴(kuò)展質(zhì) 心距DMt為半徑進(jìn)行畫圓;并剔除包含在該圓內(nèi)的輪廓點(diǎn);其中,N的初始值設(shè)置為0 ;
[0021] (2. 5)統(tǒng)計(jì)該圓經(jīng)過手部區(qū)域的像素個(gè)數(shù),并確定圓上連續(xù)像素個(gè)數(shù)最多的區(qū)域 為手腕區(qū)域,并剔除該手腕區(qū)域包含的輪廓點(diǎn);
[0022] (2. 6)對(duì)圓外剩余的區(qū)域?qū)ふ揖植孔畲筚|(zhì)心距的輪廓點(diǎn),并將該輪廓點(diǎn)標(biāo)記為指 尖;
[0023] (2. 7)將檢測(cè)到指尖的數(shù)目&與步驟(2. 4)中已檢測(cè)到的指尖數(shù)目N比較,若兩 者相等,則實(shí)現(xiàn)指尖的檢測(cè),得到指尖的數(shù)目和位置;否則將檢測(cè)到指尖的數(shù)目&更新為步 驟(2.4)中已檢測(cè)到的指尖數(shù)目N,并返回步驟(2. 4),繼續(xù)指尖的檢測(cè)。
[0024] 在步驟(2. 2)中,所述根據(jù)手部區(qū)域的面積和各個(gè)等面積塊的坐標(biāo)來計(jì)算手部區(qū) 域的質(zhì)心是指:通過公式(1)計(jì)算手部區(qū)域的質(zhì)心(xg,yg):
[0025]
(1)
[0026]其中,S是手部區(qū)域的面積,Xl、71分別是第i個(gè)等面積塊在X軸方向和Y軸方向 坐標(biāo)。
[0027] 在步驟(2. 3)中,所述計(jì)算所有采樣的輪廓點(diǎn)到質(zhì)心的距離,并計(jì)算出平均質(zhì)心 距是指:計(jì)算所有采樣的輪廓點(diǎn)(xp_tdyp_tJ到質(zhì)心的歐氏距離,平均質(zhì)心距用公式⑵ 計(jì)算:
[0028]
(2)
[0029] 其中,(xg,yg)為手部區(qū)域的質(zhì)心。
[0030] 在步驟(2. 4)中,所述根據(jù)已檢測(cè)到的指尖數(shù)目N確定擴(kuò)展質(zhì)心距Dext是指:所述 已檢測(cè)到的指尖數(shù)目N與擴(kuò)展質(zhì)心距Dext滿足的條件為:
[0031] 0 彡N〈3,Dext= 1. 5XDavg
[0032] 3 彡N彡 5,Dext= 1. 2XDavg
[0033] 若已檢測(cè)到的指尖數(shù)目N>5,則返回第一步;其中,Davg為平均質(zhì)心距。
[0034] 在步驟(2.6)中,所述對(duì)圓外剩余的區(qū)域?qū)ふ揖植孔畲筚|(zhì)心距的輪廓點(diǎn),并將該 輪廓點(diǎn)標(biāo)記為指尖是指:通過遍歷指尖輪廓點(diǎn),當(dāng)輪廓點(diǎn)上連續(xù)10個(gè)輪廓點(diǎn)的質(zhì)心距逐漸 增加時(shí),記錄當(dāng)前最大值,當(dāng)質(zhì)心距連續(xù)10個(gè)輪廓點(diǎn)的質(zhì)