(57)【要約】【課題】適確かつ適切なテクスチャの収集及び適用を容易にする。【解決手段】カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして前記画像の少なくとも１つもしくは複数の部分を前記メモリに保存する。【選択図】図６Ａ
2015015023.tif 000002
【特許請求の範囲】
【請求項１】
ポータブル電子デバイスはカメラ、１つもしくは複数のプロセッサ及びメモリを備え、
前記プロセッサは、
前記カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、
前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、
前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして、前記画像の少なくとも１つもしくは複数の部分を前記メモリに保存する、
３次元モデルのためのテクスチャデータを取得する方法。
【請求項２】
前記３次元モデルの１つもしくは複数のオブジェクトは前記画像に含まれる１つもしくは複数のオブジェクトに対応する、請求項１に記載の方法。
【請求項３】
前記プロセッサが、さらに、
前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像の少なくとも部分とを位置合わせする、
請求項１または２に記載の方法。
【請求項４】
前記ポータブル電子デバイスはタッチセンシティブディスプレイデバイスをさらに備え、
前記プロセッサは、
前記タッチセンシティブディスプレイデバイス上の１つもしくは複数のタッチジェスチャを受信し、
１つもしくは複数の前記タッチジェスチャに従って、前記３次元モデルの１つもしくは複数のオブジェクトの表現を位置合わせする、
請求項３に記載の方法。
【請求項５】
１つもしくは複数の前記オブジェクトを位置合わせすることは、
前記３次元モデルの１つもしくは複数のオブジェクトの表現を拡大縮小し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現を移動し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現を回転する、
ことの１つもしくは複数を含む、
請求項４に記載の方法。
【請求項６】
前記画像は１つもしくは複数の拡張現実マーカを含み、
前記プロセッサは、
１つもしくは複数の前記拡張現実マーカの位置の各々に従って、前記３次元モデルの一つもしくは複数の前記オブジェクトの表現を位置合わせする、
請求項３に記載の方法。
【請求項７】
前記プロセッサは、さらに、
１つもしくは複数の前記拡張現実マーカの少なくとも１つに従って、前記ポータブル電子デバイスの位置及び方向の１つもしくは複数を較正する、
請求項６に記載の方法。
【請求項８】
前記ポータブル電子デバイスは、リモートサーバから、１つもしくは複数の前記拡張現実マーカの情報を受信する、請求項６または７に記載の方法。
【請求項９】
複数の拡張現実マーカの情報が前記リモートサーバに保存され、
複数の前記拡張現実マーカの情報は、前記ポータブル電子デバイスで受信された１つもしくは複数の前記拡張現実マーカの情報を含み、
前記ポータブル電子デバイスで受信される１つもしくは複数の拡張現実マーカは、前記ポータブル電子デバイスの位置に従って選択される、
請求項８に記載の方法。
【請求項１０】
前記プロセッサは、さらに、
位置の各々で複数の画像を取得し、
複数の前記画像に基づいて前記位置の各々の３次元モデルの各々を生成する、
請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記ポータブル電子デバイスは方向センサを含み、
前記プロセッサは、
複数の前記画像についての方向情報を有する複数の前記画像を前記位置の各々で取得し、
複数の前記画像及び前記方向情報に基づいて前記位置の各々の前記３次元モデルの各々を生成する、
請求項１０に記載の方法。
【請求項１２】
前記画像の少なくとも部分は、前記画像に含まれる１つもしくは複数の前記オブジェクトの１つもしくは複数のためのテクスチャデータとしてリモートサーバに送信される、
請求項１〜７のいずれか１項に記載の方法。
【請求項１３】
他のテクスチャデータが、前記ポータブル電子デバイスとは異なる複数のポータブル電子デバイスから前記リモートサーバに送信される、請求項１２に記載の方法。
【請求項１４】
前記カメラによって取得された１つもしくは複数の前記オブジェクトのビデオと前記３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記ビデオの１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、
１つもしくは複数の前記オブジェクトのビデオと前記３次元モデルの１つもしくは複数のオブジェクトの表現とを表示しながら、ユーザ入力を受信し、
前記ユーザ入力の受信に応じて、前記ユーザ入力のタイミングに従って前記ビデオから選択される画像の少なくとも部分を、前記ビデオの１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして保存し、
前記画像の部分と前記３次元モデルの１つもしくは複数のオブジェクトの表現とは少なくとも部分的に重畳する、
請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
前記プロセッサは、さらに、
前記３次元モデルの１つもしくは複数のオブジェクトの情報及び前記３次元モデルの１つもしくは複数のオブジェクトのテクスチャデータからレンダリングされた画像を受信し、
レンダリングされた前記画像の少なくとも部分を表示する、
請求項１〜３のいずれか１項に記載の方法。
【請求項１６】
前記ポータブル電子デバイスはタッチセンシティブディスプレイデバイスをさらに備え、
前記プロセッサは、さらに、
前記タッチセンシティブディスプレイデバイス上のタッチジェスチャを受信し、
前記タッチジェスチャに従って前記テクスチャデータを調整する、
請求項１５に記載の方法。
【請求項１７】
前記テクスチャデータを調整することは、
前記３次元モデルの１つもしくは複数のオブジェクトに前記テクスチャデータを位置付けすること、
前記テクスチャデータをリサイズすること、
前記テクスチャデータをトリミングすること、
の１つもしくは複数を含む、
請求項１６に記載の方法。
【請求項１８】
前記プロセッサは、さらに、
カメラ配置の情報を受信し、
前記カメラ配置の情報は１つもしくは複数の前記オブジェクトに対する視角及び視野に少なくとも基づく、
請求項１〜１７のいずれか１項に記載の方法。
【請求項１９】
カメラと、
１つもしくは複数のプロセッサと、
１つもしくは複数のプログラムを記憶するメモリと、
を備え、
１つもしくは複数の前記プログラムを前記プロセッサによって実行することにより、
前記カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、
前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、
前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして、前記画像の少なくとも１つもしくは複数の部分を前記メモリに保存する、
ポータブル電子デバイス。
【請求項２０】
カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、
前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、
前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、
前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして、前記画像の少なくとも１つもしくは複数の部分をメモリに保存する、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、３次元モデルのためのテクスチャデータを取得する方法、ポータブル電子デバイス、及びプログラムに関する。
【背景技術】
【０００２】
３次元（３Ｄ）環境はより広く用いられるようになってきている。例えば、ゲームのいくつかでは仮想３次元環境でユーザが行動する。３次元環境は、また、教育、訓練、外科手術、エンターテイメント（映画など）などのために使用されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】リー（Lee）、「ビデオシースルー拡張現実によるリアルオブジェクトのモデリング（Modeling Real Objects Using Video See-Through Augmented Reality）」、プレゼンス（Presence）、２００２年４月、Vol. 11, No. 2, 頁１４
【非特許文献２】レイノルド（Reynolds）、「モバイル拡張現実のためのリンク済みオープンデータの利用（Exploiting Linked Open Data for Mobile Augmented Reality）」、Ｗ３Ｃ  ワークショップ：ウェブ上の拡張現実（W3C Workshop: Augmented Reality on the Web）、２０１０年６月、頁７
【非特許文献３】ピアス（Pierce）、「３次元没入環境における画像面インタラクション技術（Image Plane Interaction Techniques in 3D Immersive Environments）」、インタラクティブ３次元グラフィックスに関するシンポジウム（Symposium on Interactive 3D Graphics）、１９９７年、頁５
【発明の概要】
【発明が解決しようとする課題】
【０００４】
３次元環境は、一般的に、３次元モデルによって表現される。一般的な３次元モデルは、各々の３次元オブジェクトのテクスチャなどの３次元オブジェクトの特性を含む情報を含む。３次元オブジェクトの各々が、３次元環境においてより現実的に見えるようにするために、テクスチャは重要な役割を演じる。しかしながら、適確かつ適切なテクスチャの収集及び適用は困難であり、時間がかかる。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、３次元モデルのためのテクスチャデータを取得する方法であって、ポータブル電子デバイスはカメラ、１つもしくは複数のプロセッサ及びメモリを備え、前記プロセッサは、前記カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして前記画像の少なくとも１つもしくは複数の部分を前記メモリに保存する。
【０００６】
本発明の第２の態様は、第１の態様の方法であって、前記３次元モデルの１つもしくは複数のオブジェクトは前記画像に含まれる１つもしくは複数のオブジェクトに対応する。
【０００７】
本発明の第３の態様は、第１または第２の態様の方法であって、前記プロセッサが、さらに、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像の少なくとも部分とを位置合わせする。
【０００８】
本発明の第４の態様は、第３の態様の方法であって、前記ポータブル電子デバイスはタッチセンシティブディスプレイデバイスをさらに備え、前記プロセッサは、前記タッチセンシティブディスプレイデバイス上の１つもしくは複数のタッチジェスチャを受信し、１つもしくは複数の前記タッチジェスチャに従って、前記３次元モデルの１つもしくは複数のオブジェクトの表現を位置合わせする。
【０００９】
本発明の第５の態様は、第４の態様の方法であって、１つもしくは複数の前記オブジェクトを位置合わせすることは、前記３次元モデルの１つもしくは複数のオブジェクトの表現を拡大縮小し、前記３次元モデルの１つもしくは複数のオブジェクトの表現を移動し、前記３次元モデルの１つもしくは複数のオブジェクトの表現を回転する、ことの１つもしくは複数を含む。
【００１０】
本発明の第６の態様は、第３の態様の方法であって、前記画像は１つもしくは複数の拡張現実マーカを含み、前記プロセッサは、１つもしくは複数の前記拡張現実マーカの位置の各々に従って、前記３次元モデルの一つもしくは複数の前記オブジェクトの表現を位置合わせする。
【００１１】
本発明の第７の態様は、第６の態様の方法であって、前記プロセッサは、さらに、１つもしくは複数の前記拡張現実マーカの少なくとも１つに従って、前記ポータブル電子デバイスの位置及び方向の１つもしくは複数を較正する。
【００１２】
本発明の第８の態様は、第６または第７の態様の方法であって、前記ポータブル電子デバイスは、リモートサーバから、１つもしくは複数の前記拡張現実マーカの情報を受信する。
【００１３】
本発明の第９の態様は、第８の態様の方法であって、複数の拡張現実マーカの情報が前記リモートサーバに保存され、複数の前記拡張現実マーカの情報は、前記ポータブル電子デバイスで受信された１つもしくは複数の前記拡張現実マーカの情報を含み、前記ポータブル電子デバイスで受信される１つもしくは複数の拡張現実マーカは、前記ポータブル電子デバイスの位置に従って選択される。
【００１４】
本発明の第１０の態様は、第１〜第９のいずれかの態様の方法であって、前記プロセッサは、さらに、位置の各々で複数の画像を取得し、複数の前記画像に基づいて前記位置の各々の３次元モデルの各々を生成する。
【００１５】
本発明の第１１の態様は、第１０の態様の方法であって、前記ポータブル電子デバイスは方向センサを含み、前記プロセッサは、複数の前記画像についての方向情報を有する複数の前記画像を前記位置の各々で取得し、複数の前記画像及び前記方向情報に基づいて前記位置の各々の前記３次元モデルの各々を生成する。
【００１６】
本発明の第１２の態様は、第１〜７のいずれかの態様の方法であって、前記画像の少なくとも部分は、前記画像に含まれる１つもしくは複数の前記オブジェクトの１つもしくは複数のためのテクスチャデータとしてリモートサーバに送信される。
【００１７】
本発明の第１３の態様は、第１２の態様の方法であって、他のテクスチャデータが、前記ポータブル電子デバイスとは異なる複数のポータブル電子デバイスから前記リモートサーバに送信される。
【００１８】
本発明の第１４の態様は、第１〜第１３のいずれかの態様の方法であって、前記カメラによって取得された１つもしくは複数の前記オブジェクトのビデオと前記３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記ビデオの１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、１つもしくは複数の前記オブジェクトのビデオと前記３次元モデルの１つもしくは複数のオブジェクトの表現とを表示しながら、ユーザ入力を受信し、前記ユーザ入力の受信に応じて、前記ユーザ入力のタイミングに従って前記ビデオから選択される画像の少なくとも部分を、前記ビデオの１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして保存し、前記画像の部分と前記３次元モデルの１つもしくは複数のオブジェクトの表現とは少なくとも部分的に重畳する。
【００１９】
本発明の第１５の態様は、第１〜第３のいずれかの態様の方法であって、前記プロセッサは、さらに、前記３次元モデルの１つもしくは複数のオブジェクトの情報及び前記３次元モデルの１つもしくは複数のオブジェクトのテクスチャデータからレンダリングされた画像を受信し、レンダリングされた前記画像の少なくとも部分を表示する。
【００２０】
本発明の第１６の態様は、第１５の態様の方法であって、前記ポータブル電子デバイスはタッチセンシティブディスプレイデバイスをさらに備え、前記プロセッサは、さらに、前記タッチセンシティブディスプレイデバイス上のタッチジェスチャを受信し、前記タッチジェスチャに従って前記テクスチャデータを調整する。
【００２１】
本発明の第１７の態様は、第１６の態様の方法であって、前記テクスチャデータを調整することは、前記３次元モデルの１つもしくは複数のオブジェクトに前記テクスチャデータを位置付けすること、前記テクスチャデータをリサイズすること、前記テクスチャデータをトリミングすること、の１つもしくは複数を含む。
【００２２】
本発明の第１８の態様は、第１〜第１７のいずれかの態様の方法であって、前記プロセッサは、さらに、カメラ配置の情報を受信し、前記カメラ配置の情報は１つもしくは複数の前記オブジェクトに対する視角及び視野に少なくとも基づいている。
【００２３】
本発明の第１９の態様は、ポータブル電子デバイスであって、カメラと、１つもしくは複数のプロセッサと、１つもしくは複数のプログラムを記憶するメモリと、を備え、１つもしくは複数の前記プログラムを前記プロセッサによって実行することにより、前記カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして、前記画像の少なくとも１つもしくは複数の部分を前記メモリに保存する。
【００２４】
本発明の第２０の態様は、プログラムであって、カメラによって１つもしくは複数のオブジェクトを含む画像を取得し、前記画像の少なくとも部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを表示し、前記３次元モデルの１つもしくは複数のオブジェクトの表現と前記画像に含まれる１つもしくは複数のオブジェクトとは少なくとも部分的に重畳し、前記画像に含まれる１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして、前記画像の少なくとも１つもしくは複数の部分をメモリに保存する、処理をコンピュータに実行させる。
【発明の効果】
【００２５】
開示の技術によれば、適格かつ適切なテクスチャを容易に収集及び適用することが可能となる。
【図面の簡単な説明】
【００２６】
【図１】実施形態のいくつかによる３次元モデルのためにテクスチャを取得するシステムを例示するブロック図である。
【図２】実施形態のいくつかによるポータブル電子デバイスを例示するブロック図である。
【図３】実施形態のいくつかによるサーバを例示するブロック図である。
【図４】実施形態のいくつかによる３次元モデルデータを例示するブロック図である。
【図５Ａ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｂ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｃ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｄ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｅ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｆ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図５Ｇ】実施形態のいくつかによるポータブル電子デバイスのオペレーションを例示する。
【図６Ａ】実施形態のいくつかによる３次元モデルのためのテクスチャデータを取得する方法を示すフローチャートである。
【図６Ｂ】実施形態のいくつかによる３次元モデルのためのテクスチャデータを取得する方法を示すフローチャートである。
【図６Ｃ】実施形態のいくつかによる３次元モデルのためのテクスチャデータを取得する方法を示すフローチャートである。
【発明を実施するための形態】
【００２７】
３次元モデルのテクスチャデータを取得するための方法及びシステムについて説明する。特定の実施形態に言及し、その例を図面を用いて説明する。同様の参照符号は図面全体にわたって対応する同様の構成要素を参照する。特定の実施形態だけに本発明の範囲を限定することは意図していない。むしろ、添付の図面によって画定される思想及び範囲内にある代替、変更及び等価物を含むことを意図している。
【００２８】
実施形態のいくつかにおいて、３次元モデルは、デジタルカメラ、カメラを有するモバイル電子デバイス（スマートフォン、タブレットコンピュータなど）などのモバイル撮像デバイス、ラップトップコンピュータなどのディスプレイに表示される。３次元モデルを表示すると共に、撮像デバイスは現実世界のテクスチャの画像を取得するように構成されている。当該テクスチャは、３次元モデルの１つもしくは複数の表面に選択的に適用される。実施形態のいくつかにおいて、現実世界のテクスチャは、撮像デバイスのディスプレイを介して３次元モデルの表面に適用されてもよい。実施形態のいくつかにおいて、テクスチャもしくはモデルの一方が他方への透過性を有するオーバレイとして、モデル及び取得されたテクスチャはディスプレイに同時に表示されてもよい。実施形態のいくつかにおいて、表示されているテクスチャは表示されている３次元モデルの対応部分に適用されてもよい。例えば、撮像デバイスのユーザは、ウッドテクスチャを撮像し、撮像されたテクスチャと同時に表示されているモデルの部分に撮像されたウッドテクスチャを当該撮像デバイスで適用することにより、ウッドテクスチャをウッドテーブルのモデルに適用することができる。
【００２９】
実施形態のいくつかにおいて、モバイル撮像デバイスは、ユーザが、３次元モデルの１つもしくは複数の表面に取得したテクスチャのどの部分が適用されるべきか選択することを可能にする、及び／もしくは、特定の取得されたテクスチャが適用される３次元モデルの特定の表面もしくは部分を選択することを可能にする、ユーザインターフェイスを備える。実施形態のいくつかにおいて、結果的に取得されるモデル及び関連付けられ適用されるテクスチャは、デスクトップモデリングもしくはコンピュータ支援設計プログラムなどの他のプログラムで使用するために、保存され及び出力されてもよい。
【００３０】
図１は、実施形態のいくつかによるテクスチャデータを取得するためのシステム１００を例示するブロック図である。システム１００は、１つもしくは複数のサーバ１０２及び１つもしくは複数のポータブル電子デバイス１３０（例えば、１３０−１、１３０−２、…、１３０−ｎ）を含む。１つもしくは複数のサーバ１０２及びポータブル電子デバイス１３０はネットワーク１５０を介して相互に接続されている。ネットワーク１５０は、一般的に、コンピュータノードを接続することが可能な任意のタイプの有線または無線通信チャネルを含んでいてよい。ネットワーク１５０は、ローカルエリアネットワーク、ワイドエリアネットワークもしくは複合ネットワークを含むが、これらに限定されるものではない。実施形態のいくつかにおいて、ネットワーク１５０はインターネットを含む。
【００３１】
ポータブル電子デバイス１３０は、以下に説明するアクティビティを可能とするために使用される多くのポータブルコンピューティングデバイス（例えば、ＰＤＡ（personal digital assistant）、携帯電話、ゲーム機、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、デジタルカメラ、もしくは、これらの機器を組み合わせた装置）のいずれかであってよい。ポータブル電子デバイス１３０は、クライアントとも呼ばれる。ポータブル電子デバイス１３０は、１つもしくは複数のカメラ及びディスプレイを含む。実施形態のいくつかにおいて、ポータブル電子デバイス１３０は、モバイル撮像デバイスとも呼ばれる。
【００３２】
実施形態のいくつかにおいて、１つもしくは複数のサーバ１０２は、３次元モデルエンジン１０４、マーカデータベース１０６を含む。実施形態のいくつかにおいて、１つもしくは複数のサーバ１０２は、また、１つもしくは複数の他のデータベース（例えば、３次元モデルデータベース、テクスチャデータベースなど）を含む。１つもしくは複数のサーバ１０２は、１つもしくは複数のサーバ１０２の内部にあるマーカデータベース１０６などのデータベースと、ローカルエリアネットワークを用いて、内部通信バスによって、もしくは、他の任意の適切な機構もしくは複合機構によって、通信する。
【００３３】
アプリケーション１３２は、ポータブル電子デバイス１３０に様々な機能を提供するために使用されるアプリケーションプログラムを含む。実施形態のいくつかにおいて、アプリケーション１３２はテクスチャデータ（テクスチャとも呼ばれる）を取得するために使用されるソフトウェアアプリケーションを含む。
【００３４】
実施形態のいくつかにおいて、マーカデータベース１０６は、マーカの各々のパターン、位置、及び方向などのマーカ情報を含む。実施形態のいくつかにおいて、マーカはテクスチャと関連付けられている。
【００３５】
図２は実施形態のいくつかによるポータブル電子デバイス１３０を例示するブロック図である。ポータブル電子デバイス１３０は、一般的に、１つもしくは複数の処理ユニット（ＣＰＵ）２０２、１つもしくは複数のネットワークもしくは他の通信インターフェイス２０４、ユーザインターフェイス２０６、１つもしくは複数のセンサ２１２、メモリ２２０及びこれらの構成要素を相互に接続するための１つもしくは複数の通信バス２３０を含む。実施形態のいくつかにおいて、通信バス２３０はシステム構成要素間を相互に接続し、システム構成要素間の通信を制御する回路（チップセットとも呼ばれる）を含む。ユーザインターフェイス２０６は、ディスプレイデバイス２０８及び１つもしくは複数の入力デバイス２１０（例えば、ボタン、タッチセンシティブ表面など）を含む。１つもしくは複数のセンサ２１２は１つもしくは複数のカメラ２１４を含む。実施形態のいくつかにおいて、１つもしくは複数のセンサ２１２はまた１つもしくは複数の位置センサ２１６及び１つもしくは複数の方向センサ２１８を含む。メモリ２２０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭもしくは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。メモリ２２０は、また、１つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイスもしくは他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでいてもよい。メモリ２２０は、オプションで、ＣＰＵ２０２から離隔して配置される１つもしくは複数のストレージデバイスを含んでもよい。メモリ２２０、もしくは、代替的に、メモリ２２０内の不揮発性メモリデバイスは非一時的コンピュータ可読記憶媒体を含む。実施形態のいくつかにおいて、メモリ２２０は以下のプログラム、モジュール及びデータ構造もしくはこれらのサブセットを記憶する。
●オペレーティングシステム２２２
様々な基本システムサービスを扱うためのプロシージャ及びハードウェア依存タスクを実行するためのプロシージャを含む。
●通信モジュール２２４
１つもしくは複数の通信インターフェイス２０４（有線もしくは無線）及びインターネットなどの１つもしくは複数の通信ネットワーク、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどを介して、他のコンピュータとポータブル電子デバイス１３０とを接続するために使用される。
●ハードウェアドライバ２２６（オプション）
１つもしくは複数のハードウェア構成要素（例えば、ディスプレイデバイス２０８、１つもしくは複数の入力デバイス２１０、１つもしくは複数のカメラ２１４などの１つもしくは複数のセンサ２１２）のオペレーションを制御するため、及び、１つもしくは複数のハードウェアにデータを送信し、１つもしくは複数のハードウェアからデータを受信するために使用される。
●ユーザインターフェイスモジュール２２８
入力デバイス２１０を介してユーザからコマンド及び／もしくはユーザ入力を受信し、ディスプレイデバイス２０８に表示するためにユーザインターフェイスオブジェクトを用意する。
●アプリケーション１３２
３次元モデルアプリケーション２３２を含む１つもしくは複数のアプリケーションを含む。
●ローカルデータベース２４６
画像及び／もしくはビデオデータ２４８を含む。
【００３６】
実施形態のいくつかにおいて、３次元モデルアプリケーション２３２は以下のプログラム、モジュール及びデータ構造、もしくは、プログラム、モジュール及びデータ構造のサブセットもしくはスーパーセットを含む。
●画像及び／もしくはビデオ取得モジュール２３４
ハードウェアドライバ２２６を用いることによって１つもしくは複数の通信バス２３０を介して１つもしくは複数のカメラ２１４からビデオもしくは画像を受信する。
●画像処理モジュール２３６（オプション）
画像を変更する（例えば、画像の１つもしくは複数の部分を回転、リサイズ、移動する）。
●レンダリングモジュール２３８
ディスプレイデバイス２０８に表示されるべき画像を用意する。可能であれば、オプションで、３次元モデルデータ（例えば、３次元モデルデータ２５０）から画像を用意してもよい。
●データインターフェイス２４０
ローカルデータベース２４６にデータを保存し、及び／もしくは、ローカルデータベース２４６からデータを取り出す処理を促進する。
●拡張現実マーカ処理モジュール２４２（オプション）
１つもしくは複数の画像及び／もしくはビデオに含まれる１つもしくは複数の拡張現実マーカを識別し、複数の拡張現実マーカから情報を抽出する。
●モデリングモジュール２４４（オプション）
ユーザ入力及び画像及び／もしくはビデオデータに基づいて１つもしくは複数の３次元モデルを生成し、及び／もしくは、変更する。
【００３７】
実施形態のいくつかにおいて、ローカルデータベース２４６は３次元モデルデータ２５０を含む。実施形態のいくつかにおいて、３次元モデルデータ２５０はレンダリングモジュール２３８によって使用される。
【００３８】
上記識別される構成要素の各々は、１つもしくは複数の上記メモリデバイスに記憶されていてもよく、上記機能を実行する命令セットに対応していてもよい。上記識別されるモジュール（すなわち、命令セット）は、別個のソフトウェアプログラム、プロシージャ、もしくはモジュールとして実装される必要はない。様々な実施形態において、これらのモジュールの様々なサブセットが組み合わされてもよいし、再配置されてもよい。例えば、レンダリングモジュール２３８はユーザインターフェイスモジュール２２８の部分として実装されてもよいし、ユーザインターフェイスモジュール２２８はレンダリングモジュール２３８の部分として実装されてもよい。実施形態のいくつかにおいて、メモリ２２０は上記で識別されたモジュール及びデータ構造のサブセットを記憶する。さらに、実施形態のいくつかにおいて、メモリ２２０は上記されていないさらなるモジュール及びデータ構造を記憶する。
【００３９】
図３は実施形態のいくつかによるサーバ１０２を例示するブロック図である。サーバ１０２（サーバシステムとも呼ばれる）は、一般的に、１つもしくは複数の処理ユニット（ＣＰＵ）３０２、１つもしくは複数のネットワークもしくは他の通信インターフェイス３０４、メモリ３１６、及びこれらの構成要素を相互に接続する１つもしくは複数の通信バス３０９を含む。実施形態のいくつかにおいて、通信バス３０９はシステム構成要素間を相互に接続し、システム構成要素間の通信を制御する回路（チップセットとも呼ばれる）を含む。他の実施形態のいくつかにおいて、サーバ１０２はユーザインターフェイス３０６（例えば、ディスプレイデバイス３０８及びキーボード及びマウスもしくは他のポインティングデバイスなどの１つもしくは複数の入力デバイス３１０を有するユーザインターフェイス）を含む。サーバ１０２は、様々なクライアントデバイスによって制御され、アクセスされることが一般的である。
【００４０】
サーバ１０２のメモリ３１６はＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭもしくは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。メモリ３１６は、また、１つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイスもしくは他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでいてもよい。メモリ３１６は、オプションで、ＣＰＵ３０２から離隔して配置される１つもしくは複数のストレージデバイスを含んでもよい。メモリ３１６、もしくは、代替的に、メモリ３１６内の不揮発性メモリデバイスは非一時的コンピュータ可読記憶媒体を含む。実施形態のいくつかにおいて、メモリ３１６もしくはメモリ３１６のコンピュータ可読記憶媒体は以下のプログラム、モジュール及びデータ構造もしくはこれらのサブセットを記憶する。
●オペレーティングシステム３１８
様々な基本システムサービスを扱うためのプロシージャ及びハードウェア依存タスクを実行するためのプロシージャを含む。
●ネットワーク通信モジュール（もしくは命令）３２０
サーバ１０２を、１つもしくは複数の通信インターフェイス３０４及び、インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つもしくは複数の通信ネットワーク１５０（図１）を介して、他のコンピュータ（例えば、ポータブル電子デバイス１３０）に接続するために使用される。
●３次元モデルエンジン３２２（オプション）
３次元モデルデータを生成し、及び／もしくは３次元モデルデータ（例えば、３次元モデルデータ３４０）から画像を用意する。
●マーカデータ３３０
●３次元モデルデータ３４０（オプション）
【００４１】
実施形態のいくつかにおいて、３次元モデルエンジン３２２は以下のプログラム、モジュール及びデータ構造もしくはこれらのサブセットを含む。
●レンダリングモジュール３２４
３次元データから１つもしくは複数の画像を用意する。
●モデリングモジュール３２８
３次元データを生成し、及び／もしくは、改訂する。
【００４２】
実施形態のいくつかにおいて、レンダリングモジュール３２４は３次元モデルの３次元オブジェクトにテクスチャを適用するテクスチャモジュール３２６を含む。
【００４３】
実施形態のいくつかにおいて、マーカデータ３３０は以下のデータ構造もしくはデータ構造のサブセットもしくはスーパーセットを含む。
●マーカパターンデータ３３２
１つもしくは複数のマーカパターン（例えば、バーコード、マトリックスバーコード、ＱＲ（Quick Response）コードなどのマーカ各々のグラフィックパターン）を識別する情報を含む。
●位置データ３３４
マーカ各々の位置情報を含む。
●他のデータ３３６（例えば、マーカ各々の方向など）
【００４４】
実施形態のいくつかにおいて、マーカデータ３３０は拡張現実マーカのデータを含む。
【００４５】
上記識別されたモジュール及びアプリケーションの各々は、１つもしくは複数の上記機能を実行するための命令セットに対応する。これらのモデル（すなわち、命令セット）は別個のソフトウェアプログラム、プロシージャもしくはモジュールとして実装されなくてもよい。これらのモジュールの様々なサブセットは様々な実施形態において組み合わされてもよいし、再配置されてもよい。実施形態のいくつかにおいて、メモリ３１６は上記モジュール及びデータ構造のサブセットを記憶してもよい。さらに、メモリ３１６は上記されていないほかのモジュール及びデータ構造を記憶してもよい。
【００４６】
図１、２及び３では分離したブロックが示されているが、これらの図は実施形態の機能的な構成要素の構造的な説明ではなく、実施形態のいくつかの機能的な説明のためのものであることを意図している。実際の実装は、グループ化された機能的な構成要素を有していてもよいし、様々な構成要素に分離された機能的な構成要素を有してもよい。実用的には、分離して示されたアイテムは組み合わされてもよいし、アイテムのいくつかは分離されてもよい。例えば、実施形態のいくつかにおいて、画像処理モジュール２３６は画像及び／もしくはビデオ取得モジュール２３４の部分である。実施形態のいくつかにおいて、ローカルデータベース２４６はデータインターフェイス２４０を含む。実施形態のいくつかにおいて、マーカデータ３３０は３次元モデルデータ３４０の部分であるか、もしくは、３次元モデルデータ３４０はマーカデータ３３０の部分である。
【００４７】
サーバ１０２を実装するために使用されるサーバの実際の数及びどの特徴がどのサーバに割り当てられるか、は実装によって異なり、ピーク利用期間及び平均利用期間にシステムが扱わなければならないデータトラフィック量に部分的に依存し、サーバ１０２によって保存されるデータ量にも依存する。さらに、図３の１つもしくは複数のブロックは説明した機能を提供するために設計された１つもしくは複数のサーバに実装されてもよい。例えば、サーバ１０２は、３次元モデルエンジン３２２の機能を提供する１つもしくは複数の３次元モデルエンジンサーバ及びマーカデータ３３０へのアクセスを提供する１つもしくは複数の別個のマーカサーバに実装されてもよい。ここでは、ポータブル電子デバイス１３０に実装される機能及びサーバ１０２に実装される機能に言及しているが、実施形態はこのような区別に限定されるものではない。例えば、ここで、ポータブル電子デバイス１３０の部分として説明された特徴はサーバ１０２の全体もしくは部分として実装されてもよいし、サーバ１０２の部分として説明された特徴はポータブル電子デバイス１３０の全体もしくは部分として実装されてもよい。
【００４８】
実施形態のいくつかにおいて、ポータブル電子デバイス１３０は「シンクライアント」であってよく、サーバ１０２によってレンダリングされた３次元オブジェクトの表現を表示するレンダリングモジュール２３８を含んでもよい。この実施形態において、ポータブル電子デバイス１３０は画像もしくはビデオデータを取得して送信し、レンダリングされた画像を受信して表示するだけであり、他のソフトウェアを含まない。シンクライアントの実施形態において、３次元モデルデータの生成及び３次元モデルデータからの画像のレンダリングなどの計算量の多いタスクはサーバ１０２によって扱われる。
【００４９】
図４は実施形態のいくつかによる３次元モデルデータ３４０を例示するブロック図である。３次元モデルデータ３４０は１つもしくは複数の３次元モデル（例えば、「モデル１」４０２、「モデル２」など）を含む。
【００５０】
図４に示すように、モデルの各々（例えば、「モデル１」４０２）は、１つもしくは複数の３次元オブジェクト（例えば、「オブジェクト１」４０４−１、「オブジェクト２」４０４−２など）の情報を含む。実施形態のいくつかにおいて、オブジェクトの各々（例えば、「オブジェクト１」４０４−１）の情報は、オブジェクトの各々の形状４１０（例えば、立方体、棒、円筒、球など）、サイズ４１２、方向４１４及びテクスチャ４１６を含む。実施形態のいくつかにおいて、テクスチャ４１６は対応するテクスチャデータ（例えば、画像ファイル）へのポインタである。実施形態のいくつかにおいて、テクスチャ４１６は（例えば、ヌル値を含むことによって）対応するテクスチャデータがないことを示す。
【００５１】
実施形態のいくつかにおいて、モデルの各々（例えば、「モデル１」４０２）は、１つもしくは複数の３次元オブジェクトの位置情報（例えば、「オブジェクト１」４０４−１の「位置１」４０６−１及び「オブジェクト２」４０４−２の「位置２」４０６−２）も含む。
【００５２】
実施形態のいくつかにおいて、モデルの各々（例えば、「モデル１」４０２）は３次元オブジェクトの各々の１つもしくは複数のマーカ（例えば、拡張現実マーカ）を識別する情報も含む。例えば、いくつかの場合、３次元オブジェクトの各々は、２以上の拡張現実マーカによってタグ付けされる。他の場合、３次元オブジェクトの各々は１つの拡張現実マーカによってタグ付けされる。実施形態のいくつかにおいて、１つもしくは複数のマーカを識別する情報は、図３に関連して上記した、マーカの各々のパターン４２０、位置４２２、及び方向４２４の一つもしくは複数を含む。
【００５３】
実施形態のいくつかにおいて、１つもしくは複数のマーカは３次元オブジェクトの各々の位置を識別するために使用される。例えば、１つもしくは複数のマーカが３次元オブジェクトの各々に付加される場合、３次元オブジェクトの各々の位置は１つもしくは複数のマーカの位置に基づいて決定される。実施形態のいくつかにおいて、３次元オブジェクトの各々の位置は、３次元オブジェクトの各々に付加されているマーカの各々の位置の各々に対応する。
【００５４】
実施形態のいくつかにおいて、１つもしくは複数のマーカは３次元オブジェクトの方向（例えば、３次元オブジェクトがまっすぐであるか、逆様であるか、傾いているか）を識別するために使用される。例えば、１つもしくは複数のマーカが３次元オブジェクトの各々に付加されている場合、３次元オブジェクトの方向は１つもしくは複数のマーカの方向及び／もしくは位置に基づいて決定される。実施形態のいくつかにおいて、３次元オブジェクトの各々の方向は、３次元オブジェクトの各々に付加されているマーカの各々の方向の各々に対応する。実施形態のいくつかにおいて、マーカの各々の方向４２４はマーカの各々が向く方向（例えば、北、南、東、西）を示す。実施形態のいくつかにおいて、マーカの各々の方向４２４は数値単位（例えば、度）で示される。
【００５５】
実施形態のいくつかにおいて、１つもしくは複数のマーカは３次元オブジェクトの各々（例えば、ライブビデオもしくは画像の現実のオブジェクト）と３次元モデルの対応するオブジェクト（例えば、仮想オブジェクト）とを位置合わせするために使用される。代替的に、もしくは、加えて、実施形態のいくつかにおいて、１つもしくは複数のマーカは３次元モデルのオブジェクトと３次元オブジェクトとを位置合わせするために使用される。実施形態のいくつかにおいて、３次元モデルのマーカの位置は、（例えば、ライブビデオもしくは画像における）対応する物理的マーカの位置に適合するように更新される。実施形態のいくつかにおいて、マーカに関連する３次元オブジェクトの各々の位置は対応する物理的マーカの位置に適合するように更新される。例えば、あるケースでは、ライブビデオもしくは画像の物理的マーカが３次元モデルの対応するマーカの位置に対応しない位置で検出された場合、３次元モデルのマーカの更新された位置がライブビデオもしくは画像の物理的マーカの位置に対応するように、３次元モデルは更新される（例えば、移動、回転及び／もしくは拡大縮小される）。いくつかのケースでは、ライブビデオもしくは画像の複数の物理的マーカが３次元モデルの対応するマーカの位置に対応しない場合、３次元モデルのマーカの更新された位置がライブビデオもしくは画像の物理的マーカの位置に対応するように３次元モデルは更新される（例えば、移動、回転及び／もしくは拡大縮小される）。一般的に、３次元オブジェクトの各々の位置は、複数の物理的マーカを用いて更新される場合、より正確である。
【００５６】
図５Ａ〜５Ｇは、実施形態のいくつかによるポータブル電子デバイス１３０のオペレーションを例示する。例示したオペレーションは、３次元モデルへの実空間のマッピング、及び、対応する３次元モデル表面へテクスチャを配置するための実空間の画像もしくはビデオの使用を含む。
【００５７】
図５Ａは１つもしくは複数のオブジェクトの画像（例えば、実世界のオブジェクト）を例示する。実施形態のいくつかにおいて、ポータブル電子デバイスはカメラを含み、画像はポータブル電子デバイスのカメラによって取得される。
【００５８】
実施形態のいくつかにおいて、１つもしくは複数のオブジェクトの画像は１つもしくは複数のオブジェクトの静止画像である。他の実施形態のいくつかにおいて、１つもしくは複数のオブジェクトの画像はビデオの部分である。例えば、ポータブル電子デバイスは、１つもしくは複数のオブジェクトを含む画像を含む１つもしくは複数のビデオフレームを含むライブビデオを表示してもよい。これらの実施形態において、オーバヘッドマップのポータブル電子デバイスの位置は、ポータブル電子デバイスの移動によって更新される。
【００５９】
図５Ａに示されるように、実施形態のいくつかにおいて、オーバヘッドマップは１つもしくは複数のオブジェクトの画像に重畳される。実施形態のいくつかにおいて、オーバヘッドマップはポータブル電子デバイスの位置を示す。
【００６０】
図５Ａは１つもしくは複数のオブジェクトの画像と、複数のユーザインターフェイスオブジェクトと、が同時に表示される例も示す。例えば、図５Ａに示されるように、リセットボタン（Reset）、グラブボタン（Grab）、スライダなどのユーザインターフェイスオブジェクトが１つもしくは複数のオブジェクトの画像上に表示されている。実施形態のいくつかにおいて、図５Ａに示されるように、１つもしくは複数のユーザインターフェイスオブジェクト（例えば、リセットボタン、グラブボタン及びスライダ）が１つもしくは複数のオブジェクトの画像上に半透明で表示される。実施形態のいくつかにおいて、（例えば、タッチセンシティブ面上のスライダに対応する位置で指をスライドするジェスチャによって）調整された場合、スライダは１つもしくは複数のオブジェクトの表示の視野の変更を開始する。実施形態のいくつかにおいて、（例えば、タッチセンシティブ面上のグラブボタンに対応する位置でのタップジェスチャによって）選択された場合、グラブボタンは１つもしくは複数のオブジェクトの画像の少なくとも部分の保存を開始する。実施形態のいくつかにおいて、（例えば、タッチセンシティブ面上のリセットボタンに対応する位置でのタップジェスチャによって）選択された場合、リセットボタンは１つもしくは複数のオブジェクトの表示の設定（例えば、視野、ズーム、回転など）のリセットを開始する。
【００６１】
図５Ｂは、１つもしくは複数のオブジェクトの画像と、３次元モデルの１つもしくは複数のオブジェクトの表現と、を同時に表示する例を示す。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現は３次元モデルの１つもしくは複数のオブジェクトのワイヤフレームモデルの２次元表示を含む。実施形態のいくつかにおいて、同時表示は、半透明前景レイヤーの１つもしくは複数のオブジェクトの画像及び背景レイヤーの３次元モデルの１つもしくは複数のオブジェクトの表現を含む。実施形態のいくつかにおいて、図５Ｂに示されるように、同時表示は、半透明前景レイヤーの３次元モデルの１つもしくは複数のオブジェクトの表現及び背景レイヤーの１つもしくは複数のオブジェクトの画像を含む。
【００６２】
実施形態のいくつかにおいて、図５Ｂに示されるように、３次元モデルの１つもしくは複数のオブジェクトは画像の１つもしくは複数のオブジェクトに対応する（例えば、３次元モデルのドアは画像のドアに対応する）。これにより、３次元モデルの１つもしくは複数のオブジェクトと画像の１つもしくは複数の対応するオブジェクトとの直接的な対比が可能となる。
【００６３】
実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現は１つもしくは複数のオブジェクトの画像と位置合わせされる。実施形態のいくつかにおいて、１つもしくは複数のオブジェクトの画像の少なくとも部分は３次元モデルの１つもしくは複数のオブジェクトの表現と位置合わせされる。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現は（図示しない）１つもしくは複数のマーカを用いて１つもしくは複数のオブジェクトの画像に位置合わせされる。
【００６４】
図５Ｃ〜５Ｅは、実施形態のいくつかによる３次元モデルの１つもしくは複数のオブジェクトの表現と１つもしくは複数のオブジェクトの画像の部分とを位置合わせする例を示す。
【００６５】
図５Ｃは、マーカの第１セット（濃色マーカ）が画像においてドアの角に配置されている例を示す。実施形態のいくつかにおいて、マーカの第１セットはユーザ入力に依存せず配置される。例えば、マーカの第１セットは自動的に（例えば、エッジ検出及び／もしくは角検出方法を用いて）配置される。実施形態のいくつかにおいて、マーカの第１セットはユーザ入力によって配置される。
【００６６】
図５Ｃは、マーカの第２セット（薄色マーカ）が配置される例も示す。実施形態のいくつかにおいて、マーカの第２セットは手動で（例えば、ユーザ入力によって）配置される。実施形態のいくつかにおいて、マーカの第２セットはユーザ入力に依存せず配置される。例えば、マーカの第２セットは３次元モデルの対応するオブジェクトの形状によって配置されてもよい。
【００６７】
図５Ｄは第１マーカセット及び第２マーカセットによる画像の部分（例えば、ドア）のマッピング（例えば、ストレッチング）を例示する。これにより、斜めから見た画像のドアは、ドアのためのテクスチャとして使用される正面から見たドアに変換される。
【００６８】
図５Ｅはマッピングされたドアの画像を例示する。このドアの画像はドアのテクスチャとして使用されてもよい。代替的に、もしくは、さらに、（木製）ドアのマッピング画像の少なくとも部分は他の木製オブジェクト（例えば、テーブル）のテクスチャとして使用されてもよい。
【００６９】
図５Ｆ〜５Ｇは、実施形態のいくつかによる３次元モデルの１つもしくは複数のオブジェクトのテクスチャを取得することに関連するインターフェイスを例示する。
【００７０】
図５Ｆはオブジェクトのトップダウンビューを例示する。当該オブジェクトのためにテクスチャデータが収集される。図５Ｆには、オブジェクトは白で示され、カメラの現在位置は黒丸で示され、カメラの視野は直線で示される。実施形態のいくつかにおいて、カメラがオブジェクトに非常に近く配置されている場合、カメラはオブジェクト全体を取得することが不可能であるかもしれないし、カメラがオブジェクト全体を取得することは所望されないかもしれない。カメラがオブジェクトから非常に離隔して配置されている場合、カメラはオブジェクトの高解像度画像を取得することが不可能であるかもしれない、カメラがオブジェクトの高解像度画像を取得することは所望されないかもしれない。これらの２つを含む要因のいくつかを重み付けすることにより、オブジェクトのテクスチャデータを取得するカメラの推奨位置を判定する。いくつかのケースでは、１つもしくは複数の他のオブジェクトによって対象オブジェクトが隠されているか否かも、カメラの推奨位置を判定するため検討される。いくつかのケースでは、オブジェクトの全体を取得するために必要とされる画像の総数が、カメラの推奨位置を判定する際に考慮される。あまりにも多くの画像を取得しなければならないことは望ましくないためである。図５Ｆに示されるように、カメラの推奨位置を示すためにグラデーションが使用されてもよい。グラデーションにおいて薄い色で示される概ね半円の円弧に沿った領域はオブジェクトのテクスチャデータを取得するための推奨位置を示し、当該グラデーションにおいて、色が薄いほどカメラ位置として適切であることを示している。グラデーションにおいて濃い色で示される領域はオブジェクトのテクスチャデータを取得するために推奨されない位置を示す。
【００７１】
図５Ｇは複数のカメラ位置（及び、オプションで視野）が隠された面のテクスチャデータを取得するために推奨される例を示す。図５Ｇにおいて、オブジェクトは部分的に壁によって隠されている。図５Ｇは、少なくとも２つの場所から取得される画像を撮影し、オブジェクトのテクスチャデータを取得するためのカメラの推奨位置を示す例を示す。
【００７２】
図６Ａ〜図６Ｃは実施形態のいくつかによる３次元モデルのテクスチャデータを取得するための方法６００を示すフローチャートである。実施形態のいくつかにおいて、本方法は１つもしくは複数のプロセッサ及びメモリ（例えば、図２のＣＰＵ２０２及びメモリ２２０）を含むポータブル電子デバイスで実行される。実施形態のいくつかにおいて、ポータブル電子デバイスはカメラ（例えば、図２の１つもしくは複数のカメラ２１４などの統合型カメラ）を含む。実施形態のいくつかにおいて、ポータブル電子デバイスはリモートカメラに接続されている。実施形態のいくつかにおいて、ポータブル電子デバイスはディスプレイデバイス及び１つもしくは複数の入力デバイス（例えば、図２のディスプレイデバイス２０８及び入力デバイス２１０）を含む。実施形態のいくつかにおいて、１つもしくは複数の入力デバイスはタッチセンシティブ面（例えば、タッチパッド）を含む。実施形態のいくつかにおいて、タッチセンシティブ面はディスプレイデバイスと統合されている（例えば、タッチセンシティブディスプレイデバイス）。実施形態のいくつかにおいて、ポータブル電子デバイスは１つもしくは複数の位置センサ（例えば、図２の位置センサ２１６）を含む。実施形態のいくつかにおいて、ポータブル電子デバイスは１つもしくは複数の方向センサ（例えば、図２の方向センサ２１８を含む）。
【００７３】
ポータブル電子デバイス（例えば、図１のポータブル電子デバイス１３０）はカメラによって１つもしくは複数のオブジェクトの画像を取得する（６０２）。例えば、図５Ａに示すように、部屋にあるオブジェクト（例えば、ドア、壁など）の画像が取得される。
【００７４】
ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と、画像の少なくとも部分と、を同時に表示する（６０４）。３次元モデルの１つもしくは複数のオブジェクトの表現と、画像の１つもしくは複数のオブジェクトと、は少なくとも部分的に重畳する。３次元モデルの１つもしくは複数のオブジェクトの表現と、画像と、を同時に表示する例を図５Ｂに示す。図５Ｂに示されるように、３次元モデルの１つもしくは複数のオブジェクト（例えば、３次元モデルのドア及び壁）の表現と、画像の１つもしくは複数のオブジェクト（例えば、画像のドア及び壁）と、は少なくとも部分的に重畳する。
【００７５】
実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトは画像の１つもしくは複数のオブジェクトに対応する（６０６）。例えば、図５Ｂに示されるように、３次元モデルのドアの表現と、画像のドアと、は重畳される。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトは画像の１つもしくは複数のオブジェクトに対応しない。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現と、画像の１つもしくは複数のオブジェクトと、が少なくとも部分的に重畳する場合、３次元モデルの１つもしくは複数のオブジェクトと、３次元モデルが重畳している画像の１つもしくは複数のオブジェクトと、は異なっていてもよい。例えば、テーブルの表現と、画像のドアと、が重畳してもよい。
【００７６】
実施形態のいくつかにおいて、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と画像の少なくとも部分とを位置合わせする（６０８）。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現と画像の少なくとも部分とを位置合わせすることは、３次元モデルの１つもしくは複数のオブジェクトの表現の回転、拡大縮小（サイズ変更）及び／もしくはトリミングを含む。実施形態のいくつかにおいて、ポータブル電子デバイスは画像の部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを位置合わせする。実施形態のいくつかにおいて、画像の部分と３次元モデルの１つもしくは複数のオブジェクトの表現とを位置合わせすることは、画像の部分の回転、拡大縮小（もしくはサイズ変更）及び／もしくはトリミングを含む。実施形態のいくつかにおいて、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と画像の少なくとも部分とをユーザ入力に依存せず位置合わせする。例えば、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と画像の少なくとも部分とを自動的に位置合わせする。実施形態のいくつかにおいて、ポータブル電子デバイスは、画像の部分と３次元モデルの１つもしくは複数のオブジェクトの表現とをユーザ入力に依存せず位置合わせする。例えば、ポータブル電子デバイスは画像の部分と１つもしくは複数のオブジェクトの表現とを自動的に位置合わせする。
【００７７】
実施形態のいくつかにおいて、ポータブル電子デバイスはタッチセンシティブディスプレイデバイスを含む（６１０）。ポータブル電子デバイスは、タッチセンシティブディスプレイデバイス上で１つもしくは複数のタッチジェスチャを受信し、１つもしくは複数のタッチジェスチャに従って、３次元モデルの１つもしくは複数のオブジェクトの表現を位置合わせする。
【００７８】
実施形態のいくつかにおいて、１つもしくは複数のオブジェクトを位置合わせすることは、３次元モデルの１つもしくは複数のオブジェクトの表現を拡大縮小し、３次元モデルの１つもしくは複数のオブジェクトの表現を移動し、３次元モデルの１つもしくは複数のオブジェクトの表現を回転する、ことの１つもしくは複数を含む（６１２）。
【００７９】
実施形態のいくつかにおいて、画像は１つもしくは複数の拡張現実マーカ（バーコード、マトリックスバーコード、ＱＲコード（登録商標）など）を含む（６１４）。実施形態のいくつかにおいて、１つもしくは複数の拡張現実マーカは１つもしくは複数の現実のオブジェクトに物理的に付加される。ポータブル電子デバイスは、１つもしくは複数の拡張現実マーカの位置の各々に従って、３次元モデルの１つもしくは複数のオブジェクトの表現を位置合わせする。例えば、ポータブル電子デバイスは、１つもしくは複数の拡張現実マーカの既知位置に基づいて、１つもしくは複数の拡張現実マーカによって、オブジェクトの各々の位置を判定する。
【００８０】
実施形態のいくつかにおいて、ポータブル電子デバイスは、１つもしくは複数の拡張現実マーカの少なくとも１つに従って、ポータブル電子機器の位置及び方向の１つもしくは複数を較正する（６１６）。例えば、ポータブル電子デバイスは、１つもしくは複数の拡張現実マーカの既知位置に基づいて、ポータブル電子デバイスの位置を判定する。実施形態のいくつかにおいて、（ポータブル電子デバイスは１つもしくは複数の拡張現実マーカの画像を取得することが可能であるため、）ポータブル電子デバイスが１つもしくは複数の拡張現実マーカに隣接することが、判定される。実施形態のいくつかにおいて、ポータブル電子デバイスのより正確な位置は、一つもしくは複数の拡張現実マーカのサイズ及び１つもしくは複数の拡張現実マーカが画像に表れる角度に基づいて判定される。実施形態のいくつかにおいて、ポータブル電子機器は、拡張現実マーカの各々の既知方向に基づいて、ポータブル電子機器の方向を判定する。
【００８１】
実施形態のいくつかにおいて、リモートサーバからの１つもしくは複数の拡張現実マーカの情報がポータブル電子デバイスで受信される（６１８）。例えば、図１に示されるポータブル電子デバイス１３０−１はサーバ１０２から１つもしくは複数の拡張現実マーカの情報を受信してもよい。実施形態のいくつかにおいて、１つもしくは複数の拡張現実マーカの情報は、拡張現実マーカの各々のパターン４２０、位置４２２及び方向４２４の一つもしくは複数を含む（図４）。
【００８２】
実施形態のいくつかにおいて、複数の拡張現実マーカの情報はリモートサーバ（例えば、図３のサーバ１０２のマーカデータ３３０）に保存される（６２０）。複数の拡張現実マーカの情報はポータブル電子デバイスで受信される１つもしくは複数の拡張現実マーカの情報を含み、ポータブル電子デバイスで受信された１つもしくは複数の拡張現実マーカはポータブル電子デバイスの位置に従って選択される。例えば、ポータブル電子デバイスは、ポータブル電子デバイスに隣接しない拡張現実マーカの情報を受信せずに、ポータブル電子デバイスに隣接する拡張現実マーカの情報を受信する。これにより、リモートサーバとポータブル電子デバイスとの間で伝送されるデータ量を低減することが可能となる。ポータブル電子デバイスがポータブル電子デバイスから遠く離隔している１つもしくは複数の拡張現実マーカを有する画像を取得する可能性は低いので、ポータブル電子デバイスのユーザによって知覚されるポータブル電子デバイスのオペレーションに悪い影響を及ぼすことはない。実施形態のいくつかにおいて、ポータブル電子デバイスが第１領域から第１領域とは異なる第２領域へ移動している間、ポータブル電子デバイスは第１領域に隣接する１つもしくは複数の拡張現実マーカの情報及び第２領域に隣接する１つもしくは複数の拡張現実マーカの情報を受信する。実施形態のいくつかにおいて、ポータブル電子デバイスが第１領域から第２領域に移動した後、ポータブル電子デバイスは、第１領域に隣接する１つもしくは複数の拡張現実マーカの情報を受信せずに、第２領域に隣接する１つもしくは複数の拡張現実マーカの情報を受信する。
【００８３】
ポータブル電子デバイスは、画像の１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして画像の少なくとも１つもしくは複数の部分を保存する（６２２）。例えば、実施形態のいくつかにおいて、ポータブル電子デバイスは特定のオブジェクト（例えば、画像のドアに対応する３次元モデルのドアオブジェクト）のテクスチャデータ（例えば、図４のテクスチャ４１６）として画像の部分（例えば、図５Ａの画像のドア）を保存する。実施形態のいくつかにおいて、ポータブル電子デバイスは、ローカルデータベース２４６（図２）にテクスチャデータとして画像の部分を保存する。実施形態のいくつかにおいて、ポータブル電子デバイスはリモートサーバにテクスチャデータ（例えば、図３の３次元モデルデータ３４０）として保存されるべき画像の部分を送信する。
【００８４】
実施形態のいくつかにおいて、ポータブル電子デバイスは、画像のオブジェクトの各々のテクスチャデータとして複数の画像を保存する。例えば、単一のオブジェクトは、複数の別個の画像のテクスチャデータに対応してもよい（例えば、異なる時間に異なる影を含む壁、異なる時間に異なる板書を含む黒板など）。
【００８５】
実施形態のいくつかにおいて、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と、カメラによって取得された１つもしくは複数のオブジェクトのビデオと、を同時に表示する（６２４）。実施形態のいくつかにおいて、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの表現と、カメラによって取得された１つもしくは複数のオブジェクトのライブビデオと、を同時に表示する。例えば、ポータブル電子デバイスは、リアルタイムで１つもしくは複数のオブジェクトのライブビデオを取得し表示する。実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの表現は、ポータブル電子デバイスの位置及び方向に従ってリアルタイムで更新される。例えば、ポータブル電子デバイスが横方向に揺らされた場合、実際のオブジェクトの表示が変化し、３次元モデルの１つもしくは複数のオブジェクトの表現も更新される。３次元モデルの１つもしくは複数のオブジェクト表現と、ビデオの１つもしくは複数のオブジェクトと、は少なくとも部分的に重畳する。１つもしくは複数のオブジェクトのビデオと３次元モデルの１つもしくは複数のオブジェクトの表現とを同時に表示しながら、ポータブル電子デバイスはユーザ入力を受け取り、受け取ったユーザ入力に応じて、ユーザ入力のタイミングに従ってビデオから選択された画像の少なくとも部分を、ビデオの１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとして保存する。例えば、ポータブル電子デバイスは、グラブボタン（図５Ｂ）に対応する位置でタッチセンシティブ面へのユーザ入力を検出し、ユーザ入力が検出されたときに表示されているビデオのフレームを保存する。画像の部分と、３次元モデルの１つもしくは複数のオブジェクトの表現と、は少なくとも部分的に重畳する。
【００８６】
実施形態のいくつかにおいて、ポータブル電子デバイスは位置の各々で複数の画像を取得し、複数の画像に基づいて位置の各々の３次元モデルの各々を生成する（６２６）。例えば、ポータブル電子デバイスは複数の部屋の画像を取得することが可能である。実施形態のいくつかにおいて、ポータブル電子デバイスは複数の画像をつなぎ合せることによって部屋のパノラマ表示を用意する。次に、ポータブル電子デバイスはエッジ検出を用いることにより壁を識別する。例えば、縦方向の線は、２つの壁が合わさる位置として認識されてもよい。実施形態のいくつかにおいて、２つの壁の影は各々の壁の方向を判定するために使用される。壁の位置及び方向に基づいて、ポータブル電子デバイスは部屋の３次元モデルを生成する。
【００８７】
実施形態のいくつかにおいて、ポータブル電子デバイスは方向センサを含む（６２８）。ポータブル電子デバイスは、複数の画像の方向情報を用いて、各々の位置で複数の画像を取得し、複数の画像及び方向情報に基づいて各々の位置の３次元モデルの各々を生成する。上記部屋モデル例において、ポータブル電子デバイスは、部屋のより正確な３次元モデルを生成するために複数の画像の方向情報を使用してもよい（例えば、東側の壁の画像、北側の壁の画像など）。
【００８８】
実施形態のいくつかにおいて、画像の少なくとも１つもしくは複数の画像が画像の１つもしくは複数のオブジェクトの１つもしくは複数のためのテクスチャデータとしてリモートサーバに送信される（６３０）。例えば、ポータブル電子デバイスは、テクスチャデータとしてリモートサーバに保存される画像の部分を送信してもよい（例えば、図３の３次元モデルデータ３４０）。
【００８９】
実施形態のいくつかにおいて、ポータブル電子デバイス（例えば、図１のポータブル電子デバイス１３０−１）とは異なる複数のポータブル電子デバイス（例えば、図１のポータブル電子機器１３０−２〜１３０−ｎ）からリモートサーバに、他のテクスチャデータが送信される（６３２）。例えば、複数のポータブル電子デバイスが複数のユーザに提供されてもよい。ユーザの各々は、特定の領域（例えば、特定のビルの内部）のテクスチャデータを取得するために、ポータブル電子デバイスの各々を使用してもよい。複数のポータブル電子デバイスがテクスチャデータを取得するので、複数のオブジェクトのテクスチャデータを取得する速さを改善することが可能となる。
【００９０】
実施形態のいくつかにおいて、ポータブル電子デバイスはテクスチャデータを必要とする３次元モデルの１つもしくは複数のオブジェクトを示す情報をリモートサーバから受信する。例えば、リモートサーバは、特定のオブジェクト（例えば、図４の「オブジェクト１」４０４−１）がテクスチャデータ（例えば、図４のテクスチャ４１６）を有さないことを判定し、ポータブル電子デバイスに指標を送信する。実施形態のいくつかにおいて、当該指標は、ポータブル電子デバイスのオーバヘッドマップに表示される。実施形態のいくつかにおいて、当該指標は３次元モデルの１つもしくは複数のオブジェクトの表現と共に表示されている。例えば、テクスチャデータを有さないオブジェクトは異なる色で表示されてもよい。これにより、ユーザエラー（例えば、ユーザが１つもしくは複数のオブジェクトのテクスチャデータを取得し損ねる）を低減することが可能となる。
【００９１】
実施形態のいくつかにおいて、ポータブル電子デバイスは、３次元モデルの１つもしくは複数のオブジェクトの情報及び３次元モデルの１つもしくは複数のオブジェクトのテクスチャデータからレンダリングされる画像を受信し、レンダリングされた画像の少なくとも部分を表示する（６３４）。例えば、リモートサーバ１０２の３次元モデルエンジン３２２(図３）は、３次元モデルの１つもしくは複数のオブジェクトの情報（例えば、形状、サイズ及び方向）及びテクスチャデータから画像をレンダリングし、ポータブル電子デバイスにレンダリングした画像を送信する。ポータブル電子デバイスは、レンダリング画像を受信し、レンダリング画像の少なくとも部分を表示する。
【００９２】
実施形態のいくつかにおいて、ポータブル電子デバイスはタッチセンシティブディスプレイデバイスのタッチジェスチャを受信し、タッチジェスチャに従ってテクスチャデータを調整する（６３６）。例えば、３次元モデルのドアオブジェクトのテクスチャデータとして使用される場合、ドアの画像はドアオブジェクトと適切に位置合わせすることができないかもしれない（例えば、ドアの画像はドアオブジェクトに対して傾いているかもしれない）。ポータブル電子デバイスは１つもしくは複数のタッチジェスチャ（例えば、回転ジェスチャ）を受信し、それに従ってテクスチャデータを調整する（例えば、ドアオブジェクトと位置合わせするためにドアの画像を回転する）。
【００９３】
実施形態のいくつかにおいて、テクスチャを調整することは、３次元モデルの１つもしくは複数のオブジェクトにテクスチャデータを位置付けすること、テクスチャデータをリサイズすること、及びテクスチャデータをトリミングすること、の１つもしくは複数を含む（６３８）。
【００９４】
実施形態のいくつかにおいて、３次元モデルの１つもしくは複数のオブジェクトの情報からレンダリングされた画像及び３次元モデルの１つもしくは複数のオブジェクトのテクスチャデータは１つもしくは複数のオブジェクトの少なくとも部分にマッピングされている複数のテクスチャタイル画像を含む。テクスチャタイルの各々はテクスチャデータに対応する。例えば、テクスチャデータはオブジェクトの部分を表現してもよい（例えば、ドアの部分の木目画像）。このようなケースにおいて、テクスチャデータはテクスチャタイルとして使用されてもよく、複数のテクスチャタイルは１つもしくは複数のオブジェクトの表面にマッピングされる（例えば、テクスチャデータは１つもしくは複数のオブジェクトの表面をカバーするように複数回使用される）。
【００９５】
実施形態のいくつかにおいて、ポータブル電子デバイスはカメラ配置の情報を受信する（６４０）。カメラ配置の情報は、１つもしくは複数のオブジェクトに関する少なくとも視角及び視野に基づく。例えば、図５Ｆ及び５Ｇに関して上記したように、ポータブル電子デバイスは推奨カメラ位置を受信して表示する。
【００９６】
説明のために、特定の実施形態について上記した。しかしながら、上記の例示的な説明は網羅的であること、開示の形態通りの発明に限定すること、を意図していない。多くの修正及び変更が上記開示の観点から可能である。発明の原理及び実用的な応用をもっとも適切に説明するために、実施形態を選択し、記載した。上記説明により、本発明を最適に実施することが可能であり、考えられ得る特定の使用に適するように、様々な実施形態に様々な変更を加えることが可能である。
【００９７】
さらに、実施形態の全体的な理解を支援するために多くの特定の詳細を記載した。しかしながら、これらの特定な詳細を含まずに、本発明を実施することは可能である。よく知られている事物、方法、プロシージャ、構成要素及びネットワークは、本発明の態様を不明瞭にすることを防ぐために詳細には記載されていない。
【００９８】
第１、第２などの用語を様々な構成要素を記述するために使用したが、これの構成要素はこれらの用語によって限定されるものではない。これらの用語は１つの構成要素から他の構成要素を区別するために使用されているに過ぎない。本発明の範囲から逸脱せずに、例えば、第１領域を第２領域という用語に置き換え、同様に、第２領域を第１領域という用語に置き換えることが可能である。第１領域及び第２領域は双方とも領域であるが、同一の領域ではない。
【００９９】
実施形態の記述に使用される用語は特定の実施形態を記述する目的のためのものであり、発明を限定することを意図していない。発明の説明及び添付の請求項において使用される単数を示す「１つの」などによって示される構成要素は、明らかに除外されていない限り、複数の構成要素も含む。ここで使用される用語「及び／もしくは」は、関連する構成要素のいずれか、及び、１つもしくは複数の全ての可能な組み合わせを包含する。さらに、用語「含む」は、記載された特徴、数、ステップ、オペレーション、及び／もしくは構成要素などの存在を特定するが、１つもしくは複数の他の特徴、数、ステップ、オペレーション、構成要素、及び／もしくは、これらの組み合わせを除外することは意図していない。
【符号の説明】
【０１００】
１００  システム
１０２  サーバ
１３０  ポータブル電子デバイス
２０２  ＣＰＵ
２０６  ユーザインターフェイス
２１２  センサ
２２０  メモリ
３０２  ＣＰＵ
３１６  メモリ
【図１】
2015015023.tif 000003
【図４】
2015015023.tif 000004
【図６Ａ】
2015015023.tif 000005
【図６Ｂ】
2015015023.tif 000006
【図６Ｃ】
2015015023.tif 000007
【図２】
2015015023.tif 000008
【図３】
2015015023.tif 000009
【図５Ａ】
2015015023.tif 000010
【図５Ｂ】
2015015023.tif 000011
【図５Ｃ】
2015015023.tif 000012
【図５Ｄ】
2015015023.tif 000013
【図５Ｅ】
2015015023.tif 000014
【図５Ｆ】
2015015023.tif 000015
【図５Ｇ】
2015015023.tif 000016