Обмен технологиями

YOLOv10 обучает собственный набор данных (обнаружение дорожных знаков)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Предисловие

Связанное введение

  • YOLOv10 был создан исследователями из Университета Цинхуа на основе пакета Ultralytics Python. Он представил новый метод обнаружения целей в реальном времени и устранил недостатки постобработки и архитектуры модели в предыдущих версиях YOLO. Устраняя немаксимальное подавление (NMS) и оптимизируя различные компоненты модели, YOLOv10 достигает высочайшей производительности, одновременно значительно сокращая вычислительные затраты. Обширные эксперименты демонстрируют превосходную точность и компромисс между задержкой в ​​различных масштабах модели.
  • [1] Адрес исходного кода YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Бумажный адрес YOLOv10:https://arxiv.org/abs/2405.14458
    Вставьте сюда описание изображения
  • Обзор
    Целью обнаружения объектов в реальном времени является точное предсказание категории и местоположения объектов на изображениях с низкой задержкой. Серия YOLO оказалась в авангарде этого исследования благодаря своему балансу между производительностью и эффективностью. Однако зависимость от NMS и неэффективность архитектуры препятствуют оптимальной производительности. YOLOv10 решает эти проблемы, вводя последовательную двойную задачу для обучения без NMS и общую стратегию проектирования моделей, ориентированную на эффективность и точность.
  • Архитектура
    Архитектура YOLOv10 опирается на сильные стороны предыдущих моделей YOLO, но при этом содержит несколько ключевых инноваций. Архитектура модели состоит из следующих компонентов:
    • Магистраль: Магистраль в YOLOv10 отвечает за извлечение функций с использованием расширенной версии CSPNet (межэтапная частичная сеть) для улучшения градиентного потока и уменьшения избыточности вычислений.
    • Шея: Шея предназначена для объединения черт разных масштабов и передачи их голове. Он включает в себя уровень PAN (сеть агрегирования путей) для эффективного многомасштабного объединения функций.
    • Глава «Один-ко-многим»: генерирует несколько прогнозов для каждого объекта во время процесса обучения, предоставляя богатые контрольные сигналы и повышая точность обучения.
    • Голова «один к одному»: генерирует лучший прогноз для каждого объекта во время вывода, чтобы исключить необходимость в NMS, тем самым уменьшая задержку и повышая эффективность.
  • Ключевая особенность
    • Обучение без NMS: используйте последовательное двойное распределение, чтобы исключить необходимость в NMS и сократить задержку вывода.
    • Целостный дизайн модели: каждый компонент полностью оптимизирован с точки зрения эффективности и точности, включая легкую классификационную головку, понижающую дискретизацию с развязкой по пространственным каналам и конструкцию блока направляющих рангов.
    • Расширенные возможности модели: сочетает в себе модули свертки с большим ядром и модули частичного самообслуживания для повышения производительности без значительных вычислительных затрат.
  • Варианты моделей: YOLOv10 поставляется в различных моделях для удовлетворения различных потребностей приложений:
    • YOLOv10-N: версия Nano для сред с крайне ограниченными ресурсами.
    • YOLOv10-S: Маленькая версия сочетает в себе скорость и точность.
    • YOLOv10-M: Средняя версия для общего использования (подходит для самых разных целей и применений).
    • YOLOv10-B: сбалансированная версия с увеличенной шириной для более высокой точности.
    • YOLOv10-L: Большая версия для более высокой точности за счет увеличения вычислительных ресурсов.
    • YOLOv10-X: сверхбольшая версия для максимальной точности и производительности.
      Вставьте сюда описание изображения

Предварительные условия

лабораторная среда

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Среда установки

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快
  • 1
  • 2
  • 3

Вставьте сюда описание изображения

Вставьте сюда описание изображения

адрес проекта

Линукс

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Окна

пожалуйста, приходитеhttps://github.com/THU-MIG/yolov10.gitЗагрузите zip-пакет исходного кода с веб-сайта.

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5

Используйте YOLOv10, чтобы обучить свой собственный набор данных обнаружению дорожных знаков.

Подготовьте данные

Набор данных, используемый в этой статье, бесплатен.ссылка для скачивания:https://download.csdn.net/download/FriendshipTang/88045378

Вставьте сюда описание изображения

проводить обучение

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0
  • 1

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

делать предсказания

yolo predict model=runsdetecttrain4weightsbest.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images
  • 1

Вставьте сюда описание изображения

Вставьте сюда описание изображения
Вставьте сюда описание изображения

аутентификация

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runsdetecttrain4weightsbest.pt batch=4 imgsz=640 device=0
  • 1

Вставьте сюда описание изображения

Рекомендации

[1] Адрес исходного кода YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Бумажный адрес YOLOv10:https://arxiv.org/abs/2405.14458