CV / PP-YOLOE

PP-YOLOE

Select PP-YOLOE-S or PP-YOLOE-M by changing the RKNN model path.

3 téléchargements
Précision
RKNN

Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.

Pour commencer

Déployer
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

API REST

Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.

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())

Détails du modèle

PP-YOLOE sur reComputer RK3576 et RK3588

Ce déploiement suit les modules PP-YOLOE de reComputer-RK-CV. Il fournit l’inférence RKNN NPU, un aperçu Web, une REST API et l’analyse vidéo asynchrone.

Informations sur le modèle

PropriétéValeur
TâcheDétection d’objets COCO à 80 classes
EntréeRGB letterbox 640 x 640
Variantesppyoloe_s.rknn, ppyoloe_m.rknn
Valeur par défautmodel/ppyoloe_s.rknn
Post-traitementDécodage DFL et NMS par classe

Exécuter le service

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

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

Passez à PP-YOLOE-M avec --model_path model/ppyoloe_m.rknn. Pour une caméra, mappez /dev/videoN et définissez le --camera_id correspondant.

Arguments de démarrage

ArgumentValeur par défautDescription
--platformObligatoirerk3576 ou rk3588.
--model_pathObligatoireFichier RKNN PP-YOLOE-S ou PP-YOLOE-M.
--class_pathLabels COCONoms de classe utilisés pour la sérialisation et le dessin.
--camera_id1Indice de caméra ; -1 active le mode téléversement uniquement.
--video_pathAucunMP4 local en boucle ; remplace la caméra.
--host / --port0.0.0.0 / 8000Adresse et port du service.

REST API

Endpoint : POST /api/models/ppyoloe/predict

bash
curl -X POST "http://<BOARD_IP>:8000/api/models/ppyoloe/predict" \
  -F "file=@bus.jpg" -F "conf=0.30" -F "iou=0.45"
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}
}

La priorité d’entrée est l’image, l’image d’un MP4 téléversé, puis la caméra active ou la vidéo d’exemple. GET/POST /api/config contrôle les seuils globaux d’objet et de NMS. Le runtime expose également les interfaces d’état, MJPEG, téléversement, analyse asynchrone, état, liste et téléchargement.

web_detection.py effectue le letterbox, l’inférence RKNN, le décodage DFL PP-YOLOE, la NMS par classe, la restauration des coordonnées, le rendu et la sérialisation API. Les modèles de remplacement doivent rester compatibles avec ce décodeur DFL et cette disposition de sortie.

Compiler localement

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

Entrées et sorties

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