[생성지능개발팀 조원]
인간의 관절이나 자세를 localize하는 human pose estimation은 computer vision 분야의 중요한 task중 하나로서 오랫동안 발전해 왔습니다.
과거에는 사람의 pose data를 얻기 위해서는 사람이 직접 motion capture 장비를 입거나 센서를 부착한 뒤 행동하는 상당히 제약적인 환경과 방법이 필요하였습니다. 하지만 딥러닝 기술의 눈부신 발전과 함께 이러한 자세 추정에 관한 정확도 또한 크게 증가하였고, 이제는 real time 영상에서 실시간으로 정확한 관절 좌표를 얻어낼 수 있을 정도까지 발전했습니다.
이에, 다양한 기업에서 이를 활용하여 손쉽게 얻어낸 자세 추정 결과를 3D modeling, 자율주행, 자세교정, 이상행동감지 등 다양한 분야에 확대 적용하여 새로운 가치를 창출해 내고 있습니다.
따라서, 본 게시글에서는 이러한 human pose estimation의 분야에서 대표적인 3가지 open source library들을 소개해 드리고자 합니다.
ㅤ
1. OpenPose [Github]
OpenPose는 2017년 CVPR에서 최초로 제시된 real-time-multi-person pose estimation library 입니다
CMU에서 개발한 본 library는 하나의 이미지로부터 몸과, 손, 얼굴, 발을 포함하여 총 135개의 keypoint들을 높은 정확도로 탐지해 낼 수 있습니다. 먼저 keypoint들을 모두 도출해 낸 뒤, 이들을 instance에 따라 구분하는 Bottom-up 방식을 사용하여 multi-person task를 진행하는 대표적인 library 중 하나입니다.
본 라이브러리의 강점으로는 Bottom up 방식의 특징상 가려지거나 겹쳐진 object들에 대한 성능이 매우 뛰어납니다. 또한, Openpose는 현재까지도 점차 새로운 버전으로 업데이트 되면서 C++ API, 3D pose reconstruction, estimation, 그리고 Unity에 연결할 수 있는 plugin까지도 지원하고 있습니다.
AlphaPose는 OpenPose가 사용한 Bottom-up 방식이 아닌 detection 이후 각각의 instance에 대해서 pose estimation을 진행하는 Top-down 방식을 사용하는 대표적인 library 중 하나입니다.
중국의 MVIG lab에서 배포하였으며 Top-down의 특성상 평균적으로 매우 높은 정확도를 보여주고 있습니다. Towards Real-Time Multi-Object Tracking과 Re-identification for Online Person Tracking by Modeling Space-Time Continuum 논문의 multi object tracking 또한 지원하고 있으며, Linux와 Window OS 모두 지원한다는 강점이 있습니다.
3. DensePose [Github | Paper | Dataset]
DensePose는 Facebook에서 제공하는 Detectron2 library안에 모듈이며, 위에 소개해드린 2가지 library와는 조금 다른 결과의 pose estimation을 제공합니다.
2018년 facebook에서 발표한 논문(Chart-based Dense Pose estimation)을 살펴보면, 3D object mesh를 U,V 공간으로 나누고 각각의 pixel들을 chart index I 와 chart coordinates (U,V)로 위치 시킴으로써 둘 사이의 관계를 나타내고 있습니다.
이처럼 이미지(image)를 하나의 표면(surface)에 대응시키는 dataset을 만들기 위해 수십 명의 annotator들이 3개월 동안 노력했다고 하며, 결과적으로 단순한 2D skeleton 좌표 값이 아닌 instance에 대한 3차원 정보를 얻어낼 수 있다는 점에서 기존의 pose estimation과는 차별성을 가지고 있습니다.
금일 소개 해드린 3가지 open source library를 사용하여 다양한 분야에 pose estimation 기술을 적용해 본다면, 수많은 창의적인 서비스와 기능을 만들어 낼 수 있을 것이라 생각합니다
ㅤ
본 기술들과 관련해서 보다 자세한 내용이 필요하신 경우, 아래에 더 자세한 논문들과 링크를 참고하여 주시기 바랍니다. 😀
ㅤ
References
https://arxiv.org/abs/1802.00434
https://viso.ai/deep-learning/pose-estimation-ultimate-overview
https://github.com/CMU-Perceptual-Computing-Lab/openpose