Colocando a mão na massa com YOLO-World
Saiba mais sobre o YOLO-World, um modelo de detecção de objetos em tempo real com vocabulário aberto que encontra objetos a partir de prompts de texto, e conheça suas aplicações e um exemplo rápido de código.
Abirami Vina9 min de leitura
Os projetos de visão computacional geralmente envolvem muito tempo dedicado à anotação de dados e ao treinamento de modelos de detecção de objetos. Mas isso pode mudar em breve. O AI Lab da Tencent lançou o YOLO-World, um modelo de detecção de objetos em tempo real e com vocabulário aberto, em 31 de janeiro de 2024. O YOLO-World é um modelo zero-shot, o que significa que você pode executar inferência de detecção de objetos em imagens sem precisar treiná-lo.
Os modelos zero-shot podem mudar a forma como abordamos as aplicações de visão computacional. Neste artigo, vamos explorar como funciona o YOLO-World, as suas possíveis utilizações e apresentar um exemplo prático de código para começares.
Uma visão geral do YOLO-World#
Podes fornecer ao modelo YOLO-World uma imagem e um comando de texto que descreva os objetos que procuras. Por exemplo, se quiseres encontrar «uma pessoa com uma camisola vermelha» numa fotografia, o YOLO-World recebe essa entrada e começa a analisar a imagem.
A arquitetura única do modelo combina três elementos principais:
- Um detetor baseado no modelo de deteção de objetos Ultralytics YOLOv8, que analisa o conteúdo visual da imagem.
- Um codificador de texto pré-treinado pelo CLIP da OpenAI, projetado especificamente para compreender seu prompt de texto.
- Uma rede, a Rede de Agregação de Caminhos de Visão e Linguagem Reparametrizável (RepVL-PAN), que integra os dados de imagem processados aos dados de texto.
O detetor YOLO analisa a imagem de entrada para identificar objetos potenciais. O codificador de texto transforma a tua descrição num formato que o modelo consegue compreender. Em seguida, estes dois fluxos de informação são combinados através da RepVL-PAN, com fusão multimodal em vários níveis. Isto permite ao YOLO-World detetar e localizar com precisão, na imagem, os objetos descritos no teu comando.

Um exemplo de resultados do YOLO-World.
Vantagens de escolher o YOLO-World#
Uma das maiores vantagens do YOLO-World é não teres de treinar o modelo para uma classe específica. O modelo já aprendeu com pares de imagens e textos, por isso sabe encontrar objetos com base em descrições. Podes evitar horas a recolher e anotar dados, a treinar em GPU dispendiosas e muito mais.
Eis outras vantagens da utilização do YOLO-World:
- Desempenho em tempo real - O YOLO-World oferece desempenho em tempo real, tal como a arquitetura YOLO original. É ideal para aplicações que exigem deteção imediata de objetos, como veículos autónomos e sistemas de vigilância.
- Segmentação de instâncias - A versão original do YOLO-World inclui variantes de segmentação; no pacote Ultralytics, o YOLO-World executa detecção, e o YOLOE adiciona segmentação de instâncias com vocabulário aberto.
- Eficiência - O YOLO-World combina elevada precisão com eficiência computacional, o que o torna prático para aplicações do mundo real. A sua arquitetura otimizada permite uma deteção rápida de objetos sem exigir excessiva capacidade de processamento.
Aplicações do YOLO-World#
Os modelos YOLO-World podem ser utilizados numa grande variedade de aplicações. Vamos explorar algumas delas.
Controlo de qualidade na produção#
Os produtos fabricados numa linha de montagem são inspecionados visualmente para detetar defeitos antes de serem embalados. A deteção de defeitos é muitas vezes feita manualmente, o que demora tempo e pode levar a erros. Esses erros podem causar problemas como custos elevados e a necessidade de reparações ou recolhas de produtos. Para ajudar a resolver esta questão, foram criadas câmaras especiais de visão artificial e sistemas de IA para realizar estas inspeções.
Os modelos YOLO-World representam um grande avanço nessa área. Graças aos recursos zero-shot, eles podem encontrar defeitos em produtos mesmo sem terem sido treinados para esse problema específico. Por exemplo, uma fábrica que produz garrafas de água pode usar o YOLO-World para distinguir uma garrafa corretamente vedada com tampa de outra com a tampa ausente ou defeituosa.

Um exemplo de inspeção de tampas de garrafas.
Robótica#
Os modelos YOLO-World permitem que os robôs interajam com ambientes desconhecidos. Mesmo sem terem sido treinados com objetos específicos que possam estar numa divisão, conseguem identificar os objetos presentes. Por exemplo, se um robô entrar numa divisão onde nunca esteve, um modelo YOLO-World permite-lhe reconhecer e identificar objetos como cadeiras, mesas ou candeeiros, mesmo que não tenha sido especificamente treinado com esses objetos.
Além da deteção de objetos, o YOLO-World também consegue determinar o estado desses objetos graças à funcionalidade «comandar e depois detetar». Por exemplo, na robótica agrícola, pode ser usado para identificar frutos maduros e verdes, programando o robô para os detetar.
IA na indústria automóvel#
A indústria automobilística envolve muitas partes móveis, e o YOLO-World pode ser usado em diferentes aplicações automotivas. Por exemplo, na manutenção de automóveis, o recurso do YOLO-World de reconhecer uma grande variedade de objetos sem marcação manual ou pré-treinamento extensivo é muito útil. O YOLO-World pode ser usado para identificar peças de automóveis que precisam ser substituídas. Ele pode até automatizar tarefas como verificações de qualidade, identificando defeitos ou peças ausentes em carros novos.
Outra aplicação é a deteção zero-shot de objetos em carros autónomos. As capacidades de deteção zero-shot do YOLO-World podem melhorar a capacidade de um veículo autónomo para detetar e classificar objetos na estrada em tempo real, como peões, sinais de trânsito e outros veículos. Desta forma, pode ajudar a detetar obstáculos e evitar acidentes, tornando a viagem mais segura.

