Multi-Scale Structure-Aware network for Human Pose Estimation
1. Introduction
DNN을 이용해서 사람의 자세를 추정하고자 할 때 몇가지 문제점이 있습니다.
(1) 크기 불안정성: SSD와 같은 사람 검출기에서 뽑아낸 바운딩 박스가 약간씩 진동하는 현상이 있고, 이로 인하여 입력 크기를 변화시켜 자세 추정의 성능을 저하시킵니다. 최근 제안된 hourglass 방법 또한 결과가 특정 스케일에 오버핏되는 경향을 보입니다.
(2) 부족한 구조적 사전지식: 사람의 몸의 구조를 사전 지식으로서 어떻게 딥 네트워크에 사용할 수 있는지의 문제입니다. 이 부분은 여러 사람이 등작하는 어려운 동작이나 복잡한 배경과 같은 환경에서 자세를 추정하는데 핵심적인 정보로 활용될 수 있습니다.
이 논문에서는 기존의 hourglass가 가지는 한계들을 극복하는 전체적인 프레임워크를 제안합니다. 이 방법은 multi-scale supervision network (MSS-net)와 multi-scale regression network (MSR-net) 두개의 뉴럴 네트워크를 기반으로 구성되었습니다.
MSS-net에서는 각 deconv 레이어마다 특정 스케일에 대한 피쳐를 가지도록 로스를 추가하여 멀티 스케일 피쳐를 학습할 수 있도록 하였습니다 .또한 coarse-to-fine deconvolution 과정을 attention mechanism과 비슷하게 동작하도록 하여 키포인트를 정교화하도록 하엿습니다.
MSR-net은 여러 MSS-net을 통과하여 나온 출력으로부터 여러 스케일에 대한 키포인트 히트맵을 통합하여 최종적으로 키포인트를 regression하여 출력합니다.
MSS-net과 MSR-net을 함께에 학습시키기 위해 structure-aware loss를 사용하였습니다. 이는 서로 연결성이 있는 키포인트 쌍에 기반한 로스로 딥 네트워크가 구조적 사전 지식을 모델링할 수 있도록 도와줍니다.
2. Related Work
3. Method
앞에서 이야기한 것과 같이 두 종류의 서브네트워크로 구성됩니다. MSS-net가 여러개를 반복적으로 쌓았으며 마지막 부분에 MSR-net이 연결됩니다. MSS-net은 conv-deconv 구조의 hourglass 모듈로 multi-scale loss supervision으로 학습되었습니다. MSR-net은 최종적으로 자세 구조를 regression하기 위해 여러 스케일에서의 키포인트 히트맵과 키포인트간 관계성을 유추하게 됩니다. MSS-net과 MSR-net은 structure-aware loss를 공유합니다. 이것은 여러 스케일의 구조적 피쳐를 학습할 수 있도록 디자인된 것입니다. 또한 파인 튜닝 시 학습 시에 키포인트를 마스킹하는 방법을 이용하여 어려운 샘플 또한 학습할 수 있도록 하였습니다.
이러한 구조를 만들게된 첫번째 이유는 다음과 같습니다. Hourglass 모듈을 여러개 쌓은 구조는 좋은 피쳐를 학습하기는 하지만, 특정 한 스케일에 대해 더 민감하게 반응하고, 스케일간 강인함과 일관성이 부족했습니다. 두번째로 MSS-net hourglass 모델은 히트맵 형식으로 각 바디 키포인트의 위치에 대한 likelihood를 출력하는데, 보통 이것은 GT자체가 2D Gaussian으로 블러링된 것을 사용하게 됩니다. 하지만 학습된 출력은 대개 가우시안 형태로 나타나지 않고 이는 몸 동작에 따라 달라집니다. 이는 키포인트간 관계를 고려하지 않아 생기는 문제이며, 때문에 키포인트간 구조적인 일관성이 최적화 되지 않아 생기는 것이라고 이야기할 수 있습니다.
구조적인 일관성을 보장하기 위해 structure-aware loss를 MSS-net과 MSR-net에 모두 사용하였습니다. MSS-net에서는 키포인트간 관계를 포착하여 더 나은 결과를 낼 수 있도록 하였고, MSR-net에서는 전체 키포인트를 모두 고려하여 결과를 낼 수 있도록 하였습니다.
A. Multi-Scale Supervision Network
MSS-net은 여러 스케일에 대한 피쳐를 학습합니다. 각 deconv 레이어에 레이어 단위로 로스를 사용하여 해당 스케일에 대한 정보를 가지도록 하였습니다. Multi-scale supervision은 각 deconv 레이어에서 다운 스케일된 정답 히트맵과의 차이를 포착하도록 동작합니다. 차이를 계산하기 위해서 각 스케일에 대해서 1x1 컨볼루션을 수행하여 높은 차원의 deconv 피쳐맵을 키포인트의 수에 맞는 차원을 가지도록 맞추어 줍니다.
이 multi-scale supervision network는 attention model과 비슷하게 동작합니다. 해상도가 낮은 히트맵은 다음에 등작하는 높은 해상도에서 일종의 가이드를 제공하면서 위치를 정교화할 수 있도록 합니다.
로스 함수 $L_{MS}$는 multi-scale supervision 네트워크를 학습하는데 사용됩니다.
$$ L_{MS}^i = \frac{1}{N} \sum_{n=1}^N \sum_{x, y} || P_n (x, y) - G_n (x, y) ||_2$$
이는 정답 히트맵과 결과 히트맵의 $L_2$ 에러를 모든 스케일의 모든 키포인트에 대하여 더한 것입니다. 여기서 $P_n(x, y)$와 $G_n(x, y)$는 픽셀 위치 $(x, y)$에서 유추된 키포인트와 정답 키포인트의 신뢰도를 나타냅니다.
B. Multi-Scale Regression Network
여러 MSS-net의 반복 이후에 나온 결과에 fully convolutional multi-scale regression을 수행하여 여러 스케일에 대한 키포인트 히트맵을 구조적인 일관성을 띄도록 정교화하였습니다. MSR-net은 여러 스케일의 히트맵을 입력으로 받아 각 스케일에서의 정답 키포인트와 일치시킵니다. 이렇게 함으로써 네트워크는 모든 스케일의 히트맵을 통합하여 추정된 포즈를 정교화할 수 있습니다. 입력되는 키포인트 히트맵은 일종의 attention method로 볼 수 있으며, 네트워크는 스케일에 무관하면서 attention을 기반으로 하는 바디 구조 모델을 학습하게 됩니다. 또한 structure-aware loss를 이용하기 때문에 각 키포인트 간의 관계 또한 고려하게끔 학습됩니다.
C. Structure-Aware Loss
Hourglass 구조가 깊어지면 gradient vanishing 문제가 발생하여 학습에 문제가 되는 것은 알려진 사실입니다. 이를 해결하기 위해 structure-aware loss 함수가 인간의 스켈레톤 구조를 모델링하도록 정의하였습니다. 스켈레톤의 각 노드 $S_n \in S$는 각 키포인트와 그와 연결된 $n \in \{ 1, \cdots, N \}$개의 키퐁니트를 나타냅니다. $i$번째 스케일에서의 structure-aware loss는 다음과 같습니다.
$$ L_{SA}^i = \frac{1}{N} \sum_{n=1}^N || P_n^i - G_n^i ||_2 + \alpha \sum_{i=1}^N || P_{S_n}^i - G_{S_n}^i||_2$$
첫번째 항은 multi-scale supervision loss $L_{MS}^i$와 같이 개별 키포인트에 대한 로스입니다. 두번째 항은 개별 키포인트와 그와 연결된 이웃 키포인트들의 히트맵을 조합한 것입니다.
D. Keypoint Masking Training
만약 가려짐이 발생하는 경우 어떤 키포인트는 보이지 않을 수 있습니다. 이에 대응하기 위해서 키포인트 마스킹 방법을 사용하였습니다. 학습에 사용되는 데이터에는 이러한 경우의 샘플이 적기 때문에 augmentation으로 이를 해결하였습니다. 먼저 배경 패치를 복사하여 특정 키포인트에 놓아서 가려짐을 시뮬레이션 하였습니다. 두번째로 키포인트 주변 패치를 복사하여 복사하여 근처 배경에 놓도록 하여 여러 사람이 등작하는 환경을 시뮬레이션 하였습니다. 이런 경우에도 네트워크는 인간의 구조적 지식을 활용하여 자세를 추정할 수 있도록 학습됩니다.
4. Experiments and Analysis
5. Conclusion