Volver al inicio

YOLOE: detección de objetos sin fine-tuning

YOLOE extiende YOLO con capacidades de detección zero-shot a través de prompts de texto y visuales. RepRTA integra embeddings sin pérdida de velocidad. Adecuado para tareas dinámicas como empaquetado y control de almacén.

YOLOE: detector de todo sin conjuntos de datos
Advertisement 728x90

YOLOE: Un detector universal de objetos con indicaciones de texto y visuales

YOLOE permite la detección de objetos arbitrarios en imágenes mediante descripciones textuales o ejemplos visuales en lugar de clases fijas. La columna vertebral y el PAN se toman del YOLO estándar, pero la cabeza del detector compara las incrustaciones de objetos con vectores de un codificador de texto. El módulo RepRTA refina las incrustaciones de texto y las integra en el modelo mediante reparametrización, manteniendo la velocidad de inferencia sin sobrecarga.

El modelo se inicializa a partir de pesos preentrenados, con las clases establecidas dinámicamente:

from ultralytics import YOLOE

model = YOLOE("yoloe-26m-seg.pt")
model.set_classes(["persona", "autobús"])
results = model.predict("ruta/a/imagen.jpg")

Arquitectura y módulos clave

El YOLO estándar se limita a las clases del conjunto de datos de entrenamiento. En YOLOE, las incrustaciones de clase se generan mediante un codificador de texto antes de la inferencia y se incrustan en los pesos. Esto elimina la necesidad de recopilar conjuntos de datos, etiquetar y realizar iteraciones de entrenamiento.

Google AdInline article slot

Además, se admiten indicaciones visuales mediante SAVPE (Codificador de Indicaciones Visuales Activado Semánticamente). El usuario proporciona una imagen de referencia con cuadros delimitadores, y el modelo busca objetos similares:

import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor

model = YOLOE("yoloe-26m-seg.pt")
visual_prompts = dict(
    bboxes=np.array([
        [221.52, 405.8, 344.98, 857.54],  # Persona
        [120, 425, 160, 445],              # Autobús
    ]),
    cls=np.array([0, 1]),
)
results = model.predict(
    "ultralytics/assets/bus.jpg",
    refer_image="referencia.jpg",
    visual_prompts=visual_prompts,
    predictor=YOLOEVPSegPredictor,
)
results[0].show()

El modo sin indicaciones utiliza un diccionario integrado de más de 1200 categorías:

from ultralytics import YOLOE

model = YOLOE("yoloe-26m-seg-pf.pt")
results = model.predict("ruta/a/imagen.jpg")
results[0].show()

Escenarios de aplicación

YOLOE es eficaz para tareas con objetos claramente descriptibles. Aquí hay casos de uso típicos:

Google AdInline article slot
  • Control de etiquetado: Detección de códigos QR, etiquetas dañadas u orientación de empaques en una cinta transportadora.
  • Monitoreo de zonas: Búsqueda de objetos extraños o herramientas faltantes.
  • Inventario de almacén: Conteo y clasificación de productos cambiantes.
  • Inspección visual: Rayones, astillas o deformaciones en superficies.

En estos escenarios, las indicaciones reemplazan a los conjuntos de datos, acelerando el desarrollo.

Limitaciones y selección de enfoque

El modelo no es adecuado para tareas con clases visualmente similares, objetos específicos o requisitos de precisión >95%. Distinguir detalles finos u objetos no vistos requiere ajuste fino.

Estrategia: Comience con YOLOE para una evaluación de referencia; si es insuficiente, refine los codificadores o cambie al entrenamiento clásico.

Google AdInline article slot

Puntos clave

  • Clases dinámicas: Indicaciones de texto o visuales en lugar de etiquetas fijas.
  • Retención de velocidad: RepRTA reparametriza las incrustaciones, eliminando la sobrecarga en tiempo de ejecución.
  • Flexibilidad: SAVPE para ejemplos visuales, diccionario integrado para cero indicaciones.
  • Practicidad: Adecuado para tareas industriales con objetos cambiantes.
  • Límites: No para alta precisión en datos exóticos.

— Editorial Team

Advertisement 728x90

Leer después