CV / YOLOv5
YOLOv5
reComputer R Series (CM5 + Hailo-10H)
YOLOv5n/s/m物体検出モデル。reComputer RK3588/RK3576(RKNN)とreComputer Rシリーズ + Hailo-8 / Hailo-10Hに対応。
使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4モデル詳細
reComputer R Series (CM5 + Hailo-10H)reComputer R Series(CM5 + Hailo-10H)上の YOLOv5
YOLOv5s と YOLOv5m は HailoRT 経由で Hailo-10H 上で COCO 80 クラス物体検出を実行します。NMS と sigmoid はオンチップ(Hailo HPP)で実行され、ホストは post-NMS テンソルを解析するだけです。
本ページは PCIe Hailo-10H アクセラレータを搭載した reComputer R Series(CM5 + Hailo-10H) を対象とします。
ハードウェアとホスト設定
| 項目 | 値 |
|---|---|
| ボード | reComputer R Series(Raspberry Pi CM5 搭載) |
| アクセラレータ | PCIe 接続の Hailo-10H(/dev/hailo0) |
| ランタイム | HailoRT 5.1.1 |
| コンテナ内 Python | 3.13, aarch64 |
ホストに Hailo-10H パッケージをインストールし、コンテナ起動前にドライバーとデバイスを確認します:
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0これらのイメージに必要な HailoRT バージョンは 5.1.1 です。
同梱デモ映像での実行
YOLOv5s:
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --video_path video/test.mp4YOLOv5m:
sudo docker run --rm \
--name cm5-hailo10h-yolov5m \
--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/yolov5m:latest \
python web_detection.py --model_path model/yolov5m.hef --video_path video/test.mp4http://<Board_IP>:8000 を開くと Web プレビューが表示されます。
USB カメラモード
sudo docker run --rm \
--name cm5-hailo10h-yolov5s \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-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/yolov5s:latest \
python web_detection.py --model_path model/yolov5s.hef --camera_id 0中規模バリアントを使う場合は yolov5s を yolov5m に置き換えます。
HEF ファイル
| HEF | サイズ | 備考 |
|---|---|---|
yolov5s.hef | 13,029,376 (12.4 MB) | パラメータ 7.46M、演算量 17.44G |
yolov5m.hef | 19,812,352 (18.9 MB) | パラメータ 21.78M、演算量 52.17G |
YOLOv5s は小さい方、YOLOv5m は中規模のバリアントで、どちらも Hailo Model Zoo v5.4.0 の Hailo-10H ビルドです。
Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v5.4.0/hailo10h/yolov5s.hef (yolov5m.hef in the same directory).
REST API
POST http://<Board_IP>:8000/api/models/yolov5s/predictcurl -X POST "http://<Board_IP>:8000/api/models/yolov5s/predict" \
-F "file=@test.jpg"| エンドポイント | メソッド | 用途 |
|---|---|---|
/ | GET | Web プレビュー UI |
/api/models/yolov5s/predict | POST | 検出結果(JSON) |
/api/video_feed | GET | MJPEG プレビュー配信 |
実装メモ
- HEF は NMS と sigmoid をオンチップで実行します(zoo
base/yolo.yaml:nms: true、hpp: true)。nms_threshは API 互換のために受け取るのみです。 - post-NMS の各行は
[ymin, xmin, ymax, xmax, score]で、640x640 のレターボックス入力に対する [0,1] の値です。アプリがピクセルに拡大し元画像に戻します。 - HEF には
normalize_in_net(mean 0 / std 255、つまり /255)とpadding_color=114が内蔵されています。アプリはグレー(114)でレターボックスし、uint8 RGB をそのまま入力します。 - クラス ID 0..79 は標準の COCO クラス表を直接索引します(Model Zoo の評価は
labels_offset=1)。 - Model Zoo が記載する post-NMS 形状は 80x5x80 です。パーサーは実行時の実際のレイアウトで処理し、初回推論で一度ログ出力します(
[YOLOv5] raw output type=..., shape=...)。 - 既定値:confidence 0.25。IOU スライダーは無効です — NMS はオンチップです。
開発メモ
- ソースモジュール:
src/hailo10h_yolov5s/、src/hailo10h_yolov5m/ - Dockerfile:
docker/hailo10h/yolov5s.dockerfile、docker/hailo10h/yolov5m.dockerfile - イメージ:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/yolov5s:latest、.../yolov5m:latest - 両モジュールは HailoRT 5.1.1 の InferModel API と Hailo-10H 向け HEF を使用します。
- ユニットテストはデバイスなしで実行できます:
python -m unittest discover -s tests -v。