Luxonis OAK

Myriad X VPU アクセラレーションを備えた OpenCV AI Kit に Roboflow Train モデルをデプロイします。

The 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

これでカスタムで学習したRoboflowモデルを実行するために roboflowoak パッケージを使用できます。

推論の実行:デプロイ

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の深度マップ(中央カメラに中心補正)
        
        # timing: ベンチマーク目的のタイミング情報
        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のインストール手順を参照し、RGBサンプルが正常に実行できることを確認してください( Luxonis のインストール)。 また、必要に応じて Roboflow フォーラム.

でヘルプを投稿できます。

Last updated

Was this helpful?