Scale-Aware Trident Networks for Object Detection

Inc Lomin's avatar
May 17, 2019
Scale-Aware Trident Networks for Object Detection
이 논문은 object detection 네트워크에서 물체의 크기 다양성을 효과적으로 해결하기 위한 방법을 제시합니다. 핵심적인 아이디어는 dilated convolution을 사용하여 receptive field를 기존의 backbone보다 키운 브랜치를 만들고, 이 브랜치는 크기가 큰 물체만을 검출하도록 하는 것입니다. 논문에서는 총 3개의 브랜치를 만들기 때문에 이름을 TridentNet이라고 붙였는데, 인상적인 것은 그 중 가운데(dilation=2)인 브랜치만 사용하여 approximation을 해도 거의 비슷한 성능 향상을 보인다고 합니다.
 

Introduction

Motivation

Object detection에서 물체의 scale variation이 큰 것을 다루는 것은 가장 중요한 이슈이다. 직관적인 방법은 image pyramid를 활용하여 multi-scale training을 하는 것이다. 하지만 image pyramid에서는 extreme scale의 물체가 많이 생겨나는 문제가 있다. SNIP에서는 image pyramid의 각 스케일에서 적당한 크기의 물체만을 학습에 사용하는 방식(scale normalization)으로 이 문제를 해결하고자 했지만, 필연적으로 multi-scale testing이 사용되어야 하기 때문에 inference 시간이 늘어나는 문제가 있다. FPN과 같은 또 다른 접근법은 image pyramid 대신 feature pyramid를 사용하는 것인데, 여러 스케일의 물체를 서로 다른 layer의 feature에서 예측하기 때문에 각각의 scale에서 representational power가 다른 문제가 있다. 즉 image pyramid 방식은 inference의 비효율을, feature pyramid 방식은 네트워크의 representational power를 충분히 활용하지 못하는 단점을 각각 가지고 있다. 이 둘의 장점만을 합칠 수 있다면 어떨까?

Contribution

본 논문에서는 scale-specific feature map이 여러 개 존재하는 구조의 네트워크를 제안한다. 이들은 weight sharing과 dilated convolution을 활용하여 효율적으로 다양한 크기의 물체의 학습에 대응할 수 있다. 또한, 단순한 approximation을 통해 inference 속도에 영향 없이 single-scale baseline에 비하여 큰 폭의 성능 향상을 이뤄낼 수 있다.
 

Proposed Method

Investigation of Receptive Field

Object detection task에서 receptive field가 미치는 영향에 대한 기존 연구가 부족하여, 직접 실험을 해 보았다. Dilated convolution을 사용하면 receptive field의 크기를 선형적으로 늘릴 수 있다. 본 실험에서는 ResNet-50, ResNet-101을 backbone으로 사용하는 Faster R-CNN에서 ResNet의 stage 4에 있는 convolution들의 dilation을 1, 2, 3으로 바꿔가며 실험해 보았다.
 
notion image
Dilation이 클 수록 큰 물체를, dilation이 작을 수록 작은 물체를 더 잘 검출한다.
 
이 실험을 통해 다음과 같은 사실을 알 수 있다:
  1. 서로 다른 스케일의 물체에 대한 성능은 네트워크의 receptive field에 영향을 받는다. 가장 적절한 receptive field는 물체의 크기에 강하게 연관되어 있다.
  1. ResNet-101은 이론적으로 큰 물체를 모두 커버하기에 충분한 크기의 receptive field를 가지고 있지만, dilation rate를 늘림으로써 큰 물체에 대한 성능을 더 끌어올릴 수 있다. 이것은 실효(effective) receptive field의 크기가 이론적인 계산보다 작다는 사실을 뒷받침한다.
이와 같은 결론으로부터, 본 논문에서는 물체의 크기에 맞게 receptive field를 조정하는 구조를 제안한다.
 

Trident Network

notion image
TridentNet은 single-scale의 이미지를 input으로 받고, 같은 파라미터를 가지고 있지만 dilation이 서로 다른 병렬 branch들을 사용하여 scale-specific feature map을 만들어낸다.
 
