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