CV / YOLACT

YOLACT-RegNetX-1.6GF

reComputer R Series (CM5 + Hailo-8)

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

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

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

はじめる

デプロイ
sudo docker run --rm \
  --name cm5-hailo8-yolact-1-6gf \
  --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/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-8)

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

YOLACT(UC Davis)は HailoRT を介して Hailo-8 上でリアルタイムインスタンスセグメンテーションを行い、COCO 80 クラスのボックス内の各物体にマスクを生成します。HEF は 16 個の生のヘッドを出力し、すべてのデコードをホスト CPU 上で行います。1.6GF は yolact ファミリーのより大きく高精度なバリアントです。

モデル情報

項目値
アーキテクチャ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
mAP(COCO、フル精度)27.6% ハードウェア参照値
HEFHailo Model Zoo v2.19.0, Hailo-8

上記の精度は Hailo Model Zoo の参照値であり、CM5 上で測定したベンチマークではありません。

デモ動画で実行

bash
sudo docker run --rm \
  --name cm5-hailo8-yolact-1-6gf \
  --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/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"
エンドポイントメソッド用途
/GETWeb プレビュー画面
/api/models/yolact_regnetx_1_6gf/predictPOSTボックス、信頼度、マスク面積(JSON)
/api/video_feedGETマスク付き MJPEG プレビューストリーム
/api/configGET / POST信頼度 / NMS IOU しきい値

実装上の注意

  • CPU 後処理(meta_arch=yolact):チップ上 NMS はありません。Detect パイプライン(49,104 アンカー → SSD デコード → インスタンスごとの argmax → Fast NMS、クラスごと top-200、最大 100 検出)は Model Zoo の instance_segmentation_postprocessing.py の numpy 移植です。
  • 候補マスク:sigmoid(proto @ coeffs^T) を各検出ボックスに切り取り、mask_thresh=0.5(YAML mask_threshold)で可視化します。
  • normalize_in_net は ImageNet RGB を使用し、アプリは生の uint8 RGB を入力します。
  • 前処理:単純な双線形補間で 512x512 にリサイズします(letterbox なし、パディングなし)。

開発上の注意

  • ソースモジュール: src/rpi5_hailo8_yolact_regnetx_1_6gf/
  • Dockerfile: docker/hailo8/yolact_regnetx_1_6gf.dockerfile
  • コンテナ: ghcr.io/seeed-projects/recomputer-hailo8-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.