修 士 学 位 題 目 論 文 単眼カメラとストローク入力を用いた 三次元復元による AR ジオラマシステム 指 導 教 員 竹村 治雄 教授 報 告 者 立石 昂裕 平成 22 年 2 月 5 日 大阪大学大学院情報科学研究科 情報システム工学専攻 修 士 学 位 論 文 報 告 者 立 石 昂 裕 修士学位論文 題目 単眼カメラとストローク入力を用いた 三次元復元による AR ジオラマシステム 指導教員 竹村 治雄 教授 報告者 立石 昂裕 平成 22 年 2 月 5 日 大阪大学大学院情報科学研究科 情報システム工学専攻 平成 21 年度 修士学位論文 単眼カメラとストローク入力を用いた 三次元復元による AR ジオラマシステム 立石 昂裕 内容梗概 近年,拡張現実感 (Augmented Reality, AR) と呼ばれる現実空間に対して計算機情報 を重畳表示しユーザを支援する技術が身近なものとなり始めている.しかしながら,多く の AR システムは予め設定された作業環境で予め用意されたコンテンツを再生するのみで ある.即ち,AR 環境を体験しながら,ユーザが随時実環境の一部を直接コンテンツとし て取り込んだり,それに対する振る舞いを AR 環境にいながら付加・編集していくという ようなことは,従来の AR システムでは困難であった.ユーザが AR 環境を体験しながら 自由に AR コンテンツを生成・編集するシステムを提供することで,AR システムの利便 性やエンタテインメント性の向上が期待できる.例えば,実世界の物体表面に沿ってバー チャルな注釈を書き込む,生成した CG キャラクタが実世界の物体を避けながら歩き回る, 実物体の色や形を変化させたりコピーや削除を行う,といった様々な利用が期待できる. しかしこれらの機能の実現するには実環境を三次元モデルとして復元し,計算機によって 制御可能なものとしなければならない.また,コンテンツの動作の記述も判りやすいもの でなくてはならない.最も重要な課題はこれらを統合し一般的な利用を可能にするユーザ インタフェースである.ユーザインタフェースは AR 環境の編集を楽しめるシステムにす るためにインタラクティブなシステムとして実現する必要がある. そこで本研究では,実環境の三次元モデルを AR 環境に居ながら実時間で簡易に製作・操 作する,AR ジオラマシステムを提案する.本システムは実環境の三次元形状復元とバー チャル環境内での動作記述を統一したインタフェースで提供する.ユーザからの入力はス トローク入力とし,復元したい物体の特徴点を囲むことで特徴点を抽出する.AR システ ムとしてのカメラ位置推定や,三次元形状復元のための特徴点追跡には Parallel Tracking And Maping (PTAM) を用いる.また,バーチャル空間内の物理シミュレーションには Open Dynamics Engine (ODE) を用いる.抽出された特徴点群からドロネー三角形分割 によってポリゴンメッシュを作成し,三次元形状を復元する.各ポリゴンには対応する カメラ映像を直接テクスチャとして貼り付け,視点が変わった場合のテクスチャの変化に よって正しくないポリゴンを削除する.実装の結果,物体の三次元形状復元と,復元した 1 物体の動作の記述を行うことができた.しかし,違和感なく操作を行うためにはモデルの 精度が不十分であることが判明した. 主な用語 AR,拡張現実感,3 次元復元,オーサリング,PTAM,物理エンジン,ストローク,単眼 カメラ i 目次 1 はじめに 1 2 関連研究 3 2.1 三次元モデル復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 AR 環境作成支援 2.2 3 5 AR ジオラマシステムの設計 9 3.1 システムの要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1.1 システムへの入力の検討 . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1.2 AR 環境の検討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AR ジオラマシステムの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.1 インタフェースモジュール . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.2 バーチャル環境生成モジュール . . . . . . . . . . . . . . . . . . . . 12 システムの実装 4.1 15 PTAM による自己位置姿勢推定と特徴点群の生成 . . . . . . . . . . . . . . 15 4.1.1 システムの全体像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.2 自己位置姿勢の推定 . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.3 特徴点追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.1.4 特徴点の三次元位置復元 . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 インタフェースモジュールの実装 . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.1 ストロークの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 バーチャル環境生成モジュールの実装 5 . . . . . . . . . . . . . . . . . . . . 19 4.3.1 ステージの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.2 バーチャル物体の生成 . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3.3 物体の移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 動作実験 25 5.1 ストロークの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2 ステージの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.3 バーチャル物体の復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4 バーチャル物体の配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6 おわりに 32 参考文献 34 ii 図目次 1 Brown らのシステム [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 VideoTrace[4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 不殿らのシステム [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 ProFORMA[6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 Motion Doodles[7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 Lee らのシステム [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 Harold [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 In-Place 3d sketching [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 Povovic らのシステム [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 10 システム構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 バーチャル物体の生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 12 バーチャル物体の配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 ステージの描画例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 PTAM [14] 15 FAST 特徴量 [16] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 16 ストローク平面の定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 17 中継点の決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 18 ステージの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 19 バーチャル物体の復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 20 ストロークの描画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 21 ステージの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 22 バーチャル物体の復元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 23 別視点から見たバーチャル物体の統合 24 バーチャル物体の配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 iii . . . . . . . . . . . . . . . . . . . . 30 1 はじめに 拡張現実感 (AR, Augmented Reality) と呼ばれる,現実空間に対して計算機情報を重畳 表示しユーザを支援する技術が身近なものとなり始めている.身近な例として家庭用ゲー ム,THE EYE OF THE JUDGEMENT [1] がある.これは,実物のトレーディングカー ドをカメラで撮影すると,そのカードのパタンが認識されて,対応する 3D キャラクタが その上に重畳表示されるものである.このような,カメラで平面上のパタン(マーカ)を 認識して 3D の物体を重畳表示するような AR は,近年盛んに利用されている.このよう に一般に AR 技術が普及しつつあるのは,加藤らによる ARToolKit[12] などの扱い易いラ イブラリの登場によるところも大きい.また,近年では自然特徴点追跡によりマーカを用 いない AR も数多く開発されており,PTAM[14] などのライブラリが公開されている. しかしながら,多くの AR システムは予め設定された作業環境で予め用意されたコン テンツを再生するのみである.即ち,AR 環境を体験しながら,ユーザが随時実環境の一 部を直接コンテンツとして取り込んだり,それに対する振る舞いを AR 環境にいながら付 加・編集していくというようなことは,従来の AR システムでは困難であった. このような AR システムの実現が難しい原因としては,まず実環境から実物体を復元し た三次元形状モデル(以下,単にモデル)を生成することが容易ではないという点が挙げ られる.特に実物体の観測に基づくモデル生成では,一般に複雑な操作や特殊なシステム が必要である [2].この問題を解決するために,インタラクティブな三次元形状復元の試 みがなされている [3] が,研究段階でありモデル再生における ARToolKit のように広く一 般的に利用され得る段階ではない. 一般的に利用され得る AR オーサリングシステムの開発によって,AR システムの利便 性やエンタテインメント性の向上が期待できる.例えば,実世界の物体表面に沿ってバー チャルな注釈を書き込む,生成した CG キャラクタが実世界の物体を避けながら歩き回る, 実物体の色や形を変化させたりコピーや削除を行う,といった様々な利用が期待できる. 本研究ではこのようなシステムを AR ジオラマシステムと呼び,その実現を目的とする. AR ジオラマシステムは AR 環境を編集する単なる手段ではなく,その編集する過程を 楽しむものである.環境に自分の意図する物体を生み出すことや,対象を移動させること で自身の望む空間を作成し,環境に対する没入感がより強く感じられると考える. しかし,AR ジオラマシステムを実現するには,解決しなくてはならない課題がある. 特に重要な課題は実環境の CG モデル化とモデルの動作記述である.一般的な利用のため には特殊なデバイスを用いずにこれらの課題を解決する必要がある.また,最も重要な課 題はこれらを統合し一般的な利用を可能にするユーザインタフェースである.ユーザイン タフェースは AR 環境の編集を楽しめるシステムにするためにインタラクティブなシステ ムとして実現する必要がある. 本稿では,上述の問題を解決する,単眼カメラとペン入力を用いた AR ジオラマシステ 1 ムを提案する.システムは,追跡した自然特徴点群から得たポリゴンに適切な入力画像を テクスチャマップすることで実物体の CG モデルを生成する.この際,実物体を背景から 分離しモデルを簡易に生成するために,ストローク入力によるインタラクションを導入す る.そして生成したモデルをジオラマとして,実環境中に配置するモデルには物理エンジ ンを利用して実環境に近い挙動を実現する.以下 2 節では実環境を三次元モデルとして復 元する先行研究と,AR 環境の作成を支援する先行研究について,3 節では本システムの 設計方針について述べる.4 節では試作システムの実装方法について述べる.5 節では本 研究のまとめと今後の課題について述べる. 2 関連研究 2 AR ジオラマは実環境からモデルを復元する機能と,モデルを AR 環境に配置する機能 をストローク入力によるインタフェースで統合したものである.そこで本節では実環境か らインタラクティブな操作で三次元モデルを復元するシステムと,AR 環境の作成を支援 する研究を紹介する. 2.1 三次元モデル復元 本節ではユーザによるインタラクティブな操作による実物体の三次元形状復元手法につ いて述べる. Brown らのシステム [3] は復元対象の輪郭線をユーザになぞらせる.そしてその輪郭 線とカメラ画像からワイヤフレーム形式のモデルを生成する.図 1 はシステムを実行する 様子である.図 1 左は輪郭線を入力する様子,図 1 中央は復元対象を追跡する様子,図 1 右は復元したモデルを表示する様子である. 輪郭線は復元対象の位置推定とモデルの復元の効率化に役立つ.輪郭線としてユーザか らの入力を用いるのはカメラ画像から復元対象の輪郭線のみを抽出するコストを避ける ためである.モデルの位置推定の手法として一般的な点の追跡ではなく,線分の追跡を適 用している.計算時間がより多く必要となるが,頑強性で優れるためである.計算時間の 増加は,抽出をユーザに行わせることにより補っている.本システムの制約はモデルを撮 影するカメラがロボットに取り付けられている必要があることである.これはカメラの位 置と傾きをロボットから得るためである. Hengel らの VideoTrace[4] は動画像から三次元モデルを復元する.図 2 は復元の様 子を左から右に並べたものである.図 2(a) はユーザに提示される画像である.その画像 に対してユーザは図 2(b) のように復元対象の輪郭をスケッチする.その情報を基として 図 2(c) のようにモデルが復元される.図 2(d) は復元されたモデルを実物の隣に表示した ものである. 図 1: Brown らのシステム [3] 3 図 2: VideoTrace[4] 図 3: 不殿らのシステム [5] 本システムはユーザによるインタラクティブな操作による復元を実現している.動画中 のどの時点の画像にも復元スケッチを加えることが可能である.そしてその際には画像中 に補助線が示される.補助線とは復元したモデルをその時点でのカメラ位置から投影し たものである.これにより 2 回目以降のスケッチがより容易で正確なものとなる.そのス ケッチを基にしてまたシステムはモデルの復元を行い,スケッチを受け付ける.こうして 段階的にモデルを実物に近いものとしていく.ただし復元に利用される動画には前処理と してカメラパラメータと各フレーム毎のカメラ位置の推定が必要である.本システムでは カメラ画像から特徴点を抽出し,その追跡を行うことでこれを実現している. 不殿らのシステム [5] はハンドヘルドカメラを用いてユーザに復元対象の周囲を撮影さ せることで三次元モデルを復元する.図 3 はシステムの動作時の画面例である.カメラの 移動が必要な方向をユーザに逐次指示する.そして現時点で生成したモデルは常に提示す 4 図 4: ProFORMA[6] る.そのためユーザは現在必要な操作と,その結果起こることを容易に把握することがで きる. このシステムでは,対象とする物体としてユーザが自由に移動できるものを想定してい る.復元対象をマーカで囲まれた空間に配置する必要があるためである.カメラの位置, 向き方向の推定にマーカを利用している.さらに背景と復元対象の分離のために,背景が 既知である必要がある. Pan らの ProFORMA[6] は固定カメラの前で復元対象を回転させた動画像から三次 元モデルを復元する.これも復元に必要なモデルの回転方向をシステムが逐次指示する. 図 4 はシステムがモデルを復元する手順を示したものである.カメラ画像から特徴点を 抽出し,その移動を追跡する.そこから復元対象が剛体であるという仮定より特徴点の三 次元位置を推定する.位置の推定された三次元の特徴点群から,それぞれをつなぐ面を推定 する.最後にカメラ画像から得たテクスチャを面に貼り,モデルを復元する.ProFORMA はカメラが固定されているならば環境を選ばない.利用するデバイスがカメラのみである ことを加えて考えると,手軽に物体の 3 次元復元が可能である. 2.2 AR 環境作成支援 本節では AR 環境作成を支援する手法について述べる.本節で述べる手法は AR ジオ ラマシステムの様に実環境を対象としていないが,物体の生成や動作を記述する手法で ある. Thorne らの motion doodle[7] は,バーチャルリアリティ(VR) 空間内を移動するキャ ラクタアニメーションを容易に作成するシステムである.本システムは二つの機能からな る.一つはキャラクタの生成.もう一つは移動するアニメーションの作成である. キャラクタの生成は,ユーザが描いたキャラクタのイラストから行う.ユーザの描いた イラストから関節部分を推定する.生成されるキャラクタとしては,頭,体,腕,脚など 5 図 5: Motion Doodles[7] 図 6: Lee らのシステム [8] といった体の各部分が楕円体で構成されているようなものを想定している.そして各部分 のパーツを繋ぐ点を関節とみなし,運動するキャラクタを生成する. 移動のアニメーションは,図 5 のように動きの線をユーザが環境中に描くことで指示さ れる.動きの線は,移動経路とその動きの二つを直感的に表わしたものとなっている.例 えば 2 点間の中間に輪を持つ線分は,2 点間を宙返りしての移動と判定する.システムは ユーザが描いた動きの線を単位ごとに分轄し,その地点とキャラクタの動きを生成して繋 ぎ合わせる.また,キャラクタが運動する環境があらかじめ定義されているならば,運動 するキャラクタを容易に生成することが可能である. Lee らのシステム [8] は,ユーザが直接触れることで操作する AR 空間の編集支援を行 う.本システムでは AR 環境の編集を図 6 のようなマーカを用いて行う.例えばマーカを ボタンとして利用することで配置するモデルを選択する,直接マーカを配置することで位 6 図 7: Harold [9] 置決定を行うなどである. 本システムは編集支援によって操作時に近い形での編集を実現しているため,効果的か つ容易に AR 空間を作成可能である.ただし,実物体をインタフェースとしてのみ利用し ている.実環境に依存して配置するモデルを選択することはできない.また,配置するモ デルは事前に用意する必要がある. Cohen らの Harold[9] は絵のみで構成される世界を作成するシステムである.例えば 図 7 のように地表に絵を描くと,その時点でのユーザ視点から推定される形に地表が変形 される.地表以外に描かれた絵は,ビルボードとして生成される.この手法で作成される 世界は実環境をそのまま表現するものではない.だが全てが描画されたもので構成されて いるために統一感のある世界となる.広大で情報量の多い世界を手軽に作成可能であるこ とは描画を基本としたシステムとしたことの利点である. Bergig らのシステム [10] は図 8 左のような紙の上に描かれたスケッチから, 図 8 右の ような 3 次元のシーンを生成する.スケッチには摩擦係数や質量などの物理係数を記すこ とができる.その場合,シーンはその物理係数に従って転がりや滑り落ちなどの運動を行 う.システムは紙に描かれているスケッチをカメラで撮影することにより判断してシーン を生成する. Povovic ら [11] はインタラクティブな操作で剛体の動きを記述する手法を提案してい る.本手法では,剛体の動きをユーザの入力した軌道と物理シミュレーションに基づいて 生成する.図 9 は,地面で跳ねた鋏が翻ってコート掛けに掛かるアニメーションを生成し ている様子である.本手法によるアニメーションは実時間でインタラクティブに生成さ れる. 7 図 8: In-Place 3d sketching [10] 図 9: Povovic らのシステム [11] 8 AR ジオラマシステムの設計 3 本論文で提案する AR ジオラマシステムの目的は簡単なインタフェースでユーザの身近 な環境を AR 環境として構築・操作する可能にすることである.本節では AR ジオラマシ ステムで要求,または制約される条件の検討とそれらを踏まえたシステムの設計について 述べる.以降,実環境に重畳されるシステム内部の環境をバーチャル環境,バーチャル環 境内の物体をバーチャル物体と呼ぶ.バーチャル物体は実環境の観測を元に,AR ジオラ マシステム内に生成される. システムの要件 3.1 本節では AR ジオラマシステムが利用される状況と,ユーザに提供する AR 環境につい て述べる.そしてそれらを実装するために必要となる機能について述べる. 3.1.1 システムへの入力の検討 AR ジオラマシステムは,ユーザの身近な環境で簡単に利用されることを想定している. そのためシステムで入力に用いるデバイスには制限があり,ユーザインタフェースには満 たすべき条件がある. ユーザインタフェースは • 操作が容易であること • インタラクティブに操作できること の二つの条件を満たすものである必要がある.容易な操作は,本システムの目的である, AR コンテンツを編集する楽しさを提供するために重要である.インタラクティブな操作 も実世界で行う操作と近い感覚でのバーチャル物体の操作を提供するために必要である. デバイスに対する制限としては, • 特殊なデバイスを用いないこと • マーカレスで動作すること が挙げられる. 特殊なデバイスとは,例えばレーザレンジセンサなどのことである.レーザレンジセン サは,デバイスからレーザを発射して,デバイスに実環境の物体に反射して帰ってくるま での時間から物体までの距離を計測するデバイスである.これを用いれば例えば松村らの 手法 [13] などのように実環境を復元することができる.しかしこれらのデバイスはまだ 一般に普及しておらず,多くの人にとって利用することが困難である.よって本システム 9 はこれら特殊なデバイスを用いないものとする.マーカレスで動作することとは,例えば ARToolKit[12] などのように実環境にマーカを配置して利用するようなことをしないとい うことである.マーカレスで動作することを要求する理由は,より多くの環境で利用でき る,簡単に利用できるようにするためである.ここで,実環境とはユーザが存在する環境 のことである.この環境中にある物体を三次元復元してバーチャル物体を生成する. 3.1.2 AR 環境の検討 AR ジオラマシステムでは,実環境から幾何情報を取得してバーチャル環境を作成する 必要がある.バーチャル環境には形状を復元した物体等が配置される.実環境との間で位 置合わせが行われており,バーチャル環境中の一点と実環境の一点は一対一に対応する. 本システムが提供する AR ジオラマとは,この対応に基づき実環境とバーチャル環境を合 成したものである.このバーチャル環境に存在するバーチャル物体は自由にユーザが操 作することが可能であり,物体の生成や配置は AR ジオラマ上で行われる.理想としては 実環境のあらゆる幾何情報を取り込んだものであるが,現実的ではない.そこで本システ ムでの取得対象は, • 物体が存在する平面 • 実環境内の剛体 とする.すなわち,バーチャル環境はこれらによって構成される. 実環境の幾何形状として最低限必要なのは物体を配置するための平面である.本システ ムでは物体を配置する平面を実環境から取得する.バーチャル環境に配置するバーチャル 物体は,実環境から三次元形状復元により生成する.その復元対象としては,形が変化し ない剛体を想定する.また,モデルと平面の間には接触判定を持たせ,実環境とバーチャ ル物体のインタラクションを実現する. 3.2 AR ジオラマシステムの構成 3.1 節での検討をふまえて,本システムへの入力は,実環境を観測するデバイスはカメ ラからの映像のみとする.カメラは手に入れやすいデバイスであり持ち運びやすく,本シ ステムに適している.入力をマーカレスなカメラ映像に限定するため,マーカや他のセン サを用いずにカメラの位置と実環境の幾何形状を推定する必要がある.本システムは一般 に Simultaneously Localization And Mapping (SLAM) と呼ばれる手法を用いる.SLAM はカメラ位置と特徴点群等の位置の推定を同時に行う手法である.SLAM により得られ たカメラの位置推定結果は,実環境に重畳しての復元したモデルの表示に利用される. ユーザからの入力はマウスやタッチペンによるストローク入力とする.ストローク入力 はモデルの移動や復元対象の指定を指示するために利用する.バーチャル物体を移動させ 10 図 10: システム構成図 るという操作を,直感的に行うことが可能であるという考えと,キーボードなどによる入 力に比べて必要とする入力デバイスが小型であり,携帯性に優れるという点からである. AR ジオラマシステム内部でのバーチャル物体生成は SLAM で得られる特徴点群を元 に行うものとする.SLAM だけではバーチャル物体の生成は行えないのでストローク入 力による特徴点の抽出を行う.また,生成されたバーチャル物体の動作は物理モデルを利 用して生成する.動作の指定もストローク入力によって行う. 上記のことから,AR ジオラマシステムはユーザからの入力とデバイスからの入力を受 けるインタフェースモジュールと,デバイスとユーザからの入力を元に AR ジオラマを生 成する,ジオラマ生成モジュールに大別される.AR ジオラマシステムの構成を図 10 に 示す.本節では 3.1 節で検討した要件をふまえた各モジュールについて述べる. 3.2.1 インタフェースモジュール システムへの入力 インタフェースモジュールではストローク入力を認識し,物体が置か れる平面,実環境から形状復元される物体の設定を行う.また,物体の配置や動きの指定 もユーザからのストローク入力によって行う.以降,ストローク入力に対応する,ステー ジの設定,バーチャル物体の生成,バーチャル物体の配置について述べる. ステージの設定 ステージとは,AR ジオラマを編集する際の基本となる平面である.バー チャル物体の移動や配置はこのステージを基準に行われる.本システムは最初に,ステー ジの設定を行うようユーザに要求する.これは,バーチャル物体の復元や配置にステージ は必須であるためである.ステージの設定はストローク入力によって閉曲線を描くことで 行う.ユーザが基準としたい平面上の特徴点群を閉曲線で囲むと,システムが閉曲線とカ 11 メラ画像を用いて平面を抽出する.そして平面上にある正方形と法線を表示する. モデルの生成 復元対象の指示は,対象を閉曲線で囲むことで行われる.システムは囲ま れた内部の画像からバーチャル物体を復元する.そして復元されたバーチャル物体を実環 境に重ねて表示する. 一度の指定で復元可能なのはユーザが指定した時点でのカメラから見た部分のみである ため,一度の指定で目標とするバーチャル物体を生成することは困難である.そのため本 システムではカメラを動かして復元を行なった結果を統合することでより精細なバーチャ ル物体を生成する.これにより,どの視点からでも表示可能なバーチャル物体を生成する ことができる.十分なバーチャル物体が復元されたと,ユーザが判断したならばファイル に保存する.以降はそのバーチャル物体を配置することが可能となる. バーチャル物体の配置 バーチャル物体の配置は回転と平行移動の二段階で行う.ファイ ルを選択するとステージにバーチャル物体が配置される.それに対して回転と平行移動を 行う.回転はバーチャル物体を中心とするのような円弧を描くことで指定する.円弧の始 点から終点に向かう分だけその場で回転する.回転の軸はステージの法線である.平行移 動はのバーチャル物体から配置したい地点までの経路を描くことで実現する.その経路を 書き終えた時,バーチャル物体はその経路を辿り平行移動する. 3.2.2 バーチャル環境生成モジュール AR ジオラマではカメラが撮影している実環境にバーチャル環境が重畳して表示されて いる.バーチャル環境で描画されるものは次の三種類がある. • 特徴点 システムがカメラ画像から抽出する,追跡に適した点である.この特徴点 を利用して環境と実環境の位置合わせが行われる.システムが自動で抽出し表示す るものであり,ユーザが操作することはできない.しかしバーチャル物体の三次元 形状復元を行う際に,ユーザの補助となる. • バーチャル物体 バーチャル物体はユーザのストローク入力に基づいて生成される. バーチャル物体の生成処理の流れを図 11 に示す.本システムでは実環境から三次 元復元したバーチャル物体を AR ジオラマ内に自由に配置することが可能である. ユーザのストローク入力に基づいてバーチャル物体は回転したり,バーチャル環境 内を移動することができる.システム内のバーチャル物体の回転・移動の処理を図 12 に示す.また,それぞれが物理モデルによる接触判定を持ち,バーチャル物体同 士は重なることはない. 12 図 11: バーチャル物体の生成 図 12: バーチャル物体の配置 • ステージ ステージは無限の広さを持つ平面である基準面に起伏を付けたものとなっ ている.ステージはユーザが実環境中の物体をステージと指定したものから生成さ れる.指定されるものとしては,机や床面などを想定している.システムは指定さ れた対象から平面を検出し,それを基準面とする. 図 13 はステージを描画したものの例である.同じ一点を中心とした五つの白線の 正方形は基準面上に描画されているものである.赤い直線は基準面の法線を表わし ている.これらの図形はユーザに基準面の位置や傾きを提示するためのものであり, ステージそのものを図示したものではない.例えば,正方形は有限の広さであるが 基準面は無限の広さを持つ. 13 図 13: ステージの描画例 14 システムの実装 4 本節では提案するシステムの実装について述べる.本システムでは,カメラの位置推 定と特徴点マップの生成を,Klein らの Parallel Tracking And Mapping (PTAM) [14] に よって行う.PTAM はシステムの他の部分とは独立に動作する.物体の動きや接触判定 などを計算する,物理シミュレーションには,物理エンジン Open Dynamics Engine [15] を用いる. 4.1 PTAM による自己位置姿勢推定と特徴点群の生成 本節では PTAM の詳細について述べる.PTAM は,単眼カメラによって AR を実現す るための自己位置姿勢推定と特徴点の三次元位置再構築をリアルタイムで行うことを可 能とした実装である.図 14 に PTAM によって得られた特徴点群がカメラ画像に重畳され ている様子を示す.本節では,この PTAM における自己位置姿勢推定や三次元形状再構 築のために用いられる手法について述べる. 4.1.1 システムの全体像 PTAM では,単眼カメラによる特徴点追跡とステレオ法によって三次元形状再構築を 行い地図を拡大する処理と,特徴点の三次元地図を利用して現在観測できる特徴点の分布 から自己位置姿勢推定を行う処理をそれぞれ別スレッドに分け,処理負担の分散を図るこ とでリアルタイム性を実現している. このうち,自己位置姿勢推定に関しては,カメラによって特徴点の抽出・追跡を行い, 三次元地図内の特徴点をカメラによる撮影画像上に投影した時の誤差を最小化して変換 行列を求めることにより行う. また,地図の生成に関しては,三次元再構築にステレオ法が用いられ,負荷が低くなっ たときにバンドル調整を行って全体の精度を向上させる.このとき,カメラから得た画像 列の中でいくつかフレームを選び(キーフレーム),それらに関してのみステレオ法を適 用して地図を生成することで計算量と誤差の積算の削減を図っている. 4.1.2 自己位置姿勢の推定 本節では,PTAM で行われる自己位置姿勢推定について述べる.カメラを用いた自己 位置姿勢推定を行うためには,特徴点の抽出と追跡を行う必要がある.特徴点の追跡と は,フレーム間での特徴点の対応を調べることであり,自己位置姿勢を求めるアルゴリズ ムを適用するために必要となる. 特徴点の対応がとれると,初期値として推測される自己位置姿勢に応じて地図上の特徴 点をカメラ画像上へ再投影し,ロバスト推定 (robust estimation) を用いた評価関数の誤差 15 図 14: PTAM [14] を最小化するように再投影と評価を繰り返すことで自己位置姿勢を求めることができる. PTAM では,自己位置姿勢推定は計測フレーム毎に行われ,その間隔がカメラの自己運 動に比較して十分小さいため,前フレームまでで推定された自己位置姿勢データからカメ ラの運動モデルを適用し,その予測結果を初期値として適用することで反復法による自己 位置姿勢推定の収束性を高めている. なお,PTAM ではリアルタイム性を向上させる試みとして,まず解像度を荒くした画 像上で特徴点追跡と自己位置姿勢推定を行ってから,解像度の高いものの初期値にその自 己位置姿勢を適用している.これは,解像度が荒い場合には高周波ノイズをカットできる ことや,抽出される特徴点の数が減ったり,ピクセル単位での移動量が増えるために特徴 点探索の範囲が狭まったりして計算量を削減できるなどといった点で有効な手法である. 特徴点追跡の詳細について述べる. 16 図 15: FAST 特徴量 [16] 4.1.3 特徴点追跡 特徴点の追跡を行うために,まず特徴点の抽出を行う必要がある.PTAM では,この 特徴点抽出に FAST(Features from Accelerated Segment Test)[16] 特徴量が用いられてお り,これは画像中の任意の場所において,中心となるピクセルの輝度値に対し,円状にみ た周囲のピクセルの輝度値がある程度連続して閾値以上高いか低い場合に特徴点とみな すものである (図 15). 特徴点追跡では視点の変化に対応するため,三次元地図上の特徴点画像に対し予想され るカメラ運動のアフィン変換を適用して,投影される特徴点画像の形状・位置を変化させ る.その上で,推測された画像平面上の位置からある限られた半径内の範囲でのみ FAST 特徴点の探索を行い,見つかった特徴点の中で輝度構成が閾値を越えて最も似通った点 を,対応する特徴点とみなすことで追跡を行う. 4.1.4 特徴点の三次元位置復元 本節では,PTAM で行われる特徴点の三次元位置復元について述べる.PTAM では, 自己位置姿勢推定に使うための特徴点の三次元位置を記録している三次元地図を生成す る必要がある.カメラによる追跡を行うためには,まず初期化を行って最小限の三次元 地図を生成してやる必要がある.この初期化には,後述する RANSAC (Random Sample Consensus) [17] アルゴリズムが利用される.初期化が行われると,以後は各キーフレー ムが追加されるごとに,近すぎず遠すぎない距離にある他のキーフレームとでステレオ法 を適用し,新たな特徴点を地図に追加する.このとき,キーフレームはそれぞれ撮影され た時点での自己位置姿勢を持っているため,エピポーラ線上での効率的な特徴点探索が可 能となる.以上の手順で地図の生成がなされるが,全体の精度を向上させるため,処理負 17 担が少ないときにバンドル調整を行う.以下で,各手順について解説を行う. RANSAC(Random Sample Consensus) RANSAC はランダムサンプリングに基づ くロバストなモデルの生成アルゴリズムである.まず,仮説となる式(線形関数等)のモ デルが存在し,その式に基づいてデータは分布するものとする.この時,ランダムでサン プリングしたデータを式に適用した時,これを仮説と呼ぶとすると,この仮説を残りの データに適用した際の誤差を調べることができる.仮説を構成する元となるデータにノイ ズがあれば,仮説にも影響し,全体に適用した際の誤差が大きくなる.こういった場合を 閾値などで判断すれば,仮説として使用したデータを除去することができる. 以上の手順で,ノイズの大きなものは仮説の適用結果によって除去され,何度か繰り返 すことで誤差が少ない仮説を得ることができる. 地図の初期化 既に 4.1.2 節で述べたような方法で自己位置姿勢推定を行うためには,ま ず特徴点の三次元地図の初期化を行う必要がある.PTAM における地図の初期化では,ホ モグラフィと RANSAC を用いて実現される. 具体的には,ユーザないしはプログラムが任意の 2 フレームを選び,そのフレーム間で 行われる特徴点追跡によって特徴点の対応を入力に取るとき,特徴点対応の中から任意の 4 点を選択することでホモグラフィを求めることができ,各フレームで座標関係を求める ことが可能である.しかし観測する特徴点の三次元位置によって任意の 4 点がなす面は平 面とは限らないため,このホモグラフィを作る任意の 4 点を仮定とし,残りの特徴点対応 の再投影誤差をスコアにとる RANSAC により各フレームでの自己位置姿勢を求めること ができる.自己位置姿勢が求まった後は特徴点抽出を改めて行い,エピポーラ探索とステ レオ法を用いて初期の地図に含まれる三次元特徴点を追加する. 4.2 インタフェースモジュールの実装 インタフェースモジュールでは,タッチペンやマウスなどによるユーザ入力からのスト ロークの生成と認識を行う. 4.2.1 ストロークの生成 本システムではユーザのストローク入力から三次元空間内の平面中に折れ線を生成す る.この折れ線をストロークと呼び,ストロークが生成される平面をストローク平面と呼 ぶ.ストロークはストローク平面上の複数の中継点を線分で繋いだものである.本節では このストロークの生成について述べる. ストローク生成の最初にストローク平面の設定を行う.ステージが存在している場合は ステージをストローク平面として利用する.ステージがない場合はストローク平面を設定 18 図 16: ストローク平面の定義 する. 図 16 にストローク平面の設定の手順を示す.設定には法線と平面上の一点が必要 である.法線はカメラ平面の法線を利用する.図 16 左の様に,平面上の一点はクリック した点とカメラ位置を結ぶ直線上に定める.直線上のどの点を平面上の一点とするかは ユーザからの指示は奥行き情報がないために定められない.本システムはクリックした点 と画像平面上で最も近い特徴点の奥行情報が一致していると仮定する.そしてカメラ位置 とクリックした点の直線上で最近傍点の奥行分カメラ位置から離れた位置をストローク平 面上の一点として設定する. ユーザがストロークの描画を続けている間は,毎フレーム中継点を生成して追加する. 中継点とはカメラ位置とカーソル位置の延長線とストローク平面の交点である.図 17 に 中継点の求め方を示す. 4.3 4.3.1 バーチャル環境生成モジュールの実装 ステージの生成 特徴点の抽出 特徴点マップから復元対象を構成する特徴点を抽出する.ユーザにスト ロークで復元対象を囲ませ,その内側の点群を選び出す. ステンシルバッファを用いてストローク内部にある点群を取得する.まずステンシル バッファを初期化したのちストロークの内部を一定の値で塗りつぶす.次に特徴点をカメ 19 図 17: 中継点の決定 ラ平面上に投影し,その位置を取得する.そして特徴点の位置のステンシルバッファの値 と,ストロークの内部を塗りつぶした値とを比較する.二つが等しいならば特徴点をスト ローク内部にあるものと判別する.すべての特徴点に対して処理を行いストロークの内部 にある全ての点を取得する. ステージの設定 ステージはユーザが実環境中の対象をストロークにより囲むことで指 示される.囲むものとしては平面上のテクスチャなどを想定している. システムはユーザの描画したストロークからバーチャル物体を生成する.バーチャル物 体から平面を抽出し,ステージを定義する.一度バーチャル物体を経由するのは特徴点の 抽出や中心点の算出など共通する処理が多くあるためである. 三次元空間中の平面は平面内の任意の点と法線ベクトルによって表現されるステージを 表現するステージ平面中の点は点群の中心点とする.法線ベクトルは後述する主成分分析 により得ることが出来る.抽出された点群には外れ値が含まれるため,法線ベクトルが正 確に推定できない場合がある.そのため主成分分解と後述する外れ値除去を外れ値が発生 しなくなるまで繰り返す. 主成分分析 点群の位置を変数として主成分分析を行う.点群は平面上にあるという仮定 より,第三主成分が法線ベクトルと見なすことができる.結果,点群を囲む直方体の三軸 が得られる. 20 図 18: ステージの設定 実装には GNU Octave[20] を用いた.GNU Octave は GNU ライセンスで管理される数 値計算ライブラリである. 外れ値の除去 主成分分析のみにより求めた法線がユーザの意図する向きとなることは 少ない.これは外れ値の影響が大きいためである.主成分分析は大きな外れ値に影響を受 けやすい.また特徴点の三次元位置推定に実環境との誤差が生じることは避けられない. ゆえに外れ値の除去が必要となる. ステージの定義に用いる特徴点としてはほぼ同一平面上に存在するものが与えられると 想定している.その中で外れ値となる特徴点とは推定される平面との距離が著しく大きな もののことである. 外れ値の除去の手法としてスミルノフ・グラプス検定を用いる.スミルノフ・グラプス 検定ではデータ中最大のものが外れ値であるか否かを検定する.検定には以下の式を用 いる. √ ¯ Ti = |Xi − X|/ U (1) ¯ はデータの平均,U はデータの不偏分散である.Ti が Xi は検定を行う対象のデータ,X 優位点 t 以上ならば Xi は外れ値であると,t より小ければ外れ値ではないと判定される. 本システムでは特徴点と推定された平面との距離を標本とするスミルノフ・グラブス検 定を行う.有意水準は 5%とした.そのとき優位点は 2.557 である. 距離が最大のものから順に検定し,外れ値ではないと判定されるまで続ける.外れ値と 判定された点は,平面の推定に利用する特徴点群から外される.外れ値が発生しなくなる まで外れ値除去を行い,法線ベクトルを推定する. 物理特性の設定 ステージはシステム全体で一つしか定義されない.さらにバーチャル物 体は全てステージの上に配置される.そこでステージがシステムの物理特性を管理するも 21 図 19: バーチャル物体の復元 のとする.必要となるのはシステム全体に加わる重力,及び衝突時の反発係数と摩擦係数 である. 重力は地球上と同じであると定義した.方向はステージ法線の負の方向である.大きさ は g = 9.8 とした. 反発係数と摩擦係数を定めるためには,バーチャル物体とステージの材質を定める必要 がある.ここでは材質をコンクリートであると定義した.ジオラマの素材として最も使わ れやすいのが都市であると想定したためである.よって反発係数を 0.3,摩擦係数を 0.6 と 定義した. 4.3.2 バーチャル物体の生成 図 19 はバーチャル物体の復元の概要である.バーチャル物体の復元は特徴点マップと ユーザの描画したストロークから行う. 特徴点を利用するのは,物体の輪郭部分,特にコーナ部分には特徴点が多く存在すると 考えるためである.復元対象の輪郭の全てのコーナの三次元位置が取得すれば,バーチャ ル物体の三次元形状を復元することが可能である. 特徴点の抽出 復元対象の物体に所属している特徴点の抽出はストローク入力によって 行う.カメラが撮影した画像中でストロークの内部に描画される特徴点は復元対象に所属 していると考える.そのため特徴点の抽出は,ユーザの指示に全て依存するものとする. 具体的にはユーザが復元対象の物体をペン入力で囲むことによって行う. カメラ画像中から特徴点を抽出するという特性から,カメラが過去に撮影した方向から 22 発見できる特徴点しか抽出できない.そのため,位置推定精度の良い特徴点を多数得るた めには,多方向から対象を撮影する必要がある. そのために一つのバーチャル物体に対して特徴点の抽出と形状復元を複数回行うことが できるものとする.それぞれの復元ではカメラ位置は変えて復元することができる.シス テムはそれらを同一のバーチャル物体と見なし統合する.ユーザの望む精度のバーチャル 物体となったならば,復元を終了してバーチャル物体を生成する. バーチャル物体の復元 抽出された特徴点群からバーチャル物体を復元する.それには 二つの処理が必要である.一つは点群からのメッシュ生成,もう一つはメッシュにテクス チャを貼り付けることである. メッシュの生成はドロネー三角形分割によって行う.ドロネー三角形分割は,ボロノイ 図の隣接する領域同士を全て結ぶことで生成される.ボロノイ図は最も近い点がどれか により空間を分割したものである.ドロネー三角形分割により,点群から全ての点を利用 し,かつ重なりのない三角形の集合が生成される. 実装には GTS Library[18] を利用した.特徴点のカメラ画像中での位置を利用した,二 次元空間内でドロネー三角形分割を行う.二次元空間内で分割を行う理由は,推定してい る三次元座標よりもカメラ画像が正確であるためである.こうして二次元空間で生成した 面から三次元空間の面を生成する.カメラ画像と三次元座標の対応関係は特徴点に付けら れた ID により行われている. 貼り付けるテクスチャにはその時点でのカメラ画像を利用する.テクスチャ座標値に は,カメラ画像中の特徴点の座標値をそのまま用いる. バーチャル物体の統合 異なる視点から復元された二つのバーチャル物体の統合を行う. 二つのバーチャル物体は同一座標系に存在するため座標変換は必要ない.その時点での バーチャル物体の中心座標と,新たなバーチャル物体の中心座標との変位の保存のみ行 う.描画時には統合されたバーチャル物体を変位を考慮してそれぞれ描画する. 二つのバーチャル物体間で同一の三点を用いた三角形が存在するならば,新しいバー チャル物体からそれを除去する.判断はバーチャル物体が利用している特徴点の ID によ り行う. 以上のようなバーチャル物体の統合により,より正確な三次元形状を復元することがで きる.しかし特徴点マップの不正確さや,面の生成にドロネー三角形分割を利用している ため,この時点で生成されたバーチャル物体には,実際には存在しない面が含まれている 可能性がある.そこで,実際には存在しない面を判別し削除する必要がある. 各面の存在判定は,各面をその生成時とは別の視点から見たときに表示される画像と, 実際にカメラ画像から得られたその面の存在領域のテクスチャを比較することで行う.も し仮に面が完全に再現されていた場合,それらは一致するはずである.逆にその面が実際 23 には存在しない場合,それらは一致しないと考えられる.全ての面に対して比較を行い, 異なると判定した面を削除する.面の存在判定には次式を用いる. f= 1∑ |Isrc (x, y) − Idst (x, y)| S x,y (2) Isrc は面を投影したときその描画先となった画素の輝度値,Idst はカメラ画像中で同じ 座標値の画素の輝度値である.メッシュを描画した際の全ピクセルに対して式 2 で与えら れる差分値をとり,平均値をとる.この計算結果 f が一定閾値以上であるならば,その メッシュは実際には存在しないものとみなされ削除される. 物理特性の設定 バーチャル物体には物理シミュレーションで衝突判定を行うための境界 箱 (boudary box) を設定する.各軸方向にバーチャル物体の最大最小を囲む直方体を用 いる.また,バーチャル物体の統合の際には直方体の更新を行う. バーチャル物体のアーカイブ化 生成したバーチャル物体は複数個設置できることが求 められる.そのためバーチャル物体は複製可能であることが求められる.本システムでは バーチャル物体から生成した外部ファイルをアーカイブとして利用する.一度アーカイブ 化されたバーチャル物体には変更は行わない.アーカイブからバーチャル物体を読み込み 生成し,複製を実現する. アーカイブは外部テキストファイルとして持つ.その外部ファイルへの書き出し,読み 込みには boost Library[19] の serialization を用いた.これはプログラム中のインスタンス の直列化を行うものである.バーチャル物体の頂点情報,面情報,テクスチャの入出力に はこれを用いる.物理エンジン ODE に対する処理は独立して行う. 4.3.3 物体の移動 バーチャル物体の移動は 2 段階に分けて行う.回転と平行移動である.どちらもスト ロークを入力することにより指定される. 回転は平面の法線方向と等しい向きでバーチャル物体の中心を通る直線を軸として行 う.回転角をストロークから算出する.回転角はストロークの始点,終点を結ぶ線分がな す角の大きさとする. 平行移動はストロークの経路を辿る形で行われる.ストロークの始点から終点の移動と 同じぶんだけ,バーチャル物体を移動させる. 24 動作実験 5 実装したシステムが正しく動作しているかを確かめるため,システムの各機能に関して それぞれ動作実験を行った.動作実験を行ったのは以下の四つの機能である. • ストロークの生成 • ステージの生成 • バーチャル物体の生成 • バーチャル物体の配置 5.1 ストロークの生成 ストローク生成が正しく実行されるかを確認した.確認するのはストロークがバーチャ ル環境内で定義されているか,またストロークを生成する平面が正しく定義されているか である. ストロークはスクリーンの座標系ではなく,バーチャル物体と同じ座標系上に定義され る.そのためカメラが移動されても,ストロークは対応するバーチャル環境中の正しい位 置に描画されなければならない. ストロークが生成される平面の設定には二つの方法がある.一つはステージが設定され ていないときであり,生成を開始した時点でのカメラ平面と平行な面をストロークを生成 する平面と設定する.もう一つはステージが生成されているときであり,ステージの平面 上に生成されるのが正しい.それぞれの場合について動作確認を行った. その動作確認の様子を図 20 に示す.図 20(a) は描画前の状態である.この状態からス トロークの描画を開始する.この状態から,図 20(b)(c) のようにストロークを描画する. 結果,図 20(d) のようなストロークが生成される.カメラが移動したとき,ストロークは AR 環境の座標系で定義されていることが確認できる. 図 20(e)(f) は新たなストロークを生成する様子である.前回のストロークとは別の平面 上に生成がなされている. 5.2 ステージの生成 ステージの生成が正しく実行されるかを確認した.確認するのは,正しく法線が設定さ れているか,平面上の一点が正しく平面上に位置しているかである. ステージの生成はストロークにより実環境中の平面が囲まれることで実行される. ここでは,ステージと生成するための元となる実境中の平面として市松模様を利用し た.理由はステージの設定が正しいものであるかを確認しやすくするためである. 25 (a) (b) (c) (d) (e) (f) 図 20: ストロークの描画 26 (b) (a) (c) (d) 図 21: ステージの生成 ステージが生成されると,システムはその法線と平面上の四角形を描画する.描画され る法線が正しく実環境中の平面と一致するか,四角形が正しく平面上に描画されるかを確 認した. その様子を図 21 に示す.図 21(a) はステージ生成前である.この状態から平面の生成 を始める.図 21(b) の様にストロークを描き始め,図 21(c) で描き終える.図 21(d) は平 面の生成された時点での様子である.生成された平面の法線と,その平面上に存在する四 角形が表示されている. 5.3 バーチャル物体の復元 バーチャル物体の復元が正しく行われるかを確認した.確認するのは,ストロークによ り復元が指示されたとき,そのストローク内部の特徴点から復元が行われているかと,視 27 点を変えたときバーチャル物体の統合が正しくなされるかである. その結果を図 22,図 23 に示す.まずバーチャル物体の復元を行い,その次に別の視点 から復元を行っている. 図 22 は一度目にバーチャル物体を復元する様子を図示したものである.図 22(a) は復 元前の状態である.この状態から図 22(b) の様にストロークの描画を始める.そして描画 終了時の様子が図 22(c) である.結果図 22(d) のようにバーチャル物体が復元される.し かし図 22(e) が示すようにストローク内部の自然特徴点以外は復元に利用されていない. 図 23 はその状態から,別の視点からバーチャル物体を復元する様子を示したものであ る.図 23(a) はその二回目の復元が行われる前の段階のものである.この状態から,図 23(b) のようにストロークで復元の指示を開始し,図 23(c) のように完成させる.その結 果バーチャル物体の復元が行われ,以前までのバーチャル物体と統合されたのが図 23(d) である.以前までのバーチャル物体と正しく統合がなされている. 5.4 バーチャル物体の配置 バーチャル物体の配置が正しく動作するかを確認した.バーチャル物体に対して移動経 路の指示を行ったとき,バーチャル物体は経路を沿って移動するかを確認する. 図 24 はそのモデルが移動する様子を示したものである.図 24(a) は移動を開始する前 の状態である.この状態から図 24(b) のような移動経路を描画する.そのストロークをも とに図 24(c) のように移動を開始し図 24(d) で移動を停止する. 28 (a) (b) (c) (d) (e) 図 22: バーチャル物体の復元 29 (a) (b) (c) (d) 図 23: 別視点から見たバーチャル物体の統合 30 (a) (b) (c) (d) 図 24: バーチャル物体の配置 31 6 おわりに 本稿ではユーザが容易に実物体を三次元モデルとして復元し,簡単に AR 空間内で配 置や移動ができる AR ジオラマシステムを提案し,その実装を行った.本システムは実環 境の三次元形状復元とバーチャル環境内での動作記述を統一したインタフェースで提供 する.AR システムとしてのカメラ位置推定や,三次元形状復元のための特徴点追跡には PTAM を用いた.また,バーチャル空間内の物理シミュレーションには ODE を用いた. ユーザからの入力はストローク入力とし,復元したい物体の特徴点を囲むこで特徴点を抽 出する.抽出された特徴点群からドロネー三角形分割によってポリゴンメッシュを作成し, 三次元形状を復元する.各ポリゴンには対応するカメラ映像を直接テクスチャとして貼り 付け,視点が変わった場合のテクスチャの変化によって正しくないポリゴンを削除する. 実装の結果,物体の三次元形状復元と,復元した物体の動作の記述を行うことができた. しかし,違和感なく操作を行うためにはモデルの精度が不十分であることが判明した.今 後の課題としては,生成される三次元モデルの精度を向上し,AR コンテンツのオーサリ ングシステムとしての機能拡張を行うこと,モデルを配置する実環境の情報をより詳細に 取得すること,モバイル機器上での実装を行いより多くの場所で適用できるようにするこ となどが挙げられる. 32 謝辞 本研究を行うにあたり,御指導,御助言を賜りました竹村治雄教授に心から感謝の意を 表します.御助言は非常に的確で,適切であり,私を磨くためのものとなってくれました. 本研究を行うにあたり,御助言を賜りました清川清准教授に心から感謝の意を表しま す.日々の研究の方向性,必要な行動を決める助けをしていただきました. 本研究を行うにあたり,御助言を賜りました中澤篤志講師に心から感謝の意を表しま す.常に率直な意見をいただきました. 本研究を行うにあたり,御助言を賜りました間下以大助教に心から感謝の意を表しま す.真に親身に私の力となっていただきました. 本研究を行うにあたり,川口みゆき研究員に心から感謝の意を表します.快適に研究を 進めるための環境を作っていただきました. 本研究を行うにあたり,サイバーメディアセンター事務部利用者サービス掛の林由紀事 務補佐員に心から感謝の意を表します.研究生活を円滑に進めるための手続きを行ってい ただきました. 本研究を行うにあたり,ご協力,励まし,楽しみをくれた,Miranda Miranda Miguel さん,高田大輔さん,Singh Kumud Brahm さん,Christian Nitschke さん,繁田浩功く ん,竹田夏木くん,中嶋拓野くん,西川知宏くん,Anuraag Agrawal くん,河合健太郎く ん,國貞智治くん,新谷晃市くん,二宮啓くん,沼口直紀くん,宮本直幸くん,森弘樹く ん,大西崇之くん,藤原由来くん,森島茂貴くん,すでに卒業された,四宮龍さん,平亮 介さん,髭屋峻平さん,松村未来さん,宮本琢也さん,湯本貢司さん,住谷英里佳さん, 宮崎洋さん,田中秀典さん,中村友宣さん,服部雄一さん,林豊さん,Daniel Kurz さん, Minkyung Lee さん,研究についてご助言いただいた,廣瀬康一さん,まだまだ挙げきれ ないのですが,竹村研究室の竹村研究室の皆さまに心から感謝の意を表します. ありがとうございました. 33 参考文献 [1] Sony Computer Entertainment: “THE EYE OF JUDGEMENT,” http://www.jp.playstation.com/scej/title/eoj/. (最終閲覧日 2010 年 2 月 5 日) [2] Y. Yemez and C.J. Wetherilt: “A volumetric fusion technique for surface reconstruction from silhouettes and range data,” Computer Vision and Image Understanding, Vol.105(1), pp.30–41, 2007. [3] M. Brown, T. Drummond, and R. Cipolla: “3D Model Acquisition by Tracking 2D Wireframes,” Proc. of the 11th British Machine Vision Conference, 2000. [4] A. van den Hengel, A. Dick, T. Thorm¨ahlen, B. Ward, and P.H.S. Torr: “VideoTrace: rapid interactive scene modelling from video,” ACM Transactions on Graphics, Vol.26(3), 2007. [5] 不殿 健二, 佐藤 智和, 横矢 直和: “ハンドヘルドカメラを用いた撮影位置指示機能を 有するインタラクティブ 3 次元モデリングシステム”, 画像の認識・理解シンポジウ ム講演論文集, pp.243–250, 2005. [6] Q. Pan, G. Reitmayr, and T. Drummond: “ProFORMA: Probabilistic Feature-based On-line Rapid Model Acquisition,” Proc. of the 20th British Machine Vision Conferencer, 2009. [7] M. Thorne, D. Burke, and M. van de Panne: “Motion doodles: an interface for sketching character motion,” ACM Transactions on Graphics, Vol.23(3), pp.424–431, 2004. [8] G.A. Lee, C. Nelles, M. Billinghurst, and G.J. Kim: “ Immersive authoring of tangible augmented reality applications,” Proc. of the 3rd IEEE International Symposium on Mixed and Augmented Reality, pp.172–181, 2004. [9] J.M. Cohen, J.F. Hughes, and R.C. Zeleznik: “Harold: a world made of drawings,” Proc. of the 1st International Symposium on Non-photorealistic Animation and Rendering, pp.83–90, 2000. [10] O. Bergig, N. Hagbi, J. El-Sana, and M. Billinghurst: “In-place 3D sketching for authoring and augmenting mechanical systems,” Proc. of the 8th IEEE International Symposium on Mixed and Augmented Reality, pp.87–94, 2009. 34 [11] J. Popovic, S.M. Seitz, M. Erdmann, Z. Popovic, and A. Witkin: “Interactive Manipulation of Rigid Body Simulations,” Proc. of the 27th Annual Conference on Computer Graphics and Interactive Techniques, pp.209-217, 2000. [12] H. Kato and M. Billinghurst: “Marker Tracking and HMD Calibration for a videobased Augmented Reality Conferencing System,” Proc. of the 2nd International Workshop on Augmented Reality, pp.85–94, 1999. [13] 松村 未来, アヌラグ アグラワル, 中澤 篤志, 竹村 治雄: “レーザーレンジデータと Google Maps 画像の位置合わせを用いた環境のモデリング”, 情報処理学会研究報告, Vol.109(88), pp.13–18, 2009. [14] G. Klein and D. Murray: “Parallel Tracking and Mapping for Small Workspaces,” Proc. of the 6th IEEE International Symposium on Mixed and Augmented Reality, pp.1–10, 2007. [15] Russell Smith: “Open Dynamics Engine,” http://ode.org/. (最終閲覧日 2010 年 2 月 5 日) [16] E. Rosten and T. Drummond: “Machine learning for high-speed corner detection,” Proc. of the 9th European Conference on Computer Vision, Vol.1, pp.430–443, 2006. [17] M. Fischler and R. Bolles: “Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography,” Communcations of the ACM, Vol.24(6), pp.381–395, 1981. [18] GNU Triangulated Surface Library: “The GTS Library,” http://gts.sourceforge.net/. (最終閲覧日 2010 年 2 月 5 日) [19] H. Sutter and A. Alexandrescu: “boost c++ libraries,” http://www.boost.org/. (最 終閲覧日 2010 年 2 月 5 日) [20] J.W. Eaton: “Octave,” http://www.gnu.org/software/octave/. (最終閲覧日 2010 年 2 月 5 日) 35
© Copyright 2024 ExpyDoc