Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv10: 실시간 엔드투엔드 객체 탐지#

YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

YOLOv10 NMS 없는 학습을 위한 일관된 이중 할당



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this section개요#

실시간 객체 탐지는 낮은 지연 시간(latency)으로 이미지 내의 객체 카테고리와 위치를 정확하게 예측하는 것을 목표로 합니다. YOLO 시리즈는 성능과 효율성 간의 균형 덕분에 이 분야 연구의 선두에 있었습니다. 그러나 NMS에 대한 의존성과 아키텍처의 비효율성은 최적의 성능을 저해했습니다. YOLOv10은 NMS 없는 학습을 위해 일관된 이중 할당(consistent dual assignments)을 도입하고, 효율성과 정확도를 고려한 종합적인 모델 설계 전략을 통해 이러한 문제를 해결합니다.

Link to this section아키텍처#

YOLOv10의 아키텍처는 이전 YOLO 모델들의 강점을 바탕으로 여러 핵심 혁신을 도입했습니다. 모델 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다:

  1. Backbone: 특징 추출(feature extraction)을 담당하며, YOLOv10의 백본은 그래디언트 흐름을 개선하고 계산 중복을 줄이기 위해 향상된 버전의 CSPNet(Cross Stage Partial Network)을 사용합니다.
  2. Neck: 서로 다른 스케일의 특징을 집계하여 헤드로 전달하도록 설계되었습니다. 효과적인 다중 스케일 특징 융합을 위해 PAN(Path Aggregation Network) 레이어를 포함합니다.
  3. One-to-Many Head: 학습 중 객체당 여러 개의 예측을 생성하여 풍부한 지도 신호를 제공하고 학습 정확도를 향상시킵니다.
  4. One-to-One Head: 추론 중 객체당 단 하나의 최적 예측을 생성하여 NMS의 필요성을 제거함으로써 지연 시간을 줄이고 효율성을 개선합니다.

Link to this section주요 특징#

  1. NMS-Free Training: 일관된 이중 할당을 활용하여 NMS의 필요성을 없애고 추론 지연 시간(inference latency)을 줄입니다.
  2. Holistic Model Design: 경량 분류 헤드, 공간-채널 분리 다운샘플링, 순위 기반 블록 설계를 포함하여 효율성과 정확도 관점에서 다양한 구성 요소를 종합적으로 최적화합니다.
  3. Enhanced Model Capabilities: 대형 커널 컨볼루션(convolutions)과 부분적 셀프 어텐션 모듈을 통합하여 큰 계산 비용 없이 성능을 향상시킵니다.

Link to this section모델 버전#

YOLOv10은 다양한 애플리케이션 요구에 맞게 여러 모델 규모로 제공됩니다:

  • YOLOv10n: 리소스가 극도로 제한된 환경을 위한 Nano 버전.
  • YOLOv10s: 속도와 정확도의 균형을 맞춘 Small 버전.
  • YOLOv10m: 범용적인 사용을 위한 Medium 버전.
  • YOLOv10b: 더 높은 정확도를 위해 너비를 늘린 균형 잡힌 버전.
  • YOLOv10l: 계산 리소스 증가를 감수하고 더 높은 정확도를 제공하는 Large 버전.
  • YOLOv10x: 최대 정확도와 성능을 위한 Extra-large 버전.

Link to this section성능#

YOLOv10은 정확도와 효율성 측면에서 이전 YOLO 버전 및 기타 최신 모델들을 능가합니다. 예를 들어, YOLOv10s는 COCO 데이터셋에서 비슷한 AP를 유지하면서 RT-DETR-R18보다 1.8배 빠르며, YOLOv10b는 동일한 성능을 보이면서 YOLOv9-C보다 46% 더 낮은 지연 시간과 25% 더 적은 파라미터를 가집니다.

성능

지연 시간은 T4 GPU에서 TensorRT FP16으로 측정되었습니다.

