特許第6335505号(P6335505)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ダッソー システムズ アメリカス コーポレイションの特許一覧

<>
  • 特許6335505-仮想オブジェクトの配置補正 図000002
  • 特許6335505-仮想オブジェクトの配置補正 図000003
  • 特許6335505-仮想オブジェクトの配置補正 図000004
  • 特許6335505-仮想オブジェクトの配置補正 図000005
  • 特許6335505-仮想オブジェクトの配置補正 図000006
  • 特許6335505-仮想オブジェクトの配置補正 図000007
  • 特許6335505-仮想オブジェクトの配置補正 図000008
  • 特許6335505-仮想オブジェクトの配置補正 図000009
  • 特許6335505-仮想オブジェクトの配置補正 図000010
  • 特許6335505-仮想オブジェクトの配置補正 図000011
  • 特許6335505-仮想オブジェクトの配置補正 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6335505
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】仮想オブジェクトの配置補正
(51)【国際特許分類】
   G06T 19/00 20110101AFI20180521BHJP
【FI】
   G06T19/00 600
【請求項の数】15
【外国語出願】
【全頁数】18
(21)【出願番号】特願2013-264146(P2013-264146)
(22)【出願日】2013年12月20日
(65)【公開番号】特開2014-123376(P2014-123376A)
(43)【公開日】2014年7月3日
【審査請求日】2016年12月13日
(31)【優先権主張番号】13/725,994
(32)【優先日】2012年12月21日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】514180812
【氏名又は名称】ダッソー システムズ アメリカス コーポレイション
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ウダイ パサー
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2005−227876(JP,A)
【文献】 特開2004−126870(JP,A)
【文献】 特開2003−141569(JP,A)
【文献】 特表2007−529007(JP,A)
【文献】 欧州特許出願公開第2071510(EP,A1)
【文献】 国際公開第2004/113991(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
現実場面の仮想モデルの配置補正に使用するためのコンピュータ実施方法であって、
仮想オブジェクトおよび仮想基準オブジェクトを含む前記仮想モデルを生成するステップと、
前記現実場面内の現実のオブジェクトおよび現実の基準オブジェクトの少なくとも1つのデジタル画像を取得するステップであって、前記現実のオブジェクトは、前記仮想オブジェクトに対応し、前記現実の基準オブジェクトは、前記仮想基準オブジェクトに対応する、ステップと、
前記仮想モデル中の前記仮想基準オブジェクトを、前記現実場面中の前記現実の基準オブジェクトに位置合わせするステップであって、前記位置合わせするステップは、前記現実の基準オブジェクトについての前記仮想基準オブジェクトのプログラムによる調整を含む、ステップと、
前記仮想オブジェクト上の少なくとも1つの所定の点と前記現実のオブジェクト上の少なくとも1つの対応する点との間の画像ベースの位置の相違を計算するステップと、
前記仮想モデルに関する前記仮想オブジェクトの補正した配置が、前記現実場面中の前記現実のオブジェクトの配置に対応するように、前記計算した画像ベースの位置の相違に基づいて、前記仮想オブジェクトの位置および向きの少なくとも1つを調整するステップと、
前記仮想オブジェクトの前記補正した配置に関して前記仮想モデルを調整するステップと
を含むことを特徴とするコンピュータ実施方法。
【請求項2】
前記仮想モデルを生成する前記ステップは、前記仮想オブジェクト上で複数の特定可能な点に基づいて前記仮想オブジェクトのための配置変換を計算するステップを含むことを特徴とする請求項1に記載のコンピュータ実施方法。
【請求項3】
前記配置変換を計算する前記ステップは、前記複数の特定可能な点の少なくとも一部のユーザ選択を受信するステップを含むことを特徴とする請求項2に記載のコンピュータ実施方法。
【請求項4】
前記仮想モデルを生成する前記ステップは、
前記仮想オブジェクトおよび前記仮想基準オブジェクトを特定するステップと、
前記仮想オブジェクト上の前記少なくとも1つの所定の点、および前記仮想基準オブジェクト上の対応する少なくとも1つの所定の点を特定するステップと
を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
【請求項5】
前記仮想基準オブジェクト上の前記少なくとも1つの所定の点と、前記現実の基準オブジェクト上の少なくとも1つの対応する点とを実質上一致させるように、仮想ビューのプログラムによる調整をさらに含むことを特徴とする請求項4に記載のコンピュータ実施方法。
【請求項6】
前記仮想モデルの仮想ビューのプログラムによる調整と、
前記取得した少なくとも1つのデジタル画像に関して、前記仮想オブジェクト上の前記少なくとも1つの所定の点と前記現実のオブジェクト上の前記少なくとも1つの対応する点との間の前記画像ベースの位置の相違を計算するステップと
をさらに含むことを特徴とする請求項4に記載のコンピュータ実施方法。
【請求項7】
前記仮想オブジェクトの配置変換を繰り返すことによって、前記画像ベースの位置の相違を最小化するステップをさらに含むことを特徴とする請求項に記載のコンピュータ実施方法。
【請求項8】
現実場面の仮想モデルの配置補正に使用するためのコンピュータであって、
前記仮想モデル前記仮想モデルの仮想オブジェクト、および前記仮想モデルの仮想基準オブジェクトを記憶するように構成されたメモリ領域と、
前記メモリ領域に連結されたプロセッサであって、
前記仮想オブジェクトおよび前記仮想基準オブジェクトを含む前記仮想モデルを生成し、
前記現実場面内の現実のオブジェクトおよび現実の基準オブジェクトの少なくとも1つのデジタル画像を取得し、前記現実のオブジェクトは、前記仮想オブジェクトに対応し、前記現実の基準オブジェクトは、前記仮想基準オブジェクトに対応し、
前記仮想モデル中の前記仮想基準オブジェクトを、前記現実場面中の前記現実の基準オブジェクトに位置合わせし、前記位置合わせすることは、前記現実の基準オブジェクトについての前記仮想基準オブジェクトのプログラムによる調整を含み、
前記仮想オブジェクト上の少なくとも1つの所定の点と前記現実のオブジェクト上の少なくとも1つの対応する点との間の画像ベースの位置の相違を計算し、
前記計算した画像ベースの位置の相違に基づいて、前記仮想オブジェクトの位置および向きの少なくとも1つを調整し、前記仮想モデルに関する前記仮想オブジェクトの補正した配置が、前記現実場面中の前記現実のオブジェクトの配置に対応するようにし、
前記仮想オブジェクトの前記補正した配置に関して前記仮想モデルを調整する
ように構成されたプロセッサと
を備えたことを特徴とするコンピュータ。
【請求項9】
前記プロセッサは、前記仮想オブジェクト上の複数の特定可能な点に基づいて前記仮想オブジェクトの配置変換を計算するようにさらに構成されたことを特徴とする請求項8に記載のコンピュータ。
【請求項10】
前記プロセッサは、前記複数の特定可能な点の少なくとも一部のユーザ選択を受信するようにさらに構成されたことを特徴とする請求項9に記載のコンピュータ。
【請求項11】
前記プロセッサは、
前記仮想オブジェクトおよび前記仮想基準オブジェクトを特定し、
前記仮想オブジェクト上の前記少なくとも1つの所定の点および前記仮想基準オブジェクト上の対応する少なくとも1つの所定の点を特定する
ようにさらに構成されたことを特徴とする請求項8に記載のコンピュータ。
【請求項12】
前記プロセッサは、前記仮想基準オブジェクト上の前記少なくとも1つの所定の点と、前記現実の基準オブジェクト上の少なくとも1つの対応する点とを実質上一致させるように、前記仮想モデルの仮想ビューをプログラムで調整するようにさらに構成されたことを特徴とする請求項11に記載のコンピュータ。
【請求項13】
前記プロセッサは、
前記仮想基準オブジェクト上の前記少なくとも1つの所定の点と、前記現実の基準オブジェクト上の少なくとも1つの対応する点とを実質上一致させるように前記仮想モデルの仮想ビューをプログラムで調整し、
前記取得した少なくとも1つのデジタル画像に関して、前記仮想オブジェクト上の前記少なくとも1つの所定の点と前記現実のオブジェクト上の前記少なくとも1つの対応する点との間の前記画像ベースの位置の相違を計算する
ようにさらに構成されたことを特徴とする請求項11に記載のコンピュータ。
【請求項14】
前記プロセッサは、前記仮想オブジェクトの配置変換を繰り返すことによって前記画像ベースの位置の相違を最小化するようにさらに構成されたことを特徴とする請求項に記載のコンピュータ。
【請求項15】
請求項1から7のいずれか一項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想オブジェクトの配置補正に関する。
【背景技術】
【0002】
本明細書に記載の実施形態は、一般的に、現実のオブジェクトおよび/または現実場面のグラフィック表示に関し、さらに詳細には、現実のオブジェクトを表す仮想オブジェクトの、3次元(3D)コンピュータグラフィックモデリングおよびシミュレーション、レイアウトおよび配置較正に関する。オブジェクトの配置は、オブジェクトの位置および向きの両方からなる。
【0003】
製造ワークセルの3次元のコンピュータグラフィックシミュレーションは、現在、製造プロセスのシミュレーションに用いられる。次に、プログラムまたはシミュレーションモデルは、工場現場にある、産業ロボット等の資源を駆動するコンピュータにダウンロードされる。このプロセスの一部として、(製造プロセスに用いられる機械、備品、加工中の品を含む)製造ワークセルの仮想3Dモデルは、工場現場の実際のワークセルの実際の位置および向きに一致するように、シミュレーションしたワークセルのレイアウトを調整する必要がある。こうすることによって、シミュレーションした製造プログラムは、到達可能性や衝突等の問題に関してプロセスを有効にすることができる。また、これによって、工場の産業ロボット等の製造資源にダウンロードされるオフラインプログラムを正しく動作させることができる。
【0004】
シミュレーションモデルの3D配置補正の既知の方法では、座標測定機、セオドライト、および/またはレーザ測距器等の高価で複雑な測定器具を用いる。しかしながら、そのような器具は、工場に設置する必要がある。工場で取得した測定データは、次に、3Dシミュレーションにインポートされ、モデルの調整に使われる。従って、このような既知の方法は、別個の装置を購入し、その装置を使えるようにユーザを訓練する必要がある。さらに、このような既知の方法は、異なる場所における複数のステップを必要とする。
【発明の概要】
【0005】
一態様においては、現実場面の仮想モデルの配置補正に使用するコンピュータ実施方法を提供する。方法は、仮想オブジェクトを含む仮想モデルを生成するステップと、その仮想オブジェクトに対応する、現実場面内の現実のオブジェクトの少なくとも1つのデジタル画像を取得するステップとを含む。方法は、また、仮想オブジェクト上の少なくとも1つの所定の点と現実のオブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算するステップと、その画像上の位置の相違に基づいて仮想オブジェクトの位置および/または向きを調整するステップと、仮想オブジェクトの補正した配置に対して仮想モデルを調整するステップとを含む。
【0006】
別の態様においては、現実場面の仮想モデルの配置補正に使用するコンピュータを提供する。コンピュータは、仮想モデルおよび仮想モデル内の仮想オブジェクトを記憶するように構成されたメモリ領域を含む。コンピュータは、また、メモリ領域に接続されたプロセッサを含む。プロセッサは、仮想オブジェクトを含む仮想モデルを生成し、かつ、その仮想オブジェクトに対応する、現実場面内の現実のオブジェクトの少なくとも1つのデジタル画像を取得するように構成される。プロセッサは、また、仮想オブジェクト上の少なくとも1つの所定の点と現実のオブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算し、その画像上の位置の相違に基づいて仮想オブジェクトの位置および/または向きを調整し、かつ、仮想オブジェクトの補正した配置に対して仮想モデルを調整するように構成される。
【0007】
別の態様においては、コンピュータプログラム製品は、現実場面の仮想モデルの配置補正に使用するコンピュータ実行可能コンポーネントを有する1つまたは複数の非一時的なコンピュータ可読記憶媒体を含む。コンポーネントは、仮想オブジェクトを含む仮想モデルをプロセッサに生成させる生成コンポーネントと、仮想オブジェクトに対応する、現実場面内の現実のオブジェクトの少なくとも1つのデジタル画像をプロセッサに取得させる取得コンポーネントとを含む。コンポーネントは、また、プロセッサに、仮想オブジェクト上の少なくとも1つの所定の点と現実のオブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算させ、その画像上の位置の相違に基づいて仮想オブジェクトの位置および/または向きを調整させ、かつ、仮想オブジェクトの補正した配置に対して仮想モデルを調整させる補正コンポーネントを含む。
【図面の簡単な説明】
【0008】
図1】現実場面の仮想モデルの配置補正に使用するコンピュータシステムの例を示す概略ブロック図である。
図2図1に示すコンピュータシステムの動作を示すフローチャートである。
図3図1に示すコンピュータシステムの動作をさらに示すフローチャートである。
図4A図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4B図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4C図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4D図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4E図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4F図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図4G図1に示すコンピュータシステムで使用されるクライアントデバイスのディスプレイの例を示す図である。
図5図1に示すサーバシステムおよび/またはクライアントデバイスと共に使用するコンピュータアーキテクチャの例を示す概略ブロック図である。
【発明を実施するための形態】
【0009】
本発明の例示の実施形態を以下に記載する。
【0010】
本明細書に引用した特許、公開出願および参考文献全ての教示は、参照により、その内容を全て本明細書に援用する。
【0011】
現実場面の仮想モデルの配置補正に使用する、コンピュータ実施方法、コンピュータデバイス、コンピュータシステム、およびコンピュータプログラム製品の例示の実施形態を本明細書に記載する。本明細書に記載の実施形態は、内蔵デジタルカメラ付きハンドヘルドタブレットコンピュータ、3Dグラフィックシミュレーション、またはバーチャルリアリティソフトウェア等を用いた、コンピュータグラフィックモデルにおける仮想オブジェクトの3D配置補正を容易にし、かつ、所望の空間較正を達成する方法を容易にする。本明細書に記載の実施形態は、ソフトウェアからの3Dモデル画像の数学的に厳密なレンダリングと共に、上記のハンドヘルドタブレットコンピュータに組み込まれた高解像度の写真機能および計算機能の組み合わせを活用する。その手法は、ユーザがワークセルの静止画像を少数枚デジタルカメラで撮り、その画像をタブレットコンピュータ上で、ワークセルモデルの3D仮想画像の上に重ね合わせるという、一種の「介在された現実」を伴う。しかしながら、本明細書に記載の実施形態は、仮想モデルへの画像の重ね合わせを必要としないことは、理解されたい。例えば、本明細書に記載の実施形態は、用途ごとに別個に位置の計算および位置の移動を追跡できるように、コンピュータデバイスに、画像および仮想モデルを並べて表示させることもできる。下記に詳述する計算手法により、仮想モデル内の仮想オブジェクトの3D配置を調整して、較正の問題を解決する。
【0012】
さらに、本明細書に記載の実施形態は、使用を簡単にし、手順を早め、測定および器具にかかるコスト並びに設置時間を大幅に減らす。さらに、本明細書に記載の実施形態は、3D配置調整の際に、タブレットコンピュータに内蔵されたデジタルカメラの、ハードウェア固有のカスタマイズまたは長さ基準の較正を不要にする手法を含む。さらに、本明細書に記載の実施形態は、オブジェクトの小さい寸法から大きい寸法まで拡大縮小が可能であり、かつ、下記に詳述するように、調整の精度を細かくすることも粗くすることもできる。
【0013】
本明細書では、産業資源および/または製造資源に関連して実施形態を記載するが、実施形態は、これらの使用に限定されないことは理解されたい。例えば、実施形態は、部屋のインテリア改装のインテリア設計に用いてもよく、その場合、再設計を開始する前に、家具等の既存のオブジェクトのレイアウトの3Dグラフィックモデルを、部屋の実際のレイアウトに正確に一致するように調整することができる。別の例は建築である。この場合、タブレットコンピュータを戸外に持ち出し、現地を歩きながら建物のデジタル画像を撮影して、実際の位置に対して仮想モデル内におおまかに配置した一連の建物の3Dモデルを調整することができる。
【0014】
図1は、現実場面の仮想モデルの配置補正に使用する、かつ/または、下記のプロセスおよび/または下記プロセスに関連し得る追加のプロセスの実行に使用する、コンピュータシステム100の例を示す概略ブロック図である。例示の実施形態においては、メモリ領域102は、現実場面のシミュレーションに関連するデータ等のデータの記憶に使用する1つまたは複数の記憶装置104を含む。記憶装置104は、1つまたは複数のデータベースとして実現してよく、かつ/または、単一もしくは複数の地理的場所に置かれてよい。一部の実施形態においては、メモリ領域102は、サーバシステム106に接続される。代替実施形態においては、メモリ領域102は、サーバシステム106と一体となっている。例示の実施形態においては、サーバシステム106は、1つまたは複数のクライアントデバイス108にネットワーク110を介して接続される。クライアントデバイス108は、ラップトップコンピュータ、タブレットコンピュータ、および/または、スマートフォンを含むモバイルクライアントデバイスを含んでよいが、必ずしもそれらに限らない。さらに、クライアントデバイス108は、デスクトップコンピュータ等の通常は可動でない据置型のクライアントデバイスを含んでよい。
【0015】
理解されるように、ネットワーク110は、インターネット等のパブリックネットワーク、LANまたはWAN等のプライベートネットワーク、またはそれらの任意の組み合わせであってもよく、また、ネットワーク110は、PSTNまたはISDNのサブネットワークを含むこともできる。ネットワーク110は、イーサネット(登録商標)ネットワーク等、有線であってもよく、EDGE、3G、4GまたはLTEの無線セルラーシステムを含むセルラーネットワーク等、無線であってもよい。無線ネットワークは、また、WiFi、Bluetooth(登録商標)、または既知の任意の他の無線通信形態であってよい。従って、ネットワーク110は、例示のためにすぎず、多少なりとも本進歩の範囲を限定するものではない。
【0016】
サーバシステム106および/またはクライアントデバイス108は、図5を参照して下記に記載するコンピュータアーキテクチャ等の任意の適切なコンピュータアーキテクチャであってもよく、既知の任意の他のコンピュータアーキテクチャであってもよい。さらに、サーバシステム106は、下記のプロセスおよび/または下記のプロセスに関連し得る任意の追加のプロセスを実行するように構成されることは理解されたい。
【0017】
一部の実施形態においては、サーバシステム106は、また、クライアントデバイス108が下記のプロセスを実行するように、クライアントデバイス108に必要に応じてメモリ領域102からデータを提供することができる。そのため、図1は、クラウドコンピューティング、分散コンピューティング等を介したコンピュータシステム100の実施を含む。さらに、一部の実施形態においては、サーバシステム106は、下記のプロセスを実行するためのコンピュータ可読命令を記憶し、ネットワーク110を介してクライアントデバイス108にそれらの命令を提供する。このようなコンピュータ可読命令は、現実場面の仮想モデルの配置補正に使用するコンピュータ実行可能コンポーネントを有する1つまたは複数の非一時的なコンピュータ可読記憶媒体を備えたコンピュータプログラム製品として実現してよい。下記にさら詳述するように、コンポーネントは、仮想オブジェクトを含む仮想モデルをプロセッサに生成させる生成コンポーネントと、仮想オブジェクトに対応する、現実場面内の現実のオブジェクトの少なくとも1つのデジタル画像をプロセッサに取得させる取得コンポーネントとを含む。コンポーネントは、また、プロセッサに、仮想オブジェクト上の少なくとも1つの所定の点と現実のオブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算させ、その画像上の位置の相違に基づいて仮想オブジェクトの位置および/または向きを調整させ、かつ、仮想オブジェクトの補正した配置に対して仮想モデルを調整させる補正コンポーネントを含む。
【0018】
図2は、図1に示すコンピュータシステム100の動作を示すフローチャート200である。図1および図2を参照すると、例示の実施形態においては、サーバシステム106は、現実場面のシミュレーションまたは仮想表示で使用する3Dモデル等の、現実場面またはワークセルの仮想モデルを、ネットワーク110を介してクライアントデバイス108に送信する(202)。クライアントデバイス108は、その仮想モデルをシミュレーションソフトウェアモジュールまたはバーチャルリアリティソフトウェアモジュールにロードし(204)、ユーザが空間配置を調整したい1つまたは複数の仮想オブジェクトの選択をユーザから受信する(206)。クライアントデバイス108は、また、仮想モデル内の基準オブジェクトまたは基準点の選択をユーザから受信する(208)。次に、クライアントデバイス108は、デジタルカメラ画像を、仮想3Dビュー上に重ね合わせて、または仮想3Dビューと並べて表示する(210)。クライアントデバイス108の3Dビューは、追加のユーザ入力に基づいて、仮想で回転、平行移動させることによって、仮想モデルの表示をズームおよび向きという点で所望の視点に合わせて、重ねられたカメラ画像に3Dビューがほぼ一致するように調整される(212)。次に、デジタル画像が、対応する3D仮想ビューと共に、クライアントデバイス108によって取得され(214)、クライアントデバイス108および/またはサーバ106に保存される。
【0019】
例示の実施形態においては、次に、ユーザは、部屋のレイアウト、工場現場、または建物の敷地等の現実場面でクライアントデバイス108を持ち、仮想モデルを伴うデジタルカメラ画像の表示(210)に異なる視点を得るように、クライアントデバイス108を持ったまま動く(216)。例示の実施形態においては、ユーザは、仮想3Dビューの表示を繰り返し調整し(212)、その都度、3Dビューと共に新しいデジタル画像を撮影する(214)。クライアントデバイス108および/またはサーバシステム106は、次に、フローチャート300で後述するように、撮影したデジタル画像(複数可)を用いて、対応する現実のオブジェクトと比較して仮想オブジェクトの位置および向きを特定する配置補正機能を呼び出す(218)。クライアントデバイス108および/またはサーバシステム106が配置補正機能を完了すると、現実場面内の現実のオブジェクトに対する仮想モデル内の仮想オブジェクトの位置および向きがより正確になる。配置補正を完了した製造シミュレーションまたは仮想表示は、空間的誤差および/または時間的誤差が減って改善される。一部の実施形態においては、クライアントデバイス108は、仮想オブジェクトの新しい位置および/または向き等の仮想オブジェクトおよび/または仮想モデルの特性を、メモリ領域102に記憶するために、サーバシステム106に送信する。このような実施形態においては、記憶されたデータには、その後のシミュレーションのために後にアクセスすることができる。
【0020】
図3は、図1に示すコンピュータシステム100の動作をさらに示すフローチャート300である。図1および図3を参照すると、例示の実施形態においては、サーバシステム106は、現実場面を表す仮想モデルを生成する(302)。サーバシステム106は、その仮想モデルを、ネットワーク110を介してクライアントデバイス108に送信する(304)。クライアントデバイス108は、シミュレーションソフトウェアモジュールまたはバーチャルリアリティソフトウェアモジュールに仮想モデルをロードする(306)。例示の実施形態においては、クライアントデバイス108は、仮想モデル内の仮想オブジェクトおよび基準オブジェクトを特定するユーザ入力を受信する(308)。仮想オブジェクトは、ユーザが本明細書に記載の配置補正ステップを行いたいオブジェクトである。基準オブジェクトは、それに対して配置補正を完了している関連のあるオブジェクトである。例えば、図4Aは、クライアントデバイス108のディスプレイ400の例を示す図である。クライアントデバイス108は、仮想オブジェクト402および基準オブジェクト404を表示する。
【0021】
一部の実施形態においては、クライアントデバイス108は、また、仮想オブジェクト402に関する1つまたは複数の所定の比較のための特徴、および基準オブジェクト404に関する1つまたは複数の対応する比較のための特徴を特定するユーザ入力を受信する(310)。代替実施形態においては、視覚処理アルゴリズムおよび/またはパターン認識アルゴリズムを用いて、仮想オブジェクト402および基準オブジェクト404の所定の特徴を特定してよい。図4Aに示すように、仮想オブジェクト402の3Dビューは、頂点406の形で3つの所定の特徴を有し、基準オブジェクト404は、頂点408の形で3つの対応する所定の特徴を有する。図4Bは、クライアントデバイス108のディスプレイ400の別の図で、クライアントデバイスに内蔵されたカメラによるデジタル画像を示す。図4Bに示すように、現実のオブジェクト410は、仮想オブジェクト402上のユーザが選択した点406に対応する3つの点412を有する。現実の基準オブジェクト414は、仮想基準オブジェクト404上のユーザが選択した点408に対応する3つの点416を有する。図4Aおよび図4Bは、仮想オブジェクト402、仮想基準オブジェクト404、現実のオブジェクト410、および現実の基準オブジェクト414を、立方体のオブジェクトとして表しているが、本明細書に記載の実施形態は立方体のオブジェクトを用いたものに限らないことは理解されたい。むしろ、本明細書に記載の実施形態は、特定可能な点の組を選択することができる任意の形のオブジェクトを用いてよい。さらに、所定の比較のための特徴406、408、412、および/または416は、図4Aおよび図4Bから分かるように頂点であるが、線、平面、または面であってよい。一部の実施形態においては、クライアントデバイス108は、特定した点406、408、412、および/または416の座標等、特定した点に関するデータをサーバシステム106に送信する。
【0022】
所定の点406および/または点408を特定した後、クライアントデバイス108は、特定した点406および/または点408に基づいて配置変換を計算する(312)。仮想モデルにおいては、各仮想オブジェクトの位置および向きは、6つのパラメータ(X、Y、Z、W、P、R)で定義される。第1の3つのパラメータ(X、Y、Z)は、仮想オブジェクトのx方向、y方向、z方向の位置を定める距離である。第2の3つのパラメータ(W、P、R)は、仮想オブジェクトの向きを定める角で、Wはヨー角、Pはピッチ角、Rはロール角を表す。これらの6つのパラメータは、まとめて、仮想オブジェクトの配置変換と呼ぶことができる。さらに、仮想オブジェクト402の配置変換は、仮想基準オブジェクト404が示す座標系等の基準座標系に対して計算される。詳細には、仮想オブジェクト402の配置変換は、仮想オブジェクト402上の特定した点406と基準オブジェクト404上の特定した点408の位置(X、Y、Z)に基づいて計算される。図4Aに示すように、仮想オブジェクト402上の点406は、配置変換の計算(312)に用いられる点である。例示の実施形態においては、基準オブジェクト404は、配置補正を完了するための基準座標系および寸法の長さ基準の両方を提供する。従って、基準オブジェクト404の3Dモデルは、特定した点408の配置に関して、現実の基準オブジェクト(図示せず)にほぼ一致する。言い換えれば、仮想基準オブジェクト404の特定した各点408と、現実の基準オブジェクトの対応する各点との間の各距離が、用途依存の所定の許容差内で同一となるはずである。
【0023】
配置変換を計算した後、クライアントデバイス108のカメラデバイスは、図2の210から214で説明したように、現実場面の3D仮想ビューと共に現実場面のデジタル画像を取得する(314)。さらに、図2を再度参照すると、クライアントデバイス108は、仮想基準オブジェクト404を操作する形で、ユーザ入力を受信する(212)。例えば、ユーザは、タッチスクリーンを用いて、回転、平行移動、および/またはズームの操作を用いる等して、仮想オブジェクト402および基準オブジェクト404が現実のオブジェクト410および基準オブジェクト414とほぼ同じ位置になるように再配置してよい。図4C図4Dは、クライアントデバイス108のディスプレイ400の別の図である。詳細には、図4Cは、仮想オブジェクト402および対応する現実のオブジェクト410、並びに、基準オブジェクト404および対応する現実の基準オブジェクト414を含み、現実場面を重ねて、または現実場面と同時に、クライアントデバイス108が仮想モデルを表示していることを示す。図4Cに示す状況は、ユーザが3D仮想ビューを現実の画像とほぼ同じ位置になるように調整した(212)後である。クライアントデバイス108および/またはサーバ106は、次に、基準オブジェクト404上の所定の点408が現実の基準オブジェクト414上の点416とほぼ一致するように、ビュー回転、ビュー平行移動、および/またはビューズームの細かい修正によって、3D仮想ビューのプログラムでの調整を開始する(316)。このプログラムでのビューの調整は、異なる視点から取得した(314)現実場面の各画像に対して行われる。図4Dは、ステップ316で仮想基準オブジェクト404を現実の基準オブジェクト414に一致させた状況を示している。詳細には、基準オブジェクト404の点408は、現実の基準オブジェクト414の対応する点416とほぼ同じ位置にある。さらに、ハードウェア固有のカメラ較正の必要性を無くし、基準オブジェクト404の寸法で表される長さ基準が、自動的に次の配置補正で確実に把握されるのは、このプログラムでの調整(316)による。
【0024】
基準オブジェクト404が、プログラムでの調整(316)によって現実の基準オブジェクト414とほぼ同じ位置になると、クライアントデバイス108および/またはサーバシステム106は、仮想オブジェクトの点406と現実のオブジェクト410上の対応する点412との間の不一致を判定する。詳細には、クライアントデバイス108および/またはサーバシステム106は、仮想オブジェクト402上の点406と現実のオブジェクト410上の対応する点412との画像上の位置の相違を計算する(318)。例示の実施形態においては、相違は、X方向およびY方向それぞれ、画素数で計算される。図4Eは、クライアントデバイス108のディスプレイ400の別の図である。詳細には、図4Eは、仮想オブジェクト402の点406の1つおよび現実のオブジェクト410の対応する点412に関して、X方向(デルタX)およびY方向(デルタY)それぞれの距離を示す。しかしながら、例示の実施形態においては、クライアントデバイス108および/またはサーバシステム106は、特定した点406および412の全ての点同士の相違を計算する(318)。例示の実施形態においては、それらの相違をメモリ領域102に記憶する。クライアントデバイス108および/またはサーバシステム106は、現実場面の異なる視点から取得した(314)各画像に対して、画像上の位置の相違を計算する。図4Fは、クライアントデバイス108のディスプレイの別の図である。詳細には、図4Fは、基準オブジェクト404を現実の基準オブジェクト414と再びほぼ同じ位置にした後の、現実場面の別の視点からの別の撮影画像に関して画像上の位置の相違の計算を示している。
【0025】
クライアントデバイス108および/またはサーバシステム106は、次に、仮想オブジェクト402と現実のオブジェクト410との画像上の位置の相違全ての組み合わせを最小化するように、仮想オブジェクト402の配置変換を繰り返す(320)。一実施形態においては、クライアントデバイス108および/またはサーバシステム106は、一連の可変パラメータを調整することによってコスト関数を最小化する標準的な非線形回帰を用いる。例示の実施形態においては、コスト関数は、計算したデルタXおよびデルタYの相違の全てに関する二乗平均平方根(RMS)誤差の和である。可変パラメータは、仮想オブジェクト402の(X、Y、Z、W、P、R)の値、すなわち、仮想オブジェクト402の計算した配置変換となる。この最小化ステップ320の結果に基づいて、クライアントデバイス108および/またはサーバシステム106は、仮想オブジェクト402の位置および/または向きを調整し(322)、仮想オブジェクト402の補正した配置に対して仮想モデルを調整する(324)。図4Gは、クライアントデバイス108のディスプレイの別の図である。詳細には、図4Gは、仮想オブジェクト402および仮想モデルを全体として、向きおよび/または位置を再度変更した最終結果を示す。
【0026】
上記ステップは、単一の仮想オブジェクトの位置調整にのみ基づいて仮想モデルを調整することを記載しているが、本明細書に記載の実施形態は、複数の仮想オブジェクトの位置を、一度に1つまたは複数調整することを意図していることを理解されたい。例示の実施形態においては、各仮想モデルの調整には同じ基準オブジェクトを用いる。しかしながら、一部の実施形態においては、異なる仮想オブジェクトに対しては異なる基準オブジェクトを用いてよく、および/または、オブジェクトではなく単に空間内の基準点を用いてよい。
【0027】
図5は、サーバシステム106および/またはクライアントデバイス108(それぞれ図1に示す)と共に用いられるコンピュータアーキテクチャ500の例の概略ブロック図である。
【0028】
例示の実施形態においては、コンピュータアーキテクチャ500は、上記のプロセスおよび/または上記のプロセスに関連し得る任意の追加のプロセスを実行する1つまたは複数のプロセッサ(CPU)502を含む。「プロセッサ」という語は、一般に、システムおよびマイクロコントローラを含む任意のプログラム可能システム、RISC(reduced instruction set circuits)、ASIC(application−specific integrated circuits)、プログラム可能論理回路、および/または、本明細書に記載の機能を実行することができる任意の他の回路またはプロセッサを指すことを理解されたい。上記の例は、例示のためのものであり、「プロセッサ」という語の定義および/または意味を多少なりとも制限するものではない。
【0029】
上記のプロセスおよび/または上記のプロセスに関連し得る任意の追加のプロセスのステップは、コンピュータ実行可能命令として、例えばシステムバス506を介してプロセッサ502に動作可能および/または通信可能に接続されるメモリ領域504等に記憶してよい。本明細書において、「メモリ領域」は、一般に、現実場面の仮想モデルの配置補正に役立つ、かつ/または、上記のプロセスおよび/または上記のプロセスに関連し得る追加のプロセスの実行に使用される、1つまたは複数のプロセッサによって実行可能な非一時的なプログラムコードおよび命令を記憶する任意の手段を指す。メモリ領域504は、1つまたは複数の形態のメモリを含んでよい。例えば、メモリ領域504は、RAM(random−access memory)508を含んでよく、RAM508は、不揮発性RAM、磁気RAM、強誘電体RAM、および/または他の形態のRAMを含むことができる。メモリ領域504は、また、ROM(read−only memory)510および/またはフラッシュメモリおよび/またはEEPROM(electrically−programmable read−only memory)を含んでよい。HDD(hard−disk drive)512等の、任意の他の適切な磁気メモリ、光学メモリ、および/または半導体メモリを、単独で、または他の形態のメモリと共に、メモリ領域504に含んでよい。HDD512を、また、プロセッサ502とのメッセージの送受信に使用するためにディスクコントローラ514に接続してよい。さらに、メモリ領域504は、また、適切なカートリッジディスク、CD−ROM、DVD、またはUSBメモリ等の取り外し可能または着脱可能なメモリ516であってもよく、それらを含んでもよい。上記の例は、例示のためのものであり、「メモリ領域」と言う語の定義および/または意味を多少なりとも制限するものではない。
【0030】
コンピュータアーキテクチャ500は、また、ディスプレイコントローラ520に、動作可能に接続等、接続されるディスプレイデバイス518を含む。ディスプレイコントローラ520は、ディスプレイデバイス518が表示するためのデータを、システムバス506を介して受信する。ディスプレイデバイス518は、モニタ、テレビのディスプレイ、プラズマディスプレイ、LCD(liquid crystal display)、LED(light−emitting diode)ディスプレイ、OLED(organic LED)ディスプレイ、ポリマーLEDディスプレイ、表面電界ディスプレイ、映像および/または反射像を含むディスプレイ、または任意の他の適切な電子デバイスもしくはディスプレイ機構であってよいが、それらに限らない。さらに、ディスプレイデバイス518は、タッチスクリーン522を、タッチスクリーン522に関連付けられたタッチスクリーンコントローラ524と共に含んでよい。上記の例は例示のためのものであり、「ディスプレイデバイス」という語の定義および/または意味を多少なりとも限定するものではない。
【0031】
さらに、コンピュータアーキテクチャ500は、ネットワーク(図5には示していない)との通信に用いるネットワークインタフェース526を含む。さらに、コンピュータアーキテクチャ500は、キーボード528、および/または、ローラボール、マウス、タッチパッド等のポインティングデバイス530等、1つまたは複数の入力装置を含む。タッチスクリーン522およびそのコントローラ524は、統合されたキーボード528および/またはポインティングデバイス530として考えてもよい。入力装置は、I/O(input/output)インタフェース532に接続され、I/Oインタフェース532によって制御される。I/Oインタフェース532は、さらに、システムバス506に接続される。コンピュータアーキテクチャ500は、また、少なくとも1つのデジタルカメラ534を、デジタルカメラ534に関連付けられたデジタルカメラコントローラ536と共に含む。
【0032】
ディスプレイデバイス518、キーボード528、ポインティングデバイス530、並びに、ディスプレイコントローラ520、ディスクコントローラ514、ネットワークインタフェース526、およびI/Oインタフェース532に関する一般的な特徴および機能は知られているので、簡潔にするため、本明細書では記載を省略する。
【0033】
図2図5を参照すると、動作中、プロセッサ502は、現実場面を表す仮想モデルを生成し、その仮想モデルをシミュレーションソフトウェアモジュールまたはバーチャルリアリティソフトウェアモジュールにロードする。例示の実施形態においては、プロセッサ502は、仮想モデル内の仮想オブジェクトおよび基準オブジェクトを特定するユーザ入力を、例えば、タッチスクリーン522を介して受信する。仮想オブジェクトは、ユーザが本明細書に記載の配置補正ステップを行いたいオブジェクトである。基準オブジェクトは、配置補正をそれに対して完了しているオブジェクトである。
【0034】
一部の実施形態においては、プロセッサ502は、また、仮想オブジェクト上の1つまたは複数の所定の点および基準オブジェクト上の1つまたは複数の対応する点を特定するユーザ入力を受信する。所定の点を特定した後、プロセッサ502は、特定した点に基づいて配置変換を計算する。さらに、仮想オブジェクトの配置変換を、基準オブジェクト等の基準点に対して計算する。配置変換計算後、カメラデバイス534は、仮想オブジェクトに対応する、現実場面内の現実のオブジェクトのデジタル画像を取得する。さらに、画像取得中、プロセッサ502は、3D仮想ビューを操作する形で、ユーザ入力を受信する。例えば、ユーザは、タッチスクリーン522を用いて、回転操作、平行移動操作、および/またはズーム操作を用いる等して、基準オブジェクトが現実の基準オブジェクトとほぼ同じ位置になるように再配置してよい。このおおよその位置合わせの後、プロセッサ502は、基準オブジェクトの点が現実の基準オブジェクトの点にほぼ一致するように、ビュー回転、ビュー平行移動、および/またはビューズームの細かい修正によって、3D仮想ビューをプログラムで調整する。
【0035】
基準オブジェクトが現実の基準オブジェクトとほぼ同じ位置になると、プロセッサ502は、仮想オブジェクトの点と現実のオブジェクト上の対応する点との間の不一致を判断する。詳細には、プロセッサ502は、仮想オブジェクト上の点と現実のオブジェクト上の対応する点との画像上の位置の相違を計算する。例示の実施形態においては、相違は、X方向およびY方向それぞれ、画素数で計算される。プロセッサ502は、現実場面の異なる視点から取得した各画像に対して、この画像上の位置の相違を計算する。
【0036】
プロセッサ502は、次に、画像の位置の相違全ての組み合わせを最小化するように、仮想オブジェクトの配置変換を繰り返す。詳細には、プロセッサ502は、一連の可変パラメータを調整することによってコスト関数を最小化する標準的な非線形回帰を用いる。その最小化ステップに基づいて、プロセッサ502は、仮想オブジェクトの位置および/または向きを調整し、仮想オブジェクトの補正した配置に対して仮想モデルを調整する。
【0037】
現実場面の仮想モデルの配置補正に使用する、コンピュータシステム、コンピュータデバイス、コンピュータ実施方法、および、コンピュータプログラム製品の例示の実施形態を、上記に詳述した。これらの実施形態は、本明細書に記載の特定の実施形態に限定されず、方法の動作、ならびに/または、システムおよび/または装置のコンポーネントは、本明細書に記載の他の動作および/またはコンポーネントとは独立して別個に用いてよい。さらに、記載の動作および/またはコンポーネントは、他のシステム、方法、および/または装置で定義してもよく、それらと組み合わせて用いてもよく、かつ、本明細書に記載のシステム、方法、および記憶媒体と共にのみ実施することに限定されない。
【0038】
本明細書に記載のコンピュータアーキテクチャを有するコンピュータデバイス等のコンピュータデバイスは、少なくとも1つのプロセッサまたは処理ユニット、およびシステムメモリを含む。コンピュータデバイスは、典型的には、少なくとも何らかの形態のコンピュータ可読媒体を有する。例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むが、それらに限らない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶する任意の方法または技術で実施される、揮発性媒体、不揮発性媒体、取り外し可能な媒体、および取り外し不可能な媒体を含む。通信媒体は、典型的に、コンピュータ可読命令、データ構造、プログラムモジュール、搬送波または他の搬送機構等の変調データ信号における他のデータを実現し、かつ、任意の情報伝達媒体を含む。当業者は、変調データ信号に精通していようが、変調データ信号は、その特性の1つまたは複数を、その信号に情報を符号化するように設定または変更したものである。上記の任意のものの組み合わせも、コンピュータ可読媒体の範囲に含まれる。
【0039】
さらに、本発明の実施形態は、現実場面の仮想モデルの配置補正に使用するコンピュータ実行可能コンポーネントを有する1つまたは複数の非一時的なコンピュータ可読記憶媒体を備えたコンピュータプログラム製品として実現してよい。コンポーネントは生成コンポーネントを含む。生成コンポーネントをプロセッサが実行すると、プロセッサは仮想オブジェクトを含む仮想モデルを生成する。また、生成コンポーネントによって、プロセッサは、複数の特定可能な点の少なくとも一部に対するユーザ選択を受信し、仮想オブジェクト上のその複数の特定可能な点に基づいて、仮想オブジェクトの配置変換を計算する。さらに、生成コンポーネントによって、プロセッサは、仮想オブジェクトおよび対応する基準オブジェクトを特定し、仮想オブジェクト上の少なくとも1つの所定の点および基準オブジェクト上の対応する点を特定する。
【0040】
コンポーネントは、また、取得コンポーネントを含む。取得コンポーネントをプロセッサが実行すると、プロセッサは、仮想オブジェクトに対応する、現実場面内の現実のオブジェクトの少なくとも1つのデジタル画像を取得する。さらに、コンポーネントは補正コンポーネントを含む。補正コンポーネントをプロセッサが実行すると、プロセッサは、仮想オブジェクト上の少なくとも1つの所定の点と現実のオブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算し、その画像上の位置の相違に基づいて仮想オブジェクトの位置および/または向きを調整し、仮想オブジェクトの補正した配置に対して仮想モデルを調整する。また、補正コンポーネントによって、プロセッサは、基準オブジェクトの点が現実の基準オブジェクの点とほぼ一致するように、ビュー回転、ビュー平行移動、および/またはビューズームの細かい修正によって、3D仮想ビューのプログラムでの調整を行う。次に、補正コンポーネントによって、プロセッサは、基準オブジェクト上の少なくとも1つの所定の点と現実の基準オブジェクト上の少なくとも1つの対応する点との画像上の位置の相違を計算する。一部の実施形態においては、補正コンポーネントによって、プロセッサは、画像上の位置の相違全てを組み合わせたものを最小化するように、仮想オブジェクトの配置変換を繰り返す。
【0041】
本発明を例示のコンピュータシステム環境に関連して記載したが、本発明の実施形態は、多くの他の汎用もしくは特定用途のコンピュータシステム環境またはコンピュータシステム構成と共に動作可能である。コンピュータシステム環境は、本発明のいかなる態様の使用または機能の範囲にも限定されない。さらに、コンピュータシステム環境は、例示の動作環境に示すコンポーネントの任意の1つまたは組合せに依存すると解釈するべきでなく、それらを必要とするとも解釈するべきではない。本発明の態様に使用するのに適切と思われる周知のコンピュータシステム、コンピュータ環境および/またはコンピュータ構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、ラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、携帯電話、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスの任意のシステムまたはデバイスを含む分散コンピュータ環境等を含むが、それらに限らない。
【0042】
本発明の実施形態は、プログラムコンポーネントまたはプログラムモジュール等の、1つまたは複数のコンピュータまたは他のデバイスで実行されるコンピュータ実行可能命令という一般的状況で記載してよい。本発明の態様は、任意の数および編成のコンポーネントまたはモジュールで実施してよい。例えば、本発明の態様は、図に図示されて本明細書に記載された、特定のコンピュータ実行可能命令、または、特定のコンポーネントもしくは特定のモジュールに限定されない。本発明の代替実施形態は、図示されて本明細書に記載された機能より多いまたは少ない機能を有する、様々なコンピュータ実行可能命令またはコンポーネントを含んでよい。
【0043】
図示されて本明細書に記載された本発明の実施形態の動作の実行の順序は、特段の記載のない限り、必須ではない。すなわち、動作は、特段の記載のない限り、任意の順序で行ってよく、かつ、本発明の実施形態は、本明細書に記載の動作に追加の動作を含んでもよく、記載の動作より少ない動作を含んでもよい。例えば、ある特定の動作を別の動作の前、同時、または後に実行することは本発明の態様の範囲内にあるものとする。
【0044】
本発明の態様または本発明の実施形態の要素を述べるとき、冠詞「1つの」「1つの」「その」および「前記」は、1つまたは複数の要素があることを意味する。「備える」「含む」「有する」等の語は、包括的な語であって、列挙した要素以外に追加の要素があってよいことを意味する。
【0045】
この明細書では例を用いて、最良の形態を含む本発明を開示し、それによって、当業者が、任意のデバイスまたはシステムを構築、使用すること、任意の援用した方法を実行すること等、発明を実践することを可能にする。本発明の特許可能な範囲は請求項により定義され、当業者が着想する他の例を含んでよい。このような他の例は、請求項の文言と異ならない構造的要素を有する場合、または、請求項の文言から少ししか相違しない同等な構造的要素を含む場合、請求項の範囲内にある。
【0046】
本発明を特に例示の実施形態に関連して示し記載したが、添付請求項により網羅される本発明の範囲を逸脱することなく、形態、詳細を様々に変更してよいことは、当業者に理解されよう。
図1
図2
図3
図4A
図4B
図4C
図4D
図4E
図4F
図4G
図5