YOLO란?
YOLO(You Only Look Once)는 이름 그대로 이미지를 단 한 번만 보고 객체의 위치와 클래스를 동시에 예측하는 Object Detection 알고리즘입니다. 2016년 Joseph Redmon이 발표한 이후 꾸준히 발전하여, 현재는 Ultralytics가 관리하는 YOLO11이 속도와 정확도 모두에서 최고 수준을 기록하고 있습니다. 드론으로 철도를 점검하는 시나리오에서 YOLO는 실시간 처리 속도와 합리적인 정확도로 가장 널리 사용되는 선택지입니다.
| 항목 | 내용 |
|---|---|
| 정의 | 이미지를 격자로 나눠 각 셀에서 박스와 클래스를 단일 패스로 예측하는 One-Stage 탐지기 |
| 원리 | CNN 백본으로 특징 추출 → 넥(Neck)으로 다중 스케일 융합 → 헤드에서 박스·클래스 동시 예측 |
| 최신 버전 | YOLO11 (2024), YOLO12 (2025), YOLO-World, YOLOv10 등 |
| 장점 | 빠른 속도, 간단한 파이프라인, 활발한 커뮤니티, 다양한 태스크 지원 |
| 적합 분야 | 드론 실시간 점검, 산업 결함 탐지, 교통 모니터링, 스포츠 분석 |
문서 탐색
YOLO 역사
| 버전 | 연도 | 저자/기관 | 핵심 혁신 | 프레임워크 |
|---|---|---|---|---|
| YOLOv1 | 2016 | J. Redmon (UW) | 실시간 단일 패스 탐지, 격자 셀 예측 | Darknet |
| YOLOv2 | 2017 | J. Redmon | 앵커 박스 도입, Batch Norm, 9000 클래스 | Darknet |
| YOLOv3 | 2018 | J. Redmon | Darknet-53, 3개 스케일 FPN, 소형 객체 개선 | Darknet |
| YOLOv4 | 2020 | A. Bochkovskiy | CSPNet, PANet, Mosaic 증강, 최적 하이퍼파라미터 | Darknet |
| YOLOv5 | 2020 | Ultralytics | PyTorch 완전 이식, 사용 편의성 혁신, n/s/m/l/x 변형 | PyTorch |
| YOLOv6 | 2022 | Meituan | 공업용 최적화, RepVGG 백본, 에지 배포 특화 | PyTorch |
| YOLOv7 | 2022 | WongKinYiu | E-ELAN, 모델 재파라미터화, 최고 속도-정확도 비율 | PyTorch |
| YOLOv8 | 2023 | Ultralytics | Anchor-free, C2f, 분할·포즈·분류 통합 | PyTorch |
| YOLOv9 | 2024 | WongKinYiu | PGI, GELAN, 정보 병목 해결 | PyTorch |
| YOLOv10 | 2024 | THU | NMS-Free, 이중 헤드, 완전 end-to-end | PyTorch |
| YOLO11 | 2024 | Ultralytics | C3k2 블록, 더 적은 파라미터로 mAP 향상 | PyTorch |
| YOLO12 | 2025 | 연구 커뮤니티 | Attention 중심 아키텍처, R-ELAN | PyTorch |
| YOLO26 | 2026 | 커뮤니티 | 멀티모달, Open-Vocabulary, NMS-Free 통합 | PyTorch |
YOLOv8 vs YOLO11 상세 비교
벤치마크 (COCO val2017, nano 모델 기준)
| 지표 | YOLOv8n | YOLO11n | 개선율 |
|---|---|---|---|
| mAP@0.5:0.95 | 37.3% | 39.5% | +2.2%p |
| CPU 추론 (ms/이미지) | 80.4 | 56.1 | 30% 빠름 |
| TensorRT 추론 (ms/이미지) | 0.99 | 1.5 | - |
| 파라미터 수 | 3.2M | 2.6M | 19% 감소 |
| FLOPs | 8.7G | 6.5G | 25% 감소 |
벤치마크 (COCO val2017, large 모델 기준)
| 지표 | YOLOv8l | YOLO11l | 개선율 |
|---|---|---|---|
| mAP@0.5:0.95 | 52.9% | 53.4% | +0.5%p |
| CPU 추론 (ms/이미지) | 375.2 | 238.6 | 36% 빠름 |
| 파라미터 수 | 43.7M | 25.3M | 42% 감소 |
| FLOPs | 165.2G | 86.9G | 47% 감소 |
아키텍처 주요 차이
| 구성 요소 | YOLOv8 | YOLO11 |
|---|---|---|
| 백본 블록 | C2f (Cross Stage Partial with 2 convolutions) | C3k2 (더 얕은 깊이, 넓은 채널) |
| 넥 구조 | PAN-FPN | PAN-FPN + C2PSA (Attention) |
| 헤드 | Decoupled Head (Anchor-free) | Decoupled Head (Anchor-free, 동일) |
| 활성화 함수 | SiLU | SiLU |
| Batch Norm | 표준 BN | 표준 BN |
선택 가이드
| 상황 | 권장 모델 | 이유 |
|---|---|---|
| 기존 YOLOv8 모델 유지보수 | YOLOv8 | 마이그레이션 비용 없음 |
| 신규 프로젝트 시작 | YOLO11 | 더 좋은 성능, 적은 파라미터 |
| 엣지 디바이스 배포 (Jetson) | YOLO11n/s | 파라미터 적고 빠름 |
| 최고 정확도 필요 | YOLO11x | mAP 최고치 |
| 커뮤니티 자료 필요 | YOLOv8 | 더 많은 튜토리얼, 예제 존재 |
YOLO의 장단점
| 구분 | 내용 |
|---|---|
| 장점 | 빠른 추론 속도 (실시간 처리 가능) |
| 장점 | 단일 라이브러리(ultralytics)로 학습~배포 전 과정 커버 |
| 장점 | Detection, Segmentation, Pose, OBB, Classification 다중 태스크 지원 |
| 장점 | TensorRT, ONNX, CoreML 등 다양한 형식으로 내보내기 |
| 장점 | 방대한 커뮤니티, 튜토리얼, 사전학습 가중치 |
| 단점 | 매우 작은 객체 (< 16px) 탐지 성능 한계 |
| 단점 | 밀집 장면에서 겹치는 객체 탐지 어려움 |
| 단점 | DETR 계열 대비 복잡한 장면에서 정확도 낮을 수 있음 |
| 단점 | 버전마다 API가 다소 달라 마이그레이션 작업 필요 |
드론 이미지에 적합한 이유
YOLO는 드론으로 촬영한 철도 이미지 분석에 특히 잘 맞는 특성을 갖고 있습니다.
실시간 처리 가능: YOLO11n은 TensorRT 적용 시 Jetson Orin에서 30~60 FPS 이상을 달성합니다. 드론이 비행하면서 즉시 탐지 결과를 생성할 수 있습니다.
멀티스케일 특징 추출: FPN(Feature Pyramid Network)과 PANet 구조로 고고도에서 촬영한 작은 객체와 저고도의 큰 객체를 동시에 처리합니다.
경량 모델 변형: nano(n) 모델은 2.6M 파라미터로 드론 탑재 임베디드 GPU에서 동작 가능합니다.
OBB (Oriented Bounding Box) 지원: YOLO11은 회전된 바운딩 박스를 지원하여, 다양한 각도로 촬영된 레일이나 침목을 정확하게 감쌀 수 있습니다.
드론 특화 변형: SlimNeck-YOLO, YOLO-Drone 등 드론 이미지에 최적화된 파생 모델이 활발히 개발되고 있습니다.
모델 크기 변형 (n/s/m/l/x)
Ultralytics YOLO는 동일한 아키텍처를 크기를 달리하여 5가지 변형으로 제공합니다. 사용 환경과 정확도 요구사항에 맞게 선택합니다.
| 변형 | 약어 의미 | 파라미터 수 | mAP@0.5:0.95 | 추천 사용처 |
|---|---|---|---|---|
| nano | n | 2.6M | 39.5% | 드론 탑재 MCU, 초경량 에지 |
| small | s | 9.4M | 47.0% | Jetson Nano, 경량 에지 |
| medium | m | 20.1M | 51.5% | Jetson Xavier, 균형형 |
| large | l | 25.3M | 53.4% | 서버, 고정밀 요구 |
| extra-large | x | 56.9M | 54.7% | 클라우드 서버, 최고 정확도 |
드론 철도 점검의 경우, 지상 서버에서 처리한다면 YOLO11m/l, 드론 탑재 처리라면 YOLO11n/s를 먼저 시도해 보는 것을 권장합니다.
라이선스
Ultralytics YOLO는 이중 라이선스 체계를 사용한다. 상업적 활용을 계획한다면 반드시 확인해야 한다.
| 라이선스 | 대상 | 핵심 조건 | 비용 |
|---|---|---|---|
| AGPL-3.0 | 학생, 연구자, 오픈소스 프로젝트 | YOLO를 사용한 프로젝트 전체를 동일 라이선스(AGPL-3.0)로 소스 공개 해야 함 | 무료 |
| Enterprise | 기업, 상업 제품 | 소스 공개 의무 없음, 독점 소프트웨어에 포함 가능 | 유료 (조직별 맞춤 견적) |
| Academic | 대학, 연구기관 | 비상업적 연구 전용, IP 보유 가능 | 별도 문의 |
AGPL-3.0 주의사항
- YOLO 모델을 학습에 사용하면 학습 코드와 모델 모두 AGPL-3.0 적용 대상
- 사내 내부 사용이라도 소스 공개 의무가 발생할 수 있음
- 수정된 코드뿐 아니라 YOLO를 포함하는 더 큰 프로젝트 전체가 공개 대상
- API/SaaS로 서비스하는 경우에도 AGPL-3.0 조건 적용
Enterprise 라이선스
- 공식 가격표는 없으며 조직 규모와 용도에 따라 맞춤 견적 제공
- 커뮤니티 사례 기준 개인 개발자 약 $5,000/년 수준 (비공식)
- 프로젝트 단위 또는 조직 전체 단위로 범위 설정 가능
- YOLOv8, YOLO11, YOLO26 등 전체 YOLO 포트폴리오 포함
- 견적 요청: Ultralytics Plans
대안: Roboflow 경유 상업 라이선스
Roboflow 유료 플랜 사용 시 Roboflow 플랫폼에서 학습한 YOLO 모델에 대해 Ultralytics와의 서브라이선스 계약이 적용되어 별도 Enterprise 라이선스 없이 상업 사용이 가능하다.
철도 프로젝트 등 상업적 배포를 계획하는 경우, 프로젝트 초기에 라이선스 방향을 결정하는 것이 중요하다. 연구/PoC 단계에서는 AGPL-3.0으로 시작하고, 상용화 단계에서 Enterprise 전환을 검토하는 것이 일반적이다.