CV / DeepLab v3

DeepLab v3 MobileNet v2

DeepLab v3 MobileNet v2 biedt semantische segmentatie in de R20 HailoRT webpreview.

Grootte
4.68 MB
Geheugen
4GB+
Precisie
Hailo HEF / HailoRT 4.23.x

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Implementeren
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

Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.

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())

Modeldetails

DeepLab v3 MobileNet v2 op reComputer R Series (CM5 + Hailo)

DeepLab v3 MobileNet v2 semantische segmentatie met HailoRT, live preview en REST-inferentie.

Deze pagina is aangepast van rpi5_hailo8_deeplab_v3_mobilenet_v2/README.md in reComputer-R20-CV. Het is gericht op reComputer R Series (CM5 + Hailo) met een PCIe Hailo-8-accelerator.

Hardware- en Hostconfiguratie

ItemWaarde
BoardreComputer R Series met Raspberry Pi CM5
AcceleratorHailo-8 M.2 via PCIe, beschikbaar als /dev/hailo0
OSRaspberry Pi OS Bookworm, aarch64
Host driverhailo-all apt-pakket
Gevalideerde HailoRT4.23.x; host driver, firmware, native library en Python wheel moeten dezelfde major.minor delen
bash
sudo apt update
sudo apt install hailo-all
sudo reboot

# Na herstart
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

Draaien met demovideo

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

Open http://<R20_IP>:8000 om de webpreview te bekijken. De image bevat de modulebroncode, demovideo, HailoRT Python wheel en onderstaande HEF-bestanden.

De libhailort.so bind mounts komen bewust van de host. Als jouw firmware niet 4.23.0 is, vervang dan beide paden met de versie gerapporteerd door hailortcli fw-control identify; herbouw de image als de major.minor-versie verschilt.

USB-cameramodus

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

Wisselen van HEF-varianten

Overschrijf de standaard van de image door een ander --model_path mee te geven:

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-bestanden

HEFGrootteOpmerkingen
deeplab_v3_mobilenet_v2.hef4.68 MBStandaard DeepLab v3-model
deeplab_v3_mobilenet_v2_wo_dilation.hef4.09 MBNo-dilation DeepLab v3-variant

REST API

Voorspellingsendpoint:

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

Voorbeeld afbeeldingsverzoek:

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

Algemene service-endpoints:

EndpointMethodeDoel
/GETWebpreview-UI
/api/models/deeplab/predictPOSTSingle-frame inferentie van getiploade afbeelding/video of huidig frame
/api/video_feedGETMJPEG-previewstream
/api/configGET / POSTLezen of bijwerken van runtime-drempelwaarden
/api/video/uploadPOSTUpload een video voor offline analyse
/api/video/analyzePOSTStart offline analyse
/api/video/statusGETPoll analysevoortgang
/api/video/listGETLijst getiploade en verwerkte videos
/api/video/download/{filename}GETDownload verwerkte uitvoer

Ontwikkelnotities

  • Bronmodule: src/rpi5_hailo8_deeplab_v3_mobilenet_v2/
  • Dockerfile: docker/hailo8/deeplab_v3_mobilenet_v2.dockerfile
  • Hoofdservice: web_detection.py omvat HailoRT-inferentie, nabewerking, MJPEG-preview, REST-voorspelling en offline videoanalyse.
  • Bij het inwisselen van een aangepaste HEF, zorg dat de uitvoerlay-out compatibel is met de nabewerkingscode van de module of update post_process_hailo().

Invoer en uitvoer

Invoer: afbeelding, video of USB-cameraframe. Uitvoer: semantisch masker of overlay en geannoteerde MJPEG-preview.