CV / YOLOv7
YOLOv7
reComputer RK3588
Detección de objetos COCO con YOLOv7 acelerada por RKNN en reComputer RK3576 y RK3588, y también mediante HailoRT en reComputer R Series con 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-yolov7:latest \
python3 web_detection.py --platform rk3588 --model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --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": "yolov7-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolov7-rknn", "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)
Esta página documenta el servicio YOLOv7 RKNN de reComputer-RK-CV. Admite detección COCO, vista previa en navegador, inferencia REST, entrada de cámara y procesamiento MP4 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 | yolov7-tiny.rknn, yolov7.rknn |
| Predeterminado | model/yolov7-tiny.rknn |
| Anclas | model/anchors_yolov7.txt |
Paso A: Descargar las imágenes
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov7:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov7:latestPaso B: Ejecutar con un clic
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-yolov7:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --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-yolov7:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --video_path video/test.mp4Para usar YOLOv7 completo, cambie solo la ruta a model/yolov7.rknn. Mantenga el argumento de anclas. Use --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/yolov7/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/yolov7/predict" \
-F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"Formato de respuesta (JSON):
{
"success": true,
"source": "uploaded image",
"predictions": [
{
"class": "bus",
"confidence": 0.92,
"box": {"x1": 100, "y1": 120, "x2": 520, "y2": 430}
}
],
"image": {"width": 640, "height": 480}
}2. Interfaz de configuración del sistema (Config)
La interfaz multipart acepta solicitudes de imagen, fotograma MP4 y fuente en directo. GET/POST /api/config controla los umbrales predeterminados de confianza y NMS. Los endpoints de estado, MJPEG, carga, análisis, progreso, lista y descarga siguen la estructura estándar. Los archivos usan workspace/ de forma predeterminada. Los modelos de sustitución necesitan un archivo de anclas, tamaño de entrada, configuración de clases y disposición de salida compatibles.
3. Argumentos de línea de comandos
| Argumento | Predeterminado | Descripción |
|---|---|---|
--platform | Obligatorio | rk3576 o rk3588. |
--model_path | Obligatorio | Archivo RKNN YOLOv7 Tiny o completo. |
--anchors | Obligatorio | Archivo de anclas correspondiente al modelo convertido. |
--camera_id | 1 | Índice de cámara; use -1 solo para cargas. |
--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 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
docker build -f docker/rk3576/yolov7.dockerfile \
-t rk3576-yolov7:local src/rk3576_yolov7
docker build -f docker/rk3588/yolov7.dockerfile \
-t rk3588-yolov7:local src/rk3588_yolov7Entradas y salidas
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.