모델입력 크기APvalFLOPs (G)지연 시간 (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052.592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

Link to this section방법론#

Link to this sectionNMS 없는 학습을 위한 일관된 이중 할당#

YOLOv10은 학습 중에 One-to-Many 및 One-to-One 전략을 결합한 이중 라벨 할당을 사용하여 풍부한 지도와 효율적인 엔드투엔드 배포를 보장합니다. 일관된 매칭 메트릭은 두 전략 간의 지도를 정렬하여 추론 중 예측 품질을 향상시킵니다.

Link to this section효율성 및 정확도(Accuracy) 중심의 종합적인 모델 설계#

Link to this section효율성 향상#

  1. Lightweight Classification Head: 깊이별 분리 가능한 컨볼루션(depth-wise separable convolutions)을 사용하여 분류 헤드의 계산 오버헤드를 줄입니다.
  2. Spatial-Channel Decoupled Down sampling: 정보 손실과 계산 비용을 최소화하기 위해 공간 축소와 채널 변조를 분리합니다.
  3. Rank-Guided Block Design: 고유한 단계적 중복성을 기반으로 블록 설계를 조정하여 최적의 파라미터 활용을 보장합니다.

Link to this section정확도 향상#

  1. Large-Kernel Convolution: 특징 추출 능력을 향상시키기 위해 수용 영역(receptive field)을 확장합니다.
  2. Partial Self-Attention (PSA): 최소한의 오버헤드로 전역 표현 학습을 개선하기 위해 셀프 어텐션 모듈을 통합합니다.

Link to this section실험 및 결과#

YOLOv10은 COCO와 같은 표준 벤치마크에서 광범위하게 테스트되어 뛰어난 성능과 효율성을 입증했습니다. 이 모델은 다양한 변형에서 최첨단 결과를 달성하며, 이전 버전 및 다른 현대적인 탐지기들에 비해 지연 시간과 정확도에서 상당한 개선을 보여줍니다.

Link to this section비교#

YOLOv10과 SOTA 객체 탐지기 비교

다른 최첨단 탐지기들과 비교했을 때:

  • YOLOv10s / x는 유사한 정확도로 RT-DETR-R18 / R101보다 1.8배 / 1.3배 빠릅니다
  • YOLOv10b는 동일한 정확도에서 YOLOv9-C보다 파라미터가 25% 적고 지연 시간이 46% 더 낮습니다
  • YOLOv10l / x는 YOLOv8l / x보다 0.3 AP / 0.5 AP 더 높으며 파라미터는 1.8배 / 2.3배 더 적습니다
성능

YOLOv10 변형 모델들과 다른 최첨단 모델들의 상세 비교는 다음과 같습니다:

모델파라미터
(M)
FLOPs
(G)
mAPval
50-95
지연 시간
(ms)
지연 시간-순방향
(ms)
YOLOv6-3.0-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

Params 및 FLOPs 값은 model.fuse() 이후 융합된 모델 기준입니다. 이는 Conv 및 BatchNorm 레이어를 병합하고 보조 일대다(one-to-many) 탐지 헤드를 제거합니다. 사전 학습된 체크포인트는 전체 학습 아키텍처를 유지하므로 더 높은 수치를 나타낼 수 있습니다.

Link to this section사용 예제#

YOLOv10을 사용하여 새로운 이미지를 예측합니다. 모델은 Ultralytics Platform을 통해 클라우드 GPU에서 학습할 수도 있습니다:

예시
from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()

사용자 지정 데이터셋에서 YOLOv10을 학습하려면:

예시
from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this section지원되는 작업 및 모드#

YOLOv10 모델 시리즈는 고성능 Object Detection을 위해 최적화된 다양한 모델을 제공합니다. 이러한 모델들은 각기 다른 계산 요구 사항과 정확도 조건을 충족하며, 광범위한 애플리케이션에서 다재다능하게 활용될 수 있습니다.

모델파일 이름작업추론검증학습내보내기(Export)
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt객체 탐지

Link to this sectionYOLOv10 내보내기#

YOLOv10에 도입된 새로운 작업들로 인해, Ultralytics에서 제공하는 모든 내보내기 형식이 현재 지원되지는 않습니다. 다음 표는 YOLOv10을 위해 Ultralytics를 사용하여 성공적으로 변환된 형식을 나타냅니다. YOLOv10에 추가적인 형식 내보내기 지원을 추가하기 위한 기여 변경 사항을 제공할 수 있다면 자유롭게 풀 리퀘스트를 열어주시기 바랍니다.

내보내기 형식내보내기 지원내보낸 모델 추론참고
TorchScript표준 PyTorch 모델 형식.
ONNX배포를 위해 널리 지원됨.
OpenVINOIntel 하드웨어에 최적화됨.
TensorRTNVIDIA GPU에 최적화됨.
CoreMLApple 기기로 제한됨.
TF SavedModelTensorFlow의 표준 모델 형식.
TF GraphDef레거시 TensorFlow 형식.
LiteRT모바일, 임베디드 및 브라우저(LiteRT.js) 환경에 최적화되었습니다.
TF Edge TPUGoogle의 Edge TPU 기기 전용.
PaddlePaddle중국에서 널리 사용됨; 글로벌 지원은 적음.
NCNNtorch.topk 레이어가 존재하지 않거나 등록되지 않음

Link to this section결론#

YOLOv10은 이전 YOLO 버전들의 단점을 해결하고 혁신적인 설계 전략을 통합함으로써 실시간 객체 탐지 분야에 새로운 표준을 세웠습니다. NMS가 필요 없는 방식은 YOLO 제품군 내에서 엔드 투 엔드(end-to-end) 객체 탐지의 선구적인 역할을 했습니다. 향상된 성능과 NMS 없는 추론을 제공하는 최신 Ultralytics 모델은 YOLO26을 참조하십시오.

Link to this section인용 및 감사의 글#

We would like to acknowledge the YOLOv10 authors from Tsinghua University for their extensive research and significant contributions to the Ultralytics framework:

인용
@inproceedings{wang2024yolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
  booktitle={Advances in Neural Information Processing Systems},
  doi = {10.52202/079017-3429},
  url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
  volume={37},
  pages={107984--108011},
  year={2024}
}

상세한 구현, 아키텍처 혁신, 실험 결과에 대해서는 칭화대학교 팀의 YOLOv10 연구 논문GitHub 리포지토리를 참조하십시오.

Link to this sectionFAQ#

Link to this sectionYOLOv10이란 무엇이며 이전 YOLO 버전들과 어떻게 다른가요?#

칭화대학교 연구진이 개발한 YOLOv10은 실시간 객체 탐지에 몇 가지 핵심적인 혁신을 도입했습니다. 학습 중 일관된 이중 할당(dual assignments)과 최적화된 모델 구성 요소를 채택하여 비최대 억제(NMS) 과정을 제거함으로써 계산 오버헤드를 줄이고 뛰어난 성능을 달성했습니다. 아키텍처 및 주요 기능에 대한 더 자세한 내용은 YOLOv10 개요 섹션을 확인하십시오.

Link to this sectionYOLOv10을 사용하여 추론을 시작하려면 어떻게 해야 하나요?#

간편한 추론을 위해 Ultralytics YOLO Python 라이브러리나 명령 줄 인터페이스(CLI)를 사용할 수 있습니다. 다음은 YOLOv10을 사용하여 새로운 이미지를 예측하는 예시입니다:

예시
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

더 많은 사용 예시는 사용 예시 섹션을 방문하십시오.

Link to this sectionYOLOv10은 어떤 모델 변형을 제공하며, 각각의 사용 사례는 무엇인가요?#

YOLOv10은 다양한 사용 사례를 충족하기 위해 여러 모델 변형을 제공합니다:

  • YOLOv10n: 리소스가 매우 제한된 환경에 적합
  • YOLOv10s: 속도와 정확도의 균형
  • YOLOv10m: 범용 목적
  • YOLOv10b: 폭을 늘려 정확도 향상
  • YOLOv10l: 계산 리소스를 소모하지만 높은 정확도
  • YOLOv10x: 최대의 정확도와 성능

각 변형은 서로 다른 계산 요구 사항과 정확도 조건을 위해 설계되어 다양한 애플리케이션에서 다재다능하게 활용됩니다. 더 자세한 정보는 모델 변형 섹션을 살펴보십시오.

Link to this sectionYOLOv10의 NMS가 필요 없는 접근 방식은 성능을 어떻게 향상시키나요?#

YOLOv10은 학습을 위해 일관된 이중 할당을 채택함으로써 추론 중 비최대 억제(NMS)의 필요성을 제거합니다. 이러한 접근 방식은 추론 지연 시간을 줄이고 예측 효율성을 높입니다. 아키텍처에는 추론을 위한 일대일(one-to-one) 헤드가 포함되어 각 객체에 대해 단 하나의 최적 예측을 보장합니다. 자세한 설명은 NMS가 필요 없는 학습을 위한 일관된 이중 할당 섹션을 참조하십시오.

Link to this sectionYOLOv10 모델의 내보내기 옵션은 어디에서 찾을 수 있나요?#

YOLOv10은 TorchScript, ONNX, OpenVINO, TensorRT를 포함한 여러 내보내기 형식을 지원합니다. 하지만 새로운 작업들로 인해 Ultralytics가 제공하는 모든 형식이 현재 YOLOv10에서 지원되는 것은 아닙니다. 지원되는 형식에 대한 자세한 내용과 내보내기 지침은 YOLOv10 내보내기 섹션을 방문하십시오.

Link to this sectionYOLOv10 모델의 성능 벤치마크는 어떻게 되나요?#

YOLOv10은 정확도와 효율성 면에서 이전 YOLO 버전 및 기타 최신 모델들을 능가합니다. 예를 들어, YOLOv10s는 COCO 데이터셋에서 RT-DETR-R18과 유사한 AP를 보이면서도 1.8배 더 빠릅니다. YOLOv10b는 YOLOv9-C와 동일한 성능을 유지하면서 지연 시간은 46% 줄이고 파라미터는 25% 적습니다. 상세한 벤치마크는 비교 섹션에서 확인할 수 있습니다.

댓글