DOI QR코드

DOI QR Code

User Customizable Hit Action Recognition Method using Kinect

키넥트를 이용한 사용자 맞춤형 손동작 히트 인식 방법

  • Choi, Yunyeon (School of Computer Science and Engineering, Kyungpook National University) ;
  • Tang, Jiamei (School of Computer Science and Engineering, Kyungpook National University) ;
  • Jang, Seungeun (Department of Digital Media Art, Kyungpook National University) ;
  • Kim, Sangwook (School of Computer Science and Engineering, Kyungpook National University)
  • Received : 2014.12.31
  • Accepted : 2015.03.10
  • Published : 2015.04.30

Abstract

There are many prior studies for more natural Human-Computer Interaction. Until now, the efforts is continued in order to recognize motions in various directions. In this paper, we suggest a user-specific recognition by hit detection method using Kinect camera and human proportion. This algorithm extracts the user-specific valid recognition rage after recognizing the user's body initially. And it corrects the difference in horizontal position between the user and Kinect, so that we can estimate a action of user by matching cursor to target using only one frame. Ensure that efficient hand recognition in the game to take advantage of this method of suggestion.

Keywords

1. 서 론

사용자 인터페이스 기술은 더 자연스러운 움직임을 인식하기 위해 진보하고 있다. 사용자가 기계를 사용하기 위해 학습하는 것이 아니라 기존의 움직임을 인지하는 형태로 바뀌는 것이다. 그러나 움직임이라는 것은 시작 지점에서 끝 지점까지 동선, 시간, 모양 등을 종합적으로 판단하여야 한다. 즉 시작 지점부터 추적을 하여 끝 지점에 도달해야만 움직임을 판단할 수 있다. 이 때문에 컴퓨터가 실시간으로 사용자의 동작에 반응하는 것은 무리가 있다. 또한 어떤 것이 의도한 움직임인지 아닌지를 판별해내는 것도 어려움 중에 하나이다. 이를 개선하기 위해 학습 알고리즘을 이용하여 여러 동작을 기계에 학습시킨 후, 이후 사용자의 동작 일부를 가지고 예측을 하는 방법이 연구되기도 한다.

그러나 정확도를 위해 논리적인 연산을 늘이는 것은 동작 인식 속도를 느리게 하는 원인이 되고 있다. 게다가 신체 조건이 다른 사용자일 때는 같은 동작을 하더라도 인식의 오차 정도가 더 심해서 정확성마저 보장하기 어려울 때도 있다. 본 논문에서는 인식 속도를 향상시키고 사용자에 따른 오차를 보정하기 위해 사용자 맞춤형 히트 동작 인식 방법을 제언한다. 2절에서는 키넥트의 각종 인식 방법에 대한 연구를 설명하고, 3절에서는 본 논문에서 제언하는 손동작 인식 방법과 보정하는 알고리즘을 중심으로 서술하고 있다. 마지막으로 4절에서는 요약 및 추후 연구 방향을 기술하였다.

 

2. 관련연구

동작 인식에는 여러 가지 종류가 있는데 그 중에서도 키넥트(Kinect)의 주요 인식 방법으로는 히트(hit), 포즈(pose), 제스처(gesture) 인식이 있다. 히트는 화면의 타겟과 스켈레톤의 좌표를 받아서 특정 포인트가 일치하는지를 판별하는 방법이다. 이는 단일 입력에는 강하지만 응용하기에는 어렵다는 것이 특징이다. 포즈는 관절 간의 거리나 각도로 동작을 판별하는 것인데 개념적으로 만들기는 쉬우나 사람이나 키넥트-사람 간 각도에 따라 오차가 크고 포즈가 늘어날수록 판별해야하는 것이 늘어나므로 수행 시간이 급격히 증가한다는 문제가 있다[1]. 제스처는 특정 스켈레톤을 추적하여 이동방향, 속도 등으로 움직임을 판별하는 것인데 앞서 제시한 방법들보다 정확도 측면에서 강점이 있고 응용의 폭이 넓다는 장점이 있다. 기본적으로 학습 알고리즘을 이용하기 때문에 다른 인식방법에 비해 구현하는 것이 상당히 어렵고, 포즈와 마찬가지로 인식하려는 동작이 늘어날수록 비용이 큰 폭으로 증가하며, 결정적으로 여러 프레임을 받아 판별하므로 인식 속도에 한계점이 있다[2].

