Ir al contenido

Detección de objetos

Ejemplos de detección de objetos

La detección de objetos es una tarea que implica identificar la ubicación y la clase de los objetos en una imagen o flujo de video.

La salida de un detector de objetos es un conjunto de cuadros delimitadores que encierran los objetos en la imagen, junto con las etiquetas de clase y los puntajes de confianza para cada cuadro. La detección de objetos es una buena opción cuando necesita identificar objetos de interés en una escena, pero no necesita saber exactamente dónde está el objeto o su forma exacta.



Ver: Detección de objetos con el modelo YOLO de Ultralytics pre-entrenado.

Consejo

Los modelos de detección YOLO11 son los modelos YOLO11 predeterminados, es decir, yolo11n.pt y están pre-entrenados en COCO.

Modelos

Aquí se muestran los modelos de detección YOLO11 pre-entrenados. Los modelos de detección, segmentación y pose están pre-entrenados en el conjunto de datos COCO, mientras que los modelos de clasificación están pre-entrenados en el conjunto de datos ImageNet.

Los modelos se descargan automáticamente desde la última versión de Ultralytics en el primer uso.

Modelo tamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLO11n 640 39.5 56.1 ± 0.8 1.5 ± 0.0 2.6 6.5
YOLO11s 640 47.0 90.0 ± 1.2 2.5 ± 0.0 9.4 21.5
YOLO11m 640 51.5 183.2 ± 2.0 4.7 ± 0.1 20.1 68.0
YOLO11l 640 53.4 238.6 ± 1.4 6.2 ± 0.1 25.3 86.9
YOLO11x 640 54.7 462.8 ± 6.7 11.3 ± 0.2 56.9 194.9
  • mAPval los valores corresponden a un solo modelo a escala única en COCO val2017 conjunto de datos.
    Reproducir mediante yolo val detect data=coco.yaml device=0
  • Velocidad promediada en imágenes COCO val utilizando una instancia de Amazon EC2 P4d .
    Reproducir mediante yolo val detect data=coco.yaml batch=1 device=0|cpu

Entrenar

Entrena YOLO11n en el conjunto de datos COCO8 durante 100 épocas con un tamaño de imagen de 640. Para obtener una lista completa de los argumentos disponibles, consulta la página de Configuración.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Formato del dataset

El formato del conjunto de datos de detección YOLO se puede encontrar en detalle en la Guía del Conjunto de Datos. Para convertir tu conjunto de datos existente de otros formatos (como COCO, etc.) al formato YOLO, utiliza la herramienta JSON2YOLO de Ultralytics.

Val

Validar el modelo YOLO11n entrenado precisión en el conjunto de datos COCO8. No se necesitan argumentos ya que el model conserva su entrenamiento data y argumentos como atributos del modelo.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

Predecir

Utiliza un modelo YOLO11n entrenado para ejecutar predicciones en imágenes.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box
yolo detect predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'      # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Ver detalles completos del predict modo en la Predecir página.

Exportar

Exporta un modelo YOLO11n a un formato diferente como ONNX, CoreML, etc.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Los formatos de exportación YOLO11 disponibles se encuentran en la tabla a continuación. Puedes exportar a cualquier formato utilizando format argumento, por ejemplo: format='onnx' o format='engine'. Puedes predecir o validar directamente en modelos exportados, es decir, yolo predict model=yolo11n.onnxDespués de que finalice la exportación, se mostrarán ejemplos de uso para su modelo.

Formato format Argumento Modelo Metadatos Argumentos
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, half, dynamic, optimize, nms, batch, device
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n.pb imgsz, batch, device
TF Lite tflite yolo11n.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch, device
MNN mnn yolo11n.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n_rknn_model/ imgsz, batch, name, device

Ver detalles completos del export detalles en la Exportar página.

Preguntas frecuentes

¿Cómo entreno un modelo YOLO11 en mi dataset personalizado?

El entrenamiento de un modelo YOLO11 en un conjunto de datos personalizado implica algunos pasos:

  1. Preparar el conjunto de datos: Asegúrese de que su conjunto de datos esté en el formato YOLO. Para obtener orientación, consulte nuestra Guía de conjuntos de datos.
  2. Cargar el modelo: Utilice la biblioteca Ultralytics YOLO para cargar un modelo pre-entrenado o crear un nuevo modelo a partir de un archivo YAML.
  3. Entrenar el modelo: Ejecute el train método en python o el yolo detect train comando en CLI.

Ejemplo

from ultralytics import YOLO

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

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

Para obtener opciones de configuración detalladas, visite la página de Configuración.

¿Qué modelos preentrenados están disponibles en YOLO11?

Ultralytics YOLO11 ofrece varios modelos pre-entrenados para la detección de objetos, la segmentación y la estimación de poses. Estos modelos están pre-entrenados en el conjunto de datos COCO o ImageNet para tareas de clasificación. Aquí hay algunos de los modelos disponibles:

Para obtener una lista detallada y métricas de rendimiento, consulte la sección Modelos.

¿Cómo puedo validar la precisión de mi modelo YOLO entrenado?

Para validar la precisión de su modelo YOLO11 entrenado, puede utilizar el .val() método en python o el yolo detect val comando en CLI. Esto proporcionará métricas como mAP50-95, mAP50 y más.

Ejemplo

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95
yolo detect val model=path/to/best.pt

Para obtener más detalles sobre la validación, visite la página Val.

¿A qué formatos puedo exportar un modelo YOLO11?

Ultralytics YOLO11 permite exportar modelos a varios formatos como ONNX, TensorRT, CoreML, y más para garantizar la compatibilidad entre diferentes plataformas y dispositivos.

Ejemplo

from ultralytics import YOLO

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

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

Consulte la lista completa de formatos compatibles e instrucciones en la página Exportar.

¿Por qué debería usar Ultralytics YOLO11 para la detección de objetos?

Ultralytics YOLO11 está diseñado para ofrecer un rendimiento de última generación en detección de objetos, segmentación y estimación de poses. Estas son algunas de sus ventajas clave:

  1. Modelos preentrenados: Utilice modelos preentrenados en conjuntos de datos populares como COCO e ImageNet para un desarrollo más rápido.
  2. Alta precisión: Alcanza impresionantes puntuaciones mAP, lo que garantiza una detección de objetos fiable.
  3. Velocidad: Optimizado para la inferencia en tiempo real, lo que lo hace ideal para aplicaciones que requieren un procesamiento rápido.
  4. Flexibilidad: Exporte modelos a varios formatos como ONNX y TensorRT para la implementación en múltiples plataformas.

Explore nuestro Blog para ver casos de uso e historias de éxito que muestran YOLO11 en acción.



📅 Creado hace 1 año ✏️ Actualizado hace 5 meses

Comentarios