$30 off During Our Annual Pro Sale. View Details »

軽率にUnityで OAK-D Liteが使えるらしい/using oak-d lite with unity

軽率にUnityで OAK-D Liteが使えるらしい/using oak-d lite with unity

全国学生エンジニア交流会「NSEEM」にて登壇した資料です

にー兄さん

March 12, 2022
Tweet

More Decks by にー兄さん

Other Decks in Technology

Transcript

  1. 軽率にUnityで
    OAK-D Liteが使えるらしい
    にー兄さん(ninisan_drumath)
    全国学生エンジニア交流会 NSEEM

    View Slide

  2. にー兄さん(@ninisan_drumath)
    - 筑波大学 情報科学類(coins18)
    - HoloLab inc.アルバイト
    - Microsoft Learn Student Ambassadors
    - Iwaken Lab.
    趣味はUnity、ギター、コーヒー、VTuberオタ活
    唐突な愛猫自慢→

    View Slide

  3. agenda
    OAK-D Liteとは
    UnityでOAK-D Liteを動かそう
    点群作成の実装を追う
    おわりに

    View Slide

  4. 諸注意
    - スクショ・SNS共有OK
    - 資料は公開予定
    - 私はOAK-DおよびCV分野の素人です(自己防衛)
    - お手柔らかに

    View Slide

  5. OAK-D Liteとは

    View Slide

  6. OpenCV AI Kit
    OpenCV AI Kit(OAK)は、コンピュータービジョン用ハードウェアとAPIソフト
    ウェアで構成される小型ユニットです。
    (AI Camよりhttps://aicam.jp/tech/oak/)

    View Slide

  7. DepthAI APIを用いた開発
    C++とPythonのSDKを提供
    DepthAI APIを通じて
    - センサーの制御
    - CVやAIによる処理
    などを行う
    演算はオンボードで行われる

    View Slide

  8. Depth(深度)画像について
    カメラからの距離をピクセルで表したもの
    mm単位のushort型で表されたりする
    深度センサ、ステレオカメラ、深度推定などによって得られる

    View Slide

  9. OAK-DにおけるDepth
    ステレオカメラから深度情報を取得
    →リアルタイムに深度画像を生成
    リアルタイム点群生成も可能
    LiDARセンサは非搭載
    https://github.com/luxonis/depthai-experiments/tree/master/gen2-camera-demo

    View Slide

  10. † A I † もよう動いとる
    - 手・顔・人の検知
    - 手や全身の骨格推定
    - 顔のランドマーク検出
    - 表情推定
    これらとdepthが組み合わされれば
    3次元的な推定も可能
    これがDepthAIの所以

    View Slide

  11. UnityでOAK-D Liteを動かそう
    (2022/3時点)

    View Slide

  12. OAKForUnityのサンプルをclone
    luxonis/depthai-unity
    のブランチをbetaに
    OAKForUnity/URP 以下に
    Unityプロジェクトがある
    バージョンは2021.2.7

    View Slide

  13. View Slide

  14. 点群生成の実装を追う

    View Slide

  15. 全体のフロー
    DepthAIドライバー
    コンポーネント
    DepthAI
    Property Binder
    Unity VFX Graph
    ネイティブプラグイン
    からデータ取得
    深度とカラーの橋渡し
    点群の構成と描画

    View Slide

  16. センサーデータの取得
    - ネイティブプラグインから取得
    - 毎フレーム生データからTexture2Dを生成
    - このときdepthはmono Rにマッピングされてるら
    しい
    - PropertyBinderがVFX Graphとの繋ぎこみ DaiPointCloudVFX
    depthai-unity.dll
    frame info
    depth
    texture
    mono R
    texture
    Property Binder

    View Slide

  17. VFX Graph
    パーティクルシステムの一種
    - ノードベース
    - GPUパーティクル
    - URP/HDRPで動作

    View Slide

  18. 点群の作成
    1. 画素数分のパーティクルを生成
    2. UV値を指定して色情報をサンプリング
    3. depthも同様にサンプリング
    4. depthから3次元位置を計算
    Depthから位置を計算する Sub Graph

    View Slide

  19. View Slide

  20. おわりに

    View Slide

  21. まとめ
    - OAKForUnityのサンプルを使えば
    UnityでもOAK-D Liteが動かせた
    - VFX Graphを使った点群のデモが見れる

    View Slide

  22. 参考
    depthai-unity
    https://github.com/luxonis/depthai-unity
    OAK-D Lite公式ドキュメント
    https://docs.luxonis.com/projects/hardware/en/latest/pages/DM9095.html
    Unity VFX Graphについて
    https://unity.com/ja/visual-effect-graph

    View Slide