CV / PP-YOLOE

PP-YOLOE

reComputer RK3588

COCO-objectdetectie met PP-YOLOE, versneld door RKNN op reComputer RK3576 en RK3588.

27 downloads
Precisie
RKNN

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/rk3588-ppyoloe:latest \
  python web_detection.py --platform rk3588 --model_path model/ppyoloe_s.rknn \
  --class_path model/coco_80_labels_list.txt --camera_id -1

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": "ppyoloe-rknn",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

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

Modeldetails

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 implementatie volgt de PP-YOLOE-modules in reComputer-RK-CV. De service biedt RKNN NPU-inferentie, webvoorbeeld, REST API en asynchrone videoanalyse.

Modelinformatie

EigenschapWaarde
TaakCOCO-objectdetectie met 80 klassen
InvoerLetterbox-RGB van 640 x 640
Variantenppyoloe_s.rknn, ppyoloe_m.rknn
Standaardmodel/ppyoloe_s.rknn
NabewerkingDFL-decodering en klassengerichte NMS

Stap A: Images ophalen

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-ppyoloe:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppyoloe: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-ppyoloe:latest \
  python web_detection.py --platform rk3576 \
  --model_path model/ppyoloe_s.rknn \
  --class_path model/coco_80_labels_list.txt --camera_id -1

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-ppyoloe:latest \
  python web_detection.py --platform rk3588 \
  --model_path model/ppyoloe_s.rknn \
  --class_path model/coco_80_labels_list.txt --camera_id -1

Schakel naar PP-YOLOE-M met --model_path model/ppyoloe_m.rknn. Koppel voor camera-invoer /dev/videoN en stel de overeenkomstige --camera_id in.


🔌 API-documentatie

1. Interface voor modelinferentie (Predict)

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

Antwoordformaat (JSON):

json
{
  "success": true,
  "source": "uploaded image",
  "predictions": [
    {
      "class": "bus",
      "confidence": 0.91,
      "box": {"x1": 120, "y1": 80, "x2": 520, "y2": 430}
    }
  ],
  "image": {"width": 640, "height": 480}
}

2. Interface voor systeemconfiguratie (Config)

De invoerprioriteit is afbeelding, geüpload MP4-frame en daarna actieve camera of voorbeeldvideo. GET/POST /api/config regelt de globale object- en NMS-drempels. De runtime biedt ook status, MJPEG, video-upload, asynchrone analyse, status, lijst en download.

web_detection.py voert letterbox-voorverwerking, RKNN-inferentie, PP-YOLOE DFL-decodering, klassengerichte NMS, coördinaatherstel, rendering en API-serialisatie uit. Vervangende modellen moeten compatibel zijn met deze DFL-decoder en uitvoerindeling.

3. Opdrachtregelargumenten

ArgumentStandaardBeschrijving
--platformVereistrk3576 of rk3588.
--model_pathVereistPP-YOLOE-S- of PP-YOLOE-M-RKNN-bestand.
--class_pathCOCO-labelsKlassenamen voor serialisatie en tekening.
--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/ppyoloe.dockerfile \
  -t rk3576-ppyoloe:local src/rk3576_ppyoloe

docker build -f docker/rk3588/ppyoloe.dockerfile \
  -t rk3588-ppyoloe:local src/rk3588_ppyoloe

Invoer en uitvoer

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