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.
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
- 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
- Código de clonagem
Faça o download do projeto YOLOE no GitHub:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
- 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
- Download do modelo pré-treinado
A YOLOE oferece uma variedade de modelos, comoyoloe-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")
- 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::
- Prepare imagens como
bus.jpg
. - 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
- Visualize os resultados e a imagem será rotulada com os objetos detectados.
- Prepare imagens como
- 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::
- Prepare imagens de referência e de destino.
- Treinamento de módulos de dicas visuais:
python tools/convert_segm2det.py python train_vp.py python tools/get_vp_segm.py
- Execute o teste:
python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
- 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::
- Certifique-se de que o modelo esteja carregado com um vocabulário pré-treinado (há suporte para mais de 1.200 categorias).
- Executar comando:
python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
- 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::
- Instale a ferramenta de exportação:
pip install onnx coremltools onnxslim
- Execute o comando export:
python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
- O formato de saída é compatível com TensorRT (GPU) ou CoreML (iPhone).
- Instale a ferramenta de exportação:
- 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::
- Prepare um conjunto de dados, como o Objects365v1 ou o GQA.
- 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
- 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
- Treinamento de corrida:
python train_seg.py
- 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
- 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. - transporte inteligente
Identifique veículos e pedestres na estrada para dar suporte à análise de tráfego ou à direção autônoma. - controle de qualidade industrial
A detecção de defeitos em peças com dicas visuais aumenta a produtividade. - pesquisa científica
Processa imagens experimentais, rotula objetos automaticamente e acelera o processamento de dados.
QA
- 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. - Precisa de uma GPU?
Não é necessário. A CPU pode ser executada, mas a GPU (por exemplo, CUDA) será mais rápida. - 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
). - Quais dispositivos são compatíveis?
Suporte para PC (TensorRT), iPhone (CoreML) e muitos outros dispositivos.