YOLOX 대 YOLOv10: 앵커 프리 및 NMS 프리 실시간 객체 탐지 비교
실시간 컴퓨터 비전 모델의 진화는 중요한 아키텍처 도약과 함께 이루어졌습니다. 이 여정에서 두 가지 중대한 이정표는 YOLOX와 YOLOv10입니다. 2021년에 출시된 YOLOX는 매우 효과적인 앵커 프리 디자인을 도입함으로써 학술 연구와 산업적 응용 사이의 간극을 성공적으로 메웠습니다. 3년 후, YOLOv10은 후처리 과정에서 NMS(Non-Maximum Suppression)의 필요성을 제거하여 효율성과 속도의 한계를 뛰어넘으며 이 분야에 혁명을 일으켰습니다.
이 종합적인 기술 비교에서는 두 모델의 아키텍처, 성능 지표 및 이상적인 사용 사례를 살펴보고, 다음 객체 탐지 프로젝트에 적합한 도구를 선택하는 데 도움이 될 인사이트를 제공합니다.
모델 기원 및 메타데이터
이 모델들의 기원을 이해하면 아키텍처 선택과 의도된 배포 환경에 대한 맥락을 파악할 수 있습니다.
YOLOX 상세 정보 저자: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li 및 Jian Sun 조직: Megvii 날짜: 2021-07-18 Arxiv: https://arxiv.org/abs/2107.08430 GitHub: https://github.com/Megvii-BaseDetection/YOLOX 문서: https://yolox.readthedocs.io/en/latest/
YOLOv10 상세 정보 저자: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han 및 Guiguang Ding 조직: Tsinghua University 날짜: 2024-05-23 Arxiv: https://arxiv.org/abs/2405.14458 GitHub: https://github.com/THU-MIG/yolov10 문서: https://docs.ultralytics.com/models/yolov10/
아키텍처 혁신
YOLOX와 YOLOv10의 핵심적인 차이점은 바운딩 박스 예측과 후처리를 처리하는 방식에 있습니다.
YOLOX: 앵커 프리 디자인의 선구자
YOLOX는 YOLO 제품군을 앵커 프리 아키텍처로 전환하며 큰 반향을 일으켰습니다. 미리 정의된 앵커 박스에 의존하는 대신 객체의 중심을 예측함으로써 YOLOX는 사용자 정의 데이터셋에 필요한 설계 매개변수와 경험적 튜닝의 수를 획기적으로 줄였습니다. 또한 분류 및 회귀 작업을 별도의 경로로 분리하는 디커플드 헤드(decoupled head)를 도입했습니다. 이러한 접근 방식은 객체가 무엇인지 식별하는 것과 어디에 있는지 결정하는 것 사이의 충돌을 해결하여 수렴 속도와 정밀도를 눈에 띄게 향상시켰습니다.
YOLOv10: NMS 프리 혁명
YOLOX는 탐지 헤드를 단순화했지만 여전히 중복된 바운딩 박스 예측을 필터링하기 위해 NMS에 의존했습니다. YOLOv10은 이러한 근본적인 병목 현상을 해결했습니다. 학습 중에 일관된 이중 할당을 사용하여 YOLOv10은 네이티브 엔드 투 엔드 탐지를 달성합니다. 학습 중에는 풍부한 감독 신호를 보장하기 위해 일대다(one-to-many) 헤드를 사용하고, 추론 중에는 최종 예측을 직접 출력하기 위해 일대일(one-to-one) 헤드를 사용합니다. 이러한 전체적인 효율성 및 정확도 중심의 디자인은 NMS를 완전히 제거하여 임베디드 칩에서의 추론 지연 시간을 크게 줄였습니다.
NMS(Non-Maximum Suppression)는 종종 NPU(Neural Processing Units)에서 가속하기 복잡한 작업입니다. 이를 제거함으로써 YOLOv10은 전체 모델 그래프가 특수 하드웨어에서 원활하게 실행되도록 하여 OpenVINO 및 TensorRT와 같은 최적화 프레임워크와의 호환성을 획기적으로 개선했습니다.
성능 지표 및 비교
프로덕션을 위한 모델을 평가할 때는 정확도와 계산 오버헤드의 균형을 맞추는 것이 중요합니다. 아래 표는 다양한 크기의 YOLOX와 YOLOv10 간의 절충안을 보여줍니다.
| 모델 | 크기 (픽셀) | mAPval 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
데이터 분석
이 지표들은 YOLOv10의 세대적 도약을 명확히 보여줍니다. 예를 들어, YOLOv10-S는 mean Average Precision이 46.7%로 YOLOX-m의 46.9%와 비슷하지만, 매개변수 수는 3분의 1 미만(7.2M 대 25.3M)이며 FLOPs도 훨씬 적습니다. 또한 최상위 YOLOv10-X 모델은 mAP를 54.4%까지 끌어올려, 까다로운 정확도 작업을 수행하면서도 기존 YOLOX-x 아키텍처보다 더 빠른 성능을 발휘합니다.
Ultralytics 생태계의 이점
YOLOX는 여전히 강력한 오픈 소스 연구 구현체로 남아 있지만, YOLOv10을 채택하면 Ultralytics가 제공하는 잘 관리된 생태계에 즉시 액세스할 수 있습니다. Ultralytics 지원 모델을 선택하면 간단한 API와 광범위한 문서로 특징지어지는 간소화된 사용자 경험이 보장됩니다.
개발자들은 프레임워크의 메모리 요구 사항으로부터 큰 이점을 얻습니다. Ultralytics 모델을 학습할 때는 일반적으로 RT-DETR과 같이 무거운 Transformer 기반 대안보다 훨씬 적은 CUDA 메모리를 사용합니다. 이러한 효율적인 학습 공간 덕분에 소비자용 하드웨어에서 더 큰 배치 크기를 사용할 수 있어 데이터 수집부터 모델 배포까지의 시간을 단축할 수 있습니다. 또한 이 프레임워크는 비교할 수 없는 범용성을 제공하여 사용자가 최소한의 코드 변경으로 객체 탐지, 인스턴스 세그멘테이션 및 자세 추정 간을 원활하게 전환할 수 있습니다.
학습 및 추론 예시
통합 API를 사용하면 아이디어 검증 속도가 매우 빨라집니다. 다음 코드 조각은 PyTorch 백엔드를 사용하여 YOLOv10 모델을 얼마나 쉽게 학습하고 배포할 수 있는지 보여줍니다.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", half=True)내장된 내보내기 루틴을 활용하면 모델을 TensorRT나 ONNX와 같은 형식으로 변환할 때 단 한 줄의 코드만 필요하므로 복잡한 컴파일 과정을 완전히 우회할 수 있습니다.
이상적인 사용 사례 및 배포 시나리오
이러한 아키텍처 중 무엇을 선택할지는 주로 하드웨어 제약 조건과 특정 도메인 요구 사항에 따라 달라집니다.
실시간 영상 분석
자율 주행이나 실시간 교통 모니터링과 같이 초저지연이 요구되는 애플리케이션의 경우 YOLOv10이 더 뛰어난 선택입니다. 엔드 투 엔드 NMS 프리 디자인은 확정적인 실행 시간을 보장하며, 이는 변동적인 후처리 지연 시간을 허용할 수 없는 안전 시스템에 매우 중요합니다. 이 모델들은 NVIDIA Jetson 시리즈와 같은 장치에서 쉽게 높은 프레임 속도를 달성합니다.
학술적 기준 및 에지 마이크로컨트롤러
YOLOX는 연구자들이 레이블 할당 전략을 실험하기 위해 깔끔하고 디커플드 된 헤드 기준선을 원하는 학술적 환경에서 여전히 가치가 있습니다. 또한 매우 작은 YOLOX-Nano(100만 개 미만의 매개변수)는 하드웨어가 표준 컨볼루션 작업을 지원하는 경우 메모리가 KB 단위로 측정되는 고도로 제한된 에지 마이크로컨트롤러에도 탑재될 수 있습니다.
궁극적인 표준: Ultralytics YOLO26
YOLOv10은 NMS 제거를 통해 큰 도약을 이루었지만, 컴퓨터 비전 분야는 빠르게 발전합니다. 오늘날 가장 뛰어난 성능을 구현하려는 개발자에게는 YOLO26 탐색을 강력히 권장합니다.
비전 AI의 최신 표준으로 출시된 YOLO26은 이전 버전들의 기초적인 아이디어를 가져와 기능을 대폭 강화했습니다. 이 모델은 탐지, 세그멘테이션, 자세 및 방향성 바운딩 박스를 기본적으로 지원하며 최고의 성능 균형을 제공합니다.
현대적인 컴퓨터 비전 파이프라인에서 YOLO26이 권장되는 이유는 다음과 같습니다:
- 엔드 투 엔드 NMS 프리 디자인: YOLOv10의 혁신을 바탕으로 한 YOLO26은 기본적으로 엔드 투 엔드 방식을 채택하여 후처리 병목 현상 없이 더 빠르고 확정적인 추론 시간을 보장합니다.
- 최대 43% 더 빠른 CPU 추론: 에지 컴퓨팅에 최적화되어 있어 모바일 프로세서 및 전용 GPU가 없는 장치에서도 탁월한 성능을 보장합니다.
- MuSGD 옵티마이저: 대규모 언어 모델 학습(특히 Moonshot AI의 Kimi K2)에서 영감을 받은 YOLO26은 매우 안정적인 학습과 빠른 수렴을 위해 SGD와 Muon의 하이브리드 방식을 활용합니다.
- ProgLoss + STAL: 이러한 고급 손실 함수는 항공 영상 및 드론 내비게이션과 같이 까다로운 도메인에서 매우 중요한 소형 객체 인식 기능을 눈에 띄게 개선합니다.
- DFL 제거: DFL(Distribution Focal Loss)을 제거함으로써 YOLO26은 에지 및 저전력 장치로의 원활한 내보내기를 위해 모델 그래프를 단순화합니다.
- 작업별 개선: 자세 추정을 위한 RLE(Residual Log-Likelihood Estimation)를 사용하든 OBB를 위한 특수 각도 손실을 사용하든, YOLO26은 모든 주요 비전 작업에 맞게 미세 조정되었습니다.
가장 효율적인 학습 및 배포 도구로 파이프라인을 업그레이드할 준비가 된 개발자라면 Ultralytics Platform으로 전환하고 YOLO26을 활용하여 인공 지능의 최첨단 기술을 유지하십시오. 이전의 안정적인 아키텍처에 관심이 있는 사용자라면 광범위한 커뮤니티 지원과 검증된 견고함을 갖춘 YOLO11 또는 YOLOv8을 검토할 수도 있습니다.