Ir al contenido

Entrenar datos personalizados

馃摎 Esta gu铆a explica c贸mo entrenar tu propio conjunto de datos personalizado con YOLOv5 馃殌.

Antes de empezar

Clonar repo e instalar requirements.txt en a Python>=3.8.0 incluyendo PyTorch>=1.8. Los modelos y conjuntos de datos se descargan autom谩ticamente de la 煤ltimaversi贸n de YOLOv5 .

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

Entrenar con datos personalizados

Ultralytics aprendizaje activo

La creaci贸n de un modelo personalizado para detectar objetos es un proceso iterativo que consiste en recopilar y organizar im谩genes, etiquetar los objetos de inter茅s, entrenar un modelo, desplegarlo en la naturaleza para realizar predicciones y, a continuaci贸n, utilizar ese modelo desplegado para recopilar ejemplos de casos extremos para repetirlos y mejorarlos.

Licencias

Ultralytics ofrece dos opciones de licencia:

Para m谩s detalles, consulte Ultralytics Licensing.

YOLOv5 Los modelos deben entrenarse con datos etiquetados para aprender las clases de objetos de esos datos. Existen dos opciones para crear el conjunto de datos antes de empezar el entrenamiento:

Opci贸n 1: Crear un Roboflow Conjunto de datos

1.1 Recopilar im谩genes

Su modelo aprender谩 con el ejemplo. El entrenamiento con im谩genes similares a las que ver谩 en la naturaleza es de suma importancia. Lo ideal es recopilar una amplia variedad de im谩genes con la misma configuraci贸n (c谩mara, 谩ngulo, iluminaci贸n, etc.) con la que se desplegar谩 finalmente el proyecto.

Si esto no es posible, puede partir de un conjunto de datos p煤blico para entrenar su modelo inicial y, a continuaci贸n, muestrear im谩genes de la naturaleza durante la inferencia para mejorar su conjunto de datos y modelo de forma iterativa.

1.2 Crear etiquetas

Una vez que haya recopilado las im谩genes, tendr谩 que anotar los objetos de inter茅s para crear una verdad b谩sica a partir de la cual su modelo pueda aprender.

YOLOv5 precisiones

Roboflow Annotate es una sencilla herramienta basada en web para gestionar y etiquetar las im谩genes con tu equipo y exportarlas en el formato de anotaci贸n deYOLOv5.

1.3 Preparar el conjunto de datos para YOLOv5

Tanto si etiqueta sus im谩genes con Roboflow como si no, puede utilizarlo para convertir su conjunto de datos al formato YOLO , crear un archivo de configuraci贸n YAML YOLOv5 y alojarlo para importarlo en su script de entrenamiento.

Cree una cuenta gratuita en Roboflow y cargue su conjunto de datos en Public etiquete las im谩genes no anotadas y, a continuaci贸n, genere y exporte una versi贸n de su conjunto de datos en YOLOv5 Pytorch formato.

Nota: YOLOv5 realiza el aumento en l铆nea durante el entrenamiento, por lo que no recomendamos aplicar ning煤n paso de aumento en Roboflow para el entrenamiento con YOLOv5. Pero recomendamos aplicar los siguientes pasos de preprocesamiento:

Pasos de preprocesamiento recomendados

  • Orientaci贸n autom谩tica: para eliminar la orientaci贸n EXIF de las im谩genes.
  • Redimensionar (Estirar) - al tama帽o cuadrado de entrada de su modelo (640x640 es el valor por defecto de YOLOv5 ).

La generaci贸n de una versi贸n le proporcionar谩 una instant谩nea de su conjunto de datos, por lo que siempre podr谩 volver atr谩s y comparar sus futuras ejecuciones de entrenamiento del modelo con 茅l, incluso si a帽ade m谩s im谩genes o cambia su configuraci贸n m谩s adelante.

Exportaci贸n en formato YOLOv5

Exportar en YOLOv5 Pytorch y, a continuaci贸n, copie el fragmento en su script de entrenamiento o cuaderno para descargar su conjunto de datos.

