2021-Creative-Study / creative-study

1 stars 0 forks source link

R-CNN / Fast R-CNN / Faster R-CNN #5

Open mingxoxo opened 3 years ago

mingxoxo commented 3 years ago

출처 : R-CNN 설명 및 정리, 1-Stage detector와 2-Stage detector란?, R-CNN 구조

컴퓨터비전에서의 문제들은 크게 4가지로 분류할 수 있다.

  1. Classification
  2. Object Detection
  3. Image Segmentation
  4. Visual relationship

image

Object detection에는 1-stage detector, 2-stage detector가 있다.

image


R-CNN

CNN(Image classification을 수행) + regional proposal 알고리즘(localization)

image

R-CNN 프로세스

  1. Image를 입력받는다.
  2. Selective search알고리즘에 의해 regional proposal output 약 2000개를 추출한다. 추출한 regional proposal output을 모두 동일 input size로 만들어주기 위해 warp해준다.
  3. 2000개의 warped image를 각각 CNN 모델에 넣는다.
  4. 각각의 Convolution 결과에 대해 classification을 진행하여 결과를 얻는다.
mingxoxo commented 3 years ago

출처 : Fast R-CNN

Fast R-CNN

R-CNN의 단점

Fast R-CNN에서는 다음 두 가지를 통해 위 한계점들을 극복했다.

  1. RoI pooling
  2. CNN 특징 추출부터 classification, bounding box regression까지 하나의 모델에서 학습

RoI pooling

원래 이미지를 CNN에 통과시킨 후 나온 feature map에 이전에 생성한 RoI(=region proposal)를 projection 시키고 이 RoI를 FC layer input 크기에 맞게 고정된 크기로 변형할 수 있다. image

R-CNN에서는 CNN을 통과한 후 각각 서로다른 모델인 SVM(classification), bounding box regression(localization) 안으로 들어가 forward됐기 때문에 연산이 공유되지 않았다. (bounding box regression은 CNN을 거치기 전의 region proposal 데이터가 input으로 들어가고 SVM은 CNN을 거친 후의 feature map이 input으로 들어가기에 연산이 겹치지 않는다.)

RoI Pooling을 추가함으로써 이제 RoI영역을 CNN을 거친후의 feature map에 투영시킬 수 있었다. 따라서 동일 data가 각자 softmax(classification), bbox regressor(localization)으로 들어가기에 연산을 공유한다.

mingxoxo commented 3 years ago

출처 : Faster R-CNN -- 너무 어려워요..(´。_。`)

Faster R-CNN

Faster R-CNN -> RPN + Fast R-CNN Faster R-CNN은 Fast R-CNN구조에서 conv feature map과 RoI Pooling사이에 RoI를 생성하는 Region Proposal Network가 추가된 구조이다.

image

region proposal인 Selective search알고리즘을 CNN외부에서 연산하므로 RoI 생성단계가 병목 따라서 Faster R-CNN에서는 detection에서 쓰인 conv feature을 RPN에서도 공유해서 RoI생성역시 CNN level에서 수행하여 속도를 향상시킨다.

요즘에는 FC layer 대신 GAP(Global Average Pooling)을 사용하는 추세이다" GAP를 사용하면 input size와 관계없이 1 value로 average pooling하기에 filter의 개수만 고정되어있으면 되기 때문이다. 따라서 input size를 고정시킬 필요없기에 RoI pooling으로 인해 손실되는 data역시 없어서 original image의 size역시 고정시킬 필요가 없는 장점이 있다.