이처럼 위의 주요 인식 방법들은 인식 속도가 상당히 느리다는 것이 문제점이다. 그리고 사람에 따라 이동 속도나 거리가 다르다는 것도 사용자 입장에서 큰 불편이 될 수 있는 부분이다. 그렇기 때문에 인간-컴퓨터 상호작용을 실제 게임에 적용하는 것은 많은 제한 사항이 있었다.

본 논문에서는 게임을 하는데 최적화된 상호작용을 제공하기 위해 마이크로소프트사의 키넥트를 활용하는 방법을 제안한다. 키넥트는 색 영상뿐만 아니라 적외선 패턴과 적외선 카메라를 이용하여 깊이 정보를 획득할 수 있다. 화면상에서 사용자의 위치를 지정하기 위해 색 영상과 손의 관절 정보만을 이용하고, 화면 인식 범위를 제안하여 히트를 사용해 추적하지 않고도 제스처 인식 기능과 유사한 결과를 얻을 수 있는 손동작을 인식하고자 한다. 그리고 사용자에 따른 오차를 보정하기 위해 관절 정보에 인체 비례를 적용하는 방법을 제안한다.

 

3. 키넥트를 이용한 손동작 인식 방법

키넥트는 사용자의 얼굴과 동작을 인식하는 입력장치로 사용자의 몸에서 48개의 점을 찾아 사용자의 동작을 인지하고, 이 점들을 이용하여 사용자의 골격과 전신의 생김새에 따라 자동으로 전신 지도를 화면에 보여주는 장비이다[3-4]. 또한 키넥트는 RGB 색 영상과 함께 깊이 영상을 초당 30프레임씩 실시간으로 획득할 수 있는 장비로써[1], 본 논문에서는 키넥트로부터 획득할 수 있는 머리와 어깨, 손의 관절 정보, 색 영상 및 깊이정보를 활용하여 사람에 따라 다른 사용자 인식 유효 범위와 손동작 인식 유효 범위를 제시하고 빠르게 인식하는 방법을 제안한다.

3.1 손동작 인식 유효 범위(valid recognition range) 계산을 위한 인체 비례 조사

먼저 사용자별 유효 범위를 판별하기 위해 관절 정보를 이용하는데, Fig. 1은 키넥트에서 자체적으로 제공하는 관절 정보를 도식화한 것이다. 본 논문에서는 관절 정보 중 머리, 어깨중심, 손을 이용하였다. 인식 유효 범위는 타겟과 손이 일치한 후, 손을 충분히 뻗었을 때만 유효하게 처리하도록 판별하는데 사용된다.

Fig. 1The joint information of Kinect.

한국인 인체치수조사의 2011∼2013년도 연령대별 표준체형 치수를 도식화한 것이다. 손-손가락 거리를 임의로 1 Distance(이하 1D)로 가정하였을 때, Table 1을 보면 팔을 쭉 뻗었을 때 어깨-손 간의 거리가 9D라는 것을 알 수 있다. 실제 사용자에게 인식 유효 범위를 적용할 때는 매번 팔을 끝까지 뻗기 어렵기 때문에 7D를 초기 유효 범위로 설정하였고, 최초 인식 이후에는 5D를 인식 유효 범위로 정하였다. 이 유효 범위를 지정하기 위해서 사람 모형을 화면에 출력하여 올바른 위치를 유도한다. 그리고 최초로 사용자가 인식이 된 순간 신체 크기 중 일부를 저장한다. 그러나 사용자가 초기에 섰을 때 팔의 위치가 바르다는 것을 보정할 수 없기 때문에, 초기 인식 시에 팔의 길이를 측정하는 것이 아니라, 머리-어깨중심을 측정하고 이에 인체 비례를 적용해서 추출한 값을 이용하기로 하였다. 머리-어깨중심을 H라고 하고, 인체 비례로 계산한 결과 식 (1)를 사용하면 1D를 계산할 수 있고 이를 활용하여 초기 유효 인식 범위는 식 (2), 이후 유효 인식 범위는 식 (3)가 된다.

