Ultralytics YOLO27:
Get Started

Exportação Ultralytics YOLO para NCNN#

A implementação de modelos de visão computacional em dispositivos com capacidade computacional limitada, como sistemas móveis ou integrados, exige uma seleção cuidadosa do formato. A utilização de um formato otimizado garante que até os dispositivos com recursos limitados consigam executar tarefas avançadas de visão computacional com eficiência.

A exportação para o formato NCNN permite otimizar os teus modelos Ultralytics YOLO26 para aplicações leves executadas em dispositivos. Este guia explica como converter os teus modelos para o formato NCNN e melhorar o desempenho em dispositivos móveis e integrados.

Porquê exportar para NCNN?#

NCNN high-performance neural network inference framework

A estrutura NCNN, desenvolvida pela Tencent, é uma estrutura de computação de inferência de redes neuronais de alto desempenho, otimizada especificamente para plataformas móveis, incluindo telemóveis, dispositivos integrados e dispositivos IoT. O NCNN é compatível com uma vasta gama de plataformas, incluindo Linux, Android, iOS e macOS.

O NCNN é conhecido pela elevada velocidade de processamento em CPUs móveis e permite implementar rapidamente modelos de aprendizagem profunda em plataformas móveis, o que o torna uma excelente escolha para criar aplicações baseadas em IA.

Principais funcionalidades dos modelos NCNN#

Os modelos NCNN oferecem várias funcionalidades importantes que permitem a aprendizagem automática no dispositivo e ajudam os programadores a implementar modelos em dispositivos móveis, integrados e de periferia:

  • Eficientes e de alto desempenho: os modelos NCNN são leves e otimizados para dispositivos móveis e integrados, como o Raspberry Pi, com recursos limitados, mantendo uma elevada precisão em tarefas de visão computacional.

  • Quantização: o NCNN oferece suporte à quantização, uma técnica que reduz a precisão dos pesos e das ativações do modelo para melhorar o desempenho e reduzir o consumo de memória.

  • Compatibilidade: os modelos NCNN são compatíveis com frameworks populares de deep learning, incluindo TensorFlow, Caffe e ONNX, permitindo que os desenvolvedores aproveitem modelos e fluxos de trabalho existentes.

  • Facilidade de uso: o NCNN oferece ferramentas intuitivas para converter modelos entre formatos, garantindo uma interoperabilidade fluida em diferentes ambientes de desenvolvimento.

  • Aceleração de GPU com Vulkan: o NCNN oferece suporte ao Vulkan para inferência acelerada por GPU em GPUs de vários fabricantes, incluindo AMD, Intel e outras que não são da NVIDIA, permitindo implantações de alto desempenho em uma gama mais ampla de hardware.

Opções de implantação com NCNN#

Os modelos NCNN são compatíveis com diversas plataformas de implantação:

  • Implantação em dispositivos móveis: otimizado para Android e iOS, permite a integração fluida em aplicativos móveis para uma inferência eficiente no dispositivo.

  • Sistemas embarcados e dispositivos IoT: ideal para dispositivos com recursos limitados, como Raspberry Pi e NVIDIA Jetson. Se a inferência padrão em um Raspberry Pi com o Guia da Ultralytics não for suficiente, o NCNN pode oferecer melhorias significativas de desempenho.

  • Implantação em desktops e servidores: oferece suporte à implantação em Linux, Windows e macOS para fluxos de trabalho de desenvolvimento, treinamento e avaliação.

Aceleração de GPU com Vulkan#

O NCNN oferece aceleração de GPU por meio do Vulkan, permitindo inferência de alto desempenho em uma ampla gama de GPUs, incluindo placas gráficas AMD, Intel e outras que não são da NVIDIA. Isso é especialmente útil para:

  • Suporte a GPUs de diferentes fabricantes: ao contrário do CUDA, limitado a GPUs NVIDIA, o Vulkan funciona com GPUs de vários fabricantes.
  • Sistemas com várias GPUs: selecione um dispositivo Vulkan específico em sistemas com várias GPUs usando device="vulkan:0", device="vulkan:1" etc.
  • Implantações em dispositivos de borda e desktops: aproveite a aceleração de GPU em dispositivos nos quais o CUDA não está disponível.

