Ultralytics YOLO27:

Detección de objetos con Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

La detección de objetos es una tarea que consiste en identificar la ubicación y la clase de los objetos en una imagen o flujo de vídeo.

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



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Consejo

Los modelos Detect de YOLO26 son los modelos YOLO26 predeterminados, es decir, yolo26n.pt, y están preentrenados con COCO.

Modelos#

Aquí se muestran los modelos Detect de YOLO26 preentrenados. Los modelos Detect, Segment y Pose están preentrenados con el conjunto de datos COCO, los modelos Semantic están preentrenados con Cityscapes y los modelos Classify están preentrenados con el conjunto de datos ImageNet.

Los modelos se descargan automáticamente desde la versión más reciente de Ultralytics al utilizarlos por primera vez.

Modelotamaño
(píxeles)
mAPval
50-95
mAPval
50-95(e2e)
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • Los valores de mAPval corresponden a un modelo único y una sola escala en el conjunto de datos de COCO val2017.
    Reprodúcelo mediante yolo val detect data=coco.yaml device=0. Añade nms=False para reproducir la columna e2e.
  • La velocidad se calcula como la media en las imágenes de validación de COCO utilizando una instancia Amazon EC2 P4d.
    Reprodúcela con yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False
  • Los valores de Params y FLOPs corresponden a modelos fusionados después del plegado de Conv/BatchNorm y la eliminación de la rama de detección no utilizada. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar recuentos más altos.

Consulta la vista previa no publicada de YOLO27 para ver los resultados preliminares de detección en COCO.

Entrenar#

Entrena YOLO26n con el conjunto de datos COCO8 durante 100 épocas con un tamaño de imagen de 640. Para consultar la lista completa de argumentos disponibles, visita la página de Configuración.

Ejemplo
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Consulta todos los detalles del modo train en la página de entrenamiento. Los modelos de detección también se pueden entrenar con el entrenamiento en la nube de Ultralytics Platform.

Formato del conjunto de datos#

Puedes encontrar en detalle el formato del conjunto de datos de detección de YOLO en la Guía de conjuntos de datos. Para convertir un conjunto de datos JSON de COCO existente al formato de YOLO, utiliza la función integrada convert_coco descrita en la Guía de COCO a YOLO. También puedes etiquetar y gestionar conjuntos de datos de detección con las herramientas de etiquetado asistidas por IA de la Plataforma Ultralytics.

Val#

Valida la precisión del modelo YOLO26n entrenado con el conjunto de datos COCO8. No se necesitan argumentos, ya que model conserva su data de entrenamiento y sus argumentos como atributos del modelo.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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 containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Predecir#

Utiliza un modelo YOLO26n entrenado para realizar predicciones en imágenes.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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

Consulta todos los detalles del modo predict en la página Predecir.

Salida de resultados#

La detección de objetos devuelve un objeto Results por imagen. El campo de predicción principal es result.boxes, que contiene las coordenadas de los cuadros, los ID de clase y las puntuaciones de confianza de cada objeto detectado.

AtributoTipoFormaDescripción
result.boxesBoxes(N)Cajas de detección.
result.boxes.datatorch.float32(N,6/7)[x1,y1,x2,y2,conf,cls] sin procesar, además del ID de seguimiento opcional.
result.boxes.xyxytorch.float32(N,4)Cajas de píxeles xyxy.
result.boxes.conftorch.float32(N,)Puntuaciones de confianza.
result.boxes.clstorch.float32(N,)ID de clase; conviértelos a int para obtener los nombres.

Para consultar los campos específicos de la tarea de Results en todas las tareas, visita la sección Resultados de predicción por tarea.

Exportar#

Exporta un modelo YOLO26n a otro formato, como ONNX, CoreML, etc.

Ejemplo
from ultralytics import YOLO

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

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

Los formatos de exportación disponibles para YOLO26 se muestran en la tabla siguiente. Puedes exportar a cualquier formato mediante el argumento format, es decir, format='onnx' o format='engine'. Puedes predecir o validar directamente con los modelos exportados, es decir, yolo predict model=yolo26n.onnx. Tras completar la exportación, se muestran ejemplos de uso para tu modelo.

FormatoArgumento formatModeloMetadatosArgumentos
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None se establece por defecto en salidas sin procesar para la NMS externa. Configura nms=False para seleccionar una cabeza libre de NMS disponible; los formatos no compatibles recurren a su ruta de salida nativa. Las entradas nms anteriores identifican los formatos que pueden incrustar la NMS con nms=True.

Consulta todos los detalles de export en la página Exportar.

Preguntas frecuentes#

  • Sí. La guía de inicio rápido de Ultralytics Platform explica un flujo de trabajo basado en navegador para anotar conjuntos de datos, entrenar modelos de detección en GPU en la nube y desplegarlos en endpoints de inferencia.

  • Entrenar un modelo YOLO26 con un conjunto de datos personalizado implica varios pasos:

    1. Preparar el conjunto de datos: asegúrate de que tu conjunto de datos esté en formato YOLO. Para obtener orientación, consulta nuestra Guía de conjuntos de datos.
    2. Cargar el modelo: utiliza la biblioteca Ultralytics YOLO para cargar un modelo preentrenado o crear un modelo nuevo a partir de un archivo YAML.
    3. Entrenar el modelo: ejecuta el método train en Python o el comando yolo detect train en CLI.
    Ejemplo
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n.pt")
    
    # Train the model on your custom dataset
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

    Para consultar las opciones de configuración detalladas, visita la página de Configuración.

  • Ultralytics YOLO26 ofrece varios modelos preentrenados para la detección de objetos, la segmentación de instancias, la segmentación semántica y la estimación de la pose. Estos modelos están preentrenados con el conjunto de datos COCO, con Cityscapes para tareas de segmentación semántica o con ImageNet para tareas de clasificación. Estos son algunos de los modelos disponibles:

    Para consultar una lista detallada y las métricas de rendimiento, consulta la sección Modelos.

  • Para validar la precisión de tu modelo YOLO26 entrenado, puedes utilizar el método .val() en Python o el comando yolo detect val en CLI. Esto proporcionará métricas como mAP50-95, mAP50 y otras.

    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

    Para obtener más información sobre la validación, visita la página de Validación.

  • Ultralytics YOLO26 permite exportar modelos a varios formatos, como ONNX, TensorRT, CoreML, entre otros, para garantizar la compatibilidad con distintas plataformas y dispositivos.

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

    Consulta la lista completa de formatos compatibles y las instrucciones en la página de Exportación.

  • Ultralytics YOLO26 está diseñado para ofrecer un rendimiento de vanguardia en detección de objetos, segmentación de instancias, segmentación semántica y estimación de la pose. Estas son algunas ventajas clave:

    1. Modelos preentrenados: utiliza modelos preentrenados con conjuntos de datos populares como COCO e ImageNet para acelerar el desarrollo.
    2. Alta precisión: alcanza puntuaciones mAP impresionantes, lo que garantiza una detección de objetos fiable.
    3. Velocidad: está optimizado para la inferencia en tiempo real, por lo que es ideal para aplicaciones que requieren un procesamiento rápido.
    4. Flexibilidad: exporta modelos a varios formatos, como ONNX y TensorRT, para desplegarlos en múltiples plataformas.

    Explora nuestro blog para conocer casos de uso e historias de éxito que muestran YOLO26 en acción.

Comentarios