Compartir tecnología

YOLOv10 entrena su propio conjunto de datos (detección de señales de tráfico)

2024-07-12

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

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Prefacio

Introducción relacionada

  • YOLOv10 fue construido por investigadores de la Universidad de Tsinghua basándose en el paquete Ultralytics Python. Introdujo un nuevo método de detección de objetivos en tiempo real y resolvió las deficiencias del posprocesamiento y la arquitectura del modelo en versiones anteriores de YOLO. Al eliminar la supresión no máxima (NMS) y optimizar varios componentes del modelo, YOLOv10 logra un rendimiento de vanguardia al tiempo que reduce significativamente la sobrecarga computacional. Amplios experimentos demuestran su precisión superior y su compensación de latencia en múltiples escalas de modelos.
  • [1] Dirección del código fuente de YOLOv10:https://github.com/THU-MIG/yolov10.git
  • [2] Dirección en papel YOLOv10:https://arxiv.org/abs/2405.14458
    Insertar descripción de la imagen aquí
  • Descripción general
    El propósito de la detección de objetos en tiempo real es predecir con precisión la categoría y ubicación de los objetos en imágenes con baja latencia. La serie YOLO ha estado a la vanguardia de esta investigación debido a su equilibrio entre rendimiento y eficiencia. Sin embargo, la dependencia de NMS y las ineficiencias arquitectónicas obstaculizan el rendimiento óptimo. YOLOv10 aborda estos problemas mediante la introducción de una doble tarea consistente para la capacitación sin nms y una estrategia general de diseño de modelos impulsada por la eficiencia y la precisión.
  • Arquitectura
    La arquitectura de YOLOv10 se basa en las fortalezas de los modelos YOLO anteriores al tiempo que introduce varias innovaciones clave. La arquitectura del modelo consta de los siguientes componentes:
    • Backbone: el backbone de YOLOv10 es responsable de la extracción de características, utilizando una versión mejorada de CSPNet (Cross Stage Partial Network) para mejorar el flujo de gradiente y reducir la redundancia computacional.
    • Cuello: El cuello está diseñado para reunir rasgos de diferentes escalas y transmitirlos a la cabeza. Incluye una capa PAN (Red de agregación de rutas) para una fusión eficaz de entidades de múltiples escalas.
    • Cabezal uno a muchos: genera múltiples predicciones para cada objeto durante el proceso de entrenamiento, proporcionando señales de supervisión enriquecidas y mejorando la precisión del aprendizaje.
    • Cabezal uno a uno: genera la mejor predicción para cada objeto durante la inferencia para eliminar la necesidad de NMS, reduciendo así la latencia y aumentando la eficiencia.
  • Características clave
    • Capacitación sin NMS: aproveche la asignación dual consistente para eliminar la necesidad de NMS y reducir la latencia de inferencia.
    • Diseño de modelo holístico: cada componente está completamente optimizado desde la perspectiva de la eficiencia y la precisión, incluido el cabezal de clasificación liviano, la reducción de resolución desacoplada del canal espacial y el diseño del bloque guía de rango.
    • Capacidades de modelo mejoradas: combina convolución de núcleo grande y módulos de autoatención parcial para mejorar el rendimiento sin un costo computacional significativo.
  • Variantes de modelos: YOLOv10 viene en una variedad de modelos para satisfacer diferentes necesidades de aplicación:
    • YOLOv10-N: versión nano para entornos con recursos extremadamente limitados.
    • YOLOv10-S: La versión pequeña equilibra velocidad y precisión.
    • YOLOv10-M: Versión mediana para uso general (adecuada para muchos propósitos o usos diferentes).
    • YOLOv10-B: Versión equilibrada con mayor ancho para una mayor precisión.
    • YOLOv10-L: Versión grande para una mayor precisión a costa de mayores recursos computacionales.
    • YOLOv10-X: Versión extragrande para máxima precisión y rendimiento.
      Insertar descripción de la imagen aquí

Requisitos previos

ambiente de laboratorio

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

Entorno de instalación

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

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

dirección del proyecto

Linux

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

Ventanas

por favor vengahttps://github.com/THU-MIG/yolov10.gitDescargue el paquete zip del código fuente del sitio web.

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

Utilice YOLOv10 para entrenar su propio conjunto de datos para la detección de señales de tráfico

preparar datos

El conjunto de datos utilizado en este artículo es gratuito.enlace de descarga:https://download.csdn.net/download/FriendshipTang/88045378

Insertar descripción de la imagen aquí

entrenamiento de la conducta

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

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

hacer predicciones

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

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

autenticando

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

Insertar descripción de la imagen aquí

referencias

[1] Dirección del código fuente de YOLOv10:https://github.com/THU-MIG/yolov10.git
[2] Dirección en papel YOLOv10:https://arxiv.org/abs/2405.14458