정보공간_1

[2기 강남 권도일]손 영역 추적을 위한 루카스 카나데 템플릿 매칭 알고리즘에 대해 본문

IT 놀이터/Elite Member Tech & Talk

[2기 강남 권도일]손 영역 추적을 위한 루카스 카나데 템플릿 매칭 알고리즘에 대해

알 수 없는 사용자 2012. 8. 18. 19:43

 안녕하세요 강남 멤버십 21-1기 권도일입니다. 제가 다룰 주제는 손 영역 추적을 위한 루카스 카나데 템플릿 매칭 알고리즘에 대한 소개입니다. 요즘 파트타임으로 일하고 있는 연구소에서 손 영역 추적에 대한 프로젝트를 진행중인데요. 그에 따라서 사용되는 알고리즘에 대한 간단한 소개를 드리려고 합니다. 저도 이번 프로젝트를 통해서 알아가는 방법인 만큼 이 글을 읽으시는 분들과 함께 차근차근 공부한다는 생각으로 글을 적어보고자 합니다. 그럼 시작해 볼까요?

 우선 컴퓨터 비전에서 제스처 인식의 분류로 크게 몸 동작 인식과 손 동작 인식을 들 수가 있는데요. 몸 동작 인식은 Kinect를 이용한 제스처 인식(뼈대 추적) 응용을 간단히 소개해 드려 보고자 합니다.키넥트는 인체 인식을 위해서 인체의 20개의 조인트를 찾고 그에 대한 3가지 축의 정보를 meter 단위로 환산하여 데이터를 출력해 줍니다키넥트가 깊이정보를  획득하는 원리는 다음과 같습니다. 3개의 카메라 렌즈 중 하나가 적외선 조명기로 먼저 조명기에서 적외선을 방출합니다. 이 적외선 카메라로 보면 무수히 많은 점들이 보이게 되는데요. 적외선 조명기에서 송출된 무수히 많은 점들이 물체에 반사되는 적외선 다른 CMOS카메라가 인식하고, 3D 심도를 인식해서 계산 하게 됩니다. 적외선 카메라의 사용으로 조명이 약한 야간에도 어느 정도의 인식은 가능합니다. 계산량을 고려하여 320x240 크기로 입력 받는다고 합니다. 나머지 컬러 이미지 카메라에서 인식된 색과 위의 정보를 모두 모아서 스켈레톤 형태로 동작을 처리하는 방식으로 사용을 하게 됩니다.

 다음으로 손동작 인식입니다.손동작 인식에는 다양한 방법들이 있으며 무엇이 가장 효과적인 최선책이라고 말 할 수는 없을 것 같습니다. 현재 손동작 인식을 통한 다양한 Interaction에 대한 시도가 이루어지고 있으며 일례로 삼성 스마트ES8000 TV 에서도 다양한 모션 인식을 통한 Interaction을 도입한 것으로 소개되었습니다. 심지어 유명한 gameangry bird도 삼성 스마트 tv를 통하여 할 수 있다고 하더군요. 순수 모션 인식을 통해서 말이죠.

지금까지 간단한 제스쳐 인식의 분류 및 범위에 대한 소개 였고 간단한 제스처 인식에 대한 소개를 하고자 합니다.동경대에서 2010 SIGGRAPH 학회에서 소개된 In-air Typing을 소개하고, 간단하게 정리해 보겠습니다. 먼저 동경대에서 개발한 In-air Typing 프로그램을 동영상으로 보겠습니다.



동경대에서 모바일 기기에 손가락 제스처를 이용하여 키보드 영상을 가상터치 할수 있는 시스템을 구현하였습니다.

이제 그러면 본격적으로 손 영역 추적을 위한 루카스 카나데 템플릿 매칭 알고리즘에 대한 소개를 하도록 하겠습니다. 먼저 간단한 설명을 하도록 하겠습니다.

루카스 카나데 알고리즘에 대한 자세한 설명은 6번의 레퍼런스를 참조하고, 이해를 위주로 간단한 예를 통하여 간단한 정의만 집고 넘어가겠습니다. 먼저 루카스카나데 알고리즘의 사용성에 대해 알아보겠습니다. 아래 그림을 참조하여 보겠습니다.

