Sitelet https://docs.ultralytics.com/es/usage/python
Ultralytics YOLO27:

Uso de Python#

Te damos la bienvenida a la documentación sobre el uso de Ultralytics YOLO con Python. Esta guía te ayudará a integrar sin complicaciones Ultralytics YOLO en tus proyectos de Python para detección de objetos, segmentación de instancias, segmentación semántica, estimación de profundidad y clasificación. Aquí aprenderás a cargar y utilizar modelos preentrenados, entrenar modelos nuevos y realizar predicciones sobre imágenes. La interfaz de Python, fácil de usar, es un recurso valioso para cualquiera que quiera incorporar YOLO a sus proyectos de Python, ya que permite implementar rápidamente capacidades avanzadas de detección de objetos. ¡Empecemos!



Ver: Domina Ultralytics YOLO: Python

Por ejemplo, los usuarios pueden cargar un modelo, entrenarlo, evaluar su rendimiento con un conjunto de validación e incluso exportarlo al formato ONNX con solo unas líneas de código.

Python
from ultralytics import YOLO

# Crea un modelo YOLO nuevo desde cero
model = YOLO("yolo26n.yaml")

# Carga un modelo YOLO preentrenado (recomendado para el entrenamiento)
model = YOLO("yolo26n.pt")

# Entrena el modelo con el conjunto de datos 'coco8.yaml' durante 3 épocas
results = model.train(data="coco8.yaml", epochs=3)

# Evalúa el rendimiento del modelo con el conjunto de validación
results = model.val()

# Realiza una detección de objetos en una imagen con el modelo
results = model("https://ultralytics.com/images/bus.jpg")

# Exporta el modelo al formato ONNX
success = model.export(format="onnx")

Entrenar#

El modo Train se utiliza para entrenar un modelo YOLO con un conjunto de datos personalizado. En este modo, el modelo se entrena con el conjunto de datos y los hiperparámetros especificados. El proceso de entrenamiento optimiza los parámetros del modelo para que pueda predecir con precisión las clases y ubicaciones de los objetos en una imagen.

Entrenar
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pasa cualquier tipo de modelo
results = model.train(epochs=5)

Ejemplos de entrenamiento

Validar#

El modo Val se utiliza para validar un modelo YOLO después de entrenarlo. En este modo, el modelo se evalúa con un conjunto de validación para medir su precisión y su capacidad de generalización. Este modo puede utilizarse para ajustar los hiperparámetros del modelo y mejorar su rendimiento.

Validar
from ultralytics import YOLO

# Cargar un modelo YOLO
model = YOLO("yolo26n.yaml")

# Entrenar el modelo
model.train(data="coco8.yaml", epochs=5)

# Validar con la partición de validación del conjunto de datos de entrenamiento
model.val()

Ejemplos de validación

Predecir#

El modo Predict se utiliza para hacer predicciones con un modelo YOLO entrenado sobre imágenes o vídeos nuevos. En este modo, el modelo se carga desde un archivo de punto de control y el usuario puede proporcionar imágenes o vídeos para realizar inferencias. El modelo predice las clases y las ubicaciones de los objetos en las imágenes o los vídeos de entrada.

Predecir
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# acepta todos los formatos: image/dir/Path/URL/video/PIL/ndarray. 0 para la cámara web
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Mostrar preds. Acepta todos los argumentos de predicción de YOLO

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # guardar imágenes trazadas

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # guardar predicciones como etiquetas

# desde una lista de PIL/ndarray
results = model.predict(source=[im1, im2])

Ejemplos de predicción

Exportar#

El modo Export se utiliza para exportar un modelo YOLO a un formato que pueda usarse para su despliegue. En este modo, el modelo se convierte a un formato compatible con otras aplicaciones de software o dispositivos de hardware. Este modo resulta útil para desplegar el modelo en entornos de producción.

Exportar

Exporta un modelo YOLO oficial a ONNX con tamaños dinámicos de lote e imagen.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

Ejemplos de exportación

Seguimiento#

El modo Track se utiliza para seguir objetos en tiempo real con un modelo YOLO. En este modo, el modelo se carga desde un archivo de punto de control y el usuario puede proporcionar una transmisión de vídeo en directo para realizar un seguimiento de objetos en tiempo real. Este modo resulta útil en aplicaciones como los sistemas de vigilancia o los coches autónomos.

Seguimiento
from ultralytics import YOLO

# Cargar un modelo
model = YOLO("yolo26n.pt")  # cargar un modelo oficial de detección
model = YOLO("yolo26n-seg.pt")  # cargar un modelo oficial de segmentación
model = YOLO("path/to/best.pt")  # cargar un modelo personalizado