Roboflow fragmento de descarga del conjunto de datos

Opci贸n 2: Crear un conjunto de datos manual

2.1 Crear dataset.yaml

COCO128 es un ejemplo de peque帽o conjunto de datos tutorial compuesto por las 128 primeras im谩genes de COCO train2017. Estas mismas 128 im谩genes se utilizan tanto para el entrenamiento como para la validaci贸n con el fin de verificar que nuestro proceso de entrenamiento es capaz de sobreajuste. data/coco128.yamlque se muestra a continuaci贸n, es el archivo de configuraci贸n del conjunto de datos que define 1) el directorio ra铆z del conjunto de datos path y rutas relativas a train / val / test directorios de im谩genes (o *.txt con rutas de im谩genes) y 2) una clase names diccionario:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

2.2 Crear etiquetas

Despu茅s de utilizar una herramienta de anotaci贸n para etiquetar tus im谩genes, exporta tus etiquetas a YOLO formatocon una *.txt por imagen (si no hay objetos en la imagen, no hay *.txt ). En *.txt son las especificaciones del archivo:

  • Una fila por objeto
  • Cada fila es class x_center y_center width height formato.
  • Las coordenadas de la casilla deben estar en xywh normalizado (de 0 a 1). Si sus casillas est谩n en p铆xeles, divida x_center y width por ancho de imagen, y y_center y height por la altura de la imagen.
  • Los n煤meros de clase tienen 铆ndice cero (empiezan por 0).

Roboflow anotaciones

El archivo de etiquetas correspondiente a la imagen anterior contiene 2 personas (clase 0) y un empate (clase 27):

Roboflow preprocesamiento del conjunto de datos

2.3 Organizar directorios

Organice sus im谩genes y etiquetas de tren y val seg煤n el ejemplo siguiente. YOLOv5 asume /coco128 est谩 dentro de un /datasets directorio junto a el /yolov5 directorio. YOLOv5 localiza autom谩ticamente las etiquetas de cada imagen sustituyendo la 煤ltima instancia de /images/ en cada ruta de imagen con /labels/. Por ejemplo:

../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

YOLOv5 estructura del conjunto de datos

3. Seleccione un modelo

Selecciona un modelo preentrenado para empezar a entrenar. Aqu铆 seleccionamos YOLOv5s, el segundo modelo m谩s peque帽o y r谩pido disponible. Consulta nuestra tabla L脡EME para ver una comparaci贸n completa de todos los modelos.

YOLOv5 modelos

4. Tren

Entrenar un modelo YOLOv5s en COCO128 especificando el conjunto de datos, el tama帽o del lote, el tama帽o de la imagen y el preentrenamiento. --weights yolov5s.pt (recomendado), o inicializado aleatoriamente --weights '' --cfg yolov5s.yaml (no recomendado). Los pesos preentrenados se descargan autom谩ticamente de la base de datos 煤ltima versi贸n de YOLOv5.

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

Consejo

馃挕 A帽adir --cache ram o --cache disk para acelerar el entrenamiento (requiere importantes recursos de RAM/disco).

Consejo

馃挕 Entrena siempre a partir de un conjunto de datos local. Las unidades montadas o en red como Google Drive ser谩n muy lentas.

Todos los resultados del entrenamiento se guardan en runs/train/ con directorios de ejecuci贸n incrementales, es decir runs/train/exp2, runs/train/exp3 etc. Para m谩s detalles, consulte la secci贸n Formaci贸n de nuestro cuaderno de tutoriales. Abrir en Colab Abrir en Kaggle

5. Visualice

Comet Registro y visualizaci贸n 馃専 NUEVO

Comet est谩 ahora totalmente integrado con YOLOv5. Siga y visualice las m茅tricas del modelo en tiempo real, guarde sus hiperpar谩metros, conjuntos de datos y puntos de control del modelo, y visualice las predicciones de su modelo con los paneles personalizados deComet . Comet se asegura de que nunca pierda el hilo de su trabajo y facilita el intercambio de resultados y la colaboraci贸n entre equipos de todos los tama帽os.