Table 1.2011 to 2013 Year 20s Korean arms proportion

3.2 좌우 위치에 따른 손동작 히트 오차 보정

Fig. 2와 같이 사람이 서 있는 위치에 따라 좌표값이 다르게 측정되는지를 확인하기 위해 테스트를 진행하였다. 키넥트에는 깊이 정보를 얻을 때 깊이영상에서 추출할 수도 있고, 관절정보에서 position을 이용할 수도 있는데 Fig. 3과 같이 position 내부에는 x, y, z 값을 담고 있다. 본 연구에서는 키넥트의 상하 위치에 따른 차이도 있을 수 있기 때문에 이를 측정할 경우의 확장성을 고려하여 position값을 이용하기로 하였다.

Fig. 2Human Location.

Fig. 3x, y, z of position.

전체 화면 크기를 640*480픽셀로 하고 키넥트-사람 간 position.y를 240으로 고정하고 화면을 이분할 한 중간을 기준으로 다시 양쪽을 반씩 분할하여 측정한 좌표는 Table 2와 같다. 그리고 각각의 좌표에서 손을 움직였을 때 타겟에 따른 차이 값은 Table 3과 같다.

Table 2.x, y coordinates of each Human Location

Table 3.The difference between position.z according to Human Location

Table 3을 보면 중앙에서 가장자리로 갈 때 깊이 값이 전체적으로 증가하는 경향을 보인다. 특히 가장자리 쪽에서 키넥트 쪽으로 손을 뻗을 때, 밑줄 친부분과 같이 차이가 더 두드러진다. 그 이유는 첫째, 기준으로 사용되는 것은 몸의 중점이지만 동작 인식에는 오른손을 사용해서 실제 측정하는 관절 정보가 중점보다 오른쪽으로 치우쳐있기 때문이다. 둘째는 손을 움직일 때 사용자가 L1 위치에 있을 경우 Rightward로 손동작을 하면 키넥트와 가까워지지만, L3 위치에 있을 경우 Rightward로 손동작을 하면 키넥트와 멀어지게 된다. 게다가 키넥트 측정 범위에서 가장자리 쪽으로 갈수록 사용자-키넥트 간각도가 커져서 이로 인해 측정되는 값의 차이가 달라진다. 즉, 사용자-키넥트 위치에 따라 같은 방향으로 손동작을 하더라도 측정되는 수치에는 차이가 존재한다.

특히, 관절의 방향도 중요한데 관절은 굽히는 방향에 따라 꺾이는 각도가 다르다. 손목의 경우 안쪽으로 굽히는 것을 배굴, 바깥쪽으로 굽히는 것을 장굴이라 한다. 2009년 산재법 8조 2항의 별표 3의 신체 각 관절에 대한 정상인의 표준운동각도 및 운동가능영역에 따르면 손목의 장굴은 70도, 배굴은 60도이다. 이는 키넥트에서 손 인식에서 미세하긴 하지만 좌표 값의 차이를 발생시킨다.

그래서 Table 3에서 Base와의 차이 및 손목 각도에 따른 차이를 천분율로 계산하여 Table 4과 같이 보정을 하였다.

Table 4.The difference correcting between the Base

3.3 인식 유효 범위 계산 알고리즘

다음은 사람의 손 인식과 유효 판단을 하기 위한 전체 흐름이다. 전처리 과정은 키넥트 센서에 의한 사람 검출, 센서가 현재 촬영하는 색 영상을 출력, 현재 검출된 사람의 머리와 어깨의 깊이 정보를 추출 후 유효한 인식 범위를 계산하는 것으로 이루어져 있다. 색 영상과 깊이 정보 생성은 Microsoft 사에서 제공하는 키넥트 SDK를 활용하였다.

본 논문에서 제안하는 알고리즘은 사용자의 인체를 기준으로 유효 인식 범위 계산을 한다. 또한 사용자가 원하는 위치에 콘솔을 위치시켜 편의성을 도모하는 동시에 손의 위치를 보정하는데 활용한다. 유효 인식 범위 계산 알고리즘은 Fig. 4와 같다.

