Link to this sectionUso de Python#
¡Bienvenido a la documentación de uso de Python de Ultralytics YOLO! Esta guía está diseñada para ayudarte a integrar sin problemas Ultralytics YOLO en tus proyectos de Python para detección de objetos, segmentación de instancias, segmentación semántica y clasificación. Aquí aprenderás cómo cargar y utilizar modelos preentrenados, entrenar modelos nuevos 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. ¡Empecemos!
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.
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")Link to this sectionEntrenar#
El modo Entrenamiento (Train) 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 ubicaciones de los objetos en una imagen.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Link to this sectionValidar#
El modo Validación (Val) se utiliza para validar un modelo YOLO después de que haya sido entrenado. En este modo, el modelo se evalúa en un conjunto de validación para medir su precisión y su rendimiento de generalización. Este modo puede usarse para ajustar los hiperparámetros del modelo y mejorar su rendimiento.
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()Link to this sectionPredecir#
El modo Predicción (Predict) 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 (checkpoint) y puedes proporcionar imágenes o vídeos para realizar la inferencia. El modelo predice las clases y ubicaciones de los objetos en las imágenes o vídeos de entrada.
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])Link to this sectionExportar#
El modo Exportación (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 que puede ser utilizado por otras aplicaciones de software o dispositivos de hardware. Este modo es útil cuando despliegas el modelo en entornos de producción.
Exporta un modelo YOLO oficial a ONNX con tamaño de lote y tamaño de imagen dinámicos.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Link to this sectionSeguimiento (Track)#
El modo Seguimiento (Track) se utiliza para realizar el seguimiento de 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 coches autónomos.
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")Link to this sectionEvaluación comparativa (Benchmark)#
El modo Evaluación comparativa (Benchmark) se utiliza para perfilar la velocidad y precisión de varios formatos de exportación para YOLO. Los benchmarks proporcionan información sobre el tamaño del formato exportado, sus métricas de mAP50-95 (para detección de objetos y segmentación) o métricas de accuracy_top1 (para clasificación), y el tiempo de inferencia en milisegundos por imagen a través de varios 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 su caso de uso específico según sus requisitos de velocidad y precisión.
Realiza un benchmark de 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, half=False, device=0)Link to this sectionUso de entrenadores (Trainers)#
La clase de modelo YOLO sirve como un envoltorio de alto nivel para las clases de entrenador (Trainer). Cada tarea de YOLO tiene su propio entrenador, que hereda de BaseTrainer. Esta arquitectura permite una mayor flexibilidad y personalización en tus flujos de trabajo de aprendizaje automático.
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)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 de trabajo a tus necesidades específicas, tanto si trabajas en una tarea novedosa de visión artificial como si ajustas modelos existentes para obtener un mejor rendimiento.
Link to this sectionFAQ#
Link to this section¿Cómo puedo integrar YOLO en mi proyecto de Python para detección de objetos?#
Integrar Ultralytics YOLO en tus proyectos de Python es sencillo. Puedes cargar un modelo preentrenado o entrenar un modelo nuevo desde cero. Aquí tienes 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 de Modo Predicción (Predict).
Link to this section¿Cuáles son los diferentes modos disponibles en YOLO?#
Ultralytics YOLO ofrece varios modos para satisfacer diferentes flujos de trabajo de aprendizaje automático. Estos incluyen:
- Entrenamiento (Train): Entrena un modelo utilizando conjuntos de datos personalizados.
- Validación (Val): Valida el rendimiento del modelo en un conjunto de validación.
- Predicción (Predict): Realiza predicciones en nuevas imágenes o transmisiones de vídeo.
- Exportación (Export): Exporta modelos a varios formatos como ONNX y TensorRT.
- Seguimiento (Track): Seguimiento de objetos en tiempo real en transmisiones de vídeo.
- Evaluación comparativa (Benchmark): Evalúa el rendimiento del modelo en diferentes configuraciones.
Cada modo está diseñado para proporcionar funcionalidades integrales para diferentes etapas del desarrollo y despliegue de modelos.
Link to this section¿Cómo entreno un modelo YOLO personalizado utilizando mi conjunto de datos?#
Para entrenar un modelo YOLO personalizado, necesitas especificar tu conjunto de datos y otros hiperparámetros. 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 e hipervínculos a ejemplos de uso, visita nuestra página de Modo Entrenamiento (Train).
Link to this section¿Cómo exporto modelos YOLO para su despliegue?#
Exportar modelos YOLO en un formato adecuado para el despliegue 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 ver varias opciones de exportación, consulta la documentación del Modo Exportación (Export).
Link to this section¿Puedo validar mi modelo YOLO en diferentes conjuntos de datos?#
Sí, es posible validar modelos YOLO en diferentes conjuntos de datos. Después del entrenamiento, puedes usar 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 del Modo Validación (Val) para ver ejemplos detallados y su uso.