컴퓨터비전(Computer Vision)

Object Detecion [1] - R-CNN

zzoming 2023. 10. 16. 01:48

💡 오늘 알아갈 목표 

  • 2 Stage Object Detector 
  • R-CNN

R-CNN

 

Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다.

R-CNN 모델은 이를 순차적으로 진행하는 대표적은 2 stage detector로, 딥러닝을 적용한 최초의 object Detection 모델이다. R-CNN모델은 다음과 같은 순서에 따라 작동한다.

1. Input Image 

2. Extract Region Proposals 

  • Sliding Window
  • Selective Search 

3. Compute CNN features

4. Classify regions

 

우선 object detection을 하기 위해서는 객체 후보의 영역을 선정해야 하는데 아래의 방법들을 알고 넘어가자.

Sliding Window

 

이미지에서 물체를 찾기 위해 다양한 형태의 window를 슬라이딩하며 모든 영역에 대해서 탐색하는 것이다. 

이 방법으로 후보영역을 뽑아낼 경우 무수히 많은 후보영역이 나타나며, 이 영역 중 객체를 포함할 경우는 매우 낮다. R-CNN에서는 이 비효율성을 극복하기 위해 Selective Search 알고리즘을 사용한다.

Selective Search

 

색상,무늬,명암 등의 다양한 기준으로 픽셀을 grouping 하고, 큰 영역으로 차례대로 통합해서 나간다. 이러한 방식은 대표적으로 R-CNN과 SPPNET , Fast R-CNN에서 주로 쓰이는 Region Proposal 방법이다. 

 

1. 일단 초기 sub-segmentation을 수행한다

 

; 각각의 객체가 1개의 영역에 할당이 될 수 있도록 많은 초기 영역을 생성한다

 

2. 작은 영역을 반복적으로 큰 영역으로 통합한다 

 

: 이 때는 탐욕(Greedy) 알고리즘을 사용하며, 그 방법은 다음과 같다. 우선 여러 영역으로 부터 가장 비슷한 영역을 고르고, 이것들을 좀 더 큰 영역으로 통합을 하며, 이 과정을 1개의 영역이 남을 때 까지 반복한다. 초기의 복잡한 영역들이 유사도에 따라 점점 통합된다 

3. 통합한 영역들을 바탕으로 후보 영역을 만들어낸다.

 


Pipeline

 

1) 입력 이미지 받기 

 

2) Selective Search를 이용해 RoI(Regions of interset) 2000개 추출 

* ROI(Regions of interset) : 관심을 갖고 볼 영역(후보영역) 

 

3) RoI영역을 동일한 사이즈로 warping (RoI의 크기를 조절해 모두 동일한 사이즈로 변형) 

→ 이유 : Convolution Layeer에는 input size가 고정이지 않다. 하지만 Fully Connected Layer는 고정된 사이즈로 입력을 받기 때문에 동일한 input size로 넣어주어서 output size을 동일하게 하는 것이다. 

 

4) Warp된 모든 region proposalCNN(Alex Net)에 넣어 2000 X 4096 크기의 feature vector추출 

  • 각 region proposal마다 4096-dimentional feature vector 추출 (2000 X 4096)
  • Pretrained AlexNet 구조 활용 
    • AlexNet 마지막에 FC layer추가 
    • 논문의 저자는 객체 탐지시, 특정 도메인에 맞는 class를 예측하기 위해서 기존의 ImageNet 데이터 셋을 통해 pre-trained 된 CNN모델을 도메인에 맞게 fine tune 하는 방식을 제안 

5) CNN을 통해 나온 Feature vector을  Linear SVM 모델과 Bounding box regressor 모델에 입력

  • Input
    • 2000 X 4096 feature vector 
  • Output
    • Class(C+1) + Confidence Score
    • 클래스 개수 (C개) + 배경여부 (1개) 
    • 조정된 bounding box 좌표 

