YOLOv10 OLOX: 기술 비교
빠르게 진화하는 컴퓨터 비전 환경에서 성능, 효율성, 배포 용이성 간의 균형을 맞추려면 올바른 객체 감지 모델을 선택하는 것이 중요합니다. 이 기술 비교에서는 다음과 같은 차이점을 살펴봅니다. YOLOv10의 최신 실시간 엔드투엔드 디텍터와 Megvii의 앵커 프리 모델로 높은 평가를 받고 있는 YOLOx의 차이점을 살펴봅니다.
2021년에 앵커가 필요 없는 탐지 메커니즘에 관한 중요한 혁신을 도입한 YOLOX가 2024년의 최첨단 기술을 대표하는 YOLOv10 NMS 추론과 Ultralytics 에코시스템과의 긴밀한 통합을 제공합니다.
YOLOv10: 실시간 엔드투엔드 탐지
YOLOv10 후처리 효율성과 모델 아키텍처 간의 격차를 해소하는 것을 목표로 합니다. NMS 학습을 위한 일관된 이중 할당 전략을 도입함으로써 추론 중 비최대 억제(NMS) 가 필요하지 않아 지연 시간을 크게 단축합니다.
기술 세부 사항:
- 저자: Ao Wang, Hui Chen, Lihao Liu 외
- 조직:조직: 칭화 대학교
- 날짜: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
아키텍처 및 강점
YOLOv10 이전 YOLO 세대의 강점을 기반으로 구축되었지만 아키텍처를 최적화하여 효율성과 정확성을 모두 향상시켰습니다. 경량 분류 헤드와 공간 채널 디커플링 다운샘플링을 포함하는 전체론적 모델 설계를 채택하고 있습니다.
- NMS 추론: NMS 제거는 실시간 추론 애플리케이션의 판도를 바꾸어 엣지 디바이스에서 예측 가능한 지연 시간을 보장하고 CPU 오버헤드를 낮춥니다.
- 효율성-정확성 균형: YOLOv10 이전 버전 및 경쟁사 대비 적은 매개변수 수와 FLOP으로 최첨단 성능을 달성합니다.
- Ultralytics 통합: 의 전폭적인 지원을 받고 있습니다.
ultralytics패키지는 사용자가 통합된 Python API와 같은 형식으로 원활하게 내보낼 수 있습니다. TensorRT 및 OpenVINO와 광범위한 문서를 참조하세요.
약점
- 최신 아키텍처: 2024년 출시 예정인 타사 튜토리얼의 에코시스템은 빠르게 성장하고 있지만 아직 기존 레거시 모델의 규모에 미치지 못할 수도 있습니다.
욜록스: 닻을 내리지 않는 선구자
2021년에 출시된 YOLOX는 앵커가 없는 메커니즘과 분리형 헤드로 전환하여 앵커 기반 접근 방식인 YOLOv4와 YOLOv5 탈피했습니다. 동적 라벨 할당 전략에서 중요한 진전을 이룬 SimOTA(Simplified Optimal Transport Assignment)를 라벨 할당에 활용합니다.
기술 세부 사항:
- 작성자: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun
- 조직조직: Megvii
- 날짜: 2021-07-18
- Arxiv:arXiv:2107.08430
- GitHub:Megvii-BaseDetection/YOLOX
아키텍처 및 강점
앵커가 없는 깔끔한 디자인으로 연구 커뮤니티에서 YOLOX는 여전히 강력한 기준이 되고 있습니다.
- 앵커 프리 메커니즘: 사전 정의된 앵커 박스를 제거함으로써 YOLOX는 설계 복잡성과 조정이 필요한 하이퍼파라미터의 수를 줄입니다.
- 분리형 헤드: 분류 및 로컬라이제이션 작업을 분리하여 기존 결합형 헤드 설계에 비해 수렴 속도와 정확도가 향상되었습니다.
- 강력한 기준선: 탐지 헤드 및 할당 전략에 대한 학술 연구의 신뢰할 수 있는 벤치마크 역할을 합니다.
약점
- 추론 속도: 당시에는 효율적이었지만, YOLOX는 일반적으로 YOLOv10 같은 최신 모델보다 뒤쳐져 있습니다. YOLO11 과 같은 최신 모델보다 추론 속도 면에서 뒤쳐지며, 특히 NMS 시간을 고려할 때 더욱 그렇습니다.
- 파편화된 워크플로: Ultralytics 모델과 달리 YOLOX는 자체적인 코드베이스와 환경 설정이 필요한 경우가 많으며, 최신 프레임워크에서 볼 수 있는 교육, 검증 및 배포를 위한 통합 인터페이스가 부족합니다.
- 리소스 집약도: 최신의 효율적인 아키텍처와 비교하여 비슷한 정확도 수준에서 더 높은 FLOP과 매개변수 수를 제공합니다.
성능 분석
아래 비교는 이 두 모델을 구분하는 3년 동안 효율성과 정확성에서 상당한 진전이 있었음을 강조합니다. 메트릭은 COCO 데이터 세트의 모델 크기(매개변수), 계산 비용(FLOP), 정확도mAP)에 중점을 두고 있습니다.
| 모델 | 크기 (픽셀) | 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 더 적은 파라미터로 더 높은 mAP 일관되게 제공합니다. 예를 들어, YOLOv10은 7.2백만 개의 파라미터만으로 46. mAP 달성하는 반면, YOLOX는 9.0백만 개의 파라미터로 40. mAP 달성합니다. 이는 YOLOv10 뛰어난 아키텍처 효율성을 보여줍니다.
- 컴퓨팅 효율성: YOLOv10 모델의 FLOPs 수는 훨씬 더 낮습니다. YOLOv10x는 1 ,640억 FLOPs로 작동하지만, 정확도(54.4 대 51.1 mAP)는 여전히 YOLOXx의 2,819억 FLOPs에 비해 월등히 뛰어납니다.
- 추론 속도: NMS 제거하고 아키텍처를 최적화함으로써 YOLOv10 더 낮은 지연 시간을 달성할 수 있습니다. T4 TensorRT 벤치마크에 따르면 YOLOv10x는 12.2ms로 실행되어 16.1ms의 YOLOXx보다 훨씬 빠릅니다.
이상적인 사용 사례
YOLOv10: 현대의 표준
YOLOv10 대부분의 신규 개발 프로젝트에서 선호되는 선택입니다:
- 엣지 AI 배포: 메모리 사용 공간이 적고 효율성이 높기 때문에 라즈베리 파이나 NVIDIA 젯슨과 같은 디바이스에 적합합니다.
- 실시간 애플리케이션: 자율 주행, 로봇 공학, 비디오 분석과 같이 즉각적인 피드백이 필요한 시스템은 NMS 짧은 지연 시간의 이점을 누릴 수 있습니다.
- 빠른 개발: Ultralytics 에코시스템을 통해 빠르게 데이터 세트 관리를 통해 교육 및 배포할 수 있습니다.
ultralytics패키지를 참조하십시오.
YOLOX: 레거시 및 연구
YOLOX는 여전히 관련성이 있습니다:
- 학술 연구: 앵커가 없는 검출기의 진화 또는 SimOTA와 같은 특정 라벨 할당 전략을 연구하는 연구자들은 종종 YOLOX를 기준으로 삼습니다.
- 레거시 시스템: 이미 YOLOX에 최적화된 기존 프로덕션 파이프라인은 업그레이드 비용이 성능 향상보다 큰 경우 계속 사용할 수 있습니다.
Ultralytics 함께 YOLOv10 사용
YOLOv10 가장 중요한 장점 중 하나는 사용 편의성입니다. 사전 학습된 가중치 로딩부터 사용자 지정 데이터에 대한 학습까지, 전체 워크플로우를 간소화하는 Ultralytics Python API입니다.
다음은 예측을 실행하고 YOLOv10 모델을 학습시키는 방법의 예입니다:
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
교육 효율성
Ultralytics YOLO 모델은 구형 아키텍처나 트랜스포머 기반 모델보다 더 적은 CUDA 메모리를 필요로 하는 트레이닝 효율성으로 잘 알려져 있습니다. 따라서 표준 소비자용 GPU에서 더 많은 배치를 훈련할 수 있습니다.
결론
욜록스는 앵커 없는 탐지를 대중화하는 데 중추적인 역할을 했습니다, YOLOv10 은 컴퓨터 비전 기술의 다음 단계 도약을 의미합니다. NMS 필요 NMS 아키텍처, 뛰어난 정확도 대 계산 비율, 강력한 Ultralytics 에코시스템과의 원활한 통합을 갖춘 YOLOv10 개발자와 연구자 모두에게 매력적인 패키지를 제공합니다.
최첨단 오브젝트 감지 기능을 배포하려는 개발자에게 YOLOv10 필요한 속도와 정밀도를 제공합니다. 포즈 추정이나 방향성 바운딩 박스와 같은 더 광범위한 기능에 관심이 있는 개발자는 다용도로 사용할 수 있는 YOLO11 또는 널리 채택된 YOLOv8.