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.

49 descargas
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

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.

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/rk3588-yolov7:latest \
  python3 web_detection.py --platform rk3588 --model_path model/yolov7-tiny.rknn \
  --anchors model/anchors_yolov7.txt --video_path video/test.mp4

API REST

Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "yolov7-rknn",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
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 RK

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.

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)

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

PropiedadValor
TareaDetección de objetos COCO de 80 clases
Entrada640 x 640, con letterbox y conversión de BGR a RGB
Variantesyolov7-tiny.rknn, yolov7.rknn
Predeterminadomodel/yolov7-tiny.rknn
Anclasmodel/anchors_yolov7.txt

Paso A: Descargar las imágenes

bash
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: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-yolov7:latest \
  python3 web_detection.py --platform rk3576 \
  --model_path model/yolov7-tiny.rknn \
  --anchors model/anchors_yolov7.txt --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-yolov7:latest \
  python3 web_detection.py --platform rk3588 \
  --model_path model/yolov7-tiny.rknn \
  --anchors model/anchors_yolov7.txt --video_path video/test.mp4

Para 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:

bash
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):

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

ArgumentoPredeterminadoDescripción
--platformObligatoriork3576 o rk3588.
--model_pathObligatorioArchivo RKNN YOLOv7 Tiny o completo.
--anchorsObligatorioArchivo de anclas correspondiente al modelo convertido.
--camera_id1Índice de cámara; use -1 solo para cargas.
--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/yolov7.dockerfile \
  -t rk3576-yolov7:local src/rk3576_yolov7

docker build -f docker/rk3588/yolov7.dockerfile \
  -t rk3588-yolov7:local src/rk3588_yolov7

Entradas y salidas

Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.