CV / LightFace

LightFace Slim

reComputer R Series(Hailo-8 / Hailo-10H、HailoRT)上の超軽量な顔検出(0.26M パラメータ)。

64 ダウンロード
メモリ
4GB+
精度
Hailo HEF

使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。

はじめる

デプロイ
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.mp4

REST API

REST API を使用して推論を実行します。以下のコマンドをコピーしてください。

Curl
curl -X POST "http://<Board_IP>:8000/api/models/lightface_slim/predict" \
  -F "file=@test.jpg"
Python
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
参照 mAP39.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 を一致させる必要があります)
コンテナ内の Python3.11、aarch64
bash
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 パッケージを 取得する可能性があります。

デモ動画での実行

bash
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.mp4

USB カメラモード

bash
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 0

Web プレビューを表示するには、http://<Board_IP>:8000 を開きます。

HEF ファイル

HEFサイズ備考
lightface_slim.hef1,907,332 バイトHailo Model Zoo v2.19.0 の Hailo-8 ビルド;8 個の生ヘッド

ソース:

text
https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/lightface_slim.hef

SHA256: e448c0f692f9e907bb7328fc2305ced4d3569f1e0aa26d44439d1a6f003e9314

REST API

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

レスポンス(box は元のフレームのピクセル単位で [x1, y1, x2, y2]):

json
{
  "predictions": [
    {"box": [220, 156, 260, 196], "confidence": 0.98}
  ]
}
エンドポイントメソッド用途
/GETWeb プレビュー UI
/api/models/lightface_slim/predictPOST顔のボックス(JSON)
/api/video_feedGETMJPEG プレビューストリーム
/api/configGET / 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.