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 analisarmos o código para exportar os modelos YOLOv8 para o formato NCNN , vamos compreender como os modelos NCNN são normalmente utilizados.

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 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 de 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.



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

Comentários