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.mp4REST 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% ハードウェア参照値 |
| HEF | Hailo 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.mp4http://<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"| エンドポイント | メソッド | 用途 |
|---|---|---|
/ | GET | Web プレビュー画面 |
/api/models/yolact_regnetx_1_6gf/predict | POST | ボックス、信頼度、マスク面積(JSON) |
/api/video_feed | GET | マスク付き MJPEG プレビューストリーム |
/api/config | GET / 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(YAMLmask_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.