Luxonis OAK

Myriad X VPU加速を使ってOpenCV AI KitにRoboflow Trainモデルをデプロイします。

この Luxonis OAK(OpenCV AI Kit) は、組み込みコンピュータビジョンシステムの展開によく使われるエッジデバイスです。

OAKデバイスは、下流アプリケーションの操作を制御するホストマシンとペアになっています。刺激的なインスピレーションについては、 Luxonisのユースケース および Roboflowの事例研究.

ちなみに: まだOAKデバイスをお持ちでない場合は、 Roboflowストアから購入できます 10%割引が受けられます。

タスクサポート

ホストAPIでサポートされているタスクタイプは以下の通りです:

タスクタイプ
Luxonis OAKデプロイメントでサポート

物体検出:

  • RoboflowでトレーニングされたYOLOv8モデル(高速・高精度両方)

  • RoboflowでトレーニングされたYOLOv11モデル

分類

インスタンスセグメンテーション

セマンティックセグメンテーション

モデルをLuxonis OAKにデプロイする

サポートされているLuxonisデバイスとホスト要件

Roboflow Inference Serverは以下のデバイスをサポートしています:

  • OAK-D

  • OAK-D-Lite

  • OAK-D-POE

  • OAK-1(深度なし)

インストール

次をインストールします: roboflowoak, depthai、および opencv-python パッケージ:

pip install roboflowoak
pip install depthai
pip install opencv-python

これで roboflowoak パッケージを使ってカスタムトレーニング済みRoboflowモデルを実行できます。

推論の実行:デプロイメント

深度機能のないOAKデバイスにデプロイする場合は、 depth=False でインスタンス化(作成)してください rf オブジェクト。深度付きOAKはモデル名に「D」が付いています(例:OAK-D、OAK-D-Lite)。

また、次の行をコメントアウトしてください: max_depth = np.amax(depth) および cv2.imshow("depth", depth/max_depth)

from roboflowoak import RoboflowOak
import cv2
import time
import numpy as np

if __name__ == '__main__':
    # RoboflowOakモジュールでオブジェクト(rf)をインスタンス化
    rf = RoboflowOak(model="YOUR-MODEL-ID", confidence=0.05, overlap=0.5,
    version="YOUR-MODEL-VERSION-#", api_key="YOUR-PRIVATE_API_KEY", rgb=True,
    depth=True, device=None, blocking=True)
    # モデルを実行し、検出付きのビデオ出力を表示
    while True:
        t0 = time.time()
        # rf.detect()関数はモデル推論を実行します
        result, frame, raw_frame, depth = rf.detect()
        predictions = result["predictions"]
        #{
        #    predictions:
        #    [ {
        #        x:(中央)
        #        y:(中央)
        #        width:
        #        height:
        #        depth: ###->
        #        confidence:
        #        class:
        #        mask: {
        #    ]
        #}
        #frame - 前処理後のフレーム(予測付き)
        #raw_frame - OAKからの元のフレーム
        #depth - raw_frame用の深度マップ(中央カメラに中心補正)
        
        # timing: ベンチマーク用
        t = time.time()-t0
        print("FPS ", 1/t)
        print("PREDICTIONS ", [p.json() for p in predictions])

        # 深度計算用のパラメータ設定
        # 深度なしOAKを使う場合は以下2行をコメントアウト
        max_depth = np.amax(depth)
        cv2.imshow("depth", depth/max_depth)
        # ビデオフィードを連続フレームとして表示
        cv2.imshow("frame", frame)
    
        # OAK推論ウィンドウの閉じ方/推論停止方法:CTRL+qまたはCTRL+c
        if cv2.waitKey(1) == ord('q'):
            break

(プレースホルダテキストをPythonスクリプトのパスに置き換えて)以下のコードを入力してください

# ウィンドウを閉じる(中断または推論終了)には、キーボードでCTRL+cを入力
python3 /path/to/[YOUR-PYTHON-FILE].py

Apple Macbook Air(M1)をホストデバイスとして使用した場合の推論速度(ミリ秒)は平均約15ms、または66FPSでした。 注意:OAKと一緒に使うホストデバイスはFPSに大きな影響を与えます。システム作成時に考慮してください。

トラブルシューティング

OAKデバイスのセットアップで問題が発生している場合は、Luxonisのインストール手順を参照し、 LuxonisインストールでRGBサンプルが正常に実行できることを確認してください。また、 Roboflowフォーラム.

関連情報

Last updated

Was this helpful?