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.mp4

REST 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
コンテナ内 Python3.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.mp4

http://<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 0

HEF ファイル

HEFサイズ備考
yolov6n.hef5,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/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov6n/predict" \
  -F "file=@test.jpg"
エンドポイントメソッド用途
/GETWeb プレビュー UI
/api/models/yolov6n/predictPOST検出結果(JSON)
/api/video_feedGETMJPEG プレビュー配信

実装メモ

  • 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.