Fast R-CNN이란?

김태영·2022년 10월 6일
0
post-thumbnail
post-custom-banner
  • 기존 SPP Network의 문제점
    • 모델을 학습시키기 위해선 여러 단계를 거쳐야 하며, FC Layer만 학습 시킬 수 있다는 단점이 존재했습니다. 이를 보완하여 end-to-end 방식을 적용한 모델이 Fast R-CNN입니다.

      이는 SPP Network보다 3배 빠른 학습 속도, 10배 빠른 Detection 속도를 보이며 Pascal VOC 2007 데이터셋을 기준으로 66%의 mAP을 기록합니다.

  • Fast R-CNN 동작 방식
    • Pre-trained된 CNN에 이미지를 통과 시켜 feature map을 얻습니다.
    • Selective search를 통해 얻은 각각의 rol에 rol pooling을 적용하여 고정된 크기의 feature vector를 얻습니다.
    • Feature vector를 FC Layer에 통과시켜 두개의 브랜치로 나눕니다.
    • 하나의 브랜치는 softmax를 통과시켜 해당 rol이 어떤 물체인지 classification합니다.
      • 더 이상 SVM은 사용되지 않습니다.
    • 또다른 브랜치는 bounding box regression을 통해서 selective search로 찾은 bbox의 위치를 조정합니다.
    • 동작 방식은 SPP Network와 크게 다르지 않습니다. 단지 end-to-end 방식을 적용하여 학습 속도, 인퍼런스 속도, 그리고 정확도를 향상시켰다는 것입니다.
  • Rol Pooling
    • CNN을 통과하여 얻은 feature map은 미리 정해놓은 크기에 맞게끔 그리드를 설정합니다. 그 후, 각각의 칸 별로 가장 큰 값을 추출하는 max pooling을 실시하면 결과값은 항상 지정해놓은 크기의 feature map이된다. 이를 쫙 펼쳐서 feature vector를 추출한다.
      • input 이미지의 크기와 feature map의 크기가 다를 때는 비율을 구해서 rol을 조절하여 rol pooling을 진행한다.

        Untitled

  • Multi Task Loss
    • classification loss Untitled
      • p = softmax를 통해서 얻어낸 k+1(k개의 object + 1개의 배경 혹은 물체가 아님)개의 확률값
      • u = rol의 ground truth 라벨값
    • bounding box regression loss Untitled
      • k+1에 대한 클래스에 대해서 각각 x, y, w, h를 조절하는 tk를 return한다. 예를들며 rol이 사람일 경우 이렇게 조절해라, 물병이라면 이렇게 조정해라 등등.
      • tu = ground truth에 해당하는 값
      • v = ground truth bounding box 조절 값
    • classification loss와 bounding box regression loss를 적절하게 엮은 loss입니다. Untitled
      • 입력으로는 정답 라벨에 해당하는 BBR 예측값과 ground truth 조절값을 받습니다. 그리고 x, y, w, h 각각에 대해서 예측 값과 라벨 값의 차이를 계산한 다음, smoothL1이라는 함수를 통과시킨 합을 계산한다. Untitled
        • 예측 값과 라벨의 차이가 1보다 작으면 0.5x^2로 L2 distance를 계산한다.
  • 요약
    • end-to-end를 제시하며 학습 단계의 최소화, 정확도와 성능을 모두 향상시킨 폭발적인 모델이다. 그러나 여전히 region proposals를 selective search로 수행하고, cpu 연산만 가능하다는게 흠이다. 이 단점을 제외하면 inference에 소요되는 시간이 0.3초로 매우 짧습니다.
profile
하얀 도화지 김태영입니다.
post-custom-banner

0개의 댓글