YOLO등장 배경
Object detection 과제는 최근 자율주행자동차 등에 활용되면서 정확도 뿐만 아니라 신속성이 중요되어지고 있는 추세입니다. 그러나 RCNN계열의 모델들은 일정 수준의 정확성은 있으나, 실제 적용하기에 신속성이 떨어지는 문제가 있습니다. (혹시, RCNN에 대해 알고싶으시다면2021.04.25 - [Computer Vision/Object Detection] - RCNN(Regions with CNN읽고 오시는 거 추천드립니다.ㅎㅎ) 근래에는 일정한 수준의 정확성을 유지하면서 Object detection의 속도를 높이려는 여러 신경만들이 개발되고 있습니다.
아래의 그림은 근래 Object detection 근본 모델들의 성능을 비교한 그래프입니다. 여기서 mAP는 precision과 recall의 그래의 면적을 의미함으로 간단히 정확성이라고 생각하면 됩니다. FPS는 초당 수행할 수 있는 프레임이므로 높을수록 수행 속도가 빠르다고 생각할 수 있습니다. 세로축은 mAP, 가로축은 FPS입니다.
노란 점선으로 표시된 YOLOv2의 모델들의 성능을 보면 다른 RCNN계열과 비교했을 때 FPS가 높다라는 것을 알 수 있습니다.
YOLO 모델 요약
물체인식을 수행하기 위해 고안된 심층 심경망으로서, Bounding box와 Classification를 동일 신경망 구조를 통해 동시에 수행하는 통합인식(Unified Detection)을 구현합니다.
1.이미지를 SxS개의 그리드로 분할(논문에서는 S=7)
2.이미지 전체를 신경망에 넣고 특징 추출을 통해 예측 텐서(Prediction Tensor)생성
3.그리드 별 예측 정보를 바탕으로 Bounding box조정 및 Classification 작업 수행
YOLO Network
입력 이미를 입력하여 CNN과 FC layer을 통과하여 Prediction tensor을 생성하여 Bounding Box Regression과 Classification을 동시에 수행하게 됩니다. 여기서 Prediction tensor에 대해서 자세히 다뤄보도록 합시다.
Prediction tensor는 7x7x30의 shape을 가지고 있습니다. 7x7는 각각의 그리드를 나타내고 30[Bounding box 개수x(바운딩박스 정보)+20(클래스 개수)]은 앞에서부터 Bounding Box 정보(바운딩 박스 중심 좌표 x, y ,너비, 높이, confidence score 총 5개) 그리고 클래스 확률(클래스 후보 개수 20개)로 구성됩니다. confidence score는 바운딩 박스 안에 물체가 있을 확률과 그 물체과 겹치는 정도에 대한 신뢰도를 표현하는 값입니다.
YOLO Training
YOLO모델의 Cost function은 위의 그림과 같이 여섯개의 항으로 구성되어 있습니다. 먼저 위에서부터 두번째가 바운딩 박스 좌표와 너비 높이에 대한 Regression이고, 그 다음 두개의 항은 Bounding Box의 Confidence score에 대한 Regression 그리고 마지막은 Classification에 대한 Regression을 진행합니다.
위에 식의 하이퍼 파라미터
\(\lambda _{cord}\), \(\lambda _{noobj}\):바운딩 박스 변수 에 대한 값을 더 반영하고 물체가 없는 영역에 대한 값을 덜 반영하기 위한 하이퍼 파라미터
\(\mathbf{1_{i}^{obj}}\): 1; i번째 셀에 물체가 있음/0; otherwise
\(\mathbf{1_{ij}^{obj}}\): 1; i번째 셀에 물체가 있고 동시에 j번째 예측기 값이 i번째 셀의 다른 것보다 높음 / 0; otherwise
'Computer Vision > Object Detection' 카테고리의 다른 글
Fast/Faster RCNN 한눈에 비교 (0) | 2022.08.23 |
---|---|
FCOS(Fully Convolutional One-Stage Detector) (0) | 2022.08.21 |
RCNN(Regions with CNN) (0) | 2021.04.25 |