Fig. 4.User Customizable Hit Action Recognition Algorithm.

최초에 사람 모형을 보여줘서 사용자가 올바른 위치에 설 수 있도록 유도를 하고, 인식이 될 경우 화면에 게임을 할 수 있는 보드를 출력하면서 신체 크기 중 머리-어깨 간 간격을 추출한다. 이 값을 이용하여 유효 인식 범위를 계산한 후 사용자 손의 깊이 값과 비교하여 인식 여부를 판별한다. 그러다 최초로 손을 인식하면 화면의 해당 좌표에 콘솔을 생성한 후 유효인식 범위의 민감도를 낮추어 방향 판별 및 그에 따른 동작을 수행한다.

위 Fig. 4의 6번째 줄에 있는 유효인식 범위 계산(calculating valid recognition range)식은 식 (4)와 같다.

3.4 좌우 위치에 따른 오차 보정

본 논문에서 제언한 알고리즘은 키넥트에서 기본적으로 제공하는 영상 이미지 중 가장 큰 화면인 640*480픽셀을 가정하여 구성한 것이다. Fig. 4는 Table 4에서 지정했던 L1과 L3에서 생기는 오차를 보정하는 알고리즘이다.

화면의 중앙 위치인 L2의 x좌표와 현재 손의 x좌표 값을 비교하여, 만약 L2의 x값보다 현재 손의 x값이 작다면 왼쪽을 의미하고 L1이며, 반대로 L2의 x값 보다 크면 오른쪽으로 L3에 해당된다.

L1

L3

비교를 통해 위치를 구한 다음에는 손이 현재 위치하는 방향을 구하여 각각 위치에 해당하는 수치만큼 값을 보정한다.

3.5 실험 및 분석

Fig. 5는 본 연구의 테스트를 위해 결과물을 2048 게임에 적용한 것이다. Fig. 5의 (b)와 같이 색 영상 위에 사람 모형을 그려 올바른 위치에 서도록 한다. 그 후 사용자가 화면을 향해 손을 뻗어서 이것이 초기 유효 범위로 인정되면 해당 위치에 Fig. 5의 (a)의 화살표와 같은 콘솔과 손 모양의 커서가 생성된다.

Fig. 5.Capture of Game 2048.

최초 입력으로 콘솔이 생성되면 이후 커서가 콘솔의 특정 타겟과 일치하는지, 인식 유효 범위인지를 판단한 후 두 가지 다 유효하다면 해당 기능을 수행한다. 현재는 타겟이 각각 상하좌우의 기능을 수행하도록 구현하였다. 만약 타겟과 커서가 히트이더라도 인식 유효 범위가 아니면 기능을 수행하지 않는다.

Fig. 6은 본 기술을 적용한 게임 환경 및 전시 장면이다. 사용자의 위치가 키넥트와 정면에 있지 않고 각각 L1, L3에 있지만 보정을 통해 인식이 가능하여 게임을 진행하고 있다.

Fig. 6Display of Game 2048.

이는 사용자가 상하좌우의 입력을 통해 타일을 움직이고 타일끼리 값을 더해서 2048을 만드는 것을 목표로 하는 게임이다. 그래서 상하좌우 이외의 다른동작을 필요로 하지 않기에 본 논문의 기술을 적용하여 테스트하기에 적합하였다.

Table 5는 각 방향에 따른 기본 인식률과 이를 보정한 후의 인식률을 측정한 것이다. 손동작 히트 응용 방식으로 구현한 2048 게임을 사용하고, 앞의 테스트 환경과 동일하게 Table 2에서 제시한 위치에서 각각 방향별로 50회씩 테스트를 진행하였다. Base의 경우는 해당 위치에 콘솔을 생성하기 때문에 보정을 진행하지 않고도 높은 인식률을 보장할 수 있다. 전체적으로 90%에 가까운 인식률을 확보할 수 있었으며, 특히 오차율이 심한 방향에서는 20% 이상으로 인식률이 향상되었다.

Table 5.Recognition rate before and after correction

