Skip to main content

reComputer-RK上でのYOLOv11による物体検出

このプロジェクトは、Rockchipシリーズ開発ボード(RK3588 および RK3576)向けに、産業グレードで高性能なコンピュータビジョン(CV)アプリケーションソリューションを提供します。YOLOv11物体検出モデルを深く統合し、NPUアクセラレーションを活用することで、低レイテンシかつ高フレームレートのリアルタイム推論を実現します。

プロジェクト構成

本プロジェクトは、RKNN-Toolkit2 の特定ドライバおよびランタイム要件を管理するため、プラットフォーム別に構成されています:

reComputer-RK-CV/
├── docker/ # Environment setup files
│ ├── rk3576/ # Dockerfile for RK3576 (rknn-rt 2.1.0+)
│ └── rk3588/ # Dockerfile for RK3588 (rknn-rt 2.1.0+)
├── src/ # Implementation logic
│ ├── rk3576/ # RK3576 source, models, and dependencies
│ └── rk3588/ # RK3588 source, models, and dependencies
└── .github/workflows/ # CI/CD for automated image building

ハードウェア互換性

両方のチップは 6 TOPS のNPU性能を備えていますが、Docker 内で異なるハードウェアパスのマッピングが必要です。

プラットフォームSoCNPUノード推奨カメライメージタグ
RK3588RK3588/RK3588S/dev/dri/renderD129/dev/video1rk3588-yolo
RK3576RK3576/dev/dri/renderD128/dev/video0rk3576-yolo

はじめに

Docker のインストール

ボード上に標準の Docker エンジンをインストールします:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker

X11 フォワーディング(任意)

ボードに直接接続されたモニタ上で検出ウィンドウを表示するには:

xhost +local:docker

検出プロジェクトの実行

このアプリケーションには自動検出機能があります。ディスプレイが見つからない場合、自動的に MJPEG ストリームを起動し、ブラウザからアクセスできるようにします。

reComputer RK3588 の場合:

sudo docker run --rm --privileged --net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e PYTHONUNBUFFERED=1 \
--device /dev/video1:/dev/video1 \
--device /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolo:latest \
python web_detection.py --model_path model/yolo11n.rknn --camera_id 1

reComputer RK3576 の場合:

sudo docker run --rm --privileged --net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e PYTHONUNBUFFERED=1 \
--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/rk3576-yolo:latest \
python web_detection.py --model_path model/yolo11n.rknn --camera_id 0

Web 連携とリアルタイムストリーミング

このプロジェクトには、Ultralytics 標準と互換性のある RESTful API が含まれており、http://<Board_IP>:8000. からアクセスできます。

  • リアルタイム動画フィード: /api/video_feed にアクセスします。HTML に直接埋め込むことができます:
<img src="http://<IP>:8000/api/video_feed">.
  • 静止画像推論:
curl -X POST "http://localhost:8000/api/models/yolo11/predict" -F "file=@/home/user/test.jpg"
  • 動的設定:
# Modify confidence threshold without restarting
curl -X POST "http://localhost:8000/api/config" -d '{"obj_thresh": 0.5}'

開発者ガイド

カスタムモデルのデプロイ

  1. 変換済みの .rknn モデルをホスト側ディレクトリに配置します。
  2. クラス設定ファイル class_config.txt(例:"person"、"car")を作成します。
  3. -v でマウントし、起動コマンド内でパスを指定します:
sudo docker run ... \
-v $(pwd)/my_model.rknn:/app/model/my_model.rknn \
-v $(pwd)/class_config.txt:/app/class_config.txt \
... \
python web_detection.py --model_path model/my_model.rknn --class_path class_config.txt

CLI 引数リファレンス

web_detection.py は以下のパラメータをサポートします:

引数説明デフォルト
--model_pathRKNN モデルファイルへのパス(必須)
--camera_idカメラ ID(例:/dev/video0 の場合は 0)1
--class_pathカスタムクラス設定ファイルへのパスNone(デフォルトは COCO 80)
--portWeb サーバのポート8000

デモ動画

Seeed の今後発売予定の Rockchip RK3576 Dev Kit の最新 EVT サンプル上で YOLOv11 が動作している様子をご覧ください:

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じてお選びいただけるよう、複数のコミュニケーションチャネルを用意しています。

Loading Comments...