Ir al contenido

Python Utilizaci贸n

隆Bienvenido a la documentaci贸n de uso de YOLO11 Python ! Esta gu铆a est谩 dise帽ada para ayudarle a integrar YOLO11 en sus proyectos Python para la detecci贸n, segmentaci贸n y clasificaci贸n de objetos. Aqu铆 aprender谩 a cargar y utilizar modelos preentrenados, entrenar nuevos modelos y realizar predicciones sobre im谩genes. La sencilla interfaz de Python es un valioso recurso para cualquiera que desee incorporar YOLO11 a sus proyectos de Python , permiti茅ndole implementar r谩pidamente funciones avanzadas de detecci贸n de objetos. 隆Empecemos!



Observa: Dominio de Ultralytics YOLO11 : Python

Por ejemplo, los usuarios pueden cargar un modelo, entrenarlo, evaluar su rendimiento en un conjunto de validaci贸n e incluso exportarlo al formato ONNX con s贸lo unas l铆neas de c贸digo.

Python

from ultralytics import YOLO

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

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.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")

Tren

El modo Entrenar se utiliza para entrenar un modelo YOLO11 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 consiste en optimizar los par谩metros del modelo para que pueda predecir con precisi贸n las clases y ubicaciones de los objetos en una imagen.

Tren

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO("yolo11n.yaml")
results = model.train(data="coco8.yaml", epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

Ejemplos de trenes

Val

El modo Val se utiliza para validar un modelo YOLO11 una vez 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 utilizarse para ajustar los hiperpar谩metros del modelo con el fin de mejorar su rendimiento.

Val

from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.yaml")

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

# Validate on training data
model.val()
from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.yaml")

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

# Validate on separate data
model.val(data="path/to/separate/data.yaml")

Val Ejemplos

Predecir

El modo Predicci贸n se utiliza para realizar predicciones utilizando un modelo YOLO11 entrenado sobre nuevas im谩genes o v铆deos. En este modo, el modelo se carga desde un archivo de control y el usuario puede 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.

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])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")

# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)

for result in results:
    # Detection
    result.boxes.xyxy  # box with xyxy format, (N, 4)
    result.boxes.xywh  # box with xywh format, (N, 4)
    result.boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
    result.boxes.xywhn  # box with xywh format but normalized, (N, 4)
    result.boxes.conf  # confidence score, (N, 1)
    result.boxes.cls  # cls, (N, 1)

    # Segmentation
    result.masks.data  # masks, (N, H, W)
    result.masks.xy  # x,y segments (pixels), List[segment] * N
    result.masks.xyn  # x,y segments (normalized), List[segment] * N

    # Classification
    result.probs  # cls prob, (num_class, )

# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()

Predecir Ejemplos

Exportar

El modo de exportaci贸n se utiliza para exportar un modelo YOLO11 a un formato que pueda utilizarse 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 se despliega el modelo en entornos de producci贸n.

Exportar

Exporte un modelo oficial de YOLO11n a ONNX con tama帽o de lote e imagen din谩micos.

from ultralytics import YOLO

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

Exporta un modelo oficial de YOLO11n a TensorRT en device=0 para la aceleraci贸n en dispositivos CUDA .

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", device=0)

Ejemplos de exportaci贸n

Pista

El modo Track se utiliza para el seguimiento de objetos en tiempo real mediante un modelo YOLO11 . En este modo, el modelo se carga desde un archivo de puntos de control, y el usuario puede proporcionar un flujo de v铆deo en directo para realizar el seguimiento de objetos en tiempo real. Este modo es 煤til para aplicaciones como los sistemas de vigilancia o los coches autoconducidos.

Pista

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official detection model
model = YOLO("yolo11n-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")

Ejemplos de v铆as

Punto de referencia

El modo Benchmark se utiliza para perfilar la velocidad y precisi贸n de varios formatos de exportaci贸n para YOLO11. Los puntos de referencia proporcionan informaci贸n sobre el tama帽o del formato exportado, su mAP50-95 m茅tricas (para la detecci贸n y segmentaci贸n de objetos) o accuracy_top5 (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 en funci贸n de sus requisitos de velocidad y precisi贸n.

Punto de referencia

Benchmark de un modelo oficial YOLO11n en todos los formatos de exportaci贸n.

from ultralytics.utils.benchmarks import benchmark

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

Ejemplos de puntos de referencia

Uso de formadores

YOLO es una envoltura de alto nivel de las clases Trainer. Cada tarea de YOLO tiene su propio entrenador que hereda de BaseTrainer.

Ejemplo de entrenador de detecci贸n

from ultralytics.models.yolo 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 = detect.DetectionTrainer(overrides=overrides)

Puede personalizar f谩cilmente los Formadores para realizar tareas personalizadas o explorar ideas de I+D. M谩s informaci贸n sobre la personalizaci贸n Trainers, Validators y Predictors para adaptarlo a las necesidades de su proyecto en la secci贸n Personalizaci贸n.

Tutoriales de personalizaci贸n

PREGUNTAS FRECUENTES

驴C贸mo puedo integrar YOLO11 en mi proyecto Python para la detecci贸n de objetos?

Integrar Ultralytics YOLO11 en sus proyectos Python es sencillo. Puedes cargar un modelo preentrenado o entrenar uno nuevo desde cero. He aqu铆 c贸mo empezar:

from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")

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

# Visualize the results
for result in results:
    result.show()

Vea ejemplos m谩s detallados en nuestra secci贸n Modo Predecir.

驴Cu谩les son los diferentes modos disponibles en YOLO11?

Ultralytics YOLO11 ofrece varios modos para adaptarse a diferentes flujos de trabajo de aprendizaje autom谩tico. Entre ellos se incluyen:

  • Tren: Entrena un modelo utilizando conjuntos de datos personalizados.
  • Val: Valida el rendimiento del modelo en un conjunto de validaci贸n.
  • Predecir: Realiza predicciones sobre nuevas im谩genes o secuencias de v铆deo.
  • Exportar: Exporta modelos a varios formatos como ONNX, TensorRT.
  • Pista: Seguimiento de objetos en tiempo real en secuencias de v铆deo.
  • Referencia: Compara el rendimiento del modelo con diferentes configuraciones.

Cada modo est谩 dise帽ado para ofrecer funcionalidades completas para las distintas fases de desarrollo e implantaci贸n de modelos.

驴C贸mo entreno un modelo YOLO11 personalizado utilizando mi conjunto de datos?

Para entrenar un modelo YOLO11 personalizado, es necesario especificar el conjunto de datos y otros hiperpar谩metros. He aqu铆 un ejemplo r谩pido:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.yaml")

# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)

Para m谩s detalles sobre la formaci贸n y enlaces a ejemplos de uso, visite nuestra p谩gina Modo Tren.

驴C贸mo se exportan los modelos de YOLO11 para su despliegue?

Exportar modelos YOLO11 en un formato adecuado para su despliegue es sencillo con la herramienta export funci贸n. Por ejemplo, puede exportar un modelo al formato ONNX :

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

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

Para conocer las distintas opciones de exportaci贸n, consulte la documentaci贸n sobre el modo de exportaci贸n.

驴Puedo validar mi modelo YOLO11 en diferentes conjuntos de datos?

S铆, es posible validar los modelos de YOLO11 en diferentes conjuntos de datos. Despu茅s del entrenamiento, puede utilizar el modo de validaci贸n para evaluar el rendimiento:

from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.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 Modo Val para ver ejemplos detallados y su uso.

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

Comentarios