Pôr mãos à obra com o YOLO-World

Abirami Vina

4 min ler

5 de abril de 2024

Saiba mais sobre o YOLO-World, um modelo inovador de deteção de objectos que pode identificar objectos através de avisos de texto. Explore o funcionamento do YOLO-World e as suas aplicações, e ponha mãos à obra com um rápido exemplo de código.

Os projectos de visão por computador implicam muitas vezes gastar muito tempo a anotar dados e a treinar modelos de deteção de objectos. Mas, em breve, isso poderá ser uma coisa do passado. O Laboratório de IA da Tencent lançou o YOLO-World, um modelo de deteção de objectos em tempo real e de vocabulário aberto, a 31 de janeiro de 2024. O YOLO-World é um modelo de disparo zero, o que significa que pode executar inferências de deteção de objectos em imagens sem ter de o treinar.

Os modelos de disparo zero têm o potencial de mudar a forma como abordamos as aplicações de visão por computador. Neste blogue, vamos explorar como funciona o YOLO-World e as suas potenciais utilizações e partilhar um exemplo prático de código para começar.

Uma espreitadela no mundo YOLO

Pode passar uma imagem e um texto a descrever os objectos que procura através do modelo YOLO-World. Por exemplo, se estiver interessado em encontrar "uma pessoa com uma camisa vermelha" numa fotografia, o YOLO-World recebe esta informação e começa a trabalhar.

A arquitetura única do modelo combina três elementos principais:

  • Um detetor baseado no modelo de deteção de objectos Ultralytics YOLOv8, para analisar o conteúdo visual da imagem.
  • Um codificador de texto que é pré-treinado pelo CLIP da OpenAI, especificamente concebido para compreender o seu pedido de texto.
  • Uma rede, a Vision-Language Path Aggregation Network (RepVL-PAN), que integra os dados de imagem processados com os dados de texto.

O detetor YOLO analisa a sua imagem de entrada para identificar potenciais objectos. O codificador de texto transforma a sua descrição num formato que o modelo possa compreender. Estes dois fluxos de informação são depois fundidos através do RepVL-PAN utilizando a fusão multi-nível de modalidades cruzadas. Isto permite que o YOLO-World detecte e localize com precisão os objectos descritos na sua mensagem dentro da imagem.

__wf_reserved_inherit
Um exemplo de resultados do YOLO-World.

Vantagens de escolher o YOLO-World

Uma das maiores vantagens da utilização do YOLO-World é o facto de não ser necessário treinar o modelo para uma classe específica. O modelo já aprendeu com pares de imagens e textos, pelo que sabe como encontrar objectos com base em descrições. Pode evitar horas de recolha de dados, anotação de dados, treino em GPUs dispendiosas, etc.

Eis algumas outras vantagens da utilização do YOLO-World:

  • Desempenho em tempo real - O YOLO-World suporta o desempenho em tempo real, tal como a arquitetura YOLO original. É ideal para aplicações que requerem deteção imediata de objectos, tais como veículos autónomos e sistemas de vigilância.
  • Segmentação de instâncias - O YOLO-World consegue delinear e separar objectos em imagens, mesmo que esses objectos não tenham sido especificamente ensinados durante a sua formação.
  • Eficiência - O YOLO-World combina elevada precisão com eficiência computacional, tornando-o prático para aplicações no mundo real. A sua arquitetura simplificada torna possível a deteção rápida de objectos sem exigências excessivas de capacidade de processamento.

As aplicações do YOLO-World

Os modelos YOLO-World podem ser utilizados para uma grande variedade de aplicações. Vamos explorar algumas delas.

Controlo de qualidade no fabrico

Os produtos fabricados numa linha de montagem são verificados visualmente para detetar defeitos antes de serem embalados. A deteção de defeitos é frequentemente feita à mão, o que leva tempo e pode levar a erros. Estes erros podem causar problemas como custos elevados e a necessidade de reparações ou recolhas. Para ajudar nesta tarefa, foram criadas câmaras especiais de visão artificial e sistemas de IA para efetuar estas verificações. 

