符秀輝 杜一鳴
摘 要
為了實現遠程遙控機器人,提出了一種姿態識別的方法。利用Kinect傳感器來獲取景深數據,并通過計算標定來確定人體的20個關節點。通過對四個姿態在三維空間中的坐標變換,用歐氏距離來計算關節點之間的不同角度與距離。識別結果表明用此方法進行姿態識別操作簡單方便,平均識別的正確率可達93%。
【關鍵詞】遙控機器人 姿態識別 inect 歐氏距離
1 引言
隨著信息化的不斷發展,人機交互[1]已經成為21世紀人類研究的重點。而隨著研究的不斷深入,人們已經開始把視線從計算機轉移到人的身上,即人通過手勢,姿態等方式來實現交互。最早期的設備是人帶上數據手套[2],計算機通過它獲取手的位置及動作。之后就是在手上做標記,通過標記來識別[3]。現在人們已經把重點放在了自然的人身上,即不通過任何設備,不做任何標定直接識別人的姿態動作。姿態識別在快速發展的今天有著很重要的地位,本文提出一種利用Kinect來進行姿態識別的方法,該方法只需要操作者站在Kinect前面做出相應的動作即可進行識別,識別的準確率高。
2 骨骼信息的獲取
2.1 姿態識別
姿態是指人整個身體的運動或者身體某一個部位的運動[4]。近幾年,計算機輸入設備發展的越來越迅速,其中以微軟的一款Kinect體感外設尤為突出。隨著開源代碼的出現,人們可以在Kinect平臺進行研究開發,現如今,在教育界、商務界、醫療界、計算機應用和機器人視覺控制等方面都有很大的成果[5]。文中就是利用Kinect來進行姿態識別的。Kinect一共有三個攝像頭,左右兩邊的深度攝像頭,左邊是紅外線發射器,右側的是紅外線接收器。中間的是彩色攝像頭。當人們站在Kinect面前做出各種動作時,計算機會與之進行交互,這種方式不用佩戴任何設備,操作簡單[6]。
2.2 骨骼信息的獲取
首先利用Kinect獲取彩色圖像,該圖像較為清晰,但是該圖像只是二維的,而深度圖像中包含三維信息。雖然深度圖的分辨率比彩色圖低,但Kinect會通過對它的計算推測出深度位并進行記錄標定,來辨別人體的各個部位,再從圖像背景中分離,識別人體的20個關節點,最后對骨骼點進行跟蹤。當人站在Kinect面前時,通過處理景深數據來建立人體各個關節的坐標[9]。骨骼點位置用坐標(x,y,z)表示,其坐標系是這樣設計的:Kinect的紅外攝像頭中心為坐標原點,Z軸表示紅外攝像頭光軸,Y軸正半軸垂直向上,X正半軸向左。
3 算法實現
對人體的姿態識別主要是對骨骼點之間的角度與距離進行判別。當達到一定的角度與距離時就認為達到該姿態標準,系統就會處理并識別。
計算機形成的骨骼圖是按順序連線各個關節點而形成的,這樣關節線之間會有角度,關節點之間會有距離,通過計算該角度與距離來進行識別。主要是利用歐氏距離[10]與余弦定理來實現的。
歐氏距離是指在m維空間中兩個點之間的真實距離。在三維空間中,兩點之間的距離為
想要判定舉起左手的姿態,主要用到的關節點有左肩、左肘和左腕。只要判定這三個關節點之間的角度與距離在一定的閾值范圍內就算成功。圖1為舉起左手時的姿態關節圖。
當舉起左手時,左肩與左肘的連線與地面平行,肩肘的連線與肘腕的連線盡量滿足垂直關系,再加上左腕關節,就形成了一個在三維坐標內的一個三角形。該三角形三邊關系與在左肘處的角度為:
舉起右手的姿態與舉起左手類似,如圖2
判斷左手前伸和右手前伸的姿態,此時肩、肘、腕三點成一條直線且與地面平行,為180度。
舉起左手與右手時,為了判斷該姿態是否為有效姿態,需要判斷以肘部為頂點所形成的角的角度。由于實際操作中不能達到完全垂直,所以只要誤差在有效范圍內是被允許的。設定有效范圍為正負10度,那么10就是閾值。還要判斷肩肘連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態可被識別[11]。
左手前伸與右手前伸時,標準動作應該是肩,肘,腕三點在一條直線上,且與地面平行,閾值為10,再判斷肘腕連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態被識別。
4 應用實踐
4.1 實驗與測試
為了識別姿態動作,在室內搭建了基于Kinect的實驗平臺,在VS2010的環境下,結合微軟的應用平臺所實現的。
為了驗證實驗的準確性,選取了20人分別進行以上四個動作的測試,測試者距離Kinect的距離大概在1.5米左右,這是最佳距離。測試結果如表1所示。
從測試結果中可以看出,該方法對姿態有較高的識別率。
4.2 應用研究
該姿態識別可用于控制機器人運動,舉起左手和右手的姿態分別控制機器人向左向右運動,左右手前伸分別用來控制前進與停止。該移動機器人可以用在災難現場的救援,可以用于清潔工作的控制。計算機方面可以用姿態虛擬鍵盤鼠標控制瀏覽器等。在醫療方面醫生可以體感控制手術。在教育界,可以手勢控制PPT的播放。商務界可以用來虛擬穿衣鏡[12]。
5 結束語
本文利用歐氏距離與余弦定理,通過計算不同關節點之間的夾角與距離,使Kinect識別四種不同的姿態。解決了傳統狀態下通過設備來識別的方法,提高了識別率,簡化了識別方式。該結果應用前景廣泛,有很大的研究價值。
參考文獻
[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.
[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.
[3]胡友樹.手勢識別技術綜述[J].科技論壇,2005,2:41-42.
[4]黃國范,亞.人體動作姿態識別綜述[J].電腦知識與技術,2013,9(01):133-135.
[5]朱濤,金國棟,蘆利斌.基于Kinect應用概述及發展前景[J].現代計算機,2013,02:08-11.
[6]沈世宏,李蔚清.基于Kinect的體感手勢識別系統的研究[C]//第八屆全國和諧人機環境聯合學術會議.中國廣東廣州,2012.
[7]樊景超,周國民.基于Kinect骨骼追蹤技術的手勢識別研究[J].安徽農業科學,2014,42(11):3444-3446.
[8]劉相濱,鄒業驥,王勝春.一種新的完全歐氏距離變換算法[J].計算機工程與應用,2005,13:44-45.
[9]謝亮,廖宏建,楊玉寶.基于Kinect的姿態識別與應用研究[J].計算機技術與發展,2005,23(5):258-260.
[10]張荻.Kinect應用領域的探討[J].物流技術,2012,34(6):39-41.
作者單位
1. 沈陽化工大學 信息工程學院 遼寧省沈陽市 110142
2. 中國科學院 沈陽自動化研究所 遼寧省沈陽市 110016endprint
摘 要
為了實現遠程遙控機器人,提出了一種姿態識別的方法。利用Kinect傳感器來獲取景深數據,并通過計算標定來確定人體的20個關節點。通過對四個姿態在三維空間中的坐標變換,用歐氏距離來計算關節點之間的不同角度與距離。識別結果表明用此方法進行姿態識別操作簡單方便,平均識別的正確率可達93%。
【關鍵詞】遙控機器人 姿態識別 inect 歐氏距離
1 引言
隨著信息化的不斷發展,人機交互[1]已經成為21世紀人類研究的重點。而隨著研究的不斷深入,人們已經開始把視線從計算機轉移到人的身上,即人通過手勢,姿態等方式來實現交互。最早期的設備是人帶上數據手套[2],計算機通過它獲取手的位置及動作。之后就是在手上做標記,通過標記來識別[3]。現在人們已經把重點放在了自然的人身上,即不通過任何設備,不做任何標定直接識別人的姿態動作。姿態識別在快速發展的今天有著很重要的地位,本文提出一種利用Kinect來進行姿態識別的方法,該方法只需要操作者站在Kinect前面做出相應的動作即可進行識別,識別的準確率高。
2 骨骼信息的獲取
2.1 姿態識別
姿態是指人整個身體的運動或者身體某一個部位的運動[4]。近幾年,計算機輸入設備發展的越來越迅速,其中以微軟的一款Kinect體感外設尤為突出。隨著開源代碼的出現,人們可以在Kinect平臺進行研究開發,現如今,在教育界、商務界、醫療界、計算機應用和機器人視覺控制等方面都有很大的成果[5]。文中就是利用Kinect來進行姿態識別的。Kinect一共有三個攝像頭,左右兩邊的深度攝像頭,左邊是紅外線發射器,右側的是紅外線接收器。中間的是彩色攝像頭。當人們站在Kinect面前做出各種動作時,計算機會與之進行交互,這種方式不用佩戴任何設備,操作簡單[6]。
2.2 骨骼信息的獲取
首先利用Kinect獲取彩色圖像,該圖像較為清晰,但是該圖像只是二維的,而深度圖像中包含三維信息。雖然深度圖的分辨率比彩色圖低,但Kinect會通過對它的計算推測出深度位并進行記錄標定,來辨別人體的各個部位,再從圖像背景中分離,識別人體的20個關節點,最后對骨骼點進行跟蹤。當人站在Kinect面前時,通過處理景深數據來建立人體各個關節的坐標[9]。骨骼點位置用坐標(x,y,z)表示,其坐標系是這樣設計的:Kinect的紅外攝像頭中心為坐標原點,Z軸表示紅外攝像頭光軸,Y軸正半軸垂直向上,X正半軸向左。
3 算法實現
對人體的姿態識別主要是對骨骼點之間的角度與距離進行判別。當達到一定的角度與距離時就認為達到該姿態標準,系統就會處理并識別。
計算機形成的骨骼圖是按順序連線各個關節點而形成的,這樣關節線之間會有角度,關節點之間會有距離,通過計算該角度與距離來進行識別。主要是利用歐氏距離[10]與余弦定理來實現的。
歐氏距離是指在m維空間中兩個點之間的真實距離。在三維空間中,兩點之間的距離為
想要判定舉起左手的姿態,主要用到的關節點有左肩、左肘和左腕。只要判定這三個關節點之間的角度與距離在一定的閾值范圍內就算成功。圖1為舉起左手時的姿態關節圖。
當舉起左手時,左肩與左肘的連線與地面平行,肩肘的連線與肘腕的連線盡量滿足垂直關系,再加上左腕關節,就形成了一個在三維坐標內的一個三角形。該三角形三邊關系與在左肘處的角度為:
舉起右手的姿態與舉起左手類似,如圖2
判斷左手前伸和右手前伸的姿態,此時肩、肘、腕三點成一條直線且與地面平行,為180度。
舉起左手與右手時,為了判斷該姿態是否為有效姿態,需要判斷以肘部為頂點所形成的角的角度。由于實際操作中不能達到完全垂直,所以只要誤差在有效范圍內是被允許的。設定有效范圍為正負10度,那么10就是閾值。還要判斷肩肘連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態可被識別[11]。
左手前伸與右手前伸時,標準動作應該是肩,肘,腕三點在一條直線上,且與地面平行,閾值為10,再判斷肘腕連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態被識別。
4 應用實踐
4.1 實驗與測試
為了識別姿態動作,在室內搭建了基于Kinect的實驗平臺,在VS2010的環境下,結合微軟的應用平臺所實現的。
為了驗證實驗的準確性,選取了20人分別進行以上四個動作的測試,測試者距離Kinect的距離大概在1.5米左右,這是最佳距離。測試結果如表1所示。
從測試結果中可以看出,該方法對姿態有較高的識別率。
4.2 應用研究
該姿態識別可用于控制機器人運動,舉起左手和右手的姿態分別控制機器人向左向右運動,左右手前伸分別用來控制前進與停止。該移動機器人可以用在災難現場的救援,可以用于清潔工作的控制。計算機方面可以用姿態虛擬鍵盤鼠標控制瀏覽器等。在醫療方面醫生可以體感控制手術。在教育界,可以手勢控制PPT的播放。商務界可以用來虛擬穿衣鏡[12]。
5 結束語
本文利用歐氏距離與余弦定理,通過計算不同關節點之間的夾角與距離,使Kinect識別四種不同的姿態。解決了傳統狀態下通過設備來識別的方法,提高了識別率,簡化了識別方式。該結果應用前景廣泛,有很大的研究價值。
參考文獻
[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.
[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.
[3]胡友樹.手勢識別技術綜述[J].科技論壇,2005,2:41-42.
[4]黃國范,亞.人體動作姿態識別綜述[J].電腦知識與技術,2013,9(01):133-135.
[5]朱濤,金國棟,蘆利斌.基于Kinect應用概述及發展前景[J].現代計算機,2013,02:08-11.
[6]沈世宏,李蔚清.基于Kinect的體感手勢識別系統的研究[C]//第八屆全國和諧人機環境聯合學術會議.中國廣東廣州,2012.
[7]樊景超,周國民.基于Kinect骨骼追蹤技術的手勢識別研究[J].安徽農業科學,2014,42(11):3444-3446.
[8]劉相濱,鄒業驥,王勝春.一種新的完全歐氏距離變換算法[J].計算機工程與應用,2005,13:44-45.
[9]謝亮,廖宏建,楊玉寶.基于Kinect的姿態識別與應用研究[J].計算機技術與發展,2005,23(5):258-260.
[10]張荻.Kinect應用領域的探討[J].物流技術,2012,34(6):39-41.
作者單位
1. 沈陽化工大學 信息工程學院 遼寧省沈陽市 110142
2. 中國科學院 沈陽自動化研究所 遼寧省沈陽市 110016endprint
摘 要
為了實現遠程遙控機器人,提出了一種姿態識別的方法。利用Kinect傳感器來獲取景深數據,并通過計算標定來確定人體的20個關節點。通過對四個姿態在三維空間中的坐標變換,用歐氏距離來計算關節點之間的不同角度與距離。識別結果表明用此方法進行姿態識別操作簡單方便,平均識別的正確率可達93%。
【關鍵詞】遙控機器人 姿態識別 inect 歐氏距離
1 引言
隨著信息化的不斷發展,人機交互[1]已經成為21世紀人類研究的重點。而隨著研究的不斷深入,人們已經開始把視線從計算機轉移到人的身上,即人通過手勢,姿態等方式來實現交互。最早期的設備是人帶上數據手套[2],計算機通過它獲取手的位置及動作。之后就是在手上做標記,通過標記來識別[3]。現在人們已經把重點放在了自然的人身上,即不通過任何設備,不做任何標定直接識別人的姿態動作。姿態識別在快速發展的今天有著很重要的地位,本文提出一種利用Kinect來進行姿態識別的方法,該方法只需要操作者站在Kinect前面做出相應的動作即可進行識別,識別的準確率高。
2 骨骼信息的獲取
2.1 姿態識別
姿態是指人整個身體的運動或者身體某一個部位的運動[4]。近幾年,計算機輸入設備發展的越來越迅速,其中以微軟的一款Kinect體感外設尤為突出。隨著開源代碼的出現,人們可以在Kinect平臺進行研究開發,現如今,在教育界、商務界、醫療界、計算機應用和機器人視覺控制等方面都有很大的成果[5]。文中就是利用Kinect來進行姿態識別的。Kinect一共有三個攝像頭,左右兩邊的深度攝像頭,左邊是紅外線發射器,右側的是紅外線接收器。中間的是彩色攝像頭。當人們站在Kinect面前做出各種動作時,計算機會與之進行交互,這種方式不用佩戴任何設備,操作簡單[6]。
2.2 骨骼信息的獲取
首先利用Kinect獲取彩色圖像,該圖像較為清晰,但是該圖像只是二維的,而深度圖像中包含三維信息。雖然深度圖的分辨率比彩色圖低,但Kinect會通過對它的計算推測出深度位并進行記錄標定,來辨別人體的各個部位,再從圖像背景中分離,識別人體的20個關節點,最后對骨骼點進行跟蹤。當人站在Kinect面前時,通過處理景深數據來建立人體各個關節的坐標[9]。骨骼點位置用坐標(x,y,z)表示,其坐標系是這樣設計的:Kinect的紅外攝像頭中心為坐標原點,Z軸表示紅外攝像頭光軸,Y軸正半軸垂直向上,X正半軸向左。
3 算法實現
對人體的姿態識別主要是對骨骼點之間的角度與距離進行判別。當達到一定的角度與距離時就認為達到該姿態標準,系統就會處理并識別。
計算機形成的骨骼圖是按順序連線各個關節點而形成的,這樣關節線之間會有角度,關節點之間會有距離,通過計算該角度與距離來進行識別。主要是利用歐氏距離[10]與余弦定理來實現的。
歐氏距離是指在m維空間中兩個點之間的真實距離。在三維空間中,兩點之間的距離為
想要判定舉起左手的姿態,主要用到的關節點有左肩、左肘和左腕。只要判定這三個關節點之間的角度與距離在一定的閾值范圍內就算成功。圖1為舉起左手時的姿態關節圖。
當舉起左手時,左肩與左肘的連線與地面平行,肩肘的連線與肘腕的連線盡量滿足垂直關系,再加上左腕關節,就形成了一個在三維坐標內的一個三角形。該三角形三邊關系與在左肘處的角度為:
舉起右手的姿態與舉起左手類似,如圖2
判斷左手前伸和右手前伸的姿態,此時肩、肘、腕三點成一條直線且與地面平行,為180度。
舉起左手與右手時,為了判斷該姿態是否為有效姿態,需要判斷以肘部為頂點所形成的角的角度。由于實際操作中不能達到完全垂直,所以只要誤差在有效范圍內是被允許的。設定有效范圍為正負10度,那么10就是閾值。還要判斷肩肘連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態可被識別[11]。
左手前伸與右手前伸時,標準動作應該是肩,肘,腕三點在一條直線上,且與地面平行,閾值為10,再判斷肘腕連線是否與地面平行,閾值仍為10。當滿足以上兩個條件時,該姿態被識別。
4 應用實踐
4.1 實驗與測試
為了識別姿態動作,在室內搭建了基于Kinect的實驗平臺,在VS2010的環境下,結合微軟的應用平臺所實現的。
為了驗證實驗的準確性,選取了20人分別進行以上四個動作的測試,測試者距離Kinect的距離大概在1.5米左右,這是最佳距離。測試結果如表1所示。
從測試結果中可以看出,該方法對姿態有較高的識別率。
4.2 應用研究
該姿態識別可用于控制機器人運動,舉起左手和右手的姿態分別控制機器人向左向右運動,左右手前伸分別用來控制前進與停止。該移動機器人可以用在災難現場的救援,可以用于清潔工作的控制。計算機方面可以用姿態虛擬鍵盤鼠標控制瀏覽器等。在醫療方面醫生可以體感控制手術。在教育界,可以手勢控制PPT的播放。商務界可以用來虛擬穿衣鏡[12]。
5 結束語
本文利用歐氏距離與余弦定理,通過計算不同關節點之間的夾角與距離,使Kinect識別四種不同的姿態。解決了傳統狀態下通過設備來識別的方法,提高了識別率,簡化了識別方式。該結果應用前景廣泛,有很大的研究價值。
參考文獻
[1] Liying Cheng, Qi Sun, Han Su. Design and Implementation of Human-Robot Interactive Demonstration System Based on Kinect[C]// Chinese Control and Decision Conference, 2012; 971-975.
[2]MEENAKSHI P. Hand gesture recognition based on shape parameters [C]. Computing, Communication and Applications(ICCCA), 2012 International Conference on, 2012.
[3]胡友樹.手勢識別技術綜述[J].科技論壇,2005,2:41-42.
[4]黃國范,亞.人體動作姿態識別綜述[J].電腦知識與技術,2013,9(01):133-135.
[5]朱濤,金國棟,蘆利斌.基于Kinect應用概述及發展前景[J].現代計算機,2013,02:08-11.
[6]沈世宏,李蔚清.基于Kinect的體感手勢識別系統的研究[C]//第八屆全國和諧人機環境聯合學術會議.中國廣東廣州,2012.
[7]樊景超,周國民.基于Kinect骨骼追蹤技術的手勢識別研究[J].安徽農業科學,2014,42(11):3444-3446.
[8]劉相濱,鄒業驥,王勝春.一種新的完全歐氏距離變換算法[J].計算機工程與應用,2005,13:44-45.
[9]謝亮,廖宏建,楊玉寶.基于Kinect的姿態識別與應用研究[J].計算機技術與發展,2005,23(5):258-260.
[10]張荻.Kinect應用領域的探討[J].物流技術,2012,34(6):39-41.
作者單位
1. 沈陽化工大學 信息工程學院 遼寧省沈陽市 110142
2. 中國科學院 沈陽自動化研究所 遼寧省沈陽市 110016endprint