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