CV / YOLOv10

YOLOv10

reComputer RK3576

YOLOv10n/s/b/x objectdetectiemodellen voor reComputer RK3588/RK3576 (RKNN) en reComputer R Series met Hailo-8 of Hailo-10H.

112 downloads
Grootte
7.36 MB
Geheugen
4GB+
Precisie
RKNN / Hailo HEF

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Armbian 26.8.7 Gnome of nieuwer met OTA overlayroot: Configureer de Docker-opslag voordat je containers start om overlay-mountfouten te voorkomen.

Implementeren
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

Officiële benchmarks

Deze cijfers komen uit de officiële benchmarks van Rockchip. De prestaties in je toepassing kunnen afwijken.

yolov10n

reComputer RK3576 · 640x640 · W8A8

FPS met één kern
84.25
Latentie met één kern (ms)
11.87
FPS met meerdere kernen
116.6
Geheugen (MB)
17.7

Modeldetails

reComputer RK

Armbian 26.8.7 Gnome of nieuwer met OTA overlayroot: Configureer de Docker-opslag voordat je containers start om overlay-mountfouten te voorkomen.

Snel aan de slag

1. Docker installeren

Voer de volgende opdrachten op het ontwikkelbord uit om Docker te installeren:

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. Het project uitvoeren (één opdracht, voorbeeld in twee modi)

Deze RKNN-implementatie komt uit de YOLOv10-modules in reComputer-RK-CV. Ze implementeert end-to-end Top-K-nabewerking in twee fasen zonder NMS.

Modelinformatie

EigenschapWaarde
TaakCOCO-objectdetectie met 80 klassen
Invoer640 x 640, letterboxed en van BGR naar RGB omgezet
Variantenyolov10n.rknn, yolov10s.rknn
Standaardmodel/yolov10n.rknn
NabewerkingEnd-to-end Top-K-selectie zonder NMS

Stap A: Images ophalen

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

Stap B: Met één klik uitvoeren

Voor 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

Voor 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

Selecteer YOLOv10s met --model_path model/yolov10s.rknn. Vervang het videoargument door --camera_id -1 voor alleen uploads.


🔌 API-documentatie

1. Interface voor modelinferentie (Predict)

Endpoint: POST /api/models/yolov10/predict

Aanvraagparameters (Multipart/Form-Data):

Beschikbaar zijn file, video, timestamp, realtime, conf en iou; de standaarddrempels zijn 0.25 en 0.45.

Gebruiksvoorbeelden:

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

Voorbeeldantwoord:

Antwoordformaat (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. Interface voor systeemconfiguratie (Config)

De API accepteert iou voor compatibiliteit met de standaarddetectieservice, maar de NMS-vrije nabewerking van YOLOv10 gebruikt dit niet. De globale betrouwbaarheid van GET/POST /api/config geldt voor voorbeeld en offline analyse.

De service biedt ook status, MJPEG, video-upload, asynchrone analyse, status, lijst en download. Runtimebestanden worden standaard naar workspace/ geschreven. Een vervangend model moet de invoergrootte en uitvoertensors behouden die de NMS-vrije decoder in web_detection.py verwacht.

3. Opdrachtregelargumenten

ArgumentStandaardBeschrijving
--platformVereistrk3576 of rk3588.
--model_pathVereistYOLOv10n- of YOLOv10s-RKNN-bestand.
--camera_id1Camera-index; -1 schakelt opname uit.
--video_pathGeenLokale MP4 in een lus; overschrijft de camera.
--class_pathCOCO-labelsOptionele vervangende klassenlijst.
--host / --port0.0.0.0 / 8000Serviceadres en poort.

Realtime videostream (Video Feed)

Haal de nieuwste geannoteerde MJPEG-stream op voor de browserweergave:

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

🛠️ Ontwikkelaarshandleiding (aanbevelingen voor productie)

Lokaal bouwen

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

Invoer en uitvoer

Invoer: afbeelding, video of USB-cameraframe. Uitvoer: detectieboxen, klassen, betrouwbaarheidsscores en geannoteerde MJPEG-preview.