Exportação Ultralytics YOLO para NCNN#
Implantar modelos de computer vision em dispositivos com poder computacional limitado, como sistemas móveis ou embarcados, exige uma seleção cuidadosa de formato. O uso de um formato otimizado garante que até mesmo dispositivos com recursos restritos consigam lidar com tarefas avançadas de visão computacional de forma eficiente.
Exportar para o formato NCNN permite otimizar os seus modelos do Ultralytics YOLO26 para aplicações leves baseadas em dispositivos. Este guia aborda como converter os seus modelos para o formato NCNN para obter melhor desempenho em dispositivos móveis e embarcados.
Por que exportar para NCNN?#
O framework NCNN, desenvolvido pela Tencent, é um framework de computação de inferência de neural network de alto desempenho otimizado especificamente para plataformas móveis, incluindo telefones celulares, dispositivos embarcados e dispositivos de IoT. O NCNN é compatível com uma ampla gama de plataformas, incluindo Linux, Android, iOS e macOS.
O NCNN é conhecido pela sua velocidade de processamento rápida em CPUs móveis e permite a implantação rápida de modelos de deep learning em plataformas móveis, tornando-o uma excelente escolha para criar aplicações alimentadas por IA.
Principais recursos dos modelos NCNN#
Os modelos NCNN oferecem vários recursos principais que viabilizam machine learning no dispositivo, ajudando os desenvolvedores a implantar modelos em dispositivos móveis, embarcados e de borda:
-
Eficiente e de Alto Desempenho: Os modelos NCNN são leves e otimizados para dispositivos móveis e embarcados com recursos limitados, como o Raspberry Pi, mantendo alta accuracy em tarefas de visão computacional.
-
Quantização: O NCNN suporta quantização, uma técnica que reduz a precision dos pesos e ativações do modelo para melhorar o desempenho e diminuir o uso 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 fornece ferramentas amigáveis para converter modelos entre formatos, garantindo uma interoperabilidade suave entre diferentes ambientes de desenvolvimento.
-
Aceleração de GPU Vulkan: O NCNN suporta Vulkan para inferência acelerada por GPU em vários fornecedores, incluindo AMD, Intel e outras GPUs que não sejam da NVIDIA, permitindo uma implantação 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 uma variedade de plataformas de implantação:
-
Implantação móvel: Otimizado para Android e iOS, permitindo a integração perfeita em aplicações móveis para uma inferência eficiente no dispositivo.
-
Sistemas Embarcados e Dispositivos de IoT: Ideais para dispositivos com recursos restritos como Raspberry Pi e NVIDIA Jetson. Se a inferência padrão em um Raspberry Pi com o Ultralytics Guide for insuficiente, o NCNN pode proporcionar melhorias significativas de desempenho.
-
Implantação em desktop e servidor: Suporta implantação em Linux, Windows e macOS para fluxos de trabalho de desenvolvimento, treinamento e avaliação.
Aceleração de GPU Vulkan#
O NCNN suporta aceleração de GPU através do Vulkan, permitindo inferência de alto desempenho em uma ampla gama de GPUs, incluindo AMD, Intel e outras placas gráficas que não sejam da NVIDIA. Isso é particularmente útil para:
- Suporte a GPU de múltiplos fornecedores: Ao contrário do CUDA, que é limitado a GPUs da NVIDIA, o Vulkan funciona em vários fornecedores de GPU.
- Sistemas com Múltiplas GPUs: Selecione um dispositivo Vulkan específico em sistemas com várias GPUs usando
device="vulkan:0",device="vulkan:1", etc. - Implantações de borda e desktop: Aproveite a aceleração de GPU em dispositivos onde o CUDA não está disponível.
Para usar a aceleração Vulkan, especifique o dispositivo Vulkan ao executar a inferência:
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")Certifique-se de ter os drivers Vulkan instalados para a sua GPU. A maioria dos drivers de GPU modernos inclui suporte a Vulkan por padrão. Podes verificar a disponibilidade do Vulkan usando ferramentas como vulkaninfo no Linux ou o SDK do Vulkan no Windows.
Tarefas Suportadas#
A exportação para NCNN suporta todas as sete tarefas do Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com YOLO26, a única família que possui essas cabeças.
| Tarefa | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detectar | ✅ | ✅ | ✅ |
| Segmentar | ✅ | ✅ | ✅ |
| Semântica | ❌ | ❌ | ✅ |
| Profundidade | ❌ | ❌ | ✅ |
| Classificar | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Exportar para NCNN: Convertendo seu modelo YOLO26#
Você pode expandir a compatibilidade do modelo e a flexibilidade de implantação convertendo modelos YOLO26 para o formato NCNN.
Instalação#
Para instalar os pacotes necessários, execute:
# Install the required package for YOLO26
pip install ultralyticsPara obter instruções detalhadas e as melhores práticas, consulte o Ultralytics Installation guide. Se encontrares alguma dificuldade, consulta o nosso Common Issues guide em busca de soluções.
Uso#
Todos os modelos Ultralytics YOLO26 são projetados para suportar exportação nativamente, facilitando a integração deles no teu fluxo de trabalho de implantação preferido. Podes ver a lista completa de formatos de exportação suportados e opções de configuração para escolher a melhor configuração para a tua aplicação.
O formato NCNN suporta os modos Export, Predict e Validate. Exporte o seu modelo e, em seguida, carregue o modelo exportado para executar a inferência ou validar a sua precisã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'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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#
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
format | str | 'ncnn' | Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implementação. |
imgsz | int ou tuple | 640 | Tamanho de imagem desejado para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas. |
quantize | int ou str | None | Precisão da quantização: 16 (FP16) reduz o tamanho do modelo e pode acelerar a inferência; 32/não definido é FP32. Substitui a flag obsoleta half. |
batch | int | 1 | Especifica o tamanho de inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará concorrentemente no modo predict. |
device | str | None | Especifica 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 de documentação do Ultralytics sobre exportação.
Implantando modelos YOLO26 NCNN exportados#
Depois de exportar os seus modelos Ultralytics YOLO26 para o formato NCNN, você pode implantá-los usando o método YOLO("yolo26n_ncnn_model/"), conforme mostrado no exemplo de uso acima. Para instruções de implantação específicas de cada plataforma, consulte os seguintes recursos:
-
Android: Construa e integre modelos NCNN para object detection em aplicações 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 cobriu a exportação de modelos Ultralytics YOLO26 para o formato NCNN para eficiência e velocidade aprimoradas em dispositivos com recursos limitados.
Para obter detalhes adicionais, consulte a official NCNN documentation. Para outras opções de exportação, visite a nossa integration guide page.
FAQ#
Para exportar seu modelo Ultralytics YOLO26 para o formato NCNN:
-
Python: Use o método
exportda 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: Use o comando
yolo export.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Para ver opções detalhadas de exportação, consulte a documentação de Export.
-
Exportar seus modelos Ultralytics YOLO26 para NCNN oferece vários benefícios:
- 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 suporta técnicas como quantização que melhoram a velocidade do modelo e reduzem o uso de memória.
- Ampla compatibilidade: Você pode implantar modelos NCNN em múltiplas plataformas, incluindo Android, iOS, Linux e macOS.
- Aceleração de GPU Vulkan: Aproveite a aceleração de GPU em AMD, Intel e outras GPUs que não sejam da NVIDIA via Vulkan para uma inferência mais rápida.
Para mais detalhes, consulte a seção Why Export to NCNN?.
O NCNN, desenvolvido pela Tencent, é otimizado especificamente para plataformas móveis. Os principais motivos para usar o NCNN incluem:
- Alto desempenho: Projetado para processamento eficiente e rápido em CPUs móveis.
- Multiplataforma: Compatível com frameworks populares como TensorFlow e ONNX, facilitando a conversão e implantaçã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, consulte a seção Key Features of NCNN Models.
O NCNN é versátil e suporta várias plataformas:
- Móvel: Android, iOS.
- Sistemas embarcados e dispositivos IoT: Dispositivos como Raspberry Pi e NVIDIA Jetson.
- Desktop e servidores: Linux, Windows e macOS.
Para obter melhor desempenho no Raspberry Pi, considere usar o formato NCNN, conforme detalhado no nosso Raspberry Pi Guide.
Para implantar seus modelos YOLO26 no Android:
- Build for Android: Siga o guia NCNN Build for Android.
- Integrar com sua aplicação: Use o SDK NCNN para Android para integrar o modelo exportado à sua aplicação para uma inferência eficiente no dispositivo.
Para instruções detalhadas, consulte Deploying Exported YOLO26 NCNN Models.
Para guias mais avançados e casos de uso, visite o Ultralytics deployment guide.
O NCNN suporta Vulkan para aceleração de GPU em AMD, Intel e outras GPUs que não sejam da 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 devicePara sistemas com múltiplas GPUs, especifique o índice do dispositivo (por exemplo,
vulkan:1para a segunda GPU). Certifique-se de que os drivers Vulkan estejam instalados para a sua GPU. Consulte a seção Vulkan GPU Acceleration para mais detalhes.