inteintegrity2026-10-16

Codex を使って reComputer RK3576 上でエッジ AI アプリを構築する

YOLOv8 動画検出 WebUI を例に、Codex から SSH で reComputer RK3576 の環境を確認し、既存の NPU 環境を再利用してアプリを構築・展開し、実機でアップロードからダウンロードまで検証する方法を学びます。

CodexEdge AICVGitHub

Codex を使った reComputer RK3576 でのエッジ AI アプリ開発

アプリのアイデアを、エッジ AI ボード上で動くものにするにはどうすればよいでしょうか。このプロジェクトでは、Codex を使った実際の開発セッションを紹介します。reComputer RK3576 に接続して環境を調べ、作りたいアプリを説明し、SSH 経由で展開して、実機で動作を検証します。

例として作るのは、YOLOv8 動画検出 WebUI です。PC のブラウザーから MP4 をアップロードし、RK3576 の NPU で検出を実行して、検出枠、クラス名、FPS を重ねた動画を再生・ダウンロードできます。ソースコード、テスト動画、測定結果は GitHub リポジトリにあります。

目的は、AI 支援開発で再利用できる手順を示すことです。デバイスの情報を渡し、制約を定義し、実装を依頼して、具体的な受け入れ基準に照らして結果を確認します。

全体の流れ

Codex は開発用 PC 上で動き、SSH を使ってボードを操作します。完成したアプリは reComputer RK3576 上で動作し、ニューラルネットワークの推論は NPU が担当します。物体検出には OpenAI API を使用しません。

text
Requirements → Codex on the PC → SSH → reComputer RK3576
                                          ↓
PC browser ← upload / playback / download ← YOLOv8n on the NPU
段階提供する情報確認すること
環境確認ボードのアドレス、アカウント、読み取り専用の操作範囲SSH が使え、NPU 環境にアクセスできる
構築アプリの動作とデバイスの制約正しいモデル、ハードウェア推論、操作可能な UI
展開アプリのディレクトリと起動要件サーバーが起動し、PC から URL にアクセスできる
検証テスト動画と受け入れ基準アップロードからダウンロードまで動作する

始める前に

  • Linux、動作する NPU ドライバー、RKNN Runtime を備えた reComputer RK3576 Dev Kit。
  • Codex、本プロジェクト用のローカルフォルダー、シェルから使用できる SSH ツールを備えた PC。
  • PC とボード間のネットワーク接続、および Codex に必要なローカルツールと SSH 接続を使用させる権限。
  • MP4 のテスト動画。このプロジェクトのリポジトリには video/test.mp4 が含まれます。

この例では、既存の Python、RKNNLite、OpenCV、NumPy 環境を再利用します。OS の書き込みや NPU ドライバーのインストールは扱いません。依存関係が不足している場合は、インストールする前に、何が不足しているかを Codex に報告させてください。

ステップ 1:Codex にボードの環境を確認させる

PC の Codex でローカルプロジェクトフォルダーを開きます。最初は読み取り専用の調査を依頼し、ボードの実際の環境に基づいて実装を進めます。

text
Connect to my reComputer RK3576 via SSH.

Host: <DEVICE_IP>
Username: <DEVICE_USER>
Use my SSH key, or ask for the credentials needed to connect.

Check the OS, architecture, memory, available storage, RKNN Runtime, Python
environments, NPU driver and device access, and existing YOLO models.
Verify that remote commands can execute successfully.

Do not install packages or modify the system yet. Report the environment and
any issues that could block deployment.

プレースホルダーを自分のデバイスの情報に置き換えます。接続用の認証情報をプロジェクトファイルやコミットに含めないでください。

元のセッションでは、Debian 12 ARM64、アクセス可能な RKNPU デバイス、既存の RKNNLite と OpenCV、そしてルートストレージの空き容量の少なさが確認されました。そのため、既存環境を再利用し、アップロード容量制限とストレージ確認をアプリに追加しました。

ステップ 2:作りたいアプリを説明する

ユーザーの操作の流れ、ハードウェア要件、完了の基準をまとめて Codex に伝えます。次のプロンプトは、この開発で使用した依頼を基にしています。

text
Build and deploy a YOLOv8 object detection WebUI on my reComputer RK3576 via SSH.

Download a precompiled RK3576-compatible YOLOv8n .rknn model from Rockchip's
official resources or a verified source. Record its source and verify its
published checksum. Do not train or convert models.

Use the RK3576 NPU for inference. Create a modern English WebUI where I can
upload an MP4 from my PC, run detection, and play or download the processed
video with bounding boxes, class labels, confidence scores, and FPS.

Reuse existing RKNN dependencies and official examples where possible.
Keep application files in a dedicated directory. Do not reinstall drivers
or modify system configurations without permission.

