CV / DeepLab v3
DeepLabV3 RKNN
Produces a 21-class PASCAL VOC segmentation overlay for images and video frames.
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 -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-deeplabv3:latest \
python3 web_service.py --platform rk3576 --model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 --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": "deeplab-v3-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "deeplab-v3-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Détails du modèle
DeepLabV3 sur reComputer RK3576 et RK3588
Cette page documente le service de segmentation sémantique DeepLabV3 de reComputer-RK-CV. Il prend en charge les images fixes, les caméras, la vidéo locale en boucle, l’analyse de fichiers MP4 téléversés et un aperçu MJPEG avec superposition.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Modèle | /app/model/deeplabv3.rknn |
| Entrée | 513 x 513 RGB |
| Sortie | Logits PASCAL VOC à 21 classes |
| Rendu | Masque Argmax avec opacité de superposition colorée configurable |
Le service valide les dispositions de sortie NCHW et NHWC, puis restaure le masque à la résolution source.
Exécuter le service
RK3576
sudo docker run --rm --privileged -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-deeplabv3:latest \
python3 web_service.py --platform rk3576 \
--model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 \
--camera_id -1 --host 0.0.0.0 --port 8000RK3588
sudo docker run --rm --privileged -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-deeplabv3:latest \
python3 web_service.py --platform rk3588 \
--model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 \
--camera_id -1 --host 0.0.0.0 --port 8000Ouvrez http://<BOARD_IP>:8000 ou /docs. Pour une caméra USB, mappez son nœud /dev/videoN et définissez --camera_id N. Pour une vidéo locale montée, utilisez --video /data/input.mp4 ; la vidéo locale est prioritaire sur la caméra.
Arguments de démarrage
| Argument | Valeur par défaut | Description |
|---|---|---|
--platform | Obligatoire | rk3576 ou rk3588. |
--model_path | model/deeplabv3.rknn | Fichier RKNN DeepLabV3. |
--sample_path | model/test.jpg | Image de préchauffage et d’aperçu initial. |
--overlay_alpha | 0.5 | Opacité initiale du masque, de 0 à 1. |
--camera_id | -1 | Caméra N, ou -1 pour les téléversements uniquement. |
--video, --video_path | Aucun | Vidéo locale en boucle ; remplace la caméra. |
--host / --port | 0.0.0.0 / 8000 | Adresse du service et port du conteneur. |
Avec -p, ne modifiez que le côté hôte si le port 8000 est occupé. Le service du conteneur doit rester sur le port 8000 pour son contrôle d’état.
REST API
Endpoint : POST /api/models/deeplabv3/predict
curl -X POST "http://<BOARD_IP>:8000/api/models/deeplabv3/predict" \
-F "file=@test.jpg" -F "overlay_alpha=0.65"La réponse indique la taille de l’image, le temps d’inférence, l’opacité et toutes les classes PASCAL VOC présentes avec leur nombre de pixels. La dernière superposition rendue est disponible via GET /api/video_feed.
Exemple de champs de résultat :
{
"success": true,
"model": "deeplabv3",
"inference_time": 0.052,
"result": {
"classes": [{"id": 15, "class": "person", "pixels": 18234}],
"width": 1280,
"height": 720,
"overlay_alpha": 0.65
}
}GET/POST /api/config gère l’opacité globale de la superposition. Des endpoints d’état, de téléversement MP4, d’état d’analyse, de liste et de téléchargement sont également fournis. Un modèle avec un nombre de classes différent exige des modifications correspondantes des étiquettes et du traitement de sortie.
Détails du traitement
L’entrée est redimensionnée en 513 x 513 et convertie de BGR vers RGB. Le runtime accepte des logits NCHW ou NHWC, vérifie les 21 canaux, restaure les logits à la résolution source, applique argmax et superpose la palette PASCAL VOC. POST /api/video/analyze accepte un filename téléversé ; les fichiers d’état et de résultat sont exposés par les endpoints /api/video/*.
Compiler localement
docker build -f docker/rk3576/deeplabv3.dockerfile \
-t rk3576-deeplabv3:local src/rk3576_deeplabv3
docker build -f docker/rk3588/deeplabv3.dockerfile \
-t rk3588-deeplabv3:local src/rk3588_deeplabv3Entrées et sorties
Input: image, video frame, or camera frame. Output: PASCAL VOC semantic mask, class pixel counts, and overlay.