Faster R-CNN

Hun·2023년 8월 24일
0

컴퓨터비전

목록 보기
3/6

참고자료

https://www.youtube.com/watch?v=Jo32zrxr6l8&t=260s
https://herbwood.tistory.com/11
https://keepgoingrunner.tistory.com/94
https://arxiv.org/pdf/1311.2524.pdf
https://arxiv.org/pdf/1504.08083.pdf
https://arxiv.org/pdf/1506.01497.pdf


이번 포스팅은 object detection에서 딥러닝을 활용해 가장 좋은 성능을 보여준 Faster R-CNN에 대해서 다루어 볼 것이다. Faster R-CNN은 R-CNN, Fast R-CNN에서의 단점을 보완한 모델이다. 먼저 Faster R-CNN을 이해하기 위해 R-CNN과 Fast R-CNN을 알아보자.

R-CNN

출처: Rich feature hierarchies for accurate object detection and semantic segmentation

R-CNN이 나왔을 당시 sliding window로 Region Proposal을 시행하였다. 그러나, 객체를 인식하기 위해서는 다양한 bounding box 즉 kernel을 필요로 했기에 이미지 전체를 흝는 것은 엄청난 연산이 필요하다. 그에 반해, Selective Search는 어느 정도의 상한선을 두어서 인접한 영역간의 유사도를 계산하여 통합해 나간다. R-CNN모델이 나왔을 당시 2000개의 영역을 두어서 학습을 진행하였다. 그러나 Selective Search는 CPU에서만 진행이 되기에 시간이 오래걸린다는 단점이 있다.

학습과정

R-CNN은 input을 받으면 먼저 Selective Search를 실행한다. Selective Search를 통해 Region Proposal을 하여 2000개의 후보 영역을 계산한다. 그리고 Feature를 얻기 위해 CNN에 넣는데 고정된 크기가 필요한데 위의 그림과 같이 warped region이 이를 뜻한다. 그리고 SVM을 통해 분류과정이 진행된다. 분류한 결과를 어디에 있는지까지 보정하는 Bounding-box regression이 진행된다. 이 모델은 3가지 단계로 학습이 진행되는 것이 특징이다.

한계

  • CNN입력을 위해 고정된 크기가 필요한데 여기서 warping/crop을 사용하여 이미지 정보 손실 발생
  • 2000여개의 영역을 CNN에 적용해야 하기에 학습시간이 오래 걸림
  • 학습이 여러 단계로 이루어져 긴 학습시간과 저장용량을 요구
  • Object Dection 자체의 속도도 느림

Fast R-CNN

출처: Fast R-CNN

학습과정

input을 object proposal에 사용하고 input을 통해 feature map을 생성한다. 각 object proposal로부터 RoI pooling layer를 통해 고정된 feature vector를 생성한다. FCN을 통해 object class를 판별하고 bounding box를 조절한다. R-CNN과는 달리 한번에 학습이 진행되는 것을 알 수가 있다.

RoI Pooling

출처: https://medium.com/coinmonks/review-fast-r-cnn-object-detection-a82e172e87ba

RoI Pooling은 RoI 영역에 해당하는 부분만 max pooling하여 feature map으로부터 고정된 길이의 저차원 벡터로 축소하는 것을 의미한다. 이는 곧 서로 다른 크기의 영역이 고정된 길이의 벡터가 되어 입력으로 사용되는 것을 의미한다.

한계

Region Proposal에서 Selective Search를 사용하기에 Testing단계에서 시간이 오래 걸린다.

Faster R-CNN

학습과정

앞서 다룬 두 네트워크와는 달리 Region proposal을 CNN(RPN)을 활용하기에 CPU에서 GPU영역으로 전환해 학습을 한다. 그리고 Fast R-CNN과 같이 region-based 감지기의 feature map을 region-proposal generating에도 사용한다. 학습된 RPN을 사용하여 Fast R-CNN 모델의 학습을 진행한다.

출처: Faster R-CNN

RPN(Region Proposal Networks)

다양한 사이즈의 이미지를 입력 값으로 가지며 object score와 object proposal을 출력한다.
Fast r-cnn과 사용하는 CNN은 같고 feature map의 마지막 conv layer에서 작은 네트워크가 sliding하여 저차원으로 매핑을 하여 Regression과 classification을 수행한다. 이때, Anchor box라는 것을 사용하는데 이는 각 슬라이딩 윈도우에서 Bounding box의 후보로 사용되는 상자를 의미한다. reg층은 4k, cls층은 2k만큼의 출력을 갖게 된다. anchor는 슬라이딩 윈도우 중심에 있으며 미리 정해진 스케일과 비율에 따라 달라진다. 이 논문에서는 3개의 scale과 3개의 ratio를 사용하여 k=9개의 anchor를 사용하였다. 즉,한 이미지에서는 hwk개만큼의 anchor box가 있다는 것이다.

0개의 댓글