Empezar es f谩cil:

pip install comet_ml  # 1. install
export COMET_API_KEY=<Your API Key>  # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt  # 3. train

Para obtener m谩s informaci贸n sobre todas las funciones de Comet compatibles con esta integraci贸n, consulte la p谩gina Comet Tutorial. Si desea m谩s informaci贸n sobre Comet, visite nuestra p谩gina web. documentaci贸n. Empieza probando el cuaderno Colab de Comet : Abrir en Colab

YOLO INTERFAZ DE USUARIO

ClearML Registro y automatizaci贸n 馃専 NUEVO

ClearML est谩 completamente integrado en YOLOv5 para realizar un seguimiento de su experimentaci贸n, gestionar las versiones de los conjuntos de datos e incluso ejecutar remotamente las ejecuciones de entrenamiento. Para habilitar ClearML:

  • pip install clearml
  • ejecute clearml-init para conectarse a un servidor ClearML

Obtendr谩s todas las grandes caracter铆sticas esperadas de un gestor de experimentos: actualizaciones en vivo, carga de modelos, comparaci贸n de experimentos, etc. pero ClearML tambi茅n rastrea los cambios no comprometidos y los paquetes instalados, por ejemplo. Gracias a esto ClearML Tasks (que es como llamamos a los experimentos) 隆tambi茅n son reproducibles en diferentes m谩quinas! Con s贸lo 1 l铆nea extra, podemos programar una tarea de entrenamiento YOLOv5 en una cola para ser ejecutada por cualquier n煤mero de ClearML Agentes (trabajadores).

Puede utilizar ClearML Data para versionar su conjunto de datos y luego pasarlo a YOLOv5 simplemente utilizando su ID 煤nico. Esto le ayudar谩 a realizar un seguimiento de sus datos sin m谩s complicaciones. Para m谩s informaci贸n, consulte el tutorial deClearML .

ClearML Interfaz de usuario para la gesti贸n de experimentos

Registro local

Los resultados del entrenamiento se registran autom谩ticamente con Tensorboard y CSV registradores para runs/traincon un nuevo directorio de experimentos creado para cada nuevo entrenamiento como runs/train/exp2, runs/train/exp3etc.

Este directorio contiene estad铆sticas de entrenamiento y validaci贸n, mosaicos, etiquetas, predicciones y mosaicos aumentados, as铆 como m茅tricas y gr谩ficos que incluyen curvas de precisi贸n-recuperaci贸n (PR) y matrices de confusi贸n.

Resultados del registro local

Archivo de resultados results.csv se actualiza despu茅s de cada 茅pocay se representa como results.png (abajo) una vez finalizado el entrenamiento. Tambi茅n puede trazar cualquier results.csv manualmente:

from utils.plots import plot_results

plot_results("path/to/results.csv")  # plot 'results.csv' as 'results.png'

resultados.png

Pr贸ximos pasos

Una vez que su modelo est谩 entrenado puede utilizar su mejor punto de control best.pt a:

  • Ejecute CLI o Python inferencia en nuevas im谩genes y v铆deos
  • Validar la precisi贸n en las divisiones de entrenamiento, validaci贸n y prueba.
  • Exportar a TensorFlow, Keras, ONNX, TFlite, TF.js, CoreML y TensorRT formatos
  • Evolucionar los hiperpar谩metros para mejorar el rendimiento
  • Mejore su modelo tomando muestras de im谩genes del mundo real y a帽adi茅ndolas a su conjunto de datos.

Entornos compatibles

Ultralytics proporciona una serie de entornos listos para usar, cada uno de ellos preinstalado con dependencias esenciales como CUDACUDNN, Pythony PyTorchpara poner en marcha sus proyectos.

Estado del proyecto

YOLOv5 CI