Para usar a aceleração Vulkan, especifique o dispositivo Vulkan ao executar a inferência:

Inferência com Vulkan
from ultralytics import YOLO

# Carregar o modelo NCNN exportado
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Executar inferência com aceleração de GPU Vulkan (primeiro dispositivo Vulkan)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Usar o segundo dispositivo Vulkan em sistemas com várias GPUs
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
Requisitos do Vulkan

Verifique se os drivers Vulkan da sua GPU estão instalados. A maioria dos drivers de GPU modernos inclui suporte ao Vulkan por padrão. Você pode verificar se o Vulkan está disponível usando ferramentas como vulkaninfo no Linux ou o Vulkan SDK no Windows.

Tarefas suportadas#

A exportação NCNN oferece suporte a todas as sete tarefas da Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com YOLO26, a única família que inclui esses cabeçotes.

TarefaYOLOv8YOLO11YOLO26
Detetar✅✅✅
Segmentar✅✅✅
Semântica❌❌✅
Profundidade❌❌✅
Classificar✅✅✅
Pose✅✅✅
OBB✅✅✅

Exportar para NCNN: converter seu modelo YOLO26#

Você pode ampliar a compatibilidade e a flexibilidade de implantação dos modelos convertendo modelos YOLO26 para o formato NCNN.

Instalação#

Para instalar os pacotes necessários, executa:

Instalação
# Install the required package for YOLO26
pip install ultralytics

Para ver instruções detalhadas e práticas recomendadas, consulte o guia de instalação da Ultralytics. Se encontrar alguma dificuldade, consulte nosso guia de problemas comuns para encontrar soluções.

Uso#

Todos os modelos Ultralytics YOLO26 foram concebidos para suportar a exportação de origem, o que facilita a integração no fluxo de trabalho de implementação que preferires. Podes consultar a lista completa de formatos de exportação suportados e opções de configuração para escolheres a melhor configuração para a tua aplicação.

O formato NCNN oferece suporte aos modos Export, Predict e Validate. Exporte seu modelo e, em seguida, carregue o modelo exportado para executar a inferência ou validar a precisão.

Exportar
from ultralytics import YOLO

# Carrega um modelo YOLO26
model = YOLO("yolo26n.pt")

# Exportar o modelo para o formato NCNN
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
Prever
from ultralytics import YOLO

# Carregar o modelo NCNN exportado
model = YOLO("./yolo26n_ncnn_model")

# Executar inferência
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Carregar o modelo NCNN exportado
model = YOLO("./yolo26n_ncnn_model")

# Validar a precisão no conjunto de dados COCO8
metrics = model.val(data="coco8.yaml")

Argumentos de exportação#

ArgumentoTipoPadrãoDescrição
formatstr'ncnn'Formato de destino do modelo exportado, que define a compatibilidade com vários ambientes de implantação.
imgszint ou tuple640Tamanho de imagem desejado para a entrada do modelo. Pode ser um inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas.
quantizeint ou strNonePrecisão da quantização: 16 (FP16) reduz pela metade o tamanho dos pesos exportados; 32/não definido exporta pesos FP32, que o runtime de CPU do NCNN ainda calcula em FP16 por padrão quando o hardware oferece suporte. Substitui a flag obsoleta half.
batchint1Especifica o tamanho do lote de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará em simultâneo no modo predict.
devicestrNoneEspecifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para Apple Silicon (device=mps).

Para mais detalhes sobre o processo de exportação, visita a página da documentação da Ultralytics sobre exportação.

Implantar modelos YOLO26 NCNN exportados#

Depois de exportar seus modelos Ultralytics YOLO26 para o formato NCNN, você pode implantá-los usando o método YOLO("yolo26n_ncnn_model/"), como mostrado no exemplo de uso acima. Para ver instruções de implantação específicas para cada plataforma, consulte os recursos a seguir:

  • Android: crie e integre modelos NCNN para detecção de objetos em aplicativos Android.

  • macOS: implante modelos NCNN em sistemas macOS.

  • Linux: implante modelos NCNN em dispositivos Linux, incluindo Raspberry Pi e sistemas embarcados semelhantes.

  • Windows x64: implante modelos NCNN no Windows x64 usando o Visual Studio.

