개요
해당 논문은 우리가 익히 Openpose 라고 알고 있는 논문이다. 그러나 CVPR 2017에 제출된 해당 논문에서는 openpose라는 단어가 등장하지 않는다. 2019년에 저널에 해당 키워드를 붙여 제출함으로써 그 때 부터 진짜 Openpose가 등장하게 된다.
아무튼 Bottom-up의 비약적인 발전을 가져온 논문이며, 이미지 상에 존재하는 모든 관절 들을 감지 후 PAF(Part Affinity Field)라는 방법을 통해 신체 부위의 후보군에서 개별 사람객체로 효과적으로 연결하는 방법을 제안한다.
방법론
- 기본적인 아키텍쳐는 2개의 브랜치로 나누어, 하나는 관절의 신뢰도 맵을 출력하는 부분과 다른 하나는 신체 부위 관의 연관성을 예측하는 필드로 나뉘며, 해당 브랜치의 끝에서 함께 다음 단계의 브랜치로 연결된다. 이러한 브랜치가 여려개 있는 방식.
- 수식이 많긴 한데 이를 통해 모델링 하려는 것은 2가지, $S$로 표시되는 것은 말그대로 이미지 상에서 관절 $J$의 신뢰도 맵을 만드는 것이다. 몇 명이 있던 해당 인원의 같은 부위 관절을 합쳐서 $S_j$가 나온다.
- 다른 하나는 연결된 사지의 벡터를 매핑하는 것이다. $L$로 표현되는 해당 벡터는 $j_1$ 에서 $j_2$로 연결되는 유닛 벡터를 출력으로 매핑한다. 사지 밖에 있는 (x,y) 좌표에선 0으로 값을 가진다.
- 이미지 상의 제안된 관절 좌표들을 하나의 완성된 사람으로 연결하기 위해 새로운 특징의 표현 PAF(Part Affinity Fields)를 제시한다. 사지의 한 부위에서 다른 부위로 연결되는 벡터 방향을 인코딩하여 해당 필드를 도출한다. 이를 벡터 필드 $L$로 지칭한다.
- 즉, 각 관절의 신뢰도 맵 $S$와 사지의 연결 벡터 $L$을 조합하여 한 이미지에서 1명 이상의 여러명의 관절들이 관측되었을 때 온전한 사람을 조합하기 위한 연산을 수행할 수 있다. 적절한 사지 연결 후보를 계산하기 위한 방법은 섹션 2.4에 소개되어 있으며 NP-Hard 문제이므로 어느정도 Greedy 한 접근 방식을 취한다.
실험결과
- MPII 데이터 셋의 비교를 위해 PCKh 임계값을 기반으로 mAP를 측정한다. 이전 바텀업 방식(DepperCut)에 비해 8.5%의 성능향상과 6자리의 추론시간 차이를 가져온다.
- COCO2016 데이터 셋을 사용한 비교를 진행한다. 마치 객체감지의 IoU와 같은 OKS를 사용한다. 사람 객체의 스케일에 따른 실제 관절 간의 거리로 T/F를 계산한다. 10개의 OKS 임계값을 통해 평균 정밀도(AP)를 계산한다.
- 사람 객체가 작은 스케일의 경우 성능이 낮아질 수 있으며, 이는 탑-다운 방식에 비해 가질 수 있는 약점이다. 또한, 다른 GT-바운딩 박스와 CPM의 조합 등의 성능과 비교하여 탑-다운 방식에도 크게 밀리지는 않음을 확인한다.
- 또한 런타임에서 처리 속도가 탑-다운 방식에 비해 크게 영향을 받지 않으며 이미지 내 사람 객체가 많아도 처리 속도에 큰 문제를 겪지 않음을 보인다
결론
해당 논문은 PAF라는 개념을 도입하여 Bottom-Up 방식의 자세 추정의 성능향상을 가져오는 아주 중요한 논문이다. 사람이 많아도 관측된 관절로 부터 인체의 스켈레톤을 형성하는데에 문제가 없도록 설게한다. 또한 이를 실시간 처리가 가능하도록 함에 기여한다. 해당 논문은 소스코드도 공개되어있고 우리가 익히 들어봤을 법한 OpenPose
로 제공되고 있다.
번역
Abstract
우리는 이미지 내 여러 사람의 2D 자세를 효율적으로 감지하는 방법을 제시합니다. 이 방법은 비매개변수적 표현을 사용하며, 이를 우리는 ‘부분 친화 필드(Part Affinity Fields, PAFs)’라고 부르며, 이는 이미지 속 개별 사람과 신체 부위를 연관짓는 법을 학습합니다. 이 아키텍처는 전역적인 맥락을 인코딩하며, 이미지 내 사람 수와 관계없이 높은 정확도를 유지하면서 실시간 성능을 달성하는 탐욕적인 하향식 구문 분석 단계를 허용합니다. 이 아키텍처는 동일한 순차 예측 과정의 두 가지 분기를 통해 신체 부위 위치와 그 연관성을 공동으로 학습하도록 설계되었습니다. 우리의 방법은 첫 번째 COCO 2016 키포인트 챌린지에서 1위를 차지했으며, 성능과 효율성 측면에서 이전의 MPII 다중 인물 벤치마크에서의 최신 결과를 크게 능가했습니다.
1. Introduction
인간 2D 자세 추정, 즉 해부학적 키포인트나 ‘부분’을 국지화하는 문제는 주로 개별 사람들의 신체 부위를 찾는 것에 집중되어 왔습니다 [8, 4, 3, 21, 33, 13, 25, 31, 6, 24]. 특히 사회적 상호작용을 하는 사람들의 자세를 이미지에서 추정하는 것은 고유한 도전 과제를 제시합니다. 첫째, 각 이미지는 위치나 크기가 다양할 수 있는 불특정 다수의 사람을 포함할 수 있습니다. 둘째, 사람들 간의 상호작용은 접촉, 가림, 그리고 사지의 움직임으로 인한 복잡한 공간 간섭을 유발하여 신체 부위 간의 연관성을 어렵게 만듭니다. 셋째, 이미지 내 사람 수가 많아질수록 실행 시간 복잡도도 증가하여 실시간 성능에 도전 과제를 안겨줍니다.
일반적인 접근 방식 [23, 9, 27, 12, 19]은 사람 감지기를 사용하여 각 감지에 대해 단일 인물 자세 추정을 수행하는 것입니다. 이러한 하향식 접근 방식은 단일 인물 포즈 추정에 대한 기존 기술을 직접 활용하지만 초기 단계에서 문제가 발생할 수 있습니다. 사람 탐지기가 실패하면, 특히 사람들이 가까이 있는 경우 이는 쉽게 발생하며, 복구할 방법이 없습니다. 게다가, 이러한 하향식 접근 방식의 실행 시간은 사람 수에 비례합니다. 각 탐지에 대해 단일 인물 포즈 추정기가 실행되며, 사람 수가 많아질수록 계산 비용도 증가합니다. 이에 반해, 상향식 접근 방식은 초기 결정을 견고하게 해주고, 이미지 내 사람 수와 실행 시간 복잡성을 분리할 수 있는 잠재력을 제공하므로 매력적입니다. 그러나 상향식 접근 방식은 다른 신체 부위와 다른 사람들로부터 오는 전역적 맥락 신호를 직접적으로 사용하지 않습니다. 실제로, 이전 상향식 방법들 [22, 11]은 최종 구문 분석이 비용이 많이 드는 전역적 추론을 요구하기 때문에 효율성의 이점을 유지하지 못했습니다. 예를 들어, Pishchulin 등 [22]의 획기적인 연구는 부위 탐지 후보를 공동으로 라벨링하고 이를 개별 사람들과 연결하는 상향식 접근 방식을 제안했습니다. 그러나 완전 연결된 그래프에서 정수 선형 프로그래밍 문제를 해결하는 것은 NP-난해 문제이며, 평균 처리 시간이 몇 시간에 달합니다. Insafutdinov 등 [11]은 ResNet [10]과 이미지 의존적인 쌍별 점수를 기반으로 더 강력한 부위 탐지기를 구축하여 [22]를 개선했으며, 실행 시간을 크게 단축시켰지만, 여전히 이미지당 몇 분이 걸리며, 부위 제안 수에 한계가 있습니다. [11]에서 사용된 쌍별 표현은 정확하게 회귀하는 것이 어려워 별도의 로지스틱 회귀가 필요합니다.
본 논문에서는 여러 공공 벤치마크에서 최신 정확도를 달성한 다중 인물 포즈 추정의 효율적인 방법을 제시합니다. 우리는 Part Affinity Fields(PAFs)를 통해 연관 점수의 하향식 표현을 처음으로 제시하며, 이는 이미지 영역에서 사지의 위치와 방향을 인코딩하는 2D 벡터 필드 집합입니다. 우리는 탐지 및 연관성의 이러한 하향식 표현을 동시에 추론하여 전역적인 문맥을 충분히 잘 인코딩할 수 있으며, 탐욕적인 구문 분석을 통해 계산 비용의 일부만으로도 고품질의 결과를 얻을 수 있음을 증명합니다. 우리는 완전한 재현성을 위해 코드를 공개했으며, 다중 인물 2D 포즈 탐지를 위한 최초의 실시간 시스템을 제시합니다.
2. Method
그림 2는 우리의 방법의 전체 파이프라인을 설명합니다. 시스템은 크기 w × h의 컬러 이미지를 입력으로 받고, 출력으로 각 사람의 해부학적 키포인트의 2D 위치를 생성합니다 (그림 2e). 먼저, 피드포워드 네트워크는 신체 부위 위치에 대한 2D 신뢰도 맵 $S$ 집합 (그림 2b)과 신체 부위 간 연관성을 인코딩하는 2D 벡터 필드 $L$ 집합을 동시에 예측합니다 (그림 2c). 집합 $S = (S_1, S_2, …, S_j)$ 는 $J$개의 신뢰도 맵으로 구성되며, 각각 하나의 신체 부위에 해당합니다. 여기서 $S_j$는 $ℝ^{w×h}$ 에 속하고, $j$ 는 ${1, …, J}$ 에 속합니다. 집합 $L = (L_1, L_2, …, L_c)$ 는 $C$ 개의 벡터 필드로 구성되며, 각각 하나의 사지에 해당합니다. 여기서 $L_c$는 $ℝ^{w×h×2}$ 에 속하고, $c$ 는 ${1, …, C}$ 에 속합니다. $L_c$ 의 각 이미지 위치는 2D 벡터를 인코딩합니다 (그림 1에 표시된 대로). 마지막으로, 신뢰도 맵과 연관 필드는 탐욕적인 추론을 통해 분석되어 이미지 내 모든 사람의 2D 키포인트를 출력합니다 (그림 2d).
2.1. Simultaneous Detection and Association
그림 3에 표시된 우리의 아키텍처는 신체 부위 간의 연관성을 인코딩하는 탐지 신뢰도 맵과 연관 필드를 동시에 예측합니다. 네트워크는 두 개의 브랜치로 나뉘며, 베이지색으로 표시된 상위 브랜치는 신뢰도 맵을 예측하고, 파란색으로 표시된 하위 브랜치는 연관 필드를 예측합니다. 각 브랜치는 Wei 등[31]의 방법을 따르는 반복 예측 아키텍처로, 각 단계에서 중간 감독과 함께 단계별로 예측을 정제합니다.
이미지는 먼저 합성곱 신경망에 의해 분석되며 (VGG-19의 첫 10개 층으로 초기화되고 미세 조정됨), 각 브랜치의 첫 번째 단계에 입력되는 특징 맵 $F$ 집합을 생성합니다. 첫 번째 단계에서, 네트워크는 탐지 신뢰도 맵 $S^1 = \rho^1(F)$와 부위 연관 필드 $L^1 = \phi^1(F)$를 생성합니다. 여기서 $\rho^1$ 과 $\phi^1$ 은 1단계에서의 추론을 위한 CNN입니다. 각 후속 단계에서는 이전 단계의 두 브랜치로부터의 예측 결과와 원래 이미지 특징 F가 연결되어 정제된 예측을 생성하는 데 사용됩니다.
여기서 $\rho^t$ 와 $\phi^t$ 는 $t$ 단계에서의 추론을 위한 CNN입니다.
그림 4는 단계별로 신뢰도 맵과 연관 필드의 정제를 보여줍니다. 네트워크가 첫 번째 브랜치에서 신체 부위의 신뢰도 맵과 두 번째 브랜치에서 PAFs를 반복적으로 예측할 수 있도록 하기 위해, 우리는 각 단계의 끝에서 각 브랜치에 각각 하나씩 두 개의 손실 함수를 적용합니다. 예측 값과 정답 맵 및 필드 사이에 $L_2$ 손실을 사용합니다. 여기서 우리는 일부 데이터셋이 모든 사람을 완전히 레이블링하지 않는다는 실질적인 문제를 해결하기 위해 손실 함수를 공간적으로 가중합니다. 구체적으로, 단계 $t$ 에서 두 브랜치의 손실 함수는 다음과 같습니다:
\[\begin{equation} f_S^t = \sum_{j=1}^{J}\sum_p W(p) \cdot \Vert S_j^t(P) - S_J^*(P) \Vert_2^2 \end{equation}\] \[\begin{equation} f_L^t = \sum_{c=1}^{C}\sum_p W(p) \cdot \Vert L_c^t(P) - L_c^*(P) \Vert_2^2 \end{equation}\]여기서 $S_j$는 정답 신체 부위 신뢰도 맵을, $L_c$는 정답 신체 부위 연관 벡터 필드를 나타냅니다. $W$는 이진 마스크로, 이미지 위치 $p$ 에서 주석이 없을 때 $W(p) = 0$ 입니다. 이 마스크는 훈련 중 실제 긍정 예측에 대한 패널티를 피하기 위해 사용됩니다. 각 단계에서의 중간 감독은 주기적으로 기울기를 보충함으로써 기울기 소실 문제를 해결합니다. 전체 목적 함수는 다음과 같습니다:
\[\begin{equation} f = \sum_{t=1}^{T} (f_S^t+ f_L^t). \end{equation}\]2.2. Confidence Maps for Part Detection
훈련 중에 식 (5)의 $f_s$를 평가하기 위해, 우리는 주석이 달린 2D 키포인트로부터 정답 신뢰도 맵 $S\ast$ 를 생성합니다. 각 신뢰도 맵은 특정 신체 부위가 각 픽셀 위치에서 발생할 확률에 대한 2D 표현입니다. 이상적으로는, 이미지에 한 사람이 있을 때 해당 부위가 보이면 각 신뢰도 맵에 단일 피크가 존재해야 하며, 여러 사람이 있을 경우, 각 사람 $k$에 대해 보이는 부위 $j$에 해당하는 피크가 존재해야 합니다.
우리는 먼저 각 사람 $k$ 에 대한 개별 신뢰도 맵 $S\ast_{j,k}$ 를 생성합니다. $x_{j,k} \in \mathbb{R}^2$ 는 이미지 내 사람 $k$ 의 신체 부위 $j$ 에 대한 정답 위치입니다. 위치 $p ∈ \mathbb{R}^2$ 에서 $S\ast_{j,k}$ 의 값은 다음과 같이 정의됩니다:
여기서 $σ$는 피크의 확산을 제어합니다. 네트워크에서 예측될 정답 신뢰도 맵은 최대 연산자를 통해 개별 신뢰도 맵의 집합입니다.
\[\begin{equation} S^{\ast}_{j}(p) = \max_k S^{\ast}_{j,k}(p), \end{equation}\]우리는 평균 대신 신뢰도 맵의 최대 값을 취하여, 오른쪽 그림에서 보이는 것처럼 인접한 피크의 정확도를 구별할 수 있도록 합니다. 테스트 시에는 신뢰도 맵을 예측하고 (그림 4의 첫 번째 행에 표시된 대로), 비최대 억제를 수행하여 신체 부위 후보를 얻습니다.
2.3. Part Affinity Fields for Part Association
탐지된 신체 부위 집합(그림 5a의 빨간색과 파란색 점으로 표시됨)이 주어졌을 때, 우리는 이를 어떻게 조립하여 알려지지 않은 수의 사람들의 전체 신체 포즈를 형성할 수 있을까요? 우리는 각 신체 부위 탐지 쌍에 대한 연관성에 대한 신뢰도를 측정해야 합니다, 즉 그것들이 같은 사람에게 속한다는 것을 확인해야 합니다. 연관성을 측정하는 한 가지 방법은 각 사지에 있는 신체 부위 쌍 사이에 추가 중간 지점을 탐지하고, 그림 5b에 표시된 대로 후보 신체 부위 탐지들 간의 발생 여부를 확인하는 것입니다. 그러나 사람들이 가까이 모일 때—이는 자주 발생하는데—이 중간 지점들은 잘못된 연관을 지원할 가능성이 큽니다(그림 5b의 초록색 선으로 표시됨). 이러한 잘못된 연관은 표현의 두 가지 한계로 인해 발생합니다: (1) 각 사지의 위치만 인코딩하고 방향은 인코딩하지 않으며, (2) 사지의 지지 영역을 단일 지점으로 축소합니다.
이러한 한계를 해결하기 위해, 우리는 사지의 지지 영역에 걸쳐 위치 및 방향 정보를 보존하는 새로운 특징 표현, 즉 part affinity fields를 제시합니다 (그림 5c에 표시된 대로). PAF는 각 사지에 대한 2D 벡터 필드로, 그림 1d에도 표시되어 있습니다: 특정 사지에 속하는 영역의 각 픽셀에서 2D 벡터는 사지의 한 부위에서 다른 부위로 향하는 방향을 인코딩합니다. 각 사지 유형은 해당 두 신체 부위를 연결하는 연관 필드를 가지고 있습니다.
아래 그림에 표시된 단일 사지를 생각해 보십시오. $x_{j_1,k}$와 $x_{j_2,k}$ 는 이미지에서 사람 $k$ 의 사지 $c$ 에 속하는 신체 부위 $j_1$ 와 $j_2$ 의 정답 위치입니다. 만약 $p$ 지점이 사지 위에 있을 경우, $L^{\ast}_{c,k}(p)$ 에서의 값은 $j_1$ 에서 $j_2$ 로 향하는 단위 벡터입니다. 다른 모든 지점에서는 벡터 값이 0입니다.
훈련 중에 식 5의 $f_L$ 을 평가하기 위해, 우리는 이미지 지점 $p$ 에서의 정답 부위 연관 벡터 필드 $L_{c,k}^{\ast}$ 을 다음과 같이 정의합니다.
여기서 v는 사지 방향으로의 단위 벡터입니다: $v = (x_{j_2,k} − x_{j_1,k}) / \Vert x_{j_2,k} − x_{j_1,,k} \Vert_2$. 사지 위의 지점 집합은 선분 내 거리 임계값 내에 있는 지점으로 정의됩니다. 즉, 다음 조건을 만족하는 지점 $p$ 입니다:
\[0\leq v\cdot(p-x_{j_1,k})\leq l_{c,k} \text{ and } \vert v \bot\cdot (p-x_{k_1,k})\vert \leq \sigma_l,\]여기서 사지의 폭 $σ_1$은 픽셀 단위 거리이고, 사지의 길이는 $l_{c,k} = \Vert x_{j_2,k} − x_{j_1,k}\Vert_2$ 이며, $v\bot$ 는 $v$에 수직인 벡터입니다.
정답 부위 연관 필드는 이미지 내 모든 사람들의 연관 필드를 평균화한 것입니다:
여기서 $n_c(p)$ 는 지점 $p$ 에서의 모든 사람들의 0이 아닌 벡터 수입니다 (즉, 여러 사람의 사지가 겹치는 픽셀에서의 평균).
테스트 중에는 후보 신체 부위 탐지들 간의 연관성을 측정하기 위해 해당 PAF를 따라 선 적분을 계산하고, 후보 신체 부위 위치를 연결하는 선분을 따라 계산합니다. 즉, 탐지된 신체 부위들을 연결하여 형성된 후보 사지와 예측된 PAF의 정렬을 측정하는 것입니다. 구체적으로, 두 후보 신체 부위 위치 $d_{j_1}$과 $d_{j_2}$ 에 대해, 우리는 선분을 따라 예측된 부위 연관 필드 $L_c$를 샘플링하여 연관성에 대한 신뢰도를 측정합니다:
여기서 $p(u)$는 두 신체 부위 $d_{j_1}$과 $d_{j_2}$의 위치를 보간합니다,
\[\begin{equation} p(u)=(1-u)d_{j_1}+ud_{j_2}. \end{equation}\]실제로는, 우리는 $u$의 균등 간격 값을 샘플링하고 이를 합산하여 적분을 근사합니다.
2.4. Multi-Person Parsing using PAFs
탐지 신뢰도 맵에 대해 비최대 억제를 수행하여 신체 부위 후보 위치의 이산 집합을 얻습니다. 각 신체 부위에 대해 여러 후보가 있을 수 있으며, 이는 이미지 내 여러 사람 또는 잘못된 긍정 탐지 때문입니다(그림 6b에 표시됨). 이 신체 부위 후보들은 가능성 있는 사지들의 큰 집합을 정의합니다. 각 후보 사지는 식 10에 정의된 PAF에 대한 선 적분 계산을 통해 점수를 매깁니다. 최적의 파싱을 찾는 문제는 $K$-차원 매칭 문제에 해당하며 이는 NP-Hard 문제로 알려져 있습니다(그림 6c에 표시됨). 본 논문에서는 일관되게 고품질의 매칭을 생성하는 탐욕적 완화 방법을 제시합니다. 우리는 PAF 네트워크의 큰 수용 영역 덕분에 쌍별 연관 점수가 암묵적으로 전역적인 문맥을 인코딩하기 때문이라고 추측합니다.
형식적으로, 우리는 먼저 여러 사람에 대한 신체 부위 탐지 후보 집합 $\mathcal{D_J}$ 를 얻습니다. 여기서 $\mathcal{D_J} = { d_j^m: j \in {1,…J}, m ∈ {1,…N_j}}$, $N_j$ 는 신체 부위 $j$ 의 후보 수이고, $d_j^m ∈ \mathbb{R}^2$는 신체 부위 $j$의 $m$번째 탐지 후보 위치입니다. 이 신체 부위 탐지 후보들은 여전히 같은 사람의 다른 신체 부위와 연결되어야 합니다—즉, 실제로 연결된 사지를 형성하는 신체 부위 탐지 쌍을 찾아야 합니다. 우리는 두 탐지 후보 $d_{j_1}^m$ 과 $d_{j_2}^n$ 가 연결되어 있는지 여부를 나타내기 위해 변수 $z_{j_1j_2}^{mn} ∈ {0, 1}$ 를 정의하며, 목표는 모든 가능한 연결 집합에 대한 최적 할당을 찾는 것입니다. $\mathcal{Z} = {z_{j_1j_2}^{mn}: j_1, j_2 ∈ {1,…J}, m ∈ {1,…N_{j_1}}, n ∈ {1,…N_{j_2}}}$.
$c$번째 사지에 대해 신체 부위 $j_1$ (예: 목)과 $j_2$ (예: 오른쪽 엉덩이)의 한 쌍을 고려하면, 최적 연관성 찾기는 최대 가중치 이분 그래프 매칭 문제로 축소됩니다. 이 경우는 그림 5b에 표시되어 있습니다. 이 그래프 매칭 문제에서, 그래프의 노드는 신체 부위 탐지 후보 $\mathcal{D}_{j_1}$ 및 $\mathcal{D}_{j_2}$ 이고, 변(edge)은 탐지 후보 쌍 간의 모든 가능한 연결입니다. 또한, 각 변에는 식 10에 따른 신체 부위 연관 가중치가 적용됩니다. 이분 그래프에서의 매칭은 두 변이 노드를 공유하지 않도록 선택된 변의 부분 집합입니다. 우리의 목표는 선택된 변에 대해 최대 가중치를 가진 매칭을 찾는 것입니다.
여기서 $E_c$는 사지 유형 $c$에서의 매칭의 전체 가중치를 나타내며, $\mathcal{Z}_c$ 는 사지 유형 $c$에 대한 $\mathcal{Z}$의 부분집합이고, $E_{mn}$ 은 신체 부위 $d_{j_1}^m$ 와 $d_{j_2}^n$ 간의 연관성을 나타내며 식 10에서 정의되었습니다. 식 13과 14는 두 변이 동일한 노드를 공유하지 않도록 강제합니다. 즉, 동일한 유형의 두 사지(예: 왼쪽 팔뚝)가 동일한 부위를 공유하지 않도록 합니다. 우리는 Hungarian 알고리즘[14]을 사용하여 최적 매칭을 얻을 수 있습니다.
여러 사람의 전체 신체 포즈를 찾을 때, $\mathcal{Z}$를 결정하는 것은 $K$ 차원 매칭 문제입니다. 이 문제는 NP Hard 문제로 알려져 있으며, 많은 완화 방법이 존재합니다. 이 연구에서는 최적화에 두 가지 완화 방법을 추가하여, 우리의 도메인에 특화된 최적화를 수행합니다. 첫 번째로, 우리는 완전한 그래프를 사용하는 대신 최소한의 변을 선택하여 인간 포즈의 스패닝 트리 구조를 얻습니다(그림 6c에 표시된 대로). 두 번째로, 매칭 문제를 이분 매칭 하위 문제들로 분해하여 인접한 트리 노드들에서 독립적으로 매칭을 결정합니다(그림 6d에 표시됨). 3.1절에서 우리는 자세한 비교 결과를 제시하며, 최소한의 탐욕적 추론이 계산 비용의 일부만으로도 전역 솔루션을 잘 근사화함을 보여줍니다. 그 이유는 인접한 트리 노드 간의 쌍별 관계는 PAFs에 의해 명시적으로 모델링되지만, 내부적으로는 인접하지 않은 트리 노드 간의 관계가 CNN에 의해 암묵적으로 모델링되기 때문입니다. 이 속성은 CNN이 큰 수용 영역으로 훈련되어, 인접하지 않은 트리 노드에서의 PAF도 예측된 PAF에 영향을 미치기 때문에 나타납니다. 이 두 가지 완화 방법을 통해 최적화는 다음과 같이 단순하게 분해됩니다:
따라서 우리는 식 12-14를 사용하여 각 사지 유형에 대해 독립적으로 사지 연결 후보를 얻습니다. 모든 사지 연결 후보를 통해 동일한 신체 부위 탐지 후보를 공유하는 연결을 여러 사람의 전체 신체 포즈로 조립할 수 있습니다. 트리 구조에서의 최적화 방식은 완전 연결 그래프에서의 최적화 방식보다 몇 배 빠릅니다[22, 11].
3. Results
우리는 다중 인물 포즈 추정을 위한 두 가지 벤치마크에서 우리의 방법을 평가합니다: (1) MPII 인간 다중 인물 데이터셋 [2]과 (2) COCO 2016 키포인트 챌린지 데이터셋 [15]. 이 두 데이터셋은 혼잡, 크기 변이, 가림, 접촉 등과 같은 다양한 현실 세계의 문제를 포함하는 다양한 시나리오에서 이미지를 수집합니다. 우리의 접근법은 최초의 COCO 2016 키포인트 챌린지 [1]에서 최첨단을 달성했으며, MPII 다중 인물 벤치마크의 이전 최첨단 결과를 크게 능가했습니다. 우리는 시스템의 효율성을 정량화하기 위해 런타임 분석도 제공합니다. 그림 10은 우리의 알고리즘으로부터 나온 일부 정성적 결과를 보여줍니다.
3.1. Results on the MPII Multi-Person Dataset
MPII 데이터셋에서의 비교를 위해, 우리는 도구 세트 [22]를 사용하여 PCKh 임계값을 기반으로 모든 신체 부위에 대한 평균 정밀도(mAP)를 측정합니다. 표 1은 [22]와 동일한 288개의 테스트 이미지 부분집합 및 전체 MPI 테스트 세트에서 우리의 방법과 다른 접근 방식 간의 mAP 성능을 비교하며, 우리의 검증 세트에서의 자체 비교도 포함합니다. 이러한 측정 외에도 우리는 이미지당 평균 추론/최적화 시간을 초 단위로 비교합니다. 288개의 이미지 부분집합에서 우리의 방법은 이전 최신 하향식 방법 [11]을 8.5% mAP로 능가합니다. 놀랍게도, 우리의 추론 시간은 6자리 수가 적습니다. 3.3절에서 더 자세한 런타임 분석을 보고합니다. 전체 MPII 테스트 세트에 대해 스케일 검색 없이도 우리의 방법은 이전 최신 방법을 큰 차이로 능가하며, mAP에서 13%의 절대적인 증가를 보입니다. 3개의 스케일 검색(×0.7, ×1 및 ×1.3)을 사용하면 성능이 75.6% mAP로 더욱 향상됩니다. 이전 하향식 접근 방식과의 mAP 비교는 신체 부위를 연결하는 우리의 새로운 특징 표현인 PAFs의 효과를 나타냅니다. 트리 구조를 기반으로 한 우리의 탐욕적 파싱 방법은 완전 연결된 그래프 구조에 기반한 그래프컷 최적화 공식 [22, 11]보다 더 나은 정확도를 달성합니다.
표 2에서, 우리는 그림 6에 표시된 다양한 골격 구조에 대한 비교 결과를 검증 세트에서 보여줍니다. 즉, MPII 훈련 세트에서 제외된 343개의 이미지입니다.
우리는 완전 연결된 그래프를 기반으로 모델을 훈련하고, 모든 변을 선택하여 결과를 비교합니다(그림 6b, 정수 선형 프로그래밍으로 근사적으로 해결됨), 최소 트리 변(그림 6c, 정수 선형 프로그래밍으로 근사적으로 해결됨), 그리고 그림 6d, 이 논문에서 제시된 탐욕적 알고리즘으로 해결됨. 유사한 성능은 최소 변을 사용하는 것으로 충분함을 보여줍니다. 우리는 네트워크 용량을 완전히 활용하기 위해 최소 변만을 학습하는 또 다른 모델을 훈련했습니다—이 논문에서 제시된 방법—그림 6d (sep)로 표시됩니다. 이 접근법은 그림 6c 및 심지어 그림 6b를 능가하면서 효율성을 유지합니다. 그 이유는 훨씬 적은 수의 부위 연관 채널(트리의 13개의 변 대 그래프의 91개의 변)이 훈련 수렴을 용이하게 만들기 때문입니다.
그림 7a는 검증 세트에 대한 소거 분석을 보여줍니다. PCKh-0.5 임계값에서, PAFs를 사용한 결과는 중간 지점 표현을 사용한 결과보다 뛰어났으며, 구체적으로는 한 중간 지점보다 2.9%, 두 중간 지점보다 2.3% 더 높습니다. 인간 사지의 위치와 방향 정보를 모두 인코딩하는 PAFs는, 예를 들어 팔이 겹치는 경우와 같은 일반적인 교차 상황을 더 잘 구별할 수 있습니다. 레이블이 없는 사람들의 마스크를 사용하여 훈련하면 성능이 2.3% 더 향상되며, 이는 훈련 중 손실에서 실제 긍정 예측에 대한 페널티를 피하기 때문입니다. 만약 우리가 파싱 알고리즘에 실제 키포인트 위치를 사용한다면, 88.3%의 mAP를 얻을 수 있습니다. 그림 7a에서, GT 검출을 통한 파싱의 mAP는 위치 오류가 없기 때문에 서로 다른 PCKh 임계값에 걸쳐 일정합니다. 키포인트 검출에 GT 연결을 사용하면 81.6%의 mAP를 달성합니다. PAFs를 기반으로 한 파싱 알고리즘이 GT 연결을 사용하는 것과 유사한 mAP를 달성한다는 것은 주목할 만합니다 (79.4% 대 81.6%). 이는 PAFs 기반의 파싱이 올바른 부위 탐지 연결에 있어 매우 강력함을 나타냅니다. 그림 7b는 단계별 성능 비교를 보여줍니다. mAP는 반복적인 정제 프레임워크와 함께 단조롭게 증가합니다. 그림 4는 단계별 예측의 정성적 개선을 보여줍니다.
3.2. Results on the COCO Keypoints Challenge
COCO 훈련 세트는 총 100만 개 이상의 키포인트(즉, 신체 부위)로 레이블된 10만 개 이상의 사람 인스턴스로 구성되어 있습니다. 테스트 세트는 “test-challenge”, “test-dev” 및 “test-standard” 하위 세트로 구성되어 있으며, 각 하위 세트에는 대략 2만 장의 이미지가 포함되어 있습니다. COCO 평가에서는 객체 키포인트 유사도(OKS)를 정의하고 10개의 OKS 임계값에 대한 평균 정밀도(AP)를 주요 경쟁 지표로 사용합니다 [1]. OKS는 객체 검출에서 IoU와 동일한 역할을 합니다. 이는 사람의 규모와 예측된 점과 실제 점 간의 거리로부터 계산됩니다. 표 3은 챌린지에서 상위 팀들의 결과를 보여줍니다. 우리의 방법이 작은 규모의 사람들에 대해 상향식 방법보다 낮은 정확도를 가진다는 점은 주목할 만합니다 (APᴹ). 그 이유는 우리 방법이 한 번에 이미지에 있는 모든 사람들이 포함된 훨씬 더 큰 규모 범위를 처리해야 하기 때문입니다. 반면에, 상향식 방법은 각 검출된 영역의 패치를 더 큰 크기로 재조정할 수 있어 작은 규모에서의 성능 저하가 적습니다.
표 4에서는 COCO 검증 세트의 하위 집합, 즉 무작위로 선택된 1160개의 이미지에 대한 자체 비교 결과를 보고합니다. GT 바운딩 박스와 단일 인물 CPM [31]을 사용하면 CPM을 사용하는 상향식 접근의 상한인 62.7% AP를 달성할 수 있습니다. 최신 객체 감지기인 SSD(Single Shot MultiBox Detector) [16]을 사용하면 성능이 10% 감소합니다. 이 비교는 상향식 접근법의 성능이 사람 감지기에 크게 의존함을 나타냅니다. 대조적으로, 우리의 하향식 방법은 58.4% AP를 달성합니다. 우리의 방법에 의해 파싱된 추정 인물의 각 리스케일 영역에 단일 인물 CPM을 적용하여 결과를 정제하면 전체 AP가 2.6% 증가합니다. 우리는 두 방법이 충분히 일치하는 예측에 대해서만 추정치를 업데이트하며, 이는 정확도와 재현률을 향상시킵니다. 우리는 더 큰 규모의 검색이 우리의 하향식 방법의 성능을 더욱 향상시킬 수 있기를 기대합니다. 그림 8은 COCO 검증 세트에서 우리의 방법의 오류 세분화를 보여줍니다. 대부분의 오탐은 배경 혼동이 아닌 부정확한 위치 지정에서 비롯됩니다. 이는 신체 부위의 모양을 인식하는 것보다 공간 종속성을 포착하는 데 더 많은 개선 여지가 있음을 나타냅니다.
3.3. Runtime Analysis
우리 방법의 런타임 성능을 분석하기 위해, 우리는 다양한 인원 수가 포함된 비디오를 수집합니다. 원래 프레임 크기는 1080 × 1920이며, 테스트 시 GPU 메모리에 맞추기 위해 368 × 654로 크기를 조정합니다. 런타임 분석은 NVIDIA GeForce GTX-1080 GPU를 탑재한 노트북에서 수행됩니다. 그림 8d에서, 우리는 상향식 비교를 위해 사람 감지와 단일 인물 CPM을 사용하며, 여기서 런타임은 이미지에 있는 사람 수에 대략 비례합니다. 반면에, 우리의 하향식 접근법의 런타임은 사람 수가 증가함에 따라 상대적으로 천천히 증가합니다. 런타임은 두 가지 주요 부분으로 구성됩니다: (1) CNN 처리 시간, 런타임 복잡도는 $O(1)$ 이며, 사람 수에 관계없이 일정합니다. (2) 다중 인물 파싱 시간, 런타임 복잡도는 $O(n^2)$ 이며, 여기서 n은 사람 수를 나타냅니다. 그러나 파싱 시간은 전체 런타임에 크게 영향을 미치지 않는데, 그 이유는 CNN 처리 시간보다 두 자리수 낮기 때문입니다. 예를 들어, 9명의 경우 파싱에 0.58ms가 소요되는 반면, CNN은 99.6ms가 소요됩니다. 우리의 방법은 19명이 포함된 비디오에서 8.8 fps의 속도를 달성했습니다.
4. Discussion
사회적으로 중요한 순간들은 다른 어떤 것보다도 사람들을 사진과 비디오를 찍게 만듭니다. 우리의 사진 컬렉션은 개인적으로 중요한 순간들을 포착하는 경향이 있습니다: 생일, 결혼식, 휴가, 성지 순례, 스포츠 이벤트, 졸업식, 가족 사진 등. 기계가 이러한 사진의 의미를 해석할 수 있게 하려면, 이미지 속의 사람들을 이해할 필요가 있습니다. 실시간으로 이러한 인식을 갖춘 기계는 사람들의 개별적 및 사회적 행동에 반응하고 심지어 참여할 수 있을 것입니다.
이 논문에서, 우리는 이러한 인식의 중요한 구성 요소인 실시간 알고리즘을 다룹니다: 이미지에서 여러 사람의 2D 자세를 감지하는 방법. 우리는 인간 사지의 위치와 방향을 모두 인코딩하는 명시적인 비모수적 키포인트 연관 표현을 제시합니다. 두 번째로, 우리는 부분 감지와 부분 연관을 공동으로 학습하는 아키텍처를 설계합니다. 세 번째로, 우리는 탐욕 파싱 알고리즘이 신체 자세의 고품질 파싱을 생성하는 데 충분하며, 이미지 내 사람 수가 증가해도 효율성을 유지한다는 것을 보여줍니다. 우리는 그림 9에서 대표적인 실패 사례를 보여줍니다. 우리는 완전한 재현성을 보장하고 이 분야의 미래 연구를 장려하기 위해 훈련된 모델을 포함한 코드를 공개했습니다.
Acknowledgements
우리는 MPII 및 COCO 인간 자세 데이터 세트의 저자들의 노고를 인정합니다. 이러한 데이터 세트는 야생에서의 2D 인간 자세 추정을 가능하게 합니다. 이 연구는 부분적으로 ONR 보조금 N00014-15-1-2358 및 N00014-14-1-0595의 지원을 받았습니다.
Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
댓글남기기