Os modelos YOLO-World são um grande avanço neste domínio. Podem encontrar defeitos nos produtos, mesmo quando não foram treinados para esse problema específico, utilizando as suas capacidades de "zero-shot". Por exemplo, uma fábrica que produz garrafas de água pode facilmente identificar uma garrafa devidamente fechada com uma tampa e uma garrafa sem tampa ou com defeito utilizando o YOLO-World.

__wf_reserved_inherit
Um exemplo de inspeção de tampas de garrafas.

Robótica

Os modelos YOLO-World permitem que os robots interajam com ambientes desconhecidos. Sem terem sido treinados em objectos específicos que possam estar numa sala, conseguem identificar os objectos que estão presentes. Assim, digamos que um robô entra numa sala onde nunca esteve antes. Com um modelo YOLO-World, pode reconhecer e identificar objectos como cadeiras, mesas ou candeeiros, mesmo que não tenha sido especificamente treinado para esses itens.

Para além da deteção de objectos, o YOLO-World pode também determinar as condições desses objectos, graças à sua funcionalidade "prompt-then-detect". Por exemplo, na robótica agrícola , pode ser utilizado para identificar frutos maduros e frutos não maduros, programando o robô para os detetar.

A IA na indústria automóvel

A indústria automóvel envolve muitas partes móveis, e o YOLO-World pode ser utilizado para diferentes aplicações automóveis. Por exemplo, quando se trata de manutenção de automóveis, a capacidade do YOLO-World de reconhecer uma grande variedade de objectos sem marcação manual ou pré-treino extensivo é extremamente útil. O YOLO-World pode ser utilizado para identificar peças de automóveis que precisam de ser substituídas. Pode mesmo automatizar tarefas como controlos de qualidade, detetar defeitos ou peças em falta em carros novos.

Uma outra aplicação é a deteção de objectos de imagem zero em veículos autónomos. As capacidades de deteção de imagem zero do YOLO-World podem melhorar a capacidade de um veículo autónomo para detetar e classificar objectos na estrada, como peões, sinais de trânsito e outros veículos, em tempo real. Ao fazê-lo, pode ajudar a detetar obstáculos e evitar acidentes para uma viagem mais segura. 

__wf_reserved_inherit
Um exemplo de deteção de objectos numa estrada.

Gestão de inventário para lojas de retalho

A identificação de objectos nas prateleiras das lojas de retalho é uma parte importante do acompanhamento do inventário, da manutenção de stocks e da automatização de processos. A capacidade do Ultralytics YOLO-World de reconhecer uma grande variedade de objectos sem etiquetagem manual ou pré-treino extensivo é extremamente útil para a gestão de inventário. 

Por exemplo, na gestão de inventários, o YOLO-World pode rapidamente identificar e categorizar artigos numa prateleira, como diferentes marcas de bebidas energéticas. As lojas de retalho podem manter um inventário preciso, gerir eficazmente os níveis de stock e facilitar as operações da cadeia de fornecimento. 

Todas as aplicações são únicas e mostram o quão extensivamente o YOLO-World pode ser utilizado. De seguida, vamos pôr mãos à obra com o YOLO-World e dar uma vista de olhos a um exemplo de codificação.

Um percurso pelo código

Como mencionámos anteriormente, o YOLO-World pode ser utilizado para detetar diferentes partes de um automóvel para manutenção. Uma aplicação de visão computacional que detecte quaisquer reparações necessárias implicaria tirar uma fotografia do automóvel, identificar as peças do automóvel, examinar cada parte do automóvel para detetar danos e recomendar reparações. Cada parte deste sistema utilizaria diferentes técnicas e abordagens de IA. Para os fins deste passo a passo do código, vamos nos concentrar na parte em que as peças do carro são detectadas.

