Verificação verde
Link copiado para a área de transferência

Coloca a mão na massa com YOLO-World

Aprende sobre YOLO-World, um modelo inovador de deteção de objectos que pode identificar objectos através de avisos de texto. Explora como funciona o YOLO-World e as suas aplicações, e põe mãos à obra com um rápido exemplo de código.

Os projectos de visão por computador envolvem muitas vezes passar 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. YOLO O -World é um modelo zero-shot, o que significa que podes executar inferências de deteção de objectos em imagens sem teres de o treinar.

Os modelos Zero-shot 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çares.

Espreita o YOLO-World

Podes passar uma imagem e um texto a descrever os objectos que procuras através do modelo YOLO-World. Por exemplo, se estiveres interessado em encontrar "uma pessoa com uma camisa vermelha" numa fotografia, 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 Ultralytics YOLOv8 modelo de deteção de objectos, para analisar o conteúdo visual da imagem
  • Um codificador de texto que é pré-treinado pelo CLIP da OpenAI, especificamente concebido para compreender o teu 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 imagem de entrada para identificar potenciais objectos. O codificador de texto transforma a tua 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.

Um exemplo dos resultados de YOLO-World.

Vantagens da escolha de YOLO-World

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

Eis alguns outros benefícios da utilização do YOLO-World:

  • Desempenho em tempo real - YOLO-World suporta desempenho em tempo real, tal como a arquitetura original YOLO . É ideal para aplicações que requerem deteção imediata de objectos, como veículos autónomos e sistemas de vigilância.
  • Segmentação de instâncias - YOLO-World consegue delinear e separar objectos em imagens, mesmo que esses objectos não tenham sido especificamente ensinados durante a formação.
  • Eficiência - YOLO-World combina uma 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

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

Controlo de qualidade na produção

Os produtos fabricados numa linha de montagem são verificados visualmente quanto a 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. 

YOLO-Os modelos mundiais são um grande avanço nesta área. Os modelos podem encontrar defeitos nos produtos, mesmo que não tenham sido 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.

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

Robótica

YOLO-Os modelos do mundo permitem que os robots interajam com ambientes desconhecidos. Sem serem 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, consegue reconhecer e identificar objectos como cadeiras, mesas ou candeeiros, mesmo que não tenha sido treinado especificamente para esses itens.

Para além da deteção de objectos, o YOLO-World também pode 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, no que diz respeito à manutenção automóvel, a capacidade do YOLO-World para reconhecer uma grande variedade de objectos sem marcação manual ou pré-treino extensivo é extremamente útil. YOLO O -World pode ser utilizado para identificar peças de automóveis que precisam de ser substituídas. Pode até automatizar tarefas como controlos de qualidade, detetar defeitos ou peças em falta em carros novos.

Outra aplicação é a deteção de objectos de disparo zero em veículos autónomos. YOLO-As capacidades de deteção de imagem zero da -World podem melhorar a capacidade de um veículo autónomo para detetar e classificar objectos na estrada, tais 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. 

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

Gestão de estoques para lojas de varejo

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. Ultralytics YOLO A capacidade do -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 itens 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 como o YOLO-World pode ser usado extensivamente. A seguir, vamos pôr mãos à obra com YOLO-World e dar uma vista de olhos a um exemplo de codificação.

Um código para percorrer

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 carro, identificar as peças do carro, examinar cada parte do carro para detetar danos e recomendar reparações. Cada parte desse sistema usaria diferentes técnicas e abordagens de IA. Para fins deste passo a passo do código, vamos nos concentrar na parte em que as peças do carro são detectadas.

Com YOLO-World, podes identificar diferentes peças de automóveis numa imagem em menos de 5 minutos. Podes estender este código para experimentar diferentes aplicações utilizando YOLO-World também! Para começar, precisas de instalar o pacoteUltralytics como mostrado abaixo.

# Install ultralytics package
pip install ultralytics

Para mais instruções e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalaçãoUltralytics . Ao instalar os pacotes necessários para YOLOv8, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres soluções e sugestões.

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

A nossa imagem de entrada.

Depois, 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.

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

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'.

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

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

A nossa imagem de saída.

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

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

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

Se voltares a olhar para a imagem de saída, verás que a classe personalizada "porta do carro" não foi detectada. Apesar de suas grandes conquistas, o YOLO-World tem certas limitações. Para combater essas limitações e usar o modelo YOLO-World de forma eficaz, é importante usar os tipos corretos de prompts textuais. 

Aqui tens algumas informações sobre o assunto:

  • YOLO-O mundo pode não precisar de níveis de confiança elevados para fazer previsões exactas, pelo que a redução dos limiares de confiança pode melhorar as taxas de deteção.
  • Adiciona classes que não te interessam. Ajuda 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.
  • Menciona as cores nas tuas 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 uma grande eficiência e precisão e ajudam a automatizar diferentes tarefas em várias aplicações, como o exemplo da identificação de peças de automóveis que praticamente discutimos.

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

Logótipo do FacebookLogótipo do TwitterLogótipo do LinkedInSímbolo de ligação de cópia

Ler mais nesta categoria

Vamos construir juntos o futuro
da IA!

Começa a tua viagem com o futuro da aprendizagem automática