CV / YOLOv5
YOLOv5-seg
YOLOv5-segインスタンスセグメンテーションモデル。reComputer RK3588/RK3576(RKNN)とreComputer Rシリーズ + Hailo-8 / Hailo-10Hに対応。
468 ダウンロード
サイズ
~5.4MBメモリ
1GB+精度
INT8 / Hailo HEF使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
デプロイ
sudo docker run --rm \
--name rk3588-yolov5n-seg \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
-e RKNN_LOG_LEVEL=0 \
--device /dev/video0:/dev/video0 \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov5_seg:latest \
python3 web_detection.py --model_path model/yolov5n_seg.rknn --video video/test.mp4モデル詳細
reComputer R Series (CM5 + Hailo-8)YOLOv5-seg(reComputer Rシリーズ CM5 + Hailo-8対応)
YOLOv5-seg(anchor-based インスタンスセグメンテーション)は80個のCOCOクラスを検出し、各インスタンスのピクセルマスクを生成します。HEFは3つの生の検出ヘッドとマスクプロトタイプテンソルを出力し、アプリはCPU上でanchorデコード、クラス別NMS、プロトタイプからのマスク組み立てを行います。
このページはPCIe Hailo-8アクセラレータ搭載の**reComputer Rシリーズ(CM5 + Hailo-8)**を対象としています。
モデル情報
| バリアント | パラメータ数 | ハードウェアmAP | HEFサイズ |
|---|---|---|---|
| YOLOv5n-seg | 1.99M | 22.9 | 4.7 MB |
| YOLOv5s-seg | 7.61M | 30.7 | 8.7 MB |
| YOLOv5m-seg | 32.60M | 36.6 | 28.1 MB |
共通プロパティ:
| 項目 | 値 |
|---|---|
| アーキテクチャ | YOLOv5-seg(3 anchors、stride 8/16/32) |
| 入力 | 640x640x3 RGB(normalize_in_net、mean 0 / std 255) |
| 出力 | proto(160x160x32)+ 3つの検出ヘッド(各351チャネル) |
| Letterboxパディング色 | 114(グレー、YOLOの慣例) |
| HEF | Hailo Model Zoo v2.19.0、Hailo-8 |
精度値はHailo Model Zooの参考ベンチマークであり、CM5上での実測値ではありません。
ハードウェアとホストのセットアップ
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0イメージの取得
イメージはGHCRで公開されています。コンテナを起動する前に取得してください:
bash
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5n_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5s_seg:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov5m_seg:latestデモ動画で実行
YOLOv5n-seg:
bash
sudo docker run --rm \
--name cm5-hailo8-yolov5n-seg \
--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/yolov5n_seg:latest \
python web_detection.py --model_path model/yolov5n_seg.hef --video_path video/test.mp4YOLOv5s-seg / YOLOv5m-segも同じコマンドで、yolov5n_segをyolov5s_segまたはyolov5m_segに置き換えるだけです。
http://<Board_IP>:8000を開くと、インスタンスマスク付きのWebプレビューを確認できます。
USBカメラモード
--device /dev/video0:/dev/video0を追加し、--video_path video/test.mp4を--camera_id 0に置き換えます。
REST API
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov5n_seg/predict" \
-F "file=@test.jpg"| エンドポイント | メソッド | 用途 |
|---|---|---|
/api/models/yolov5n_seg/predict | POST | 検出ボックス + インスタンスマスク(JSON) |
/api/video_feed | GET | MJPEGプレビューストリーム |
実装の詳細
- デコードはHailo Model Zooの
yolov5_seg後処理に準拠します:anchorデコード(xy = (sigmoid(xy) * 2 + grid - 0.5) * stride、wh = (sigmoid(wh) * 2) ** 2 * anchor_grid)→ objectness × クラススコア → クラス別NMS →sigmoid(coeffs @ proto)を入力サイズにアップサンプルし、各ボックスでクロップ。 - 3つの検出ヘッドは351チャネルで識別し、空間サイズ順(stride 32 → 16 → 8)に並べます。protoヘッドは160x160x32テンソルです。初回推論時に各vstreamの名前と形状を出力するため、実機でマッピングを確認できます。
- 実行エンジンはHailoRT 4.23 VStreams APIとHailo-8専用HEFを使用します。
- ソースモジュール:
src/rpi5_hailo8_yolov5n_seg/(..._s_seg/、..._m_seg/も同様) - Dockerfile:
docker/hailo8/yolov5n_seg.dockerfile