POSTECHIAN 기사 보기

[2020 겨울호] 3-움직임을 만드는 기술, 3D Human Motion Estimation

  • 유현아
  • 2021-01-22 16:03:18

2020 WINTER 기획특집 1

움직임을 만드는 기술, 3D Human Motion Estimation

Virtual Human


이렇게 가상 인간들은 더욱더 사람 같은 얼굴을 하고, 사람 같은 목소리로 말하도록 발전하고 있는데요.
가상 인간들은 게임이나 영화 등의 분야에서도 활용될 거라 예측됩니다.
이에 따라, 현실 세계처럼 자연스럽고 역동적인 움직임을 표현하기 위한 딥러닝 기반 모션 캡처 기술이 연구되고 있습니다.
Mnet의 'AI 음악 프로젝트 다시 한번'에서 래퍼 터틀맨(故 임성훈)씨의 춤 동작[링크- Mnet 다시 한번]을 만든 것도 이 기술을 활용하는데요.

가상 인간의 움직임은 어떻게 만들어 낼까요?
3D 모션 데이터를 만드는 기술에 대해 알아봅시다!




인공지능이 사진을 파악하는 방법, CNN

인공지능 기술들은 다양한 분야에서 도움을 주고 있습니다. 이 중 딥러닝은 사람 뇌의 뉴런 구조를 본뜬 인공 신경망 Artificial Neural Network을 활용해 입력된 데이터들의 특징을 찾아내는 방법입니다.

딥러닝은 제한된 기준에 따라 판단을 내리지 않고, 수많은 데이터의 학습을 통해 스스로 학습하고 분류하도록 발전했습니다.



아래 버튼을 통해 인공지능과 딥러닝의 차이점에 대해 더 자세히 알아볼 수 있습니다.

인공지능과 딥러닝 차이점 알아보기



이 덕분에 우리는 매우 복잡한 데이터도 처리할 수 있게 되었습니다. 특히 합성곱 신경망 CNN Convolution Neural Network구조가 등장하면서 이미지 데이터를 포함한 더욱 다양한 데이터를 활용하는 데 크게 기여하고 있습니다.

그림 ①은 각 픽셀당 정보를 가진 $N \times N$ 격자로 된 2차원 데이터 이미지인데요. 이런 2차원 데이터를 1차원으로 한 줄씩 일렬 배치하면, 위아래 픽셀이나 대각선 픽셀 간의 정보 같은 공간적 구조 정보를 표현할 수 없게 됩니다.

CNN의 필요성

합성곱 신경망은 합성곱 층 Convolutional Layer을 가지며, 이 층은 높이, 너비, 깊이(Channel)의 3차원 이미지 데이터의 특징을 추출하는 역할을 합니다. 합성곱 층은 이미지의 공간 구조를 유지한 상태로 데이터를 입력받아, 다음 레이어로 넘깁니다.

입력된 데이터의 차원 Dimension $k$에 따라 필터는 $n \times m \times k$의 크기를 가집니다. 이 필터로 합성곱 연산을 하며, 아래 그림의 노란색 영역처럼 이미지의 처음부터 훑으며 겹치는 부분만큼의 행렬에 필터의 값을 곱해 출력 행렬을 만듭니다. 이렇게 출력된 행렬을 특성 맵 Feature Map이라고 하며, 각 합성곱 층의 특성 맵은 테두리, 중요한 영역과 같은 이미지에 대한 특정 정보를 담게 됩니다.
CNN의 구조

특징을 추출하고 Pooling 레이어 등 다양한 처리 과정을 거치면, 각 데이터를 분류하고 사진 속 물체가 무엇인지 판단할 수 있습니다. 초기에는 고양이 한 마리를 인식했다면, 이후에 다양한 신경망 구조들의 결합으로 하나의 사진에서 주변 사물 같은 여러 개의 물체를 탐지하는 등 이미지 처리 성능이 높아졌지요.
이어서 CNN과 추가적인 모델을 활용해 모션 데이터를 분석하는 방법에 대해 알아볼까요?

CNN을 통한 인간 행동 인식

동작 인식 Action Recognition은 사람을 대상으로 하는 기술로, 영상에 등장하는 사람의 순간적 움직임이나 자세를 인식합니다. 동작 인식에서의 ‘동작’은 카메라를 기준으로 움직이는 것이며, 관절을 점으로 표기하여 이해할 수 있습니다. 입력한 모션 데이터는 모션 캡처와 특정 센서 신호 등으로 얻어지며, 자연스러운 모션 데이터를 생성하기 위해 다양한 처리 과정을 거칩니다. 인간 행동 인식 분야에서 모션 데이터는 시계열 데이터[각주 1] 이므로, 2D CNN 방식을 사용할 수 없는데요. 2D CNN을 활용하면 정지된 이미지에 대한 특징만 추출하므로 영상에서 일시적 순간의 데이터는 얻을 수 없기 때문입니다. 3D CNN은 다음 그림처럼 데이터를 입력받는 합성곱 층과 합성곱 연산을 한 결과인 특징 맵이 모두 3차원이기 때문에, 영상의 프레임[각주 2] 당 학습이 가능합니다. 그러나 학습 과정에서 만들어 내는 모델의 크기가 너무 크고, 심층적인 구조를 만들기 어렵다는 문제점 등이 발생합니다.

