프로젝터-카메라 시스템에서 물체와 벽면 간 충돌 위치 추정을 위한 시스템 구성 및 방법 연구
Copyright ⓒ 2020 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
깊이 카메라가 장착된 프로젝터-카메라 시스템은 디지털 콘텐츠와 결합하여 체감형 놀이 콘텐츠 제작에 많이 이용된다. 대부분의 콘텐츠 제작자들은 깊이 카메라 제조사에서 제공되는 라이브러리만을 이용하기 때문에 제작된 콘텐츠의 시나리오가 주로 사용자의 동작을 인식하고, 인식된 동작에 따라 콘텐츠를 시각화하는 형태로 구성된다. 본 논문에서는 이러한 제한된 콘텐츠 구성에서 벗어나 프로젝터-카메라 시스템에서 던지기 놀이 콘텐츠 제작이 가능하도록 시스템 구성 및 물체와 벽면 간 충돌 위치 추정 방법을 제안한다. 제안된 방법은 벽 앞에 깊이 버퍼를 두고 깊이 버퍼에 들어온 물체만을 인식함으로써 충돌된 물체의 위치를 정확히 추정할 수 있다. 제안된 방법을 평가하기 위해 크기가 다른 2개의 물체를 이용하여 추정된 위치의 정확도와 처리 시간을 측정한다.
Abstract
A projector-camera system equipped with a depth camera is widely used in the production of sensory play contents in combination with digital contents. Since most content creators use only the library provided by the depth camera manufacturer, the scenario of the produced content mainly consists of recognizing the user's motion and visualizing the content according to the recognized motion. In this paper, we propose a system configuration and a method of estimating the collision position between an object and a wall so that it is possible to create a throw play content using a depth camera, away from the limited content configuration. The proposed method can accurately estimate the position of the collided object by placing a depth buffer in front of the wall and recognizing only the object entering the depth buffer. In order to evaluate the proposed method, two objects of different sizes are used to measure the accuracy and processing time of the estimated position.
Keywords:
Sensory Play Contents, Depth Camera, Throw Play Contents, Projector-Camera System, Position Estimation키워드:
체감형 놀이 콘텐츠, 깊이 카메라, 던지기 놀이 콘텐츠, 프로젝터-카메라 시스템, 위치 추정Ⅰ. 서 론
최근에는 IT 기술의 발전과 함께 디지털 콘텐츠와 결합하여 어린이들을 위한 다양한 체감형 놀이 콘텐츠가 제작되고 있다[1]-[4]. 대부분의 체감형 놀이 콘텐츠의 시나리오들은 사용자의 행동을 인식하고 인식된 행동에 따라 디지털 콘텐츠를 시각화하는 형태로 구성되기 때문에, 행동 인식을 위한 깊이 카메라, 콘텐츠 시각화를 위한 프로젝터가 포함된 프로젝터-카메라 시스템이 많이 활용된다. 깊이 카메라는 제조사에서 라이브러리를 무료로 제공하기 때문에, 콘텐츠 제작자는 기술개발 없이도 기획한 콘텐츠를 만들 수 있다 [5], [6]. 하지만 제공되는 라이브러리에 제한된 콘텐츠 시나리오만을 기획해야 한다는 한계를 가지고 있다.
체감형 놀이 콘텐츠에는 행동 인식 외에 물체를 매개로 던지기 놀이 형태의 콘텐츠도 제작되었다. 이와 같은 콘텐츠에서 물체와 벽면 간의 충돌 위치를 추정하기 위해서 적외선 카메라를 이용하거나 레이저 센서를 이용한다. 적외선 카메라를 이용할 경우 2D 영상만으로 해석하기 때문에 벽에 던져진 물체의 충돌 여부를 판단하기 어려우며 벽에 부딪히기 전에 좌표가 추정되므로 정확한 좌표가 추정되지 못한다. 레이저 센서의 경우 벽에 충돌된 물체의 위치를 높은 정확도로 추정할 수 있으나, 고가의 장비이며 레이저가 발사된 방향에 두 개 이상 물체가 동시에 존재할 경우 센서 가까이에 있는 물체 하나만 위치 추정이 가능하다.
본 연구에서는 이러한 한계를 해결하고 프로젝터-카메라 시스템에서 던지기 놀이 형태의 콘텐츠 제작이 가능하도록 프로젝터-카메라 시스템 구성 및 물체와 벽면 간 충돌 위치 추정 방법을 제안한다. 제안된 방법은 깊이 버퍼를 벽 앞에 두고 버퍼 안에 들어온 물체만을 인식함으로써 벽에 충돌된 물체의 위치를 정확히 추정한다. 위치 추정을 위해 먼저 인식영역인 관심영역 (ROI: Region of Interest)을 설정하고 벽면으로부터 버퍼의 깊이 값을 설정한다. 그리고 잡음 제거와 윤곽선 찾기 방법을 적용함으로써 물체의 위치를 추정하게 된다. 추가로 제안된 방법을 쉽게 체감형 놀이 콘텐츠에 적용하기 위해 콘텐츠 프로그램에 네트워크 통신을 이용하여 추정된 위치 데이터를 전달한다.
본 논문의 구성은 다음과 같다. 1장에서는 프로젝터-카메라 시스템에 관해 설명하고 체감형 놀이 콘텐츠에서 제안된 방법의 필요성에 관해 기술한다. 2장에서는 깊이 카메라를 이용한 콘텐츠들을 조사하고 분석한다. 3장에서는 제안된 방법에 대해 상세히 기술하고, 4장에서는 제안된 방법의 성능을 평가하고 실험 결과를 설명한다. 마지막으로 5장에서는 한계점과 추후 연구에 대해 언급하고 결론을 맺는다.
Ⅱ. 연구 동향
깊이 카메라는 다양한 상호작용 미디어 콘텐츠 개발에 많이 이용되어 왔다. 그림 1은 깊이 카메라를 이용하여 직접 속으로 캐릭터들을 제어할 수 있는 별주부전 전래동화 콘텐츠를 보여준다 [7]. 제작된 콘텐츠는 손으로 직접 3D 캐릭터를 조작함으로써 사용자들에게 흥미와 몰입감을 준다는 장점이 있다. 하지만 어린이들은 세밀한 조작이 어려우므로 시나리오에 맞게 진행하기에는 어려움이 있다.
그림 2는 깊이 카메라를 이용하여 사용자의 손동작을 인식하고 인식된 손동작에 따라 적합한 글자와 이미지가 나타나는 한글 교육용 콘텐츠 보여준다 [8]. 제안된 콘텐츠 역시 손동작을 실시간으로 인식하고 어린이들에게 교육 콘텐츠를 제공한다는 측면에는 장점이 있지만, 원하는 자음을 정확히 선택하기 위해서는 정밀한 손동작이 필요하다는 단점이 있다.
그림 3은 홀로그래피 프로젝션 3D 콘텐츠와 사용자 간의 자연스러운 홀로그래피 상호작용 방법을 보여준다 [9]. 제안된 방법은 깊이 카메라를 이용하여 홀로그래피 콘텐츠의 주변 공간을 컴퓨팅 환경으로 보고 사용자의 동작 정보를 공간적으로 해석하는 것이다. 홀로그래피를 이용하여 사용자의 몰입감을 증가시키는 장점은 있지만, 3차원 공간에서 조작되는 콘텐츠와 깊이 카메라로 인식된 스켈레톤 위치를 정확히 교정(calibration) 해야 한다는 어려움이 있다.
기존 연구들은 깊이 카메라를 동작 인식에만 적용하여 콘텐츠를 제작하였으며, 제안된 방법은 동작 인식 이외에 던지기 놀이 콘텐츠 제작에 활용함으로써 시나리오의 확장이 가능하다. 또한, 상호작용 방법은 단순하고 반복적인 동작을 요구하므로 어린이들을 대상으로 한 쉽고 활동적인 콘텐츠 제작이 가능하다.
Ⅲ. 시스템 설계 및 구현
3-1 시스템 구성
그림 4는 물체 충돌 위치 추정을 위한 프로젝터-카메라 시스템 구성을 보여준다. 프로젝터 위치는 카메라 뷰를 가리지 않도록 하단에 위치되며 사용자로 인해 프로젝터 영상이 가려지는 현상을 막기 위해 단초점 프로젝터를 이용한다. 카메라는 사용자가 카메라 뷰를 가리지 않도록 상단에 설치되며, 카메라 뷰에는 프로젝터 영상이 모두 포함되도록 벽으로부터 일정 거리를 유지한다.
카메라 뷰는 프로젝터 영상보다 크고 비율이 일치하지 않기 때문에 카메라로 추정된 물체의 위치가 정확하게 프로젝터 영상 좌표를 일치시켜주기 위한 교정과정이 필요하다. 제안된 시스템의 교정과정은 관심영역 설정과 벽에 근접한 물체만을 인식하기 위한 깊이 버퍼 설정으로 구성한다.
그림 5 는 교정을 위한 사용자 인터페이스의 도식화를 보여준다. 관심영역 설정을 위해서 그림 5 (a)와 같이 p0~p3 까지의 4개의 조절점 (control points) 이 존재한다. 각 점은 카메라 뷰에서 보이는 프로젝터 영상의 4개 모서리에 정확히 위치시키도록 설정한다. 그림 5 (b)와 같이 깊이 버퍼 설정을 위해서 상단의 깊이를 설정할 수 있는 점(c0)과 하단의 깊이를 설정할 수 있는 점(c1)이 존재한다. 설정된 점들을 기준으로 선형으로 버퍼의 깊이가 결정된다.
3-2 위치 추정
물체의 존재 여부를 확인하고 위치를 추정하기 위하여 깊이 데이터를 이용한다. RGB 데이터를 사용하여 벽과 물체 간의 거리를 알기 위해서는 추가적인 알고리즘이 필요하지만, 깊이 데이터를 이용하면 벽과 물체와의 거리를 간단히 알 수 있으므로 벽에 매우 근접 또는 충돌된 물체를 인식하고자 할 때 유용한다.
그림 6 은 제안된 시스템의 물체 인식 및 위치 추정과정을 보여준다. 3-1 시스템 구성에서 언급한 것과 같이 정확한 위치 추정을 위해서 관심 영역을 먼저 설정하고 물체 크기에 적절한 깊이 버퍼를 설정한다. 그리고 설정된 영역과 버퍼 크기에 의해 깊이 영상이 절단되어 벽에 근접한 물체만 포함된 이미지를 만든다 (그림 7). 이때 깊이 이미지를 사용할 경우 벽과 물체간의 거리 차이가 작으므로 잡음 제거와 등고선 찾기에서 물체를 적절히 찾아내지 못하는 문제가 발생할 수 있다. 이를 방지하기 위하여 식 1과 같이 이미지에 대한 이진화 과정을 수행하게 된다.
(1) |
x는 깊이 버퍼에 의해 절단된 깊이 이미지의 각 픽셀 값을 나타내며, BufferSize는 설정된 버퍼 크기를 나타낸다.
깊이 카메라의 경우 난반사가 발생하여 영상에 잡음이 발생한다. 이를 최소화 하기 위해서 잡음 제거를 위한 가우시안 블러(gaussian blur), 침식(erosion), 팽창(dilation)이 적용한다. 잡음이 제거된 이미지로부터 등고선 찾기를 적용하여 픽셀 군집화를 통한 물체 인식과 위치를 찾는다[10].
마지막으로 카메라 뷰에서의 위치 값을 프로젝터 영상좌표 계로 변환시키는 좌표보정 작업을 수행한다. 좌표보장은 관심 영역 설정시 이용된 4개의 조절점과 이에 대응되는 4개의 모소리 점((0, 0), (0, width), (height, width), (height,0))을 이용하여 식 2의 투시변환(perspective transformation) 행렬 (H) 을 계산한다. 그리고 물체의 좌표에 투시변환 행렬을 적용하여 프로젝터 영상과 일치된 좌표를 얻게 된다.
(2) |
pʹ와 p는 동차좌표계로서 H는 3행 3렬로 표현되고 pʹ와 p은 3차원 벡터이다.
3-3 시스템 구현
하드웨어 장비로서 깊이 영상을 입력받기 위해 키넥트 카메라와 영상 출력을 위한 단초점 프로젝터를 이용한다. 그리고 시스템 개발을 위해 미디서 소프트웨어 개발에 용이한 오픈프레임워크 (openframeworks) [11] 와 네트워크를 통한 추정 위치 값 전달을 위해 UDP 통신의 OSC (Open Sound Control) [12] 을 이용한다.
그림 8 은 오픈프레임워크로 개발된 시스템의 사용자 인터페이스 화면을 보여준다. 그림 8 (a)는 시스템의 전체 설정화면을 나타내며, 설정 내용에는 3-1 시스템 구성에서 언급된 교정을 위한 설정, 카메라 설치 방향에 따라 깊이 영상을 상하좌우 반전 시킬 수 있는 카메라 설정, 그리고 물체 추정을 위해 필요한 설정이 포함되어 있다. 그림 8 (b) 에서와 같이 관심 영역 설정 인터페이스에는 벽까지의 거리값을 보여준다.
그림 9 는 서로 다른 크기의 공을 던진 후 충돌 전, 충돌 중, 충돌 후 추정된 물체의 충돌 위치를 보여준다. 그림 9 (a)와 (b) 에서는 각각 지름이 12.5 cm와 6.3 cm 의 공을 이용하였으며, 모두 충돌 후 추정된 충돌 위치(하늘색)가 나타남을 확인할 수 있다. 프로젝트 영상에서 추정된 공의 위치는 하드웨어와 소프트웨어 처리속도로 인해 늦게 나타났으며 이에 관한 내용은 Ⅳ. 실험에서 설명한다.
Ⅳ. 실험
제안된 방법의 성능을 평가하기 위해 정확도와 처리 시간에 대해 실험을 수행하였다. 정확도는 촬영된 실험 영상에서 물체의 위치와 추정된 위치를 비교함으로써 거리 오차를 측정하였다. 처리 시간의 경우 충돌 직후부터 추정된 위치가 나타나기까지의 시간을 측정하였다. 그림 10은 실험에서 사용된 크기가 다른 2개의 공을 보여준다.
표1은 정확도와 처리 시간를 측정한 결과이다. 정확도의 경우 큰 공의 경우 약 3 cm의 오차와 작은 공의 경우 약 3.5 cm의 오차가 발생하였다. 실험 결과 공이 다른 크기라도 그 오차는 유사하게 나타났으며, 전체 평균은 3.25 cm 로서 체감형 놀이 콘텐츠에 충분히 적용 가능한 정확도를 보였다.
처리 시간의 경우 큰 공은 127 ms, 작은 공의 경우 114 ms, 그리고 평균 120 ms으로 나타났다. Kinect V2 카메라의 경우 30 fps 의 성능을 가지며, 처리 시간에서 하드웨어 시간을 제외한 위치 추정 알고리즘 동작시간은 평균 87ms로 나타났다. 제안된 방법은 추정되는 물체 수 증가에 따른 처리 시간 증가가 없으므로 어린이를 대상으로 한 체감형 놀이 콘텐츠에 적용할 수 있다. 야구 게임과 같이 물체의 빠른 추정을 요구하는 체감형 콘텐츠에 대해서는 제안된 시스템의 적용이 어려우며 이를 해결하기 위해서는 각 단계에 대한 최적화 방법이 필요하다.
Ⅴ. 결 론
본 논문에서는 프로젝터-카메라 시스템을 이용하여 던지기 놀이 형태의 콘텐츠 제작이 가능하도록 시스템 구성 및 물체와 벽면 간 위치 추정 방법을 제안하였다. 제안된 방법은 깊이 카메라를 이용하여 벽 앞에 얇은 깊이 버퍼를 만들고 버퍼에 들어온 물체들만 인식하고 위치를 추정함으로써 벽에 근접하거나 충돌된 물체의 위치를 정확히 추정할 수 있다.
추후 연구로서 첫 번째는 교정과정의 자동화이다. 제안된 시스템은 교정하는 사람의 숙련도에 따라 시스템의 성능이 달라질 수 있다. 이 부분을 해결하기 위해 최적화된 자동화 교정 과정이 필요하다. 두 번째로는 평평한 벽뿐만 아니라 그림 11과 같이 곡선형의 벽에서도 시스템이 동작하도록 연구·개발하는 것이다.
Acknowledgments
이 논문은 2020년도 경남과학기술대학교 교원 연구활성화 지원 사업의 예산지원으로 수행되었음
참고문헌
- teamLab. Production. Available: https://www.teamlab.art/ko/products/
- Gemstone, Mo-on Company and BrandArchitectsCo, Magic Forest Gallery Available: https://magicforest.modoo.at/?link=aewllas7, .
- S. E. Choi,, J. W. Jung and Y. W. Seo, “Technology Trend and Application for Tabletop Device and Interactive Wall Display,” Communications of the Korean Institute of Information Scientists and Engineers, Vol. 26, No. 3, pp. 5-14, Mar 2008.
- J. W. Lee, Y. J. Jeon, and C. G. Kang, “Development of Interactive Nature Education Contents Using Hologram”, Journal of Digital Contents Society, Vol. 21, No. 4, pp. 1,145-1,154, April 2020. [https://doi.org/10.9728/dcs.2020.21.4.647]
- Kinect for Windows SDK 2.0. Available: https://www.microsoft.com/en-us/download/details.aspx?id=44561
- Azure Kinect SDK. Available: https://docs.microsoft.com/ko-kr/azure/kinect-dk/sensor-sdk-download
- C. J. Lee, and T. J. Choi, “3D Content Creation of Korean Traditional Tales Using a Depth Camera : on the Basis of he Hare and The Tortoise”, Journal of the Korea Entertainment Industry Association, Vol. 10, No. 3, pp. 329-336, June 2016. [https://doi.org/10.21184/jkeia.2016.06.10.3.329]
- Y. A. Kim, J. H. Jeon, J. H. Yang, and G. M. Park, “Development of an Edutainment 3D Contents using Depth Camera Gesture Recognition for Children”, Proceedings of Symposium of the Korean Institute of communications and Information Sciences, pp. 886-887, June 2015.
- S. Y. Lim, and S. W. Kim, “A Study on Interaction method using Depth Camera between Holographic Contents and Users”, Proceedings of the Korean Information Science Society Conference, Vol. 39, No. 2(C), pp. 205-207, Nov. 2012.
- S. Satoshi and A. Keiichi, “Topological structural analysis of digitized binary images by border following,” Computer Vision, Graphics, and Image Processing, Vol. 30, No. 1, pp. 32-46, April 1985. [https://doi.org/10.1016/0734-189X(85)90016-7]
- Openframeworks. Available: https://openframeworks.cc/
- Open Sound Control (OSC). Available: http://opensoundcontrol.org/
저자소개
2010년: 광주과학기술원 (공학석사)
2017년: 광주과학기술원 (공학박사)
2018년 ~ 현재: 경남과학기술대학교 컴퓨터공학부 조교수
※관심분야:컴퓨터 그래픽스(Computer Graphics), 인터랙티브 미디어(Interative Media), 증강현실(Augmented Reality), 인공지능(Artificial Intelligence) 등