자세 예측(Pose Estimation)이란 뭔가요? Pose Estimation이란 단어의 의미 그대로 사람이 취하는 자세를 예측하는 것을 의미합니다. 좀 더 기술적으로 얘기하면 이미지나 영상으로부터 사람의 관절이나 중요신체부위(키포인트)의 위치를 예측(Localization)하는 기술이라고 할 수 있습니다. 물론 사람이 아닌 동물이나 다른 객체(예:로봇)도 자세 예측의 대상이 됩니다.
어떤 기술이 이용되나요?
예전에는 몸에 측정 장치를 달고 이를 통해 자세를 인식했습니다. 팔과 다리, 손가락 등에 각종 센서를 달았었죠. 그러다 딥러닝 기술이 발전하면서 카메라 영상을 통해 사람의 몸을 구성하는 관절에 대한 특징점을 학습하는 방식이 발전했습니다. 딸랑 한대의 카메라가 기존의 수많은 센서를 대체할 수 있게 되었으니 얼마나 편리해졌는지 감이 오시죠?
자세예측을 위한 딥러닝 모델
이미지나 영상에서 사람의 키포인트를 검출하기 위해 사용되는 딥러닝 모델들은 주로 CNN 기반 모델을 사용하는데 최근에는 Transformer를 이용하는 것들이 등장하고 있습니다. 자세예측모델엔 2D 와 3D Pose Estimation이 있습니다. 2D Pose Estimation의 경우는 RGB 이미지 상의 픽셀 공간에서 사람의 관절에 대한 좌표정보 (x,y)를 추정하는 것이고 3D Pose Estimation은 RGB 혹은 RGBD(depth 포함) 이미지에서 (x,y,z)와 같은 3D 좌표정보를 예측합니다.
2D Pose Estimation은 단일 사람에 대한 예측이냐 복수의 사람에 대한 예측이냐에 따라 지원하는 모델들도 달라지는데 주로 모바일 등에서 개인 별 자세 감지를 위해 사용되는 모델들은 주로 전자에 해당됩니다.
그리고, 2D Pose Estimation 모델들의 접근 방식은 top-down과 bottom-up으로 구분되는데 top-down방식은 사람을 먼저 감지한 후 각 사람 객체에서 관절 부분을 예측하며, bottom-up 방식은 이미지 상의 모든 사람의 관절을 먼저 예측하고 이를 특정한 사람 객체 별로 그룹 짓는 방식입니다. 둘 다 장단점이 있어 어떤 쪽이 더 낫다고 할 순 없고 적용되는 케이스에 더 적합한 것을 선택하면 됩니다.
3D Pose Estimation에 대해 좀 더 설명해 주세요.
앞서 설명드린 것처럼 3D 자세예측은 예측한 사람의 관절과 키포인트를 3차원 공간에서 추정하는 것을 말하며 결과물 또한 3D 공간에 투영할 수 있습니다. 최근에는 이 기술을 이용한 솔루션들(예: 매장 내 3D 공간에서의 고객의 움직임을 파악해 마케팅에 활용하는 솔루션)이 소개되고 있습니다. 하지만 아직까지 시장에서 흔히 볼 수 있는 것은 주로 2D pose Estimation입니다. 2D 자세 예측 모델로는 OpenPose, AlphaPose, Transpose 등이 잘 알려져 있고 3D 자세 예측 모델로는 HuMoR, MVPose, P-STMO 등이 있습니다.
아래는 2D, 3D 자세예측 결과의 비교를 보여줍니다. ( 사진출처) |