Vision_/CNN

[논문분석]Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

대장장ㅇi 2024. 2. 8. 22:51

Sparse R-CNN Youtube

Sparse_R-CNN CVPR 논문

 

위 영상과 논문을 참고해서 작성하였습니다.

 

 

 

위 논문은 24년 02월 08일 기준으로 907회 인용되었습니다.

 

 


배경지식


1. Object Detection

 

Classification + Localization => 한 개 이상의 Object가 있을 때, 각각의 Object 의 위치를 찾고, 무엇인지 맞추는 문제.

 


 

2. Stage Detector

 

2-1.  1-Stage Detector

regional proposal(영역 제안) 과 classification 이 동시에 이루어 진다. 

대표적인 예)로 YOLO 가 있다.

 

 

 

 

* regional proposal(영역 제안)이란? 

객체가 있을 확률이 높은 곳에 bounding box를 쳐주는 것으로,

대표적인 regional proposal(영역제안) 기법으로는 Selective search 와 sliding window 기법이 있다. (뒤에 추가 설명)

 

2-2.  2-Stage Detector

 

regional proposal(영역 제안) 과 classification 이 순차적으로 이루어 진다.

대표적인 예)로는 Faster R-CNN 이 있다. 

 

 


3. Regional proposal(영역 제안)

 

3-1. Selective Search

 

selective search 기법은 밑에 방식을 순차적으로 따른다.

 

1. Input 이미지에 sub-segmentation 진행

2. 반복적으로 작은 영역을 큰 영역으로 결합

3. Segmented region proposals를 사용하여 candidate object locations 를 생성

 

 

 

 

* RoI(Region of Interest)

 

RoI 란 Selective search 나 Sliding window 와 같은 region proposal 알고리즘을 통해 여러 영역들을 cropping 하는 데 이영역들을 RoI 라고 부른다. 

 

뒤에서 RoI 설명이 자주 나오니 꼭 기억해두고 넘어가길 바란다!

 

 

 

3-2 Sliding window 

 

 

Sliding window 방식은 일정 크기의 window 를 이동시키며, window내에서 object를 detection 하는 방식이다.

 


 

 

4. NMS(Non-Maximum Suppression)

 

Object Detection모델은 대체로 왼쪽 이미지처럼 실제 물체 개수보다 훨씬 많은 Bounding Box를 예측

NMS는 이를 오른쪽 이미지처럼 각 물체별 가장 좋은 Box 한 개만 남기고 나머지는 다 지우는 역할을 한다.

 


 

5. Neck

 

 

Neck은 detection model이 다양한 크기의 객체를 감지할 수 있도록 한다.

 

이 논문에서는 Neck 중 FPN 을 사용하였다. 밑에서 FPN 의 구조를 더 자세히 살펴보면

 


6.FPN

 

 

상위 레벨의 이미 계산 된 특징을 재사용 하므로 멀티 스케일 특징들을 효율적으로 사용한다. 

 


논문분석

 

 

현재 region proposal 의 패러다임

 

(a) Dense Methods
* YOLO, SSD, RetinaNet
(b) Dense to sparse methods
*  Faster R-CNN

(c) Sparse Methods 

*  Sparse R-CNN

 

가 있다. 이 논문에서는 Sparse Methods 를 제안하였다.

 

 

 

 


 

1. YOLO

 

2.  R-CNN

 

2-1. R-CNN

 

 

 

 

 

2-2 Fast R-CNN

 

 

 

 

2-3. Faster R-CNN

 


 

Dense 한 resion proposal(영역 제안) 단점

 

1. Near-Dulicate Results

 

중첩되어 있는 오브젝트들은 탐지가 어려움

 

 


 

 

2. Many-to-one label assignment problem

 

 

Faster R-CNN 에서도 RPN 쪽에 객체마다 Ankor box를 7개씩 뿌리기 때문에 region proposal 이 많아진다. 

 


 

3. Hyperparameter 문제

 

 

 

* 박스 사이즈 문제

3-1.  큰 Ground Truth 가 있을때 Region proposal 들은 큰 box 와 매칭이 어려움

 

 

 

 

 

3-2. 가로 세로 길이가 긴 Region proposal box 또한 Ground truth box 와 매칭이 어려움

 

 

 


 

Sparse R-CNN

 

 

 

구조

 

구조를 살펴보면

1. Image 가 Backbone 인 ResNet 을 거쳐

2. Neck(FPN) 으로 해상도별 최적화를 거친다 => 작은 객체도 탐지가 잘 되게 만든다.

3. 다음 Feature 을 여러개를 뽑아내고

4. 이때 Proposal(Box) 와 => region proposal 역할. 

5. Propasal(feature) 를 거친다. => proposal 성능 향상. 

6. 이다음 Dynamic Head 를 여러번 거치는데 거치는 횟수는 뒤에 Experiment 의 stage 개수로 성능이 달라진다 

 

 


Dynamic Head

 

Dynamic Head 는 위에 번호를 매겨봤으니 따라가면서 이해해보면 좋을 듯 하다.

 

 

 


Set prediction loss

이 논문에서 사용한 loss 는 위와 같다.

 


 

Comparison with other detectors

다른 Dense 한 모델과 비교해 보면 Sparse 모델의 성능이 뛰어난 모습을 확인할 수 있다.

 

Experiments

 

1. 여러 초기화 방식 사용

 

초기화 방식으로는 

1. 중앙에 박스를 모으는것

2. 이미지 사이즈랑 똑같은 박스들만 이렇게 뿌려놓는 법

3. Grid에 맞춰서 이렇게 촘촘하게 뿌리는 방법

4. Gausssian에 맞춰서 랜덤하게 뿌리는 방법

 

총 4가지를 사용하였는데 성능을 확인해보면 별 차이가 없는것으로 보아 파라미터 세팅에 둔감한 방법론이라고 볼 수 있다.


 

 

2. Proposal 갯수 변경

이 논문에서 제안한 대표적인 방법은 적은 Proposal (즉 객체에 그려지는 bounding box) 를 가져도 다른 모델과 비교해서 성능이 좋다라고 제안하였는데 위 결과를 보면 Proposal 의 갯수가 증가하여도 성능은 크게 좋아지지 않는다. 이는 Proposal 의 갯수가 적어도 학습이 잘된다는 반증을 보여준다.  


 

3. Dynamic Head 구조 변경

 

 


4. Stage 반복 증가

 

 

 

5. 결론