위 영상과 논문을 참고해서 작성하였습니다.
위 논문은 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. 결론

'Vision_ > CNN' 카테고리의 다른 글
[Object Detection] R-CNN (R-CNN, Fast R-CNN, Faster R-CNN) 설명, 비교, 모음 (0) | 2024.01.25 |
---|---|
CNN_실습코드(python, GPU 사용) (0) | 2024.01.13 |
CNN_이론 (Convolution, Filter, Channel, Pooling, Padding, CNN 구조) (0) | 2024.01.07 |
퍼셉트론_설명 (단층 퍼셉트론_SLP , 다층 퍼셉트론_MLP) (4) | 2024.01.06 |