본문 바로가기

Data Science/ML & DL

[논문리뷰/CV] Faster R-CNN 모델 (R-CNN, Fast R-CNN과 비교)

 

Computer Vision모델 중 Faster R-CNN 모델의 논문

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks를  리뷰한 게시글입니다.

 


#FBF977

 

✅Summary 

 

Intro

Faster R-CNN은 고전적인 객체 탐지 시스템에서 속도의 병목 현상(Selective search알고리즘을 통해 regeion proposals를 추출하기 때문에 발생)을 해결하기 위해 개발된 객체 탐지 프레임워크이다. 이 방법은 이미지 내 객체의 위치를 가정하는 지역 제안(region proposal) 알고리즘계산 부담을 줄일 수 있었다.

 

 Faster R-CNN은 지역 제안 네트워크(Region Proposal Network, RPN)Fast R-CNN 객체 탐지 네트워크를 결합하여, 고성능 객체 탐지를 실시간에 가까운 속도로 수행할 수 있게 한다

 RPN 전체 이미지에 대한 컨볼루셔널 특징을 공유하며, 객체 경계와 객체성 점수(objectness score)를 동시에 예측한다. 이 방식은 PASCAL VOC 및 MS COCO 데이터셋에서 최첨단 성능을 달성하며, 다양한 경계 박스의 크기와 종횡비에 효과적으로 대응할 수 있는 "앵커" 박스를 도입하여 다양한 규모의 객체를 효율적으로 탐지한다.

 

 

1. 서론

 객체 탐지의 최근 발전은 지역 제안 방법지역 기반 컨볼루셔널 신경망(R-CNN)에 의해 주도되었다.

이 연구는 지역 제안 계산이 최신 객체 탐지 시스템에서 주요한 속도 제한 요소가 되었다고 지적하며, 지역 제안 과정을 효율화하는 것의 필요성을 강조한다.

 

2. 관련 연구

객체 제안과 딥 네트워크를 이용한 객체 탐지에 대한 기존 연구를 검토합니다.
선택적 탐색, EdgeBoxes 등의 객체 제안 방법과, R-CNN, Fast R-CNN 등의 딥러닝 기반 객체 탐지 방법에 대해 설명한다.

 

3. Faster R-CNN

 Faster R-CNN의 핵심인 RPN을 소개하고, RPN이 어떻게 Fast R-CNN과 결합되어 전체 이미지의 컨볼루셔널 특징을 공유하는지 설명합니다.

 RPN의 구조, 손실 함수, 훈련 방법에 대해 상세히 설명하며, 앵커 박스와 이러한 앵커가 다양한 스케일과 종횡비를 처리하는 방법에 대해 논의합니다

 

4. 실험: P ASCAL VOC 및 MS COCO 데이터셋을 사용한 다양한 실험을 통해 Faster R-CNN의 성능을 평가한다.

 이 섹션은 RPN의 효과, 다양한 앵커 설정의 영향, 특징 공유의 중요성, 그리고 대규모 데이터셋에서의 Faster R-CNN의 성능 향상을 보여준다.

 

5. 결론:  Faster R-CNN은 객체 탐지를 위한 강력하고 효율적인 프레임워크를 제공한다.

지역 제안 단계의 계산 부담을 크게 줄이면서도 높은 탐지 성능을 유지하며, 이는 RPN과 Fast R-CNN의 성공적인 통합에 기인한다. 연구는 또한 실시간 객체 탐지 시스템 구현의 가능성을 시사한다.

 

 

📝 Paper Review

 

