Salta para o conte√ļdo

Como exportar para NCNN a partir de YOLOv8 para uma implementação sem problemas

A implementação de modelos de visão por computador em dispositivos com poder computacional limitado, como sistemas móveis ou incorporados, pode ser complicada. Tens de te certificar de que usas um formato optimizado para um desempenho ótimo. Isso garante que mesmo dispositivos com poder de processamento limitado possam lidar bem com tarefas avançadas de visão computacional.

A funcionalidade de exporta√ß√£o para o formato NCNN permite-te otimizar os teus Ultralytics YOLOv8 modelos para aplica√ß√Ķes leves baseadas em dispositivos. Neste guia, vamos explicar-te como converter os teus modelos para o formato NCNN , facilitando o desempenho dos teus modelos em v√°rios dispositivos m√≥veis e incorporados.

Por que raz√£o deves exportar para NCNN?

NCNN vis√£o geral

The NCNN framework, developed by Tencent, is a high-performance neural network inference computing framework optimized specifically for mobile platforms, including mobile phones, embedded devices, and IoT devices. NCNN is compatible with a wide range of platforms, including Linux, Android, iOS, and macOS.

NCNN √© conhecido pela sua r√°pida velocidade de processamento em CPUs m√≥veis e permite a r√°pida implementa√ß√£o de modelos de aprendizagem profunda em plataformas m√≥veis. Isto facilita a cria√ß√£o de aplica√ß√Ķes inteligentes, colocando o poder da IA na ponta dos teus dedos.

Principais características dos modelos NCNN

NCNN oferecem uma vasta gama de funcionalidades essenciais que permitem a aprendizagem automática no dispositivo, ajudando os programadores a executar os seus modelos em dispositivos móveis, incorporados e periféricos:

  • Eficiente e de elevado desempenho: os modelos NCNN foram concebidos para serem eficientes e leves, optimizados para serem executados em dispositivos m√≥veis e incorporados, como o Raspberry Pi, com recursos limitados. Tamb√©m podem atingir um elevado desempenho com elevada precis√£o em v√°rias tarefas baseadas na vis√£o por computador.

  • Quantiza√ß√£o: os modelos NCNN suportam frequentemente a quantiza√ß√£o, que √© uma t√©cnica que reduz a precis√£o dos pesos e das activa√ß√Ķes do modelo. Isto leva a mais melhorias no desempenho e reduz o espa√ßo de mem√≥ria.

  • Compatibilidade: os modelos NCNN s√£o compat√≠veis com estruturas populares de aprendizagem profunda, como TensorFlowCaffe, e ONNX. Esta compatibilidade permite que os programadores utilizem facilmente modelos e fluxos de trabalho existentes.

  • F√°cil de utilizar: os modelos NCNN foram concebidos para uma f√°cil integra√ß√£o em v√°rias aplica√ß√Ķes, gra√ßas √† sua compatibilidade com estruturas populares de aprendizagem profunda. Al√©m disso, o NCNN oferece ferramentas f√°ceis de utilizar para converter modelos entre diferentes formatos, garantindo uma interoperabilidade suave em todo o cen√°rio de desenvolvimento.

Op√ß√Ķes de implanta√ß√£o com NCNN

Antes de examinarmos o código para exportar YOLOv8 modelos para o NCNN formato, vamos entender como NCNN modelos são normalmente usados.

NCNN concebidos para eficiência e desempenho, são compatíveis com uma variedade de plataformas de implementação:

  • Mobile Deployment: Specifically optimized for Android and iOS, allowing for seamless integration into mobile applications for efficient on-device inference.

  • Embedded Systems and IoT Devices: If you find that running inference on a Raspberry Pi with the Ultralytics Guide isn't fast enough, switching to an NCNN exported model could help speed things up. NCNN is great for devices like Raspberry Pi and NVIDIA Jetson, especially in situations where you need quick processing right on the device.

  • Implementa√ß√£o em ambiente de trabalho e servidor: Capaz de ser implantado em ambientes de desktop e servidor em Linux, Windows e macOS, suportando desenvolvimento, treinamento e avalia√ß√£o com capacidades computacionais mais altas.

Exportar para NCNN: Converter o teu modelo YOLOv8

Podes expandir a compatibilidade de modelos e a flexibilidade de implementação convertendo os modelos YOLOv8 para o formato NCNN .

Instalação

Para instalar os pacotes necess√°rios, executa:

Instalação

# Install the required package for YOLOv8
pip install ultralytics

Para obter instru√ß√Ķes detalhadas e melhores pr√°ticas relacionadas com o processo de instala√ß√£o, consulta o nosso guia de instala√ß√£oUltralytics . Durante a instala√ß√£o dos pacotes necess√°rios para YOLOv8, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres solu√ß√Ķes e sugest√Ķes.

Utilização

Antes de seguir as instru√ß√Ķes de utiliza√ß√£o, √© importante notar que, embora todos os modelosUltralytics YOLOv8 estejam dispon√≠veis para exporta√ß√£o, podes garantir que o modelo que seleccionaste suporta a funcionalidade de exporta√ß√£o aqui.

Utilização

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'

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

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Para obter mais detalhes sobre as op√ß√Ķes de exporta√ß√£o suportadas, visita a p√°gina de documenta√ß√£oUltralytics sobre op√ß√Ķes de implementa√ß√£o.