Test the complete workflow on the actual board, fix errors, and provide the
working WebUI URL, measured performance, and remaining limitations.

これにより、モデル選択、UI、展開、テストが同じ目標に結び付きます。プロンプトは出発点であり、すべてのボードで同じ実装や性能が得られることを保証するものではありません。

ステップ 3:モデルと NPU 推論経路を検証する

動画全体を処理する前に、内容が分かっている画像で推論経路を確認します。Codex に次の根拠を報告させます。

  • モデルのダウンロード元、固定したリビジョン、チェックサム、RK3576 向けであること。
  • RKNNLite によるモデルの読み込みと NPU 初期化の成功。
  • 既知のテスト画像で、想定した物体が検出されたこと。
  • 実行時の警告と関連するバージョン。

このプロジェクトでは、RKNNAI/RK3576-CNN-yolov8n からコンパイル済みの YOLOv8n INT8 モデルをダウンロードし、公開された SHA-256 を検証しました。既存の RKNNLite を再利用し、Rockchip 公式の YOLOv8 後処理例を調整しました。DFL の計算には Torch を追加せず NumPy を使いました。既知画像のテストでは、人とバスを検出できました。

インストール済み Runtime は 2.3.0、モデルが報告したコンパイラーは 2.4.2 で、RKNN はバージョン不一致の警告を出しました。このボードでは Runtime を更新せず画像と動画全体のテストに合格しましたが、他のモデルや環境でも互換性があることを示すものではありません。

ステップ 4:展開して WebUI を開く

Codex はアプリを /home/seeed/codex-yolov8-webui に展開し、ポート 8080 でバックグラウンドサーバーを起動しました。自分のボードでは、次の URL を開きます。

text
http://<DEVICE_IP>:8080

完成した UI には、MP4 アップロード、信頼度と IoU の調整、処理状況のプレビュー、検出結果の動画プレーヤー、ダウンロード、ローカル実行履歴が含まれます。処理とアップロードしたファイルはすべてボード上に保持されます。

アプリを作り直さず既存のリポジトリを展開する場合は、Codex に展開手順を読ませ、ボードを調査し、アプリのファイルを転送し、Python 環境に合わせてパスを調整し、NPU プローブを実行してからサーバーを起動させます。付属スクリプトは元のデバイスの環境パスを使用しており、汎用のインストールスクリプトではありません。

元のデバイスで使用したコマンドは次のとおりです。

bash
cd /home/seeed/codex-yolov8-webui
/home/seeed/venvs/rknn-lite2-test/bin/python -B probe.py
sh start.sh

起動時サービスはインストールしていません。ボードの再起動後は sh start.sh を再実行します。

ステップ 5:アップロードからダウンロードまでテストする

PC のブラウザーで video/test.mp4 をアップロードし、検出を開始します。画面上の結果を自分で確認してから、Codex に全体の経路を検証させます。

text
Test the deployed WebUI end to end with video/test.mp4.

Verify upload, NPU inference, progress updates, bounding boxes and labels,
browser playback, seeking, and downloading the result back to the PC.
Confirm that every frame of the downloaded video decodes successfully.

Check invalid uploads, busy-device handling, cancellation, and cleanup with
disposable test runs. Fix errors and rerun the affected checks.

Report NPU inference FPS separately from full processing FPS. Save the test
results and document limitations and compatibility warnings.

2026 年 10 月 15 日の元のテストでは、次の結果が得られました。

測定項目結果
入力動画3840 × 2160、29.97 FPS、394 フレーム
注釈付き出力H.264 MP4、1280 × 720、13.146 秒
処理完了およびダウンロード後にデコードできたフレーム394 / 394
NPU 推論スループット37.63 FPS
全処理スループット7.89 FPS
処理時間49.92 秒(アップロードとモデル起動を除く)
検出したクラスcar、bus、truck、traffic light

NPU FPS は推論呼び出し内の時間を測定します。処理 FPS には、動画のデコード、前処理、推論、後処理、描画、エンコードが含まれます。これらは今回の実行での測定値であり、性能保証でも動画の再生フレームレートでもありません。記録はリポジトリの verification/ ディレクトリにあります。

ステップ 6:再利用できるプロジェクトに整理する

アプリが動作したら、ソース、展開手順、スクリーンショット、モデルの出所、ライセンス、テスト報告を Codex に整理させます。アップロードを許可したメディアだけを含め、認証情報や実行時のアップロード、ログは除外します。

次のアプリでも、ボードの調査、ユーザー操作の説明、ハードウェアとシステムの制約の定義、展開、実際の入力による検証という順序を再利用できます。新しいタスクに合わせて要件と受け入れテストを変更します。

使用範囲と参考資料