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?#
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:
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")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.
| Tarefa | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| 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:
# Install the required package for YOLO26
pip install ultralyticsPara 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.
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'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")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#
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
format | str | 'ncnn' | Formato de destino do modelo exportado, que define a compatibilidade com vários ambientes de implantação. |
imgsz | int ou tuple | 640 | Tamanho 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. |
quantize | int ou str | None | Precisã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. |
batch | int | 1 | Especifica 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. |
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 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
exportda 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:
- Compilar para Android: siga o guia Compilar NCNN para Android.
- 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 VulkanEm sistemas com várias GPUs, especifique o índice do dispositivo (por exemplo,
vulkan:1para 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.