R-CNN (이전 모델) VS  Fast R-CNN (이전 모델)  Faster R-CNN

  1. R-CNN
    객체 탐지를 위해 제안된 초기 모델 중 하나로, Selective Search를 사용하여 이미지에서 객체 후보 영역을 생성하고, 각 영역을 CNN을 통해 분류함. 
    성능 : R-CNN은 높은 정확도를 달성했지만, 각 후보 영역을 독립적으로 처리해야 하기 때문에 매우 느리다는 단점이 있었음
  2. Fast R-CNN
    R-CNN의 속도 문제를 해결하기 위해 도입된 모델로

    전체 이미지에 대해 단 한 번만 CNN을 적용한 후, Selective Search로부터 얻은 객체 후보 영역에 대해 RoI Pooling을 사용하여 분류와 바운딩 박스 회귀를 수행
    성능 : Fast R-CNN은 처리 속도를 크게 개선하였지만, 여전히 Selective Search에 의존적이라는 문제가 있었음
  3. Faster R-CNN의 혁신
    Faster R-CNN은 이전 모델들의 단점을 해결하기 위해, RPN을 도입하여 객체 후보 영역을 제안하는 과정네트워크 내부로 통합함으로써, 전체 객체 탐지 과정의 속도와 정확도를 동시에 향상.

     RPN과 Fast R-CNN을 단일 프레임워크로 결합함으로써, 객체 탐지의 end-to-end 학습이 가능해졌으며, 객체 탐지 시스템의 실시간 처리에 한걸음 더 다가갈 수 있게 되었음
 
 
R-CNN Fast R-CNN Faster R-CNN
  CNN CNN
RoI (Selective Search) RoI I(Selective Search) RoI (Regoion Proposal Network)
Warping(이미지 변형 기술) RoI Pooling Layer RoI Pooling Layer
CNN FCN FCN
SVM, BBR (Bounding Box Regression) Softmax, BBR Softmax, BBR

 

  R-CNN
Fast R-CNN Faster R-CNN
객체 후보 영역 추출
및 특징 추출
  Selective Search를 사용한 객체 후보 영역 추출
+ CNN이 각 후보 영역에서 특징 추출
 사전 학습된 CNN
Rol풀링을 통해 효율적으로 객체 후보 영역별 특징을 추출
 사전 학습된 CNN
Rol풀링을 통해 효율적으로 객체 후보 영역별 특징을 추출
Selective Search로 객체 후보 영역을 추출하여서 생성된 후보 영역을 독립적으로 사사전 학습된 CNN에 통과 시켜 특징을 추출하였다.

> 계산은 매우 비효율적



사전에 학습된 컨볼루션 신경망(예: VGG16, ResNet)을 사용하여 이미지를 한번에 처리해서 특징 맵을 생성해 특징을 추출

- Rol풀링을 통해 효율적으로 객체 후보 영역별 특징을 추출
> 객체 탐지의 효율성과 속도를 개선
사전에 학습된 컨볼루션 신경망(예: VGG16, ResNet)을 사용하여 이미지를 한번에 처리해서 특징 맵을 생성해 특징을 추출

- RPN은 사전 학습된 컨볼루션 신경망의 특징 맵 위에서 직접 작동

- Rol풀링을 통해 효율적으로 객체 후보 영역별 특징을 추출

> RPN으로 전체 객체 탐지 프로세스를 end-to-end로 학습하고 실행 > 계산 효율성을 향상
Selective Search으로 객체 후보 영역을 추출
Selective Search으로 객체 후보 영역을 추출  RPN 으로 객체 후보 영역 추출
분류기 & 회귀    1. SVM(Support Vector Machine) 분류기 Softmax 분류기 , 바운딩 박스 회귀   Softmax 분류기 ,바운딩 박스 회귀
추출된 특징을 기반으로 후보 영역에 대해 SVM 분류기를 사용해 객체의 클래스를 결정 SVM 대신 Softmax 분류기를 사용

분류와 바운딩 박스 회귀를 하나의 네트워크에서 동시에 처리함으로써 학습 과정을 단순화하고 성능을 개선
2. 바운딩 박스 회귀
최종적으로 객체의 위치를 더 정확하게 조정하기 위해 별도의 바운딩 박스 회귀 모델을 학습
   

 

 

 