Resumo#

Este guia abordou a exportação de modelos Ultralytics YOLO26 para o formato NCNN, visando melhorar a eficiência e a velocidade em dispositivos com recursos limitados.

Para obter mais detalhes, consulte a documentação oficial do NCNN. Para conhecer outras opções de exportação, acesse nossa página do guia de integração.

Perguntas frequentes#

  • Para exportar seu modelo Ultralytics YOLO26 para o formato NCNN:

    • Python: use o método export da classe YOLO.

      from ultralytics import YOLO
      
      # Carrega um modelo YOLO26
      model = YOLO("yolo26n.pt")
      
      # Exportar para o formato NCNN
      model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    • CLI: use o comando yolo export.

      yolo export model=yolo26n.pt format=ncnn # creates 'yolo26n_ncnn_model'

    Para ver as opções detalhadas de exportação, consulte a documentação Export.

  • Exportar seus modelos Ultralytics YOLO26 para NCNN oferece várias vantagens:

    • Eficiência: os modelos NCNN são otimizados para dispositivos móveis e embarcados, garantindo alto desempenho mesmo com recursos computacionais limitados.
    • Quantização: o NCNN oferece suporte a técnicas como a quantização, que aumentam a velocidade do modelo e reduzem o uso de memória.
    • Ampla compatibilidade: você pode implantar modelos NCNN em várias plataformas, incluindo Android, iOS, Linux e macOS.
    • Aceleração de GPU com Vulkan: aproveite a aceleração de GPU em GPUs AMD, Intel e outras que não são da NVIDIA por meio do Vulkan para acelerar a inferência.

    Para obter mais detalhes, consulte a seção Por que exportar para NCNN?.

  • O NCNN, desenvolvido pela Tencent, é otimizado especificamente para plataformas móveis. Alguns dos principais motivos para usar NCNN são:

    • Alto desempenho: desenvolvido para processamento rápido e eficiente em CPUs de dispositivos móveis.
    • Multiplataforma: compatível com frameworks populares como TensorFlow e ONNX, facilitando a conversão e a implantação de modelos em diferentes plataformas.
    • Suporte da comunidade: uma comunidade ativa garante melhorias e atualizações contínuas.

    Para obter mais informações, consulte a seção Principais recursos dos modelos NCNN.

  • O NCNN é versátil e oferece suporte a várias plataformas:

    • Dispositivos móveis: Android, iOS.
    • Sistemas embarcados e dispositivos IoT: dispositivos como Raspberry Pi e NVIDIA Jetson.
    • Computadores e servidores: Linux, Windows e macOS.

    Para melhorar o desempenho no Raspberry Pi, considere usar o formato NCNN, conforme detalhado em nosso Guia do Raspberry Pi.

  • Para implantar seus modelos YOLO26 no Android:

    1. Compilar para Android: siga o guia Compilar NCNN para Android.
    2. Integrar ao seu aplicativo: use o SDK Android do NCNN para integrar o modelo exportado ao seu aplicativo e executar inferência de forma eficiente no dispositivo.

    Para ver instruções detalhadas, consulte Implantar modelos YOLO26 NCNN exportados.

    Para consultar guias mais avançados e casos de uso, acesse o guia de implantação da Ultralytics.

  • O NCNN oferece suporte ao Vulkan para aceleração de GPU em GPUs AMD, Intel e outras que não são da NVIDIA. Para usar o Vulkan:

    from ultralytics import YOLO
    
    # Carregar o modelo NCNN e executar com GPU Vulkan
    model = YOLO("yolo26n_ncnn_model")
    results = model("image.jpg", device="vulkan:0")  # Usar o primeiro dispositivo Vulkan

    Em sistemas com várias GPUs, especifique o índice do dispositivo (por exemplo, vulkan:1 para a segunda GPU). Verifique se os drivers Vulkan da sua GPU estão instalados. Consulte a seção Aceleração de GPU com Vulkan para obter mais detalhes.

Comentários