Exportación de Rockchip RKNN para modelos Ultralytics YOLO11
Al implementar modelos de visión artificial en dispositivos integrados, especialmente aquellos impulsados por procesadores Rockchip, es esencial contar con un formato de modelo compatible. Exportar modelos Ultralytics YOLO11 al formato RKNN garantiza un rendimiento optimizado y la compatibilidad con el hardware de Rockchip. Esta guía lo guiará a través de la conversión de sus modelos YOLO11 al formato RKNN, lo que permite una implementación eficiente en las plataformas Rockchip.
Nota
Esta guía se ha probado con Radxa Rock 5B, que se basa en Rockchip RK3588, y Radxa Zero 3W, que se basa en Rockchip RK3566. Se espera que funcione en otros dispositivos basados en Rockchip que admitan rknn-toolkit2, como RK3576, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B y RK2118.
¿Qué es Rockchip?
Reconocida por ofrecer soluciones versátiles y de bajo consumo, Rockchip diseña avanzados System-on-Chips (SoCs) que impulsan una amplia gama de productos electrónicos de consumo, aplicaciones industriales y tecnologías de IA. Con arquitectura basada en ARM, unidades de procesamiento neuronal (NPU) integradas y soporte multimedia de alta resolución, los SoCs de Rockchip permiten un rendimiento de vanguardia para dispositivos como tabletas, televisores inteligentes, sistemas IoT y aplicaciones de IA en el borde. Empresas como Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas y Banana Pi ofrecen una variedad de productos basados en SoCs de Rockchip, extendiendo aún más su alcance e impacto en diversos mercados.
RKNN Toolkit
El RKNN Toolkit es un conjunto de herramientas y bibliotecas proporcionadas por Rockchip para facilitar la implementación de modelos de aprendizaje profundo en sus plataformas de hardware. RKNN, o Rockchip Neural Network, es el formato propietario utilizado por estas herramientas. Los modelos RKNN están diseñados para aprovechar al máximo la aceleración de hardware proporcionada por la NPU (Neural Processing Unit) de Rockchip, lo que garantiza un alto rendimiento en tareas de IA en dispositivos como RK3588, RK3566, RV1103, RV1106 y otros sistemas alimentados por Rockchip.
Características principales de los modelos RKNN
Los modelos RKNN ofrecen varias ventajas para la implementación en plataformas Rockchip:
- Optimizado para NPU: Los modelos RKNN están optimizados específicamente para ejecutarse en las NPU de Rockchip, lo que garantiza el máximo rendimiento y eficiencia.
- Baja latencia: El formato RKNN minimiza la latencia de inferencia, lo cual es fundamental para las aplicaciones en tiempo real en dispositivos periféricos.
- Personalización específica de la plataforma: Los modelos RKNN se pueden adaptar a plataformas Rockchip específicas, lo que permite una mejor utilización de los recursos de hardware.
- Eficiencia Energética: Al aprovechar el hardware NPU dedicado, los modelos RKNN consumen menos energía que el procesamiento basado en CPU o GPU, lo que prolonga la duración de la batería de los dispositivos portátiles.
Flashear el SO a hardware Rockchip
El primer paso después de tener en tus manos un dispositivo basado en Rockchip es flashear un sistema operativo para que el hardware pueda arrancar en un entorno de trabajo. En esta guía, te indicaremos las guías de inicio de los dos dispositivos que probamos, que son Radxa Rock 5B y Radxa Zero 3W.
Exportar a RKNN: Convirtiendo su modelo YOLO11
Exporte un modelo Ultralytics YOLO11 al formato RKNN y ejecute la inferencia con el modelo exportado.
Nota
Asegúrese de utilizar un PC Linux basado en X86 para exportar el modelo a RKNN, ya que no se admite la exportación en dispositivos basados en Rockchip (ARM64).
Instalación
Para instalar los paquetes necesarios, ejecute:
Instalación
# Install the required package for YOLO11
pip install ultralytics
Para obtener instrucciones detalladas y las mejores prácticas relacionadas con el proceso de instalación, consulte nuestra Guía de instalación de Ultralytics. Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra Guía de problemas comunes para obtener soluciones y consejos.
Uso
Nota
La exportación actualmente solo es compatible con los modelos de detección. En el futuro, se admitirán más modelos.
Uso
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 exportación
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'rknn' |
Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación. |
imgsz |
int o tuple |
640 |
Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas. |
batch |
int |
1 |
Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo. |
name |
str |
'rk3588' |
Especifica el modelo Rockchip (rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118) |
device |
str |
None |
Especifica el dispositivo para la exportación: GPU (device=0 ), CPU (device=cpu ). |
Consejo
Asegúrese de utilizar una máquina x86 Linux al exportar a RKNN.
Para obtener más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre la exportación.
Implementación de modelos RKNN YOLO11 exportados
Una vez que haya exportado correctamente sus modelos Ultralytics YOLO11 al formato RKNN, el siguiente paso es implementar estos modelos en dispositivos basados en Rockchip.
Instalación
Para instalar los paquetes necesarios, ejecute:
Instalación
# Install the required package for YOLO11
pip install ultralytics
Uso
Uso
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
Si encuentra un mensaje de registro que indica que la versión del entorno de ejecución de RKNN no coincide con la versión de RKNN Toolkit y la inferencia falla, sustituya /usr/lib/librknnrt.so
con la versión oficial archivo librknnrt.so.
Aplicaciones en el mundo real
Los dispositivos con tecnología Rockchip con modelos YOLO11 RKNN se pueden utilizar en diversas aplicaciones:
- Vigilancia inteligente: Implemente sistemas eficientes de detección de objetos para la supervisión de la seguridad con bajo consumo de energía.
- Automatización Industrial: Implemente el control de calidad y la detección de defectos directamente en dispositivos integrados.
- Análisis minorista: Rastree el comportamiento del cliente y la gestión del inventario en tiempo real sin dependencia de la nube.
- Agricultura inteligente: Supervise la salud de los cultivos y detecte plagas utilizando visión artificial en la agricultura.
- Robótica autónoma: Permite la navegación basada en la visión y la detección de obstáculos en plataformas con recursos limitados.
Benchmarks
Los benchmarks de YOLO11 a continuación fueron ejecutados por el equipo de Ultralytics en Radxa Rock 5B basado en Rockchip RK3588 con rknn
midiendo la velocidad y la precisión.
Rendimiento
Modelo | Formato | Estado | Tamaño (MB) | mAP50-95(B) | Tiempo de inferencia (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 |
Puesto a prueba con ultralytics 8.3.152
Nota
La validación para los benchmarks anteriores se realizó utilizando el conjunto de datos COCO128. El tiempo de inferencia no incluye el pre/post-procesamiento.
Resumen
En esta guía, ha aprendido a exportar modelos Ultralytics YOLO11 al formato RKNN para mejorar su implementación en plataformas Rockchip. También se le ha presentado el RKNN Toolkit y las ventajas específicas de utilizar modelos RKNN para aplicaciones de IA en el borde.
La combinación de Ultralytics YOLO11 y la tecnología NPU de Rockchip proporciona una solución eficiente para ejecutar tareas avanzadas de visión artificial en dispositivos integrados. Este enfoque permite la detección de objetos en tiempo real y otras aplicaciones de IA de visión con un consumo de energía mínimo y un alto rendimiento.
Para obtener más detalles sobre su uso, visite la documentación oficial de RKNN.
Además, si deseas obtener más información sobre otras integraciones de Ultralytics YOLO11, visita nuestra página de la guía de integración. Allí encontrarás muchos recursos e información útiles.
Preguntas frecuentes
¿Cómo exporto mi modelo Ultralytics YOLO al formato RKNN?
Puede exportar fácilmente su modelo Ultralytics YOLO al formato RKNN utilizando el export()
método en el paquete de python Ultralytics o a través de la interfaz de línea de comandos (CLI). Asegúrate de estar utilizando un PC Linux basado en x86 para el proceso de exportación, ya que los dispositivos ARM64 como Rockchip no son compatibles con esta operación. Puedes especificar la plataforma Rockchip de destino utilizando el name
argumento, como rk3588
, rk3566
, u otros. Este proceso genera un modelo RKNN optimizado listo para su implementación en su dispositivo Rockchip, aprovechando su Unidad de Procesamiento Neuronal (NPU) para una inferencia acelerada.
Ejemplo
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
¿Cuáles son los beneficios de usar modelos RKNN en dispositivos Rockchip?
Los modelos RKNN están diseñados específicamente para aprovechar las capacidades de aceleración de hardware de las Unidades de Procesamiento Neuronal (NPU) de Rockchip. Esta optimización se traduce en velocidades de inferencia significativamente más rápidas y una latencia reducida en comparación con la ejecución de formatos de modelos genéricos como ONNX o TensorFlow Lite en el mismo hardware. El uso de modelos RKNN permite un uso más eficiente de los recursos del dispositivo, lo que conduce a un menor consumo de energía y un mejor rendimiento general, lo cual es especialmente crítico para las aplicaciones en tiempo real en dispositivos periféricos. Al convertir sus modelos YOLO de Ultralytics a RKNN, puede lograr un rendimiento óptimo en dispositivos alimentados por SoCs de Rockchip como el RK3588, RK3566 y otros.
¿Puedo implementar modelos RKNN en dispositivos de otros fabricantes como NVIDIA o Google?
Los modelos RKNN están optimizados específicamente para las plataformas Rockchip y sus NPU integradas. Aunque técnicamente se puede ejecutar un modelo RKNN en otras plataformas utilizando la emulación de software, no se beneficiará de la aceleración de hardware proporcionada por los dispositivos Rockchip. Para un rendimiento óptimo en otras plataformas, se recomienda exportar sus modelos Ultralytics YOLO a formatos diseñados específicamente para esas plataformas, como TensorRT para las GPU de NVIDIA o TensorFlow Lite para la Edge TPU de Google. Ultralytics admite la exportación a una amplia gama de formatos, lo que garantiza la compatibilidad con varios aceleradores de hardware.
¿Qué plataformas Rockchip son compatibles con la implementación de modelos RKNN?
La exportación de Ultralytics YOLO al formato RKNN admite una amplia gama de plataformas Rockchip, incluyendo las populares RK3588, RK3576, RK3566, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B y RK2118. Estas plataformas se encuentran comúnmente en dispositivos de fabricantes como Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas y Banana Pi. Esta amplia compatibilidad garantiza que pueda implementar sus modelos RKNN optimizados en varios dispositivos con tecnología Rockchip, desde computadoras de placa única hasta sistemas industriales, aprovechando al máximo sus capacidades de aceleración de IA para mejorar el rendimiento en sus aplicaciones de visión artificial.
¿Cómo se compara el rendimiento de los modelos RKNN con otros formatos en dispositivos Rockchip?
Los modelos RKNN generalmente superan a otros formatos como ONNX o TensorFlow Lite en dispositivos Rockchip debido a su optimización para las NPU de Rockchip. Por ejemplo, los benchmarks en el Radxa Rock 5B (RK3588) muestran que YOLO11n en formato RKNN alcanza un tiempo de inferencia de 99.5 ms/imagen, significativamente más rápido que otros formatos. Esta ventaja de rendimiento es consistente en varios tamaños de modelo YOLO11, como se demuestra en la sección de benchmarks. Al aprovechar el hardware NPU dedicado, los modelos RKNN minimizan la latencia y maximizan el rendimiento, lo que los hace ideales para aplicaciones en tiempo real en dispositivos edge basados en Rockchip.