O que há de Novo em YOLOv11: Transformando Detecção de Objetos Once Again Part 1

Introdução

No evento YOLO Vision 2024, a Ultralytics anunciou um novo membro da série YOLO chamado YOLOv11. Este artigo fornecerá uma visão geral do novo modelo, instruções sobre como executar inferencias usando o YOLOv11, e as principais melhorias e destaques do modelo em comparação com seu predecessor. O modelo YOLOv11 é projetado para ser rápido, preciso e fácil de usar para tarefas como detecção de objetos, segmentação de imagem, classificação de imagem, estimulação de postura e rastreamento de objetos em tempo real.
O novo modelo de estado da arte (SOTA) alcançou uma velocidade de inferência mais rápida e uma precisão melhorada em comparação com os modelos YOLO anteriores. Antes de começarmos, vamos olhar para os resultados de benchmark fornecidos pela Ultralytics. No gráfico de benchmark, o modelo YOLOv11 foi comparado com o YOLOv5, v6, v7, v8, v9 e v10.

O gráfico destacado em azul escuro representa o desempenho do YOLOv11 e, conforme podemos ver, ele superou praticamente todos os modelos YOLO ou as séries em média média de precisão no conjunto de dados COCO e na velocidade de inferência, como mostrado no eixo x.

Tarefas Suportadas pelo YOLOv11

  • Detecção de Objetos:- Localizar objetos em imagens ou vídeos, desenhando caixas de delimitação juntamente com as notas de confiança. Util para aplicações como condução autônoma, câmeras de vigilância ou casas de cobrança de pedágios de tráfego.
  • Segmentação de Instâncias:- Identificar e segmentar objetos ou indivíduos em uma imagem. Util para imagens médicas, fabricação e muito mais.
  • Estimação de Pose:- Identificar pontos chave em uma imagem ou quadro de vídeo para monitorar movimentos corporais ou gestos, tornando-se útil para aplicações como realidade virtual, treinamento de dança e terapia física.
  • Detecção de Objetos Orientados (OBB):- Detecção de objetos com um ângulo de orientação, permitindo a localização mais precisa de itens inclinados ou rotacionados. Esta funcionalidade é particularmente útil para aplicações como condução autônoma, inspeção industrial e análise de imagens de drones ou satélites.
Model Tasks
YOLO11 Detecção (COCO)
YOLO11-seg Segmentação (COCO)
YOLO11-pose Pose/Pontos Chave (COCO)
YOLO11-obb Detecção Orientada (DOTAv1)
YOLO11-cls Classificação (ImageNet)

O YOLOv11 fornece modelos pré-treinados em detecção, segmentação e postura baseado no conjunto de dados COCO, além de modelos pré-treinados em classificação baseado no conjunto de dados ImageNet. O modo de rastreamento também está disponível para todos os modelos de detecção, segmentação e postura. Para obter mais informações sobre os detalhes do modelo e suas versões diferentes, consulte o repositório oficial do GitHub. Nós incluímos um link direto na nossa seção de recursos para a conveniência.

Pré-requisitos

Estes são os pré-requisitos para executar os modelos YOLO:

  • Ambiente Python: Instale Python 3.8 ou posterior.
  • CUDA & cuDNN: Uma GPU com suporte a CUDA (NVIDIA) com CUDA e cuDNN instalados para treinamento e inferência rápidos.
  • PyTorch: Instale o PyTorchcompatível com sua versão de CUDA.
  • Framework YOLO: Instale o pacote da versão específica do YOLO de Ultralytics.
  • Conjunto de Dados: Conjunto de dados rotulados no formato YOLO (imagens e arquivos de anotação).
  • Requisitos de Hardware: Pelo menos 16 GB de RAM e uma GPU com 4+ GB de VRAM para treinamento e inferência fluídos.

Destacados das novas funcionalidades do modelo

O YOLOv11 traz várias melhorias que o tornam uma boa escolha para tarefas de visão computacional. Tem um melhor desenho de backbone e neck, o que o ajuda a detectar objetos com maior precisão e a lidar com tarefas complexas com facilidade. O modelo é otimizado para velocidade, oferecendo processamento mais rápido enquanto mantém um bom equilíbrio entre precisão e desempenho. Mesmo com 22% menos parâmetros do que o YOLOv8m, este modelo leve alcança maior precisão, tornando-o eficiente e eficaz. O YOLOv11 também tem tempo de inferência 2% mais rápido do que o YOLOv10, tornando-o altamente adaptável, funcionando bem em várias plataformas, como dispositivos de borda, sistemas em nuvem e GPUs NVIDIA. Além disso, ele suporta uma ampla gama de tarefas, incluindo detecção de objetos, classificação de imagens, estimativa de postura e muito mais.
O YOLOv11 está projetado para integrar facilmente com vários sistemas e plataformas. Baseado no suporte do YOLOv8, funciona bem em diferentes ambientes para treinamento, teste e implantação. Se você usar GPUs NVIDIA, dispositivos de borda ou plataformas em nuvem, o YOLOv11 se encaixa smooth em seu fluxo de trabalho.
Essas funcionalidades fazem do YOLOv11 adaptável para diferentes indústrias.

