Exportação Rockchip RKNN para modelos Ultralytics YOLO11
Ao implementar modelos de visão computacional em dispositivos embarcados, especialmente aqueles alimentados por processadores Rockchip, ter um formato de modelo compatível é essencial. Exportar modelos Ultralytics YOLO11 para o formato RKNN garante desempenho otimizado e compatibilidade com o hardware da Rockchip. Este guia irá guiá-lo através da conversão de seus modelos YOLO11 para o formato RKNN, permitindo a implantação eficiente em plataformas Rockchip.
Nota
Este guia foi testado com Radxa Rock 5B que é baseado em Rockchip RK3588 e Radxa Zero 3W que é baseado em Rockchip RK3566. Espera-se que funcione em outros dispositivos baseados em Rockchip que suportam rknn-toolkit2, como RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B e RK2118.
O que é Rockchip?
Reconhecida por fornecer soluções versáteis e com baixo consumo de energia, a Rockchip projeta System-on-Chips (SoCs) avançados que alimentam uma ampla gama de eletrônicos de consumo, aplicações industriais e tecnologias de IA. Com arquitetura baseada em ARM, Unidades de Processamento Neural (NPUs) integradas e suporte multimídia de alta resolução, os SoCs da Rockchip proporcionam desempenho de ponta para dispositivos como tablets, smart TVs, sistemas IoT e aplicações de IA de ponta. Empresas como Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi oferecem uma variedade de produtos baseados em SoCs da Rockchip, ampliando ainda mais seu alcance e impacto em diversos mercados.
RKNN Toolkit
O RKNN Toolkit é um conjunto de ferramentas e bibliotecas fornecidas pela Rockchip para facilitar a implementação de modelos de aprendizado profundo em suas plataformas de hardware. RKNN, ou Rockchip Neural Network, é o formato proprietário usado por essas ferramentas. Os modelos RKNN são projetados para aproveitar ao máximo a aceleração de hardware fornecida pela NPU (Neural Processing Unit) da Rockchip, garantindo alto desempenho em tarefas de IA em dispositivos como RK3588, RK3566, RV1103, RV1106 e outros sistemas alimentados por Rockchip.
Principais funcionalidades dos modelos RKNN
Os modelos RKNN oferecem várias vantagens para implantação em plataformas Rockchip:
- Otimizado para NPU: Os modelos RKNN são especificamente otimizados para serem executados em NPUs da Rockchip, garantindo o máximo desempenho e eficiência.
- Baixa Latência: O formato RKNN minimiza a latência de inferência, o que é fundamental para aplicações em tempo real em dispositivos de borda.
- Personalização Específica da Plataforma: Os modelos RKNN podem ser adaptados a plataformas Rockchip específicas, permitindo uma melhor utilização dos recursos de hardware.
- Eficiência Energética: Ao aproveitar o hardware NPU dedicado, os modelos RKNN consomem menos energia do que o processamento baseado em CPU ou GPU, prolongando a vida útil da bateria para dispositivos portáteis.
Instalar o SO no hardware Rockchip
O primeiro passo após ter em mãos um dispositivo baseado em Rockchip é instalar um sistema operacional para que o hardware possa inicializar em um ambiente de trabalho. Neste guia, indicaremos guias de introdução dos dois dispositivos que testamos, que são o Radxa Rock 5B e o Radxa Zero 3W.
Exportar para RKNN: Convertendo Seu Modelo YOLO11
Exporte um modelo Ultralytics YOLO11 para o formato RKNN e execute a inferência com o modelo exportado.
Nota
Certifique-se de usar um PC Linux baseado em X86 para exportar o modelo para RKNN, pois a exportação em dispositivos baseados em Rockchip (ARM64) não é suportada.
Instalação
Para instalar os pacotes necessários, execute:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Para obter instruções detalhadas e melhores práticas relacionadas ao processo de instalação, consulte nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO11, se você encontrar alguma dificuldade, consulte nosso guia de problemas comuns para obter soluções e dicas.
Utilização
Nota
A exportação está atualmente suportada apenas para modelos de detecção. Mais suporte a modelos estará disponível no futuro.
Utilização
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", name="rk3588") # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
yolo export model=yolo11n.pt format=rknn name=rk3588 # creates '/yolo11n_rknn_model'
Argumentos de Exportação
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
format |
str |
'rknn' |
Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implementaçã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. |
batch |
int |
1 |
Especifica o tamanho do lote de inferência do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict modo. |
name |
str |
'rk3588' |
Especifica o modelo Rockchip (rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118) |
device |
str |
None |
Especifica o dispositivo para exportação: GPU (device=0 CPU (device=cpu ). |
Dica
Certifique-se de usar uma máquina x86 Linux ao exportar para RKNN.
Para mais detalhes sobre o processo de exportação, visite a página de documentação da Ultralytics sobre exportação.
Implantação de Modelos RKNN YOLO11 Exportados
Depois de exportar com sucesso seus modelos Ultralytics YOLO11 para o formato RKNN, a próxima etapa é implementar esses modelos em dispositivos baseados em Rockchip.
Instalação
Para instalar os pacotes necessários, execute:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Utilização
Utilização
from ultralytics import YOLO
# Load the exported RKNN model
rknn_model = YOLO("./yolo11n_rknn_model")
# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model='./yolo11n_rknn_model' source='https://ultralytics.com/images/bus.jpg'
Nota
Se você encontrar uma mensagem de log indicando que a versão do tempo de execução do RKNN não corresponde à versão do RKNN Toolkit e a inferência falhar, substitua /usr/lib/librknnrt.so
com oficial arquivo librknnrt.so.
Aplicações no Mundo Real
Dispositivos alimentados por Rockchip com modelos YOLO11 RKNN podem ser usados em várias aplicações:
- Vigilância Inteligente: Implante sistemas eficientes de detecção de objetos para monitoramento de segurança com baixo consumo de energia.
- Automação Industrial: Implemente o controle de qualidade e a detecção de defeitos diretamente em dispositivos embarcados.
- Análise de Varejo: Rastreie o comportamento do cliente e a gestão de estoque em tempo real, sem dependência da nuvem.
- Agricultura Inteligente: Monitore a saúde das colheitas e detecte pragas usando visão computacional na agricultura.
- Robótica Autônoma: Permite a navegação baseada em visão e a detecção de obstáculos em plataformas com recursos limitados.
Benchmarks
Os benchmarks do YOLO11 abaixo foram executados pela equipa Ultralytics no Radxa Rock 5B baseado no Rockchip RK3588 com rknn
formato do modelo medindo velocidade e precisão.
Desempenho
Modelo | Formato | Status | Tamanho (MB) | mAP50-95(B) | Tempo de inferência (ms/im) |
---|---|---|---|---|---|
YOLO11n | rknn |
✅ | 7.4 | 0.505 | 71.5 |
YOLO11s | rknn |
✅ | 20.7 | 0.578 | 98.9 |
YOLO11m | rknn |
✅ | 41.9 | 0.629 | 235.3 |
YOLO11l | rknn |
✅ | 53.3 | 0.633 | 282.0 |
YOLO11x | rknn |
✅ | 114.6 | 0.687 | 679.2 |
Testado com ultralytics 8.3.152
Nota
A validação para os benchmarks acima foi feita usando o conjunto de dados COCO128. O tempo de inferência não inclui o pré/pós-processamento.
Resumo
Neste guia, você aprendeu como exportar modelos Ultralytics YOLO11 para o formato RKNN para aprimorar sua implantação em plataformas Rockchip. Você também foi apresentado ao RKNN Toolkit e às vantagens específicas de usar modelos RKNN para aplicações de IA de ponta.
A combinação de Ultralytics YOLO11 e a tecnologia NPU da Rockchip fornece uma solução eficiente para executar tarefas avançadas de visão computacional em dispositivos embarcados. Essa abordagem permite a detecção de objetos em tempo real e outras aplicações de IA de visão com consumo mínimo de energia e alto desempenho.
Para obter mais detalhes sobre o uso, visite a documentação oficial do RKNN.
Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO11, visite nossa página do guia de integração. Você encontrará muitos recursos e insights úteis lá.
FAQ
Como exportar meu modelo Ultralytics YOLO para o formato RKNN?
Você pode exportar facilmente seu modelo Ultralytics YOLO para o formato RKNN usando o export()
método no pacote Python Ultralytics ou através da interface de linha de comando (CLI). Certifique-se de que está a usar um PC Linux baseado em x86 para o processo de exportação, uma vez que dispositivos ARM64 como o Rockchip não são suportados para esta operação. Pode especificar a plataforma Rockchip de destino usando o name
argumento, como rk3588
, rk3566
, ou outros. Este processo gera um modelo RKNN otimizado, pronto para implantação no seu dispositivo Rockchip, aproveitando sua Unidade de Processamento Neural (NPU) para inferência acelerada.
Exemplo
from ultralytics import YOLO
# Load your YOLO model
model = YOLO("yolo11n.pt")
# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")
yolo export model=yolo11n.pt format=rknn name=rk3588
Quais são os benefícios de usar modelos RKNN em dispositivos Rockchip?
Os modelos RKNN são especificamente projetados para aproveitar os recursos de aceleração de hardware das Unidades de Processamento Neural (NPUs) da Rockchip. Essa otimização resulta em velocidades de inferência significativamente mais rápidas e latência reduzida em comparação com a execução de formatos de modelo genéricos como ONNX ou TensorFlow Lite no mesmo hardware. O uso de modelos RKNN permite um uso mais eficiente dos recursos do dispositivo, levando a um menor consumo de energia e melhor desempenho geral, o que é especialmente crítico para aplicações em tempo real em dispositivos de borda. Ao converter seus modelos Ultralytics YOLO para RKNN, você pode obter o desempenho ideal em dispositivos alimentados por SoCs Rockchip como o RK3588, RK3566 e outros.
Posso implementar modelos RKNN em dispositivos de outros fabricantes, como NVIDIA ou Google?
Os modelos RKNN são especificamente otimizados para plataformas Rockchip e suas NPUs integradas. Embora tecnicamente você possa executar um modelo RKNN em outras plataformas usando emulação de software, você não se beneficiará da aceleração de hardware fornecida pelos dispositivos Rockchip. Para um desempenho ideal em outras plataformas, é recomendável exportar seus modelos Ultralytics YOLO para formatos especificamente projetados para essas plataformas, como TensorRT para GPUs NVIDIA ou TensorFlow Lite para Edge TPU do Google. A Ultralytics oferece suporte à exportação para uma ampla variedade de formatos, garantindo a compatibilidade com vários aceleradores de hardware.
Quais plataformas Rockchip são suportadas para a implementação de modelos RKNN?
A exportação Ultralytics YOLO para o formato RKNN suporta uma ampla gama de plataformas Rockchip, incluindo os populares RK3588, RK3576, RK3566, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B e RK2118. Essas plataformas são comumente encontradas em dispositivos de fabricantes como Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas e Banana Pi. Este amplo suporte garante que você possa implantar seus modelos RKNN otimizados em vários dispositivos alimentados por Rockchip, desde computadores de placa única até sistemas industriais, aproveitando ao máximo seus recursos de aceleração de IA para desempenho aprimorado em seus aplicativos de visão computacional.
Como o desempenho dos modelos RKNN se compara a outros formatos em dispositivos Rockchip?
Os modelos RKNN geralmente superam outros formatos como ONNX ou TensorFlow Lite em dispositivos Rockchip devido à sua otimização para as NPUs da Rockchip. Por exemplo, benchmarks no Radxa Rock 5B (RK3588) mostram que o YOLO11n no formato RKNN atinge um tempo de inferência de 99,5 ms/imagem, significativamente mais rápido do que outros formatos. Essa vantagem de desempenho é consistente em vários tamanhos de modelo YOLO11, conforme demonstrado na seção de benchmarks. Ao aproveitar o hardware NPU dedicado, os modelos RKNN minimizam a latência e maximizam a taxa de transferência, tornando-os ideais para aplicações em tempo real em dispositivos de borda baseados em Rockchip.