YOLOv10 YOLOX: 앵커 프리 및 NMS 객체 탐지의 진화
컴퓨터 비전 분야는 실시간 객체 탐지 아키텍처의 급속한 발전에 힘입어 진화하고 있습니다. 본 기술 비교 분석에서는 효율성과 설계 패러다임의 한계를 뛰어넘은 두 가지 영향력 있는 모델을 심층적으로 탐구합니다: YOLOv10 와 YOLOX입니다. 두 모델의 아키텍처 차이점, 성능 지표, 훈련 방법론을 분석함으로써 개발자와 연구자들은 견고한 비전 시스템 배포를 위한 정보에 기반한 결정을 내릴 수 있습니다.
모델 배경과 기원
이러한 딥러닝 모델의 기원을 이해하는 것은 그 아키텍처 목표와 대상 사용 사례에 관한 귀중한 맥락을 제공한다.
YOLOv10: 진정한 종단간 탐지를 NMS 제거
오랜 지연 시간 병목 현상을 해결하기 위해 개발된 YOLOv10 YOLO 에 네이티브 엔드투엔드 접근 방식을 YOLOv10 .
- 저자: Ao Wang, Hui Chen, Lihao Liu 외
- 조직:조직: 칭화 대학교
- 날짜: 2024년 5월 23일
- ArXiv:2405.14458
- GitHub:THU-MIG/yolov10
- 문서:Ultralytics 10 문서
YOLOX: 연구와 산업 간 격차 해소
YOLOX는 기존 YOLO 앵커 프리 버전으로 등장하여, 경쟁력 있는 성능을 유지하면서도 더 단순한 방법론을 제공하며, 특히 산업 현장에서의 적용을 용이하게 하는 데 주안점을 두고 있습니다.
- 작성자: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun
- 조직조직: Megvii
- 날짜: 2021년 7월 18일
- ArXiv:2107.08430
- GitHub:Megvii-BaseDetection/YOLOX
- 문서:YOLOX 공식 문서
건축적 하이라이트와 혁신
두 프레임워크 모두 기존의 앵커 기반 탐지기와는 다르지만, 객체 탐지 파이프라인에서 서로 다른 문제를 해결합니다.
YOLOX 아키텍처
YOLOX는 2021년 당시 생태계에 몇 가지 중요한 업데이트를 가져왔습니다. 그 핵심 기여는 앵커 프리(anchor-free) 탐지기 설계로의 전환이었습니다. 사전 정의된 앵커 박스를 제거함으로써 YOLOX는 다양한 데이터셋에 필요한 설계 매개변수와 경험적 튜닝의 수를 크게 줄였습니다.
또한 YOLOX는 분리형 헤드를 채택하여 분류와 회귀 작업을 분리합니다. 이를 통해 두 목표 간의 충돌이 해결되어 훈련 중 수렴 속도가 크게 가속화되었습니다. 또한 SimOTA를 활용하여 고급 레이블 할당을 수행함으로써 COCO 흔히 발생하는 혼잡한 장면과 가림 현상에 대한 처리 능력을 향상시켰습니다.
앵커 프리 어드밴티지
YOLOX가 개척한 것과 같은 앵커 프리 설계는 모델 튜닝의 복잡성을 크게 낮춥니다. 개발자는 최적의 앵커 박스 크기를 정의하기 위해 맞춤형 데이터셋에 k-평균 클러스터링을 수행할 필요가 없어 소중한 준비 시간을 절약할 수 있습니다.
YOLOv10
YOLOX는 탐지 헤드를 개선했지만, 추론 과정에서 여전히 비최대 억제(NMS)에 의존하여 지연 시간 변동성을 유발합니다. YOLOv10 이 결함을 해결하기 위해 NMS 필요 없는 훈련을 위한 일관된 이중 할당 전략을 도입했습니다. 훈련 중에는 일대다(one-to-many)와 일대일(one-to-one) 레이블 할당을 모두 사용하지만, 추론 시에는 일대다 헤드를 완전히 제거하여 NMS 없이 깨끗한 예측 결과를 출력합니다.
YOLOv10 효율성과 정확도를 종합적으로 고려한 모델 설계를 YOLOv10 합니다. 경량 분류 헤드와 공간-채널 분리 다운샘플링을 통합하여 정확도를 저하시키지 않으면서 매개변수 수와 연산량(FLOPs)을 크게 줄였습니다.
성능 비교
이러한 모델들을 NVIDIA GPU 같은 하드웨어에서 평가해 보면 규모에 따라 뚜렷한 장점이 GPU . 아래는 종합 비교표입니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
위에서 볼 수 있듯이, YOLOv10 매우 뛰어난 확장성을 YOLOv10 . YOLOv10x 변종이 가장 높은 정확도를 달성합니다 (54.4 mAP), 반면 YOLOv10n 이 변형은 가장 빠른 추론을 제공합니다. TensorRT 통합. 반대로, 기존 YOLOX 나노 모델은 제약이 심한 환경에서 가장 작은 전체 설치 공간을 특징으로 합니다.
훈련 방법론 및 자원 요구 사항
생산 환경에 모델을 적용할 때, 훈련 생태계와 자원 요구 사항은 순수한 추론 속도만큼이나 중요하다.
YOLOX는 종종 관리하기 번거로운 오래된 환경 구성에 의존합니다. 또한, 기존 코드베이스는GPU 훈련이나 혼합 정밀도 최적화를 달성하기 위해 더 많은 상용구 코드가 필요합니다.
반면 YOLOv10 현대적인 PyTorch 원활하게 YOLOv10 , 개발자 경험을 진정으로 변화시키는 Ultralytics . Ultralytics 훈련 중 CUDA 사용량이 트랜스포머 기반 아키텍처(예: RT-DETR과 비교해 훈련 중 CUDA 메모리 사용량이 현저히 낮다는 점이 특징입니다.
코드 예시: 간소화된 훈련
통합된 Ultralytics 사용하면 단 몇 줄의 Python 코드로 최첨단 모델을 손쉽게 훈련할 수 있습니다. 이를 통해 C++ 연산자의 수동 컴파일이나 복잡한 구성 파일 작업이 필요하지 않습니다.
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")
이 간단한 구문은 자동 혼합 정밀도, 자동화된 데이터 증강 및 다음과 같은 도구와의 통합을 즉시 제공합니다. Weights & Biases 과 같은 도구와의 통합을 즉시 제공합니다.
사용 사례 및 권장 사항
YOLOv10 YOLOX 중 선택은 특정 프로젝트 요구사항, 배포 제약 조건 및 생태계 선호도에 따라 달라집니다.
10 선택해야 할 때
YOLOv10 다음에 대한 강력한 YOLOv10 :
- NMS 실시간 감지: 비최대 억제(NMS) 없이 종단 간 감지의 이점을 제공하는 애플리케이션으로, 배포 복잡성을 줄입니다.
- 균형 잡힌 속도-정확도 절충점: 다양한 모델 규모에 걸쳐 추론 속도와 탐지 정확도 간의 강력한 균형이 요구되는 프로젝트들.
- 일관된 지연 시간 애플리케이션: 로봇 공학 이나 자율 시스템과 같이 예측 가능한 추론 시간이 중요한 배포 시나리오.
욜록스를 선택해야 할 때
YOLOX는 다음에 권장됩니다:
- 앵커 프리 탐지 연구: 새로운 탐지 헤드나 손실 함수를 실험하기 위한 기준으로 YOLOX의 깔끔한 앵커 프리 아키텍처를 활용한 학술 연구.
- 초경량 에지 디바이스: 마이크로컨트롤러 또는 레거시 모바일 하드웨어에 배포할 때 YOLOX-Nano 변형의 극히 작은 메모리 사용량(0.91M 매개변수)이 핵심적인 요소입니다.
- SimOTA 라벨 할당 연구: 최적 수송 기반 라벨 할당 전략과 훈련 수렴에 미치는 영향을 조사하는 연구 프로젝트들.
Ultralytics YOLO26)를 선택해야 할 때
대부분의 신규 프로젝트에 대해 Ultralytics 성능과 개발자 경험의 최적 조합을 제공합니다:
- NMS 에지 배포: 복잡한 비최대 억제(NMS) 후처리 없이도 일관되고 낮은 지연 시간의 추론이 필요한 애플리케이션.
- CPU 전용 환경: 전용 GPU 없는 장치에서, YOLO26의 최대 43% 빠른 CPU 성능이 결정적인 이점을 제공합니다.
- 소형 물체 탐지: 항공 드론 영상이나 IoT 센서 분석과 같은 까다로운 시나리오에서 ProgLoss와 STAL이 미세한 물체의 정확도를 크게 향상시킵니다.
비전 AI의 미래: YOLO26의 등장
YOLOv10 YOLOX가 주요 이정표임에도 컴퓨터 비전 분야는 끊임없이 진화하고 있습니다. 현재 신규 프로젝트를 시작하는 개발자에게는 Ultralytics 가장 권장되는 선택입니다.
2026년 1월 출시된 Ultralytics YOLOv10 개척한 엔드투엔드 NMS 설계의 기초적 혁신을 기반으로 하여, 더욱 향상된 안정성과 속도를 위해 이를 정교화하였습니다.
YOLO26은 다음과 같은 몇 가지 획기적인 발전을 도입함으로써 두드러집니다:
- 최대 43% 빠른 CPU : 전략적으로 분포 초점 손실(DFL)을 제거함으로써, YOLO26은 GPU 없이도 에지 디바이스에서 훨씬 우수한 성능을 달성합니다.
- MuSGD 최적화기: 대규모 언어모델(LLM) 훈련 안정성에서 영감을 받아 개발된 이 새로운 SGD 뮤온의 하이브리드 기법은 더 빠른 수렴과 매우 안정적인 훈련 실행을 보장합니다.
- ProgLoss + STAL: 이러한 고급 손실 함수는 항공 이미지와 IoT 센서에 있어 핵심 요소인 소형 물체 인식에서 주목할 만한 개선 효과를 보여줍니다.
- 탁월한 다용도성: 객체 탐지 전용인 YOLOX와 달리, YOLO26은 단일 통합 라이브러리 내에서 인스턴스 분할, 자세 추정, 이미지 분류, OBB 탐지를 기본적으로 지원합니다.
Ultralytics 활용
개발자는 생산 환경으로의 가장 간단한 경로를 위해 Ultralytics 활용하여 데이터셋에 주석을 달고, 클라우드에서 YOLO26 모델을 훈련시키며, 별도의 설정 없이 어떤 에지 디바이스에도 배포할 수 있습니다.
실제 응용 분야
적절한 모델 선택은 다양한 산업 분야에서의 실제 적용 성공을 좌우합니다.
고속 영상 분석
스마트 시티 교통 관리와 같은 고밀도 영상 데이터 처리를 위해, YOLOv10 는 NMS(네트워크 미세 조정)가 필요 없는 후처리 덕분에 상당한 이점을 제공합니다. NMS 현상을 제거함으로써 일관된 저지연 성능을 보장하므로 BoT-SORT와 같은 추적 알고리즘과 결합하기에 이상적입니다.
레거시 에지 배포
구형 학술 환경이나 순수 컨볼루션 패러다임에 최적화된 레거시 Android 경우, YOLOX-Tiny와 같은 소형 모델은 구형 PyTorch 유지가 허용되는 타협점인 특수한 사용 사례에서 여전히 활용될 수 있습니다.
모던 에지와 IoT 기기
로봇공학, 드론, 소매 진열대 분석과 같은 차세대 하드웨어 배포에 YOLO26은 최적의 솔루션입니다. CPU 획기적으로 줄이고 소형 물체 탐지 성능이 뛰어나 자율 주행 및 세분화된 재고 관리에 특히 적합합니다.
딥 러닝 툴킷을 확장하기 위한 추가 비교를 위해, 이러한 모델들이 유연한 YOLO11 이나 트랜스포머 기반의 RT-DETR과 비교해 볼 수도 있습니다.