Network Structure
TridentNet은 backbone의 convolution block들 중 일부를 trident block으로 교체하여 만들어진다. Stride가 큰 convolution layer의 dilation을 크게 하는 것이 receptive field를 더 크게 바꾸기 때문에 본 논문에서는 backbone의 마지막 stage에 있는 conv block들을 바꾸었다.
Trident block의 각 branch가 독립적인 파라미터를 가질 수도 있지만, 파라미터를 공유하는 것이 더 낫다. 파라미터를 공유하면 우선 파라미터의 갯수가 줄어들어 더 효율적이고, 다른 스케일의 물체가 같은 representational power의 균일한 transform을 거치게 되어 원래 motivation에 더 부합한다. 또한 같은 파라미터가 더 많은 물체에 대하여 receptive field만 다른 채로 학습되기 때문에 학습 샘플 수가 줄어드는 문제가 없다.
 
Scale-aware Training Scheme
위와 같은 구조를 가지더라도, 여전히 scale-mismatch 문제는 남아 있다. 즉 작은 물체가 큰 dilation을 가지는 branch에서 학습되는 일이 일어난다. 따라서 특정 범위의 스케일을 가진 물체를 그 범위에 맞는 branch에서 따로 검출하도록 학습하는 것이 나을 것이다.
SNIP에서와 비슷하게, 각각의 branch에 valid range [l_i, u_i]를 설정한다. 학습 중에는 이 valid range에 들어가는 proposal과 ground truth만을 사용한다. 구체적으로, w, h의 크기인 ROI는 아래 범위에서 valid하다.
notion image
RPN에 대해서는 각각의 branch에 대하여 이 범위에 맞는 ground truth만을 anchor assignment에 사용한다. R-CNN에서는 이 범위의 proposal만을 학습에 사용한다.
 
Inference and Approximation
Inference시에는 모든 브랜치에서 우선 detection 결과를 만들고, 각각의 branch의 valid range를 벗어나는 것들을 걸러낸다. 그 후 NMS (또는 Soft-NMS)를 통해 최종 결과를 만든다.
Inference시에 세 개의 branch 중 중간 것만 사용해서 inference를 수행하고 valid range는 [0, inf]로 하면 approximation이 된다. 놀랍게도, 이 approximation은 모든 branch를 사용한 원래 모델에 비해 아주 작은 성능의 차이만 있다.
 

Experiment

Implementation Details

Baseline: Faster R-CNN (구현: MXNet)
Backbone feature: covn4 stage feature. RCNN head: conv5 stage
128 ROIs per-branch
Valid ranges: [0, 90], [30, 160], [90, inf]
COCO dataset, batch size = 16, 12 epochs
 

Ablation Studies

Multi-branch, scale-aware training, weight sharing 등의 component를 각각 적용한 실험 결과. 모두 Baseline에 비해 큰 성능 향상을 보여준다.
notion image
Trident block의 branch 갯수를 달리하며 실험한 결과. Single-scale baseline에 비하여 branch의 갯수가 3개일 때 까지는 AP가 증가하지만 4개에서는 더 향상이 없다.
notion image
Backbone에서 trident block을 적용하는 stage를 다르게 하며 실험한 결과. Conv2, conv3, covn4의 stride는 각각 4, 8, 16이다. 예상대로 마지막 conv stage에 적용한 것의 효과가 가장 크다.
notion image
ResNet-101의 conv4에서 trident block의 갯수를 다르게 적용한 실험 결과. 10개 이후로는 큰 차이가 없음을 알 수 있다.
notion image
TridentNet 각각의 branch의 성능 비교. 예상과 같이, branch-1이 작은 물체에서 가장 좋고 branch-3이 큰 물체에서 가장 좋다. 세 개의 branch를 모두 사용하면 훨씬 높은 성능을 보여준다.
notion image
Branch-2의 approximation 결과. (a)는 원래 TridentNet에서 하던 것과 같고, (b)는 branch-2가 학습하는 물체의 크기를 확장, (c)는 모든 브랜치가 모든 크기의 물체를 사용하여 학습된 것이다.
notion image
 

Comparison with State-of-the-Arts

notion image
 

Conclusions

이 논문에서는 동일한 representational power를 가지는 in-network scale-specific feature map을 구현하는 TridentNet을 제안하였습니다. 또한 각각의 branch가 대응하는 scale에 특화될 수 있도록 scale-aware training scheme도 함께 제안되었습니다. TridentNet의 세 branch 중 major branch만 사용하는 approximation 방식은 추가적인 파라미터와 계산 없이 baseline에 비해 큰 폭의 성능 향상을 보여줍니다.
 
 
 
Share article