CV / YOLOv6
YOLOv6
reComputer RK3588
Detección de objetos COCO YOLOv6 en reComputer RK3576/RK3588 (RKNN) y en reComputer R Series con Hailo-8 o Hailo-10H.
Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.
Primeros pasos
Armbian 26.8.7 Gnome o posterior con OTA overlayroot: Configura el almacenamiento de Docker antes de ejecutar contenedores para evitar errores de montaje de overlay.
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-yolov6:latest \
python3 web_detection.py --platform rk3588 --model_path model/yolov6n.rknn --video_path video/test.mp4API REST
Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "yolov6",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolov6", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Detalles del modelo
reComputer RKArmbian 26.8.7 Gnome o posterior con OTA overlayroot: Configura el almacenamiento de Docker antes de ejecutar contenedores para evitar errores de montaje de overlay.
Inicio rápido
1. Instalar Docker
Ejecute los siguientes comandos en la placa de desarrollo para instalar Docker:
# 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 docker2. Ejecutar el proyecto (un comando y vista previa de doble modo)
Este despliegue se basa en los módulos YOLOv6 de reComputer-RK-CV. Ejecuta detección COCO con RKNN-Toolkit-Lite2 y ofrece vista previa en navegador, inferencia REST y procesamiento de vídeo sin conexión.
Información del modelo
| Propiedad | Valor |
|---|---|
| Tarea | Detección de objetos COCO de 80 clases |
| Entrada | 640 x 640, con letterbox y conversión de BGR a RGB |
| Variantes | yolov6n.rknn, yolov6s.rknn, yolov6m.rknn |
| Predeterminado | model/yolov6n.rknn |
| Salida | Clases, puntuaciones de confianza y cuadros en la imagen de origen |
Paso A: Descargar las imágenes
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov6:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latestPaso B: Ejecutar con un clic
Seleccione el tamaño cambiando --model_path.
Para RK3576:
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-yolov6:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolov6n.rknn --video_path video/test.mp4Para RK3588:
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-yolov6:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolov6n.rknn --video_path video/test.mp4Use model/yolov6s.rknn o model/yolov6m.rknn para las demás variantes del catálogo. Sustituya --video_path video/test.mp4 por --camera_id -1 para el modo de solo carga. Abra http://<BOARD_IP>:8000 o /docs.
🔌 Documentación de la API
1. Interfaz de inferencia del modelo (Predict)
Endpoint: POST /api/models/yolov6/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:
curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
-F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
-F "video=@test.mp4" -F "timestamp=5.5"Formato de respuesta (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)
GET /api/config devuelve obj_thresh y nms_thresh. Actualícelos con POST /api/config; los campos conf e iou de la solicitud prevalecen sobre los valores globales.
El servicio también ofrece GET /api/health, GET /api/video_feed, POST /api/video/upload, POST /api/video/analyze y endpoints de estado, lista y descarga de vídeo. Los archivos se guardan en workspace/ salvo que se defina RK_CV_WORKSPACE. Los modelos de sustitución deben conservar el tamaño de entrada y la disposición de tensores YOLOv6 esperada por web_detection.py.
3. Argumentos de línea de comandos
| Argumento | Predeterminado | Descripción |
|---|---|---|
--platform | Obligatorio | rk3576 o rk3588; debe coincidir con la imagen. |
--model_path | Obligatorio | Uno de los archivos RKNN YOLOv6 incluidos. |
--camera_id | 1 | Índice de cámara; -1 habilita el modo de solo carga. |
--video_path | Ninguno | MP4 local en bucle; prevalece sobre la cámara. |
--class_path | Etiquetas COCO | Lista de clases de sustitución opcional. |
--host / --port | 0.0.0.0 / 8000 | Dirección y puerto de escucha de FastAPI. |
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
docker build -f docker/rk3576/yolov6.dockerfile \
-t rk3576-yolov6:local src/rk3576_yolov6
docker build -f docker/rk3588/yolov6.dockerfile \
-t rk3588-yolov6:local src/rk3588_yolov6Entradas y salidas
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.