CV / Depth-Anything
Depth-Anything-V2-ViTS
reComputer R Series (CM5 + Hailo-10H)
Monokulare Zero-Shot-Tiefenschätzung mit Depth-Anything-V2-Small auf reComputer R Series mit Hailo-8 oder Hailo-10H.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
sudo docker run --rm \
--name cm5-hailo10h-depth-anything-v2-vits \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/depth_anything_v2_vits:latest \
python web_detection.py --model_path model/depth_anything_v2_vits.hef --video_path video/test.mp4REST API
Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.
curl -X POST "http://<Board_IP>:8000/api/models/depth_anything_v2_vits/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/depth_anything_v2_vits/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modelldetails
reComputer R Series (CM5 + Hailo-10H)Depth-Anything-V2-ViTS auf reComputer R Series (CM5 + Hailo-10H)
Depth-Anything-V2-Small (ViT-S-Backbone) führt über HailoRT eine Zero-Shot-monokulare Tiefenschätzung auf Hailo-10H durch. Das HEF gibt eine relative Tiefenkarte mit 224×224×1 aus; die Anwendung normalisiert sie, wendet eine INFERNO-Colormap an und blendet sie per Alpha-Blende auf das Originalbild.
Modellinformationen
| Eigenschaft | Wert |
|---|---|
| Architektur | ViT-S (Depth-Anything-V2-Small-hf) |
| Aufgabe | Zero-Shot-Tiefenschätzung |
| Eingabe | 224x224x3 RGB |
| Ausgabe | Tiefenkarte 224x224x1 (relativ, FLOAT32) |
| Parameter | 24.2M |
| Operationen | 16.7G |
| AbsRel | 0.147 |
| HEF | Hailo Model Zoo v5.4.0, Hailo-10H |
| HEF-Größe | 24.6 MB (24,596,480 bytes) |
Ausführung mit dem Demo-Video
sudo docker run --rm \
--name cm5-hailo10h-depth-anything-v2-vits \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
-v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
-v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
ghcr.io/seeed-projects/recomputer-hailo10h-cv/depth_anything_v2_vits:latest \
python web_detection.py --model_path model/depth_anything_v2_vits.hef --video_path video/test.mp4Öffnen Sie http://<Board_IP>:8000, um die Tiefen-Überlagerung anzuzeigen.
Für eine USB-Kamera mounten Sie /dev/video0 und ersetzen Sie --video_path ...
durch --camera_id 0.
REST API
curl -X POST "http://<Board_IP>:8000/api/models/depth_anything_v2_vits/predict" \
-F "file=@test.jpg"Liefert depth_stats (min, max, mean, std) für die vorhergesagte Tiefenkarte.
| Endpunkt | Methode | Zweck |
|---|---|---|
/api/models/depth_anything_v2_vits/predict | POST | Tiefenstatistik (JSON) |
/api/video_feed | GET | MJPEG mit INFERNO-Tiefenüberlagerung |
Implementierungshinweise
- Relative Tiefe: Die Ausgabe wird pro Frame min-max-normalisiert (nicht metrisch). Höherer Wert = weiter entfernt. Dunkel (INFERNO) = nah, hell = fern.
- Ein Schieberegler steuert die Alpha-Blende zwischen Originalbild und Tiefen-Colormap.
normalize_in_netImageNet-RGB; keine input_conversion → rohes uint8-RGB nach dem Letterboxing einspeisen.- Keine On-Chip-Nachverarbeitung — Ausgabe ist die rohe Tiefenkarte, angefordert als FLOAT32-vstreams, sodass der Host dequantisierte Werte erhält.
- Die Eingabegröße des HEF wird beim Start gelesen (224x224).
Entwicklungshinweise
- Quelle:
src/hailo10h_depth_anything_v2_vits/ - Dockerfile:
docker/hailo10h/depth_anything_v2_vits.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/depth_anything_v2_vits:latest - HEF: Hailo Model Zoo v5.4.0 (
hailo10h), 24,596,480 bytes, SHA256b6f6328ec3d6b3c09235ce5ee33b5aebc7c63d5443083d7dc5613155bc298744 - Familie: depth_anything (Varianten v2_vits / vits)
Eingaben und Ausgaben
Input: image, video, or USB camera frame. Output: relative depth map with INFERNO colormap overlay on MJPEG preview, plus depth statistics (min/max/mean/std) via API.