YOLO(You Only Look Once)는 객체 감지 및 이미지 분할 모델입니다. 2015년 출시된 YOLO 모델은 빠른 속도와 정확성으로 널리 사용되었습니다. YOLOv10은 Ultralytics 파이썬 패키지를 기반으로 구축되어 실시간 객체 감지에 대한 새로운 접근 방식을 도입하였습니다. 이전 YOLO 버전에서 NMS를 제거하고 End-to-End Head를 도입하여 실시간 객체 탐지 기능을 향상시켰습니다.
실시간 물체 감지는 짧은 지연 시간으로 이미지에서 물체의 범주와 위치를 정확하게 예측하는 것을 목표로 합니다. 그러나 기존 YOLO 모델은 NMS에 대한 의존도와 아키텍처의 비효율성이 성능을 저해했습니다. YOLOv10은 NMS 없는 학습을 위한 Consistent Dual Assignments와 전체적인 효율성-정확도 중심의 모델 설계 전략을 도입하여 이러한 문제를 해결했습니다.
YOLOv10 모델의 아키텍쳐입니다.
1. 전체 흐름
- Input: 입력 이미지
- Backbone: 이미지의 특징(feature) 추출
- PAN: 특징(feature) 조합하고 정리하여 Head에 전달
2. Dual Label Assignments
위는 기존 YOLO 모델과 유사하나, YOLOv10 모델의 핵심은 두 개의 Head를 가진 구조입니다.
- One-to-many Head
- 하나의 정답(ground truth) 물체에 여러 예측(prediction) 연결할 수 있음
- 주로 초기 학습을 빠르게 하고, 더 많은 후보를 만들 때 사용
- 결과를 Regression(물체 위치 예측)과 Classification(물체 종류 예측) 뱉음
- One-to-one Head
- 하나의 정답(ground truth) 물체에 하나의 예측(prediction)만 연결
- 최종 결과를 깔끔하게 만드는 역할
- Regression + Classification 구조
쉽게 말하면 초기에는 여러 후보를 많이 뽑고 마지막엔 정확한 것만 골라서 정리합니다.
3. Consistent Match Metric
예측결과와 정답을 매칭할 때 사용하는 계산식은 아래와 같습니다.
$$
m = s \cdot p^{\alpha} \cdot \text{IoU}(\hat{b}, b)^{\beta}
$$
- \( m \) : 최종 매칭 점수
- \( s \) : 모델의 confidence score (이 박스가 물체일 확률)
- \( p \) : classification score (예측한 클래스가 맞을 확률)
- \( \alpha \) : classification 점수에 곱해지는 조정 지수
- \( \hat{b} \) : 예측한 bounding box
- \( b \) : ground-truth bounding box (정답 박스)
- \( \text{IoU}(\hat{b}, b) \) : 예측 박스와 정답 박스의 IoU (겹치는 정도)
- \( \beta \) : IoU에 곱해지는 조정 지수
YOLOv10은 다양한 애플리케이션 요구사항을 충족할 수 있도록 다양한 모델 스케일로 제공됩니다.
- YOLOv10n: 리소스가 극도로 제한된 환경을 위한 나노 버전
- YOLOv10s: 속도와 정확성의 균형을 맞춘 소형 버전
- YOLOv10m: 일반 용도의 중간 버전
- YOLOv10b: 정확도를 높이기 위해 폭을 늘린 균형 잡힌 버전
- YOLOv10l: 계산 리소스가 증가하지만 정확도가 더 높은 대형 버전
- YOLOv10x: 정확도와 성능을 극대화하는 초대형 버전
자세한 내용은 YOLOv10: Real-Time End-to-End Objection Detection 논문이나 Ultralytics YOLO 공식 문서를 참고하시기 바랍니다.
'LLM' 카테고리의 다른 글
YOLOv10 로컬 실행 (0) | 2025.04.06 |
---|---|
허깅페이스 모델 로컬 다운로드 (0) | 2024.11.27 |
RRADistill (1) | 2024.11.26 |
G-Eval Prompt (0) | 2024.02.27 |
HAE-RAE Bench (0) | 2024.02.25 |