selective search로 만든 bounding box는 다소 부정확할 수 있기 때문에 이러한 문제를 해결하기 위해 bounding box의 좌표를 변환하여 객체의 위치를 세밀하게 조정해주는 Bounding box regressor 모델이 있다.  bounding box regressor은 예측한 bounding box의 좌표가 주어졌을 때 ground truth box의 좌표로 변환되도록 Scale invariant Transformation을 학습한다.

6 ) 마지막으로 Non maximum suppression 알고리즘을 적용하여 최소한의, 최적의 bounding box를 출력합니다

 

linear SVM 모델과 Bounding box regressor 모델을 통해 얻은 2000개의 bounding box를 전부 다 표시할 경우 하나의 객체에 대해 지나치게 많은 bounding box가 겹칠 수 있다. 이로 인해 객체 탐지의 정확도가 떨어질 수 있으므로 감지된 bounding box 중 비슷한 위치에 있는 box를 제거하고 가장 적합한 box를 선택하는  Non maximum suppression  적용


Training

 

  • AlexNet 
    • Domain specific finetuning 
    • Dataset 구성 
      • IoU > 0.5 일 경우 positive samples 
      • IoU < 0.5 일 경우 negative samples
      • Positive samples 32 , negative samples 96 ,mini batch 128
  • Linear SVM 
    • Dataset 구성 
      • 오직 Ground Truth box 만  positive samples 
      • IoU < 0.3 일 경우 negative samples
      • Positive samples 32 , negative samples 96 ,mini batch 128
      • 학습이 끝난 후 hard negative minig 기법을 적용하여 재학습 
    • Hard negative mining 
      • Hard negative : False Positive → 모델이 구분해내기 어려운 샘플들을 모으는 기법으로 모델을 보다 강건하게 학습시킬 수 있다. 
      • 위와 같이 배경으로 식별하기 어려운 샘플들을 강제로 다음 배치의 negative sample 로 mining 하는 방법
  • Non maximum supperssion 
    • bounding box 별로 지정한 confidence scroe threshold 이하의 box 제거 
    • 남은 bounding box를 confidence score에 따라 내림차순 정렬 
    • confidence score가 높은 순의 bounding box 부터 다른 box와의 IoU threshold 이상인 box를 모두 제거 
    • 남아있는 box 만을 선택 

Shortcomings (한계점)

 

1) 2000개의 region proposal을 뽑고 각 영역 마다 CNN 수행 ⇒ CNN * 2000 (연산량 ↑ 속도↓)

2) 이미지를 고정된 크기로 자르거나(crop) 하거나 비율을 조정 (warp) 해야 함

⇒ 객체 정보 손실의 우려성이 있고, 성능이 하락할 수 있음 

3) CNN , SVM classifier , bounding box regressor 을 모두 따로 학습 ⇒각regional proposal에 대해 ConvNet foward pass를 실행할 때 연산을 공유하지 않기에 end -to -end로 학습할 수가 없다. 

  •  

📝참고자료 

https://m.blog.naver.com/laonple/220918802749

 

[Part Ⅶ. Semantic Segmentation] 2. Selective Search [1] - 라온피플 머신러닝 아카데미 -

     Part I. Machine Learning  Part V. Best CNN Architecture  P...

blog.naver.com

 

https://herbwood.tistory.com/5

 

R-CNN 논문(Rich feature hierarchies for accurate object detection and semantic segmentation) 리뷰

이번 포스팅부터는 본격적으로 Object Detection 모델에 대해 살펴보도록 하겠습니다. 어떤 논문을, 어떤 순서에 따라 읽어야할지 고민하던 중, hoya님이 작성하신 2014~2019년도까지의 Object Detection 논

herbwood.tistory.com

 

'컴퓨터비전(Computer Vision)' 카테고리의 다른 글

컴퓨터 비전의 시작  (1) 2023.10.18
Object Detecion [3] - FAST R-CNN  (0) 2023.10.17
Object Detecion [2] - SPPNET  (0) 2023.10.16
객체탐지 - IoU /python 코드  (1) 2023.10.15
부스트캠프 자가진단 STUDY  (2) 2023.09.18