Ultralytics YOLO27:

Uso de Python#

¡Te damos la bienvenida a la documentación sobre el uso de Python de Ultralytics YOLO! Esta guía está diseñada para ayudarte a integrar Ultralytics YOLO sin problemas en tus proyectos de Python para object detection, instance segmentation, semantic segmentation, depth estimation y classification. Aquí aprenderás a cargar y utilizar modelos preentrenados, entrenar nuevos modelos y realizar predicciones en imágenes. La interfaz de Python, fácil de usar, es un recurso valioso para cualquiera que busque incorporar YOLO en sus proyectos de Python, lo que te permite implementar rápidamente capacidades avanzadas de detección de objetos. ¡Comencemos!



Watch: Mastering Ultralytics YOLO: Python

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

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

# Export the model to ONNX format
success = model.export(format="onnx")

Entrenar#

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

Entrenar
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

Train Examples

Val#

El Val mode se utiliza para validar un modelo YOLO después de que se haya entrenado. En este modo, el modelo se evalúa en un conjunto de validación para medir su accuracy y su rendimiento de generalización. Este modo se puede utilizar para ajustar los hiperparámetros del modelo con el fin de mejorar su rendimiento.

Val
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

Val Examples

Predecir#

El Predict mode se utiliza para realizar predicciones utilizando un modelo YOLO entrenado en nuevas imágenes o vídeos. En este modo, el modelo se carga desde un archivo de punto de control y puedes 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")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

Predict Examples

Exportar#

El Export mode se utiliza para exportar un modelo YOLO a un formato que se pueda utilizar para la implementación. En este modo, el modelo se convierte a un formato que otras aplicaciones de software o dispositivos de hardware pueden utilizar. Este modo resulta útil al implementar el modelo en entornos de producción.

Exportar

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

from ultralytics import YOLO

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

Export Examples

Rastreo#

El Track mode se utiliza para rastrear objetos en tiempo real utilizando un modelo YOLO. En este modo, el modelo se carga desde un archivo de punto de control y puedes proporcionar una transmisión de vídeo en directo para realizar un seguimiento de objetos en tiempo real. Este modo es útil para aplicaciones como sistemas de vigilancia o self-driving cars.

Rastreo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-seg.pt")  # load an official segmentation model
model = YOLO("path/to/best.pt")  # load a custom model

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Track Examples

Benchmark#

El Benchmark mode se utiliza para perfilar la velocidad y la precisión de varios formatos de exportación para YOLO. Las pruebas comparativas proporcionan información sobre el tamaño del formato exportado, sus métricas de mAP50-95 (para la detección y segmentación de objetos) o métricas de accuracy_top1 (para la clasificación), y el tiempo de inferencia en milisegundos por imagen en varios formatos de exportación como ONNX, OpenVINO, TensorRT y otros. Esta información puede ayudarte a elegir el formato de exportación óptimo para tu caso de uso específico en función de tus requisitos de velocidad y precisión.

Benchmark

Evalúa el rendimiento de un modelo oficial de YOLO 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)

Benchmark Examples

Uso de entrenadores#

La clase de modelo YOLO sirve como contenedor de alto nivel para las clases Trainer. Cada tarea de YOLO tiene su propio entrenador, que hereda de BaseTrainer. Esta arquitectura permite una mayor flexibilidad y personalización en tus machine learning workflows.

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  # path to 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")

# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})

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 marco a tus necesidades específicas, ya sea que estés trabajando en una tarea novedosa de computer vision o ajustando modelos existentes para obtener un mejor rendimiento.

Customization tutorials

Preguntas frecuentes#

  • Integrar Ultralytics YOLO en tus proyectos de Python es sencillo. Puedes cargar un modelo preentrenado o entrenar un nuevo modelo desde cero. Aquí te mostramos cómo empezar:

    from ultralytics import YOLO
    
    # Load a pretrained YOLO model
    model = YOLO("yolo26n.pt")
    
    # Perform object detection on an image
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualize the results
    for result in results:
        result.show()

    Consulta ejemplos más detallados en nuestra sección Predict Mode.

  • Ultralytics YOLO ofrece varios modos para adaptarse a diferentes machine learning workflows. Estos incluyen:

    • Train: Entrena un modelo utilizando conjuntos de datos personalizados.
    • Val: Valida el rendimiento del modelo en un conjunto de validación.
    • Predict: Realiza predicciones en nuevas imágenes o secuencias de vídeo.
    • Export: Exporta modelos a varios formatos como ONNX y TensorRT.
    • Track: Seguimiento de objetos en tiempo real en secuencias de vídeo.
    • Benchmark: Evalúa el rendimiento del modelo en diferentes configuraciones.

    Cada modo está diseñado para proporcionar funcionalidades integrales para las diferentes etapas del model development and deployment.

  • Para entrenar un modelo YOLO personalizado, debes especificar tu conjunto de datos y otros hyperparameters. Aquí tienes un ejemplo rápido:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model with custom dataset
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Para obtener más detalles sobre el entrenamiento y enlaces de hipertexto al uso de ejemplo, visita nuestra página Train Mode.

  • Exportar modelos YOLO en un formato adecuado para la implementación es sencillo con la función export. Por ejemplo, puedes exportar un modelo al formato ONNX:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    Para conocer varias opciones de exportación, consulta la documentación de Export Mode.

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

    from ultralytics import YOLO
    
    # Load a YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model
    model.train(data="coco8.yaml", epochs=5)
    
    # Validate the model on a different dataset
    model.val(data="path/to/separate/data.yaml")

    Consulta la página Val Mode para ver ejemplos detallados y su uso.

Comentarios