Yolo Vision Shenzhen
Shenzhen
Junte-se agora

Pôr mãos à obra com o YOLO

Abirami Vina

4 min de leitura

5 de abril de 2024

Saiba mais sobre o YOLO, um modelo inovador de deteção de objectos que pode identificar objectos através de avisos de texto. Explore o funcionamento do YOLO 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 YOLO, um modelo de deteção de objectos em tempo real e de vocabulário aberto, a 31 de janeiro de 2024. YOLO é um modelo zero-shot, 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 YOLO e as suas potenciais utilizações e partilhar um exemplo prático de código para começar.

Uma espreitadela no YOLO

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

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

  • Um detetor baseado na tecnologia Ultralytics YOLOv8 modelo de deteção de objectos, para analisar o conteúdo visual da imagem.
  • Um codificador de texto pré-treinado pelo CLIP da OpenAI, projetado especificamente para entender seu prompt 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 YOLO detect e localize com precisão os objectos descritos na sua mensagem dentro da imagem.

Um exemplo de resultados do YOLO.

Vantagens de escolher YOLO

Uma das maiores vantagens da utilização do YOLO é 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:

  • Desempenho em tempo real - YOLO 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 - YOLO consegue delinear e separar objectos em imagens, mesmo que esses objectos não tenham sido especificamente ensinados durante a sua formação.
  • Eficiência - YOLO 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

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

Controle de qualidade na indústria

Os produtos fabricados em uma linha de montagem são verificados visualmente quanto a defeitos antes de serem embalados. A detecção de defeitos geralmente é feita manualmente, o que leva tempo e pode levar a erros. Esses erros podem causar problemas como altos custos e a necessidade de reparos ou recalls. Para ajudar com isso, câmeras de visão de máquina especiais e sistemas de IA foram criados para realizar essas verificações. 

Os modelos YOLO são um grande avanço neste domínio. 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.

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

Robótica

Os modelos YOLO 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, consegue 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, YOLO pode também determinar as condições desses objectos, graças à sua funcionalidade "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 detect .

IA na indústria automobilística

A indústria automóvel envolve muitas partes móveis, e YOLO pode ser utilizado para diferentes aplicações automóveis. Por exemplo, quando se trata de manutenção de automóveis, a capacidade do YOLO de reconhecer uma grande variedade de objectos sem marcação manual ou pré-treino extensivo é extremamente útil. YOLO 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 disparo zero em veículos autónomos. As capacidades de deteção de imagem zero do YOLO podem melhorar a capacidade de um veículo autónomo para detect e classify objectos na estrada, como peões, sinais de trânsito e outros veículos, em tempo real. Ao fazê-lo, pode ajudar a detect obstáculos e evitar acidentes para uma viagem mais segura. 

Um exemplo de detecção de objetos em uma estrada.

Gestão de inventário 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. A capacidade do Ultralytics YOLO 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ário, YOLO 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 o quão extensivamente YOLO pode ser utilizado. De seguida, vamos pôr mãos à obra com o YOLO e dar uma vista de olhos a um exemplo de codificação.

Uma análise detalhada do código

Como mencionámos anteriormente, YOLO pode ser utilizado para detect 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, é 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 YOLO também! Para começar, precisamos de instalar o pacoteUltralytics como mostrado abaixo.

Para obter mais instruções e práticas recomendadas relacionadas ao processo de instalação, consulte nosso Guia de instalação doUltralytics . 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 baixar uma imagem da Internet para executar nossas inferências. Vamos usar a imagem abaixo.

Nossa imagem de entrada.

Em seguida, importaremos o pacote necessário, inicializaremos nosso modelo e definiremos as classes que estamos procurando em nossa imagem de entrada. Aqui, estamos interessados nas seguintes classes: carro, roda, porta do carro, espelho do carro e placa.

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ãoIoU) 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á salva em seus arquivos.

Nossa imagem de saída.

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

Leia a nossa página de documentação sobre o YOLO 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.

Você notou 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 conquistas, YOLO tem algumas limitações. Para combater estas limitações e utilizar o modelo YOLO de forma eficaz, é importante utilizar os tipos corretos de avisos textuais. 

Aqui está alguma informação sobre isso:

  • YOLO 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 detecção de objetos primária, reduzindo falsos positivos para objetos secundários.
  • Detectar objetos maiores primeiro, antes de focar em detalhes menores, pode melhorar a precisão da detecção.
  • Mencionar cores nas aulas para detect objectos com base em pistas de cor.
  • A descrição dos tamanhos dos objectos nos avisos também pode ajudar YOLO a identificar objectos específicos com mais precisão.
  • Métodos de pós-processamento, como filtrar predições por tamanho ou ajustar os níveis de confiança por classe, podem melhorar ainda mais os resultados da detecção de objetos.

Os limites são infinitos

De um modo geral, os modelos YOLO 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 parecem ser infinitas!

Vamos construir o futuro
da IA juntos!

Comece sua jornada com o futuro do aprendizado de máquina

Comece gratuitamente