Faster R-CNN의 혁신

 

 Faster R-CNN은 지역 제안 네트워크(Region Proposal Network, RPN)와 Fast R-CNN 객체 탐지 네트워크를 결합하여, 고성능 객체 탐지를 실시간에 가까운 속도로 수행할 수 있게 한다.

 RPN 전체 이미지에 대한 컨볼루셔널 특징을 공유하며, 객체 경계와 객체성 점수(objectness score)를 동시에 예측한다. 이 방식은 PASCAL VOC 및 MS COCO 데이터셋에서 최첨단 성능을 달성하며, 다양한 경계 박스의 크기와 종횡비에 효과적으로 대응할 수 있는 "앵커" 박스를 도입하여 다양한 규모의 객체를 효율적으로 탐지한다.

 

 

RPN  네트워크 구조


 Faster R-CNN의 핵심 아이디어 : 지역 제안 네트워크(Region Proposal Network, RPN)
 - 기존 Fast R-CNN의 구조를 그대로 가져오면서  Selective Search를 제거하고 RPN을 통해서 RoI를 계산.

-  객체 검출에서 후보 영역(proposal)을 생성 = 이미지를 입력으로 받아, 객체가 있을 것 같은 영역을 '제안'

 

 기존 방법들은 이 과정을 별도로 처리했으나, RPN은 이를 딥러닝 프로세스 내부로 통합하여 처리 속도를 크게 향상

 이를 통해 RPN은 Selective Search가 2000개의 RoI를 계산하는 데 반해 800개 정도의 RoI를 계산하면서도 더 높은 정확도를 보이 게 됨.

 

 

Faster R-CNN

 

  1. 원본 이미지를 pre-trained된 CNN 모델에 입력하여 feature map을 추출
  2. feature map은 RPN에 전달되어 적절한 region proposals을 산출. ⭐
  3. Region proposals와 1) 과정에서 얻은 feature map을 통해 RoI pooling을 수행하여 고정된 크기의 feature map을 얻음
  4. Fast R-CNN 모델에 고정된 크기의 feature map을 입력하여 Classification과 Bounding box regression을 수행

 

RPN  네트워크 구조 심화

 

💡사전 지식 : Anchor box 란?
  앵커 박스는 이미지 내 특정 위치에서 예상할 수 있는 객체의 기본적인 형태(크기와 비율)를 사전에 정의한 것
 : 모델이 다양한 크기와 비율을 가진 객체를 효과적으로 탐지

 Dense Sampling vs Anchor box 


Dense Sampling vs  Anchor box      
1) Dense Sampling 방식
고정된 크기의 bounding box로 이미지 전체를 빽빽하게 샘플링하는 방법

  - 원본 이미지를 일정 간격의 grid로 나눠 각 grid cell을 bounding box로 간주하여 feature map에 encode함
  - sub-sampling ratio를 기준으로 grid를 나누게 됨.
 
예시) 원본 이미지의 크기가 800x800 / sub-sampling ratio가 1/100이라고 할 때,
         CNN 모델에 입력시켜 얻은 최종 feature map의 크기는 8x8(800x1/100)가 됨
         여기서 feature map의 각 cell은 원본 이미지의 100x100만큼의 영역에 대한 정보를 함축
         본 이미지에서는 8x8개만큼의 bounding box가 생성됨

2) Anchor box 방식
사전에 정의된 다양한 크기와 비율의 박스(앵커 박스)를 기반으로 이미지 내에서 객체를 탐지하는 방법

 - 고정된 크기(fixed size)의 bounding box를 사용할 경우, 다양한 크기의 객체를 포착하지 못할 수 있다는 문제
 - 논문에서 지정한 위치에 사전에 정의한 서로 다른 크기(scale)와 가로세로비(aspect ratio)를 가지는 bounding box인 
Anchor box를 생성하여 다양한 크기의 객체를 포착하는 방법 제시
 
 논문에서 3가지 scale([128, 256, 512]) 3가지 aspect ratio([1:1, 1:2, 2:1])를 가지는 총 9개의 서로 다른 anchor box를 사전에 정의(pre-define)함.  
