콘텐츠로 건너뛰기

YOLOv10: 실시간 엔드 투 엔드 객체 감지

칭화대학교 연구진이 개발한 Ultralytics Python 패키지를 기반으로 구축된 YOLOv10은 실시간 객체 감지에 대한 새로운 접근 방식을 도입하여 이전 YOLO 버전에서 발견된 후처리 및 모델 아키텍처의 결함을 해결합니다. YOLOv10은 NMS(Non-Maximum Suppression)를 제거하고 다양한 모델 구성 요소를 최적화함으로써 계산 오버헤드를 크게 줄이면서 최첨단 성능을 달성합니다. 광범위한 실험을 통해 여러 모델 규모에서 뛰어난 정확도-지연 시간 균형을 입증합니다.

NMS-free 학습을 위한 YOLOv10의 일관된 이중 할당



참고: Ultralytics를 사용하여 SKU-110k 데이터 세트에서 YOLOv10을 훈련하는 방법 | 소매 데이터 세트

개요

실시간 객체 감지는 낮은 지연 시간으로 이미지에서 객체 범주와 위치를 정확하게 예측하는 것을 목표로 합니다. YOLO 시리즈는 성능과 효율성 간의 균형으로 인해 이 연구의 최전선에 있었습니다. 그러나 NMS에 대한 의존성과 아키텍처 비효율성은 최적의 성능을 저해했습니다. YOLOv10은 NMS가 필요 없는 학습을 위한 일관된 이중 할당과 전체적인 효율성-정확도 중심 모델 설계 전략을 도입하여 이러한 문제를 해결합니다.

아키텍처

YOLOv10의 아키텍처는 이전 YOLO 모델의 강점을 기반으로 하면서 몇 가지 주요 혁신을 도입했습니다. 모델 아키텍처는 다음 구성 요소로 구성됩니다.

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

주요 기능

  1. NMS-Free 훈련: 일관된 이중 할당을 활용하여 NMS의 필요성을 없애고 추론 지연 시간을 줄입니다.
  2. 총체적 모델 설계: 경량 분류 헤드, 공간-채널 분리 다운 샘플링 및 순위 기반 블록 설계를 포함하여 효율성 및 정확도 관점에서 다양한 구성 요소를 포괄적으로 최적화합니다.
  3. 향상된 모델 기능: 큰 커널 컨볼루션 및 부분적 self-attention 모듈을 통합하여 상당한 계산 비용 없이 성능을 향상시킵니다.

모델 변형

YOLOv10은 다양한 애플리케이션 요구 사항을 충족하기 위해 다양한 모델 규모로 제공됩니다.

  • YOLOv10n: 리소스가 매우 제한된 환경을 위한 Nano 버전입니다.
  • YOLOv10s: 속도와 정확도의 균형을 유지하는 소형 버전입니다.
  • YOLOv10m: 범용으로 사용되는 중간 버전입니다.
  • YOLOv10b: 더 높은 정확도를 위해 폭이 증가된 균형 잡힌 버전입니다.
  • YOLOv10l: 증가된 계산 리소스 비용으로 더 높은 정확도를 제공하는 대형 버전입니다.
  • YOLOv10x: 최대 정확도와 성능을 위한 초대형 버전입니다.

성능

YOLOv10은 정확도와 효율성 면에서 이전 YOLO 버전 및 다른 최첨단 모델보다 뛰어납니다. 예를 들어 YOLOv10s는 COCO 데이터 세트에서 유사한 AP로 RT-DETR-R18보다 1.8배 빠르며, YOLOv10b는 동일한 성능으로 YOLOv9-C보다 지연 시간이 46% 적고 매개변수가 25% 더 적습니다.

성능

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

모델 입력 크기 APval FLOPs (G) 지연 시간 (ms)
YOLOv10n 640 38.5 6.7 1.84
YOLOv10s 640 46.3 21.6 2.49
YOLOv10m 640 51.1 59.1 4.74
YOLOv10b 640 52.5 92.0 5.74
YOLOv10l 640 53.2 120.3 7.28
YOLOv10x 640 54.4 160.4 10.70

방법론

NMS-Free 학습을 위한 일관된 이중 할당

YOLOv10은 풍부한 감독과 효율적인 엔드 투 엔드 배포를 보장하기 위해 훈련 중에 일대다 및 일대일 전략을 결합한 이중 레이블 할당을 사용합니다. 일관된 매칭 지표는 두 전략 간의 감독을 정렬하여 추론 중 예측 품질을 향상시킵니다.

