YOLOE: una herramienta de código abierto para la detección de vídeo en tiempo real y la segmentación de objetos

Introducción general

YOLOE es un proyecto de código abierto desarrollado por el Grupo de Inteligencia Multimedia (THU-MIG) de la Escuela de Software de la Universidad de Tsinghua, cuyo nombre completo es "You Only Look Once Eye". Está basado en el framework PyTorch y pertenece a YOLO Una extensión de la serie que detecta y segmenta cualquier objeto en tiempo real. Alojado en GitHub, la característica principal del proyecto es que admite tres modos: indicación textual, indicación visual y detección sin indicación. Los usuarios pueden especificar un objetivo con un texto o una imagen, o el modelo puede reconocer automáticamente más de 1.200 objetos. Los datos oficiales muestran que YOLOE es 1,4 veces más rápido que YOLO-Worldv2 en el conjunto de datos LVIS y 3 veces más barato de entrenar, al tiempo que mantiene una alta precisión. Además, el modelo puede convertirse sin problemas a YOLOv8 o YOLO11 sin sobrecarga adicional, lo que lo hace apto para su despliegue en múltiples dispositivos.

YOLOE:实时视频检测和分割物体的开源工具

 

Lista de funciones

  • Admite la detección de objetos en tiempo real para identificar rápidamente objetivos en imágenes o vídeos.
  • Proporciona una función de segmentación de instancias para delinear con precisión los objetos.
  • Soporta la detección de texto, el usuario introduce texto para especificar el objetivo de detección.
  • Proporciona detección de señales visuales para reconocer objetos similares por referencia a imágenes.
  • El modo sin pregunta integrado detecta automáticamente más de 1.200 objetos comunes.
  • Modelo reparametrizable con YOLOv8/YOLO11 Sin sobrecarga de inferencia.
  • Ofrece una variedad de modelos preentrenados (escala S/M/L) para satisfacer distintos requisitos de rendimiento.
  • Código fuente abierto y documentación para que los desarrolladores lo modifiquen y amplíen.

 

Utilizar la ayuda

El uso de YOLOE se divide en dos partes: instalación y funcionamiento. A continuación se detallan los pasos necesarios para que los usuarios puedan empezar a utilizarlo fácilmente.

Proceso de instalación

  1. Preparar el entorno
    Requiere Python 3.10 y PyTorch. Se recomienda utilizar Conda para crear un entorno virtual:
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. Clonación de código
    Descarga el proyecto YOLOE de GitHub:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. Instalación de dependencias
    Instale las bibliotecas necesarias, incluidas CLIP y MobileCLIP:
pip install -r requirements.txt
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/CLIP
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/ml-mobileclip
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/lvis-api
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
  1. Descargar modelo preentrenado
    YOLOE ofrece una variedad de modelos, tales como yoloe-v8l-seg.pt. Descargar con el siguiente comando:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain

O cárguelo automáticamente con Python:

from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
  1. Verificar la instalación
    Ejecute el comando de prueba para comprobar que el entorno es correcto:

    python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
    

Funciones principales

1. Detección de alertas de texto

  • Descripción funcional: Introduzca el texto para detectar el objeto correspondiente.
  • procedimiento::
    1. Prepare imágenes como bus.jpg.
    2. Ejecute el comando y especifique el objetivo (por ejemplo, "humano, perro, gato"):
      python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
      
    3. Visualice los resultados y la imagen se etiquetará con los objetos detectados.
  • Método de ajusteEl umbral de confianza puede reducirse si no se detecta algo:
    --conf 0.001
    

2. Detección de señales visuales

  • Descripción funcional: Detección de objetos similares con imágenes de referencia.
  • procedimiento::
    1. Prepare imágenes de referencia y de destino.
    2. Entrenamiento de módulos de señales visuales:
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. Haz la prueba:
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. Compruebe la salida y confirme el resultado.
  • advertenciaLas imágenes de referencia deben ser claras y distintivas.

3. Detección no solicitada

  • Descripción funcionalReconoce automáticamente objetos en imágenes sin necesidad de introducir instrucciones.
  • procedimiento::
    1. Asegúrese de que el modelo se carga con un vocabulario preentrenado (admite más de 1200 categorías).
    2. Ejecutar comando:
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. Visualiza los resultados y todos los cadáveres estarán etiquetados.
  • Método de ajuste: Si la detección es incompleta, puede aumentarse el número máximo de detecciones:
    --max_det 1000
    

4. Conversión y despliegue de modelos

  • Descripción funcionalConvertir YOLOE a formato YOLOv8/YOLO11 para su despliegue en diferentes dispositivos.
  • procedimiento::
    1. Instale la herramienta de exportación:
      pip install onnx coremltools onnxslim
      
    2. Ejecute el comando de exportación:
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. El formato de salida es compatible con TensorRT (GPU) o CoreML (iPhone).
  • Datos de rendimientoen la GPU T4.yoloe-v8l-seg.pt Los FPS fueron de 102,5; en el iPhone 12 fueron de 27,2.

5. Formación de modelos personalizados

  • Descripción funcionalEntrene YOLOE con su propio conjunto de datos.
  • procedimiento::
    1. Prepare un conjunto de datos como Objects365v1 o GQA.
    2. Generar anotaciones de segmentación:
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. Generar una caché de entrenamiento:
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. Entrenamiento de carrera:
      python train_seg.py
      
    5. Comprueba el efecto:
      python val.py
      

Otras herramientas

  • Demostración webInicio de la interfaz con Gradio:
    pip install gradio==4.42.0
    python app.py
    

    entrevistas http://127.0.0.1:7860.

 

escenario de aplicación

  1. control de seguridad
    Detección de personas u objetos en tiempo real en el vídeo, etiquetado de contornos para la gestión de la seguridad.
  2. transporte inteligente
    Identificar vehículos y peatones en la carretera para apoyar el análisis del tráfico o la conducción autónoma.
  3. control de calidad industrial
    La detección de defectos en las piezas mediante señales visuales mejora la productividad.
  4. investigación científica
    Procesa imágenes experimentales, etiqueta objetos automáticamente y acelera el procesamiento de datos.

 

CONTROL DE CALIDAD

  1. ¿Cuál es la diferencia entre YOLOE y YOLOv8?
    YOLOE admite la detección de escenas abiertas (textuales, visuales, no provocadas), mientras que YOLOv8 se limita a categorías fijas.YOLOE también puede convertirse a YOLOv8 sin sobrecarga adicional.
  2. ¿Necesita una GPU?
    No es necesario. La CPU puede ejecutarlo, pero una GPU (por ejemplo, CUDA) será más rápida.
  3. ¿Y si la prueba no es exacta?
    Bajar el umbral de confianza (--conf 0.001) o aumentar el número de pruebas (--max_det 1000).
  4. ¿Qué dispositivos son compatibles?
    Soporte para PC (TensorRT), iPhone (CoreML) y muchos otros dispositivos.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...