Este distintivo indica que todas las pruebas de integraci贸n continua (IC) deYOLOv5 GitHub Actions se han superado con 茅xito. Estas pruebas de IC comprueban rigurosamente la funcionalidad y el rendimiento de YOLOv5 en varios aspectos clave: formaci贸n, validaci贸n, inferencia, exportaci贸n y puntos de referencia. Garantizan un funcionamiento coherente y fiable en macOS, Windows y Ubuntu, con pruebas realizadas cada 24 horas y en cada nueva confirmaci贸n.

PREGUNTAS FRECUENTES

驴C贸mo entreno YOLOv5 en mi conjunto de datos personalizado?

El entrenamiento de YOLOv5 en un conjunto de datos personalizado implica varios pasos:

  1. Prepare su conjunto de datos: Recopile y etiquete las im谩genes. Utilice herramientas como Roboflow para organizar los datos y exportarlos en formatoYOLOv5 .
  2. Configuraci贸n del entorno: Clona el repositorio YOLOv5 e instala las dependencias:
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    
  3. Crear configuraci贸n de conjunto de datos: Escribe un dataset.yaml que define las rutas tren/val y los nombres de las clases.
  4. Entrenar el modelo:
    python train.py --img 640 --epochs 3 --data dataset.yaml --weights yolov5s.pt
    

驴Qu茅 herramientas puedo utilizar para anotar mi conjunto de datos YOLOv5 ?

Puede utilizar Roboflow Annotate, una intuitiva herramienta basada en web para etiquetar im谩genes. Admite la colaboraci贸n en equipo y exporta en formato YOLOv5 . Tras recopilar las im谩genes, utilice Roboflow para crear y gestionar las anotaciones de forma eficaz. Otras opciones son herramientas como LabelImg y CVAT para anotaciones locales.

驴Por qu茅 deber铆a utilizar Ultralytics HUB para formar a mis modelos YOLO ?

Ultralytics HUB ofrece una plataforma integral de formaci贸n, despliegue y gesti贸n de modelos YOLO sin necesidad de grandes conocimientos de codificaci贸n. Entre las ventajas de utilizar Ultralytics HUB se incluyen:

  • F谩cil formaci贸n de modelos: Simplifica el proceso de formaci贸n con entornos preconfigurados.
  • Gesti贸n de datos: Gestiona sin esfuerzo conjuntos de datos y control de versiones.
  • Supervisi贸n en tiempo real: Integra herramientas como Comet para el seguimiento y la visualizaci贸n de m茅tricas en tiempo real.
  • Colaboraci贸n: Ideal para proyectos en equipo con recursos compartidos y f谩cil gesti贸n.

驴C贸mo convierto mis datos anotados al formato YOLOv5 ?

Para convertir datos anotados al formato YOLOv5 utilizando Roboflow:

  1. Cargue su conjunto de datos en un espacio de trabajo Roboflow .
  2. Etiquetar las im谩genes si no est谩n ya etiquetadas.
  3. Generar y exportar el conjunto de datos en YOLOv5 Pytorch formato. Aseg煤rese de que se aplican pasos de preprocesamiento como la orientaci贸n autom谩tica y el cambio de tama帽o (estiramiento) al tama帽o de entrada cuadrado (por ejemplo, 640x640).
  4. Descargue el conjunto de datos e int茅grelo en su script de entrenamiento YOLOv5 .

驴Cu谩les son las opciones de licencia para utilizar YOLOv5 en aplicaciones comerciales?

Ultralytics ofrece dos opciones de licencia:

  • AGPL-3.0 Licencia: Una licencia de c贸digo abierto apta para uso no comercial, ideal para estudiantes y aficionados.
  • Licencia para empresas: Dise帽ada para empresas que desean integrar YOLOv5 en productos y servicios comerciales. Para obtener informaci贸n detallada, visite nuestra p谩gina de licencias.

Para m谩s detalles, consulte nuestra gu铆a sobre licenciasUltralytics .

Creado hace 1 a帽o 鉁忥笍 Actualizado hace 1 mes

Comentarios