Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

YOLOv12: uma ferramenta de código aberto para detecção de alvos em imagens e vídeos em tempo real

Introdução geral

O YOLOv12 é um projeto de código aberto desenvolvido pelo usuário do GitHub sunsmarterjie, com foco na tecnologia de detecção de alvos em tempo real. O projeto é baseado na série de estruturas YOLO (You Only Look Once), a introdução do mecanismo de atenção para otimizar o desempenho das redes neurais convolucionais tradicionais (CNN), não apenas na detecção de maior precisão, mas também mantém uma alta velocidade de inferência. O YOLOv12 para uma variedade de cenários, como sistemas de vigilância, direção automatizada e análise de imagens, etc., para fornecer tamanhos de modelo Nano, Pequeno, médio, grande e extragrande para atender a diferentes requisitos de potência de computação e de aplicativos. O projeto está licenciado sob a GNU AGPL-3.0, que permite que os usuários baixem o código gratuitamente e o personalizem de acordo com suas necessidades. A equipe de desenvolvedores inclui pesquisadores da Universidade de Buffalo e da Academia Chinesa de Ciências, e a documentação técnica e o guia de instalação são detalhados, para que os usuários possam começar rapidamente.

YOLOv12: ferramenta de código aberto que fornece detecção de alvos em imagens e vídeos em tempo real-1


 

Lista de funções

  • Detecção eficiente de alvos em tempo realEm uma GPU T4, o YOLOv12-N atinge 40,6% mAP com uma latência de inferência de apenas 1,64 ms.
  • Seleção de vários modelosCinco modelos (Nano a Extra-Large) estão disponíveis para acomodar uma ampla variedade de ambientes de hardware, desde dispositivos de baixo consumo de energia até servidores de alto desempenho.
  • Otimização do mecanismo de atençãoIntrodução dos módulos Area Attention e R-ELAN para melhorar a precisão da detecção e reduzir a complexidade computacional.
  • Modelo de exportaçãoSuporte à exportação de modelos de treinamento para o formato ONNX ou TensorRT para facilitar a implementação em ambientes de produção.
  • Treinamento de conjunto de dados personalizadoOs usuários podem treinar modelos com seus próprios conjuntos de dados, adequados para tarefas específicas de detecção de alvos.
  • Suporte à visualizaçãoIntegração de ferramentas de supervisão para facilitar a apresentação dos resultados dos testes e a avaliação do desempenho.

 

Usando a Ajuda

Processo de instalação

Atualmente, o YOLOv12 não tem um pacote PyPI autônomo e precisa ser instalado a partir da fonte do GitHub. Abaixo estão as etapas detalhadas de instalação para Linux (os usuários de Windows ou Mac precisarão ajustar a configuração do ambiente):

  1. Preparação do ambiente
    • Certifique-se de que o Python 3.11 ou posterior esteja instalado em seu sistema.
    • Instalar o Git:sudo apt install git(exemplo do Ubuntu).
    • Opcional: instale o driver de GPU NVIDIA e o CUDA (versão recomendada 11.8 ou superior) para acelerar o treinamento e a inferência.
  2. armazém de clones
    Faça o download do repositório YOLOv12 localmente executando o seguinte comando em um terminal:

    git clone https://github.com/sunsmarterjie/yolov12.git
    cd yolov12
  1. Criação de um ambiente virtual
    Use o Conda ou o venv para criar ambientes Python separados e evitar conflitos de dependência:

    conda create -n yolov12 python=3.11
    conda activate yolov12
    
  2. Instalação de dependências
    Instale as dependências necessárias para seu projeto, incluindo PyTorch, flash-attn, supervisão, etc:

    wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311- linux_x86_64.whl
    pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
    pip install -r requirements.txt
    pip install -e .
    
  3. Verificar a instalação
    Execute o seguinte comando para verificar se o ambiente está configurado corretamente:

    python -c "from ultralytics import YOLO; print('YOLOv12 installed successfully')"
    

Uso

