Cascade R-CNN 논문 리뷰

김상현·2021년 12월 25일
1

논문 제목: Cascade R-CNN: Delving into High Quality Object Detection

Introduction

사진 1

대부분의 object detector들은 positive/negative를 정의하는 IoU의 threshold uu를 0.5로 설정한다. 이러한 threshold는 positive들을 정의할 때 느슨한 조건이고, 그 결과 사진 1의 (a)와 같이 noisy한 bounding box를 빈번하게 출력한다. 본 논문에서 quality of hypothesis를 hypothesis와 ground truth와의 IoU로 정의하고, quality of detector를 detector를 학습시킬 때 사용된 threshold uu로 정의한다. 목표는 사진 1의 (b)에 나온듯이 적은 close false positive를 출력하는 높은 수준의 object detector를 연구하는 것이다. 기본 idea는 하나의 detector는 하나의 quality level(IoU threshold)에 따라 최적화 된다는 것이다.

사진 1의 (c)를 보면 각 bounding box regressor는 example들의 IoU가 detector가 학습된 threshold에 가까울 때 좋은 성능을 갖는다. 또한 사진 1의 (d)를 보면 u=0.5u=0.5의 detector가 u=0.6u=0.6의 detector보다 낮은 IoU example들에 대해 좋은 성능을 보여준다. 이러한 관찰들은 높은 성능의 detection은 detector와 hypotheses 간의 근접한(closer) quality 매칭이 필요로 하다는 것을 보여준다. 그러나 사진 1의 (d)에서 u=0.7u=0.7의 경우 더 낮은 성능을 갖는다는 것을 통해 단순히 uu를 높이는 것은 성능을 저하시킨다는 것을 알 수 있다. 이는 ovefitting 문제와 training과 inference의 mismatch로 인한 결과이다.

본 논문에서는 위의 언급한 문제들을 해결하기 위해 순차적으로 단계를 거치며 close false positive에 더욱 선별적인 R-CNN의 multi-stage 확장인 Cascade R-CNN을 제안한다. 이는 이전 단계의 출력으로 다음 단계를 순차적으로 학습시킨다. 이러한 배경에는 특정한 IoU threshold로 학습된 detector의 출력은 다음 단계의 더 높은 IoU threshold의 detector를 학습시키기 위해 좋은 분포일 것이라는 생각이 있다.

Cascade R-CNN은 단순하게 구현할 수 있고 end-to-end 학습이 된다. 특별한 방법 없이 COCO detection task에서 기존의 detector들 보다 좋은 성능을 보여줬다. 또한 R-CNN framework를 기반으로 하는 object detector들에 적용될 수 있다.


Object Detection

사진 2. Architectures

1. Bounding Box Regression

Bounding box regression의 목표는 regressor f(x,b)f(x,b)를 사용해서 candidate bounding box b=(bx,by,bw,bh)b = (b_x, b_y, b_w, b_h)를 target bounding box gg로 regress하는 것이다. Training sample {gi,bi}\{g_i, b_i\}를 통해 다음 수식을 최소화하는 방식으로 학습된다.

Rloc[f]=i=1NLloc(f(xi,bi),gi)R_{loc}[f] = \sum_{i=1}^N L_{loc}(f(x_i, b_i), g_i)

LlocL_{loc}의 자세한 설명은 Fast R-CNN 논문(리뷰)에 나와 있다.

몇몇 논문들에서 ff를 이용한 single regression은 불충분하다 생각하여 후처리 단계로 ff를 반복적으로 적용한 방법이 제안되었다. 수식으로는 다음과 같다.

f(x,b)=fff(x,b)f'(x,b) = f \circ f \circ \cdot \cdot \cdot \circ f(x,b)

이러한 방법을 iterative bounding box regression이라 한다. 이 구조는 사진 2의 (b)의 구조 이다. 그러나 이러한 방법에는 두 가지 문제가 존재한다. 첫번째로 regressor ffu=0.5u=0.5에서 학습되었으므로 더 높은 IoU들에서 suboptimal 하다. 두번째로 사진 3과 같이 매 반복마다 boudning box들의 분포가 상당히 변한다는 문제가 있다. 따라서 ff를 여러 번 반복하는 방법은 큰 이득이 없다.

사진 3. Distributions of BBs

2. Classification

Classifier는 image patch xx를 M+1 classes 중 하나로 할당하는 함수 h(x)h(x)이다. hk(x)=p(y=kx)h_k(x) = p(y=k | x)로 사후 분포의 M+1 차원 예측이다. yy는 class label 이다. 따라서 주어진 training set (xi,yi)(x_i, y_i)를 갖고 다음 수식을 최소화하는 방식으로 학습된다.

Rcls[h]=i=1NLcls(h(xi),yi)R_{cls}[h] = \sum_{i=1}^N L_{cls}(h(x_i),y_i)

3. Detection Quality