- scale은 anchor box의 width(= w ), height(= h )의 길이를, aspect ratio는 width, height의 길이의 비율을 의미

예시)

위의 그림에서 원본 이미지의 크기는 600x800이며, sub-sampling ratio=1/16, 사전정의한 anchor box는 9개
이 때 anchor가 생성되는 수는 1900(=600/16 x 800/16)이며, anchor box는 총 17100(=1900 x 9)개가 생성
이같은 방식을 사용할 경우, 기존에 고정된 크기의 bounding box를 사용할 때보다 9배 많은 bounding box를 생성
따라서 보다 다양한 크기의 객체를 포착하는 것이 가능

 

 

 

 

 

 

 

1. feature extraction by pre-trained VGG-16

 

원본 이미지를 pre-trained된  VGG16 모델에 입력하여  feature map을 추출

 

pre-trained된 VGG16 모델에 800x800x3 크기의 원본 이미지를 입력하여 50x50x512 크기의 feature map을 얻 여기서 sub-sampling ratio는 1/16입니다.

 

  • Input : 800x800x3 sized image
  • Process : feature extraction by pre-trained VGG16
  • Output : 50x50x512 sized feature map

 

2. Generate Anchors by Anchor generation layer

feature map은 RPN에 전달되어 적절한 region proposals을 산출. 

Region proposals를 추출하기에 앞서 원본 이미지에 대한 anchor box생성하는 과정 필요

원본이미지의 크기에 sub-sampling retio를 곱한 만큼의 grid cell이 생성되며, 

원본 이미지의 크기에 sub-sampling ratio를 곱한만큼의 grid cell이 생성 되며, 이를 기준으로 각 grid cell마다 9개의 anchor box를 생성합니다. 즉, 원본 이미지에 50x50(=800x1/16 x 800x1/16)개의 grid cell이 생성되고, 각 grid cell마다 9개의 anchor box를 생성하므로 총 22500(=50x50x9)개의 anchor box가 생성

 

  • Input : 800x800x3 sized image
  • Process : generate anchors
  • Output : 22500(=50x50x9) anchor boxes

 

3) Class scores and Bounding box regressor by RPN

RPN은 VGG16으로부터 feature map을 입력받아 anchor에 대한 class score, bounding box regressor를 반환하는 역할을 합니다. 동작 과정은 위에서 설명한 부분을 참고하시면 될 것 같습니다. 

 

  • Input : 50x50x512 sized feature map
  • Process : Region proposal by RPN
  • Output : class scores(50x50x2x9 sized feature map) and bounding box regressors(50x50x4x9 sized feature map)

4) Region proposal by Proposal layer

Proposal layer에서는 2)번 과정에서 생성된 anchor boxes와 RPN에서 반환한 class scores와 bounding box regressor를 사용하여 region proposals를 추출하는 작업을 수행합니다. 먼저 Non maximum suppression을 적용하여 부적절한 객체를 제거한 후, class score 상위 N개의 anchor box를 추출합니다. 이후 regression coefficients를 anchor box에 적용하여 anchor box가 객체의 위치를 더 잘 detect하도록 조정합니다. 

 

  • Input
    • 22500(=50x50x9) anchor boxes
    • class scores(50x50x2x9 sized feature map) and bounding box regressors(50x50x4x9 sized feature map)
  • Process : region proposal by proposal layer
  • Output : top-N ranked region proposals

5) Select anchors for training RPN by Anchor target layer

Anchor target layer의 목표는 RPN이 학습하는데 사용할 수 있는 anchor를 선택하는 것입니다. 먼저 2)번 과정에서 생성한 anchor box 중에서 원본 이미지의 경계를 벗어나지 않는 anchor box를 선택합니다. 그 다음 positive/negative 데이터를 sampling해줍니다. 여기 positive sample은 객체가 존재하는 foreground, negative sample은 객체가 존재하지 않는 background를 의미합니다.

 

