GDG on Campus: SSWU 6th/Winter Blog Challenge

[Winter Blog Challenge] <YOLO는 왜 계속 진화할까?> - YOLOv1 부터 v8까지의 발전 과정 (Chapter Member 성유빈)

gdgoc-sswu 2025. 6. 16. 07:04

안녕하세요 윈터블로그 챌린지 AI파트 성유빈입니다. 오늘은 실시간 객체 탐지(Object Detection) 분야에서 빠르면서도 실용적인 모델로 큰 인기를 끌어온 YOLO(You Only Look Once)의 발전 과정을 살펴볼 것입니다. YOLO의 v1부터 최신 버전까지 발전 과정을 기술적 흐름에 맞춰 정리하고, 각 버전의 핵심 차이점과 기술적 기여를 비교해보려 합니다.

먼저 YOLO란 ?

YOLO는 이미지를 단 한 번만 보고 이미지 안에 어떤 객체가 있는지, 그리고 그 객체가 어디에 있는지를 동시에 예측하는 객체 탐지 모델이에요. 기존의 R-CNN 계열 모델들은 객체 후보 영역을 먼저 뽑고 나서 각각 분류를 했던 반면, YOLO는 전체 이미지를 한 번에 처리하니까 속도가 정말 빠르다는 게 가장 큰 장점이에요.

YOLO의 발전 과정 한눈에 보기

YOLOv1은 2016년에 처음 등장했어요. 이 버전은 단일 CNN 구조로 이미지를 한 번만 보고 탐지한다는 개념 자체가 신선했어요. 물론 정확도는 다소 낮았지만, 실시간 탐지가 가능하다는 점에서 큰 주목을 받았습니다.

이후 2017년에 나온 YOLOv2는 ‘YOLO9000’이라는 이름으로도 불렸고, Anchor box와 Batch Normalization을 도입해서 정확도를 한층 높여갔습니다. 여기에 더 많은 클래스를 탐지할 수 있는 기능까지 더해졌습니다.

2018년에는 YOLOv3가 등장했습니다. 이 버전에서는 Darknet-53이라는 강력한 백본 네트워크가 도입되었고, 다양한 크기의 객체를 잘 탐지할 수 있도록 여러 스케일의 feature map에서 예측을 수행하게 되었어요.

YOLOv4는 2020년에 발표되었고, 이전보다 훨씬 다양한 기법들이 적용되었습니다. 예를 들어 CSPNet이라는 네트워크 구조를 도입했고, Mish 활성화 함수도 사용합니다. 그 외에도 데이터 증강 기법과 학습 최적화 기법들이 많이 포함되어 있어, 당시에 가장 뛰어난 성능(SOTA)을 보여주었답니다.

같은 해에 등장한 YOLOv5는 재미있게도 공식 논문 없이 바로 PyTorch 기반 코드로 공개되었어요. 이 덕분에 실용성과 접근성이 높아졌고, 다양한 크기의 모델(Small, Medium, Large 등)도 제공돼서 여러 환경에 맞게 사용할 수 있었어요. 지금도 많이 사용되고 있는 버전입니다.

그다음 YOLOv6와 YOLOv7은 2022년에 나왔는데요, 특히 YOLOv7은 정확도와 속도 모두에서 최적의 균형을 이룬다고 평가받고 있어요. E-ELAN이라는 새로운 구조를 사용해서 효율적으로 학습하고 추론할 수 있게 만들었어요.

가장 최신 버전인 YOLOv8은 2023년에 등장했는데요, PyTorch로 완전히 새롭게 구현되었고, 객체 탐지뿐만 아니라 이미지 분할(Segmentation)이나 분류(Classification) 같은 다양한 태스크도 함께 처리할 수 있도록 진화했어요. 게다가 설정 파일 없이 간단한 코드로 실행할 수 있어서 사용자 경험도 좋아졌습니다.

기술적으로 어떤 점들이 좋아졌을까요?

