CV / PPSeg
PP-LiteSeg
Produces 19-class Cityscapes masks with image, camera, and video service modes.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
--device /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppseg:latest \
python web_service.py --platform rk3576 --model_dir /app/model --camera_id -1 --host 0.0.0.0 --port 8000API REST
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "pp-liteseg-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "pp-liteseg-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Détails du modèle
PP-LiteSeg sur reComputer RK3576 et RK3588
Ce service empaquette l’exemple PP-LiteSeg Cityscapes de reComputer-RK-CV avec inférence RKNN, aperçu Web, REST API et traitement MP4 asynchrone.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Modèle | model/ppseg.rknn |
| Entrée | 512 x 512 RGB |
| Sortie | Masque de segmentation Cityscapes à 19 classes |
| Image de préchauffage | model/test.png |
Exécuter le service
RK3576
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
--device /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-ppseg:latest \
python web_service.py --platform rk3576 --model_dir /app/model \
--camera_id -1 --host 0.0.0.0 --port 8000RK3588
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 -e RKNN_LOG_LEVEL=0 \
--device /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-ppseg:latest \
python web_service.py --platform rk3588 --model_dir /app/model \
--camera_id -1 --host 0.0.0.0 --port 8000Ouvrez http://<BOARD_IP>:8000 ou /docs. Utilisez --camera_id N avec un nœud /dev/videoN mappé pour une caméra. Utilisez --video video/test.mp4 pour la vidéo fournie ; --video et --video_path sont des alias et remplacent la caméra.
Arguments de démarrage
| Argument | Valeur par défaut | Description |
|---|---|---|
--platform | Obligatoire | rk3576 ou rk3588. |
--model_dir | model | Répertoire contenant ppseg.rknn et test.png. |
--camera_id | -1 | Indice de caméra ; -1 désactive la capture. |
--video, --video_path | Aucun | Vidéo locale en boucle ; remplace la caméra. |
--host / --port | 0.0.0.0 / 8000 | Adresse et port d’écoute FastAPI. |
PYTHONUNBUFFERED=1 vide immédiatement les logs. RKNN_LOG_LEVEL=0 masque les messages connus et inoffensifs d’initialisation statique ; retirez-le pour diagnostiquer le démarrage RKNN.
REST API
Endpoint : POST /api/models/ppseg/predict
curl -X POST "http://<BOARD_IP>:8000/api/models/ppseg/predict" \
-F "file=@test.png"La réponse contient le temps d’inférence, les dimensions source et le nombre de pixels par classe. La dernière superposition du masque est servie par GET /api/video_feed.
| Endpoint | Fonction |
|---|---|
GET /api/health | Plateforme, noms des modèles et état de préparation. |
GET /api/video_feed | Dernière superposition colorée au format MJPEG. |
POST /api/video/upload | Téléverser un MP4 dans le champ file. |
POST /api/video/analyze | Analyser un filename téléversé. |
GET /api/video/status | Progression en arrière-plan et erreurs. |
GET /api/video/list | Vidéos téléversées et générées. |
GET /api/video/download/{filename} | Télécharger un résultat. |
Les champs génériques threshold et topk sont conservés pour la compatibilité, mais ne changent pas la segmentation argmax fixe. Un modèle de remplacement doit conserver la sortie attendue de 19 classes ou nécessiter une mise à jour de la palette et du post-traitement.
Le runtime redimensionne l’entrée en 512 x 512, convertit BGR en RGB, accepte une sortie NCHW ou NHWC à 19 classes, restaure le masque par interpolation au plus proche voisin et superpose la palette Cityscapes. Les sources de conversion se trouvent dans rknn_model_zoo/examples/ppseg du projet upstream.
Compiler localement
docker build -f docker/rk3576/ppseg.dockerfile \
-t rk3576-ppseg:local src/rk3576_ppseg
docker build -f docker/rk3588/ppseg.dockerfile \
-t rk3588-ppseg:local src/rk3588_ppsegEntrées et sorties
Input: image, video frame, or camera frame. Output: Cityscapes mask, class pixel counts, and overlay.