CoreMLの練習にDepth PredictionができるmacOSアプリをつくりました。

github.com

近頃macOSを開発に全く使ってなく、面白そうなアップデートに全く追従できていなかったので、サンプルが少ないCoreMLをmacOSから使うアプリを作りました。GitHubのReleasesからビルド済のアプリをダウンロードできます。PythonのMLライブラリ等と違い、ライブラリのインストール要らずで使えるのが一番の利点ですね。

Appleが既に用意してくれているFCRN-DepthPredictionモデルを使いました。 developer.apple.com

*.mlmodelファイルをXcodeにドロップするだけで、クラスとして読み込まれます。パスからファイルを読み込むなどは必要なく、非常にシンプルです。

f:id:asus4:20191014212500p:plain
CoreML model on Xcode

inputs,outputsの情報もXcodeのインスペクタから見れるのも便利。今回のモデルは低解像度で160x128pxのグレイスケール深度画像(double)を出力するのが一発でわかります。

出力される深度の値は、 0(手前)〜不定値(奥)となっているので、白黒を反転、0-255までの範囲に正規化しています。

Facebook 3D Photo

そもそもDepth Predictionを試してみた理由は、Facebookの3D Photoが簡単に対応できるようになっていることに気づいたためです。 www.oculus.com 画像と同じアスペクト比のimage_depth.pngグレイスケール画像を用意するだけで、3D Photoのポストができます。

このアプリでもFacebook 3D Photoに対応する画像を書き出します。

実験結果

iPhoneXなどで気軽にDepthつき映像が手に入るようになっているものの、Depthを持っていない画像:昔の映画や、油絵などにDepthを推定するとどうなるかという実験をしてみました。精度や出力の解像度が荒いので、まだまだな印象があります。面白そうなのでもう少し掘って見ようと思います。