YOLO는 버전이 올라갈수록 정확도와 속도 모두 향상되었고, 다양한 기술들이 조금씩 더해졌어요.

예를 들어, YOLOv2에서는 Anchor box와 Batch Normalization이 추가되었고, YOLOv3에서는 Residual 구조와 다중 스케일 예측이 가능해졌죠. YOLOv4부터는 데이터 증강 기법, 새로운 활성화 함수(Mish), 그리고 다양한 학습 최적화 요소들이 추가되었어요.

YOLOv5 이후에는 PyTorch 기반으로 개발되면서 실용성이 강화되었고, 경량화와 속도 최적화에도 집중했어요. 특히 YOLOv8은 설정 파일 없이 사용 가능한 구조라 초보자들도 쉽게 다룰 수 있답니다.

간단한 성능 비교도 해볼까요?

버전마다 성능은 조금씩 차이가 있는데요, 일반적으로 YOLOv3부터는 꽤 안정적인 성능을 보여주었고, YOLOv4는 당시 기준으로 가장 높은 정확도를 기록했어요. YOLOv5, v6, v7은 속도와 정확도 사이의 균형이 아주 좋고, YOLOv8은 다양한 기능을 지원하면서도 속도 면에서도 우수한 편입니다.

물론 실제 성능은 사용하는 데이터셋, 하드웨어 환경 등에 따라 달라질 수 있어요. 그래서 벤치마크 수치는 참고용으로만 보시는 게 좋아요.

먼저 YOLOv3는 mAP(정확도 지표) 기준으로 57.9를 기록했지만, 속도는 초당 약 30프레임(FPS) 정도로 비교적 느린 편이었어요. YOLOv4는 정확도가 크게 향상된 65.7까지 올라갔고, 속도도 50FPS로 개선되었죠.

그 뒤를 이은 YOLOv5s는 mAP이 58.8로 v3보다는 높고 v4보다는 낮지만, FPS는 140으로 크게 향상되어 실시간 처리에 매우 적합한 모델로 평가받았어요.

YOLOv7은 정확도는 56.8로 살짝 낮아졌지만, FPS는 무려 160으로 높아져 속도 면에서 가장 뛰어난 모델 중 하나로 알려져 있어요.

마지막으로 YOLOv8s는 mAP이 53.9로 가장 낮지만, FPS는 약 180으로 현재까지 나온 모델 중에서 가장 빠른 속도를 보여주고 있어요.

결국 상황에 따라 어떤 모델이 ‘최고’라고 말하긴 어렵고, 정확도와 속도 사이의 균형이 중요한 사용 환경에 맞춰 선택하는 것이 가장 좋습니다.

예를 들어, 실시간 감시카메라처럼 빠른 속도가 중요한 경우엔 YOLOv8이나 v7이 좋고, 정확도가 더 중요한 경우엔 YOLOv4나 v5가 유리하다고 볼 수 있어요.

출처 : https://encord.com/blog/yolo-object-detection-guide/

마무리하며

지금까지 YOLO 모델이 어떻게 발전해 왔는지를 살펴보았는데요, 단순히 빠르기만 했던 초기 버전부터, 정확도와 속도의 균형을 맞춘 최근 버전까지 정말 많은 변화가 있었죠. 모델마다 장단점이 뚜렷하기 때문에, 상황에 따라 어떤 버전을 선택하느냐가 중요하다는 점도 알 수 있었어요.

YOLO는 앞으로도 계속해서 진화할 가능성이 높고, 객체 탐지 분야뿐 아니라 분할(Segmentation), 분류(Classification)까지 확장되는 추세예요.

다음 글에서는 YOLOv8을 직접 실습해보며, 실제로 이미지에서 어떻게 탐지가 이루어지는지 함께 경험해보려고 해요.

💬 흥미롭게 읽으셨다면, 다음 편도 기대해 주세요! 감사합니다.