CNN의 구조

이 문제를 해결하기 위해 제안된 이중 흐름 행동 인식 신경망 Two Stream Architecture of Video Recognition의 원리는 2차원 CNN을 보완하고 공간과 시간을 분리하는 것입니다. 물체와 배경 등 공간에 대한 정보와 물체가 움직이는 시간에 대한 정보를 나눠, 두 흐름 Stream의 심층 합성곱 신경망을 만드는 것인데요. 공간 정보는 공간 흐름 심층 신경망 Spatial stream ConvNet으로 다루며, 2차원 CNN을 활용해 정지 이미지에서 행동을 인식합니다. 시간 정보는 일시적 흐름 심층 신경망 Temporal Stream ConvNet으로 광학 흐름 Optical Flow Displacement Fields을 활용해 연속된 프레임들 사이 사람의 행동 변화와 이동 방향을 인식합니다.
이렇게 시계열 데이터에 대해 나누어진 두 흐름을 평균 등의 특정 방법으로 합하면 부분적으로 문제를 해결할 수 있습니다.

Two stream architecture 구성

휴먼 모션 연구의 전망

인간의 모션을 연구함으로써 컴퓨터 그래픽과 비전 분야에 대한 다양한 기업도 등장했습니다. 인공지능을 통해 비디오만으로 모션 캡처를 할 수 있게 만들어, 영화 같은 콘텐츠에서 캐릭터의 모션을 만들어 내기도 하죠. 관련 기업의 대표적인 예시는 3차원 포즈 추정 3D Pose Estimation 기술로 모션 캡처를 간편하게 만든 기업, ‘플라스크 Plask’입니다.

이 기업이 가진 기술은 모션 캡처 데이터 학습을 통해 인간의 형태를 잡아내고 그 이미지를 스켈레톤 형태로 변환해 왜곡 현상을 없앱니다. 사람의 위치와 방향을 통해 사람의 신체 기관들의 관절[각주 3] 과 그 각도를 찾아 사용자의 자세(Pose)를 추적하고, 이렇게 쌓인 데이터를 바탕으로 움직임을 예측합니다. 스켈레톤 데이터를 활용하면 모션 캡처 데이터를 인식할 때 걸음걸이, 옷 부피 등으로 인식이 잘 이뤄지지 않는 문제를 줄일 수 있습니다. 이런 기술들도 각 데이터의 특징과 추출 과정에 따라 성능이 다르므로 다양한 모델들이 존재한다고 해요.

스켈레톤 데이터

전통적인 CNN 기법에서 벗어나, 다중 스트림뿐만 아니라 다양한 네트워크 구조를 활용해 성능을 향상하는 방법도 있습니다. 예를 들어, 순방향 신경망인 피드-포워드 인공 신경망 방식을 활용해, 예측한 미래를 현재 모션에 적용해서 각 관절의 움직임 경로를 시간축 방향으로 걷는 모션을 생성하기도 합니다. 이처럼 기존 CNN 모델에서 발전해 다양한 레이어와 네트워크를 추가하거나 새로운 인공 신경망 모델을 고안해, 더 간편하고 빠르게 모션 데이터 인식, 생성 및 시뮬레이션을 가능하게 하고 있습니다.



가상 인간은 이렇게 다양한 기술들이 합쳐져 개발되고 있습니다.
물론 현재까지의 기술은 아쉽게도 부자연스러운 움직임을 보이거나, 질문에 대한 정확한 답변을 내놓지 못하기도 하는데요.
관련 기술들을 보완해 나가면, 가상 인물은 우리 삶의 다양한 분야에 도움을 줄 수 있을 것입니다.
앞으로 더 사람 같은 가상 인간이 만들어져 AI 친구가 생길 날을 기대하며, 이만 글을 마칩니다.


[각주]
[1] 공간에 대한 정보뿐만 아니라 시간 축에 대한 정보를 담고 있는 데이터
[2] 영상에서 보여지는 하나의 그림으로, 이 그림들이 쌓여서 영상을 만든다.
[3] Head, Neck, Elbow, Knee, Ankle의 관절 key point

[참고문헌]
[1] Li, Fei-Fei, Andrej Karpathy, and Justin Johnson. "Cs231n: Convolutional neural networks for visual recognition." University Lecture (2015).
[2] SIMONYAN, Karen; ZISSERMAN, Andrew, 「Two-stream convolutional networks for action recognition in videos. 」, Advances in neural information processing systems. 2014, p. 568-576.
[3] Ji, Shuiwang, et al. 「3D convolutional neural networks for human action recognition」, IEEE transactions on pattern analysis and machine intelligence 35.1, 2012, p. 221- 231.
[4] 정윤상, 박진호. 「CNN 을 이용한 3D 스켈레톤 애니메이션 학습」 예술인문사회 융합 멀티미디어 논문지, 2018, 8.10, p. 281-288.
[5] 조경은, 엄기현, 치옥용, 조성재, 「인간 모델의 3차원 공간 데이터를 이용한 포즈 인식 시스템 및 그 방법」, 특허협력 조약에 의하여 공개된 국제출원. PCT/KR2014/012433,2014.09.05

ALIMI 26기 전자전기공학과 유현아

궁금한 점이 있다면 언제든지 물어보세요!

기사 모아 보기
공유하기
목록