一種基于深度數(shù)據(jù)的三維手勢姿態(tài)估計方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及機器人視覺領(lǐng)域,涉及一種基于深度數(shù)據(jù)的三維手勢姿態(tài)估計方法及 系統(tǒng)。
【背景技術(shù)】
[0002] 隨著人們對人機交互需求的不斷提高,新的交互技術(shù)正在逐漸呈現(xiàn)開來,手勢以 其自然、便利的特性成為最具潛力的交互方式技術(shù)之一。相比于其他關(guān)節(jié)部位,手具有豐富 的姿態(tài)以及靈活的操控,在人們的日常生活中發(fā)揮著巨大的作用,因此基于手勢姿態(tài)的交 互技術(shù)將會有著廣泛的應(yīng)用,如虛擬現(xiàn)實中通過手勢操作虛擬物體;利用手勢來操控機器 人抓取物體;基于手勢的手語識別;通過手勢技術(shù)在交互界面進行操作指令的輸入等。這 些源自實際生活的需求進一步促進著手姿態(tài)建模技術(shù)的研究與發(fā)展。
[0003] 對于靜態(tài)手勢的研究與比較成熟,但是具有較大的局限性,近年來三維手勢成 為熱點之一,手勢姿態(tài)估計是三維手勢的核心基礎(chǔ)之一,正逐步從接觸式的方法轉(zhuǎn)向以 視覺為主的非接觸式方法。接觸式的方法主要是通過佩戴數(shù)據(jù)手套來獲取用戶手勢的 關(guān)節(jié)姿態(tài),這種方式準確性較高,但是實現(xiàn)成本較大,同時用戶的舒適性也不佳。近幾年 基于視覺的三維手勢估計技術(shù)正在迅速發(fā)展,應(yīng)用的前景也較為廣闊,同時市場上出現(xiàn)了 LeapMotion為代表的手勢產(chǎn)品,利用手勢實現(xiàn)交互、游戲等,但是這種產(chǎn)品的適用距離太 小,手與檢測裝置的距離超出一定的范圍就無法使用了,在實際的應(yīng)用中如機器人手勢控 制等場景下,有很多局限性。為此還需要嘗試新的方法來應(yīng)對這方面的不足,以滿足實際的 應(yīng)用需求。
[0004] 基于視覺的三維手勢姿態(tài)估計技術(shù),分為判別式與產(chǎn)生式。其中產(chǎn)生式方法計算 量大,精確性往往較低,判別式速度較快,但是估計的結(jié)果有一定的誤差,且姿態(tài)受限,但是 相比于產(chǎn)生式的模型擬合方法,具有能夠?qū)嶋H應(yīng)用的前景。
[0005] 與本發(fā)明部分技術(shù)類似的發(fā)明包括以下三個:
[0006] 1.手檢測方法和裝置,申請?zhí)枮?01210236446. 5
[0007] 此發(fā)明提出了一種手檢測方法和裝置,主要通過相鄰幀的膚色區(qū)域之差和分類器 進行手檢測。這種方式適用于靜態(tài)手勢,對于三維手勢,其手的角度和外觀都會發(fā)生變換, 因此這種方法具有一定的局限性,適用的場合較為簡單,并且實現(xiàn)的方式和本發(fā)明也不同。
[0008] 2.基于視覺的手勢遙控系統(tǒng),申請?zhí)枮?01210121832.X
[0009] 此發(fā)明提出了基于視覺的手勢識別與遙控系統(tǒng),其中在手勢識別模塊,主要包括 手部檢測,手部跟蹤以及手勢識別。在手的檢測中采用基于灰度圖像的級聯(lián)分類器來檢測 手,這種手檢測的方式很難應(yīng)對手部姿態(tài)與角度的變化情況,還是一種靜態(tài)單一的手檢測 方式。而對于手勢的識別,采用的是基于手部輪廓的模板匹配,未采用檢測手勢姿態(tài)的方 式,因此其整體方法與本發(fā)明不同。
[0010] 3.手檢測方法和設(shè)備,申請?zhí)枮?01410001215. 5
[0011] 此發(fā)明提出了基于深度圖的手檢測方法,此方法首先通過深度閾值進行前景分 害J,然后通過直線檢測的方式檢測出小臂,然后在確定小臂的方向上檢測手的所在,這種方 法對小臂所在的位置有特定的要求,且直線檢測容易產(chǎn)生誤檢測,同時這個方法只是檢測 出了手的位置所在,并未對手的姿態(tài)情況進行估計,無論方法與目的都與本發(fā)明不同。
[0012] 本發(fā)明提出了一種基于深度數(shù)據(jù)的三維手勢估計方法。該方法為判別式方法,基 于RGBD數(shù)據(jù),首先采用兩種方式相互配合完成對手部R0I數(shù)據(jù)的分割,接著在此基礎(chǔ)上采 用回歸算法完成手部全局方向估計,最后以此數(shù)據(jù)為輔助再次利用回歸算法實現(xiàn)三維手勢 姿態(tài)估計。本發(fā)相比其他方法不僅算法較為簡單,同時不需要依賴額外的用戶佩戴裝置,在 滿足一定可用的精度下具有良好的實用價值。
【發(fā)明內(nèi)容】
[0013] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,針對目前三維手勢技術(shù)在這方面應(yīng)用的 局限性,提供一種基于深度數(shù)據(jù)的三維手勢姿態(tài)估計方法及系統(tǒng),主要用于提升家用機器 人的交互體驗,結(jié)合手部R0I檢測的基礎(chǔ)上,利用機器學(xué)習(xí)方法對手部姿態(tài)進行回歸,并對 估計的結(jié)果加以約束,最終實現(xiàn)手部姿態(tài)的快速估計。
[0014] 本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種基于深度數(shù)據(jù)的三維手勢姿態(tài) 估計方法,它包括以下步驟:
[0015] S1 :對拍攝的數(shù)據(jù)進行手部R0I檢測,獲取手部深度數(shù)據(jù):
[0016] (1)當(dāng)能夠獲取手掌的單個骨骼點信息時,通過手掌單個骨骼點對手部R0I檢測, 獲取手部深度數(shù)據(jù);
[0017] (2)當(dāng)無法獲取手掌的單個骨骼點信息時,采用基于膚色的方式對手部R0I檢測, 獲取手部深度數(shù)據(jù);
[0018] 其中,所述的R0I為感興趣區(qū)域;
[0019] S2 :手部三維全局方向初步估計,包括以下子步驟:
[0020] S21 :對步驟S1得到的手部R0I數(shù)據(jù)進行特征提取;
[0021] S22:根據(jù)預(yù)先訓(xùn)練好的手部全局方向回歸的分類器&,實現(xiàn)手部全局方向的回 歸;
[0022] S3 :三維手勢的關(guān)節(jié)姿態(tài)估計,包括以下子步驟:
[0023] S31 :根據(jù)預(yù)先訓(xùn)練好的關(guān)節(jié)姿態(tài)估計的分類器R2實現(xiàn)手部姿態(tài)估計;
[0024] S32 :姿態(tài)校正:根據(jù)手部尺寸對步驟S31得到的結(jié)果進行校正。
[0025] 步驟S1中,當(dāng)能夠獲取手掌的單個骨骼點信息時的情況包括以下子步驟:
[0026] S111 :根據(jù)圖像采集設(shè)備采集的圖像,獲取手掌的骨骼點P。的三維位置;
[0027] S112 :將三維位置投影到二維深度圖像P'。,初步得到手部深度值D(P'。);
[0028] S113 :基于骨骼點P。為中心的矩形區(qū)域,計算所述矩形區(qū)域內(nèi)的深度信息直方圖; 所述矩形區(qū)域的大小根據(jù)距離設(shè)置;
[0029] S114 :根據(jù)步驟S113得到的直方圖找到峰值對應(yīng)的深度,并將深度作為手部中心 的實際深度值Η;
[0030] S115 :利用深度值Η與深度誤差范圍s對圖像進行閾值化處理,保留下來的深度h 滿足H-s彡h彡H+s;
[0031] S116 :對深度圖像對應(yīng)的二值圖進行輪廓檢測,并對輪廓中尺寸小于一定閾值的 輪廓,對對應(yīng)的深度圖像位置進行背景填補,去除噪聲輪廓;噪聲輪廓的閾值根據(jù)手部到圖 像采集設(shè)備的距離設(shè)定。
[0032] 步驟S1中,當(dāng)無法獲取手掌的單個骨骼點信息時的情況包括以下子步驟:
[0033] S121 :根據(jù)圖像采集設(shè)備獲取的彩色圖像進行膚色檢測,對非膚色區(qū)域進行置0, 此時圖像上只含有膚色區(qū)域;
[0034] S122 :對膚色區(qū)域?qū)?yīng)的像素置1,得到膚色區(qū)域?qū)?yīng)的二值圖;
[0035] S123:進行輪廓檢測,將輪廓周長小于一定閾值的輪廓進行填補,此時圖像中含有 多個膚色輪廓區(qū)域;
[0036] S124 :對于每個膚色輪廓區(qū)域,計算每個輪廓的形心,形心的計算公式為:
[0037]
[0038] 式中,m代表圖像的幾何矩,!111。、111。1、 111。。代表幾何矩的其中三個頂點;
[0039]S125 :記形心中心為P(x,y),將形心中心P(x,y)變換到對應(yīng)的深度圖像上為點 Q;
[0040] S126 :對每個輪廓進行相同的形心點變換之后,比較深度值H,將深度值較小的形 心變換點Qi作為手部的位置所在;
[0041] S127 :以點%對應(yīng)的深度值對圖像進行閾值化,深度誤差值為s,保留下來的深度 h滿足H-s彡h彡H+s;
[0042] S128 :對深度圖像對應(yīng)的二值圖進行輪廓檢測,并對輪廓中尺寸小于一定閾值的 輪廓,對對應(yīng)的深度圖像位置進行背景填補,去除噪聲輪廓;噪聲輪廓的閾值根據(jù)手部到圖 像采集設(shè)備的距離設(shè)定。
[0043] 所述的步驟S21包括以下子步驟:
[0044] S211 :對手部立方體劃分,包括以下子步驟:
[0045] S2111 :以手部的寬度方向作為X軸,手部的長度方向作為Y軸,手掌的厚度方向作 為Z軸,形成三維坐標(biāo)系;
[0046] S2112 :以手部的寬度L、手部的長度Η和手掌的厚度D組成立方體,所述立方體的 中心位于三維坐標(biāo)系的原點之上;
[0047] S2113 :將立方體進行X、Υ、Ζ方向的立方體分割,在X、Υ、Ζ方向分隔分別得到X、 y、ζ等分,分割后的小立方體格數(shù)為x*y*z;
[0048] S212 :將手部深度數(shù)據(jù)投影到立方體上,包括以下子步驟:
[0049] S2121 :根據(jù)步驟S1得到的手部R0I深度數(shù)據(jù),對于非背景點,將手部深度數(shù)據(jù)變 換到圖像采集設(shè)備坐標(biāo)