CV / YOLOv6
YOLOv6
YOLOv6 COCO物体検出。reComputer RK3576/RK3588(RKNN)とreComputer Rシリーズ + Hailo-8 / Hailo-10Hに対応。
11 ダウンロード
精度
RKNN / Hailo HEF使用しているデバイスを選択してください。セットアップガイドとドキュメントがそれに応じて更新されます。
はじめる
デプロイ
sudo docker run --rm --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latest \
python3 web_detection.py --platform rk3576 --model_path model/yolov6n.rknn --video_path video/test.mp4REST API
REST API を使用して推論を実行します。以下のコマンドをコピーしてください。
Curl
curl http://localhost:8080/v1/chat/completions -d '{
"model": "yolov6",
"messages": [{"role": "user", "content": "Hello"}]
}'Python
import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolov6", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())モデル詳細
reComputer R Series (CM5 + Hailo-8)YOLOv6n on reComputer R Series (CM5 + Hailo-8)
YOLOv6n は HailoRT 経由で Hailo-8 上で COCO 80 クラス物体検出を実行します。コンパイル済み HEF はオンチップ HPP NMS の結果を返す場合と、9 つの生の分割ヘッドを返す場合があり、アプリはどちらも処理して実際のレイアウトをログ出力します。
本ページは PCIe Hailo-8 アクセラレータを搭載した reComputer R Series (CM5 + Hailo-8) を対象とします。
ハードウェアとホスト設定
| 項目 | 値 |
|---|---|
| ボード | reComputer R Series(Raspberry Pi CM5 搭載) |
| アクセラレータ | PCIe 接続の Hailo-8(/dev/hailo0) |
| ランタイム | HailoRT 4.23.x |
| コンテナ内 Python | 3.11, aarch64 |
ホストに Hailo-8 パッケージをインストールし、コンテナ起動前にドライバーとデバイスを確認します:
bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0このイメージに必要な HailoRT バージョンは 4.23.x です。
同梱デモ映像での実行
bash
sudo docker run --rm \
--name cm5-hailo8-yolov6n \
--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/yolov6n:latest \
python web_detection.py --model_path model/yolov6n.hef --video_path video/test.mp4http://<Board_IP>:8000 を開くと Web プレビューが表示されます。
USB カメラモード
bash
sudo docker run --rm \
--name cm5-hailo8-yolov6n \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-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/yolov6n:latest \
python web_detection.py --model_path model/yolov6n.hef --camera_id 0HEF ファイル
| HEF | サイズ | 備考 |
|---|---|---|
yolov6n.hef | 5,774,047 (5.5 MB) | HEF は Hailo Model Zoo v2.19.0 の Hailo-8 ビルドです。パラメータ 4.32M、演算量 11.12G。 |
Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolov6n.hef.
REST API
text
POST http://<Board_IP>:8000/api/models/yolov6n/predictbash
curl -X POST "http://<Board_IP>:8000/api/models/yolov6n/predict" \
-F "file=@test.jpg"| エンドポイント | メソッド | 用途 |
|---|---|---|
/ | GET | Web プレビュー UI |
/api/models/yolov6n/predict | POST | 検出結果(JSON) |
/api/video_feed | GET | MJPEG プレビュー配信 |
実装メモ
- Model Zoo
base/yolov6.yamlはhpp=true、meta_arch=yolo_v6、score_threshold=0.03、nms_iou_thresh=0.65を使用し、info.output_shapeには 9 つの生の分割ヘッド(stride 32/16/8 ごとに 4 チャンネルのボックス、1 チャンネルの objectness、80 チャンネルのクラス)が記載されています。 - モジュールは両方のコンパイルレイアウトに対応します。HEF が既に NMS(HPP)を実行している場合は post-NMS テンソル(クラスごとのコンパクトバッファ、
Cx5xD/CxDx5の密な形式、ragged NMS-by-score リスト)を解析し、生の分割ヘッドの場合はセル中心からの距離(stride 単位)をデコードして sigmoid(クラス) × sigmoid(objectness) をスコアとし、IOU スライダーの値でクラスごとの NMS を実行します。 - 初回推論時に
[YOLOv6n] layout=...を一度出力するので、実機でレイアウトを確認できます。 - HEF には
normalize_in_net(mean 0 / std 255)とpadding_color=114が内蔵されています。アプリはグレー(114)でレターボックスし、uint8 RGB をそのまま入力します。 - クラス ID 0..79 は標準の COCO クラス表を直接索引します(Model Zoo の評価は
labels_offset=1)。 - 既定値:confidence 0.25。オンチップ NMS レイアウトでは IOU スライダーは無効、生ヘッドのレイアウトではホスト側 NMS を制御します。
開発メモ
- ソースモジュール:該当するモデルリポジトリの
src/hailo10h_yolov6n/(Hailo-10H)またはsrc/rpi5_hailo8_yolov6n/(Hailo-8) - イメージ:
ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov6n:latest - Hailo Model Zoo が公開しているのは YOLOv6n のみで、YOLOv6s/m/l の Hailo HEF はありません。
- モデルライセンス:GPL-3.0(上流は meituan/YOLOv6)。
入力と出力
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.