CV / YOLO11

YOLO11

reComputer RK3588

Lichtgewicht YOLO11 nano model voor snelle edge-deployment.

1.2k+ downloads
Grootte
~5MB
Geheugen
1GB+
Precisie
FP16

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

Voorbeeld

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 \
  --name rk3588-yolo11n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  -e RKNN_LOG_LEVEL=0 \
  --device /dev/video1:/dev/video1 \
  --device /dev/dri/renderD129:/dev/dri/renderD129 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolo11:latest \
  python web_detection.py --model_path model/yolo11n.rknn --video video/test.mp4

Officiële benchmarks

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

yolo11n

reComputer RK3588 · 640x640 · W8A8

FPS met één kern
62.07
Latentie met één kern (ms)
16.11
FPS met meerdere kernen
167.41
Geheugen (MB)
19.28

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 Starten

1. Installeer Docker

Voer de volgende commando's uit op het ontwikkelbord om Docker te installeren:

bash
# Download installation script
curl -fsSL https://get.docker.com -o get-docker.sh
# Install using Aliyun mirror source
sudo sh get-docker.sh --mirror Aliyun
# Start Docker and enable auto-start on boot
sudo systemctl enable docker
sudo systemctl start docker

2. Start het Project (Eén commando, dual-mode preview)

Dit project ondersteunt preview via een "webbrowser". Het project kan met één commando worden gestart. Daarnaast wordt een Fast-API-interface geboden om gebruikers te helpen bij aangepaste ontwikkeling en testen.

Stap A: Pull Images

bash
sudo docker pull ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3588-yolo:latest
sudo docker pull ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3576-yolo:latest

Stap B: Start met één klik

Voor RK3588:

bash
sudo docker run --rm --privileged --net=host \
    -e PYTHONUNBUFFERED=1 \
    -e RKNN_LOG_LEVEL=0 \
    --device /dev/video1:/dev/video1 \
    --device /dev/dri/renderD129:/dev/dri/renderD129 \
    -v /proc/device-tree/compatible:/proc/device-tree/compatible \
    ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3588-yolo11:latest \
    python web_detection.py --model_path model/yolo11n.rknn --camera_id 1

Voor RK3576:

bash
sudo docker run --rm --privileged --net=host \
    -e PYTHONUNBUFFERED=1 \
    -e RKNN_LOG_LEVEL=0 \
    --device /dev/video1:/dev/video1 \
    --device /dev/dri/renderD128:/dev/dri/renderD128 \
    -v /proc/device-tree/compatible:/proc/device-tree/compatible \
    ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3576-yolo11:latest \
    python web_detection.py --model_path model/yolo11n.rknn --camera_id 1

Toegang via: http://<Board_IP>:8000

Let op: Als je aangepaste klassen nodig hebt, kun je de -v $(pwd)/class_config.txt:/app/class_config.txt \ mount en de --class_path parameter toevoegen. Het programma gebruikt standaard COCO 80-klassen.

Voorbeeld:

bash
sudo docker run --rm --privileged --net=host \
    -e PYTHONUNBUFFERED=1 \
    -e RKNN_LOG_LEVEL=0 \
    -v $(pwd)/class_config.txt:/app/class_config.txt \
    --device /dev/video1:/dev/video1 \
    --device /dev/dri/renderD129:/dev/dri/renderD129 \
    -v /proc/device-tree/compatible:/proc/device-tree/compatible \
    ghcr.io/Seeed-Projects/recomputer-rk-cv/rk3588-yolo:latest \
    python web_detection.py --model_path model/yolo11n.rknn --camera_id 1 --class_path class_config.txt

🔌 API Documentatie

Dit project biedt RESTful-interfaces die compatibel zijn met de Ultralytics Cloud API-standaard, ter ondersteuning van objectdetectie via het uploaden van afbeeldingen met HTTP POST-verzoeken.

1. Modelinferentie-interface (Predict)

Endpoint: POST /api/models/yolo11/predict

Verzoekparameters (Multipart/Form-Data):

  • file: (Optioneel) Afbeeldingsbestand dat gedetecteerd moet worden.
  • video: (Optioneel) MP4-videobestand dat gedetecteerd moet worden.
  • timestamp: (Optioneel) Tijdstempel in het videobestand (seconden), retourneert detectieresultaten voor het frame op dat punt. Standaard is 0.
  • realtime: (Optioneel) Boolean. Indien true of als er geen file/video-parameters worden opgegeven, retourneert detectieresultaten voor het huidige cameraframe.
  • conf: (Optioneel) Betrouwbaarheidsdrempel voor een enkel verzoek, bereik 0.0-1.0.
  • iou: (Optioneel) NMS IOU-drempel voor een enkel verzoek, bereik 0.0-1.0.

Gebruiksvoorbeelden:

1. Afbeeldingsdetectie:

bash
curl -X POST "http://127.0.0.1:8000/api/models/yolo11/predict" -F "file=@/home/cat/001.jpg"

2. Detectie van specifiek videoframe:

bash
curl -X POST "http://127.0.0.1:8000/api/models/yolo11/predict" -F "video=@/home/cat/test.mp4" -F "timestamp=5.5"

3. Huidig cameraframe detecteren:

bash
curl -X POST "http://127.0.0.1:8000/api/models/yolo11/predict" -F "realtime=true"
# Of zonder bestandsparameters
curl -X POST "http://127.0.0.1:8000/api/models/yolo11/predict"

Responsformaat (JSON):

json
{
  "success": true,
  "source": "video frame at 5.5s",
  "predictions": [
    {
      "class": "person",
      "confidence": 0.92,
      "box": { "x1": 100, "y1": 200, "x2": 300, "y2": 500 }
    }
  ],
  "image": { "width": 1280, "height": 720 }
}

2. Systeemconfiguratie-interface (Config)

Wordt gebruikt om drempels voor real-time videostreams en standaardinferentie dynamisch aan te passen.

Huidige Configuratie Ophalen

  • Endpoint: GET /api/config
  • Response: {"obj_thresh": 0.25, "nms_thresh": 0.45}

Systeemconfiguratie Bijwerken

  • Endpoint: POST /api/config
  • Request Body (JSON): {"obj_thresh": 0.3, "nms_thresh": 0.5}
  • Response: {"status": "success"}

3. Commandoregelargumenten

web_detection.py ondersteunt de volgende argumenten:

ArgumentBeschrijvingStandaard
--model_pathPad naar RKNN-modelbestand(Vereist)
--camera_idCamera-apparaat-ID (bijv. vul 1 in voor /dev/video1)1
--video_pathPad naar videobestand (overschrijft camera_id indien opgegeven)Geen
--class_pathPad naar aangepast klassenconfiguratiebestand (class_config.txt)Geen (Standaard COCO 80)
--hostLuisteradres van de webserver0.0.0.0
--portPoort van de webserver8000

Formaat aangepaste klassenconfiguratie (class_config.txt):

Geef klassen een naam met dubbele aanhalingstekens, gescheiden door komma's, bijvoorbeeld: "person", "bicycle", "car", "motorbike"


Real-time Videostream-interface (Video Feed)

Verkrijg real-time MJPEG-videostream met getekende detectiekaders, kan direct worden ingesloten in HTML <img>-tags.

  • Endpoint: GET /api/video_feed
  • Gebruiksvoorbeeld: <img src="http://<Board_IP>:8000/api/video_feed">