CV / PP-YOLOE
PP-YOLOE
PP-YOLOE COCO object detection accelerated by RKNN on reComputer RK3576 and RK3588.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
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 -1REST API
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "ppyoloe-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "ppyoloe-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Modeldetails
Snel aan de slag
1. Docker installeren
Voer de volgende opdrachten op het ontwikkelbord uit om Docker te installeren:
# 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 docker2. 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
| Eigenschap | Waarde |
|---|---|
| Taak | COCO-objectdetectie met 80 klassen |
| Invoer | Letterbox-RGB van 640 x 640 |
| Varianten | ppyoloe_s.rknn, ppyoloe_m.rknn |
| Standaard | model/ppyoloe_s.rknn |
| Nabewerking | DFL-decodering en klassengerichte NMS |
Stap A: Images ophalen
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:latestStap B: Met één klik uitvoeren
Voor RK3576:
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 -1Voor RK3588:
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 -1Schakel 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:
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):
{
"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
| Argument | Standaard | Beschrijving |
|---|---|---|
--platform | Vereist | rk3576 of rk3588. |
--model_path | Vereist | PP-YOLOE-S- of PP-YOLOE-M-RKNN-bestand. |
--class_path | COCO-labels | Klassenamen voor serialisatie en tekening. |
--camera_id | 1 | Camera-index; -1 schakelt alleen uploads in. |
--video_path | Geen | Lokale MP4 in een lus; overschrijft de camera. |
--host / --port | 0.0.0.0 / 8000 | Serviceadres 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
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_ppyoloeInvoer en uitvoer
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.