CV / LightFace
LightFace Slim
reComputer R Series(Hailo-8 / Hailo-10H、HailoRT)上の超軽量な顔検出(0.26M パラメータ)。
使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
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.mp4REST API
REST API を使用して推論を実行します。以下のコマンドをコピーしてください。
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())モデル詳細
reComputer R Series (CM5 + Hailo-8)reComputer R Series(CM5 + Hailo-8)での LightFace Slim
超軽量の顔検出(0.26M パラメータ)を HailoRT 4.23 を介して Hailo-8 上で実行します。 HEF は生の SSD 形式のヘッドを公開します(オンチップ NMS なし):ホストが 4,420 個のアンカーを構築し、SSD ボックスデコード(分散 10/5)、 背景/顔ロジットに対する softmax、スコアカット、greedy NMS を実行します。
このページは、PCIe Hailo-8 アクセラレータを搭載した reComputer R Series(CM5 + Hailo-8) を対象としています。
モデル情報
| プロパティ | 値 |
|---|---|
| アーキテクチャ | Ultra-Light-Fast-Generic-Face-Detector-1MB(SSD 形式、ストライド 8/16/32/64) |
| タスク | 顔検出(単一の "face" クラス、WIDER FACE) |
| 入力 | 240×320×3(アプリは uint8 BGR を入力;mean 127 / std 128 は HEF に組み込み済み) |
| 出力 | 8 個の生ヘッド:4 スケール × {bbox デルタ、背景 + 顔ロジット} |
| デコード | ホスト側 SSD デコード(分散 10/5)+ softmax + greedy NMS(meta_arch=retinaface) |
| パラメータ数 | 0.26M |
| 演算量 | 0.16G |
| 参照 mAP | 39.71(WIDER FACE、フル精度、Hailo Model Zoo。このボードでは未測定) |
| ライセンス | MIT(Ultra-Light-Fast-Generic-Face-Detector-1MB) |
| ソース | Hailo Model Zoo |
ハードウェアとホストのセットアップ
| 項目 | 値 |
|---|---|
| ボード | Raspberry Pi CM5 搭載 reComputer R Series |
| アクセラレータ | PCIe 接続の Hailo-8、/dev/hailo0 として公開 |
| ランタイム | HailoRT 4.23.x(ホスト / コンテナで major.minor を一致させる必要があります) |
| コンテナ内の Python | 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 docker
hailort hailort-pcie-driver python3-hailortを直接インストールしてください。hailo-allは使用しないでください。Hailo-10H / HailoRT 5.x パッケージを 取得する可能性があります。
デモ動画での実行
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.mp4USB カメラモード
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 0Web プレビューを表示するには、http://<Board_IP>:8000 を開きます。
HEF ファイル
| HEF | サイズ | 備考 |
|---|---|---|
lightface_slim.hef | 1,907,332 バイト | Hailo Model Zoo v2.19.0 の Hailo-8 ビルド;8 個の生ヘッド |
ソース:
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"レスポンス(box は元のフレームのピクセル単位で [x1, y1, x2, y2]):
{
"predictions": [
{"box": [220, 156, 260, 196], "confidence": 0.98}
]
}| エンドポイント | メソッド | 用途 |
|---|---|---|
/ | GET | Web プレビュー UI |
/api/models/lightface_slim/predict | POST | 顔のボックス(JSON) |
/api/video_feed | GET | MJPEG プレビューストリーム |
/api/config | GET / POST | 信頼度 / IoU しきい値 |
実装上の注意事項
- アンカーセットは zoo の設定に由来します:steps 8/16/32/64、min_sizes [10,16,24] / [32,48] / [64,96] / [128,192,256] → 4,420 アンカー。
- プレビューの信頼度カットは 0.5。zoo の評価では 0.1、NMS IoU 0.3 を使用します。
- フレームはアスペクト比を維持してリサイズされ、下と右が 0 でパディングされます。 これは zoo の顔検出前処理と一致します。
開発
- ソース:
src/rpi5_hailo8_lightface_slim/ - Dockerfile:
docker/hailo8/lightface_slim.dockerfile - 検証ログ:
src/rpi5_hailo8_lightface_slim/TEST_REPORT.md
入力と出力
Input: image (240x320 RGB). Output: face bounding boxes with confidence scores.