写真に基づく3D空間構築手法の到達点

一昔前は実世界の建築物を元にウォークスルー可能な3D空間を構築しようと思ったら、まず各部屋の形状を計測器を用いて計測し、その計測結果に基づいて人手でモデル化し、領域ごとにテクスチャを貼り、照明を設定して……と気の遠くなるような作業が必要だった。3D空間の構築は極めてコストの高い作業だったが、近年では2次元画像(実写写真)に基づいた3D空間の構築手法が長足の進歩を遂げており、以前に比べれば極めて低コストに3D空間を構築する事が可能となっている。


【告知】Twitterはじめました。@LunarModule7です。
興味のあるかたはフォローくださいとしばらく宣伝。

今ではバラバラに撮影した写真から、全自動で3D空間を構築し、内部を自由にウォークスルーできるようになっている。ワシントン大学Microsoft Reseachが2009年に発表した研究*1は現時点における集大成とも言えるものとなっている。本エントリでは本研究の概要を紹介する。詳細を知りたい人は、論文及び紹介ページを参照されたい。本エントリで利用している素材はこれらからの引用である。

部屋内を一通り撮影したバラバラの写真に基づき、カメラ位置、フロアプランの推定、3Dモデルの生成までの全行程を自動で行う事ができ、IBR(Image Based Rendering)を用いた3D Viewerで自由にウォークスルーする事が可能だ。その効果は次のデモを見れば一目瞭然だろう。長文を読むのが面倒な人は下の方にあるYouTube動画をまず先にご覧頂きたい。



室内のモデル化においては様々な障害がある。壁は均一なテクスチャで構成されており特徴点の抽出が行いにくい。また、室内には様々な複雑な形状のオブジェクトが散在しており計算量を増加させる。ドアや壁、テーブルなどの薄い構造物は形状推定において大きな障害となる。この課題に対し本手法は複数の既存手法を組合せ、さらに独自の統合プロセスを経る事で、全自動の3Dモデル化を実現している。

次に3Dモデルの生成プロセスのパイプラインの概要を示す。




1.写真入力


まず元となる室内の写真を用意する。3Dモデルを構築する環境の写真が揃っていればよく、カメラ位置が記録されている必要はなく、写真の順番もバラバラで構わない。必要となる写真の枚数は環境の広さに応じて変化するが、一戸建ての1階全部で150枚程度となる。

2.Structure-from-Motion


Structure-from-Motion (SfM)は、与えられた動画像から、被写体のオブジェクトやシーンの形状、及びカメラの動きを復元するものだ。ここではオープンソースで配付されているBundler Structure from Motionパッケージ*2を利用して、各写真の特徴点抽出と写真間の特徴点の対応付けを行い、因子分解法によりカメラ位置とパラメタの算出を行っている。元となったPhoto Tourismは話題になったので、見た人も多いだろう。

3.Multi-view Stereo


次に、やはりオープンソースで配付されているmulti-view stereo (MVS)ソフトウェアであるPMVS*3を用いて、高精度の3D oriented pointを算出する。それぞれの点は3次元位置と表面法線、そして画像と関連づけられている。簡単に言えば、前ステップで導出したカメラ位置とパラメタ及び入力画像から、初期3Dモデルを構築する。

4.Manhattan-world Stereo


MVSの時点では不十分なので次にManhattan-world仮説に基づき、初期3Dモデルの構築の修正を行う。Manhattan-world仮説とはビルや道路のような直交性の強い三次元環境をカメラで撮像した際に現れる、画像中の各画素の輝度勾配の大きさと方向の分布に関するモデルである。利用したアルゴリズム*4では、カメラ位置(図示)からの入力画像に対し、直行する3軸(赤で表示)の向きに関連付けて壁の存在(緑で表示)を推定し、それぞれの入力画像に対してdepth mapを生成する。

以下に生成されたdepth mapの例を示す。一番左の入力画像に対し、生成されたdepth mapが中央に示されている。一番右は生成されたdepth mapに対し、テクスチャを反映させたものである。

最終的に全てのdepth mapを重ね合わせると次のようになる(depth mapごとに色が割り当ててある)。

5.Axis-aligned depth map merging

最後にdepth mapを3Dメッシュモデルにマージする*5。ここでは、一般的なフロアプランがもつ拘束条件を活用することで、精度を向上させている。概念的には、各軸に直行するvoxel(立方体)を積み重ねることで部屋が構築されていると仮定し、制約条件を満たす最もシンプルとなる部屋、壁、オブジェクトの位置、形状を決定していく。最終的に生成される3Dモデルとフロアプラン(赤線)を次に示す。


生成結果

Kitchen, Hall, House, Galleryの4種類のデータセットに対して、本手法による3Dモデルの自動生成を行った。構築された3Dモデルを次に示し、内部をウォークスルーする様子を示す。また紹介ページではデータセットと3D Viewerの配付を行っている。興味のある人は試してみると良いだろう。


Kitchen
22 images
1364 triangles
Hall
97 images
3344 triangles
House
148 images
8196 triangles
Gallery
492 images
8302 triangles

次に4種類のデータセットに対し、dual quad-core 2.66GHz PCにおいて自動生成にかかったステップごとの処理時間(分)を示す。リアルタイム生成とはいかないが、人手で作成するよりもずっと短い時間で生成できている事が分かる。


Kitchen (22 images)Hall (97 images)House (148 images)Gallery (492 images)
Structure-from-Motion (SfM)137692716
Multi-view Stereo (MVS)38158147130
Manhattan-world Stereo (MWS)39.6281.3843.65677.4
Axis-aligned depth map merging0.40.43.622.4

以上述べたように、充分な量の写真があればその写真に基づいて3Dモデルを全自動で構築する事が可能になってきている。動画を見れば分かるように現時点では所々モデルの破綻が見られるが、その場の様子を体験するには充分な精度であるし、今後アルゴリズムの改良が進めば違和感がない3Dモデルが簡単に構築できるようになるだろう。また、本手法で用いたツールの多くがオープンソースで配付されている点も興味深い。研究グループは、今後の方針として軸に沿わない構造を適切に扱えるように手法を改善したり、複数のフロアからなるビル全体などより大きな構造物へ対応できるようにしたいとしている。また、3D Viewerもより自然に見えるようにレンダリング処理を向上させたいとしている。

誰もがこれらのツールを使って3Dモデルを簡単に構築できるようになれば、実世界のあらゆる場所の3Dモデルが用意されるようになるかも知れない。実世界と対応した仮想世界が利用可能になると何が変わるだろうか? たとえば、実世界上で遠く離れた場所に、仮想世界を通してアクセスし、居ながらにして旅行を体験する事もできるようになるだろう。また、実世界のその場所にいる実人間とアバタを使ってコミュニケーションするような環境が実現できるかも知れない。実世界自体もまた拡張されるのだ。

*1:Yasutaka Furukawa, Brian Curless, Steven M. Seitz, Richard Szeliski: "Reconstructing Building Interiors from Images", ICCV 2009

*2:N. Snavely. Bundler: SfM for unordered image collections. http://phototour.cs.washington.edu/bundler/.

*3:Y. Furukawa and J. Ponce. PMVS. http://www.cs.washington.edu/homes/furukawa/research/pmvs.

*4:Y. Furukawa, B. Curless, S. M. Seitz, and R. Szeliski. Manhattan-world stereo. In CVPR, 2009.

*5:この部分が本論文の肝となる部分だが、大きく割愛。気になる人は原論文を参照されたい。