전체 anchor box 중에서 1) ground truth box와 가장 큰 IoU 값을 가지는 경우 2) ground truth box와의 IoU 값이 0.7 이상인 경우에 해당하는 box를 positive sample로 선정합니다. 반면 ground truth box와의 IoU 값이 0.3 이하인 경우에는 negative sample로 선정합니다. IoU 값이 0.3~0.7인 anchor box는 무시합니다. 이러한 과정을 통해 RPN을 학습시키는데 사용할 데이터셋을 구성하게 됩니다. 

 

  • Input : anchor boxes, ground truth boxes
  • Process : select anchors for training RPN
  • Output : positive/negative samples with target regression coefficients

6) Select anchors for training Fast R-CNN by Proposal Target layer

Proposal target layer의 목표는 proposal layer에서 나온 region proposals 중에서 Fast R-CNN 모델을 학습시키기 위한 유용한 sample을 선택하는 것입니다. 여기서 선택된 region proposals는 1)번 과정을 통해 출력된 feature map에 RoI pooling을 수행하게 됩니다. 먼저 region proposals와 ground truth box와의 IoU를 계산하여 0.5 이상일 경우 positive, 0.1~0.5 사이일 경우 negative sample로 label됩니다.

 

  • Input : top-N ranked region proposals, ground truth boxes
  • Process : select region proposals for training Fast R-CNN
  • Output : positive/negative samples with target regression coefficients

7) Max pooling by RoI pooling

원본 이미지를 VGG16 모델에 입력하여 얻은 feature map과 6) 과정을 통해 얻은 sample을 사용하여 RoI pooling을 수행합니다. 이를 통해 고정된 크기의 feature map이 출력됩니다. RoI pooling에 대한 자세한 설명은 Fast R-CNN 논문 리뷰를 참고하시기 바랍니다. 

 

  • Input
    • 50x50x512 sized feature map
    • positive/negative samples with target regression coefficients
  • Process : RoI pooling
  • Output : 7x7x512 sized feature map

8) Train Fast R-CNN by Multi-task loss

나머지 과정은 Fast R-CNN 모델의 동작 순서와 동일합니다. 입력받은 feature map을 fc layer에 입력하여 4096 크기의 feature vector를 얻습니다. 이후 feature vector를 Classifier와 Bounding box regressor에 입력하여 (class의 수가 K라고 할 때)각각 (K+1), (K+1) x 4 크기의 feature vector를 출력합니다. 출력된 결과를 사용하여 Multi-task loss를 통해 Fast R-CNN 모델을 학습시킵니다. 자세한 내용은 Fast R-CNN 논문 리뷰를 참고하시기 바랍니다. 

 

  • Input : 7x7x512 sized feature map
  • Process 
    • feature extraction by fc layer
    • classification by Classifier
    • bounding box regression by Bounding box regressor
    • Train Fast R-CNN by Multi-task loss
  • Output : loss(Loss loss + Smooth L1 loss)

 

 

*Alternating Training

논문의 저자는 Faster R-CNN 모델을 학습시키기 위해 RPN과 Fast R-CNN을 번갈아가며 학습시키는 Alternating Training 방법을 사용합니다. 학습 과정은 아래와 같습니다. 

 

Aleternating Training

1) 먼저 Anchor generation layer에서 생성된 anchor box와 원본 이미지의 ground truth box를 사용하여 Anchor target layer에서 RPN을 학습시킬 positive/negative 데이터셋을 구성합니다. 이를 활용하여 RPN을 학습시킵니다. 이 과정에서 pre-trained된 VGG16 역시 학습됩니다. 

 

