
1. Abstract
이 논문에서는 ViTPose라는 간단한 베이스라인 모델을 통해서 다양한 측면(모델 구조의 단순함, 모델 크기의 확장성, 훈련 패러다임의 유연성, 모델 간 지식 전달 가능성)에서 자세 추정을 위한 plain vision transformer의 놀랍도록 우수한 능력을 보여준다. 특히 ViTPose는 사람 인스턴스의 특성을 추출하기 위해 일반적이고 비계층적인 Vision Transformers를 backbone으로 사용하고, 자세추정을 위해 가벼운 디코더를 사용한다. ViTPose는 attention 타입, input의 해상도, 사전 학습과 finetuning 전략, 다양한 포즈 task들에 매우 유연하다. 간단한 지식(knowledge) 토큰을 통해 large ViTPose 모델을 작은 모델에 쉽게 전이할 수 있음을 실험적으로 입증하였다. 실험 결과는 basic ViTPose 모델이 MS COCO Keypoint Detection 벤치마크의 대표적인 방법들을 능가하는 것을 보여주며, 가장 큰 모델은 80.9AP로 새로운 sota를 달성하였다.
2. Introduction
Human pose estimation 은 컴퓨터 비전의 fundamental tasks 중의 하나이며, 인간 해부학적 키포인트의 위치를 파악하는 것을 목표로 한다. 인간의 모습의 다양성 때문에 도전적이다. 이런 어려움을 해결하기 위해 convolutional neural networks을 사용하여 어려운 작업을 해결하기 위한 급격한 발전이 있었다.
다른 vision transformer 구조들 대부분은 CNN을 백본으로 적용하였고, 추출된 feature를 개선하고 인체 키포인트 간의 관계를 모델링하기 위해 정교한 구조의 transformer를 사용하였다.
- PRTR- 추정된 키포인트들의 위치를 점진적으로 개선하기 위해 트랜스포머의 인코더와 디코더들 모두 결합
- TokenPose, TransPose - CNN으로부터 추출된 특성을 처리하기 위해 인코더만 포함하는 트랜스포머 구조 채택
- HRFormer - 트랜스포머를 사용하여 특징 직접 추출, 다중해상도 병렬 트랜스포머 모듈을 통해 높은 해상도 표현을 도입
▷ 이러한 방법들은 추가적인 CNN이 필요하거나 task 적용시 트랜스포머 구조를 세심하게 설계해야 함
따라서 본 논문에서는 위의 방법들과는 반대로 plain vision transformer 가 pose estimation 을 얼마나 잘 할 수 있을까? 에 대해서 생각하게 되었다. 구체적으로는 simple 하면서도 효과적인 baseline model을 제안한다.
사람 인스턴스에 대한 피처맵을 추출하기 위해 비계층적인 vision transforemer를 백본으로 사용했다. 백본은 마스킹된 이미지를 재구성하는 task(MAE)에 사전훈련되었다. 그리고 뒤따르는 lightweight 디코더의 경우는 피처맵들을 upsampling해서 특징을 추출하고 키포인트에 대한 히트맵을 regressing한다. 디코더는 2개의 deconvolution 레이어와 하나의 prediction 레이어로 구성된다.
정교한 설계가 없었음에도 불구하고 ViTPose모델은 MS COCO Keypoint test-dev set에서 80.9 AP의 SOTA 성능을 확보했다. pose estimation 을 위해 우수한 성능을 가진 단순하고 견고한 transformer baseline을 제시한다.
- 백본 인코더의 설계를 위한 특정 도메인 지식이 필요하지 않다. 몇 개의 transformer 레이어를 쌓는 것으로 평범하고 비계층적인 인코더 구조를 가질 수 있고, 디코더는 더 단순화하여 하나의 업샘플링 레이어와 성능 저하가 거의 없는 컨볼루션 예측 레이어로 구성 가능하다. 이러한 구조적 간단함으로 ViTPose가 더 나은 병렬(parallelism)을 가짐으로써 추론 속도와 성능 측면에서 새로운 pareto front( 최적?) 에 도달할 수 있다.
- 간단한 구조로 인한 뛰어난 확장성. 사전훈련된 vision transformer들에서 확장이 가능하기 때문에 빠른 개발이 이루어질 수 있다. 특히, 다양하게 transformer 레이어를 쌓거나 feature 차원을 증가 또는 축소시킴으로써 모델 크기를 쉽게 조절할 수 있으며, ViT-B, ViT-L, ViT-H를 사용하여 추론 속도와 성능 요구사항을 맞출 수 있다.
- ViTPose는 training paradigm에서도 매우 유연하다. 적은 수정만으로도 입력 이미지의 다양한 해상도와 특성 해상도에 적용 가능하다. 또한, 더 높은 해상도 이미지에는 더 정확한 결과를 항상 제공한다. 일반적인 단일 포즈 데이터셋에서 학습시키는 것 외에도, ViTPose는 추가적인 디코더를 유연하게 추가시킴으로써 다중 자세 추정 데이터셋에도 적용시킬 수 있다. 상당히 가벼운 디코더로 인해 아주 적은 추가 연산비용 발생한다.
- 큰 ViTPose모델에서 학습한 지식을 전이시킴으로서 작은 ViTPose모델의 성능을 쉽게 향상시킬 수 있다.
3. Related Work
3.1 Vision transformer for pose estimation
초기에는 transformer를 더 나은 디코더로 취급하는 경향이 있었다.
- TransPose: directly processes the features extracted by CNNs to model the global relationship.
- TokenPose: 토큰 기반 표현은 occluded 키포인트의 위치를 추정하고 서로 다른 키포인트 간의 관계를 모델링하기 위해 추가 토큰을 도입했다.
- HRFormer: CNN을 feature extraction으로 사용하지 않기위해 transformer를 사용하여 high-resolution 특징을 직접 추출했다. 이러한 transformer 기반 Pose Estimation 방법은 우수한 성능을 얻을 수 있었다. 하지만 역시 특징 추출에는 CNN이 필요하거나 정교한 transformer 구조가 필요하다.
3.2 Vision transformer pre-training
다양한 비전 트랜스포머 백본이 제안되었는데, 일반적으로 ImageNet-1K 데이터 세트으로 학습되었다. 최근에는 self-supervised learing 방법으로 plain vision transformers를 학습시키는데 제안되었다. With masked image modeling (MIM) as pretext tasks, 이 방법은 plain vision transformers에 좋은 initialization 을 제공할 수 있다.


