3D Human Pose Estimation 중 Model-free 방식의 접근법을 사용한 논문들을 정리해보겠습니다.
1. I2L-MeshNet (2020)
기존의 3D 관절 좌표 추정 기법들 중에서는 voxel 기반의 방법들이 성과가 좋았다. 하지만 voxel은 메모리를 매우 많이 차지하기 때문에, model-free 기법에서 6890개에 달하는 SMPL vertex들을 추정하는 데에는 무리가 있다. (Mesh 기반은 7000개 가까이라, voxel 기반으로 하기는 메모리 올라가지도 않음)
메모리 문제 해결을 위해 lixel(line+pixel) baed 1d heatmap 제안했다.
구체적으로, image feature에서 axis별로 average해서 x, y, z 1D heatmap을 각각 얻고 각각 soft-argmax해서 한 mesh vertex의 x,y,z좌표 얻는 방식이다. (위의 그림 참조)
이런 방식을 통해 model-free임에도 heatmap의 spatial relationship 장점을 그대로 들고간다.
또한 heatmap들이 하나의 좌표를 추정하는 게 아니라 likelihood를 추정하기 때문에, uncertainty를 모델링 할 수 있다
2. Pose2Mesh (2020)
(아이디어는 좋지만, 개인적으로 돌려봤을 때 한계점이 많이 보였던 논문이긴 합니다.)
studio와, in-the-wild의 domain gap을 줄이기 위해, 2D Pose를 입력으로 받아 Mesh 출력하도록 했다. (만약 이 방법이 아니라, background를 gan으로 바꾸는 시도를 해서 domain gap을 줄이는 건 어떨까요?)
training stage : 2D pose + synthetic error (실제 2D 추론 결과가 약간 틀릴 수 있기 때문에 에러텀 추가, posefix 논문 참조) (실제 2D pose dataset 학습 시 augmentation 용으로 써도 될 것 같네요)
PoseNet : 3D pose lifting
MeshNet : GraphCNN 써서 3D mesh로 바꾼다 coarse-to-fine mesh estimation을 사용해서, mesh를 7000개 한번에 한게 아니라 점점 늘려가도록 했습니다. - 이 방법으로 memory 훨씬 적게 사용, 시간도 빠름, 에러도 약간 줄여줬습니다.
3. METRO (2021)
처음으로 3D Human Pose Estimation에서 Transformer로 높은 성능 거둔 논문입니다.
self attention : 들어오는 token들 사이에서 attention해서 최종적으로 feature를 output 하는 것 ("나는 홍길동이다"라는 문장의 경우, "나"와 "홍길동"의 유사성이 크다는 걸 학습시키는 거죠.)
Positional encoding : Joint와 mesh vertex간의 관계를 구하는 것 vertex 간의 관계를 self-attention으로 추정 한다. 위의 오른쪽 사진처럼 다리가 안보일 때, 상반신 및 보이는 부분들의 feature들 가져와서, 안보이는 다리의 포즈를 추정합니다. vertex 간의 관계, vertex-joint간의 관계, joint간의 관계 통해서 최종적으로 vertex마다의 3D 좌표 추정하는 게 목표 vs 그냥 FC만 쓸 경우 : 불필요한 연결이 너무 많음 (Transformer에 기반한 Generator를 이용해서 폐색 문제를 해결하는 건 어떨까요?)
augmentation : masked vertex modeling 입력 joint query, vertex query 중 랜덤 쿼리들을 masking한다 (occlusion을 흉내내는 것) - 가려진 신체 부분을 추정하기 위해, 주변부와 멀리있는 query feature 사용
MVM 해서 성능 많이 개선됨 : 전체 vertex 중 30%만 mask 하는 게 가장 좋은 성능을 나타냈다 - Model free 접근법의 정확도는 좋지만, 다른데에 적용이 어렵다 (ex. 다른 캐릭터로의 전송이 어렵다, 회전이 없기 때문)