HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation, Bowen Cheng, et al., 2020 논문을 읽고 정리, 요약한 글입니다.
⏹ Abstract
Bottom-up human pose estimation은 스케일 변화 문제로 인해 작은 사람의 정확한 포즈를 예측하는 데 어려움이 있다.
본 논문에서는 high-resolution feature pyramid를 사용하여 scale-aware representation을 학습하는 새로운 bottom-up human pose estimation 방법인 HigherHRNet을 소개한다. 학습을 위한 multi-resolution supervision과 추론을 위한 multiresolution aggregation를 갖춘 제안 된 접근 방식은 bottom-up human pose estimation 에서 스케일 변화 문제를 해결하고 특히 작은 사람의 경우 keypoint를 더 정확하게 찾아낼 수 있다.
HigherHRNet의 feature pyramid는 HRNet의 feature map output과 transposed convolution을 통해 upsampled higher-resolution outputs으로 구성된다. HigherHRNet은 COCO test-dev set에서 중간 크기의 사람에 대해 기존 최고의 bottom-up 방법보다 2.5% AP 향상되어 스케일 변화를 처리하는 데 효과적임을 보여준다.
또한 HigherHRNet은 refinement나 기타 post-processing 기법을 사용하지 않고도 COCO test-dev set에서 기존의 모든 bottom-up 방법을 능가하는 새로운 SOTA(70.5% AP)를 달성했다. HigherHRNet은 CrowdPose test set(67.6% AP)에서도 모든 bottom-up 방법을 능가하는 결과를 보여줌으로써 혼잡한 장면에서 강력함을 입증했다.
1️⃣ Introduction
현재 사람의 포즈를 추정하는 방법은 크게 top-down과 bottom-up 방법으로 구분할 수 있다.
top-down 방식은 person detector에 의존하여 bounding box가 있는 person instance를 각각 검출한 후 single person pose estimation이라는 간단한 작업으로 문제를 축소하는 방식이다. top-down은 detection 된 person bouding box를 자르고 크기를 조정하여 모든 사람을 거의 동일한 scale로 정규화 할 수 있으므로 일반적으로 사람의 scale 변화에 덜 민감하다. 따라서 다양한 multi-person human pose estimation benchmark에 대한 SOTA는 대부분 top-down 방법을 통해 달성 된다. 그러나 이러한 방법은 별도의 person detecotr에 의존하고 모든 사람의 포즈를 개별적으로 추정해야 하므로 일반적으로 계산 비용이 많이 들며 진정한 end-to-end 시스템이 아니다.
반면 bottom-up 방법은 다양한 해부학적 keypoint의 heatmap을 예측하여 입력 이미지의 모든 사람에 대해 keypoint를 찾아낸 다음 이를 person instance로 그룹화 하는 것으로 시작한다. 이 전략은 bottom-up 방식이 실시간 pose estimation을 더 빠르고 효과적으로 수행할 수 있도록 한다. 그러나 bottom-up 방식은 스케일 변화를 처리해야 하기 때문에 특히 작은 사이즈의 인물의 경우 bottom-up 방식과 top-down 방식의 성능 사이에 여전히 큰 격차가 존재한다.
작은 사이즈의 사람의 keypoint를 예측하는 데는 크게 두 가지 어려움이 있다.
1) 하나는 scale 변화에 대처하는 것, 즉 크기가 큰 사람의 성능을 희생하지 않고 크기가 작은 사람의 성능을 개선하는 것이다.
2) 다른 하나는 크기가 작은 인물의 keypoint를 정확하게 찾아내기 위해 고퀄리티의 high-resolution heatmap을 생성하는 것이다.
기존의 bottom-up 방법은 주로 keypoint를 그룹화 하는 데 초점을 맞추고 입력 이미지 해상도의 1/4에 해당하는 단일 해상도의 feature map을 사용하여 keypoint의 heatmap을 예측한다. 이러한 방법은 스케일 변화의 문제를 무시하고 추론 중에 이미지 pyramid에 의존한다(그림 1 (a)).
feature pyramid는 스케일 변화를 처리하기 위한 기본 구성 요소이지만, top-down feature pyramid에서 해상도가 낮은 feature map은 일반적으로 두 번째 문제를 겪게 된다. PersonLab은 입력 해상도를 높여 high-resolution heatmap을 생성한다(그림 1 (b)). 크기가 작은 인물의 성능은 입력 해상도에 따라 지속적으로 증가하지만, 크기가 큰 인물의 성능은 입력 해상도가 너무 크면 감소하기 시작한다. 이러한 문제를 해결하려면 계산 비용을 줄이면서 자연스럽고 간단한 방법으로 bottom-up keypoint 예측을 위해 공간적으로 더 정확하고 scale을 인식하는 heatmap을 생성하는 것이 중요하다.
본 논에서는 이러한 문제를 해결하기 위해 Scale-Aware HighResolution Network(HigherHRNet)를 제안한다. HigherHRNet은 새로운 high-resolution feature pyramid module을 통해 high-resolution heatmap을 생성한다. 1/32 해상도에서 시작하여 lateral connection과 함께 bilinear upsampling을 사용하여 feature map 해상도를 1/4까지 점진적으로 높이는 기존의 feature pyramid와 달리, high-resolution feature pyramid는 backbone에서 가장 높은 해상도의 feature인 1/4 해상도에서 직접 시작하여 deconvolution을 통해 더 높은 해상도의 feature map을 생성한다(그림 1 (c)).
high-resolution feature pyramid를 효율적으로 만들기 위해 HRNet의 1/4 해상도 경로에 high-resolution feature pyramid를 구축한다. HigherHRNet이 스케일 변화를 처리할 수 있도록 하기 위해 다양한 해상도의 학습 대상을 해당 feature pyramid level에 할당하는 Multi-Resolution Supervision 전략을 추가로 제안한다.
마지막으로 추론 중에 간단한 Multi-Resolution Heatmap Aggregation 전략을 도입하여 scale-aware high-resolution heatmap을 생성한다.
2️⃣ Related works
◾ Top-down methods
Top-down 방법은 person bounding box 내에서 한 사람의 keypoint를 감지한다. person bounding box는 일반적으로 object detector에 의해 생성된다.
mask R-CNN은 Faster R-CNN에 keypoint detection branch를 직접 추가하고 ROIPooling 후 feature를 재사용 한다.
◾ Bottom-up methods
Bottom-up 방법은 이미지의 모든 인물에 대해 신원이 없는 신체 관절을 감지한 다음 person 별로 그룹화 한다.
OpenPose는 heatmap 예측을 위한 하나의 branch와 그룹화를 위한 하나의 branch로 구성된 2단계 multi-stage 네트워크를 사용한다. OpenPose는 두 keypoint를 연결하는 2D vector field를 학습하는 part affinity field라는 그룹화 방법을 사용한다. 그룹화는 두 keypoint 사이의 line integral을 계산하여 가장 큰 적분을 가진 pair를 그룹화 하는 방식으로 이루어진다.
◾ Feature pyramid
Pyramidal representation은 scale 변화를 처리하기 위해 최근 object detection 및 segmentation 프레임워크에서 널리 채택되고 있다.
SSD와 MSCNN은 feature를 병합하지 않고 네트워크의 여러 layer에서 객체를 예측한다. Feature pyramid network는 bilinear upsampling과 lateral connection을 사용하여 feature resolution를 1/32에서 1/4로 점진적으로 복구하는 top-down pathway backbone model을 확장한다.
공통적인 motivation은 서로 다른 pyramid level의 feature 서로 다른 규모의 instance를 예측할 수 있도록 하는 것이다. 그러나 이러한 pyramidal representation은 bottom-up multi-person pose estimation에서는 잘 활용되지 않는다.
본 연구에서는 1/4 해상도 feature에서 시작하여 pyramid를 다른 방향으로 확장하여 더 높은 해상도의 feature pyramid를 생성하는 high-resolution feature pyramid를 설계한다.
◾ High resolution feature maps
high-resolution feature map을 생성하는 방법에는 크게 4가지가 있다.
(1) Encoder-decoder는 encoder path에서 context 정보를 캡처하고 decoder path에서 high resolution feature를 복구한다. decoder에는 일반적으로 동일한 해상도의 encoder feature에서 skip connection이 있는 일련의 bilinear upsample operation이 포함된다.
(2) Dilated convolution(일명 "atrous" convolution)은 feature map resolution를 보존하기 위해 몇몇 stride convolutions/max pooling을 제거하는 데 사용된다. Dilated convolution은 공간 정보 손실을 방지하지만 계산 비용이 더 많이 든다.
(3) Deconvolution(transposed convolution)은 feature map 해상도를 효율적으로 높이기 위해 네트워크의 끝에서 순차적으로 사용된다. SimpleBaseline은 deconvolution이 heatmap prediction을 위한 고퀄리티 feature map을 생성할 수 있음을 보여준다.
(4) 최근에는 High-Resolution Network(HRNet)가 이 네트워크 전체에서 high resolution pass를 유지하는 효율적인 방법으로 제안 되었다.
HRNet은 해상도가 다른 여러 가지 branch로 구성된다. Lower resolution branch는 contextual information 캡처하고 higher resolution branche는 공간 정보를 보존한다. branch 간의 multiscale fusion을 통해 HRNet은 풍부한 semantic을 가진 high resolution feature map을 생성할 수 있다.
본 논문은 고퀄리의 feature map을 생성하기 위해 HRNet을 기본 네트워크로 채택한다. 그리고 heatmap을 예측하기 위해 higher resolution feature map을 생성하는 deconvolution module을 추가한다.
resulting model의 이름은 "Scale-Aware High-Resolution Network"(HigherHRNet)이다.
HRNet과 deconvolution은 모두 효율적이기 때문에 HigherHRNet은 heatmap 예측을 위한 higher resolution feature map을 생성하는 데 효율적인 모델이다.
3️⃣ Hight-Resolution Network
◾ HRNet
HigherHRNet은 HRNet(그림 2 참조)을 backbone으로 사용한다.
HRNet은 first stage에서 high resolution branch로 시작한다. 그 다음 stage에서는 현재 branch에서 가장 낮은 해상도의 1/2과 병렬로 새로운 branch가 추가된다. 네트워크에 stage가 많아질수록 해상도가 다른 병렬 branch가 많아지고 이전 stage의 해상도는 모두 이후 stage에 유지된다. 3개의 병렬 branch가 포함된 네트워크 구조의 예는 그림 2에 나와 있다.
본 논문은 HRNet과 유사한 방식으로 backbone을 인스턴스화 한다. 네트워크는 해상도를 1/4로 낮추는 two strided 3 × 3 convolution으로 구성된 stem에서 시작한다.
1단계에는 각 uint이 width(채널 수) 64의 bottleneck으로 형성되는 4개의 residual unit과 feature map의 width를 C로 줄이는 하나의 3×3 convolution이 포함되어 있으며, 2, 3, 4단계에는 각각 1, 4, 3개의 multi-resolution block이 포함되어 있다.
네 가지 해상도의 convolution width는 각각 C, 2C, 4C, 8C이다. multiresolution group convolution의 각 branch에는 4개의 residual unit이 있고 각 unit에는 각 해상도에 2개의 3×3 convolution이 있다. C를 각각 32와 48로 설정하여 용량이 다른 두 개의 네트워크를 실험한다.
HRNet은 원래 top-down pose estimation을 위해 설계되었다. 본 연구에서는 heatmap과 tagmap을 예측하기 위해 1 × 1 convolution을 추가하여 HRNet을 bottom-up 방식으로 채택한다.
예측에는 가장 높은 해상도(입력 이미지의 1/4)의 feature map만 사용하며, 각 keypoint에 scalar tag를 사용한다.
◾ HigherHRNet
heatmap의 해상도는 작은 사이즈의 사람의 keypoint를 예측하는 데 중요하다.
기존의 대부분의 human pose estimation 방법은 각 keypoint 위치에 정규화 되지 않은 Gaussian kernel을 적용한 ground truth heatmap을 준비하여 Gaussiansmoothed heatmap을 예측한다. CNN은 convolution 연산 특성 상 공간적으로 부드러운 응답을 출력하는 경향이 있기 때문에 이 Gaussian kernel을 추가하면 네트워크 학습에 도움이 된다. 하지만 Gaussian kernel을 적용하면 keypoint의 정확한 위치 파악, 특히 작은 사이즈의 사람의 keypoint에 대한 정확한 위치 파악에 혼란을 초래할 수 있다. 이러한 혼란을 줄이기 위한 간단한 해결책은 Gaussian kerne의 표준 편차를 줄이는 것이다.
그러나 경험적으로 이 방법은 최적화를 더 어렵게 만들고 더 나쁜 결과를 초래한다는 것을 알 수 있다. 표준 편차를 줄이는 대신 다른 해상도에서 표준 편차를 변경하지 않고 더 높은 해상도에서 heatmap을 예측함으로써 이 문제를 해결한다.
Bottom-up 방법은 일반적으로 입력 이미지의 1/4 해상도에서 heatmap을 예측한다. 그러나 이 해상도는 정확한 heatmap을 예측하기에 충분하지 않다. deconvolution을 사용하여 high quality의 high resolution feature map을 효과적으로 생성할 수 있음을 보여주는 SimpleBaseline에서 영감을 받아 deconvolution module을 추가하여 그림 2와 같이 HRNet의 highest resolution feature map위에 HigherHRNet을 구축한다.
deconvolution module은 HRNet의 feature predicted heatmap을 모두 입력으로 받아 입력 feature map보다 해상도가 2배 더 큰 새로운 feature map을 생성한다. 따라서 두 가지 해상도를 가진 feature pyramid는 HRNet의 feature map과 함께 deconvolution module에 의해 생성된다. 또한 deconvolution module은 1 × 1 onvolution을 추가하여 heatmap을 예측한다.
다양한 해상도에서 heatmap predictor를 학습하고 추론을 위해 heatmap aggregation 전략을 사용한다.
deconvolution module의 수는 dataset의 사람 규모 분포에 따라 달라지는데, 일반적으로 작은 사이즈의 인물이 포함된 dataset는 예측을 위해 더 큰 해상도의 feature map이 필요하며, 그 반대의 경우도 마찬가지이다.
실험 결과, 하나의 deconvolution module을 추가하면 COCO dataset에서 최고의 성능을 얻을 수 있는 것으로 나타났다.
◾ Grouping
최근 연구에서는 associative embedding을 이용한 간단한 방법으로 그룹화를 높은 정확도로 해결할 수 있음을 보여주었다. 실험 결과에 따르면 predicted tag와 함께 ground truth detection을 사용하면 COCO keypoint detection dataset의 500개 학습 이미지로 구성된 hold-out set에서 AP가 59.2에서 94.0으로 향상되었다.
본 논문은 keypoint grouping을 위해 associative embedding을 사용한다. grouping process는 tag의 l2 distance.가 작은 keypoint를 그룹화 하여 신원이 없는 keypoint를 개별 keypoint로 clustering 한다.
◾ Deconvolution Module
본 논문은 input feature map보다 해상도가 두 배 높은 high quality feature map을 생성하기 위해 간단한 deconvolution module을 제안한다.
4 × 4 deconvolution(일명 transposed convolution)을 사용한 후 BatchNorm과 ReLU를 사용하여 input feature map을 upsampling하는 방법을 학습한다. 선택적으로, deconvolution 후에 여러 개의 Basic Residual Block을 추가하여 upsampling 된 feature map을 개선할 수 있다. 여기서는 4개의 Residual Block을 HigherHRNet에 추가한다.
deconvolution module에 입력되는 것은 HRNet 또는 이전 deconvolution module의 feature map과 예측된 heatmap의 연결이다. 또한 각 deconvolution module의 output feature map은 multi-scale의 heatmap을 예측하는 데도 사용된다.
◾ Multi-Resolution Supervision
가장 큰 해상도의 heatmap에만 supervision을 적용하는 다른 bottom-up 방법과 달리, 학습 중에 multi-resolution supervision을 도입하여 스케일 변화를 처리한다. ground truth keypoint 위치를 모든 해상도의 heatmap 상의 위치로 변환하여 다양한 해상도의 ground truth heatmap을 생성한다.
그런 다음 모든 ground truth heatmap에 동일한 표준 편차(기본적으로 표준 편차=2 사용)를 가진 Gaussian kernel을 적용한다. feature pyramid의 해상도가 다르면 다양한 스케일의 keypoint를 예측하는데 적합하기 때문에 Gaussian kernel의 표준 편차를 스케일링하지 않는 것이 중요하다. higher-resolution feature map에서는 작은 사이즈의 인물의 keypoint를 더 정확하게 찾기 위해 feature map의 해상도에 비해 상대적으로 작은 표준 편차가 필요하다.
HigherHRNet의 각 prediction scale에서 해당 scale의 predicted heatmap과 관련 ground truth heatmap 간의 평균 제곱 오차를 계산한다. heatmap의 최종 loss는 모든 해상도에 대한 평균 제곱 오차의 합계이다.
다음과 같은 이유로 feature pyramid의 여러 level에 서로 사람의 scale을 할당하지 않는다는 점을 강조할 필요가 있다.
- 학습 대상을 할당하는 데 사용되는 heuristic은 dataset과 네트워크 아키텍처에 따라 달라진다. dataset((scale distribution of person v.s. all objects)과 아키텍처(FPN은 pyramid level이 4개인 반면 HigherHRNet은 2개만 있음)가 모두 변하기 때문에 FPN의 heuristic을 HigherHRNet으로 변환하기는 어렵다.
- Gaussian kernel을 적용하기 때문에 ground truth keypoint target이 서로 상호 작용한다. 따라서 단순히 ignored region을 설정하여 keypoint를 분리하는 것은 매우 어렵다. 본 논문은 모델이 feature pyramid의 여러 level에서 특정 스케일에 자동으로 초점을 맞출 수 있는 기능을 갖추고 있다고 생각한다.
Tagmap은 HigherHRNet의 heatmap과는 다르게 학습된다. Tagmap은 모든 해상도를 사용하는 대신 가장 낮은 해상도에서만 예측한다. 이는 Tagmap을 학습하려면 global reasoning이 필요하고 낮은 해상도의 Tagmap을 예측하는 것이 더 적합하기 때문이다.
경험적으로도 해상도가 높을수록 Tagmap 예측을 잘 학습하지 못하며 심지어 수렴하지도 않는 것으로 나타났다. 따라서 입력 이미지의 1/4 해상도의 feature map에서 tagmap을 학습한다.
◾ Heatmap Aggregation for Inference
본 논문은 추론 중에 heatmap aggregation을 제안한다. bilinear interpolation을 사용하여 입력 이미지의 해상도와 다른 해상도로 예측된 모든 heatmap을 upsampling하고 최종 예측을 위해 모든 스케일의 heatmap을 평균화 한다.
heatmap aggregation 사용하는 이유는 scale-aware pose estimation을 가능하게 하기 위해서 이다.
예를 들어 COCO Keypoint dataset에는 322픽셀에서 1282픽셀 이상의 큰 스케일 차이를 가진 사람이 포함되어 있다. Top-down 방법은 사람 영역을 대략 single scale로 정규화 하여 이 문제를 해결한다. 그러나 bottom-up 방법은 모든 스케일에서 keypoint를 detection 하기 위해 스케일을 인식해야 하는데, HigherHRNet의 다양한 스케일의 heatmap이 스케일이 다른 keypoint를 더 잘 포착하는 것으로 나타났다.
4️⃣ Experiments
◾ HRNet VS HigherHRNet
HigherHRNet의 경우, extra residual block이 없는 deconvolution module을 사용하고 추론에는 heatmaps aggregation을 사용한다. 결과는 표 3에 나와 있다.
feature stride가 4인 HRNet을 사용한 simple bottom-up baseline은 AP = 64.4를 달성했다. 하나의 deconvolution module을 추가하면 feature stride가 2인 HigherHRNet이 HRNet보다 +2.5 AP라는 큰 차이로 성능이 향상된다(66.9 AP 달성).
또한, 주요 개선 사항은 중간 사이즈 사람에서 발생하며, AP^M은 HRNet의 57.1에서 HigherHRNet의 61.0으로 개선되었다.
이러한 결과는 higher resolution heatmap 덕분에 HigherHRNet이 작은 scale에서 훨씬 더 나은 성능을 발휘한다는 것을 보여준다. 또한 사이즈가 큰 사람의 pose에 대한 AP도 떨어지지 않는 것으로 나타났다. 이는 주로 예측을 위해 더 작은 해상도의 heatmap을 사용하기 때문이다. 이는 더 높은 해상도로 예측하는 것이 bottom-up pose estimation에 유리하며 스케일을 인식하는 예측이 중요하다는 것을 보여준다.
입력 이미지와 동일한 해상도의 feature map을 생성하기 위해 HRNet 뒤에 두 개의 deconvolution module을 추가하면 deconvolution module을 하나만 추가할 때 보다 66.9 AP에서 66.5 AP로 성능이 저하되는 것을 관찰할 수 있다. 중간 크기의 사람에 대한 개선은 미미하지만(+0.1 AP), 큰 크기의 사람에 대한 성능은 크게 떨어진다(-0.8 AP). 이는 feature map scale과 object scale 간의 정렬이 잘못되었기 때문으로 추정된다. 더 큰 해상도의 feature map(feature stride=1)은 작은 사이즈의 사람의 keypoint를 감지하는 데는 좋지만 COCO에서 작은 사이즈의 사람 pose estimation에는 고려되지 않는다.
따라서 COCO dataset에는 기본적으로 하나의 deconvolution module만 사용했지만, cascaded deconvolution module의 수는 dataset에 따라 달라져야 한다.
5️⃣ Conclusion
본 논문은 bottom-up multi-person pose estimation problem, 특히 작은 사이즈의 인물의 keypoint를 정확하게 찾아내는데 있어 스케일 변화 문제를 해결하기 위해 Scale-Aware High-Resolution Network(HigherHRNet)를 제시했다.
multi-scale image pyramid와 더 큰 input size로 문제를 부분적으로 해결할 수 있지만, 이러한 방법은 계산 비용이 높다는 단점이 있다. 이 문제를 해결하기 위해 HRNet 기반의 효율적인 high-resolution feature pyramid를 제안하고 multi-resolution supervision을 통해 학습한다.
추론 과정에서 multi-resolution heatmap aggregation 기능을 갖춘 HigherHRNet은 보다 정확한 human pose estimation을 위해 muilt-resolution heatmap및 higher-resolution heatmap을 효율적으로 생성할 수 있다.
특히 작은 사이즈의 인물을 대상으로 하는 까다로운 COCO dataset에서 HigherHRNet은 기존의 모든 bottomup 방법보다 큰 폭으로 성능이 뛰어나다.
논문을 읽은 후 제가 알고 있는 선에서 최대한 정리하고 요약한 글입니다. 때문에 해당 포스팅에 대한 의견 제시 및 오타 정정은 언제나 환영입니다!
늦더라도 댓글 남겨주시면 확인하겠습니다!