기본적으로 우리가 해야 할 것은 손가락 인식입니다. 이 인식된 손가락을 이용하여 다양한 Interaction을 선보일 예정인데요. 우선 그러기 위해서 해야 할 작업이 초기 template 영상을 얻어 내는 것입니다. 현재 사진 상에 보이는 파란색 사각형 안에 손가락에 진입하게 되고 5초가 지나면 초기 template 영상을 얻어 내고 이것은 곧 인식이 되었다는 것입니다. 그러면 이것을 이용하여 tracking을 시작하여 보도록 합시다. 우리에게 주어진 정보는 초기화 수행 시 등록된 템플릿 영상과 초기 파라미터들입니다. 여기서 파라미터란, 이동, 회전, 크기에 대한 정보를 담고 있는 변수들입니다. , 손가락의 추적이라는 것은 파라미터의 변화에 대한 추적이라고 볼 수 있습니다. 이 파라미터 추적을 위하여 쓰이는 알고리즘이 위에서 간단히 설명 드린 루카스 카나데 추적 알고리즘입니다.

 위 그림에서 보듯이 사각형의 이동, 회전, 크기 변환를 파라미터로 사용하게 됩니다. 루카스 카나데 알고리즘은 이 파라미터를 추적하게 됩니다. 루카스 카나데 알고리즘은 연속영상에 대해 국부적으로 추적을 수행하기 때문에 연산량을 줄이고 정확한 추적을 수행할 수 있도록 합니다. 따라서 루카스 카나데 알고리즘은 프레임률이 높을수록 추적 성공률이 높아집니다.

초기화된 템플릿 영역의 파라미터를 통하여 다음 영상의 파라미터 정보를 추적 하고, 두 번째 얻은 영상을 통하여 세 번째 영상의 파라미터 정보를 추적하는 과정으로 손가락의 움직임을 추적하고 있습니다

그럼 이제 손가락의 이동에 대한 추적은 가능하게 되었고, 우리가 최종적으로 하고 싶은 터치 인식을 어떻게 하면 좋을지 알아보도록 하겠습니다. 손가락을 클릭하는 경우에 보통 Depth정보를 이용하는데 현재 진행하고 있는 프로젝트에서는 일반 웹캠을 이용하기 때문에 키넥트와 같은 뛰어난 NUI장비처럼 Depth 정보를 뽑아 낼 수가 없습니다. 그래서 이용한 방법이 사각형의 Width를 이용하는 것입니다. 손가락이 가까이 접근 할 경우 사각형의 Width 값은 커질 것이고 멀어 질수록 Width 값은 작아질 것입니다. Width값을 Depth 정보로 사용하여 Depth 변화에 대한 2차원 그래프를 뽑아 낼 수가 있습니다. 다음 그래프를 보도록 하겠습니다

x축을 time line으로 , y축을 사각형 width의 변화라고 주었을 경우 주파수는 손가락 접근성의 속도를 표현 할 수 있을 것입니다. 녹색은 웹캠상에 들어오는 x좌표의 변화를 , 파랑색은 y좌표의 변화를, 빨강색은 Depth의 변화를 나타냅니다. 그래프 상에서 뾰족하게 파동치는 부분을 보실 수 있는데 이 부분이 클릭을 하는 부분입니다.보통 사람들이 Touch Motion을 취할 경우 빠르게 손가락을 움직이고 단순 이동일 경우에는 느리게 손가락을 움직입니다. 이 점을 취합하여 위 그림에서 보듯이 손가락의 이동시에는 저주파 성분의 그래프가 그려지고, 클릭 시에는 급격한 고주파 그래프가 그려집니다. 따라서, 고주파 통과 필터를 이용하여 고주파 성분을 추출하게 되면, 그 성분을 클릭이 발생한 이벤트로 간주할 수 있습니다.

지금까지 현재 제가 진행하고 있는 손가락 제스처 인식에 쓰인 루카스 카나데 추적 알고리즘에 대한 소개였습니다. 이미지 alignment 기법으로 잘 알려져 있는 루카스 카나데 알고리즘은 1981년에 Bruce D. Lucas와  Takeo Kanade에 의해 처음 소개되었다고 하네요

새로운 분야에 대한 시도를 해보는 것은 언제나 힘들지만 설레고 재미난 경험인 것 같습니다. 이 글을 읽는 분들에게 이 글이 많은 도움이 되었으면 하는 바람입니다.


[참조]

1, Lucas-Kanade 20 Years On: A Unifying Framework , SIMON BAKER AND IAIN MATTHEWS.         International Journal of Computer Vision. 2004. 221-255

2. Takashi Komuro: Vision-based 3D Input Interface Technologies (invited), The 17th International Display Workshops (IDW '10) (Fukuoka, 2010.12.2) / Proceedings, pp. 1739-1742.

3. http://www.youtube.com/watch?v=8HXnjAyT3cM