y={gy,IoU(x,g)u0,otherwisey = \left\{ \begin{array}{ll} g_y, & IoU(x,g) \ge u \\ 0, & otherwise \end{array} \right.

xx의 class label은 uu의 함수로 위의 수식과 같다. 여기서 gyg_y는 ground truth object g의 class label이다. IoU threshold uu가 detector의 quality를 정의한다.

Object detection은 detection setting이 매우 적대적(adversarial)하기 때문에 어렵다. uu가 높은 경우, positive sample들은 적은 backgound를 포함하고 있지만 sample의 수가 충분하지 못하다. uu가 낮은 경우 positive sample이 다양하고 풍부해지지만, 학습된 detector가 close false positive들을 제거하지 못한다. 일반적으로 하나의 classifier가 모든 IoU level들에서 균등하게 좋은 성능을 보여주기 어렵다. 이러한 문제들의 타협으로 보편적으로 u=0.5u=0.5로 설정하지만, 상대적으로 낮은 이러한 threshold는 낮은 quality의 detection을 수행하게 된다.

이를 위한 간단한 해결책은 사진 2의 (c)와 같이 classifier들을 앙상블(ensemble)하는 것이다. 이는 다양한 quality level들의 target들로 loss를 최적화 하는 방법으로 다음 수식과 같다.

Lcls(h(x),y)=uULcls(hi(x),yu)L_{cls}(h(x),y) = \sum_{u \in U} L_{cls}(h_i(x), y_u)

UU: a set of IoU thresholds
이는 integral loss와 상당히 유사하다. 이 해결책의 문제는 위의 수식의 classifier들이 각각 다른 수의 positive sample을 다룬다는 것이다. 아래의 사진 4를 확인해보면, uu에 따라 positivie sample들이 급격하게 줄어드는 것을 확인할 수 있다. 이것은 high quality classifier들이 쉽게 overfitting 되기 때문에 문제가 된다. 게다가, inference시의 low quality proposal들에 최적화 되어 있지 않다. 이러한 문제들 때문에 위의 방법은 사진 2의 (a)에 비해 성능 향상이 미비하다.

사진 4. IoU histograms


Cascade R-CNN

1. Cascaded Bounding Box Regression

Cascade R-CNN은 사진 2의 (d) 구조와 같이 cascaded regression problem을 다룬다. 이를 수식으로 표현하면 다음과 같다.

f(x,b)=fTfT1f1(x,b)f(x,b) = f_T \circ f_{T-1} \circ \cdot \cdot \cdot \circ f_1(x,b)

TT: the total number of cascde stages

Cascade 내의 각 regressor ftf_t는 sample distribution {bt}\{b^t\}에 최적화 된다. 이러한 cascade가 hypotheses를 점진적으로 향상시킨다. 이 방법은 사진 2의 (b)의 iterative BBox와 몇 가지 다르다. 첫번째, 다른 stage마다 hypotheses의 분포를 resampling 한다. 두번째, 학습과 추론에 둘 다 같은 구조가 사용되므로 학습과 추론시의 분포 사이의 차이가 없다. 세번째, 각 단계마다 resample된 sample들에 맞게 단계별 regression을 수행한다. 이러한 차이들을 통해 iterative BBox 보다 정확한 localization이 가능하다.

2. Cascaded Detection

사진 4의 왼쪽 그림에서와 같이 초기 hypotheses의 분포 (즉, RPN proposals)는 심각하게 낮은 quality를 갖는다. 이러한 분포는 higher quality classifier들을 비효율적으로 학습하게 한다. Cascade R-CNN은 이런 문제를 cascade regression을 통한 resampling mechanism으로 해결한다. 이는 사진 1의 (c)에 나온듯이 특정 uu에서 학습된 bounding box regressor는 더 높은 IoU의 bounding box들을 출력하는 경향에 영향을 받았다. 즉 (xi,bi)(x_i, b_i)에서 시작한다면 연속적인 cascade regression을 통해 더 높은 IoU의 example distribution (xi,bi)(x'_i, b'_i)을 resample한다. 이러한 방법을 통해 연속적인 단계에서도 positive sample들의 집합을 유지할 수 있다. 이를 통한 장점으로 example들이 풍부하므로 overfitting 문제가 해결되고, 깊은 단계의 detector들은 더 높은 IoU thresholds에 맞게 최적화 될 수 있다. 사진 3의 빨간 점들과 같은 outlier들은 IoU threholds를 증가시켜서 순차적으로 제거된다.

각 단계 t에서 classfier hth_t와 regressor gtg_t를 포함하는 R-CNN은 IoU thresholdut(ut>ut1)u^t (u^t > u^{t-1})에 대해 최적화된다. 이는 다음 수식을 최소화하는 것으로 보장된다.

L(xt,g)=Lcls(ht(xt),yt)+λ[yt1]Lloc(ft(xt,bt),g)L(x^t,g) = L_{cls}(h_t(x^t),y^t) + \lambda [y^t \ge 1] L_{loc} (f_t(x^t, b^t),g)

bt=ft1(xt1,bt1)b^t = f_{t-1}(x^{t-1}, b^{t-1})
gg: the groudn truth object for xtx^t
λ=1\lambda=1: trade-off coefficient
[][\cdot]: the indicator function
yty^t: the label of xtx^t given utu^t

이러한 방법을 통해 높은 수준의 object detection을 가능하게 한다.


Experiments

표 1

표 1을 통해 사진 2에 구조들 중에서 Cascade R-CNN 구조가 가장 높은 성능을 보여주는 것을 확인할 수 있다.

표 2,3

표 2,3을 통해 기존의 SOTA 모델들에 비해 높은 성능을 보여주는 것을 확인할 수 있다. 또한 Cascade 방법을 적용한 경우가 computational cost가 증가하지만 더 높은 성능을 보여주는 것을 확인할 수 있다.


Conclusion

본 논문에서 높은 수준의 object detector를 고안하기 위해 multi-stage object detection인 Cascade R-CNN을 제안했다. 해당 구조는 학습시의 overfitting과 추론시의 quality mismatch 문제들을 해결한다. 또한, Cascade R-CNN 구조는 다른 object detection 구조들에 적용가능하다.


References

Cascade R-CNN 논문
https://blog.lunit.io/2018/08/13/cascade-r-cnn-delving-into-high-quality-object-detection/

해당 글에 사용된 사진 및 표들은 모두 Cascade R-CNN 논문이 출처입니다.

profile
Mucha Suerte

0개의 댓글