본문 바로가기
농대 대학원생의 코딩

You Only Look Once(yolo)의 시작; YOLO V1

by thinkapple 2025. 1. 8.

최근 박사과정을 시작하면서 사과나무의 착과수를 예측하는 인공지능에 대해 조사하라는 교수님의 명을 받았다.

 

한번만 봐도 된다! 라는 말과 같이 YOLO는 객체를 검출하는 알고리즘을 말해요

 

YOLO는 Joseph Redmon에 의해 2016년 처음 세상에 나타났어요. YOLO가 개발되기 전에는 객체를 찾고 인식하는 과정을 두 단계로 나눠서 했는데, YOLO는 이 모든 걸 한 번에 처리했거든요.

YOLO는 입력 이미지를 446x446 크기로 받아서 처리하는데, 특이한 점은 이미지를 7x7 그리드로 나누어서 각 영역마다 객체를 찾아내는 방식을 사용했어요. 7x7 그리드로 나눈다는건 이미지를 49개의 영역으로 나누어 각 영역에 따라 객체를 검출한다는걸 말한다고 하더라구요!
하지만 하나의 이미지를 49개 영역으로 나눈다는건, 그것보다 작은 객체를 검출하는데 어려움이 있다는 말이죠. 49개 영역이라는건 전체 이미지의 5% 미만의 작은 객체는 검출이 어려워 한계점이 명확했죠!

이 사진은 얼마전에 다축재배 농가에 방문해서 직접 촬영한 사진이에요! 보시면 그리드의 크기가 사과보다 훨씬 큰걸 볼 수 있어요! 이러면 YOLO 알고리즘이 제대로 인식을 못하겠죠?

하지만 YOLO V1의 확실한 강점도 분명히 존재했어요. 바로 45fps의 빠른 처리속도랍니다!

 

 

이건 실제 YOLO V1을 이용하여 강아지와 자전거, 자동차에 대한 객체를 검출한 결과에요 (pjreddie.com/darknet/yolo). 보시면 그리드별로 어떤 객체인지 인식한 후, 결과값을 도출한걸 확인할 수 있어요.

 





놀랍게도 YOLO V1은 빠른 처리속도와 픽셀이 많은 이미지를 검출할 수 있기 때문에 자동차의 자율주행 시스템의 기반이 되었다고 합니다.

저도 YOLO를 배우기 시작하면서 이 알고리즘이 어떻게 시작되었는지 차근차근 공부하다 보니까 생각보다 흥미로운점이 많더라구요. 하지만 어딜 찾아봐도 너무 어려운 설명 뿐이라 제가 이해한걸 복기해보고자 이 글을 올리게 되었어요.

코딩과 전혀 상관없는 삶을 살던 사람의 YOLO V1 포스팅이였습니다. 만약 제가 알고있는 것 중에 잘못된게 있다면 언제든 피드백 부탁드려요!