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.

33 Downloads
Größe
24.6 MB
Speicher
4GB+
Präzision
Hailo HEF

Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.

Erste Schritte

Bereitstellen
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

REST API

Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/depth_anything_v2_vits/predict" \
  -F "file=@test.jpg"
Python
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

EigenschaftWert
ArchitekturViT-S (Depth-Anything-V2-Small-hf)
AufgabeZero-Shot-Tiefenschätzung
Eingabe224x224x3 RGB
AusgabeTiefenkarte 224x224x1 (relativ, FLOAT32)
Parameter24.2M
Operationen16.7G
AbsRel0.147
HEFHailo Model Zoo v5.4.0, Hailo-10H
HEF-Größe24.6 MB (24,596,480 bytes)

Ausführung mit dem Demo-Video

bash
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

bash
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.

EndpunktMethodeZweck
/api/models/depth_anything_v2_vits/predictPOSTTiefenstatistik (JSON)
/api/video_feedGETMJPEG 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_net ImageNet-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, SHA256 b6f6328ec3d6b3c09235ce5ee33b5aebc7c63d5443083d7dc5613155bc298744
  • 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.