본문 바로가기
Visual Intelligence/Object Detection

[Object Detection] YOLO (You Only Look Once)

by goatlab 2022. 9. 3.
728x90
반응형
SMALL

YOLO (You Only Look Once)

 

https://towardsdatascience.com/yolo-v5-is-here-b668ce2a4908

 

YOLO는 You Only Look Once 약어로써, 2015년 Joseph Redmon이 워싱턴 대학교에서 친구들과 함께 YOLO 아키텍처와 논문을 발표했다. 당시만 해도 two-shot-detection 방식인 Faster R-CNN (Region with CNN)가 가장 좋은 성능을 냈지만 실시간성이 굉장히 부족했다 (7 FPS 최대). 이때, one-shot-detection 방식으로 동작하는 YOLO가 등장하여 평균 45 FPS에서 실행되었으며 빠른 버전의 경우 최대 155 FPS을 기록했다.

 

YOLO 아키텍처

 

 

YOLO 아키텍처는 feature extractor로써 Google LeNet+ 5개의 new layer를 사용하며, Flatten layer를 거쳐서 최종 출력층에서는 7x7x30 텐서를 만들어내는 구조이다. 즉, YOLO 아키텍처는 기본적으로 yolov5s.pt와 같은 pre-trained model을 제공되며, 사용자 데이터 이용해서 Transfer Learning에서 fine-tuning하는 과정이다. YOLO는 입력 이미지에 대해서, Bounding Box와 classification 작업을 동시에 수행한다.

 

https://leimao.github.io/blog/YOLOs/

 

먼저, YOLO 아키텍처에서는 입력 이미지를 S x S grid로 나눈다.

 

https://lilianweng.github.io/posts/2018-12-27-object-recognition-part-4/

 

이것으로 학습할 경우, 각각의 그리드 셀은 B개의 bounding box를 가지고 있으며, 각각의 그리드 셀 (grid cell)은 B개의 bounding box와 그 bounding box에 대한 confidence score를 가진다. 즉, 각각의 bounding box는 (x, y, w, h, confidence score) 같은 5개의 값으로 구성된다.

 

(x, y) bounding box의 중심점
(w, h) 해당 셀에서 bounding box가 차지하는 width, height
confidence score 해당 그리드 셀에 물체가 존재할 확률

 

Ground-truth

 

 

딥러닝에서 Ground-truth는 학습 데이터의 실제 값을 표현할 때 사용되는 개념이다. 즉, 학습 데이터에서 주어지는 정답(label)으로 생각해도 무방하다.

 

IoU (Intersection over Union)

 

https://pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/

 

IoU는 딥러닝 모델이 얼마나 예측을 잘 했는지를 알기 위해 사용한다.

728x90
반응형
LIST