논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Deep High-Resolution Representation Learning for Human Pose Estimation

Problem

DCNN을 이용한 많은 모델들이 있으나 대부분은 high-to-low resolution subnetworks를 순차적으로 연결된 구조를 사용한다. 그리고 마지막에 작아진 해상도를 다시 끌어올린다.

Essence

논문에서는 High Resolution Net (HRNet)이라는 새로운 구조를 제안한다. 이는 모든 처리 과정에서 높은 해상도의 representation을 유지할 수 있는 모델이다. 먼저 첫번째 스테이지에서 high-resolution subnetwork로 시작하여 점점 high-to-low resolution subnetwork를 추가하여 다음 스테이지를 구성하며, 그와 동시에 multi-resolution subnetworks들을 서로 연결시켜놓았다.

이렇게 multi-resolution subnetworks 끼리의 연결을 통해 정보를 교환함으로써 multi-scale fusion을 구현하였으며 이는 전체 과정에서 반복된다.

이렇게 생성된 high resolution representation 출력에서 human keypoint들을 estimation 하였다.

이 구조는 두가지 장점이 있는데, (1) high-to-low resolution subnetworks를 순차적으로 연결한 뒤, 원래 해상도로 복원하는 것보다, high resolution 자체를 유지할 수 있고, (2) low-level representation과 high-level representation을 통합하는 대신 지속적으로 multi-scale 정보를 fusion 함으로써 high-resolution representation이 low-resolution의 도움을, low-resolution이 high-resolution의 도움을 받도록 할 수 있다.

Detail

전체 구조는 흔히 쓰이는 구조를 그대로 사용하였다. 2 strided convolution을 이용하여 한단계 해상도를 낮추는 stem을 구성하고 이것의 출력을 main body에 입력하여 동일한 해상도의 feature map을 출력하는 구조를 사용하였다. 이 feature map에서 출력된 heatmap을 토대로 keypoint들을 estimation 한 뒤, 이를 원래 해상도로 변환하였다. HRNet은 main body 부분의 디자인에만 집중하였따.

먼저 기존의 high-to-low resolution subnetwork를 연속적으로 배치한 구조는 다음과 같이 나타낼 수 있다.

\mathcal{N}_{sr}을s번째 스테이지,r resolution을 갖는 subnetwork라고 할 때, high-to-low networkS는 다음과 같이 나타낼 수 있다.

여기에서 출발하도록 한다. 먼저 이 구조에서 multi-resolution subnetworks를 parallel하게 추가하도록 한다. 이렇게 하면 한 스테이지가 늘어날 때마다, 이전 스테이지의 해상도와 한단계 낮아진 해상도를 동시에 가질 수 있게 된다.

이제 여러 해상도의 subnetwork들 간의 정보를 교환하는 unit을 만들 차례이다. 세번째 스테이지를 3개의 exchange block으로 나누어서 각 block은 3개의 parallel한 convolution unit과 이들의 출력을 이어지는 exchange unit으로 구성하였다.

\mathcal{C}_{sr}^b는r resolution,b block,s stage의 convolution unit,\mathcal{E}_s^b는 그에 해당하는 exchange unit을 나타낸다.

exchange unit의 입력은s​​개의 response map으로\mathbf{X}_1, \mathbf{X}_2, \cdots, \mathbf{X}_s​​가 되고, 출력 또한s​​개의\mathbf{Y}_1, \mathbf{Y}_2, \cdots, \mathbf{Y}_s​​​을 가진다. 각각의 입/출력의 해상도는 서로 같다. 각 출력은 모든 입력 response map을 통합하여 계산된다.

\mathbf{Y}_k = \sum^s_{i=1} a(\mathbf{X}_i, k)

stage와 stage 사이의 exchange unit은\mathbf{Y}_{s+1} = \sum^s_{i=1} a(\mathbf{Y}_s, s + 1)​​ 으로 계산되는 extra output map을 추가로 가진다.

함수a(\mathbf{X}_i, k)는 resolutioni에서 resolutionk로 변환하는 upsampling, downsampling 을 의미하는데, downsampling을 위해서는 2-strided 3 x 3 convolution을 이용하였다. 만약 4배로 downsampling을 해야한다면 두개의 레이어를 통하도록 하였다. upsampling을 위해서는 1x1 convolution을 이용하여 channel 수를 맞춰준 뒤 nearest neighbor sampling을 적용하였다. 만약i=k이라면 입력을 그대로 출력하였다.

Heatmap은 다른 연구들과 동일하게 mean squared error loss를 통하여 계산하였고, 네트워크의 구조는 ResNet의 design rule을 그대로 따랐다.


Add a Comment Trackback