OpenCV AI Kit (OAK-D)でステレオ映像

LKGPトップページに戻る

2021/01/19 ツールを大幅にバージョンアップしました。起動用Pythonプログラムは不要になり、直接、Pythonプログラムのダブルクリックで起動します。またOBS Studio無に直接、仮想WEBカメラ出力にも対応しました。

kickstarter OpenCV AI Kit でバックしたAIステレオカメラが届いたので、早速、各種ステレオ映像表示や、Looking Glass表示をやってみたので、やり方を含めて、共有します。
OpenCV AI Kit(OAK-D)は、真ん中に4Kカメラ、左右にモノクロカメラ(1280x720)、合計3台のカメラと、ビルトインのAIチップが埋め込まれ、PCとUSBケーブルで接続して使用します。
Pythonで作られた公式ツールをインストールすると、すぐに、物体認識カメラとして動作します。

AIカメラとしての使い方は、色々なサイトで紹介していますので、ここでは、ステレオ映像を、裸眼立体視やアナグリフで鑑賞する方法、それらをZOOM等のWEBカメラ映像として活用する方法、Looking Glassで表示する方法等を紹介します。


1. Pythonで作られた公式ツールをインストール
まずは、公式ツールをインストールし、OpenCV AI Kit(OAK-D)の映像をPC上で表示できるようにします。
(これが、動作しないと、以下の手順に勧めません)

2. ステレオ映像表示用のPythonプログラム(2021/01/23 Ver0.02)をダウンロードし、ZIPファイルを解凍し、上記公式ツールをインストールしたフォルダ(\depthai)にコピーする。
depthai_modebusuto_001.zipの中身
- depthai_rgb.py : OpenCV AI Kitの中央のカラーカメラの映像を出力(1280x720)する
- depthai_rgb_OBS.py : 上と同じ+仮想WEBカメラ(OBS-Camera)に出力する
- depthai_ana.py : OpenCV AI Kitの左右のモノクロステレオカメラをアナグリフ出力(960x720)する
- depthai_ana_OBS.py : 上と同じ+仮想WEBカメラに出力する
- depthai_lrrl.py : OpenCV AI Kitの左右のモノクロステレオカメラをLR/RL出力(960x720)する
- depthai_lrrl_OBS.py : 上と同じ+仮想WEBカメラに出力する
- depthai_hsbs.py : OpenCV AI Kitの左右のモノクロステレオカメラをハーフSBS出力(960x720)する
- depthai_hsbs_OBS.py : 上と同じ+仮想WEBカメラに出力する
- depthai_depth.py : OpenCV AI Kitを横で使用し、右モノクロ2Dとデプスマップを横並びに出力(1280x480)する
- depthai_depth_OBS.py : 上と同じ+仮想WEBカメラに出力する
- depthai_depth_portrait.py : OpenCV AI Kitを縦で使用し、右モノクロ2Dとデプスマップを横並びに出力(960x640)する
- depthai_depth_portrait_OBS.py : 上と同じ+仮想WEBカメラに出力する
(2021/1/23)下記2つを追加
- depthai_stereo.py : OpenCV AI Kitの3つのカメラから各種ステレオ映像を出力(960x720)する(使い方は下記6参照
- depthai_stereo_OBS.py : 上と同じ+仮想WEBカメラ(OBS-Camera)に出力する(使い方は下記6参照

a) アナグリフ(赤青メガネ用)映像表示
[depthai_ana.py]もしくは、[depthai_rgb_OBS.py]をダブルクリックして起動すると、下のようなアナグリフ映像が表示される
終了するときは、「Q」キーを押す

b) 裸眼立体視用LR/RL映像表示
[depthai_lrrl.py]もしくは、[depthai_lrrl_OBS.py]をダブルクリックして起動すると、下のような裸眼立体視映像表示が表示される
終了するときは、「Q」キーを押す

C) 右画像/デプスマップのSBS表示
[depthai_depth.py]もしくは、[depthai_depth_OBS.py]をダブルクリックして起動すると、下のような右画像/デプスマップのSBS表示が表示される
カメラに近づくとデプスマップが破綻します。ある程度、カメラから離れて(1m程度)ご使用下さい。また、逆光等、映像が潰れると正しいデプスマップが生成されないようです。
終了するときは、「Q」キーを押す

d) 右画像/デプスマップのSBS表示(OpenCV AI Kitを縦配置にして使用)
OpenCV AI Kitを縦配置にして、[depthai_depth_portrait.py]もしくは、[depthai_depth_portrait_OBS.py]をダブルクリックして起動すると、
下のような右画像/デプスマップのSBS表示が表示される
終了するときは、「Q」キーを押す
横配置よりも、多少、デプスマップが綺麗に作成できると思います。

3. 上記で出力したアナグリフや裸眼立体視映像をWEBカメラ映像としてZOOM等に送る方法
_OBS付のプログラムを起動し、ZOOMのカメラで「OBS-Camera」を選択して下さい。
_OBSの付くPythonプログラムを動作させるには、pyvirtualcamとobs-virtualcamをインストールする必要があります。

4. 上記の右画像/デプスマップのSBS表示を、リアルタイムにLooking Glass用映像にレンダリング表示する

a) [depthai_depth_OBS.py]もしくは、[depthai_depth_portrait_OBS.py]をダブルクリックして起動すると、WEBカメラ映像としても出力される。
b) PCとLooking Glassを接続し、Google Chromeブラウザで「https://suto.bex.jp/lkg/depthwc/depth.html」を開く
WEBカメラ選択ボックスが「OBS-Camera」になっている事を確認し、
depthai_depth_portrait_OBS.py(縦配置)の時は、「Portrait(960x640)」ボタン
depthai_depth_OBS.py(横配置)の時は、「Landscape(1280x480)」ボタンを押す。
d) 下のように、Looking Glass用のレンダリングされた映像が表示されるので、このウィンドウをLooking Glassに移動し、Full Screen Modeボタン
を押すと、Looking Glassに全画面表示される。

5. 各種ステレオ表示形式で表示する
  depthai_hsbs_OBS.pyでハーフSBS出力し、
  このページ(https://suto.bex.jp/html5/3dwebcam/index.html)を開き、
  WEBカメラ選択ボックスから「OBS-Camera」を選択し、「WCam」「Specify resolution」ボタンを押し
  「960,720,Half」を入力し、OKボタンをおし、表示することを確認する
  このビューワーの使い方は、Helpを参照して下さい。

6. depthai_stereo.pyまたはdepthai_stereo_OBS.pyを使うと、これだけで、各種ステレオ表示や左右位置調整ができます。
  起動するとアナグリフ表示します。
  表示ウィンドウをアクティブ(マウスクリックする)にすると下記キー操作できます。
  0キー:アナグリフ
  1キー:LR/RL表示
  2キー:SBS表示
  3キー:ハーフSBS表示
  4キー:2Dカラー表示
  Xキー:左右画像入替
  左右矢印キー:左右の位置調整(3Dの奥行き調整)