이러한 콘솔 형태를 사용하는 것은 제스처 자체를 이용하는 것이기 아니기 때문에 오른쪽으로 이동하더라도 콘솔의 왼쪽 화살표 타겟과 히트한다면 왼쪽의 기능이 수행되는 등 움직임 자체를 인식하지는 못한다는 것이 아쉬운 부분이다. 그리고 현재는 좌우중 아무 위치나 좌표별로 비례를 계산하는 것이 아니라 사용자 유도를 통해 일정한 좌표를 보장하여 보정해야하는 값을 줄여놓았다.

하지만 인식을 위해 최소 5프레임 이상의 포인트와 속도 감지, 제스처 모델과의 비교를 수행해야하는 것과 비교했을 때, 별도의 스레드나 모델 간 비교 없이 단일 프레임으로 동작에 대한 처리가 가능하다는 장점을 갖고 있다. 키넥트의 경우 1초당 30프레임의 데이터를 수집하는데, 이는 1프레임으로 처리가 가능하다면 실시간에 가까운 반응 속도를 보여줄 수 있게 된다.

 

4. 결 론

본 논문에서는 키넥트 센서를 이용하여 제스처 방식을 사용하지 않고 손동작을 인식하는 히트 인식 방법을 제안하였다. 히트 방법을 기본적으로 이용하여 인식 범위를 제한하는 대신 1프레임으로 손동작 인식 기능을 수행하게 하였고, 무조건 히트가 되면 기능을 수행하는 오류를 범하지 않도록 인식 유효 범위를 지정하였다. 또한 키넥트-사람 간 좌우 위치 차이에 따른 오차를 보상하는 방법을 제언하여 게임에 실제로 HCI를 적용할 수 있게 하고자 했다. 한편, 히트 방식은 다른 방식에 비해 다양한 동작을 인식하기에 어렵다는 한계점이 있는데 이를 개선하기 위해 제스처 방식과 혼용하여 정확성은 높이면서 속도를 향상시킬 수 있는 방법을 모색할 예정이다.

References

  1. C.S. Won, S.M. Kim, J.S. Park, B.W. Yoon, and J.K. Song, “Hand Shape Recognition based on Kinect and Analysis of the Per-formance,” Proceeding of The Korean Institute of Electronic Communication Sciences, Vol. 7, No 2, pp. 144-147, 2013.
  2. S.Y. Cho, H.R. Byun, H.K. Lee, and J.H. Cha, “Hand Gesture Recognition from Kinect Sensor Data,” Journal of Broadcast Engineering, Vol. 17, No. 3, pp. 447-458, 2012. https://doi.org/10.5909/JBE.2012.17.3.447
  3. J.G. Lee, Y.H. Kim, I.K. Lim, and J.G. Lee, “A Study on Height Methods That Combine Kinect with Ultrasonic Sensor,” Journal of The Korean Institute of Communications and Information Sciences, Vol. 2012, No. 11, pp. 185-186, 2012.
  4. J.H. Na and N.Y. Ko, "Control of a Mobile Robot Using Kinect Sensor," Journal of The Korean Institute of Electronic Communication Sciences, Vol. 6, No. 1, pp. 340-342, 2012.
  5. S.E. Jang, J.M. Tang, and S.W. Kim, "A Bridge Technique of Heterogeneous Smart Platform Supporting Social Immersive Game," Journal of Korea Multimedia Society, Vol. 17, No. 8, pp. 1033-1040, 2014. https://doi.org/10.9717/kmms.2014.17.8.1033
  6. S. Kim and E. Jung, “Adjacent Terminal Device Detection Technique for User Mobility Support on Home Entertainment System,” Journal of Korea Multimedia Society, Vol. 12, No. 1, pp. 156-164, 2009.

Cited by

  1. An Implementation of Taekwondo Action Recognition System using Multiple Sensing vol.19, pp.2, 2016, https://doi.org/10.9717/kmms.2016.19.2.436
  2. 3차원 환경 복원을 위한 다중 키넥트의 마커리스 캘리브레이션 vol.22, pp.10, 2015, https://doi.org/10.9717/kmms.2019.22.10.1142
  3. 다양한 환경에 강인한 컬러기반 실시간 손 영역 검출 vol.14, pp.6, 2015, https://doi.org/10.14372/iemek.2019.14.6.295