ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • R-CNN(Regions with Convolutional Neuron Networks features) 모델 개념 설명
    Data Science/ML&DL 모델 2022. 11. 12. 17:03
    반응형

    1. R-CNN이란?

    1) 이미지 입력

    2) regional proposal 출력

    3) 이미지 전처리(동일 사이즈)

    4) 예측

    2. Region Proposal

    R-CNN에서는 CNN에 넣을 Region을 찾기위해서 selective search 방법을 사용했다.

    selective search는 sliding window의 단점을 극복한 방법이다.

    2.1 Sliding Window

    이미지에 window를 슬라이딩하며 물체가 존재하는지 확인하는 방법.

    window로 이미지의 모든 부분을 탐색해야하여 많은 시간을 소모하는 단점.

    탐지하고자하는 객체들의 크기가 다양하다면 고정된 window가 정확히 맞지 않는다는 단점.

    (다양한 window의 윈도우를 사용해야함.)

    R-CNN에서는 해당 방법을 사용하지 않음.

    2.2 Selective Search

    이미지에서 특징들(색상, 재질, 크기, 채움(Fill))을 통해서 Segmentation을 수행하고 RoI(Region of Interest)들을 얻는다.

    얻어진 RoI들은 계층적 그룹핑 알고리즘으로 합쳐진다.

    R-CNN에서는 이 방법을 통해서 2000개의 RoI를 얻었다.

    (R-CNN에서 사용되는 Region Proposal 방식이며 Fast R-CNN에서도 사용되었다.)

    https://www.geeksforgeeks.org/selective-search-for-object-detection-r-cnn/

    2.2.1 계층적 그룹핑 알고리즘(Hierarchical Grouping Algorithm)

    계층적 그룹핑 알고리즘은 특징들을 기반으로 유사한 영역들을 합쳐준다.
    (유사도 측정 기준 : 색상, 재질, 크기, 채움(Fill))

    이에대한 자세한 알고리즘은 아래와 같다.

    • 탐지된 초기영역들의 집합(R)과 영역들간의 유사도 집합(S)을 준비한다.
    • 유사도 집합(S)에서 가장 유사도가 높은 영역 i와 j를 합쳐 t를 만들고,
      t를 영역들의 집합(R)에 넣고 i와 j는 제거한다.
    • 영역 i 또는 j와 계산된 유사도는 유사도 집합(S)에서 모두 제거해준다.
    • 새로운 영역 t와 나머지 영역들간의 유사도를 측정하여 유사도 집합(S)에 추가해준다.
    • 유사도 집합(S)이 공집합이 되기 전까지 계속 반복한다.

    이렇게 추출된 ROI는 각각 CNN 모델에 입력된다.

     

    Selective Search는 CPU를 기반으로 동작하기 때문에 많은 시간이 소요된다.

    Selective Search 과정이 CNN의 Object detection과 별도로 이루어지기 때문에 end-to-end 학습이 불가능하며, 실시간 적용이 어렵다.

    이후, Faster R-CNN, YOLO등과 같이 Convolution network 내에서 후보 영역들을 추천하는 방향으로 발전하면서 실시간 탐지가 가능해지게 되었다. 

    2.3 Region Proposal Network

    이후 Faster R-CNN에서 사용되는 방법으로 selective search의 단점을 극복했다.

     

    3. CNN을 통한 Feature Vector 생성

    앞서 생성된 2000개의 ROI는 CNN에 입력되어 Feature Vector를 생성하게 된다.

    3.1 ROI Warping

    CNN 모델에서 Convolution layer에서 입력 이미지의 사이즈는 제한이 없지만, 이후 Linear Layer에서 에러가 발생하기 때문에 모든 ROI를 동일한 사이즈로 변경해주어야 한다.

    R-CNN에서는 AlexNet을 그대로 사용하기 때문에 244*244로 ROI의 사이즈를 맞춰준다.

    3.2 Feature Vector 생성

    Warping 된 이미지를 CNN에 넣어서 Feature Vector를 생성해준다.

    2000개의 ROI에 대해서 각각 CNN에 입력하기 때문에 2000번의 CNN 연산이 수행된다.

    해당 R-CNN에서는 AlexNet을 사용했다.

    아래는 AlexNet의 구조도이다.

    https://medium.com/coinmonks/paper-review-of-alexnet-caffenet-winner-in-ilsvrc-2012-image-classification-b93598314160

     

    4. 예측

    4.1 Class Prediction(클래스 예측)

    SVM을 통해서 해당 ROI의 Class를 예측한다.

    본 논문에서는 class의 개수만큼 SVM 모델을 만들어서 예측하였다.

    (해당 논문이 발표된 2014년도에는 아직 SVM이 활발히 쓰이던 시기였다.)

    4.2 Bounding Box Regression

    Selective search로 찾아진 bounding box의 위치는 정확하지 않기 때문에 실제 ground truth box와 차이를 줄여줘야한다.

    Selective search로 찾아진 ROI의 좌표  \( P^{i} = (P_{x}^{i},P_{y}^{i},P_{w}^{i},P_{h}^{i}) \)

    실제 object가 위치하는 좌표  \( G^{i} = (G_{x}^{i},G_{y}^{i},G_{w}^{i},G_{h}^{i}) \)

    위의 데이터가 있다고 할 때, 아래의 식을 통해서 bounding box regression 모델을 만든다.

    $$\hat{G_{x}} = P_{w}d_{x}(P) + P_{x}$$

    $$\hat{G_{y}} = P_{h}d_{y}(P) + P_{y}$$

    $$\hat{G_{w}} = P_{w}exp(d_{w}(P))$$

    $$\hat{G_{h}} = P_{h}exp(d_{h}(P))$$

     

    Fast R-CNN(Fast Regions with Convolutional Neuron Networks features) 모델 개념 설명

    Faster R-CNN(Faster Regions with Convolutional Neuron Networks features) 모델 개념 설명

    반응형

    댓글

Designed by Tistory.