見出し画像

Depthセンシングの重要性

背景

 最近の技術動向としてDepthセンシングが注目されています。例えばiPhoneではLiDARという技術が採用され、Depthをセンシングし、それをリアルタイムでカメラ画像に反映することが可能です。
 Depth情報がわかると、被写体の位置を3Dで知ることができるため、自動運転やSecurityカメラの精度向上に貢献できます。さらに機械学習と組み合わせることで、もっと面白いアプリケーションを切り開くことも可能です。そこでDepthセンシングとは何か?もっと気軽にDepthセンシングを楽しむことはできないかと思いこのシリーズを開始しました。

Depthセンシング方法

 Depthセンシング方法としていくつか提案されています。どのようなものがあるかを簡単におさらいしておきたいと思います。詳しい内容等は各自で調べてください。

画像1

 Stereoで代表的な例はSUBARUの車に搭載されているiSightです。二つのカメラの視差を利用してDepthセンシングしています。最近はやりなのがLiDARです。これはセンサーとは別にLaserを発射する装置を別途準備し、そのLaserを2D Scanし反射してくる光の時間差や位相差をDetectorで検出しDepthセンシングしています。これとは別にPhase Shiftというものがあります。一番のメリットは複数のカメラが不要ということです。ただしセンサー側やRAWデータ加工に少し工夫がいるのと、焦点距離によりDepthの見え方が変わるのが少し厄介ですが、そこを理解すれば非常にコンパクトで扱いやすいDepthセンシングだと思います。
 Google reserchの方が機械学習と組み合わせることでDepthセンシングが問題なくできるという報告もしており、今後応用が増えていくかと思います。
 あまり情報が出ておらず、低コストでかつ個人的にも興味があるPhase shiftを中心にDepthセンシングを実験していきます。

開発環境

 幾つかハード上の準備とそれを処理するソフト開発環境の準備及び前提条件がありますのでそれをまとめておきます。

・Pixel4 Android10 (自分はPixel4でしかテストしていないので他はわかりません)
・Pythonが動作する環境。推奨はPhython >3.8
・OpenCV(opencv-contrib-python 4.4.0.46)
・Android Studio(Pixel4に簡単なアプリを入れるために使用)
・VSCode(Pythonを動かすために使用)

 これからUpしていくPythonはColabでも動くと思いますが、基本VSCode上で動作確認しています。


アメリカSilicon Valley在住のエンジニアです。日本企業から突然アメリカ企業に転職して気が付いた事や知って役に立った事を書いています。