CV / YOLOX

YOLOX

reComputer RK3576

COCO-objectdetectie met YOLOX op reComputer RK3576, RK3588 en CM5 met Hailo-8 of Hailo-10H.

77 downloads
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-yolox:latest \
  python3 web_detection.py --platform rk3576 --model_path model/yolox_s.rknn \
  --class_path model/coco_80_labels_list.txt --video_path video/test.mp4

REST API

Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "yolox-rknn",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "yolox-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

Officiële benchmarks

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

yolox_s

reComputer RK3576 · 640x384 · W8A8

FPS met één kern
32.67
Latentie met één kern (ms)
30.61
FPS met meerdere kernen
55.11
Geheugen (MB)
35.61

yolox_s

reComputer RK3576 · 640x640 · W8A8

FPS met één kern
42.24
Latentie met één kern (ms)
23.68
FPS met meerdere kernen
67.37
Geheugen (MB)
33.2

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 pagina is gebaseerd op de YOLOX-services in reComputer-RK-CV. De runtime voert RKNN-inferentie, YOLOX-takdecodering, fusie van object-/klassenscores en klassengerichte NMS uit.

Modelinformatie

EigenschapWaarde
TaakCOCO-objectdetectie met 80 klassen
InvoerLetterbox-RGB van 640 x 640
Variantenyolox_s.rknn, yolox_m.rknn
Standaardmodel/yolox_s.rknn
Labelsmodel/coco_80_labels_list.txt

Stap A: Images ophalen

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolox:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolox: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-yolox:latest \
  python3 web_detection.py --platform rk3576 \
  --model_path model/yolox_s.rknn \
  --class_path model/coco_80_labels_list.txt --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-yolox:latest \
  python3 web_detection.py --platform rk3588 \
  --model_path model/yolox_s.rknn \
  --class_path model/coco_80_labels_list.txt --video_path video/test.mp4

Gebruik model/yolox_m.rknn voor de middelgrote variant. Behoud het klassenpadargument bij het wisselen van model. Open http://<BOARD_IP>:8000 of /docs.


🔌 API-documentatie

1. Interface voor modelinferentie (Predict)

Endpoint: POST /api/models/yolox/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/yolox/predict" \
  -F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"

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 service accepteert verzoeken voor afbeeldingen, geüploade videoframes en de huidige bron. GET/POST /api/config regelt obj_thresh en nms_thresh; conf en iou van het verzoek overschrijven deze. Ook zijn endpoints voor status, MJPEG, video-upload, asynchrone analyse, status, lijst en download beschikbaar.

De invoer wordt letterboxed, naar RGB omgezet, per tak gedecodeerd en verwerkt met fusie van object-/klassenscores en klassengerichte NMS. Vervangende modellen moeten bij de meegeleverde YOLOX-decoder en klassenconfiguratie passen.

3. Opdrachtregelargumenten

ArgumentStandaardBeschrijving
--platformVereistrk3576 of rk3588.
--model_pathVereistYOLOX-S- of YOLOX-M-RKNN-bestand.
--class_pathVereist door de meegeleverde opdrachtBestand met COCO-klassenamen.
--camera_id1Camera-index; -1 schakelt alleen uploads in.
--video_pathGeenLokale MP4 in een lus; overschrijft de camera.
--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/yolox.dockerfile \
  -t rk3576-yolox:local src/rk3576_yolox

docker build -f docker/rk3588/yolox.dockerfile \
  -t rk3588-yolox:local src/rk3588_yolox

Invoer en uitvoer

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