본 논문에서는 masked image modeling (MIM) 으로 사전 학습된 plain vision transformer 를 백본으로 사용한다. 또한, pose estimation task에 ImageNet-1K를 이용한 사전 훈련이 필요한지 여부를 탐색한다. 결과는 놀랍게도 작은 unlabelled pose 데이터 셋을 이용해서 사전 학습을 한 경우에도 좋은 initialization 을 제공할 수 있음을 발견했다.
4. VitPose
4.1 The simplicity of ViTPose
For simplicity, 디코더에 skip-connections 또는 cross-attentions을 적용하지 않았다. 대신에 간단한 deconvolution layers 와 a prediction layer를 사용했다. input 은 a person instance image이다.
- input X :

이후 X 를 patch embedding layer를 통해 토큰으로 변환한다. d는 patch embedding layer의 downsampling ratio(default는 16). c는 hannel dimension 수이다.

그 다음 임베디드 토큰을 여러 트랜스포머 레이어에서 처리한다. 각 레이어는 Multi-head self-attention(MHSA) 레이어와 feed forward network(FFN)으로 구성되어 있다.

i는 i번째 transformer layer의 output이고, initial feature F0는 패치 임베딩 레이어 이후의 특성 PatchEmbed(X) 이다. It should be noted that the spatial and channel dimensions are constant for each transformer layer.
백본 network 의 output feature 는 아래와 같다.

본 논문은 두 가지 종류의 경량 디코더를 채택했다. 디코더는 백본 네트워크로부터 얻은 feature 들을 처리하고 키 포인트들을 로컬화 하는데 사용된다.
- classic decoder: 두 deconv 블록으로 구성되었다. 각각은 하나의 deconv레이어와 배치 정규화, ReLU로 구성된다. feature map을 2배로 업샘플링. 그 후, 1x1 커널 크기를 갖는 컨볼루션 레이어를 사용하여 key point의 localization heatmap(K)을 얻는다.

K는 estimated heatmaps을 나타낸다. (one for each keypoint) and Nk는 키포인트의 갯수를 의미한다. MS COCO dataset의 경우는 17개이다.

- 또 다른 simpler decoder: 피처맵을 bilinear 보간을 사용하여 4배로 업샘플링한 다음, ReLU, 3x3 커널을 가진 컨볼루션 레이어를 사용하여 히트맵을 얻었다.

이 단순한 디코더의 비선형 capacity는에도 불구하고 이것은 classic decoder보다 경쟁력 있는 성능을 얻을 수 있다.
4.4 The transferability of ViTPose
knowledge distillation과 토큰 기반 distillation 방법을 보완적으로 사용하였다.
knowledge distillation loss: Ks (student network output), kt (teacher network output) 는 같은 input에 대한 output 이다.

토큰 기반 distillation: 추가로 학습가능한 지식 토큰 t를 무작위로 초기화하고 teacher모델의 패치 임베딩 레이어 이후의 시각적 토큰에 추가, 학습된 teacher 모델 고정(freeze)하고 여러 에폭에 걸쳐 지식 토큰만 tuning한다. Kgt 는 ground truth heatmap 을 의미. X는 input 이미지. T({t; X}) 는 teacher 모델의 예측. t^∗는 loss 를 최소화하는 optimal token 을 의미한다.

그 후에, knowledge token t^∗는 frozen 되고 teacher 모델에서 student 모델로 knowledge trasfer 하기 위해 학습되는 동안 student network의 visual token 과 concatenate된다. 따라서 student network 의 loss 는 아래와 같다.

각각 토큰 distillation loss 와 output distillation loss 와 토큰 distillation loss 를 합친 것이다.
논문원문
https://arxiv.org/pdf/2204.12484.pdf
참고자료
file:///Users/namhuiju/Downloads/20201120_Self_Supervised_Representation_Learning_Seokho.pdf
https://velog.io/@qtly_u/ViTPose
ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
이 논문에서는 ViTPose라는 간단한 베이스라인 모델을 통해서 다양한 측면(모델 구조의 단순함, 모델 크기의 확장성, 훈련 패러다임의 유연성, 모델 간 지식 전달 가능성)에서 자세 추정을
velog.io