Ultralytics YOLO27:

Exportação do Ultralytics YOLO para NCNN#

A implementação de modelos de visão computacional em dispositivos com capacidade computacional limitada, como sistemas móveis ou incorporados, requer uma seleção cuidadosa do formato. Usar um formato otimizado garante que até mesmo 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 baseadas em dispositivos. Este guia explica como converter os teus modelos para o formato NCNN, melhorando o desempenho em dispositivos móveis e incorporados.

Porquê exportar para NCNN?#

NCNN high-performance neural network inference framework

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

A NCNN é conhecida pela sua elevada velocidade de processamento em CPUs móveis e permite a implementação rápida de modelos de deep learning em plataformas móveis, sendo uma excelente escolha para criar aplicações com tecnologia de IA.

Principais funcionalidades dos modelos NCNN#

Os modelos NCNN oferecem várias funcionalidades importantes que permitem o machine learning no dispositivo, ajudando os programadores a implementar modelos em dispositivos móveis, incorporados e de edge:

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

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

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

  • Facilidade de utilização: a NCNN fornece ferramentas intuitivas para converter modelos entre formatos, garantindo uma interoperabilidade fluida entre diferentes ambientes de desenvolvimento.

  • Aceleração de GPU com Vulkan: a NCNN suporta Vulkan para inferência acelerada por GPU em vários fabricantes, incluindo AMD, Intel e outras GPUs não NVIDIA, permitindo uma implementação de alto desempenho numa gama mais ampla de hardware.

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

Os modelos NCNN são compatíveis com várias plataformas de implementação:

  • Implementação móvel: otimizada para Android e iOS, permitindo uma integração simples em aplicações móveis para uma inferência eficiente no dispositivo.

  • Sistemas incorporados e dispositivos IoT: ideal para dispositivos com recursos limitados, como Raspberry Pi e NVIDIA Jetson. Se a inferência padrão num Raspberry Pi com o Guia da Ultralytics for insuficiente, a NCNN pode proporcionar melhorias significativas de desempenho.

  • Implementação em computadores e servidores: suporta a implementação em Linux, Windows e macOS para fluxos de trabalho de desenvolvimento, treino e avaliação.

Aceleração de GPU com Vulkan#

A NCNN suporta aceleração de GPU através do Vulkan, permitindo inferência de alto desempenho numa vasta gama de GPUs, incluindo AMD, Intel e outras placas gráficas não NVIDIA. Isto é particularmente útil para:

  • Suporte de GPUs de vários fabricantes: ao contrário de CUDA, que está limitada a GPUs NVIDIA, o Vulkan funciona com GPUs de vários fabricantes.
  • Sistemas com várias GPUs: seleciona um dispositivo Vulkan específico em sistemas com várias GPUs usando device="vulkan:0", device="vulkan:1", etc.
  • Implementações edge e em computadores: aproveita a aceleração de GPU em dispositivos onde CUDA não está disponível.

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

Inferência Vulkan
from ultralytics import YOLO

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
Requisitos do Vulkan

Certifica-te de que tens os controladores Vulkan instalados para a tua GPU. A maioria dos controladores de GPU modernos inclui suporte para Vulkan por predefinição. Podes verificar a disponibilidade do Vulkan usando ferramentas como vulkaninfo no Linux ou o Vulkan SDK no Windows.

Tarefas suportadas#

A exportação para NCNN suporta 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 essas cabeças.

TarefaYOLOv8YOLO11YOLO26
Detetar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Exportar para NCNN: converter o teu modelo YOLO26#

Podes ampliar a compatibilidade e a flexibilidade de implementação dos modelos YOLO26 convertendo-os para o formato NCNN.

Instalação#

Para instalares os pacotes necessários, executa:

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

Para obter instruções detalhadas e boas práticas, consulta o guia de instalação da Ultralytics. Se encontrares dificuldades, consulta o nosso guia de problemas comuns para obter soluções.

Utilização#

Todos os modelos Ultralytics YOLO26 foram concebidos para suportar a exportação imediatamente, facilitando a sua integração no teu fluxo de trabalho de implementação preferido. Podes consultar a lista completa de formatos de exportação e opções de configuração compatíveis para escolher a melhor configuração para a tua aplicação.

O formato NCNN suporta os modos Exportar, Prever e Validar. Exporta o teu modelo e, em seguida, carrega o modelo exportado para executar a inferência ou validar a sua precisão.