Treinamento de modelos personalizados

O YOLOv12 permite que os usuários treinem com seus próprios conjuntos de dados, adequados para tarefas de detecção de alvos específicos de cenas. As etapas da operação são as seguintes:

  1. Preparação do conjunto de dados
    • Os dados devem estar no formato YOLO (contendo pastas de imagens e rótulos, rótulos como arquivos .txt, rotulados com categorias de destino e coordenadas de caixa delimitadora).
    • estabelecer data.yaml especificando o conjunto de treinamento, o caminho do conjunto de validação e o nome da categoria. Exemplo:
      trem: . /dataset/train/images
      val: . /dataset/val/images
      nc: 2 # Número de categorias
      names: ['cat', 'dog'] # nomes das categorias
      
  2. Carregar o modelo e treiná-lo
    Use um script Python para carregar o modelo pré-treinado e iniciar o treinamento:

    from ultralytics import YOLO
    model = YOLO('yolov12s.pt') # opcional n/s/m/l/x model
    resultados = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
    
    • épocasNúmero de rodadas de treinamento: recomenda-se mais de 250 para obter melhores resultados.
    • imgszTamanho da imagem: Digite o tamanho da imagem, padrão 640x640.
  3. Veja os resultados do treinamento
    Após a conclusão do treinamento, os resultados são salvos na pasta corre/detecta/treina incluindo os pesos do modelo (melhor.pt) e matrizes de ofuscação, etc. Execute o código a seguir para ver a matriz de confusão:

    from IPython.display import Image
    Image(filename='runs/detect/train/confusion_matrix.png', width=600)
    

Raciocínio e testes

O modelo treinado pode ser usado para a detecção de alvos em imagens ou vídeos:

  1. Detecção de imagem única
    modelo = YOLO('path/to/best.pt')
    resultados = model('test.jpg')
    results.show() # Mostrar os resultados do teste
    results.save() # Salvar os resultados em runs/detect/predict
    
  2. Detecção de vídeo
    Use a linha de comando para processar arquivos de vídeo:

    python app.py --source 'video.mp4' --model 'path/to/best.pt'
    
  3. Avaliação de desempenho
    O conjunto de validação é avaliado para obter métricas como o mAP:

    resultados = model.val(data='path/to/data.yaml')
    print(results.box.map) Saída # mAP@0.5:0.95
    

Modelo de exportação

Exporte o modelo para um formato utilizável pelo ambiente de produção:

model.export(format='onnx', half=True) # exportado como ONNX, suporta aceleração FP16

Os modelos exportados podem ser implementados em dispositivos de borda ou servidores.

Operação da função em destaque

  • Otimização do mecanismo de atenção
    O módulo "Area Attention" do YOLOv12 não precisa ser configurado manualmente, mas otimiza automaticamente a extração de recursos durante o treinamento e a inferência para melhorar a detecção de alvos pequenos. Os usuários simplesmente escolhem o tamanho correto do modelo (por exemplo, Nano para dispositivos de baixo consumo de energia) para aproveitar a precisão aprimorada desse recurso.
  • detecção em tempo real
    A inferência é extremamente rápida quando executada em GPUs habilitadas para CUDA. Por exemplo, a execução do modelo YOLOv12-N em uma GPU T4 resulta na detecção de uma única imagem em apenas 1,64 ms, e os usuários podem visualizar o quadro de detecção e o nível de confiança em tempo real usando a ferramenta de supervisão:

    resultados = model('image.jpg')
    results.plot() # Exibir imagem anotada
    
  • Adaptação para várias cenas
    Ao ajustar o tamanho do modelo e os dados de treinamento, o YOLOv12 pode ser facilmente adaptado a diferentes tarefas. Por exemplo, a detecção de pedestres em um sistema de vigilância ou o reconhecimento de veículos e sinais de trânsito na direção autônoma.
Conteúdo 2
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " YOLOv12: uma ferramenta de código aberto para detecção de alvos em imagens e vídeos em tempo real

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil