카테고리 없음

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

왕초보코딩러 2024. 5. 14. 15:44
728x90

<CNN>

https://post-blog.insilicogen.com/blog/346

 

[구버전] 人Co BLOG :: 이미지를 이용한 딥러닝의 개요

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다 Trackback RSS : https://post-blog.insilicogen.com/blog/rss/trackback/346 -->

post-blog.insilicogen.com

https://m.blog.naver.com/luvwithcat/222148953574

 

CNN의 정의, 이미지의 feature map 기능과 kernel(filter)의 개념

CNN(합성곱 신경망) CNN 은 Convolutional Neural Network 의 약자로, 이미지 데이터로부터 featu...

blog.naver.com

https://m.blog.naver.com/luvwithcat/222148953574

 

CNN의 정의, 이미지의 feature map 기능과 kernel(filter)의 개념

CNN(합성곱 신경망) CNN 은 Convolutional Neural Network 의 약자로, 이미지 데이터로부터 featu...

blog.naver.com

 

 

<Image Classification과 Object Detection의 차이>

Image Classification: 하나의 이미지에서 하나의 클래스 탐지

Object Detection: 하나의 이미지에서 여러 개의 클래스 탐지

-> Object Detection에는 많은 localization이 필요하다(위치 + 분류)

https://bigdata-analyst.tistory.com/269

 

Object Detection 정리(RCNN, FastRNN,FasterRCNN 중심으로)

전체적인 글 내용은 나동빈님의 유튜브를 참고하였습니다.(대신 홍보해요! 구독과 좋아요 눌러주세요..ㅎㅎ) https://www.youtube.com/watch?v=jqNCdjOB15s&t=865s ## Object Detection 개념 Object Detection은 다수의 사

bigdata-analyst.tistory.com

 

<문제 1: object detection 시 CNN의 localization>

<문제 2: 라벨링된 데이터 부족으로 대규모 CNN 훈련이 힘듦>

 

 

<문제 1 해결법: region proposal>

1. regression -> 잘 동작 X
2. sliding window -> input image는 receptive fields (195 195 pixels)과 strides (32 32 pixels)를 가져 정확한 localization 어렵 + 계산량과 속도 문제
3. region proposal

 

-region proposal

region: object가 있을 가능성이 높은 곳

object가 있을 영역 내에서만 object를 찾는다.

R-CNN에서는 selective search 방법을 사용

 

 

sliding window

https://developer-lionhong.tistory.com/35

 

[Object Detection] Sliding Window

개요 2개 이상의 객체를 찾아야하는 Object Detection은 feature map이 복잡하게 나타나 객체의 위치를 잘 찾을 수 없었습니다. 단순하게 생각해본다면, 이는 전체 입력 이미지를 작은 영역들로 나누고

developer-lionhong.tistory.com

 

selective search 

수많은 영역 생성 -> 알고리즘에 따라 유사도가 높은 것들을 하나의 영역으로 합친다 -> 반복

https://developer-lionhong.tistory.com/31

 

[Object Detection] Selective Search (선택적 탐색)

개요 이전 포스팅에서 배운 Sliding Window 방식은 일정 크기의 window가 이미지의 모든 영역을 sliding하면서 객체를 찾기 때문에 계산량이 매우 많다는 단점이 있었습니다. 이 단점을 보완하기 위해서

developer-lionhong.tistory.com

 

 

<문제 2 해결법: CNN training>

supervised pre-training과 domain-specific fine-tunning을 CNN에 수행하자

 

 

- supervised pre-training

Caffe CNN library를 사용하여 ILSVRC2012 classification 데이터셋을 pre-training

 

- domain specific fine tunning

warped region proposals만 사용하여 CNN 파라미터의 확률적 경사 하강법(SGD) 실행

 

Pre-trained CNN을 Domain-specific CNN으로 바꿈

ImageNet-specific 1000-way classification layer  -> 무작위로 초기화된 N+1개의  classification layer(object class N + background class 1)


IoU: ground-truth box와 겹치는 것에 따라
region proposal IoU >= 0.5면 positive
region proposal IoU < 0.5면 negative
 
SGD learning rate: 0.001 (초기화를 방해하지 않도록 초기 pre-training rate의 1/10)
SGD batch size: 128(32개의 positive + 96개의 backgroud. positive가 negative에 비해 적기 때문에 1:3비율로)

 

-Object category classifiers(SVM training?)
positive negative 판단 시
object와 부분적으로 겹치는 region에 label을 지정하는 방법 -> IoU overlap threshold 사용
 
overlap threshold: 0.3(그리드서치로 찾음)
IoU overlap threshold < 0.3면 negative로 판단
각 클래스  ground-truth box일 때 positive 판단
0.3 IoU 이상 겹치지만 ground truth가 아니면 무시


각 class마다 linear SVM optimize
hard negative mining method: negative인데 positive라고 오분류할 것 같은 이미지를 캐오는 거

 

 

 

R-CNN: region proposals + CNN

<R-CNN의 과정>

1. Extract region proposals

input image에 대해 category-independent한 2000개의 region proposals생성
2. Wraped region

각 region을 warping하여 fixed size(227x227)만든다(CNN과 호환되도록)
3. Compute CNN Features(Feature Extraction)

CNN(5개의 convolution layers와 2개의 fully connected layers)으로

각 fixed size proposals에 대한 fixed length feature vector(4096차원)을 생성
4. Classify regions

category-specific한 선형 SVMs를 이용하여 region 분류(class에 해당할 확률 값을 가진다)

features matrix(4096차원의 feature vecotr 2000개 합침)는 일반적으로 2000X4096

SVM weight matrix는 4096XN으로 N은 여기서 클래스의 수를 의미한다
-> 분류를 하면 region proposals에 대한 클래스 별 확률값이 나온다(2000XN)

+ Bounding Box Regression

ground truth와 CNN을 통해 나온 bounding box의 차이를 구해서 ground truth에 맞춰주는 것

region proposal이 더 잘 되도록 한다 

 

 

 

 

test: R CNN이 object detection 하는 과정

1. Extract 2000 region proposals + Wraped region

2. Compute CNN Features(Feature Extraction)

3. SVM으로 각 feature vector의 점수 계산

4. 하나의 object 위치를 표현하는 여러 개의 bounding box가 존재하기 때문에 

NMS를 적용하여 svm으로 나온 class에 해당할 확률과 bounding box끼리 IoU를 통해 bounding box 제거

 

 

(NMS. non-maximum suppression)

Confidence threshold 이하의 Confidence score를 가지는 bounding box는 제거 -> Confidence score을 기준으로 bounding box 내림차순 정렬 -> bounding box끼리 IoU를 보고 IoU threshold를 기준보다 크면(겹치면) 제거, 기준보다 작으면(안 겹치면) 남겨둠 -> 반복

https://wikidocs.net/142645

 

3) NMS (Non-Maximum Suppression) & Anchor box

## 서론 앞서 [1) General process of object detection](https://wikidocs.net/152376) 에서 언급했듯, 대다수의 objec…

wikidocs.net