Ir al contenido

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.

RKNN

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.

Captura de pantalla de la exportación RKNN

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.



📅 Creado hace 7 meses ✏️ Actualizado hace 2 meses

Comentarios