CV / SCRFD
SCRFD 10G
SCRFD 10G ist die größere Gesichtserkennungs-HEF im R20 HailoRT SCRFD-Modul.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
sudo docker run --rm \
--name cm5-hailo-scrfd-10g \
--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_10g.hef --video_path video/test.mp4REST API
Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.
curl -X POST "http://<R20_IP>:8000/api/models/scrfd/predict" \
-F "file=@test.jpg"import requests
resp = requests.post(
"http://<R20_IP>:8000/api/models/scrfd/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())Modelldetails
SCRFD auf reComputer R Serie (CM5 + Hailo)
SCRFD Gesichtserkennung mit Bounding-Boxen, Konfidenzwerten und Fuenf-Punkt-Landmarken auf dem Hailo-8-Beschleuniger.
Diese Seite wurde von rpi5_hailo8_scrfd/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
| Element | Wert |
|---|---|
| Board | reComputer R Serie mit Raspberry Pi CM5 |
| Beschleuniger | Hailo-8 M.2 ueber PCIe, bereitgestellt als /dev/hailo0 |
| Betriebssystem | Raspberry Pi OS Bookworm, aarch64 |
| Host-Treiber | hailo-all apt-Paket |
| Validierte HailoRT | 4.23.x; Host-Treiber, Firmware, native Bibliothek und Python-Wheel muessen die gleiche Haupt- und Nebenversion haben |
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 dockerMit Demo-Video ausfuehren
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.mp4Oeffnen 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
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 0HEF-Varianten wechseln
Ueberschreiben Sie den Image-Standard, indem Sie einen anderen --model_path uebergeben:
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.mp4HEF-Dateien
| HEF | Groesse | Hinweise |
|---|---|---|
scrfd_500m.hef | 3,13 MB | Leichtgewichtiger Gesichtsdetektor |
scrfd_2.5g.hef | 3,84 MB | Ausgewogener Gesichtsdetektor |
scrfd_10g.hef | 6,87 MB | Groesserer Gesichtsdetektor |
REST-API
Vorhersage-Endpunkt:
POST http://<R20_IP>:8000/api/models/scrfd/predictBeispiel fuer eine Bildanfrage:
curl -X POST "http://<R20_IP>:8000/api/models/scrfd/predict" \
-F "file=@test.jpg"Allgemeine Dienst-Endpunkte:
| Endpunkt | Methode | Zweck |
|---|---|---|
/ | GET | Web-Vorschau-UI |
/api/models/scrfd/predict | POST | Einzelbild-Inferenz aus hochgeladenem Bild/Video oder aktuellem Frame |
/api/video_feed | GET | MJPEG-Vorschau-Stream |
/api/config | GET / POST | Laufzeitschwellenwerte lesen oder aktualisieren |
/api/video/upload | POST | Video fuer Offline-Analyse hochladen |
/api/video/analyze | POST | Offline-Analyse starten |
/api/video/status | GET | Analysefortschritt abfragen |
/api/video/list | GET | Hochgeladene und verarbeitete Videos auflisten |
/api/video/download/{filename} | GET | Verarbeitete Ausgabe herunterladen |
Entwicklungshinweise
- Quellmodul:
src/rpi5_hailo8_scrfd/ - Dockerfile:
docker/hailo8/scrfd.dockerfile - Hauptdienst:
web_detection.pyumschliesst 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: Gesichtsboxen, Scores, fünf Landmarken und annotierte MJPEG Vorschau.