CV / YOLOv10

YOLOv10

Detección de objetos YOLOv10 nano (HEF) para reComputer R Series con Hailo-8.

21 descargas
Tamaño
7.36 MB
Memoria
4GB+
Precisión
RKNN / Hailo HEF

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Desplegar
sudo docker run --rm --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov10:latest \
  python3 web_detection.py --platform rk3576 --model_path model/yolov10n.rknn --video_path video/test.mp4

Detalles del modelo

reComputer RK

Inicio rápido

1. Instalar Docker

Ejecute los siguientes comandos en la placa de desarrollo para instalar Docker:

bash
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
# Aliyun
sudo sh get-docker.sh --mirror Aliyun
# systemd
sudo systemctl enable docker
sudo systemctl start docker

2. Ejecutar el proyecto (un comando y vista previa de doble modo)

Este despliegue RKNN procede de los módulos YOLOv10 de reComputer-RK-CV. Implementa el posprocesamiento Top-K de dos etapas, de extremo a extremo y sin NMS.

Información del modelo

PropiedadValor
TareaDetección de objetos COCO de 80 clases
Entrada640 x 640, con letterbox y conversión de BGR a RGB
Variantesyolov10n.rknn, yolov10s.rknn
Predeterminadomodel/yolov10n.rknn
PosprocesamientoSelección Top-K de extremo a extremo sin NMS

Paso A: Descargar las imágenes

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov10:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov10:latest

Paso B: Ejecutar con un clic

Para RK3576:

bash
sudo docker run --rm --privileged --net=host \
  --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov10:latest \
  python3 web_detection.py --platform rk3576 \
  --model_path model/yolov10n.rknn --video_path video/test.mp4

Para RK3588:

bash
sudo docker run --rm --privileged --net=host \
  --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov10:latest \
  python3 web_detection.py --platform rk3588 \
  --model_path model/yolov10n.rknn --video_path video/test.mp4

Seleccione YOLOv10s con --model_path model/yolov10s.rknn. Sustituya el argumento de vídeo por --camera_id -1 para el modo de solo carga.


🔌 Documentación de la API

1. Interfaz de inferencia del modelo (Predict)

Endpoint: POST /api/models/yolov10/predict

Parámetros de solicitud (Multipart/Form-Data):

Puede usar file, video, timestamp, realtime, conf e iou; los umbrales predeterminados son 0.25 y 0.45.

Ejemplos de uso:

bash
curl -X POST "http://<BOARD_IP>:8000/api/models/yolov10/predict" \
  -F "file=@bus.jpg" -F "conf=0.25"

Ejemplo de respuesta:

Formato de respuesta (JSON):

json
{
  "success": true,
  "source": "uploaded image",
  "predictions": [
    {
      "class": "bus",
      "confidence": 0.91,
      "box": {"x1": 100, "y1": 120, "x2": 520, "y2": 430}
    }
  ],
  "image": {"width": 640, "height": 480}
}

2. Interfaz de configuración del sistema (Config)

La API acepta iou por compatibilidad con el servicio de detección estándar, pero el posprocesamiento sin NMS de YOLOv10 no lo utiliza. La confianza global de GET/POST /api/config se aplica a la vista previa y al análisis sin conexión.

El servicio también expone estado, MJPEG, carga de vídeo, análisis asíncrono, estado, lista y descarga. Los archivos se escriben de forma predeterminada en workspace/. Un modelo de sustitución debe conservar el tamaño de entrada y los tensores de salida esperados por el decodificador sin NMS de web_detection.py.

3. Argumentos de línea de comandos

ArgumentoPredeterminadoDescripción
--platformObligatoriork3576 o rk3588.
--model_pathObligatorioArchivo RKNN YOLOv10n o YOLOv10s.
--camera_id1Índice de cámara; -1 deshabilita la captura.
--video_pathNingunoMP4 local en bucle; prevalece sobre la cámara.
--class_pathEtiquetas COCOLista de clases de sustitución opcional.
--host / --port0.0.0.0 / 8000Dirección y puerto del servicio.

Interfaz de vídeo en tiempo real (Video Feed)

Obtenga el último flujo MJPEG anotado para la vista previa en el navegador:

  • Endpoint: GET /api/video_feed
  • Ejemplo de uso: <img src="http://<BOARD_IP>:8000/api/video_feed">

🛠️ Guía para desarrolladores (recomendaciones de producción)

Compilar localmente

bash
docker build -f docker/rk3576/yolov10.dockerfile \
  -t rk3576-yolov10:local src/rk3576_yolov10

docker build -f docker/rk3588/yolov10.dockerfile \
  -t rk3588-yolov10:local src/rk3588_yolov10

Entradas y salidas

Entrada: imagen, vídeo o fotograma de cámara USB. Salida: cuadros de detección, clases, niveles de confianza y vista previa MJPEG anotada.