본문 바로가기

논문 정리

R-CNN

우선, R-CNN에 대해서 말하기 전에 객체 탐지란 무엇인지 알아보겠습니다.

 

객체 탐지란

컴퓨터 비전과 이미지 처리와 관련된 컴퓨터 기술이며, 이는 디지털 이미지와 비디오의 특정한 계열의 시맨틱 한
 객체의 인스턴스를 감지하는 것입니다.

 

객체 탐지의 분야로는 얼굴 검출, 보행자 검출 등의 분야가 있습니다.

 

이미지 인식 분야는 크게 Classification, Localization, Object Detection, Instance Segmentation으로 나누어 집니다.

이미지 인식 분야

여기서 Classification과 Localization의 경우, 이미지 내에 1개의 Object가 있을 경우에 객체 인식에 해당되며, 여러 Object가 있을 경우 Object Detection, Instance Segmentation이라고 부릅니다.

 

각각의 분야에 대해서 비교해 보면 다음과 같습니다.

 

Classification

객체나 인스턴스의 정보가 없이 시맨틱한 정보만이 존재.

 

Localization

이미지 안에 특정 Object의 위치를 특정(관심 영역 즉, ROI) 이미지 안에 특정 영역에 객체를 찾았을 시에 시맨틱한 객체를 찾았다고 합니다.

 

Object Detection

서로 다른 Object의 Instance를 비교하기 위한 방법입니다. 이는 각기 다른 객체를 찾는 것이 Instance한 정보를 반영한 시맨틱한 객체를 찾는 분야입니다. Bounding  Box 마다 Class에 대한 정보를 알아야하며, 이때 Bounding Box는 Object 마다 존재합니다.

 

Instance Segmentation

Instance Segmentation도 각각의 Object를 구분하는 방법입니다. Object Detection은 Bounding Box로 물체의 대략적인 위치를 찾았다면, Instance Segmentation은 Pixel 단위로 해당 물체를 구분하는 과제입니다.

 

 

어떻게 박스를 찾을까 .. ?

기존에 전통적인 방법은 이미지 상에 임의로 다양한 크기를 가진 박스를 생성해서 Object와 겹치는 부분의 박들을 사용해서 박스를 찾았습니다. 이런 기존의 방법은 박스를 잘 못 찾는 경우도 있지만, 조금만 겹쳐도 찾았고, 또한 이미지 내에 다양한 크기의 Object를 찾는데 한계가 있었습니다.

 

이러한 문제점들을 해결하기 위해서 등장한 방법이 Selective Search라는 방법입니다.

Selective Search

Selective Search는 Overlap을 허용하지 않고, Segmentation 방법을 통해서 bottom-up 방식으로 해결을 했습니다. 

 

첫 번째

픽셀 값 별로 Segment를 구하고, Segment의 정보를 사용해서 Bounding Box를 구합니다.

 

두 번째

주변에 있는 Segment들과의 유사도를 계산을합니다.

 

세 번째

유사한 Segment들끼지 하나로 합칩니다.

 

위의 3개의 방법을 여러번 반복 수행을 통해서 특정 threshold 값 이상인 Segment만 남게 되고, 마지막으로 Segment들을 이용해서 Bounding Box를 찾는 방법입니다.

 

이 Selective Search 방법을 사용한 대표적인 모델이 R-CNN입니다.

 

R-CNN

1. 입력 이미지입니다.

 

2. R-CNN은 입력 이미지에 대해서 Region Proposal을 수행해서 약 2천개의 Region Propsal을 찾습니다. 이때, Region Propo sal에 사용한 방법이 Selective Search입니다.

 

3. 찾은 2천개의 Region Propsal을 CNN 모델에 넣어서 찾은 Region Proposal에 대한 feature 정보들을 추출합니다.

 

4. 마지막으로 분류를 하는데,  분류시에 머신러닝의 알고리즘인 SVM을 사용해서 분류를 수행합니다.

 

이 당시 논문에서는 Softmax와 Sigmoid 방법을 사용하는 것 보다 SVM을 사용하는 것이 성능이 가장 좋았다라고 합니다.

분류시에 background class를 추가해서 배경인지 아닌지를 분류했다고 하면, 위 사진에서는 2천개의 Region Proposal을 수행하는데 ground truth는 2개 뿐이여서 모델 학습에 어려움이 존재 했다고 하며, 이를 해결하기 위해서 augmentaltion을 수행했습니다.

 

입력시에 warped region을 사용해서 특정 사이즈를 Resize 시켰는데 이때 당시 CNN 모델에는 입력 사이즈가 무조건 1개로 정해지던 때이기 때문에 warped region이라는 방법을 사용해서 입력으로 들어오는 Region Proposal의 사이즈를 고정 시켰다고 합니다.

 

R-CNN에서는 IoU라는 평가 방법을 사용했는데, 2개의 박스가 얼마나 많이 겹쳐있는 지를 나타내는 지표입니다.

IoU 계산

 

IoU는 2개의 박스의 교집합 나누기 2개의 박스의 합집합으로 계산할 수 있으며, R-CNN에서는 IoU가 0.5 이상이면, 해당 객체를 찾았다라고 간주했습니다.

 

'논문 정리' 카테고리의 다른 글

[간단리뷰]Unet++  (0) 2024.05.11
[review]PETALS: Collaborative Inference and Fine-tuning of Large Models  (0) 2023.08.08
YOLOV1  (0) 2023.07.02
Faster R-CNN  (0) 2023.06.24
Fast R-CNN  (0) 2023.06.03