2) Anchor generation layer에서 생성한 anchor box와 학습된 RPN에 원본 이미지를 입력하여 얻은 feature maps를 사용하여 proposals layer에서 region proposals를 추출합니다. 이를 Proposal target layer에 전달하여 Fast R-CNN 모델을 학습시킬 positive/negative 데이터셋을 구성합니다. 이를 활용하여 Fast R-CNN을 학습시킵니다. 이 때 pre-trained된 VGG16 역시 학습됩니다. 

 

3) 앞서 학습시킨 RPN과 Fast R-CNN에서 RPN에 해당하는 부분만 학습(fine tune)시킵니다. 세부적인 학습 과정은 1)과 같습니다. 이 과정에서 두 네트워크끼리 공유하는 convolutional layer, 즉 pre-trained된 VGG16은 고정(freeze)합니다.  

 

4) 학습시킨 RPN(3)번 과정)을 활용하여 추출한 region proposals를 활용하여 Fast R-CNN을 학습(fine tune)시킵니다. 이 때 RPN과 pre-trained된 VGG16은 고정(freeze)합니다. 

 

쉽게 생각하면 RPN과 Fast R-CNN을 번갈아가며 학습시키면서 공유된 convolutional layer를 사용한다고 보면 됩니다. 하지만 실제 학습 절차가 상당히 복잡하여 이후 두 네트워크를 병합하여 학습시키는 Approximate Joint Training 방법으로 대체된다고 합니다. 

 

Detection

Faster R-CNN detection

실제 detection(=inference) 시에는 Anchor target layer와 Proposal target layer는 사용되지 않습니다. 두 layer 모두 네트워크를 학습시키기 위한 데이터셋을 구성하는데 사용되기 때문입니다. Fast R-CNN은 Proposal layer에서 추출한 region proposals를 활용하여 detection을 수행합니다. 그리고 최종적으로 얻은 predicted box에 Non maximum suppression을 적용하여 최적의 bounding box만을 결과로 출력합니다. 

 

 

3. Faster R-CNN과 RPN (Region Proposal Network)

Faster R-CNN에서 RPN은 객체 탐지 프로세스의 효율성과 정확도를 크게 향상시키는 핵심 구성 요소입니다. RPN은 사전 학습된 컨볼루셔널 신경망 위에 구축되어, 이미지 내에서 객체의 후보 영역을 동적으로 제안하는 역할을 합니다. 이는 Fast R-CNN의 고정된 후보 영역 대신, 이미지 내의 가능한 객체 위치를 능동적으로 탐색하고 식별하는 데 사용됩니다.

RPN의 구조

RPN은 기본적으로 컨볼루셔널 레이어들로 구성되며, 이를 통해 입력 이미지의 컨볼루셔널 특징 맵을 생성합니다. 그 위에 두 개의 출력 레이어가 배치됩니다:

  1. 클래스 분류 레이어(Classification Layer): 각 앵커 박스가 객체를 포함하는지 여부(객체성 점수)를 판단합니다.
  2. 바운딩 박스 회귀 레이어(Bounding Box Regression Layer): 각 앵커 박스의 위치를 조정하여 실제 객체에 더 정확히 일치하도록 만듭니다.

손실 함수

RPN의 학습은 두 가지 주요 목표를 달성하기 위해 설계된 손실 함수를 사용합니다:

  1. 분류 손실(Classification Loss): 각 앵커가 객체를 정확히 포함하고 있는지(전경) 아니면 배경인지를 분류하는 이진 분류 문제입니다.
  2. 회귀 손실(Regression Loss): 실제 객체의 바운딩 박스와 앵커 박스의 위치 차이를 최소화합니다.

이 두 손실을 결합하여 RPN의 전체 손실을 계산하며, 네트워크의 학습 동안 이 손실을 최소화하는 방향으로 파라미터를 조정합니다.

훈련 방법

RPN의 훈련은 사전 학습된 컨볼루셔널 신경망의 특징 맵을 기반으로 수행됩니다. 훈련 과정에서는 앵커 박스를 사용하여 각 위치에서의 객체 존재 여부와 위치 조정값을 예측합니다. 훈련 데이터는 실제 객체의 위치 정보를 포함하고 있어, 이를 기반으로 RPN이 객체를 효과적으로 탐색하고 식별하는 방법을 학습합니다.

