[3주차 / 문성빈 / 논문리뷰] Rich feature hierarchies for accurate object detection and semantic segmentation
💡 논문링크 https://arxiv.org/pdf/1311.2524.pdf
AlexNet이 공개된 후 CNN은 Image Classification 분야에 있어서 많이 사용되었습니다. CNN이 Image Classification에서 매우 좋은 성적을 거뒀음에도 불구하고 Object Detection에는 바로 적용되지 못했습니다.
이는 Classification은 단순히 Object가 있는 이미지에서 객체가 어떤 것인지 알아내는 것이지만, Object Detection은 이미지 내에 Region of Interest에 Bounding Box를 생성한 후 여러 개의 Bounding Box에 대한 Objects들의 종류를 찾는 것이기 때문입니다.
하지만, R-CNN이 등장함으로 인해 CNN이 Object Detection에 적용되었고, 높은 수준의 성능을 이끌어냈습니다. 아래의 글은 이 R-CNN 논문에 대한 리뷰입니다.
R-CNN의 구조는 위와 같습니다.
Image를 input으로 넣고, 2000개의 Bounding Box를 Selective Search Algorithm을 통해 추출합니다. 이후 227x227 크기로 Warping한 후 이 image를 CNN 모델에 넣습니다. 마지막으로 SVM을 통해 Classification으로 결과를 도출합니다.
이러한 R-CNN은 2-stage Detector이므로 과정을 크게 Region Proposal, Region Classification로 나눌 수 있으며 아래 글은 Region Propsal, CNN, SVM & Bbox reg로 구조를 나누어 설명하겠습니다.
위 그림에서 Region Proposal은 input image에서 ConvNet에 통과하는 Warped image regions를 생성해내는 과정을 의미합니다.
R-CNN은 이 과정에서 Selective Search Algorithm을 사용하였습니다.
Semantic Segmetation 분야에서 물체를 인식하는 traditional approach는 Exhaustive Search입니다. 이는 물체가 있을 것으로 예상되는 영역을 모두 조사하는 방법입니다. 이는 object의 위치를 놓치지 않지만, 크기와 비율이 모두 제각각인 물체의 모든 위치를 컴퓨터가 계산해낸다는 것이 실현 가능성이 매우 낮습니다.
이에 등장한 것이 바로 Selective Search Algorithm이고, 이는 hierachial algorithm으로 물체의 서로 다른 크기와 모호한 경계를 해결합니다.
Selective Search의 알고리즘은 아래 순서와 같습니다.
R-CNN은 Selective Search Algorithm을 통해 한 개의 input image에서 총 2000개의 Region을 추출하고, 이들을 모두 다음 과정인 ConvNet에 넣기 위해 (224 x 224)의 사이즈로 통일시키는 작업인 Warping을 합니다.
Selective Search를 통해 생성된 2000개의 (224 x 224)의 크기인 warped image를 각각 CNN에 넣어줍니다.
CNN은 AlexNet의 구조를 사용하였고, ImageNet으로 Feature Extractor(AlexNet)을 pre-train을 진행합니다.
Region proposal은 object, background 모두 포함할 수 있으므로, fine-tuning시 예측하려는 object의 수가 N개 라면, 배경을 포함하여 N+1개의 class를 예측하도록 설계합니다.
위에 그림에서 볼 수 있듯이 Ground-truth와 SS predicted bbox와의 IoU가 0.5이상이면 해당 class로 labeling하고, 아니면 background로 labeling한다.
또한, Feature map을 다음 input으로 넣기 위해 각 region proposal로부터 4096-dimensional feature vector를 생성해냅니다. 여기서 4096-dimensional feature vector는 Fixed-length Feature Vector입니다.
CNN을 통해 feature를 추출하고, training label이 적용되면 Linear SVM을 사용하요 classification을 진행합니다.
CNN의 fine-tuning과 동일하게 N개의 class를 예측한다면, 배경을 포함하여 N+1개의 독립적인 linear SVM을 학습시킵니다.
CNN에서는 fine-tuning시 IoU 0.5를 기준으로 class와 background labeling을 진행하였습니다. 이와 다르게 SVM을 training할 때는 ground-truth 자체만 해당 class(positive example)로 두었고, IoU가 0.3미만인 영역은 모두 background(negative example)로 설정하였으며, 나머지는 모두 무시했습니다.
결국 SVM은 CNN으로부터 나온 Feture vectors의 score를 class별로 부여하고, object인지 background인지, 또한 object이면 어떤 object인지 판별하는 역할을 하는 Classifier입니다.
Selective Search로부터 얻은 object의 위치, 즉 Bounding Box는 부정확하므로 위치를 정확하게 수정하고 감싸도록 조정해주는 선형회귀 모델이 바로 Bounding Box Regression입니다.
bbox의 input은 N개의 training pairs로 구성되어 있습니다.
위에서 x, y, w, h는 bbox의 x,y 좌표, width, height를 뜻하며 p는 선택된 bbox, g는 ground-truth bbox입니다.
결국, p를 g에 맞도록 변형시키는 것을 학습하는 과정이 Bounding Box Regression입니다.
이 과정은 위의 식에서 MSE와 L2-Norm이 합쳐진 형태인 손실 함수를 최소화하는 방향으로 학습합니다.
R-CNN은 최초로 Object Detection에 CNN을 적용시켰다는 점과 더불어 동시대의 다른 알고리즘 대비 매우 높은 정확도를 달성했다는 점에서 의미가 큰 논문입니다. 심지어 R-CNN을 토대로 Object detection에서 2-stage detector 구조가 발전했다는 점에서도 R-CNN은 매우 중요한 역할을 한 논문이라고 할 수 있다.
하지만, R-CNN은 여러 한계가 존재합니다.
먼저, R-CNN은 Selective Search에서 뽑아낸 2000개 영역 이미지들에 대해서 모두 각각 CNN feature map을 생성시킵니다. 이는 매우 느린 Detection시간을 소모합니다.
또한, R-CNN은 Multi-Stage Training을 수행할 뿐만 아니라 CNN, SVM, Bbox regression까지 사용하여 매우 복잡한 구조입니다.
마지막으로, 완벽한 End-to-End 모델이 아니기 때문에 SVM, Bbox regression이 CNN을 업데이트 시키지 못한다는 것이 단점입니다.
참고자료 KUBIG 23 Winter CV 분반 Week 3
[2주차 / 윤지현 / 논문리뷰] Deep Residual Learning for Image Recognition (0) | 2023.01.31 |
---|---|
[3주차 / 진유석 / 논문리뷰] Fast R-CNN (0) | 2023.01.31 |
[2주차 / 문성빈 / 논문리뷰] Deep Residual Learning for Image Recognition (1) | 2023.01.31 |
[3주차 / 임정준 / 논문 리뷰] Fast R-CNN (0) | 2023.01.31 |
[2주차 / 진유석 / 논문리뷰] Deep Residual Learning for Image Recognition (0) | 2023.01.31 |
댓글 영역