Ⅰ. 서론
인간이 시각적으로 느끼는 원리를 모방하여 입체적인 공간에 나타내는 3D 입체 영상은 현장감을 극대화시키고 사실적인 표현이 가능하기 때문에 방송, 영화, 애니메이션, 광고, 교육 등의 분야에서 디지털 영상 매체의 핵심 IT 기술로서 각광 받고 있다[1].
이 가운데에서 콘서트, 전시 등에서 증강현실 기술과 융합 가능한 플로팅 홀로그램(floating hologram)은 입체감과 현실감이 더욱 풍부한 입체 영상을 제공하는 기술로서 영상처리 기술을 접목하면 사용자와 상호작용이 가능하다. 그러나 일반적으로 플로팅 홀로그램은 제작비용이 많이 들고 보편화되지 않은 단점이 있다[2].
플로팅 홀로그램은 그림 1과 같이 스크린 (a)에서 플로팅 홀로그램 캐릭터를 출력하며, 45도로 기울이게 설치된 반사판 (b)에 의해서 영상이 굴절되어 사용자의 눈에는 플로팅 홀로그램 캐릭터가 (c)에 나타나는 것처럼 허공에 떠있는 것같이 시각적인 착시를 일으키는 기술이다. 따라서 일반적인 3D 영상을 감상할 때 착용하는 3D 안경의 불편함, 시각적 피로, 공간 왜곡 현상 발생이 감소되며, 현장감과 실존감이 뛰어난 3D 영상 감상이 가 능하다. 그러나 이 기술은 일반적으로 광고, 콘서트 등 넓은 공간을 요구하는 분야에서만 한정적으로 활용되고 있기 때문에 사용이 용이하지 않다.
그림 1. 플로팅 홀로그램의 원리
Fig. 1. Floating hologram principle
본 논문에서는 플로팅 홀로그램과 영상처리 기술을 융합하여 플로팅 홀로그램 환경에서 홀로그램으로 디스플레이되는 캐릭터 조작을 위한 사용자 제스처 인식 시스템을 구현한다. 제안하는 방법은 그림 2와 같이 실시간으로 디스플레이되는 홀로그램 상의 캐릭터를 조작하기 위하여 사용자 제스쳐 영상을 그레이 영상으로 변환한 제스쳐 영상에 하르특징(harr feature)을 이용하여 얼굴 영역을 검출한다. 그리고 검출된 영역을 기준으로 차영상(subtracted image) 정보를 이용하여 사용자의 제스처 변화 영역을 검출한다.
그림 2. 플로팅 홀로그램 캐릭터 조작을 위한 사용자 제스처 인식 시스템 흐름도
Fig. 2. Flow diagram of User Gesture Recognition System for manipulating a Floating Hologram Character
제스쳐 인식을 위해서는 검출된 두 영역의 위치 관계 정보를 기반으로 사용자 제스처를 분류하고, 분류된 제 스쳐에 상응한 행위를 플로팅 홀로그램 캐릭터의 움직임에 맵핑한다. 그리고 사용자 제스처에 따라 조작되는 캐릭터를 플로팅 홀로그램으로 출력한다.
Ⅱ. 얼굴 검출
본 논문에서는 제스쳐 인식의 기준점으로 이용하기 위하여 오픈 컴퓨터 비전 소스인 OpenCV 라이브러리에서 제공하는 하르 특징 기반의 캐시케이스 분류기[3]를 이용하여 입력되는 사용자 실영상으로부터 얼굴 영역을 검출한다. 하르 특징 기반의 케시케이드 분류기는 P. Viola 와 M. Jones에 의해서 제안된 방법[4]으로서 얼굴 영역 판별을 위하여 많은 수의 참얼굴과 거짓얼굴을 분류기 훈련을 위해서 사용한다. 그리고 얼굴 영상으로부터 특징을 추출하기 위해서는 그림 3과 같은 다양한 특징 커널을 이용하여 각 커널의 검은 영역의 화소 합으로부터 흰 영역의 화소 합과의 차를 특징으로 정의한다[3][4].
그림 3. 하르 유사도 필터의 예
Fig. 3. Examples of Haar-like-feature Filter
본 논문에서는 사용하는 하르 특징 유사도 방법은 사용 데이터 크기가 작고, 속도가 빠르다는 점에서 실시간으로 얼굴 검출에 용이하다[4]. 또한 오픈 소스 코드인 OpneCV 라이브러리는 사용자가 원하는 특정 객체를 인식시키기 위한 학습 라이브러리를 제공하고 있으며, 얼 굴, 눈, 스마일 등의 미리 학습된 데이터베이스 파일도 제공하고 있다. 본 논문 그림 7의 결과 영상에서 얼굴 영역의 빨간색 원형 부분은 OpneCV에서 제공하는 하르 케시 케이드 방법[3]을 이용한 검출된 얼굴 영역을 나타낸다.
그림 7. 사용자 제스처에 따른 상태 예
Fig. 7. Example of State Classified according to User Body Gesture
Ⅲ. 사용자 제스처 검출
본 논문에서는 사용자 제스처 검출을 위하여 연속적으로 입력되는 실영상으로부터 프레임간의 영상 차이를 계산하는 차영상 방법을 사용한다. 차영상 방법은 움직이는 사람이나 객체를 검출하기 위한 방법으로서 연속되는 영상에서 검출하고자 하는 영상과 이전 시간의 영상 을 화소 단위 빼기 연산하는 고전적 방법으로 두 영상간 의 차이, 즉 변화량을 측정하는 방법이다[5][6].
입력 영상은 먼저 컬러 영상의 차영상 연산에서 발생 하는 많은 연산량과 잡음 등의 문제 해결을 위하여 그레이 영상으로 변환하여 아래 식 (1)을 이용하여 차영상을 생성한다.
ID(x,y) = Gt(x,y) - Gt-1(x,y) (1)
식 (1)에서 ID(ㆍ)는 차영상 이미지를 의미하며 그림 4의 (e)와 같다. 그리고 Gt(ㆍ) 는 가장 최근에 입력된 원본 이미지인 (a)를 그레이 영상으로 변환한 이미지를 의미하며 그림 4의 (c)와 같다. Gt-1(ㆍ) 는 가장 최근에 입력된 원본 이미지보다 한 프레임 먼저 들어온 이미지를 의미하며 그림 4의 (d)와 같다.
그림 4. 사용자 제스처 검출의 예
Fig. 4. Examples of User Gesture Detection
식 (1)에 의해서 생성된 차영상은 그레이 영상으로서 제스쳐 식별에 필요 없는 강도 정보를 포함하고 있다. 따라서 제스쳐 발생 위치 인식을 위하여 필요한 정보를 보다 명확하게 획득하기 위하여 아래 식 (2)를 이용하여 차영상을 이진화한다.
\(I_{B}(x, y)=\left\{\begin{array}{ll} 1 & \text { if } \quad I_{D}(x, y)>T \\ 0 & \text { otherwise } \end{array}\right.\) (2)
식 (2)에서 IB(ㆍ)는 이진화된 차영상을 의미하며, T 는 임계값을 의미한다. 그림 4의 (f)와 같이 이진화된 차영상은 사용자 체스쳐 발생 위치 검출을 위해서 필요없는 강도 정보는 제거되었지만, 동시에 필요한 위치 단서 정보도 약해지는 현상이 발생한다.
따라서 획득된 차영상에서의 단서 영역의 강화를 위하여 아래 식 (3)과 같이 정의된 모폴로지의 팽창 (Dilation) 연산을 수행한다. 일반적으로 팽창 연산은 검출하고자 하는 객체의 작은 구멍과 같은 잡음을 제거 하거나 검출하고자 하는 특징을 확대하기 위해 많이 사용하고 있다[7].
\(\begin{aligned} I_{E}(x, y)=A \oplus B=\{&\left.z \in E \mid\left(B^{s}\right)_{z} \cap A \neq \varnothing\right\} \\ \text { where, } \quad A &=I_{B}(x, y) \end{aligned}\) (3)
식 (3)에서 IE(ㆍ)은 모폴로지의 팽창 연산을 적용한 차영상 강화 영상을 생성하며, A는 이진화한 이미지를 의미한다. 그리고 B(BS:symmetric)는 모폴로지 연산을 위한 마스크 이미지를 의미하며 보통의 경우 3✕3 마스크를 이용한다.
사용자 제스쳐 발생 영역 검출을 위한 단서 영상인 IE(ㆍ)가 생성되면, 그림 4의 (h)와 같이 생성된 IE(ㆍ) 로부터 사용자 제스쳐 분류 기준 설정을 위한 제스쳐 발생 영역에 대한 최소근접사각형 이미지를 생성한다. 그리고 제스쳐 발생 영역에 대한 정량적 기준 설정을 위한 아래 식 (4)와 같이 최소근접사각형 영역에 대한 기준값을 계산한다.
MA(MBRLU, MBRRD) = arg{IMBR(ㆍ)} (4)
식에서 MBRLU과 MBERD은 각각 최소근접사각형 영역으로부터 얻어진 좌측 상단의 좌표와 우측 하단의 좌표를 의미한다. 계산된 좌표는 검출된 얼굴 영역의 중심 좌표와 함께 제스쳐 분류를 위한 기준으로 사용된다.
Ⅳ. 사용자 제스처 분류
사용자의 제스쳐를 홀로그램 캐릭터와 맵핑하고 조작 하기 위하여 실시간으로 입력되는 실영상으로부터 얼굴 영역과 제스쳐 발생 영역을 계산하여 그림 5와 같이 사용 자 제스쳐를 분류한다.
그림 5. 사용자 제스처에 따른 상태 전이도
Fig. 5. State Transition Diagram according to User Gestures
그림 5는 사용자 제스처에 따른 상태 전이도를 나타낸 것으로 S0는 사용자 제스쳐 입력을 위한 대기 상태이며, 각각의 Sn은 각 사용자의 제스쳐 인식 상태를 나타낸다. 여기서 S1은 좌우로 몸을 흔드는 상태를 나타내며, S2는 걷는 상태를 나타낸다. 그리고 S3는 손을 흔들며 인사를 하는 상태를 나타내며, S4는 제자리에서 점프하는 상태를 나타낸다. 특히 걷는 상태를 나타내는 S2의 경우 실내에서 하는 사용자 제스처임을 고려하여 다리의 움직임을 제외한 팔의 움직임만 사용자의 걷는 제스처로 분류하였다.
그림 5의 실선 화살표 ⓐ∼ⓓ는 상태에 따른 전이조건을 나타내며, 그림 6은 사용자 제스쳐 분류를 위한 분류 기준을 도식화한 것이다.
그림 6. 사용자 제스처 분류를 위한 기준 영역
Fig. 6. Criteria Region for User Gestures Classification
그림 6에서 FC(face center)는 검출된 얼굴 영역의 중심을 의미하고, WG(width guide line)와 HG(height guide line)는 각각 얼굴 움직임을 판단하기 위한 좌우 상하 기준 범위를 의미한다. 그리고 MA(motion area)는 식 (4)에 의해서 계산된 사용자 제스처 발생 영역을 의미 하며, 제스쳐 발생 영역의 분류를 위하여 얼굴 영역을 기준으로 한 세 영역을 설정한다. BA(below area)은 얼굴 아래 영역, RA(right area)은 얼굴 오른쪽 영역, UDA(up down area)는 얼굴의 상/하한 경계 내부를 의미한다.
그림 5에서 상태 S1(몸흔들기)은 대기 상태인 S0에서 FC가 WG보다 클 때, 즉 얼굴을 중심으로 좌우에서 사용자 제스처가 검출된 상태이며 그림 7에서 (a), (e)를 나타낸다. 상태 S2(걷기동작)는 대기 상태인 S0에서 FC가 WG보다 작고 MA가 BA보다 클 때, 즉 얼굴은 고정되어 있고 얼굴을 중심으로 아래에서 사용자 제스처가 검출된 상태이며 그림 7에서 (b), (f)를 나타낸다. 상태 S3(손흔 들기)는 대기 상태인 S0에서 FC가 WG보다 작고 MA가 RA보다 클 때, 즉 얼굴은 고정되어 있고 얼굴을 중심으로 오른쪽에서 사용자 제스처가 검출된 상태이며 그림 7에서 (c), (g)를 나타낸다. 상태 S4(점프)는 대기 상태인 S0에서 FC가 HG보다 크고 MA가 UDA보다 클 때, 즉 얼굴을 중심으로 위아래로 얼굴 영역이 검출되고 몸 전체에서 사용자 제스처가 나타난 상태이며 그림 7에서 (d), (h)를 나타낸다.
Ⅴ. 실험
본 논문에서 구현한 플로팅 홀로그램 캐릭터 조작을 위한 사용자 제스처 인식 시스템의 성능평가를 위해서 사용자 제스처 인식 및 분류는 오픈 소스 컴퓨터비전 라이브러리 OpenCV를 기반으로 Windows 10 환경 하에서 C++ 언어를 사용하여 각 처리 단계를 구현하였다. 또한 플로팅 홀로그램 상에서의 캐릭터는 AUTODESK 社의 3DS MAX 2017에서 제작하였다. 그리고 캐릭터 홀로그 램을 위한 홀로그램 박스는 하드보드지, 우드락, 아크릴 판, 7인치 스크린을 이용하여 직접 제작하였다.
그림 8는 본 논문에서 홀로그램 디스플레이 환경 구축을 위한 플로팅 홀로그램 박스의 도면으로 (a)는 플로팅 홀로그램의 선명도를 위해 검은색 하드보드지를 이용하 여 주변 빛을 차단하는 플로팅 홀로그램 박스 겉면으로 서 플로팅 홀로그램 박스의 후면부, 측면부, 상하부이다. (b)는 스크린이 들어갈 공간을 위한 도면으로 앞에서 볼 때 스크린이 보이지 않도록 약간의 벽을 쌓을 수 있도록 설계 되어 있다. (c)는 반사판 역할을 할 아크릴판의 크기를 나타내며 45도보다 약간 높은 각도로 설계 되어 있다.
그림 8. 플로팅 홀로그램 박스의 도면
Fig. 8. Drawing of Floating Hologram Box
본 논문의 플로팅 홀로그램 캐릭터는 그림 9와 같은 과정을 거쳐서 제작한다. 복잡한 캐릭터의 형태를 구성하는 작업인 모델링 작업은 캐릭터 제작에 있어서 가장 먼저 이루어져야 하는 과정으로서 재질 편집기(material editor) 기능을 이용하여 캐릭터 표면에 다양한 색상과 재질을 자유롭게 적용하는 매핑 작업을 해준다. 매핑 작업을 마친 오브젝트는 캐릭터의 움직임을 줄 수 있는 바이패드(biped)를 만들어 주고, 바이패드를 이용하여 움직임을 가진 캐릭터의 모습을 보여주는 애니메이션 과정을 진행한다. 이 애니메이션 과정에서는 각 프레임에 Auto key 기능을 이용해서 캐릭터가 각 프레임마다 취하는 동작을 계산하고 바이패드로 입력하여 하나의 애니메이션이 출력될 수 있도록 한다.
그림 9. 플로팅 홀로그램 캐릭터의 제작 예
Fig. 9. Making Examples of Floating Hologram Characte
그림 9는 본 논문에서 사용하는 4가지 사용자 제스쳐에 상응하는 캐릭터의 모델링, 매핑, 모션의 제작 과정의 예이다.
그림 10은 플로팅 홀로그램 캐릭터 조작을 위한 사용자 제스처 인식 시스템의 시뮬레이션 결과이다. 그림 10에서 S0는 플로팅 홀로그램 캐릭터가 사용자 제스처를 대기하고 있는 그림이며, S1 ∼S4는 사용자 제스처에 따라서 각각 맵핑된 플로팅 홀로그램 캐릭터의 동작을 나타낸다.
그림 10. 시뮬레이션 결과 예
Fig. 10. Example of Simulation Results
플로팅 홀로그램 캐릭터 조작을 위한 각 사용자 제스쳐별 인식률 평가를 위해서는 각 사용자 제스처당 50회 씩의 반복 실험을 실시하고 인식률을 측정한 결과 표 1과 같은 결과를 보였다. 표 1에서 상태 S3(손흔들기) 동작의 경우 손흔들기 동작의 특성상 차영상 추출에서의 잔상 효과에 의해서 제스쳐 검출 영역의 오류로 인하여 다른 동작에 비해 낮은 인식률을 나타냈다.
표 1. 모션 상태에 따른 몸 제스처 인식률
Table 1. Body Gesture Recognition Rate by Motion State
Ⅵ. 결론
본 논문은 플로팅 홀로그램 환경을 구축하고, 홀로그램으로 디스플레이되는 캐릭터에 대하여 사용자와 동일한 행위를 맵핑하는 사용자 제스처 인식 시스템을 구현하였다. 기존의 상용화된 플로팅 홀로그램보다 저렴하고 접하기 쉬운 플로팅 홀로그램을 구현하였으며, 입체감과 몰입감이 뛰어나 사용자의 흥미를 유발하고 집중력을 향상시킬 수 있었다. 실험 결과, 상태에 따른 사용자 제스처의 인식률에서 일부 제스쳐를 제외하고는 평균적으로 높은 인식률을 보였다. 특히, 구현한 시스템은 비교적 단순한 제스쳐 인식이지만, 유아용 어플리케이션에 최적화 시스템으로서 그 가치가 있다.
향후 사용자 제스쳐 인식률 향상과 다양한 콘텐츠 활용에 대한 최적화 연구가 진행된다면, 본 논문에서 연구된 내용은 스마트폰을 기반으로 하는 다양한 홀로그램 디바이스 개발을 위한 사용자의 편의성 및 보편화에 큰 효과를 기대할 수 있다.
참고문헌
- C. Slinger, C. Cameron, and M. Stanley. "Computer-generated holography as a generic display technology", Computer, Vol. 38, No. 8, pp. 46-53, Aug. 2005. DOI: https://doi.org/10.1109/MC.2005.260.
- J. Y. Son, et al. "A floating type holographic display", Optics Express, Vol. 21, No. 17, pp. 20441-20451, Aug 2013. DOI: https://doi.org/10.1364/OE.21.020441.
- https://docs.opencv.org/
- P. Viola, and M. J. Jones, "Robust real-time face detection", International journal of computer vision, Vol. 57, No. 2, pp. 137-154, May 2004. DOI: https://doi.org/10.1023/B:VISI.0000013087.49260.fb.
- N. Paragios, and R. Deriche. "Geodesic active contours and level sets for the detection and tracking of moving objects", IEEE Transactions on PAMI, Vol. 22, No. 3, pp. 266-280, Mar 2000. DOI: https://doi.org/10.1109/34.841758.
- M. S. Jang and W. B. Lee, "Implementation of Hand-Gesture Interface to manipulate a 3D Object of Augmented Reality", The Journal of IIBC, Vol. 16, No. 4, pp. 117-123 , Aug 2016. DOI: http://dx.doi.org/10.7236/JIIBC.2016.16.4.117.
- R. M. Haralick, at al, "Image analysis using mathematical morphology", IEEE transactions on PAMI, Vol. 9, No. 4, pp. 532-550, Jul 1987. DOI: https://doi.org/10.1109/TPAMI.1987.4767941.
- S. Lee, S. Shin, and S. Chung, "Development of Automatic Lip-sync MAYA Plug-in for 3D Characters", The Journal of IIBC, Vol. 18, No. 3, pp. 127-134 , Jun 2018. DOI: https://doi.org/10.7236/JIIBC.2018.18.3.127.
- B. Park, K. Kim, S. Kim, "Study on Face recognition algorithm using the eye detection", The Journal of KIIECT, Vol. 8, No. 6, pp. 491-496, Dec 2015. DOI: https://doi.org/10.17661/jkiiect.2015.8.6.491.