전체 효율성 - 정확도 기반 모델 설계

효율성 향상

  1. 경량 분류 헤드: Depth-wise separable convolution을 사용하여 분류 헤드의 계산 오버헤드를 줄입니다.
  2. 공간-채널 분리 다운샘플링: 공간 축소 및 채널 변조를 분리하여 정보 손실과 계산 비용을 최소화합니다.
  3. 순위 기반 블록 설계: 고유한 스테이지 중복성을 기반으로 블록 설계를 조정하여 최적의 파라미터 활용을 보장합니다.

정확도 향상

  1. 대형 커널 컨볼루션: 특징 추출 능력을 향상시키기 위해 수용 영역을 확대합니다.
  2. 부분적 Self-Attention (PSA): Self-Attention 모듈을 통합하여 최소한의 오버헤드로 글로벌 표현 학습을 향상시킵니다.

실험 및 결과

YOLOv10은 COCO와 같은 표준 벤치마크에서 광범위하게 테스트되었으며 뛰어난 성능과 효율성을 입증했습니다. 이 모델은 다양한 변형에서 최첨단 결과를 달성하여 이전 버전 및 기타 최신 감지기에 비해 지연 시간과 정확도가 크게 향상되었습니다.

비교

SOTA 객체 감지기와의 YOLOv10 비교

다른 최첨단 검출기와 비교:

  • YOLOv10s / x는 비슷한 정확도에서 RT-DETR-R18 / R101보다 1.8× / 1.3× 더 빠릅니다.
  • YOLOv10b는 동일한 정확도에서 YOLOv9-C보다 파라미터 수가 25% 적고 지연 시간이 46% 더 낮습니다.
  • YOLOv10l / x는 YOLOv8l / x보다 파라미터 수가 1.8× / 2.3× 적으면서 0.3 AP / 0.5 AP 더 뛰어납니다.

성능

다음은 YOLOv10 변형과 다른 최첨단 모델의 자세한 비교입니다.

모델 파라미터
(M)
FLOPs
(G)
mAPval
50-95
지연 시간
(ms)
지연 시간-forward
(ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
Gold-YOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8n 3.2 8.7 37.3 6.16 1.77
YOLOv10n 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Gold-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8s 11.2 28.6 44.9 7.07 2.33
YOLOv10s 7.2 21.6 46.8 2.49 2.39
RT-DETR-R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Gold-YOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8m 25.9 78.9 50.6 9.50 5.09
YOLOv10m 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
Gold-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8l 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10l 24.4 120.3 53.4 7.28 7.21
YOLOv8x 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10x 29.5 160.4 54.4 10.70 10.60

사용 예시

YOLOv10으로 새로운 이미지를 예측하려면:

예시

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

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

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

커스텀 데이터셋으로 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)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

지원되는 작업 및 모드

YOLOv10 모델 시리즈는 고성능 객체 감지에 최적화된 다양한 모델을 제공합니다. 이러한 모델은 다양한 컴퓨팅 요구 사항과 정확도 요구 사항을 충족하므로 광범위한 애플리케이션에 다용도로 사용할 수 있습니다.

모델 파일 이름 태스크 추론 검증 훈련 내보내기
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt 객체 감지

YOLOv10 내보내기

YOLOv10에 도입된 새로운 작동 방식으로 인해 Ultralytics에서 제공하는 모든 내보내기 형식이 현재 지원되지는 않습니다. 다음 표는 Ultralytics를 사용하여 YOLOv10에 대해 성공적으로 변환된 형식을 간략하게 보여줍니다. YOLOv10에 대한 추가 형식의 내보내기 지원을 추가하기 위해 기여 변경 사항을 제공할 수 있다면 언제든지 풀 요청을 열어 주십시오.

내보내기 형식 내보내기 지원 내보낸 모델 추론 참고 사항
TorchScript 표준 PyTorch 모델 형식입니다.
ONNX 배포에 널리 지원됩니다.
OpenVINO Intel 하드웨어에 최적화되었습니다.
TensorRT NVIDIA GPU에 최적화되었습니다.
CoreML Apple 장치로 제한됩니다.
TF SavedModel TensorFlow의 표준 모델 형식입니다.
TF GraphDef 레거시 TensorFlow 형식입니다.
TF Lite 모바일 및 임베디드에 최적화되었습니다.
TF Edge TPU Google의 Edge TPU 장치에만 해당됩니다.
TF.js 브라우저 사용을 위한 JavaScript 환경입니다.
PaddlePaddle 중국에서 인기가 높으며, 글로벌 지원은 적습니다.
NCNN 레이어 torch.topk 존재하지 않거나 등록되지 않았습니다.

