Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

YOLOE: uma ferramenta de código aberto para detecção de vídeo em tempo real e segmentação de objetos

Introdução geral

O YOLOE é um projeto de código aberto desenvolvido pelo Grupo de Inteligência Multimídia (THU-MIG) da Escola de Software da Universidade de Tsinghua, com o nome completo "You Only Look Once Eye". Ele é baseado na estrutura PyTorch e pertence a YOLO Uma extensão da série que detecta e segmenta qualquer objeto em tempo real. Hospedado no GitHub, o principal recurso do projeto é que ele oferece suporte a três modos: sugestão textual, sugestão visual e detecção não solicitada. Os usuários podem especificar um alvo com um texto ou uma imagem, ou o modelo pode reconhecer automaticamente mais de 1.200 objetos. Os dados oficiais mostram que o YOLOE é 1,4x mais rápido do que o YOLO-Worldv2 no conjunto de dados LVIS e 3x mais barato para treinar, mantendo a alta precisão. O modelo também pode ser perfeitamente convertido para YOLOv8 ou YOLO11 sem nenhuma sobrecarga adicional, tornando-o adequado para implantação em vários dispositivos.

YOLOE: uma ferramenta de código aberto para detectar e segmentar qualquer objeto em tempo real-1


 

Lista de funções

  • Oferece suporte à detecção de objetos em tempo real para identificar rapidamente alvos em imagens ou vídeos.
  • Oferece a função de segmentação de instância para delinear objetos com precisão.
  • Suporte à detecção de prompt de texto, o usuário insere o texto para especificar o alvo da detecção.
  • Fornece detecção de dicas visuais para reconhecer objetos semelhantes com base em imagens.
  • O modo sem prompt integrado detecta automaticamente mais de 1.200 objetos comuns.
  • O modelo pode ser reparametrizado com YOLOv8/YOLO11 Sem sobrecarga de inferência.
  • Fornece uma variedade de modelos pré-treinados (escala S/M/L) para atender a diferentes requisitos de desempenho.
  • Código-fonte aberto e documentação para os desenvolvedores modificarem e ampliarem.

 

Usando a Ajuda

O uso do YOLOE é dividido em duas partes: instalação e operação. A seguir, apresentamos as etapas detalhadas para garantir que os usuários possam começar facilmente.

Processo de instalação

  1. Preparação do ambiente
    Requer Python 3.10 e PyTorch. É recomendável usar o Conda para criar um ambiente virtual:
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. Código de clonagem
    Faça o download do projeto YOLOE no GitHub:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. Instalação de dependências
    Instale as bibliotecas necessárias, incluindo CLIP e 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. Download do modelo pré-treinado
    A YOLOE oferece uma variedade de modelos, como yoloe-v8l-seg.pt. Faça o download com o seguinte comando:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain

Ou carregue-o automaticamente com o Python:

from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
  1. Verificar a instalação
    Execute o comando de teste para verificar se o ambiente está OK:

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

Funções principais

1. detecção de alerta de texto

  • Descrição funcionalDigite o texto para detectar o objeto correspondente.
  • procedimento::
    1. Prepare imagens como bus.jpg.
    2. Execute o comando e especifique o alvo (por exemplo, "humano, cachorro, 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. Visualize os resultados e a imagem será rotulada com os objetos detectados.
  • Método de ajusteLimite de confiança: O limite de confiança pode ser reduzido se uma detecção for perdida:
    --conf 0.001
    

2 Detecção de dicas visuais

  • Descrição funcionalDetecção de objetos semelhantes com imagens de referência.
  • procedimento::
    1. Prepare imagens de referência e de destino.
    2. Treinamento de módulos de dicas visuais:
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. Execute o teste:
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. Verifique a saída e confirme o resultado.
  • advertênciaFotos de referência: As fotos de referência precisam ser claras e distintas.

3. detecção não solicitada

  • Descrição funcionalReconhece automaticamente objetos em imagens sem a necessidade de digitar avisos.
  • procedimento::
    1. Certifique-se de que o modelo esteja carregado com um vocabulário pré-treinado (há suporte para mais de 1.200 categorias).
    2. Executar comando:
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. Visualize os resultados e todos os corpos serão rotulados.
  • Método de ajusteSe a detecção estiver incompleta, o número máximo de detecções poderá ser aumentado:
    --max_det 1000
    

4. conversão e implantação de modelos

  • Descrição funcionalYOLOE: converta o YOLOE para o formato YOLOv8/YOLO11 para implantação em diferentes dispositivos.
  • procedimento::
    1. Instale a ferramenta de exportação:
      pip install onnx coremltools onnxslim
      
    2. Execute o comando export:
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. O formato de saída é compatível com TensorRT (GPU) ou CoreML (iPhone).
  • Dados de desempenho: na GPU T4.yoloe-v8l-seg.pt O FPS foi de 102,5; no iPhone 12, foi de 27,2.

5. treinamento de modelos personalizados

  • Descrição funcionalTreine o YOLOE com seu próprio conjunto de dados.
  • procedimento::
    1. Prepare um conjunto de dados, como o Objects365v1 ou o GQA.
    2. Gerar anotações de segmentação:
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. Gerar um cache de treinamento:
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. Treinamento de corrida:
      python train_seg.py
      
    5. Verifique o efeito:
      python val.py
      

Outras ferramentas

  • Demonstração na WebIniciar a interface com o Gradio:
    pip install gradio==4.42.0
    python app.py
    

    entrevistas http://127.0.0.1:7860.

 

cenário do aplicativo

  1. monitoramento de segurança
    Detecção de pessoas ou objetos em tempo real no vídeo, rotulando os contornos para o gerenciamento da segurança.
  2. transporte inteligente
    Identifique veículos e pedestres na estrada para dar suporte à análise de tráfego ou à direção autônoma.
  3. controle de qualidade industrial
    A detecção de defeitos em peças com dicas visuais aumenta a produtividade.
  4. pesquisa científica
    Processa imagens experimentais, rotula objetos automaticamente e acelera o processamento de dados.

 

QA

  1. Qual é a diferença entre o YOLOE e o YOLOv8?
    O YOLOE é compatível com a detecção de cenas abertas (textuais, visuais, não solicitadas), enquanto o YOLOv8 se limita a categorias fixas. O YOLOE também pode ser convertido para o YOLOv8 sem nenhuma sobrecarga adicional.
  2. Precisa de uma GPU?
    Não é necessário. A CPU pode ser executada, mas a GPU (por exemplo, CUDA) será mais rápida.
  3. E se o teste não for preciso?
    Diminuir o limite de confiança (--conf 0.001) ou aumentar o número de testes (--max_det 1000).
  4. Quais dispositivos são compatíveis?
    Suporte para PC (TensorRT), iPhone (CoreML) e muitos outros dispositivos.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " YOLOE: uma ferramenta de código aberto para detecção de vídeo em tempo real e segmentação de objetos
pt_BRPortuguês do Brasil