Luxonis OAK

Myriad X VPU による加速を備えた OpenCV AI Kit に Roboflow Train モデルをデプロイします。

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

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

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

タスクサポート

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

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

物体検出:

  • RoboflowでトレーニングされたYOLOv8モデル(FastおよびAccurate)

  • 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モデルを実行できます。

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

Depth機能のないOAKデバイスにデプロイする場合は、 depth=False で(作成時に)設定してください rf オブジェクト。Depth付き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用の深度マップ(中央カメラに中心補正)
        
        # タイミング:ベンチマーク用
        t = time.time()-t0
        print("FPS ", 1/t)
        print("PREDICTIONS ", [p.json() for p in predictions])

        # 深度計算用のパラメータ設定
        # Depthなし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 Forum.

もご覧ください

Last updated

Was this helpful?