CV / SegFormer
SegFormer B0 BN
SegFormer B0 BN voert semantische segmentatie uit via de R20 HailoRT demoservice.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo-segformer-b0-bn \
--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/segformer_b0_bn:latest \
python web_detection.py --model_path model/segformer_b0_bn.hef --video_path video/test.mp4REST API
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
curl -X POST "http://<R20_IP>:8000/api/models/segformer/predict" \
-F "file=@test.jpg"import requests
resp = requests.post(
"http://<R20_IP>:8000/api/models/segformer/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())Modeldetails
SegFormer B0 BN op reComputer R Series (CM5 + Hailo)
SegFormer B0 BN semantische segmentatie met maskerpreview en REST-inferentie op Hailo-8.
Deze pagina is aangepast van rpi5_hailo8_segformer_b0_bn/README.md in reComputer-R20-CV. Het is gericht op reComputer R Series (CM5 + Hailo) met een PCIe Hailo-8-accelerator.
Hardware- en Hostconfiguratie
| Item | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Accelerator | Hailo-8 M.2 via PCIe, beschikbaar als /dev/hailo0 |
| OS | Raspberry Pi OS Bookworm, aarch64 |
| Host driver | hailo-all apt-pakket |
| Gevalideerde HailoRT | 4.23.x; host driver, firmware, native library en Python wheel moeten dezelfde major.minor delen |
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 dockerDraaien met demovideo
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/segformer_b0_bn:latest \
python web_detection.py --model_path model/segformer_b0_bn.hef --video_path video/test.mp4Open 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
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/segformer_b0_bn:latest \
python web_detection.py --model_path model/segformer_b0_bn.hef --camera_id 0HEF-bestanden
| HEF | Grootte | Opmerkingen |
|---|---|---|
segformer_b0_bn.hef | 9.48 MB | Semantisch segmentatiemodel |
REST API
Voorspellingsendpoint:
POST http://<R20_IP>:8000/api/models/segformer/predictVoorbeeld afbeeldingsverzoek:
curl -X POST "http://<R20_IP>:8000/api/models/segformer/predict" \
-F "file=@test.jpg"Algemene service-endpoints:
| Endpoint | Methode | Doel |
|---|---|---|
/ | GET | Webpreview-UI |
/api/models/segformer/predict | POST | Single-frame inferentie van getiploade afbeelding/video of huidig frame |
/api/video_feed | GET | MJPEG-previewstream |
/api/config | GET / POST | Lezen of bijwerken van runtime-drempelwaarden |
/api/video/upload | POST | Upload een video voor offline analyse |
/api/video/analyze | POST | Start offline analyse |
/api/video/status | GET | Poll analysevoortgang |
/api/video/list | GET | Lijst getiploade en verwerkte videos |
/api/video/download/{filename} | GET | Download verwerkte uitvoer |
Ontwikkelnotities
- Bronmodule:
src/rpi5_hailo8_segformer_b0_bn/ - Dockerfile:
docker/hailo8/segformer_b0_bn.dockerfile - Hoofdservice:
web_detection.pyomvat 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.