Skip to main content

Detección de objetos con YOLOv11 en reComputer-RK

Este proyecto proporciona soluciones de aplicaciones de Visión por Computador (CV) de grado industrial y alto rendimiento para placas de desarrollo de la serie Rockchip (RK3588 y RK3576). Incorpora una integración profunda del modelo de detección de objetos YOLOv11, aprovechando la aceleración NPU para inferencia en tiempo real con baja latencia y alta tasa de fotogramas.

Estructura del proyecto

El proyecto está organizado por plataforma para gestionar controladores específicos y requisitos de tiempo de ejecución para RKNN-Toolkit2:

reComputer-RK-CV/
├── docker/ # Environment setup files
│ ├── rk3576/ # Dockerfile for RK3576 (rknn-rt 2.1.0+)
│ └── rk3588/ # Dockerfile for RK3588 (rknn-rt 2.1.0+)
├── src/ # Implementation logic
│ ├── rk3576/ # RK3576 source, models, and dependencies
│ └── rk3588/ # RK3588 source, models, and dependencies
└── .github/workflows/ # CI/CD for automated image building

Compatibilidad de hardware

Aunque ambos chips ofrecen 6 TOPS de rendimiento NPU, requieren diferentes asignaciones de rutas de hardware dentro de Docker.

PlataformaSoCNodo NPUCámara recomendadaEtiqueta de imagen
RK3588RK3588/RK3588S/dev/dri/renderD129/dev/video1rk3588-yolo
RK3576RK3576/dev/dri/renderD128/dev/video0rk3576-yolo

Primeros pasos

Instalar Docker

Instala el motor Docker estándar en tu placa:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker

Reenvío X11 (Opcional)

Para ver la ventana de detección en un monitor conectado directamente a la placa:

xhost +local:docker

Ejecutar el proyecto de detección

La aplicación incorpora Detección Automática: si no se encuentra ninguna pantalla, inicia automáticamente un flujo MJPEG accesible a través de tu navegador.

Para reComputer RK3588:

sudo docker run --rm --privileged --net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e PYTHONUNBUFFERED=1 \
--device /dev/video1:/dev/video1 \
--device /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolo:latest \
python web_detection.py --model_path model/yolo11n.rknn --camera_id 1

Para reComputer RK3576:

sudo docker run --rm --privileged --net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e PYTHONUNBUFFERED=1 \
--device /dev/video0:/dev/video0 \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolo:latest \
python web_detection.py --model_path model/yolo11n.rknn --camera_id 0

Interacción web y transmisión en tiempo real

El proyecto incluye una API RESTful compatible con los estándares de Ultralytics, accesible a través de http://<Board_IP>:8000.

  • Flujo de vídeo en tiempo real: Accede a /api/video_feed. Se puede incrustar directamente en HTML:
<img src="http://<IP>:8000/api/video_feed">.
  • Inferencia de imagen estática:
curl -X POST "http://localhost:8000/api/models/yolo11/predict" -F "file=@/home/user/test.jpg"
  • Configuración dinámica:
# Modify confidence threshold without restarting
curl -X POST "http://localhost:8000/api/config" -d '{"obj_thresh": 0.5}'

Guía para desarrolladores

Despliegue de modelo personalizado

  1. Coloca tu modelo .rknn convertido en un directorio del host.
  2. Crea un archivo de configuración de clases class_config.txt (por ejemplo, "person", "car").
  3. Monta mediante -v y especifica las rutas en el comando de inicio:
sudo docker run ... \
-v $(pwd)/my_model.rknn:/app/model/my_model.rknn \
-v $(pwd)/class_config.txt:/app/class_config.txt \
... \
python web_detection.py --model_path model/my_model.rknn --class_path class_config.txt

Referencia de argumentos de CLI

web_detection.py admite los siguientes parámetros:

ArgumentoDescripciónPredeterminado
--model_pathRuta al archivo de modelo RKNN(Obligatorio)
--camera_idID de la cámara (por ejemplo, 0 para /dev/video0)1
--class_pathRuta al archivo de configuración de clases personalizadasNone (COCO 80 predeterminado)
--portPuerto del servidor web8000

Video de demostración

Mira YOLOv11 ejecutándose en las últimas muestras EVT del próximo Kit de Desarrollo Rockchip RK3576 de Seeed:

Soporte técnico y debate sobre productos

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...