Deep High-Resolution Representation Learning for Visual Recognition
High-resolution representations are essential for position-sensitive vision problems, such as human pose estimation, semantic segmentation, and object detection. Existing state-of-the-art frameworks first encode the input image as a low-resolution represen
arxiv.org
GitHub - HRNet/HRNet-Object-Detection: Object detection with multi-level representations generated from deep high-resolution rep
Object detection with multi-level representations generated from deep high-resolution representation learning (HRNetV2h). This is an official implementation for our TPAMI paper "Deep High-Reso...
github.com
Abstract
기존의 state-of-the-art framework들은 아래의 그림처럼 입력 이미지를 High Resolution 에서 Low Resolution으로 encoding한 이후, Low Resolution에서 High Resolution으로 복구한다. (e.g. ResNet, VGGNet)
하지만 High-Resolution Network (HRNet)은 모든 과정에서 High Resolution을 유지한다.
HRNet은 아래 두개의 특징이 있다.
- Connect the high-to-low resolution convolution streams in parallel
- Repeatedly exchange the information across resolutions
이를 통해 우린 semantically richer, spatially more precise한 결과를 얻어낼 수 있다.
Introduction
HRNet은 아래 그림처럼 high-resolution convolution stream에서 시작하여, 점차적으로 high-to-low resolution convolution streams을 하나씩 추가하여 multi-resolution stream를 병렬적으로 연결한다.
결과적으로 nth stage는 n resolutions에 해당하는 n streams를 포함한다. 또한 병렬적으로 연결된 streams에서 정보를 반복적으로 교환함으로써 multi-resolution fusion을 수행한다.
HRNet에는 두가지 version이 있다.
- HRNetV1 : only outputs the high-resolution representation computed from the high-resolution convolution stream → apply to human pose estimation
- HRNetV2 : combines the representations from all the high-to-low resolution parallel streams → apply to semantic segmantation
COCO pose estimation에서는 HRNetV1, HRNetV2 모두 비슷한 성능을 보였고, semantic segmantation에서는 HRNetV2가 HRNet1보다 좋은 성능을 보였다.
추가적으로 HRNetV2p는 multi-level representation으로 HRNetV2에서 나온 high-resolution representation output을 state-of-the-art detection frameworks (e.g. Faster R-CNN, Cascade R-CNN, FCOS, CenterNet), state-of-the-art joint detection and instance segmentation frameworks (e.g. Mask R-CNN, Cascade Mask R-CNN, Hyrbrid Task Cascade)에 적용한 모델이다.
High-Resolution Networks
1. Parallel Multi-Resolution Convolutions
High-resolution convolution stream을 1번째 stage로 시작한다. 이후 점차적으로 새로운 stage를 만들면서 high-to-low resolution strams를 하나씩 추가하여 multi-resolution streams를 병렬로 연결한다. 결과적으로, 다음 번째 stage의 resolution은 직전 stage의 resolution들을 포함한다.
2. Repeated Multi-Resolution Fusions
Fusion module의 목적은 multi-resolution representations에서 정보를 교환하기 위함이다. 이것은 여러번 반복된다. (e.g. 4 residual units 마다)
위의 그림처럼 3-resolution representations를 fusing하는 예를 살펴보자.
Input은 3개의 representations를 포함한다. (r : resolution index)
Output resolition은 아래와 같이 표현된다.
각 Output representation은 3개의 input들의 transformed representations의 합이다.
Stage에 걸친 Fusion(stage 3 ~ stage 4)은 아래와 같은 output을 갖게 된다.
Transform Function $f_{xr}(·)$은 input resolution index $x$와 output resolution index $r$과 종속적이다.
- $x = r$인 경우, $f_{xr}(R) = R$
- $x < r$인 경우, $f_{xr}(R)$은 input resolution $R$을 $(r-s)$ stride-2 3 X 3 convolutions를 통해 downsample
- $x < r$인 경우, $f_{xr}(R)$은 input resolution $R$을 bilinear upsample (1 X 1 convolution for aligning the number of channels)
3. Representation Head
- HRNetV1 : output is the representation only from the high-resolution stream (Other three representations are ignored)
- HRNetV2 : rescale the low-resolution representations through bilinear upsampling without changing the number of channels to the high resolution, and concatenate the four representations, followed by 1 X 1 convolution to mix the four represantations
- HRNetV2p : construct multi-level representations by downsampling the high-representation output from HRNetV2 to multiple levels
4. Instantiation
위 그림을 예시로 들자면, Main Body는 4개의 stages들이 four parallel convolution streams로 구성되어있다. Resolution은 각각 1/4, 1/8, 1/16, 1/32이다.
첫번째 stage에서는 4개의 residual units을 포함한다. 각 unit들은 너비 64인 bottleneck으로 구성되어있다. 하나의 3 X 3 convolution은 특징맵의 너비를 C로 바꾼다.
두번째, 세번째, 4번째 stage는 각각 1, 4, 3 modularized blocks로 구성되어 있다. Modularized block의 Multi-resolution parallel convolution 안의 branch들은 각각 4개의 residual units들을 포함한다. 각 unit은 각 resolution에 대해 2개의 3 X 3 convolution을 포함한다. 각 convolution 이후 batch normalization과 nonlinear activation ReLU를 적용한다.
Convolution 결과 4개의 resolution의 너비 (채널수)는 C, 2C, 4C, 8C이다.
5. Analyze
Modularized block을 2개의 요소로 분석해보자 : Multi-resolution parallel convolutions, multi-resolution fusion
Multi-resolution parallel convolution은 group convolution과 유사하다. Multi-resolution parallel convolution은 input channels들을 서로 다른 spatial resolution을 가진 channel로 나눈 후 일반적인 convolution을 진행한다. 반면 group convolution에서의 resolution은 모두 같다. 이는 multi-resolution parallel convolution이 group convolution의 장점을 가질 수 있다는 것이다.
Multi-resolution fusion은 multi-branch full-connection form의 일반적인 convolution과 유사하다. Input channel, output channel 모두 여러 부분집합으로 나뉜다. 그리고 각 부분집합들은 fully-connected로 연결된 일반적인 convolution이다. Multi-resolution fusion은 각각 다른 resolution에 대해 처리를 해야한다는 점에서 multi-branch full-connection form의 일반적인 convolution과 다르다.
Results
1) Human Pose Estimation
[Dataset]
- COCO - 200,000 images, 250,000 person instances labeled with 17 key-points
- COCO train2017 - 57K images, 150K person instances
- val2017 - 5000 images
- test-dev2017 - 20K images
2) Semantic Segmentation
[Dataset]
- Cityscapes - 5,000 high quality pixel-level finely annotated images (Training : 2,975/Validation : 500/testing : 1,525 images), 19 classes used for evaluation
- PASCAL-Context - Training : 4,998 scene images/Testing : 5,105 imges, 59 semantic labels, 1 background label
- LIP - 50,462 elaborately annotated human images (Training : 30,462/Validation : 10,000), 19 human part labels, 1 background label
3) COCO Object Detection
[Dataset]
- MS COCO 2017 detection - Training : 118k images/Vaidation (val) : 5k images/Testing (test-dev) : ~20k images
댓글