Connect with us

Inteligência artificial

Desempacotando o YOLOv8: A Obra-Prima Viral de Visão Computacional da Ultralytics

mm
Blog featured image for YOLOv8

Até agora, a detecção de objetos em imagens usando modelos de visão computacional enfrentou um grande obstáculo de alguns segundos de atraso devido ao tempo de processamento. Esse atraso impediu a adoção prática em casos de uso como condução autônoma. No entanto, o lançamento do modelo de visão computacional YOLOv8 pela Ultralytics quebrou a barreira do atraso de processamento. O novo modelo pode detectar objetos em tempo real com precisão e velocidade incomparáveis, tornando-o popular no espaço de visão computacional.

Este artigo explora o YOLOv8, suas capacidades e como você pode ajustar e criar seus próprios modelos por meio do repositório open-source do Github.

Yolov8 Explained

YOLOv8-Ultralytics

YOLO (You Only Live Once) é um modelo de visão computacional popular capaz de detectar e segmentar objetos em imagens. O modelo passou por várias atualizações no passado, com o YOLOv8 marcando a 8ª versão.

Como está, o YOLOv8 constrói sobre as capacidades das versões anteriores, introduzindo poderosas novas funcionalidades e melhorias. Isso permite a detecção de objetos em tempo real em dados de imagem e vídeo com precisão e precisão aprimoradas.

Da v1 à v8: Uma Breve História

Yolov1: Lançado em 2015, a primeira versão do YOLO foi introduzida como um modelo de detecção de objetos de uma única etapa. Recursos incluíam o modelo lendo a imagem inteira para prever cada caixa delimitadora em uma avaliação.

Yolov2: A próxima versão, lançada em 2016, apresentou um desempenho superior em benchmarks como PASCAL VOC e COCO e opera a altas velocidades (67-40 FPS). Ele também podia detectar com precisão mais de 9000 categorias de objetos, mesmo com dados de detecção específica limitados.

Yolov3: Lançado em 2018, o Yolov3 apresentou novos recursos, como uma rede tronco mais eficaz, múltiplos âncoras e pooling piramidal espacial para extração de recursos multi-escala.

Yolov4: Com o lançamento do Yolov4 em 2020, a nova técnica de aumento de dados Mosaic foi introduzida, que ofereceu capacidades de treinamento aprimoradas.

Yolov5: Lançado em 2021, o Yolov5 adicionou poderosas novas funcionalidades, incluindo otimização de hiperparâmetros e acompanhamento de experimentos integrado.

Yolov6: Com o lançamento do Yolov6 em 2022, o modelo foi open-source para promover o desenvolvimento impulsionado pela comunidade. Novas funcionalidades foram introduzidas, como uma nova estratégia de auto-distração e uma estratégia de treinamento auxiliada por âncoras (AAT).

Yolov7: Lançado no mesmo ano, 2022, o Yolov7 melhorou o modelo existente em velocidade e precisão e foi o modelo de detecção de objetos mais rápido no momento do lançamento.

O que Torna o YOLOv8 Destaque?

Image showing vehicle detection

A precisão incomparável e a alta velocidade do YOLOv8 tornam o modelo de visão computacional destaque em relação às versões anteriores. É um feito notável, pois os objetos agora podem ser detectados em tempo real sem atrasos, ao contrário das versões anteriores.

Mas além disso, o YOLOv8 vem com poderosas funcionalidades, que incluem:

  1. Arquitetura personalizável: O YOLOv8 oferece uma arquitetura flexível que os desenvolvedores podem personalizar para atender às suas necessidades específicas.
  2. Treinamento adaptativo: As novas capacidades de treinamento adaptativo do YOLOv8, como o equilíbrio da função de perda durante o treinamento e técnicas, melhoram a taxa de aprendizado. Pegue o Adam, que contribui para uma melhor precisão, convergência mais rápida e um desempenho geral melhor do modelo.
  3. Análise de imagem avançada: Por meio de novas capacidades de segmentação semântica e previsão de classe, o modelo pode detectar atividades, cor, textura e até relacionamentos entre objetos, além de sua funcionalidade de detecção de objetos principal.
  4. Aumento de dados: Novas técnicas de aumento de dados ajudam a lidar com aspectos de variações de imagem, como baixa resolução, oclusão, etc., em situações de detecção de objetos do mundo real onde as condições não são ideais.
  5. Suporte a tronco: O YOLOv8 oferece suporte a múltiplos troncos, incluindo CSPDarknet (tronco padrão), EfficientNet (tronco leve) e ResNet (tronco clássico), que os usuários podem escolher.

Os usuários podem até personalizar o tronco substituindo o CSPDarknet53 por qualquer outra arquitetura de CNN compatível com as dimensões de entrada e saída do YOLOv8.

Treinamento e Ajuste do YOLOv8

O modelo YOLOv8 pode ser ajustado para se adequar a certos casos de uso ou ser treinado inteiramente do zero para criar um modelo especializado. Mais detalhes sobre os procedimentos de treinamento podem ser encontrados na documentação oficial.

Vamos explorar como você pode realizar ambas as operações.

Ajuste do YOLOV8 com um Conjunto de Dados Personalizado

A operação de ajuste carrega um modelo pré-existente e usa seus pesos padrão como ponto de partida para o treinamento. Intuitivamente, o modelo lembra todo o seu conhecimento anterior, e a operação de ajuste adiciona novas informações ajustando os pesos.

O modelo YOLOv8 pode ser ajustado com seu código Python ou por meio da interface de linha de comando (CLI).

1. Ajuste um modelo YOLOv8 usando Python

Comece importando o pacote Ultralytics para seu código. Em seguida, carregue o modelo personalizado que você deseja treinar usando o seguinte código:

Primeiro, instale a biblioteca Ultralytics a partir da distribuição oficial.

# Instale o pacote ultralytics do PyPI
pip install ultralytics

Em seguida, execute o seguinte código dentro de um arquivo Python:

from ultralytics import YOLO

# Carregue um modelo
model = YOLO(‘yolov8n.pt’) # carregue um modelo pré-treinado (recomendado para treinamento)

# Treine o modelo no conjunto de dados MS COCO
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Por padrão, o código treinará o modelo usando o conjunto de dados COCO por 100 épocas. No entanto, você também pode configurar essas configurações para definir o tamanho, época, etc., em um arquivo YAML.

Uma vez que você treine o modelo com suas configurações e caminho de dados, monitore o progresso, teste e ajuste o modelo e continue re-treinando até que os resultados desejados sejam alcançados.

2. Ajuste um modelo YOLOv8 usando a CLI

Para treinar um modelo usando a CLI, execute o seguinte script na linha de comando:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

O comando CLI carrega o modelo pré-treinado `yolov8n.pt` e o treina mais no conjunto de dados definido no arquivo `coco8.yaml`.

Criando Seu Próprio Modelo com o YOLOv8

Haziqa é uma Cientista de Dados com ampla experiência em escrever conteúdo técnico para empresas de IA e SaaS.