Um exemplo de deteção de objetos numa estrada.
Gestão de inventário em lojas de retalho#
Identificar objetos nas prateleiras de lojas de varejo é importante para rastrear o estoque, manter os níveis de produtos e automatizar processos. A detecção de vocabulário aberto do Ultralytics YOLO-World também é útil para o gerenciamento de estoque.
Por exemplo, na gestão de inventário, o YOLO-World consegue detetar e categorizar rapidamente artigos numa prateleira, como diferentes marcas de bebidas energéticas. As lojas de retalho podem manter um inventário preciso, gerir os níveis de stock de forma eficiente e otimizar as operações da cadeia de abastecimento.
Todas estas aplicações são distintas e demonstram a ampla variedade de utilizações do YOLO-World. Agora, vamos experimentar o YOLO-World e ver um exemplo de código.
Passo a passo pelo código#
Como mencionámos anteriormente, o YOLO-World pode ser usado para detetar diferentes peças de um automóvel para fins de manutenção. Uma aplicação de visão computacional que detete reparações necessárias teria de tirar uma fotografia do automóvel, identificar as peças, analisar cada uma delas para detetar danos e recomendar reparações. Cada componente deste sistema recorreria a diferentes técnicas e abordagens de IA. Neste passo a passo do código, vamos concentrar-nos na deteção das peças do automóvel.
Com o YOLO-World, podes identificar diferentes peças de um automóvel numa imagem em menos de 5 minutos. Também podes adaptar este código para experimentar várias aplicações com o YOLO-World! Para começar, vamos instalar o pacote Ultralytics com pip, como mostrado abaixo.
pip install ultralyticsPara obteres mais instruções e boas práticas sobre o processo de instalação, consulta o nosso guia de instalação do Ultralytics. Se tiveres dificuldades ao instalar os pacotes necessários para o YOLOv8, consulta o nosso guia de problemas comuns, onde encontrarás soluções e sugestões.
Depois de instalares o pacote necessário, podemos descarregar uma imagem da Internet para executar as inferências. Vamos usar a imagem abaixo.

A nossa imagem de entrada.
Em seguida, vamos importar o pacote necessário, inicializar o modelo e definir as classes que procuramos na imagem de entrada. Neste caso, temos interesse nas seguintes classes: automóvel, roda, porta de automóvel, espelho retrovisor e matrícula.
Em seguida, usaremos o método predict, fornecendo o caminho da imagem junto com parâmetros para o número máximo de detecções e os limites de interseção sobre união (IoU) e confiança (conf) para executar a inferência na imagem. Por fim, os objetos detectados são salvos em um arquivo chamado result.jpg.
from ultralytics import YOLOWorld
# Inicializa um modelo YOLO-World
model = YOLOWorld("yolov8s-worldv2.pt")
# Define as classes personalizadas a serem detectadas
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# Executa inferência com um número máximo de detecções e limites de IoU e confiança
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# Salva o resultado anotado
results[0].save("result.jpg")A imagem de saída seguinte será guardada nos teus ficheiros.

A nossa imagem de saída.
Se preferir ver o que o YOLO-World pode fazer sem programar, você pode acessar a página de demonstração do YOLO-World, carregar uma imagem de entrada e inserir as classes personalizadas.
Lê a nossa documentação sobre o YOLO-World para saberes como guardar o modelo com as classes personalizadas, de modo a poderes utilizá-lo diretamente mais tarde sem ter de voltar a introduzi-las.
Reparaste que as portas do automóvel não foram detetadas?#
Se voltares a observar a imagem de saída, vais reparar que a classe personalizada «porta de automóvel» não foi detetada. Apesar dos seus grandes avanços, o YOLO-World tem algumas limitações. Para as contornar e utilizar o modelo YOLO-World de forma eficaz, é importante usar os tipos corretos de comandos de texto.
Eis algumas informações úteis:
- O YOLO-World pode não precisar de níveis de confiança elevados para fazer previsões precisas, pelo que reduzir os limiares de confiança pode aumentar as taxas de deteção.
- Adicione classes que não são do seu interesse. Isso ajudará a melhorar a detecção dos objetos principais, reduzindo os falsos positivos de objetos secundários.
- Detetar primeiro os objetos maiores, antes de te concentrares nos detalhes mais pequenos, pode melhorar a precisão da deteção.
- Indica as cores nas classes para detetar objetos com base em pistas de cor.
- Descrever o tamanho dos objetos nos comandos também pode ajudar o YOLO-World a identificar objetos específicos com maior precisão.
- Os métodos de pós-processamento, como filtrar as previsões por tamanho ou ajustar os níveis de confiança por classe, podem melhorar ainda mais os resultados da deteção de objetos.
As possibilidades são infinitas#
Em suma, os modelos YOLO-World podem tornar-se ferramentas poderosas graças às suas capacidades avançadas de deteção de objetos. Oferecem grande eficiência e precisão e ajudam a automatizar diferentes tarefas em várias aplicações, como o exemplo de identificação de peças de automóveis que explorámos na prática.
Fica à vontade para explorar nosso repositório no GitHub e saber mais sobre nossas contribuições para a visão computacional e a IA. Se quiser saber como a IA está transformando setores como a tecnologia de saúde, confira nossas páginas de soluções. O YOLO-World abre muitas novas possibilidades para a IA visual.
Escrito por
Comentários
Faça uma pergunta, compartilhe seus resultados ou ajude alguém.










