YOLO는 You Only Look Once의 약자로, one step으로 모든 것을 처리하기 때문에 빠르고 정확하여 컴퓨터 비전 분야에서 객체 탐지시 표준적으로 쓰인다.
faster-RCNN 등은 파이프라인을 거치기 때문에 비교적 느린 two step 방식을 사용했다.
위 예시에서는 이미지를 16개의 grid로 나누었고, 각 grid는 Pc부터 C2까지 7개의 정보를 저장한다. C1==1이면 Dog Class이고, C2==1이면 Person Class이다.
위 grid에서는 객체가 아예 없으므로 Pc=0이다.
두 object가 나타나는 grid 에서는 해당 grid 내에 중심점이 있는 객체로 인식된다. 즉, 개의 중심점인 노란 점이 포함되어 C1==1, 개로 인식되었다.
한 객체에 여러 bounding box가 중첩되어 나타날 수 있다. 단순히 더 큰 bounding box를 선택하는 것만으로는 해결할 수 없으며, 해결방법은 다음과 같다.
다양한 크기의 box들 중, 내가 필요한 Data를 가장 잘 나타내는 Anchor Box의 개수와 크기를 미리 지정해 놓는다.
2015년에 Josept Redmon이 논문과 함께 공개했다.
Anchor Box가 도입되었다.
YOLO를 만든 Josept Redmon이 마지막으로 개발한 버전으로, 2018년 4월에 출시되었다. Darknet-53을 기반으로 만들어졌다.
2020년 4월에 출시되었으며, CSP(Cross Stage Partial connections) 기반의 backbone 연결 등을 도입하여 성능이 향상되었다. v3와 비교하여, AP가 10%, FPS가 12% 증가하였다.
2020년 6월에 논문없이 코드만으로 공개되었다. v4과 마찬가지로 CSP를 이용하지만, Darknet이 아닌 PyTorch로 구현된 점이 다르다.
또한 s(small), m(medium), l(large), x(xlarge)로 나뉜다. s가 가장 빠르지만 정확도가 비교적 낮으며, x가 가장 느리지만 정확도가 더 높다.
더 자세한 버전 비교는 아래 블로그들에 잘 정리되어 있다.
https://velog.io/@now2466/YOLO-Series-%EB%B9%84%EA%B5%90-%EB%B6%84%EC%84%9D
https://leedakyeong.tistory.com/entry/Object-Detection-YOLO-v1v6-%EB%B9%84%EA%B5%902
사진
https://medium.com/zylapp/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852