Demonstração do YOLOv11

Quando o YOLOv11 é executado no Droplet GPU DigitalOcean, a velocidade de inferência chega a 5 a 6 ms por imagem, tornando-o uma escolha ideal para aplicações reais que exigem processamento rápido e eficiente.
Vamos começar instalando o pacote ultralytics ou atualizando o pacote.

!pip install ultralytics --upgrade

Treinar o modelo YOLOv11 para detecção de objetos pode ser feito tanto em Python quanto usando comandos CLI.

from ultralytics import YOLO  
# Carregar um modelo YOLO11n treinado em COCO  
model = YOLO("yolo11n.pt")  
# Treinar o modelo no conjunto de dados de exemplo COCO8 por 100 épocas  
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Carregar um modelo YOLO11n treinado em COCO e treiná-lo no conjunto de dados de exemplo COCO8 por 100 épocas  
yolo train model=yolo11n.pt data=coco8.yaml epochs=100 imgsz=640

Nós forneceram o código para usar o modelo para detectar objetos em um vídeo.

# Carregar um modelo YOLO11n treinado em COCO  
model = YOLO("yolo11n.pt")  
results = model("data/video.mp4", save=True, show=True)

A seguir, vamos tentar usar o modelo para detectar objetos em uma imagem.

# Carregar um modelo YOLO11n treinado em COCO  
model = YOLO("yolo11n.pt")  
results = model("/folder_path/image_det.jpeg")  
results[0].show()

Para usar o modelo para segmentação, precisamos baixar o YOLO11 pois tentar o modelo diretamente pode lançar um erro.

#segmentação  
from ultralytics import YOLO  
model = YOLO('yolo11n-seg.pt')  
results = model("/folder_path/image_seg.jpeg")  
results[0].show()

Similarmente, para tarefas de estimação de postura e classificação, precisamos baixar o modelo YOLO11 e depois tentar o modelo em uma imagem.

# estimação-de-postura  
from ultralytics import YOLO  
model = YOLO('yolo11n-pose.pt')  
results = model("/folder_path/image_pose.jpeg")  
results[0].show()

# classificação-de-imagem  
from ultralytics import YOLO  
model = YOLO('yolo11n-cls.pt')  
results = model("/folder_path/image_class.jpeg")  
results[0].show()

Agora é recomendável usar um GPU de alto final para executar ou treinar o YOLOv11, caso contrário, o treinamento ou a inferência podem ser lentos e ineficientes. Quando se trata de executar ou treinar o YOLOv11, escolher GPU em vez de CPU pode aumentar significativamente o desempenho e eficiência. O YOLOv11, com sua melhoria na extração de recursos e precisão melhorada, exige alta potência computacional, especialmente para treinamento em grandes conjuntos de dados. GPUs são projetadas especificamente para processamento paralelo, permitindo que elas gerem as operações de matriz complexas necessárias para aprendizagem profunda muito mais rápido do que os CPUs. Droplets GPU DigitalOcean são otimizados para cargas de trabalho de AI/ML, oferecendo acesso a poderosos GPUs como o H100, que são projetados especialmente para desempenho avançado e manipulação de computação intensiva.

Conclusões

Vimos algumas coisas interessantes que o modelo pode fazer com imagens e vídeos. O YOLOv11 é um modelo poderoso e versátil para tarefas de visão computacional. Suas melhorias funcionais, alta velocidade e precisão tornam-no uma atualização significativa em relação a seus predecessores.
Em resumo, o YOLOv11 é um grande passo para frente na detecção de objetos e na visão computacional. Com seu melhor desenho arquitetônico, velocidades mais rápidas e precisão melhorada, é perfeito para vários usos – detecção em tempo real em pequenos dispositivos ou análise mais detalhada no cloud. Suas capacidades de funcionar sem problemas com sistemas existentes significam que as empresas podem integrá-lo facilmente em suas operações diárias, quer em agricultura, segurança ou robótica. A mistura de flexibilidade e desempenho do YOLOv11 torna-lo uma ferramenta poderosa para qualquer pessoa que enfrenta desafios de visão computacional.
No entanto, este é o capítulo 1 da aula de Introdução, e no capítulo 2, nós aprenderão a treinar e ajustar o modelo para detecção de objetos the um conjunto de dados customizado.

Referências

Source:
https://www.digitalocean.com/community/tutorials/what-is-new-with-yolo