CV / LightFace
LightFace Slim
Détection de visages ultra-légère (0,26M paramètres) sur reComputer R Series avec Hailo-8 ou Hailo-10H.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
sudo docker run --rm \
--name cm5-hailo8-lightface \
--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-hailo8-cv/lightface_slim:latest \
python web_detection.py --model_path model/lightface_slim.hef --video_path video/test.mp4API REST
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
curl -X POST "http://<Board_IP>:8000/api/models/lightface_slim/predict" \
-F "file=@test.jpg"import requests
resp = requests.post(
"http://<Board_IP>:8000/api/models/lightface_slim/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(resp.json())Détails du modèle
reComputer R Series (CM5 + Hailo-8)LightFace Slim sur reComputer R Series (CM5 + Hailo-8)
Détection de visage ultra-légère (0.26M de paramètres) exécutée sur Hailo-8 via HailoRT 4.23. Le HEF expose des têtes SSD brutes (pas de NMS sur puce) : l'hôte construit les 4,420 ancres, effectue le décodage des boîtes SSD (variances 10/5), le softmax sur les logits arrière-plan/visage, le seuillage du score et le NMS glouton.
Cette page cible les reComputer R Series (CM5 + Hailo-8) avec un accélérateur PCIe Hailo-8.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Architecture | Ultra-Light-Fast-Generic-Face-Detector-1MB (style SSD, stride 8/16/32/64) |
| Tâche | Détection de visage (classe unique « face », WIDER FACE) |
| Entrée | 240×320×3 (l'application fournit du BGR uint8 ; moyenne 127 / écart-type 128 intégrés dans le HEF) |
| Sortie | 8 têtes brutes : 4 échelles × {deltas de boîte, logits arrière-plan + visage} |
| Décodage | Décodage SSD côté hôte (variances 10/5) + softmax + NMS glouton (meta_arch=retinaface) |
| Paramètres | 0.26M |
| Opérations | 0.16G |
| mAP de référence | 39.71 (WIDER FACE, précision complète, Hailo Model Zoo ; non mesuré sur cette carte) |
| Licence | MIT (Ultra-Light-Fast-Generic-Face-Detector-1MB) |
| Source | Hailo Model Zoo |
Matériel et configuration de l'hôte
| Élément | Valeur |
|---|---|
| Carte | reComputer R Series avec Raspberry Pi CM5 |
| Accélérateur | Hailo-8 via PCIe, exposé comme /dev/hailo0 |
| Runtime | HailoRT 4.23.x (l'hôte / le conteneur doivent partager le même major.minor) |
| Python dans le conteneur | 3.11, aarch64 |
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
# After reboot
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 dockerInstallez directement
hailort hailort-pcie-driver python3-hailort— pashailo-all, qui peut tirer les paquets Hailo-10H / HailoRT 5.x.
Exécution avec la vidéo de démonstration
sudo docker run --rm --privileged --net=host \
--name cm5-hailo8-lightface \
-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-hailo8-cv/lightface_slim:latest \
python web_detection.py --model_path model/lightface_slim.hef --video_path video/test.mp4Mode caméra USB
sudo docker run --rm --privileged --net=host \
--name cm5-hailo8-lightface \
-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-hailo8-cv/lightface_slim:latest \
python web_detection.py --model_path model/lightface_slim.hef --camera_id 0Ouvrez http://<Board_IP>:8000 pour afficher l'aperçu web.
Fichiers HEF
| HEF | Taille | Remarques |
|---|---|---|
lightface_slim.hef | 1,907,332 bytes | build Hailo-8 du Hailo Model Zoo v2.19.0 ; 8 têtes brutes |
Source :
https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/lightface_slim.hefSHA256: e448c0f692f9e907bb7328fc2305ced4d3569f1e0aa26d44439d1a6f003e9314
REST API
POST http://<Board_IP>:8000/api/models/lightface_slim/predictcurl -X POST "http://<Board_IP>:8000/api/models/lightface_slim/predict" \
-F "file=@test.jpg"Réponse (box est [x1, y1, x2, y2] en pixels de l'image d'origine) :
{
"predictions": [
{"box": [220, 156, 260, 196], "confidence": 0.98}
]
}| Endpoint | Méthode | Rôle |
|---|---|---|
/ | GET | Interface d'aperçu web |
/api/models/lightface_slim/predict | POST | Boîtes de visage (JSON) |
/api/video_feed | GET | Flux d'aperçu MJPEG |
/api/config | GET / POST | Seuils de confiance / IoU |
Notes d'implémentation
- Ensemble d'ancres issu de la configuration du zoo : steps 8/16/32/64, min_sizes [10,16,24] / [32,48] / [64,96] / [128,192,256] → 4,420 ancres.
- Seuil de confiance de l'aperçu 0.5 ; l'évaluation du zoo utilise 0.1 avec NMS IoU 0.3.
- L'image est redimensionnée en conservant le rapport d'aspect et complétée en bas/à droite par des 0, conformément au prétraitement de détection de visage du zoo.
Développement
- Source :
src/rpi5_hailo8_lightface_slim/ - Dockerfile :
docker/hailo8/lightface_slim.dockerfile - Journal de validation :
src/rpi5_hailo8_lightface_slim/TEST_REPORT.md
Entrées et sorties
Input: image (240x320 RGB). Output: face bounding boxes with confidence scores.