# Seguir objetos con el modelo
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Ejemplos de seguimiento

Evaluación comparativa#

El modo Benchmark se utiliza para evaluar la velocidad y la precisión de distintos formatos de exportación de YOLO. Las evaluaciones comparativas ofrecen información sobre el tamaño del formato exportado, sus métricas mAP50-95 (para detección y segmentación de objetos) o sus métricas accuracy_top1 (para clasificación), y el tiempo de inferencia en milisegundos por imagen en distintos formatos de exportación, como ONNX, OpenVINO, TensorRT y otros. Esta información puede ayudar a los usuarios a elegir el formato de exportación óptimo para cada caso de uso, según sus requisitos de velocidad y precisión.

Evaluación comparativa

Evalúa comparativamente un modelo YOLO oficial en todos los formatos de exportación.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

Ejemplos de evaluación comparativa

Uso de los entrenadores#

La clase de modelo YOLO actúa como contenedor de alto nivel para las clases Trainer. Cada tarea de YOLO tiene su propio entrenador, que hereda de BaseTrainer. Esta arquitectura ofrece más flexibilidad y opciones de personalización en tus flujos de trabajo de aprendizaje automático.

Ejemplo de entrenador de detección
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # ruta a best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Reanudar una ejecución de entrenamiento interrumpida desde su último punto de control
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

Puedes personalizar fácilmente los entrenadores para admitir tareas personalizadas o explorar ideas de investigación y desarrollo. El diseño modular de Ultralytics YOLO te permite adaptar el framework a tus necesidades específicas, tanto si trabajas en una nueva tarea de visión artificial como si ajustas modelos existentes para mejorar su rendimiento.

Tutoriales de personalización

Preguntas frecuentes#

  • Integrar Ultralytics YOLO en tus proyectos Python es sencillo. Puedes cargar un modelo preentrenado o entrenar uno nuevo desde cero. Así puedes empezar:

    from ultralytics import YOLO
    
    # Cargar un modelo YOLO preentrenado
    model = YOLO("yolo26n.pt")
    
    # Detectar objetos en una imagen
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualizar los resultados
    for result in results:
        result.show()

    Consulta más ejemplos detallados en la sección Modo Predict.

  • Ultralytics YOLO ofrece varios modos para adaptarse a distintos flujos de trabajo de aprendizaje automático. Entre ellos se incluyen:

    • Train: entrena un modelo con conjuntos de datos personalizados.
    • Val: valida el rendimiento del modelo con un conjunto de validación.
    • Predict: haz predicciones sobre imágenes nuevas o transmisiones de vídeo.
    • Export: exporta modelos a distintos formatos, como ONNX y TensorRT.
    • Track: seguimiento de objetos en tiempo real en transmisiones de vídeo.
    • Benchmark: evalúa comparativamente el rendimiento del modelo con distintas configuraciones.

    Cada modo está diseñado para ofrecer funciones completas en las distintas etapas del desarrollo y despliegue de modelos.

  • Para entrenar un modelo YOLO personalizado, tienes que especificar el conjunto de datos y otros hiperparámetros. Aquí tienes un ejemplo rápido:

    from ultralytics import YOLO
    
    # Cargar el modelo YOLO
    model = YOLO("yolo26n.yaml")
    
    # Entrenar el modelo con un conjunto de datos personalizado
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Para obtener más información sobre el entrenamiento y enlaces a ejemplos de uso, visita nuestra página Modo Train.

  • Con la función export, exportar modelos YOLO a un formato adecuado para su despliegue es muy sencillo. Por ejemplo, puedes exportar un modelo al formato ONNX:

    from ultralytics import YOLO
    
    # Cargar el modelo YOLO
    model = YOLO("yolo26n.pt")
    
    # Exporta el modelo al formato ONNX
    model.export(format="onnx")

    Consulta la documentación de Modo Export para ver las distintas opciones de exportación.

  • Sí, es posible validar modelos YOLO con distintos conjuntos de datos. Después del entrenamiento, puedes utilizar el modo de validación para evaluar el rendimiento:

    from ultralytics import YOLO
    
    # Cargar un modelo YOLO
    model = YOLO("yolo26n.yaml")
    
    # Entrenar el modelo
    model.train(data="coco8.yaml", epochs=5)
    
    # Validar el modelo con otro conjunto de datos
    model.val(data="path/to/separate/data.yaml")

    Consulta la página Modo Val para ver ejemplos detallados y aprender a utilizarlo.

Comentarios