CV / SCRFD

SCRFD 500M

SCRFD 500M is de standaard lichtgewicht gezichtsdetector voor de R20 HailoRT-demo.

Grootte
3.13 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-scrfd-500m \
  --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/scrfd:latest \
  python web_detection.py --model_path model/scrfd_500m.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/scrfd/predict" \
  -F "file=@test.jpg"
Python
import requests

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

Modeldetails

SCRFD op reComputer R Series (CM5 + Hailo)

SCRFD gezichtsdetectie met boxen, betrouwbaarheidsscores en vijfpunts-landmarks op de Hailo-8-accelerator.

Deze pagina is aangepast van rpi5_hailo8_scrfd/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/scrfd:latest \
  python web_detection.py --model_path model/scrfd_500m.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/scrfd:latest \
  python web_detection.py --model_path model/scrfd_500m.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/scrfd:latest \
  python web_detection.py --model_path model/scrfd_2.5g.hef --video_path video/test.mp4

HEF-bestanden

HEFGrootteOpmerkingen
scrfd_500m.hef3.13 MBLichtgewicht gezichtsdetector
scrfd_2.5g.hef3.84 MBGebalanceerde gezichtsdetector
scrfd_10g.hef6.87 MBGrotere gezichtsdetector

REST API

Voorspellingsendpoint:

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

Voorbeeld afbeeldingsverzoek:

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

Algemene service-endpoints:

EndpointMethodeDoel
/GETWebpreview-UI
/api/models/scrfd/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_scrfd/
  • Dockerfile: docker/hailo8/scrfd.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: gezichtsboxen, scores, vijf landmarks en geannoteerde MJPEG-preview.