[생성지능개발팀 한현준]
포즈 추정 모델의 발전
RGB 이미지만으로 포즈를 인식하는 모델은 지난날에 비해 비약적인 발전을 했습니다. 인식의 정확도는 많이 높아졌으며, 인식의 신뢰도가 높아짐으로 다양한 응용 기술이 개발 및 연구 되고 있습니다. 특히 포즈 인식 모델로 사람의 자세를 3차원으로 추정하여 랜드마크 데이터를 얻고, 데이터를 그래픽 엔진을 통해 3D 모델을 리타겟팅해서 제어하는 기술은 많은 기업에서 적용되고 있습니다. 이러한 기술은 휴대폰만으로 가상공간에서 자신의 아바타를 컨트롤하거나 버츄얼 휴먼 콘텐츠를 만드는데 큰 기여를 할 것으로 생각됩니다.
아바타를 실시간으로 컨트롤 하기 위한 준비
그렇다면, 사용자의 포즈를 아바타에 투영하기 위해서는 어떠한 환경이 필요할까요? 먼저 사용자의 모습을 담을 수 있는 카메라 장치가 필요합니다. 또한 그 카메라로 사용자를 촬영했을 때, 추론하기에 충분한 만큼 사용자의 모습을 담을 수 있어야 합니다. 카메라가 준비가 되었다면 장치에서 작동될 포즈 추론 모델과 라이브러리가 필요합니다. 당연하게도 추론 모델의 정확도가 아바타의 정확도에 영향을 미치게 됩니다. 다음으로는 해당 장치에서 3D 에셋을 로드하고 렌더링 및 각 노드에 접근하여 제어할 수 있는 Unity, Unreal과 같은 엔진이 필요합니다. 그리고 마지막으로 리깅이 구성된 3D 아바타 에셋이 있다면 기본적인 환경이 구성되었다고 할 수 있습니다.
3D 모델을 제어하기 위한 방법
센서가 달린 모션 캡쳐 장비를 착용하고 BVH 포맷으로 애니메이션을 적용하는 기존의 방법에는 많은 비용과 시간이 필요하게 됩니다. 그러나 추론 모델을 활용하여 애니메이션을 구성한다면 비용은 훨씬 절감될 것이라 생각됩니다.
BlendShape
BlendShape는 주로 아바타의 얼굴 표정을 제어하는데 사용되는 기법입니다. 무표정의 Base Shape의 형상을 변형시켜 다른 표정의 Target Shape을 생성하고, 두 형상간의 선형 보간을 통해 새로운 얼굴 표정을 합성하는 기술입니다. Base Shape와 Target Shape의 정점이 일대일 매칭이 되기 때문에 정점을 이동시켜 변형하게 되고 이러한 상태를 보통 0~1의 계수 값을 통해 제어하게 됩니다.
FK / IK Retargeting
3D 아바타를 제어하기 위해서는 뼈대의 관절들을 이동이나 회전하여 제어를 합니다. 이 때 계층 구조에서 하위 노드가 부모의 노드의 변경에 영향을 받아 따라오는 것을 FK, 반대로 자식의 노드의 변경이 부모의 노드에 영향을 주는 것을 IK라고 합니다. 이러한 구조에 따라 데이터를 적용할 때 결과가 다를 수 있기 때문에 이러한 부분이 고려하여 애니메이션을 제어해야 합니다.
Reference
https://google.github.io/mediapipe/solutions/pose
http://journal.cg-korea.org/archive/view_article?pid=jkcgs-25-3-75
https://tryingtobeananimator.wordpress.com/2016/10/18/ik-vs-fk-rigs/