현 시점(2021/08/05) 기준 3DPW 데이터셋에서 2위, 소스가 오픈된 것 중에서는 1위를 기록하고 있는 논문입니다.
Introduction
최근에는 monocular 상태에서의 3D pose 및 shape 추정이 사람 1명이 있는 영상/이미지에서 많은 발전이 이뤄졌다.
하지만 일반적인 영상에서 봤을 때 여러 사람이나 환경들로 인한 폐색이 발생했을 때에 취약한 문제가 있다.
기존 접근 방식은 사람을 먼저 detect 한 뒤 단일 3D mesh를 회귀하는 방식으로 진행하는 경우가 많은데, 이와 같은 전략은 그림1처럼 multi-person이 동시에 detect 되는 상황인 경우 실패하기 쉽다.
이 논문에서는 픽셀당 예측하는 방식으로 여러 3D 사람을 회귀하는 one-stage network인 ROMP를 소개한다. 이를 통해 심하게 겹치는 사람들도 따로 찾을 수 있도록 한다.
Related Work
Single-person 3D mesh regression : SMPL과 같은 Parametric human body model들은 복잡한 3D 인체 mesh를 저차원의 parameter들로 추정할 수 있게 해주기 때문에 많은 연구들에서 복잡성을 줄이기 위해 3D mesh verticies 대신 parameter를 추정하는 방식으로 진행되었습니다. 최근에는 2D pose, semantic segmentation, 시간적 일관성과 같은 다양한 방법들을 사용해서 성능을 향상시켰습니다. 하지만 이러한 모든 방법은 bounding-box 수준 표현을 사용하는데, 이는 multi-person/occlusion의 경우 추론 결과가 좋지 않습니다.
Multi-person 3D pose estimation : 주류 방식은 multi-stage 방식과 one-stage 방식 2가지가 있습니다. 많은 multi-stage 방법은 감지된 bounding box 또는 앵커 기반 feature proposals을 사용해서 사람 영역을 뽑은 뒤 신체 관절을 추정합니다. one-stage 방식에서는 모든 신체 관절의 위치를 추정한 뒤 관절을 각 사람으로 그룹화합니다. 우리가 제안한 ROMP는 one-stage 프로세스를 확장해서 신체 중심의 픽셀 수준 표현을 통해 사람을 감지합니다.
Multi-person 3D mesh regression : multi-person 3D mesh regression의 모든 기존 방법들은 multi-stage 설계를 하고 있다. 복잡한 multi-stage process는 반복적인 특징 추출을 필요로 하므로 계산 효율성이 떨어지고, 1인칭 카메라에서 detect된 bounding-box에 의존하기 때문에 multi-person occlusion과 같은 문제를 효과적으로 해결하기 어렵다.
Pixel-level representation : heatmap 방식으로 bounding-box의 모서리 또는 중심점을 직접 추정하려는 방법이다. bounding-box 대비 보이는 내용 기반으로 하기 때문에 우리의 논문은 이 방식에서 영감을 얻어서 연구를 진행했다.
Our Approach
일반적으로 SMPL과 같은 Body model의 parameters를 추정하는 모델은 Camera와 SMPL parameters를 기본으로 추정한다. (두 개의 파라미터를 합쳐서 SMPL 매개변수로 활용)
이 논문에서는 Body Center heatmap을 통해 특정 위치가 인체 중심을 확률을 예측한다. 기존의 다른 논문들에서는 bounding-box의 중심을 target이 되는 사람의 중심으로 정의하지만, 이 논문에서는 보이는 몸통 관절(목, 어깨, 골반, 엉덩이)의 중심을 사용한다. 모든 몸통 관절이 보이지 않는 경우에는 보이는 joints의 평균으로 center를 정한다. 하지만 사람이 심하게 겹치는 경우는 신체 중심이 매우 가깝거나 같은 위치에 있을 수 있고, 이로 인해 식별이 어렵기 때문에 겹치는 사람들의 중심점이 잘 구별되도록 최소한의 거리를 유지하게 한다. - 각 신체 중심은 신체 중심 heatmap에서 가우스분포(정규분포)로 표시된다. 이미지의 2D 신체 scale 에서 각 사람 중심의 가우스 커널 크기 k를 계산한다. 사람 bounding-box의 대각선 길이 d_bb와 Body Center heatmap의 너비인 W가 주어지면 아래 그림같은 식으로 가우스 커널 크기를 계산한다. (k_l : 최소 커널 사이즈, k_r : k의 variation range) - d_p는 repulsion vector(밀어내는 벡터)로 c2에서 c1까지 감마(γ) 값을 얼마나 밀어낼지의 강도를 주는 계수로 사용한다. 유클리드 거리인 d_cm과 가우시안 커널의 크기인 k1, k2가 d_cm < k1 + k2 + 1을 만족할 경우, 밀게 된다.
C_m에서 Center 위치와 non-center위치들의 불균형을 다루기 위해 Body Center heatmap을 Focal loss에 기반하여 학습시킨다. L_C : Body Center Loss L_neg : Negative Loss L_pos : Positive Loss
C_m : Body Center heatmap C_pm : predicted Body Center heatmap C_gtm : ground truth I_pos : body center 위치에서 positive 값을 갖는 binary matrix w_c : loss weight