Com o YOLO-World, é possível identificar diferentes peças de automóveis numa imagem em menos de 5 minutos. É possível estender este código para experimentar diferentes aplicações usando o YOLO-World também! Para começar, precisamos de instalar o pacote Ultralytics como mostrado abaixo.

Para obter mais instruções e práticas recomendadas relacionadas ao processo de instalação, consulte nosso Guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLOv8, se encontrar alguma dificuldade, consulte o nosso guia de Problemas comuns para obter soluções e dicas.

Depois de instalar o pacote necessário, podemos descarregar uma imagem da Internet para executar as nossas inferências. Vamos utilizar a imagem abaixo.

__wf_reserved_inherit
A nossa imagem de entrada.

De seguida, importamos o pacote necessário, inicializamos o nosso modelo e definimos as classes que procuramos na nossa imagem de entrada. Neste caso, estamos interessados nas seguintes classes: carro, roda, porta do carro, espelho do carro e matrícula.

Em seguida, utilizaremos o método de previsão, fornecendo o caminho da imagem juntamente com parâmetros para o número máximo de detecções e limiares para intersecção sobre união (IoU) e confiança (conf) para executar uma inferência na imagem. Por fim, os objectos detectados são guardados num ficheiro chamado 'result.jpg'.

A seguinte imagem de saída será guardada nos seus ficheiros.

__wf_reserved_inherit
A nossa imagem de saída.

Se preferir ver o que o YOLO-World pode fazer sem codificação, pode ir à página de demonstração do YOLO-World, carregar uma imagem de entrada e introduzir as classes personalizadas. 

Leia a nossa página de documentação sobre o YOLO-World para saber como guardar o modelo com as classes personalizadas para que possa ser utilizado diretamente mais tarde sem ter de introduzir repetidamente as classes personalizadas.

Reparou que as portas do carro não foram detectadas?

Se voltar a olhar para a imagem de saída, verá que a classe personalizada "porta do carro" não foi detectada. Apesar das suas grandes realizações, o YOLO-World tem algumas limitações. Para combater estas limitações e utilizar o modelo YOLO-World de forma eficaz, é importante utilizar os tipos corretos de avisos textuais. 

Eis algumas informações sobre o assunto:

  • O YOLO-World pode não necessitar de níveis de confiança elevados para previsões exactas, pelo que a redução dos limiares de confiança pode melhorar as taxas de deteção.
  • Adicione classes nas quais você não está interessado. Isso ajudará a melhorar a deteção de objectos primários, reduzindo os falsos positivos para objectos secundários.
  • Detetar primeiro os objectos maiores antes de se concentrar nos detalhes mais pequenos pode melhorar a precisão da deteção.
  • Mencionar cores nas aulas para detetar objectos com base em pistas de cor.
  • A descrição dos tamanhos dos objectos nos avisos também pode ajudar o YOLO-World a identificar objectos específicos com mais precisão.
  • Os métodos de pós-processamento, como a filtragem de previsões por tamanho ou o ajuste dos níveis de confiança por classe, podem melhorar ainda mais os resultados da deteção de objectos.

Os limites são infinitos

De um modo geral, os modelos YOLO-World podem ser transformados numa ferramenta poderosa com as suas capacidades avançadas de deteção de objectos. Proporcionam grande eficiência, 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 praticamente discutimos.

Não hesite em explorar o nosso repositório GitHub para saber mais sobre as nossas contribuições para a visão computacional e a IA. Se estiver curioso sobre a forma como a IA está a remodelar sectores como a tecnologia dos cuidados de saúde , consulte as nossas páginas de soluções. As possibilidades com inovações como o YOLO-World parecem ser infinitas!

Vamos construir juntos o futuro
da IA!

Comece a sua viagem com o futuro da aprendizagem automática

Comece gratuitamente
Ligação copiada para a área de transferência