CV / YOLACT

YOLACT-RegNetX-1.6GF

reComputer R Series (CM5 + Hailo-10H)

Hailo-8 または Hailo-10H 搭載の reComputer R Series で、リアルタイムのインスタンスセグメンテーションを実行します(COCO 80 クラス、マスクとボックス)。

84 ダウンロード
サイズ
36 MB
メモリ
4GB+
精度
Hailo HEF / HailoRT

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

はじめる

デプロイ
sudo docker run --rm \
  --name cm5-hailo10h-yolact-1-6gf \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolact_regnetx_1_6gf:latest \
  python web_detection.py --model_path model/yolact_regnetx_1_6gf.hef --video_path video/test.mp4

REST API

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

Curl
curl -X POST "http://<Board_IP>:8000/api/models/yolact_regnetx_1_6gf/predict" \
  -F "file=@test.jpg"
Python
import requests

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

モデル詳細

reComputer R Series (CM5 + Hailo-10H)

reComputer R Series (CM5 + Hailo-10H) で YOLACT-RegNetX-1.6GF を実行

YOLACT(UC Davis)は HailoRT 5.1.1 を介して Hailo-10H 上でリアルタイムインスタンスセグメンテーションを実行し、COCO 80 クラスのボックス内の各物体にマスクを生成します。HEF は 16 個の生のヘッドを出力し、すべてのデコードはホスト CPU 上で行います。

モデル情報

項目値
アーキテクチャYOLACT (You Only Look At CoefficienTs), RegNetX-1.6GF バックボーン
タスクインスタンスセグメンテーション
入力512x512x3 RGB (normalize_in_net ImageNet RGB mean/std)
出力16 ヘッド:proto(128x128x32)+ 5 スケール x {bbox, mask coeffs, conf}
事前アンカー49,104 アンカー(9/セル、特徴マップ 64/32/16/8/4)
クラス数80 (COCO)
パラメータ数30.09M
演算量125.34G
HEFHailo Model Zoo v5.4.0, Hailo-10H (38.9 MB)

ハードウェアとホストの設定

項目値
ボードRaspberry Pi CM5 搭載 reComputer R Series
アクセラレータPCIe 接続 Hailo-10H、デバイスは /dev/hailo0
ホストドライバーhailo-h10-all apt パッケージ
ランタイムHailoRT 5.1.1
コンテナ内 Python3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

# After reboot
hailortcli fw-control identify
ls /dev/hailo0

デモ動画で実行

bash
sudo docker run --rm \
  --name cm5-hailo10h-yolact-1-6gf \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolact_regnetx_1_6gf:latest \
  python web_detection.py --model_path model/yolact_regnetx_1_6gf.hef --video_path video/test.mp4

http://<Board_IP>:8000 を開いて Web プレビューを確認します(MJPEG ストリームに色付きインスタンスマスクを重ねます)。

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/yolact_regnetx_1_6gf/predict"   -F "file=@test.jpg"
エンドポイントメソッド用途
/api/models/yolact_regnetx_1_6gf/predictPOSTボックス、信頼度、マスク面積(JSON)
/api/video_feedGETマスク付き MJPEG プレビューストリーム

実装上の注意

  • CPU 後処理(meta_arch=yolact):49,104 アンカー → SSD デコード → Fast NMS → sigmoid(proto @ coeffs^T) によるマスク合成。Model Zoo の instance_segmentation_postprocessing.py を numpy に移植しています。
  • 実行器は HailoRT 5.1.1 の複数出力 FLOAT32 ラッパー(16 ヘッド)です。初回推論では SOP 受け入れチェックリストに従い各ヘッドの値域を表示します。
  • normalize_in_net は ImageNet RGB を使用し、アプリは生の uint8 RGB を入力します。
  • 前処理:単純な双線形補間で 512x512 にリサイズします(letterbox なし、パディングなし)。

開発上の注意

  • ソースモジュール: src/hailo10h_yolact_regnetx_1_6gf/
  • Dockerfile: docker/hailo10h/yolact_regnetx_1_6gf.dockerfile
  • コンテナ: ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolact_regnetx_1_6gf:latest
  • ファミリー:YOLACT(バリアント:regnetx_800mf / regnetx_1.6gf)

入力と出力

Input: image, video, or USB camera frame. Output: COCO 80-class boxes with confidences, per-object mask pixel areas, and an MJPEG preview with colored instance masks.