
합성곱 신경망을 기반으로 한 객체 감지 프레임워크
R-CNN과 같은 이전 영역 제반 기술은 단일 이미지에 수천 개의 영역으로 분할하여 분석하였기 때문에였기 때문에 속도가 느렸다.
하지만 YOLO는 "You Only Look Once"라는 이름처럼 이미지 전체를 단 한 번만 본다.
즉, 객체 감지를 위해 이미지 전체를 한 번의 순전파(Forward Pass)만 수행한다.
YOLO는 하나의 통합된 모델을 사용하기 때문에 속도가 매우 빠르며, 실시간 객체 탐지와 같은 작업이 가능하다.
Task의 복잡성을 고려해서 버전을 선택한다.
Task의 복잡성이란?
'컴퓨터 입장에서 분류 작업이 얼마나 어려운지'를 말한다.
- 복잡도가 낮은 일
- 보는 방향에 따른 형태 변화가 적고, 움직이지 않는 사물
- 병이나 컵, 과일 등이 해당된다.
- 복잡도가 높은 일
- 형태 변화가 크고 움직이거나 흐르는 사물
- 사람이나 동물, 흐르는 액체 등이 해당된다.
복잡성이 높은 일이라면 최신 버전을 선택해도 좋을 것이다.
하지만 우리 팀은 '위스키 병 분류'라는 복잡도가 낮은 일을 하기 때문에 YOLOv5를 선택했다.
최신 버전이 아니지만 충분한 성능이었고, 학습 자료가 많아 프로젝트 기한에 맞춰 빠르게 공부할 수 있을 것이라 판단했기 때문이다.
YOLOv5 깃허브에서 YOLOv5를 다운받을 수 있다.
YOLOv5 버전 내에도 모델의 종류가 나뉜다.
| 모델 크기 | 추론 시간 | mAP | 적합한 작업 | |
|---|---|---|---|---|
| Small | 14MB | 2.2ms | 36.8mAP | 실시간 탐지 |
| Medium | 41MB | 2.9ms | 44.5mAP | 속도와 성능의 균형 |
| Large | 90MB | 3.8ms | 48.1mAP | 높은 성능 |
| XLarge | 168MB | 6.0ms | 50.1mAP | 정확도가 중요한 분야 (의료 등) |
Small에서 XLarge로 갈수록 정확도는 높아지지만 속도가 느려지고 모델 용량이 커진다.
추론 시간은 NVIDIA Tesla V100 GPU에서 측정된 값이라고 한다.
결과적으로 우리 팀은
YOLOv5m모델을 선택했다. L,X와 정확도 차이가 크지 않았는데 용량은 훨씬 작았기 때문이다. 또 서버에 모델을 여러 개 올려야 했기 때문에 작은 용량이 훨씬 유리했다.