ABOUT ME

-

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

    해당 포스팅은 R-CNN을 알고있다는 가정하에 작성되었습니다.

     

     

    1. Fast R-CNN이란?

    Fast R-CNN은 R-CNN이 기존에 가지고 있던 단점을 보완함을써 더욱 빠른 처리속도를 가지는 모델이다.

    • 2000개의 RoI가 각자 CNN을 통과하여 Feature Vector를 생산하여 많은 연산량이 요구되었다.
      => 원본이미지만 CNN에 통과시켜 Feature Map을 생성한다.
      => RoI와 Feature Map을 RoI Pooling Layer에 넣어 Feature Vector를 생성한다. 
    • Multi Stage Model로써 End-to-End 학습이 불가능하다.
      => Feature Map 생성부터 Classification, B-Box Regression까지 하나의 모델에서 학습한다.

    1.1 기존 R-CNN의 흐름도

    1.2 Fast R-CNN의 흐름도

    2. RoI 생성

    R-CNN과 동일하게 selective search를 통해서 2000개의 RoI(Region of Interest)를 뽑아낸다.

    다만, R-CNN과는 다르게 Fast R-CNN에서는 이미지 사이즈를 균일하게 맞춰주는 Wraping을 수행하지 않는다.

    기존의 CNN에서 이미지의 사이즈를 동일하게 맞춰주는 이유는 Convolution Layer 이후에 붙어있는 Linear Layer에서 동일한 사이즈의 Feature Vector를 요구하기 때문이다.
    Fast R-CNN에서는 생성된 RoI를 CNN에서 생성된 Feature Map와 Projection 시키는 RoI Pooling Layer에서 사이즈의 다름을 처리하기 때문에 RoI에 Wraping을 적용하지 않는다.

     

    3. Feature Map 생성

    R-CNN에서 생성된 2000개의 RoI들을 모두 CNN에 넣어서 각각 Feature Vector를 구하였다.

    이는 CNN이 2000번 수행됨으로 많은 연산량을 필요로 한다.

    Fast R-CNN에서는 원본 이미지 하나만을 CNN에 넣어서 Feature Map을 구하고,
    이를 RoI Pooling Layer에서 활용한다.

    2000번 수행되던 CNN을 한번만 수행함으로써 많은 연산량 감소를 이루어냈다.

    (사용되는 CNN 모델에 따라서 원본 이미지의 사이즈 변경이 필요할 수 있다.)

    ※해당 예시에서의 그림 사이즈나 Feature Map 사이즈는 예시일뿐 정답이 아니며, 논문과도 상관없습니다.

    4. RoI Pooling Layer

    앞서 원본 이미지가 CNN을 통과해서 나온 Feature Map은 원본 이미지와 사이즈가 다르다.

    (일반적으로 Feature Map이 더 작을 것이다.)

    이미지 사이즈에서의 RoI의 좌표를 동일한 비율로 Feature Map에 mapping 시키는 것을 RoI Projection이라고 한다.

    따라서, 우리는 RoI를 원본 이미지와 근사하게 Feature Map에도 나타낼 수 있다.

     

    RoI는 각각 사이즈가 다르기 때문에 Feature Map 위에 근사된 RoI도 그 사이즈가 제각각이다.

    R-CNN에서는 Wraping을 통해서 이미지를 동일하게 맞춰주었지만,

    Fast R-CNN에서는 RoI Pooling을 통해 동일한 Feature Vector를 생성한다.

    2x2 크기의 Pooling을 진행할 경우 RoI 구역을 4개의 구역으로 분할하여 Max Pooling을 진행하여 고정된 Feature Vector를 얻을 수 있다.

    Feature Map에 RoI를 근사함으로 원본 이미지에서의 RoI와 달라짐이 발생할 수 있다.

    이후 Segmentation에서 더욱 정확한 결과를 얻기 위하여 이점을 보완한 Mask R-CNN이 등장하게 된다.

     

    5. Linear Layer

    R-CNN에서 Feature Vector를 가지고 Class 예측과 Bouding Box 예측을 각각 수행하였다면,

    Fast R-CNN에서는 Feature Vector가 동일한 Hidden Layer를 거치고 마지막 Output Layer만 각각의 목적에 맞게 구성한다.

    (R-CNN에서 SVM을 통해 Class 예측을 했던것과 달리, Fast R-CNN에서는 Linear Layer 이후 Softmax를 통해서 예측을 수행한다.)

    Class 예측과 Bouding Box 예측동일한 Layer를 공유하기때문에 아래의 Multi task loss를 통해서 역전파를 수행한다.

    $$L(p,u,t^{u},v)=L_{cls}(p,u)+\lambda[u\geq 1]L_{loc}(t^{u},v)$$

     

     

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

    반응형

    댓글

Designed by Tistory.