결론

YOLOv10은 이전 YOLO 버전의 단점을 해결하고 혁신적인 설계 전략을 통합하여 실시간 객체 감지의 새로운 표준을 제시합니다. 낮은 계산 비용으로 높은 정확도를 제공하는 능력은 제조, 소매자율 주행 차량을 포함한 광범위한 실제 애플리케이션에 이상적인 선택입니다.

인용 및 감사의 말씀

칭화대학교의 YOLOv10 개발자분들께 Ultralytics 프레임워크에 대한 광범위한 연구와 중요한 기여에 감사를 표합니다:

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

자세한 구현, 아키텍처 혁신 및 실험 결과는 칭화대학교 팀의 YOLOv10 연구 논문GitHub 저장소를 참조하십시오.

FAQ

YOLOv10은 무엇이며 이전 YOLO 버전과 어떻게 다른가요?

칭화대학교 연구진이 개발한 YOLOv10은 실시간 객체 감지를 위한 몇 가지 주요 혁신 기술을 도입했습니다. 학습 중에 일관된 이중 할당을 사용하고 계산 오버헤드를 줄여 뛰어난 성능을 제공하도록 모델 구성 요소를 최적화하여 NMS(Non-Maximum Suppression)의 필요성을 없앴습니다. 아키텍처 및 주요 기능에 대한 자세한 내용은 YOLOv10 개요 섹션을 확인하십시오.

YOLOv10을 사용하여 추론을 실행하려면 어떻게 시작해야 하나요?

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

예시

from ultralytics import YOLO

# Load the pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

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

YOLOv10은 어떤 모델 변형을 제공하며, 그 사용 사례는 무엇인가요?

YOLOv10은 다양한 사용 사례에 맞게 여러 모델 변형을 제공합니다.

  • YOLOv10n: 리소스가 매우 제한된 환경에 적합합니다.
  • YOLOv10s: 속도와 정확도의 균형을 유지합니다.
  • YOLOv10m: 범용으로 사용됩니다.
  • YOLOv10b: 폭이 증가하여 정확도가 더 높습니다.
  • YOLOv10l: 계산 리소스가 많이 소모되는 고정밀도 버전입니다.
  • YOLOv10x: 최대 정확도 및 성능

각 변형은 다양한 계산 요구 사항과 정확도 요구 사항을 충족하도록 설계되어 다양한 애플리케이션에 다용도로 사용할 수 있습니다. 자세한 내용은 모델 변형 섹션을 살펴보십시오.

YOLOv10의 NMS-free 방식은 어떻게 성능을 향상시키나요?

YOLOv10은 학습을 위해 일관된 이중 할당을 사용하여 추론 중에 NMS(Non-Maximum Suppression)의 필요성을 없앱니다. 이 접근 방식은 추론 대기 시간을 줄이고 예측 효율성을 향상시킵니다. 또한 아키텍처에는 추론을 위한 일대일 헤드가 포함되어 각 객체가 단일 최상의 예측을 얻도록 보장합니다. 자세한 설명은 NMS-Free 학습을 위한 일관된 이중 할당 섹션을 참조하십시오.

YOLOv10 모델의 내보내기 옵션은 어디에서 찾을 수 있나요?

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

YOLOv10 모델의 성능 벤치마크는 무엇인가요?

YOLOv10은 정확도와 효율성 모두에서 이전 YOLO 버전 및 기타 최첨단 모델보다 뛰어난 성능을 보입니다. 예를 들어 YOLOv10s는 COCO 데이터 세트에서 유사한 AP로 RT-DETR-R18보다 1.8배 빠릅니다. YOLOv10b는 동일한 성능으로 YOLOv9-C보다 대기 시간이 46% 더 짧고 파라미터가 25% 더 적습니다. 자세한 벤치마크는 비교 섹션에서 확인할 수 있습니다.



📅 1년 전에 생성됨 ✏️ 5개월 전에 업데이트됨

댓글