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

A estrutura NCNN desenvolvido pela Tencent, é uma estrutura de computação de inferência de rede neural de alto desempenho optimizada especificamente para plataformas móveis, incluindo telemóveis, dispositivos incorporados e dispositivos IoT. NCNN é compatível com uma vasta gama de plataformas, incluindo Linux, Android, iOS, e 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:

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

  • Sistemas incorporados e dispositivos IoT: Se achares que executar a inferência num Raspberry Pi com o guiaUltralytics não é suficientemente rápido, mudar para um modelo exportado para NCNN pode ajudar a acelerar as coisas. NCNN é ótimo para dispositivos como o Raspberry Pi e o NVIDIA Jetson, especialmente em situações em que precisas de um processamento rápido diretamente no dispositivo.

  • 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: Este blogue explica como utilizar os modelos NCNN para realizar tarefas como a deteção de objectos através das aplicações Android .

  • 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.
  • Compatibilidade ampla: Podes implementar os modelos NCNN em várias plataformas, incluindo Android, iOS, Linux e 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:

  • Telemóvel: Android, iOS.
  • Sistemas incorporados e dispositivos IoT: Dispositivos como o Raspberry Pi e o 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. Constrói para Android: Segue o guia NCNN Build for Android.
  2. Integrar com a tua aplicação: Utiliza o NCNN Android SDK para integrar o modelo exportado na tua aplicação para uma inferência eficiente no dispositivo.

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