多視点3Dディスプレイ「Looking Glass Go」用に写真を立体化、AIによる単眼深度推定の方法と課題を解説
・3DCGでの確認 生成された深度情報は視覚的にきれいに見えても、たとえば小さなノイズやムラなど、立体にしてみないと分かりにくい問題が隠れているかもしれません。実際のLooking Glass Goとは見え方も異なりますが、3DCGを使って立体的に表示してみて、そうした問題が隠れていないかも確認してみます。 先に深度推定した画像を3DCGとして描くのに、今回はCinema 4Dというツールを使います。単に使い慣れているからで、Blenderなど他のツールでも同様の確認は手軽にできるでしょう。 深度画像の立体化にはDisplacement Mapという仕組みを使います。これはグレースケールなどの階調を使って立体的な表現をする手法で、単純な形状を複雑に描いたり、少ない作業負荷で大量の要素を緻密に描くのに使えます。このDisplacement Mapを、調整しやすいようデフォーマという非破壊の形状変形機能経由で使いました。 こうした変形を必要十分に細かく分割したポリゴンの板に適用し、首振りのアニメーションを付けて動画にします。角度は30度を超えると破綻ばかり気になったので25度まで。そこそこポリゴン数が多くレンダリング時間がかかるので、解像度は720×1280で低めに。 動画にすると各推定の問題点がよくわかります。やはり一番きれいに出ているのはドラゴンと少女のもので、Looking Glass Goでもこれぐらい出てくれれば十分でしょう。 路上のおじさんはDisplacement Mapでの立体化が単純すぎたために、浮き出た印象が強すぎました。デフォーマの設定で浮き出る強度の中心ほど強く盛り上がるよう設定はしていますが、細かな制御ができないため不自然です。 猫は元絵のコントラストの浅さが不自然で、こちらも浮き出すぎています。地面の推定も問題がそのまま出ています。こうした構図にはMiDaSで16bitにした方が、手間はかかりますが良い結果が得られるかもしれません。 タワーおじさんは背景に対しのっぺりとしています。凹凸の強度をもっと上げてもよかったのですが、背景の推定が悪く不自然さが強まります。 グラスは不正だらけで現実の立体として破綻しています。映り込みや透明が解決できたとしても、そもそも視点に応じたそれらの変化が表現できない以上、Looking Glass Goで見る対象として不適そうです。
あとは出荷を待つ
Looking Glass Goに備える手始めに、単眼深度推定環境の簡単な環境を用意し、問題も確認できました。 単眼深度推定は発展の大きい分野で、それでもまだまだ課題も多数あります。6月までに今回確認できた問題が解消されたツールが登場するかもしれませんし、推定のパラメータを見直しての改善もありえます。 大量の画像の処理や、生成からRGBD出力までの一貫処理、生成したRGBDをLooking Glass Goに渡す方法など、商品出荷前にまだまだ楽しめそうです。
kogu@TechnoEdge