CV / DeepLab v3

DeepLab v3 MobileNet v2

DeepLab v3 MobileNet v2 bietet semantische Segmentierung in der R20 HailoRT-Webvorschau.

Größe
4.68 MB
Speicher
4GB+
Präzision
Hailo HEF / HailoRT 4.23.x

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

Erste Schritte

Deploy
sudo docker run --rm \
  --name cm5-hailo-deeplab-v3-mobilenet-v2 \
  --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/deeplab_v3_mobilenet_v2:latest \
  python web_detection.py --model_path model/deeplab_v3_mobilenet_v2.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://<R20_IP>:8000/api/models/deeplab/predict" \
  -F "file=@test.jpg"
Python
import requests

resp = requests.post(
    "http://<R20_IP>:8000/api/models/deeplab/predict",
    files={"file": open("test.jpg", "rb")},
    timeout=30,
)
print(resp.json())

Modelldetails

DeepLab v3 MobileNet v2 auf reComputer R Serie (CM5 + Hailo)

DeepLab v3 MobileNet v2 semantische Segmentierung mit HailoRT, Live-Vorschau und REST-Inferenz.

Diese Seite wurde von rpi5_hailo8_deeplab_v3_mobilenet_v2/README.md in reComputer-R20-CV adaptiert. Sie richtet sich an reComputer R Serie (CM5 + Hailo) mit einem PCIe Hailo-8-Beschleuniger.

Hardware- und Host-Einrichtung

ElementWert
BoardreComputer R Serie mit Raspberry Pi CM5
BeschleunigerHailo-8 M.2 ueber PCIe, bereitgestellt als /dev/hailo0
BetriebssystemRaspberry Pi OS Bookworm, aarch64
Host-Treiberhailo-all apt-Paket
Validierte HailoRT4.23.x; Host-Treiber, Firmware, native Bibliothek und Python-Wheel muessen die gleiche Haupt- und Nebenversion haben
bash
sudo apt update
sudo apt install hailo-all
sudo reboot

# Nach dem Neustart
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 docker

Mit Demo-Video ausfuehren

bash
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/deeplab_v3_mobilenet_v2:latest \
  python web_detection.py --model_path model/deeplab_v3_mobilenet_v2.hef --video_path video/test.mp4

Oeffnen Sie http://<R20_IP>:8000, um die Web-Vorschau anzuzeigen. Das Image enthaelt den Modulquellcode, das Demo-Video, das HailoRT-Python-Wheel und die unten aufgefuehrten HEF-Dateien.

Die libhailort.so-Bind-Mounts stammen absichtlich vom Host. Wenn Ihre Firmware nicht 4.23.0 ist, ersetzen Sie beide Pfade durch die von hailortcli fw-control identify gemeldete Version; bauen Sie das Image neu, wenn die Haupt- und Nebenversion abweicht.

USB-Kamera-Modus

bash
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/deeplab_v3_mobilenet_v2:latest \
  python web_detection.py --model_path model/deeplab_v3_mobilenet_v2.hef --camera_id 0

HEF-Varianten wechseln

Ueberschreiben Sie den Image-Standard, indem Sie einen anderen --model_path uebergeben:

bash
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/deeplab_v3_mobilenet_v2:latest \
  python web_detection.py --model_path model/deeplab_v3_mobilenet_v2_wo_dilation.hef --video_path video/test.mp4

HEF-Dateien

HEFGroesseHinweise
deeplab_v3_mobilenet_v2.hef4,68 MBStandard DeepLab v3 Modell
deeplab_v3_mobilenet_v2_wo_dilation.hef4,09 MBDeepLab v3 Variante ohne Dilatation

REST-API

Vorhersage-Endpunkt:

text
POST http://<R20_IP>:8000/api/models/deeplab/predict

Beispiel fuer eine Bildanfrage:

bash
curl -X POST "http://<R20_IP>:8000/api/models/deeplab/predict" \
  -F "file=@test.jpg"

Allgemeine Dienst-Endpunkte:

EndpunktMethodeZweck
/GETWeb-Vorschau-UI
/api/models/deeplab/predictPOSTEinzelbild-Inferenz aus hochgeladenem Bild/Video oder aktuellem Frame
/api/video_feedGETMJPEG-Vorschau-Stream
/api/configGET / POSTLaufzeitschwellenwerte lesen oder aktualisieren
/api/video/uploadPOSTVideo fuer Offline-Analyse hochladen
/api/video/analyzePOSTOffline-Analyse starten
/api/video/statusGETAnalysefortschritt abfragen
/api/video/listGETHochgeladene und verarbeitete Videos auflisten
/api/video/download/{filename}GETVerarbeitete Ausgabe herunterladen

Entwicklungshinweise

  • Quellmodul: src/rpi5_hailo8_deeplab_v3_mobilenet_v2/
  • Dockerfile: docker/hailo8/deeplab_v3_mobilenet_v2.dockerfile
  • Hauptdienst: web_detection.py umschliesst HailoRT-Inferenz, Nachbearbeitung, MJPEG-Vorschau, REST-Vorhersage und Offline-Videoanalyse.
  • Wenn Sie ein benutzerdefiniertes HEF austauschen, halten Sie das Ausgabelayout mit dem Nachbearbeitungscode des Moduls kompatibel oder aktualisieren Sie post_process_hailo().

Eingaben und Ausgaben

Eingabe: Bild, Video oder USB-Kameraframe. Ausgabe: semantische Maske oder Overlay und annotierte MJPEG-Vorschau.