앵커 박스와 다양한 스케일 및 종횡비 처리

앵커 박스는 다양한 크기와 종횡비를 가진 사전 정의된 박스로, 이미지의 모든 위치에서 이 앵커 박스를 사용하여 객체 후보 영역을 제안합니다. 이는 모델이 다양한 크기와 형태의 객체를 탐지할 수 있도록 만듭니다. RPN은 여러 스케일과 종횡비를 가진 앵커 박스에 대해 학습되어, 실제 객체와 가장 잘 일치하는 앵커 박스를 선택할 수 있습니다.

 

 

 

 

RPN 작동 원리

1. CNN을 통한 Feature Map 추출

  • 예시: 이미지에 고양이와 개가 있습니다. CNN은 이 이미지를 처리하여 고양이와 개의 특징을 포함하는 HxWxC 크기의 Feature Map을 생성합니다.

2. 3x3 Convolution 수행

  • 예시: 3x3 컨볼루션 필터를 이용해, 이미지의 각 부분에서 더 구체적인 특징(예: 고양이의 귀, 개의 꼬리)을 포착합니다. 이 과정은 Feature Map의 공간적 차원을 유지하면서 각 위치의 특징을 더 세밀하게 분석합니다.

3. Classification과 Bounding Box Regression 예측

  • 예시: 개선된 Feature Map에서, 네트워크는 각 위치에 대해 앵커 박스를 설정하고, 이 박스가 객체(고양이 또는 개)를 포함하는지 여부를 판단합니다. 동시에, 이 앵커 박스가 실제 객체를 얼마나 정확하게 둘러싸는지를 평가하는 회귀 분석을 수행합니다.

4. Classification Layer의 작동

  • 예시: 가정해봅시다, 이미지의 특정 위치에 9개의 앵커 박스가 있습니다. RPN은 이 앵커 박스 각각에 대해 객체인지 아닌지를 판별하는 값을 계산합니다. 예를 들어, 고양이 주변의 앵커 박스는 높은 '객체일 확률'을 가지며, 이는 소프트맥스를 통해 최종 확률로 변환됩니다.

5. Bounding Box Regression의 작동

  • 예시: 앵커 박스 중 하나가 고양이를 부분적으로만 둘러싸고 있다면, RPN은 이 박스의 위치를 조정해 고양이를 더 정확하게 둘러싸도록 합니다. 이는 회귀 분석을 통해, 박스의 크기와 위치의 조정값을 계산함으로써 이루어집니다.

6. RoI 계산

  • 예시: 모든 앵커 박스에 대한 '객체일 확률'과 회귀 조정값이 계산된 후, 확률이 높은 순으로 K개의 앵커를 선택합니다. 이들 중 겹치는 영역이 많은 앵커는 Non-Maximum Suppression(NMS)을 통해 필터링되어, 최종적으로 객체를 효율적으로 포함하는 몇 개의 RoI(Region of Interest)가 도출됩니다.

예시 요약

고양이와 개가 포함된 이미지를 처리할 때, RPN은 먼저 CNN을 통해 이미지의 Feature Map을 생성합니다. 이후, 각 위치에 대해 여러 앵커 박스를 설정하고, 이 앵커들이 실제 객체를 얼마나 잘 포함하는지(Classification)와 실제 객체를 더 정확하게 둘러싸기 위한 위치 조정(Bounding Box Regression)을 평가합니다. 최종적으로, 이 정보를 바탕으로 객체를 포함할 가능성이 높은 RoI를 선정합니다. 이 과정을 통해, 이미지 내에서 객체를 효과적으로 탐지하고 위치를 정확하게 파악할 수 있습니다.

 
 
 
 

 

 

CNN
RoI (Regoion Proposal Network)
RoI Pooling Layer
FCN
Softmax, BBR