상세 컨텐츠

본문 제목

[3주차 / 신인섭/ 논문리뷰] Rich feature hierarchies for accurate object detection and semantic segmentation

방학 세션/CV

by inseop 2023. 2. 1. 20:39

본문

mAP : mean Average Precision, 객체 탐지의 성능 측정 지표

Object Detection 알고리즘의 핵심

  • 객체 탐지를 위한 영역 제안에 CNN 적용 - Region proposal
  • pre-training과 fine-tuning 적용해서 훈련 데이터가 적은 상황에서 성능 향상

이전에 가장 성능이 좋았던 Sliding-Window Detector 기반 객체 탐지 알고리즘보다 RCNN이 더 뛰어남

Introduction

RCNN은 두 단계를 거치는 hierarchical 모델

첫 번째는 Classification, 두 번쨰는 Bbox Regression으로

분류와 회귀 문제의 결합이다.

지금까지의 CNN은 이미지 분류에서 우수한 성능을 보였는데, 객체 탐지에도 좋은 성능을 낼 수 있음

→ localizing object를 deep network를 활용하는 가

→ 적은 annotation 데이터를 가지고 모델을 학습할 수 있는가

(annotation : 객체 레이블 정보, 경계 박스 위치 정보 등 의 메타 정보)

이미지 분류와는 다르게, 객체 탐지는 분류하는 작업 말고도 객체의 위치 좌표를 찾는 일까지 해야함

  • 접근 1 : localization을 회귀 문제로 해석 → 다른 논문에 따르면 이 접근은 좋지 않음
  • 접근 2 : Sliding-window detector 구현 → 지난 20년간 CNN에서 사용, 본 논문의 모델에선 Conv layer가 5개 뿐이라, 큰 위도우를 사용하게 된다.
  • 이런 큰 윈도우에서는 정확히 localization하기가 어려워진다.
  • 접근 3 : region proposals → 객체탐지와 segmatation에서 모두 효과적

Region proposal 절차

  1. 이미지 입력
  2. 2000개의 후보영역 제안
  3. 후보 영역을 일정한 크기로 조정 - Warped region
  4. → CNN의 특성상 입력의 크기가 일정해야하기 때문
  5. CNN을 이용해 각 후보영역에서 Feature 연산
  6. FC layer 통과, FC에 있는 값을 Feature로 생각하고, SVM을 사용하여 영역에 대한 분류 작업 수행

다음 문제로는 레이블된 데이터가 부족하다는 것

깊은 CNN 구조를 가진 RCNN을 훈련시키기에는 부적한 데이터의 한계

→ 많은 양의 ILSVRC의 데이터로 pre-training

→ 적은 양의 PASCAL 데이터로 도메인에 맞게 fine-tuning 수행

⇒ 다량의 보조 데이터를 사용해 사전 훈련을 진행하기 때문에, annotation이 된 PASCAL 데이터가 적어도 fine-tuning 만으로도 좋은 성능 취득

2. Object Detection w/ R-CNN

R-CNN은 세가지 모듈로 구성

첫 번째는 region proposal 하는 모듈이고, 여기서 제안한 후보 영역을 바탕으로 객체를 찾는다.

두 번째는 후보 영역에서 크기가 고정된 피처를 추출하는 거대 CNN layer

세 번째는 선형 SVM 이다.

2.1 Module design

Region proposal

RCNN은 Selective Search를 기반을 사용한다.

Selective Search는 비슷한 영역을 그룹핑하며 후보영역을 제안하는 방법이다.

Feature Extraction

AlexNet을 활용하여 제안된 각 후보 영역별로 4096개의 피처를 추출

이렇게 추출한 피처를 기반으로 svm에서 최종 분류한다.

제안된 후보 영역에서 피처를 추출하려면 먼저 후보 영역 이미지를 고정된 크기로 바꿔야 한다.

길쭉한 직사각형 모양이더라도 모든 후보 영역을 고정된 정사각형 모양으로 반환해야한다.

→ Warping

Warping하기 전에, 객체 영역만 자르지 않고, 후보영역 주변 배경을 조금 살린다.(실험 결과 16 픽셀만큼 살렸을 때 성능이 제일 좋았음)

2.2 Test Time detection

테스트 단계에서 각 테스트 이미지 별로 2000개의 후보 영역 추출

이후 warping - CNN - SVM 수행하여 점수 계산

이 점수로 Non-Maximum Suppression(NMS) 수행

점수가 가장 높은 후보 Bbox 기준으로 IoU가 특정 기준치를 넘는 다른 Bbox는 모두 제거

⇒ 2000개 중에 꽤나 많은 Bbox가 사라짐

NMS : Bbox 중에 가장 확실한 하나만 남기고 나머지는 지우기

Run-time analysis

RCNN이 객체 탐지 효율을 높이는 두 가지 특징

  1. 모든 클래스끼리 CNN 파라미터 공유
  2. CNN으로 구한 피처 벡터의 차원이 낮음

⇒ 확장 가능성

2.3 Training

Supervised pre-training

ILSVRC로 사전 훈련 진행, 이 데이터 셋에는 경계 박스 정보가 없으니, 이미지 분류수준의 사전 훈련 진행

Domain specific fine-tuning

사전 후련한 CNN 모델을 새로운 객체 탐지 영역에 적용하기 위해, 도메인에 맞게 fine tuning 진행

warping 한 후보 영역 이미지만 사용해서 cnn 파라미터 갱신

가지고 있는 데이터 셋의 레이블보다 하나 더 추가하여 최종 출력층 사이즈를 정해야하는 데, 이는 배경 때문이다.