Implantação de modelos exportados YOLOv8 NCNN

Depois de exportar com √™xito seus modelos Ultralytics YOLOv8 para o formato NCNN , agora √© poss√≠vel implant√°-los. A primeira etapa principal e recomendada para executar um modelo NCNN √© utilizar o m√©todo YOLO("./model_ncnn_model"), conforme descrito no trecho de c√≥digo de uso anterior. No entanto, para obter instru√ß√Ķes detalhadas sobre a implanta√ß√£o de seus modelos NCNN em v√°rias outras configura√ß√Ķes, d√° uma olhada nos seguintes recursos:

  • Android: This blog explains how to use NCNN models for performing tasks like object detection through Android applications.

  • macOS: Compreende como utilizar os modelos NCNN para executar tarefas atrav√©s do macOS.

  • Linux: Explora esta p√°gina para saberes como implementar modelos NCNN em dispositivos com recursos limitados, como o Raspberry Pi e outros dispositivos semelhantes.

  • Windows x64 usando o VS2017: Explora este blogue para saberes como implementar modelos NCNN no Windows x64 utilizando o Visual Studio Community 2017.

Resumo

Neste guia, examinamos a exportação de modelos Ultralytics YOLOv8 para o formato NCNN . Esta etapa de conversão é crucial para melhorar a eficiência e a velocidade dos modelos YOLOv8 , tornando-os mais eficazes e adequados para ambientes de computação com recursos limitados.

Para obter instru√ß√Ķes detalhadas sobre a utiliza√ß√£o, consulta a documenta√ß√£o oficial NCNN .

Al√©m disso, se estiveres interessado em explorar outras op√ß√Ķes de integra√ß√£o para Ultralytics YOLOv8 , n√£o te esque√ßas de visitar a nossa p√°gina de guia de integra√ß√£o para obteres mais informa√ß√Ķes.

FAQ

Como é que exporto os modelos Ultralytics YOLOv8 para o formato NCNN ?

Para exportar o modelo Ultralytics YOLOv8 para o formato NCNN , segue estes passos:

  • Python: Utiliza o bot√£o export da classe YOLO .

    from ultralytics import YOLO
    
    # Load the YOLOv8 model
    model = YOLO("yolov8n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'
    
  • CLI: Utiliza o bot√£o yolo com o comando export argumenta.

    yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'
    

Para op√ß√Ķes de exporta√ß√£o detalhadas, consulta a p√°gina Exportar na documenta√ß√£o.

Quais s√£o as vantagens de exportar modelos YOLOv8 para NCNN?

Exportar os teus modelos Ultralytics YOLOv8 para NCNN oferece v√°rias vantagens:

  • Efici√™ncia: os modelos NCNN s√£o optimizados para dispositivos m√≥veis e incorporados, garantindo um elevado desempenho mesmo com recursos computacionais limitados.
  • Quantiza√ß√£o: NCNN suporta t√©cnicas como a quantiza√ß√£o que melhoram a velocidade do modelo e reduzem a utiliza√ß√£o da mem√≥ria.
  • Broad Compatibility: You can deploy NCNN models on multiple platforms, including Android, iOS, Linux, and macOS.

Para obter mais detalhes, consulta a secção Exportar para NCNN na documentação.

Por que raz√£o devo utilizar NCNN para as minhas aplica√ß√Ķes m√≥veis de IA?

NCNN, desenvolvido pela Tencent, est√° especificamente optimizado para plataformas m√≥veis. As principais raz√Ķes para utilizares o NCNN incluem:

  • Alto desempenho: Concebido para um processamento eficiente e r√°pido em CPUs m√≥veis.
  • Multiplataforma: Compat√≠vel com estruturas populares, como TensorFlow e ONNX, facilitando a convers√£o e a implanta√ß√£o de modelos em diferentes plataformas.
  • Apoio da comunidade: O apoio ativo da comunidade assegura melhorias e actualiza√ß√Ķes cont√≠nuas.

Para saber mais, visita a visão geralNCNN na documentação.

Que plataformas são suportadas para a implementação do modelo NCNN ?

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

  • Mobile: Android, iOS.
  • Embedded Systems and IoT Devices: Devices like Raspberry Pi and NVIDIA Jetson.
  • Desktop e servidores: Linux, Windows e macOS.

Se a execução de modelos num Raspberry Pi não for suficientemente rápida, a conversão para o formato NCNN pode acelerar as coisas, conforme descrito no nosso Guia do Raspberry Pi.

Como posso implementar Ultralytics YOLOv8 NCNN modelos em Android?

Para implementar os teus modelos YOLOv8 em Android:

  1. Build for Android: Follow the NCNN Build for Android guide.
  2. Integrate with Your App: Use the NCNN Android SDK to integrate the exported model into your application for efficient on-device inference.

Para obter instru√ß√Ķes passo a passo, consulta o nosso guia sobre a implementa√ß√£o dos modelos YOLOv8 NCNN .

Para obter guias e casos de utilização mais avançados, visita a página de documentaçãoUltralytics .



Criado em 2024-03-01, Atualizado em 2024-07-05
Autores: glenn-jocher (6), abirami-vina (1)

Coment√°rios