Exportação
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
Previsão
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Argumentos de Exportação#

ArgumentoTipoPredefiniçãoDescrição
formatstr'ncnn'Formato de destino do modelo exportado, que define a compatibilidade com vários ambientes de implementação.
imgszint ou tuple640Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou um tuplo (height, width) para dimensões específicas.
quantizeint ou strNonePrecisão da quantização: 16 (FP16) reduz para metade os pesos exportados; 32/não definido exporta pesos FP32, que o runtime de CPU da NCNN continua a calcular em FP16 por predefinição quando o hardware o suporta. 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 a exportação: GPU (device=0), CPU (device=cpu), MPS para Apple Silicon (device=mps).

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

Implementar modelos YOLO26 NCNN exportados#

Depois de exportares os teus modelos Ultralytics YOLO26 para o formato NCNN, podes implementá-los usando o método YOLO("yolo26n_ncnn_model/"), conforme mostrado no exemplo de utilização acima. Para obter instruções de implementação específicas para cada plataforma, consulta os seguintes recursos:

  • Android: cria e integra modelos NCNN para deteção de objetos em aplicações Android.

  • macOS: implementa modelos NCNN em sistemas macOS.

  • Linux: implementa modelos NCNN em dispositivos Linux, incluindo Raspberry Pi e sistemas incorporados semelhantes.

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

Resumo#

Este guia explicou como exportar modelos Ultralytics YOLO26 para o formato NCNN, melhorando a eficiência e a velocidade em dispositivos com recursos limitados.

Para obter mais informações, consulta a documentação oficial da NCNN. Para conhecer outras opções de exportação, visita a nossa página do guia de integrações.

Perguntas frequentes#

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

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

      from ultralytics import YOLO
      
      # Load a YOLO26 model
      model = YOLO("yolo26n.pt")
      
      # Export to NCNN format
      model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    • CLI: usa o comando yolo export.

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

    Para obter informações detalhadas sobre as opções de exportação, consulta a documentação de Exportar.

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

    • Eficiência: os modelos NCNN são otimizados para dispositivos móveis e incorporados, garantindo um elevado desempenho mesmo com recursos computacionais limitados.
    • Quantização: a NCNN suporta técnicas como a quantização, que melhoram a velocidade do modelo e reduzem a utilização de memória.
    • Ampla compatibilidade: podes implementar modelos NCNN em várias plataformas, incluindo Android, iOS, Linux e macOS.
    • Aceleração de GPU com Vulkan: aproveita a aceleração de GPU em GPUs AMD, Intel e outras GPUs não NVIDIA através do Vulkan para obter uma inferência mais rápida.

    Para obter mais informações, consulta a secção Porquê exportar para NCNN?.

  • A NCNN, desenvolvida pela Tencent, é especificamente otimizada para plataformas móveis. Os principais motivos para usar NCNN incluem:

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

    Para obter mais informações, consulta a secção Principais funcionalidades dos modelos NCNN.

  • A NCNN é versátil e suporta várias plataformas:

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

    Para melhorar o desempenho no Raspberry Pi, considera usar o formato NCNN, conforme explicado no nosso Guia do Raspberry Pi.

  • Para implementar os teus modelos YOLO26 no Android:

    1. Criar para Android: segue o guia Compilar NCNN para Android.
    2. Integrar com a tua aplicação: usa o SDK Android da NCNN para integrar o modelo exportado na tua aplicação e executar uma inferência eficiente no dispositivo.

    Para obter instruções detalhadas, consulta Implementar modelos YOLO26 NCNN exportados.

    Para obter guias e casos de utilização mais avançados, visita o guia de implementação da Ultralytics.

  • A NCNN suporta Vulkan para aceleração de GPU em GPUs AMD, Intel e outras GPUs não NVIDIA. Para usar Vulkan:

    from ultralytics import YOLO
    
    # Load NCNN model and run with Vulkan GPU
    model = YOLO("yolo26n_ncnn_model")
    results = model("image.jpg", device="vulkan:0")  # Use first Vulkan device

    Em sistemas com várias GPUs, especifica o índice do dispositivo (por exemplo, vulkan:1 para a segunda GPU). Certifica-te de que os controladores Vulkan estão instalados para a tua GPU. Consulta a secção Aceleração de GPU com Vulkan para obter mais informações.

Comentários