실제 경계 박스와의 IoU가 0.5 이상인 후보군 → Positive (나머진 Negative)

positive 는 해당 객체를 표시하는 경계 박스, negative는 배경

Object category classifiers

객체에 애매하게 걸친 경계 박스는 pos인지 nega인지 구분이 어렵다.

이 문제를 IoU 임계값을 실험하여 해결 → 0.3일 때 성능이 가장 좋았다고 함.

cf) 파인 튜닝 할 때는 임계를 0.5로 설정했었음

데이터가 너무 크기에 hard negative mining 기법을 사용했다고 함

(hard negative mining : positive ,negative 샘플의 개수를 균일하게 맞추는 법

배경(nega)가 너무 많은 원본은 모델의 성능이 많이 떨어지게 됨)

2.4 Results on PASCAL VOC 2010-12

PASCAL VOC 2010 데이터셋, 다른 모델과 배교해서 성능이 꽤 높았음.

기존에 가장 성능이 좋던 SegDPM은 mAP 40.4%를 기록

경계 박스 회귀를 사용하지 않은 R-CNN은 50.2%, 경계 박스 회귀를 사용한 R-CNN은 53.7%의 mAP

2.5 Results on ILSVRC2013 detection

PASCAL VOC에서 사용한 파라미터를 동일하게 사용,

mAP 31.4%로 가장 높은 성능을 보임

3. Visualization, ablation, and modes of error

3.1 Visualizing learned features

CNN 첫 번째 계층의 필터 → 경계와 보색을 찾기

두 번째 계층 → 네트워크의 흐름은 다음과 같다

여러 후보 영역 점수 계산 - 높은 점수순으로 나열하여 NMS 수행 - 객체식별이 가능한 점수 높은 후보영역 남음

이런 일련의 과정을 통해 각 CNN 계층마다 후보 영역을 어떻게 학습하는지 볼 수 있다.

3.2 Ablation studies

Performance layer-by-layer, without fine-tunning

CNN 모델에서 어떤 layer가 객체 탐지 성능 향상에 도움이 되는지 접근

PASCAL 데이터로 파인 튜닝하지 않은 CNN의 분석 결과

결과를 보면 fc7이 fc6보다 성능이 좋지 않음

Performance layer-by-layer, with fine-tunning

앞선 파인 튜닝 없을 때의 결과와 다르게 fc7이 fc6보다 성능이 좋음

파인 튜닝을 하지 않았을 때에 비해 성능이 향상 됨.

3.3 Network Architectures

T-net은 토론토 대학교의 AlexNet이고, O-net은 옥스포드 대학교의 VGG 이다.

표를 보면 VGG16 기반 모델이 더 성능이 좋았음을 알 수 있다.

하지만 연산시간이 T-net에 비해 7배나 길었다.

4. The ILSVRC2013 detection dataset

4.1 Dataset overview

검증 데이터와 테스트 데이터는 이미지 분포가 서로 비슷하며, annotation 되어 있다.

검증 데이터와 테스트 데이터는 모든 객체에 경계 박스가 표시돼 있고, 클래스명도 기재돼 있음

하지만 훈련 데이터는 완벽히 annotation되어 있지 않음

때문에 훈련 데이터에 hard negative mining을 적용하기 어렵다.

완벽히 annotation되어 있어야 hard negative mining을 적용할 수 있다.

완벽히 annotation되어 있지 않으면, negative 샘플이라고 판단한 경계 박스에 positive 샘플을 포함할 수 있게 된다.

→ 해결을 위해 검증 데이터의 일부를 훈련 데이터로 활용

val 1(for training), val 2(for validatation)

4.2 Region proposals

PASCAL에서와 동일한 방식으로 영역 추정한다. 훈련 데이터를 제외한 검증데이터와 테스트 데이터에 Selective search로 영역 추정을 진행

다른 점으로는 Selective search에는 이미지 크기에 따라 후보 영역의 갯수가 다르기에, 이미지 크기가 다른 ILSVRC 데이터셋의 크기를 고정해야 했다.

4.3 Training data

훈련데이터에서 뽑은 실제 경계 박스 N개와 val 1을 합쳐 훈련 데이터 셋 사용했다.

이 데이터로 RCNN은 CNN 파인 튜닝, SVM 훈련, 경계박스 회귀로 학습한다.

CNN 파인 튜닝은 val 1과 train_N을 이용해 5만번의 SGD 수행

SVM 훈련을 위해 val 1과 train_N(hard negative mining으로 5000개 이미지 선별)의 실제 경계박스 사용

4.4 Validation and evaluation

테스트 전에, val2(찐 검증 데이터)로 파인튜닝과 경계 박스 회귀의 효과를 시험해보고, 가장 좋은 성능을 보인 모델을 최종 테스트 데이터로 평가해보았다.

두 가지를 평가했는데, 첫째는 경계 박스 회귀를 하지 않은 모델이고, 둘째는 경계 박스 회귀를 사용한 모델이다.

4.5 Ablation study

val2와 테스트 데이터의 mAP가 거의 비슷한 것으로 보아, val2가 본 모델의 성능을 보기에 좋은 검증 데이터라는 점을 알 수 있다.

훈련 데이터를 늘릴 수록 성능이 좋아지는것을 볼 수 있고,

파인튜닝과 FC 층을 늘리니 더 늘어났고, 경계박스 회귀까지 적용하니 31.0%까지 늘어났다.

⇒ 훈련 데이터가 많을 수록, 파인튜닝을 위한 데이터가 많을수록, 경계 박스 회귀를 할수록, CNN 계층이 늘 수록

관련글 더보기

댓글 영역