CV / Depth Estimation
FastDepth
FastDepth estime les cartes de profondeur via le pipeline de démonstration HailoRT du R20.
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 \
--name cm5-hailo-fast-depth \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-r20-cv/fast_depth:latest \
python web_detection.py --model_path model/fast_depth.hef --video_path video/test.mp4API REST
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
curl -X POST "http://<R20_IP>:8000/api/models/fast_depth/predict" \
-F "file=@test.jpg"import requests
resp = requests.post(
"http://<R20_IP>:8000/api/models/fast_depth/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())Détails du modèle
FastDepth sur reComputer série R (CM5 + Hailo)
Estimation de profondeur monoculaire FastDepth servie via le pipeline de démonstration HailoRT du R20.
Cette page est adaptée de rpi5_hailo8_fast_depth/README.md dans reComputer-R20-CV. Elle cible reComputer série R (CM5 + Hailo) avec un accélérateur PCIe Hailo-8.
Configuration matérielle et hôte
| Élément | Valeur |
|---|---|
| Carte | reComputer série R avec Raspberry Pi CM5 |
| Accélérateur | Hailo-8 M.2 sur PCIe, exposé comme /dev/hailo0 |
| OS | Raspberry Pi OS Bookworm, aarch64 |
| Pilote hôte | Paquet apt hailo-all |
| HailoRT validé | 4.23.x ; le pilote hôte, le firmware, la bibliothèque native et le wheel Python doivent partager la même version majeure.mineure |
sudo apt update
sudo apt install hailo-all
sudo reboot
# Après redémarrage
hailortcli fw-control identify
ls /dev/hailo0
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo systemctl enable docker
sudo systemctl start dockerExécuter avec une vidéo de démonstration
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-r20-cv/fast_depth:latest \
python web_detection.py --model_path model/fast_depth.hef --video_path video/test.mp4Ouvrez http://<R20_IP>:8000 pour visualiser l'aperçu web. L'image inclut le code source du module, la vidéo de démonstration, le wheel Python HailoRT et les fichiers HEF listés ci-dessous.
Les montages bind libhailort.so proviennent intentionnellement de l'hôte. Si votre firmware n'est pas 4.23.0, remplacez les deux chemins par la version rapportée par hailortcli fw-control identify ; reconstruisez l'image si la version majeure.mineure diffère.
Mode caméra USB
sudo docker run --rm --privileged --net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-r20-cv/fast_depth:latest \
python web_detection.py --model_path model/fast_depth.hef --camera_id 0Fichiers HEF
| HEF | Taille | Notes |
|---|---|---|
fast_depth.hef | 3,03 Mo | Modèle de profondeur monoculaire |
API REST
Point de terminaison de prédiction :
POST http://<R20_IP>:8000/api/models/fast_depth/predictExemple de requête image :
curl -X POST "http://<R20_IP>:8000/api/models/fast_depth/predict" \
-F "file=@test.jpg"Points de terminaison courants du service :
| Point de terminaison | Méthode | Objectif |
|---|---|---|
/ | GET | Interface d'aperçu web |
/api/models/fast_depth/predict | POST | Inférence image unique à partir d'une image/vidéo téléchargée ou de la trame actuelle |
/api/video_feed | GET | Flux d'aperçu MJPEG |
/api/config | GET / POST | Lire ou mettre à jour les seuils d'exécution |
/api/video/upload | POST | Télécharger une vidéo pour analyse hors ligne |
/api/video/analyze | POST | Démarrer l'analyse hors ligne |
/api/video/status | GET | Interroger la progression de l'analyse |
/api/video/list | GET | Lister les vidéos téléchargées et traitées |
/api/video/download/{filename} | GET | Télécharger la sortie traitée |
Notes de développement
- Module source :
src/rpi5_hailo8_fast_depth/ - Dockerfile :
docker/hailo8/fast_depth.dockerfile - Service principal :
web_detection.pyenveloppe l'inférence HailoRT, le post-traitement, l'aperçu MJPEG, la prédiction REST et l'analyse vidéo hors ligne. - Lors du remplacement par un HEF personnalisé, gardez la disposition de sortie compatible avec le code de post-traitement du module ou mettez à jour
post_process_hailo().
Entrées et sorties
Entrée : image, vidéo ou flux caméra USB. Sortie : statistiques de profondeur, visualisation de profondeur et aperçu MJPEG annoté.