[6주차/백서경/논문리뷰] ViTPose : Simple Vision Transformer Baselines for Human Post Estimation (2022)
해당 글은 노션에서 작성되었습니다. 글과 사진이 깨지는 부분이 있어 자세한 내용은 https://western-hortensia-8e0.notion.site/ViTPose-Simple-Vision-Transformer-Baselines-for-Human-Post-Estimation-2022-05ddcec739774f54b2a453d091102147?pvs=4 를 참고해주세요!
input : original image
[downsample]
person instance가 있는 image가 주어지면, downsampling ratio인 dd 짜리 patch로 나눠준다.
$\mathbb{R}^{d^23}$ 인 patch $N(=\frac{H}{d}\frac{W}{d})$개가 생기므로 전체 patch는
$x_p\in\mathbb{R}^{Nd^2*3}$ 이 된다.
[flatten]
2D인 각 patch를 flatten하여 dd3 짜리 1D로 만들어준다
$x_p\in\mathbb{R}^{N*(d^2*3)}$
[linear projection]
transformer의 input으로 constant한 size의 vector를 받기 때문에, dd3인 각 patch를 C dimension으로 linear projection 한다.
모든 patch에 linear projection 적용해 나온 output $x_p\in\mathbb{R}^{NC} =\mathbb{R}^{\frac{H}{d}\frac{W}{d}*C}$ 이 F0가 되어 transformer의 input으로 들어간다.
input : embedded patches
$$ F_0\in\mathbb{R}^{\frac{H}{d}*\frac{W}{d}*C} $$
$$ F_{i+1}'=F_{i}+MHSA(LN(F_{i})) $$
[Layer Norm]
embedded patch에 layer normalization을 적용
[Linear Layer]
[ Attention Score ]
query와 key 행렬을 내적하여 attention score를 얻는데, 이때 내적하는 것은 query와 key 간의 유사도를 구하는 것으로 해석할 수 있다.
[ Scaling & Softmax ]
attention score 값 간의 차이를 눌러주기 위해 특정 값으로 나눠 scaling해주고, softmax를 적용해서 유사도 값을 0-1 사이로 맞춰준다.
[ Value 행렬과 연산 ]
Query와 key의 유사도인 attention score 행렬과 Value 행렬을 내적하여 최종 Self-Attention Value를 얻는다.
[ Multi-head ]
[ Skip connection ]
layer norm과 multihead self attention을 거친 output을 input에 더해준다.
$$ F_{i+1}'=F_{i}+MHSA(LN(F_{i})) $$
$$ F_{i+1}=F_{i+1}'+FFN(LN(F_{i})) $$
input : encoder output Fi
$$ F_i\in\mathbb{R}^{\frac{H}{d(=16)}*\frac{W}{d(=16)}*C} $$
우리가 원하는 것은 key joint의 값이므로, encoder output을 joint로 변환해주는 과정이 필요하다. ViTPose는 transformer encoder에 가벼운 decoder를 붙여서 최종 output을 얻는다.
$$ K=Conv_{1*1}(Deconv(Deconv(F_{out}))) $$
[Deconvolution]
input으로 ${\frac{H}{16}*\frac{W}{16}C}$의 Fi가 들어오면, decoder에서 deconvolution을 통해 upsampling을 해준다. 한번의 deconvolution에서 2배 upsample이 되어서 두번의 deconv를 거치고 나면 $\mathbb{R}^{\frac{H}{4}\frac{W}{4}*C}$ 가 된다.
[Predictor-convolution layer]
찾고자 하는 목표 joint의 개수가 Nk개라고 할 때, 11 convolution을 거쳐${\frac{H}{4}\frac{W}{4}C}$ 에서 ${\frac{H}{16}\frac{W}{16}*N{k}}$ 의 feature map을 얻는다.
reference
---
[6주차 / 박민규 / 논문리뷰 ] ViTAE (0) | 2023.08.17 |
---|---|
[6주차 / 김지윤 / 논문리뷰] ViTAE : Vision Transformer Advanced by Exploring Intrinsic Inductive Bias (0) | 2023.08.11 |
[6주차 / 임종우 / 논문리뷰] ViTPose : Simple Vision Transformer Baselines for Human Pose Estimation (0) | 2023.08.10 |
[4주차/백서경/논문리뷰] Auto-Encoding Variational Bayes (0) | 2023.08.06 |
[4주차 / 김지윤 / 논문 리뷰] Generative Adversarial Nets(GAN) (0) | 2023.08.06 |
댓글 영역