JP5991423B2 - 表示装置、表示方法、表示プログラムおよび位置設定システム - Google Patents

表示装置、表示方法、表示プログラムおよび位置設定システム Download PDF

Info

Publication number
JP5991423B2
JP5991423B2 JP2015501069A JP2015501069A JP5991423B2 JP 5991423 B2 JP5991423 B2 JP 5991423B2 JP 2015501069 A JP2015501069 A JP 2015501069A JP 2015501069 A JP2015501069 A JP 2015501069A JP 5991423 B2 JP5991423 B2 JP 5991423B2
Authority
JP
Japan
Prior art keywords
image
dimensional position
dimensional
plan
view
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015501069A
Other languages
English (en)
Other versions
JPWO2014128760A1 (ja
Inventor
竜太 小松
竜太 小松
奨 古賀
奨 古賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP5991423B2 publication Critical patent/JP5991423B2/ja
Publication of JPWO2014128760A1 publication Critical patent/JPWO2014128760A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker

Description

本発明は、空間内の位置を指定する技術に関する。
撮像装置により得られた撮像画像の一部分に他の画像を重ねて表示させることが行なわれる。例えば、プリントシール機は、撮像装置でユーザを撮像し、撮像により得られた撮像画像を予め用意されたフレーム画像と合成して、合成して得られた画像をシール紙などに印刷して提供する画像印刷装置である。そして、このプリントシール機では、ユーザが、撮像画像上に付属のペンで任意の文字や図形(スタンプ画像)などを編集することができるようになされている(いわゆる落書き機能)。スタンプ画像は、タッチペンがタッチパネルに接触している位置に描画される(例えば特許文献1参照)。
また、現実空間に対応する3次元の仮想空間上に配置された3次元物体のモデルデータであるARオブジェクトを、撮像装置が撮像する撮像画像に重ねて表示することが行なわれる。この技術は、人間の知覚(視覚など)により収集される情報を拡張させるため、拡張現実(Augmented Reality:AR)技術などと呼ばれる。ARオブジェクトは現実空間に対応する仮想空間上の位置が設定されており、撮像装置とARオブジェクトとの位置関係に基づいてARオブジェクトの投影画像が生成され、生成された投影画像が撮像画像に重ねて表示される。ARオブジェクトの仮想空間内での位置は予め設定される(例えば特許文献2参照)。
特開2003−141558号公報 特開2002−092647号公報
解決しようとする課題
現実空間に存在する物体と整合させて表示させるARオブジェクトを設定する場合には、ARオブジェクトの位置を指定する座標の測量作業が行なわれる。また、測量作業を行なったとしても、位置指定にズレが生じている場合には、ARオブジェクトと整合させて表示させる対象である物体とARオブジェクトとがずれた状態で表示されてしまう。位置指定のズレが生じた場合には、正しい位置を指定するために再度測量作業が行なわれる。
本発明の一側面においては、撮像画面に対して奥行き方向の位置指定において、現実空間と対応する目安を提供することを目的とする。
一態様によれば、表示プログラムは、コンピュータに、基準物を撮影した画像を、カメラから取得し、前記画像に含まれる前記基準物の像に基づき、前記カメラを基準とする三次元空間のうち、少なくとも撮影方向を俯瞰可能な平面図であって、かつ、前記カメラおよび前記基準物に対応する図形を含む、平面図を生成し、前記カメラから取得した前記画像を、表示装置に表示し、選択されたオブジェクトの仮の配置位置として、前記画像における二次元位置の指定を受け付け、前記二次元位置および前記三次元空間における前記撮影方向の所定位置に基づき、前記二次元位置を、前記三次元空間における三次元位置に変換し、前記平面図上の前記三次元位置に対応する合成位置に、前記オブジェクトを示す他の図形を合成し、前記他の図形が合成された前記平面図を、前記表示装置に表示し、前記オブジェクトの配置位置として、前記合成位置に合成表示された前記他の図形を移動させるべき、前記平面図における他の二次元位置の指定を受け付け、前記他の二次元位置に基づき、前記三次元位置を更新し、更新された前記三次元位置を、前記基準物を基準とする他の三次元空間における他の三次元位置へ変換し、前記他の三次元位置と前記オブジェクトのオブジェクトデータとを対応付けた管理情報を生成する処理を実行させる。
一側面によれば、撮像画面に対して奥行き方向の位置指定において、現実空間と対応する目安を提供することができる。
図1は、カメラ座標系とマーカー座標系との関係を示す。 図2は、カメラ座標系とマーカー座標系とにおけるARオブジェクトEの例を示す。 図3は、マーカー座標系からカメラ座標系への変換行列Mと、変換行列M内の回転行列Rを示す。 図4は、回転行列R1、R2およびR3を示す。 図5は、表示画面の例を示す。 図6は、ARオブジェクトEの配置例を示す。 図7は、表示画面の例を示す。 図8は、ARオブジェクトEの配置例を示す。 図9は、入力画面(俯瞰モデル図)の例を示す。 図10は、入力画面(俯瞰モデル図)の例を示す。 図11は、入力画面(Zc−Yc平面図)の例を示す。 図12は、入力画面(撮像画像)の例を示す。 図13は、コンピュータ1の機能構成例を示す。 図14は、マーカー管理テーブルT1を示す。 図15は、定義テーブルT2を示す。 図16は、管理テーブルT3を示す。 図17は、編集テーブルT4を示す。 図18は、位置指定プログラムの処理手順例を示す。 図19は、マーカー認識処理の処理手順例を示す。 図20は、編集処理の処理手順例を示す。 図21は、俯瞰モデル図生成の処理手順例を示す 図22は、撮像画像に基づく位置指定処理の処理手順例を示す。 図23は、俯瞰モデル図に基づく位置指定処理の処理手順例を示す。 図24は、編集処理の処理手順例を示す。 図25は、ARテンプレートメニュー例を示す。 図26は、コンピュータ1のハードウェア構成例を示す。 図27は、コンピュータ1で動作するプログラムの構成例を示す。 図28は、コンピュータ1を含むシステムの例を示す。 図29は、管理サーバ2の機能構成例を示す。 図30は、管理サーバ2のハードウェア構成例を示す。
まず、現実空間に対応する3次元の仮想空間上に配置されたARオブジェクトを、カメラが撮像する撮像画像に重ねて表示させるAR技術について説明する。
ARオブジェクトは、例えば、複数の点を含むモデルデータである。複数の点を直線や曲線で補間して得られる複数の面ごとに模様(テクスチャ)が設定され、複数の面が合成されることで3次元のモデルが形成される。ARオブジェクトの仮想空間上での配置は、ARオブジェクトを構成する各点の座標が現実空間内に存在する基準物を基準として定められることで行なわれる。現実空間において各点の座標の位置にオブジェクトが存在するわけではなく、各点の座標は基準物を基準として仮想空間上に定められるものである。
ARオブジェクトが仮想空間上に配置される一方で、カメラが撮像した撮像画像内に写り込んだ基準物の見え方(像)に基づいて、カメラと基準物との現実空間における位置関係が求められる。現実空間内に存在する基準物を基準とする仮想空間上の座標と、現実空間におけるカメラと基準物との位置関係により、現実空間に対応する3次元の仮想空間上でのカメラとARオブジェクトの各点の座標との位置関係が求められる。これらの位置関係に基づいて、仮想空間上でカメラがARオブジェクトを撮像した場合に得られるARオブジェクトの像が算出される。ARオブジェクトの像を算出するための演算について、図1〜図4に基づいてさらに説明する。
図1は、カメラ座標系とマーカー座標系との関係を示す。図1に示されるマーカーMは、ARオブジェクト表示に用いられる基準物の一例である。図1に例示されるマーカーMは、正方形形状をしており、予めサイズが定められている(例えば1辺の長さが10cmなど)。図1に示されるマーカーMは正方形形状であるが、複数の視点のいずれから撮像して得られる像に基づいても、カメラからの相対的な位置および向きが判別可能な形状の他の物体が基準物に用いられてもよい。例えば、撮像画像から生成される特徴点などを基準物として用いてもよい。
カメラ座標系は、(Xc,Yc,Zc)の3次元で構成され、例えばカメラの焦点を原点(原点Oc)とする。例えば、カメラ座標系のXc−Yc平面はカメラの撮像素子面と平行な面であり、Zc軸は撮像素子面に垂直な軸である。
マーカー座標系は、(Xm,Ym,Zm)の3次元で構成され、例えばマーカーMの中心を原点(原点Om)とする。例えば、マーカー座標系のXm−Ym平面はマーカーMと平行な面であり、Zm軸はマーカーMの面と垂直である。原点Omは、カメラ座標系において座標V1c(X1c,Y1c,Z1c)で示される。また、カメラ座標系(Xc,Yc,Zc)に対するマーカー座標系の回転角は、回転座標G1c(P1c,Q1c,R1c)で示される。P1cはXc軸回りの回転角であり、Q1cはYc軸回りの回転角であり、R1cはZc軸回りの回転角である。図1に例示されるマーカー座標系は、Ym軸回りにのみ回転しているため、P1cおよびR1cは0である。
図2は、カメラ座標系とマーカー座標系とにおけるARオブジェクトEの例を示す。図2に示すARオブジェクトEは、吹き出し形状のオブジェクトであり、吹き出し内に「ヒビあり!」というテキストデータを含む。ARオブジェクトEの吹き出しの先に黒丸は、ARオブジェクトEの基準点を示す。ARオブジェクトEのマーカー座標系における座標は、V2m(X2m,Y2m,Z2m)とする。さらにARオブジェクトEの向きは回転座標G2m(P2m,Q2m,R2m)で定められ、ARオブジェクトEのサイズは倍率D(Jx,Jy,Jz)で定められる。
ARオブジェクトEを構成する各点の座標は、ARオブジェクトEの雛型である定義データ(ARテンプレート)に定義されている各点の座標が、基準点の座標V2m、回転座標G2mおよび倍率Dに基づいて調整された座標である。ARテンプレートに定義される点の座標は、基準点の座標が(0,0,0)の状態で示される。ARテンプレートに含まれる各座標は、設定された回転座標G2mに基づいて回転され、倍率Dで拡縮され、さらに基準点の座標V2mに基づいて平行移動されて調整される。図2のARオブジェクトEは、ARテンプレートに定義された各点が、基準点の座標V2m、回転座標G2mおよび倍率Dに基づいて調整された点に基づいて構成された状態を示している。
マーカー座標系で座標が設定されたARオブジェクトEの各点の座標が、カメラ座標系に変換され、さらにカメラ座標系の座標に基づいて画面内の位置が算出されることにより、ARオブジェクトEの像が生成される。
ARオブジェクトEに含まれる各点のカメラ座標系における座標は、マーカー座標系における各点の座標を座標V1cおよび回転座標G1cに基づく座標変換(モデル−ビュー変換)により算出される。例えば、モデル−ビュー変換が座標V2mに対して行なわれることにより、基準点のカメラ座標系における座標V2c(X2c,Y2c,Z2c)が求められる。
図3は、マーカー座標系からカメラ座標系への変換行列Mと、変換行列M内の回転行列Rを示す。変換行列Mは、4×4の行列である。変換行列Mと列ベクトル(Xm,Ym,Zm,1)との積により、列ベクトル(Xc,Yc,Zc,1)が得られる。すなわち、列ベクトル(Xm,Ym,Zm,1)に座標変換(モデル−ビュー変換)対象のマーカー座標系の点座標を代入して、行列演算を行なうことにより、カメラ座標系の点座標を含む列ベクトル(Xc,Yc,Zc,1)が得られる。変換行列Mの1〜3行目且つ1〜3列の部分行列(回転行列R)がマーカー座標系の座標に作用することにより、マーカー座標系の向きとカメラ座標系との向きを合わせるための回転操作が行なわれる。変換行列Mの1〜3行目且つ4列目の部分行列が作用することにより、マーカー座標系の向きとカメラ座標系との位置を合わせるための並進操作が行なわれる。
図4は、回転行列R1、R2およびR3を示す。図3に示す回転行列Rは、回転行列R1、R2およびR3の積(R1・R2・R3)により算出される。
ARオブジェクトEを構成する各点のマーカー座標系の座標(Xm,Ym,Zm)は、変換行列Mに基づくモデル−ビュー変換により、カメラ座標系の座標(Xc,Yc,Zc)に変換される。上述の通り、座標V2mはモデル−ビュー変換により座標V2cに変換される。モデル−ビュー変換により得られた座標(Xc,Yc,Zc)は、ARオブジェクトEが存在する仮想的な空間にカメラが存在するとした場合のカメラからの相対的な位置を示す。
スクリーン座標系は、(Xs,Ys)の2次元で構成され、例えばカメラの撮像処理により得られる撮像画像の中心を原点(原点Os)とする。ARオブジェクトEの各点のカメラ座標系の座標は、スクリーン座標系に変換される。この座標変換(透視変換)により得られる各点のスクリーン座標系の座標に基づいて、ARオブジェクトEの像が生成される。
カメラ座標系からスクリーン座標系への座標変換(透視変換)は、例えば、カメラの焦点距離fに基づいて行なわれる。カメラ座標系における座標(Xc,Yc,Zc)に対応するスクリーン座標系の座標のXs座標は、Xs=f・Xc/Zcで求められる。また、カメラ座標系における座標(Xc,Yc,Zc)に対応するスクリーン座標系の座標のYs座標は、Ys=f・Yc/Zcで求められる。
ARオブジェクトEを構成する各点の座標(カメラ座標系)が透視変換されて得られる座標(スクリーン座標系)に基づいて、ARオブジェクトEの像が生成される。ARオブジェクトEは、ARオブジェクトEを構成する複数の点を補間して得られる面にテクスチャをマッピングすることにより生成される。ARオブジェクトEの元になるARテンプレートには、どの点を補間して面を形成するか、どの面に殿テクスチャをマッピングするかが定義される。
上述のモデル−ビュー変換および透視変換により、マーカー座標系の座標に対応する撮像画像上の座標が算出され、その座標を利用することで、カメラの視点に応じたARオブジェクトEの像が生成される。生成されるARオブジェクトEの像は、ARオブジェクトEの投影画像と呼ばれる。ARオブジェクトEの投影画像が撮像画像に合成されることで、ユーザに提供される視覚的な情報が拡張される。また、他の態様では、透過型ディスプレイにARオブジェクトEの投影画像が表示される。この態様においても、ユーザがディスプレイを透過して得られる現実空間の像と、ARオブジェクトの投影画像とが整合するので、ユーザに提供される視覚的な情報が拡張される。
本実施例では、カメラ機能および表示機能を有するコンピュータ1により、上述のAR技術の適用対象であるARオブジェクトEの位置や向きの指定が行なわれる。コンピュータ1は、ユーザからの入力に応じてARオブジェクトEの位置や向きの指定を行なう。
図5は、表示画面の例を示す。図5の表示画面S1は、マーカーMの像および物体Hの像を含む撮像画像に、ARオブジェクトEの投影画像が合成されて表示された画面の例である。撮像画像は、例えばコンピュータ1のカメラ機能により取得された画像である。
表示画面S1で例示される撮像画像は工場内で撮像された画像であり、撮像画像内に写り込んだ物体Hはカーブしたパイプである。物体Hのカーブした部分にひび割れが生じている。工場の保守点検の作業などにおいては、ひび割れなどが生じていた場合に、ひび割れ箇所の指摘を申し送り事項として記録することが行なわれる。ひび割れ箇所と整合する位置に「ヒビあり!」というメッセージを含む吹き出し形状のARオブジェクトEが設定されることで、申し送り事項の記録が行なわれる。後から現場に訪れたユーザは、マーカーMおよび物体Hの像を含む撮像画像に、前の作業者により設定されたARオブジェクトEの投影画像が合成されて表示された画面を見ることにより、ひび割れ箇所の指摘を受けることができる。設定されたARオブジェクトEのデータは例えば管理サーバにアップロードされており、後から現場に訪れるユーザが操作するコンピュータは、現場に向かう前かもしくは現場で管理サーバからARオブジェクトEのデータをダウンロードして入手する。
撮像画像に含まれるマーカーMの像(形状およびサイズ)に基づいて、コンピュータ1は、コンピュータ1が有するカメラに対するマーカーMの位置座標V1cおよび回転座標G1cを求める。また、マーカーMの模様に基づいて、マーカーの識別情報(マーカーID)などの情報がコンピュータ1に読みとられる。基準物として画像の特徴点を用いる場合には、例えば、コンピュータ1が、特徴点の情報とマーカーIDとを予め対応づけておき、その対応関係に基づいてマーカーIDを取得する。本実施例におけるマーカーMは、現実空間内での位置および向きが固定されている。
ARオブジェクトEの座標(カメラ座標系)は、ARオブジェクトEに設定された各点の座標(マーカー座標系)を位置座標V1cおよび回転座標G1cに基づきモデル−ビュー変換することにより得られる。コンピュータ1は、ARオブジェクトEの各点の座標(カメラ座標系)を透視変換して得られるスクリーン座標系の座標に基づいて、ARオブジェクトEの投影画像を生成する。座標変換については前述の通りである。コンピュータ1は、前述の座標変換により、ARオブジェクトEをコンピュータ1のカメラの視点から眺めるという仮想的な状況におけるARオブジェクトの像(投影画像)を生成する。さらに、コンピュータ1は、生成した投影画像を撮像画像に合成することで、ARオブジェクトがあたかも現実空間に存在するかのように見せることができる。
上述の通り、ARオブジェクトEの投影画像を撮像画像と合成して表示させるAR技術は、人間の知覚により収集される情報の拡張に用いられる。図5に例示される表示画面S1では、ARオブジェクトEがパイプのひび割れ部分に「ヒビあり!」の吹き出しが付加されることで、現実空間に存在する物体に対して情報が付加されている。
しかしながら、ARオブジェクトEに対する位置指定にズレが生じてしまうと、ARオブジェクトの投影画像による情報の付加対象が示されなくなってしまうので、現実空間に存在する物体に対する情報の付加という目的が果たされなくなる。例えば、ARオブジェクトEがひび割れと異なる位置に配置されてしまうと、ARオブジェクトEによる申し送りを受けるユーザがひび割れを発見できない可能性がある。さらには、ARオブジェクトEが情報の付加対象の物体とは異なる物体の位置に指定されてしまうと、誤った情報が提供されることとなってしまう。例えば、ARオブジェクトEが別のパイプの位置に配置されてしまうと、ARオブジェクトEよる申し送りを受けた場合に、ひび割れが無い箇所に対してひび割れの存否の確認を行なうという余分な作業が発生する。そのため、ARオブジェクトEの位置および向きの設定は、ARオブジェクトEによる申し送りを受けるユーザがARオブジェクトEと現実空間内の物体(例えばひび割れ箇所)との対応関係を把握可能な程度に現実空間と整合することが求められる。
例えば、表示画面S1内の位置を指定することによりARオブジェクトEの投影画像の位置の設定が行なわれるとする。そのような指定方法ならば、ユーザはARオブジェクトEの投影画像と物体Hのひび割れ箇所との表示画面S1内での位置関係を確認できる。そのため、ユーザが画面を確認しながら位置指定を行なうことより、ARオブジェクトEの投影画像が表示画面S1において物体Hのひび割れ箇所と整合する位置に配置される。
図6は、ARオブジェクトEの配置例を示す。図6の配置例は、図5に例示されたコンピュータ1、マーカーM、物体HおよびARオブジェクトEを俯瞰した状態の位置関係を示す。例えば、図6は、コンピュータ1、マーカーM、物体HおよびARオブジェクトEをカメラ座標系のXc軸およびZc軸の2次元空間に投影して示した図である。
図6は、図5に例示されるARオブジェクトEの配置として、2通りの例を示す。図5に示す投影画像となるARオブジェクトEの一例として、コンピュータ1に対して手前に配置された場合のARオブジェクトE(E1)が図6に示される。また、もうひとつの例として、奥に配置された場合のARオブジェクトE(E2)が示される。いずれの配置のARオブジェクトEであっても、図6で示す位置のコンピュータ1により生成される投影画像は同じとなる。そのため、ARオブジェクトの位置指定がいずれであっても、表示画面S1内の投影画像では判別できない状態である。すなわち、図5を用いて例示された表示画面S1内でARオブジェクトEの位置を設定したとしても、ARオブジェクトE(E1)のように配置されるか、オブジェクトE(E2)のように配置されるかは定められない。ARオブジェクトE(E1)ように配置されれば、ARオブジェクトEはパイプのひび割れと整合した位置に設定されている。その一方で、ARオブジェクトE(E2)のように配置されると、ARオブジェクトEはパイプと整合しない位置(実質的に離れた位置)に設定されたことになる。
図7は、表示画面の例を示す。図7に例示される表示画面S2も、表示画面S1と同様に、コンピュータ1のカメラ機能により撮像された撮像画像と、ARオブジェクトEの投影画像とが合成されて表示された画面である。表示画面S2内のARオブジェクトE(E1)およびARオブジェクトE(E)の像は、図6に例示されるARオブジェクトE(E1)およびARオブジェクトE(E2)に対応する投影画像である。表示画面S2の撮像画像は、表示画面S1の撮像画像とは異なる位置で撮像された撮像画像である。例えば、ARオブジェクトEが設定された後に現場を訪れたユーザは、表示画面S2のような画角でARオブジェクトEを確認する可能性がある。
図8は、ARオブジェクトEの配置例を示す。図8は、図6と同様にコンピュータ1、マーカーM、物体HおよびARオブジェクトEを俯瞰した状態の位置関係を示す。図7に例示される表示画面S2の撮像画像は、図8に示す位置に配置されたコンピュータ1により撮像された撮像画像である。
ARオブジェクトEの位置が図6におけるARオブジェクトE(E1)の位置に設定されると、表示画面S2のARオブジェクトE(E1)のように、ARオブジェクトEの投影画像は物体Hと整合した位置に表示される。その一方で、ARオブジェクトEの位置が図6におけるARオブジェクトE(E2)の位置に設定されると、表示画面S2のARオブジェクトE(E2)のように、ARオブジェクトEの投影画像は、物体Hとは異なる位置に表示される。ARオブジェクトE(E2)のように表示されてしまうと、「ヒビあり!」と情報が付加された位置にはひび割れが存在しないため、「ヒビあり!」という情報の付加という目的が果たされていない。また、ARオブジェクトE(E2)に示される位置にひび割れがあるかのようにユーザに誤解され得る。すなわち、ARオブジェクトEがE2の位置に設定されることにより、必要な情報の提供に漏れが生じるとともに、不要な情報の提供が行なわれてしまう。
上述のように、表示画面S1に表示される物体Hの像とARオブジェクトEの投影画像とを確認しながらARオブジェクトEの投影画像の位置を指定したとしても、ARオブジェクトEのZc方向の位置が指定されない。そのため、他の角度から撮像した表示画面S2などは、表示画面S1では物体Hと整合する位置に表示されたARオブジェクトEの像が、表示画面S2では物体Hと整合しない位置に表示される事態が生じる。
一方で、ARオブジェクトEの奥行きを単純に数値的に指定するなどとすると、ARオブジェクトEの位置設定に、測量などの作業が発生してしまう。また、目測などに基づいて位置設定を行なう場合には、ユーザの習熟した能力を要することとなる。
本実施例においては、ARオブジェククトの位置指定に撮像画像の奥行き方向の位置を確認可能な画面が用いられる。
図9は、入力画面(俯瞰モデル図)の例を示す。表示画面S3に示される俯瞰モデル図は、コンピュータ1に対応する図形F1およびマーカーMに対応する図形F2を含む。表示画面S3には、さらに、縮尺表示と、メニュー群B1〜B9が示される。メニュー群B1〜B9は、編集終了ボタンB1、視点切替ボタンB2、取り戻しボタンB3、再実行ボタンB4、拡大ボタンB5、縮小ボタンB6、拡縮移動モードボタンB7、回転モードボタンB8および数値指定モードボタンB9などを含む。
縮尺表示は、俯瞰モデル図が示す平面の座標軸(Xc軸およびYc軸)と、画面内の単位距離に対応する現実空間における距離(図9においては点線で示される正方形の1辺がカメラ座標系における50cmの距離であることが示される)の表示を含む。編集終了ボタンB1は、ARオブジェクトEの位置座標の設定を確定させる操作指示の入力位置を示す表示要素である。視点切替ボタンB2は、俯瞰モデル図を用いた入力画面と撮像画像を用いた入力画面とを切り替えさせる操作指示の入力位置を示す表示要素である。取り戻しボタンB3は、表示画面S3(または取り戻しボタンへの入力が得られた際の表示画面)に対して行なわれた直前の操作の前の状態に戻す操作指示の入力位置を示す表示要素である。再実行ボタンB4は、取り戻しボタンBへの操作が行なわれた場合に表示され、取り戻された操作を再度実行させる操作指示の入力位置を示す表示要素である。拡大ボタンB5は、俯瞰モデル図の縮尺を調整させる操作指示の入力位置を示す表示要素であり、拡大ボタンB5の表示位置への入力が行なわれると俯瞰モデル図の拡大を行なう。縮小ボタンB6は、俯瞰モデル図の縮尺を調整させる操作指示の入力位置を示す表示要素であり、縮小ボタンB6の表示位置への入力が行なわれると俯瞰モデル図の縮小を行なう。拡縮移動モードボタンB7は、操作モードを指定する操作指示の入力位置を示す表示要素であり、拡縮移動モードボタンB7の表示位置への入力が行なわれると、拡縮移動モードに操作モードが切り換えられる。回転モードボタンB8は、操作モードを指定する操作指示の入力位置を示す表示要素であり、回転モードボタンB8の表示位置への入力が行なわれると、回転モードに操作モードが切り換えられる。数値指定モードボタンB9は、操作モードを指定する操作指示の入力位置を示す表示要素であり、数値指定モードボタンB9の表示位置への入力が行なわれると、数値指定モードに操作モードが切り換えられる。
拡縮移動モードでは、入力操作に応じてARオブジェクトEの位置座標および倍率が調整される。例えば、ARオブジェクトEの位置指定の開始時の操作モードに、拡縮移動モードが自動設定される。回転モードでは、入力操作に応じてARオブジェクトEの回転座標が調整される。回転座標は、ARオブジェクトEを構成する各点の位置座標を、基準点に基づいて定める際に用いられる。数値指定モードでは、数値入力画面が表示される。数値入力画面に対して入力された数値で、ARオブジェクトの基準点の位置、回転座標および倍率が定められる。
表示画面S3の俯瞰モデル図には、図形F1および図形F2が、カメラ(コンピュータ1)およびマーカーMのカメラ座標系の座標に基づいて表示される。例えば、図形F1は、カメラ座標系の原点Ocに基づいて配置される。また、図形F2は、カメラ座標系におけるマーカー座標系の原点Omの座標V1c(X1c,Y1c,Z1c)と、カメラ座標系に対するマーカー座標系の回転座標U1c(P1c,Q1c,R1c)とに基づいて、表示位置および向きが決定される。
例えば、カメラ座標系の原点Ocをスクリーン座標系(Xs,Ys)におけるある位置(X1s,Y1s)に配置し、図形F2の位置を縮尺に基づいて設定することにより俯瞰モデル図が生成される。その場合、図形F1は位置(X1s,Y1s)に配置される。例えば、座標X1sは表示画面S3のXs方向の中心であり、座標Y1sは表示画面内S3の中心から下方に所定量ずらした位置である。また、図形F1の形状によりコンピュータ1の向きが示され、表示画面S3内の図形F1はコンピュータ1が備えるカメラのレンズが画面上方を向いた状態を示す。また、図形F2は、位置(X2s,Y2s)に示される。座標X2sは座標X1cおよび縮尺に応じて設定される。座標Y2sは座標Z1cおよび縮尺に応じて設定される。縮尺の設定によっては、マーカーMがカメラに対して遠い位置にあると表示画面S3内に配置されない場合がある。その場合には、ユーザは、縮小ボタンB6用いて俯瞰モデル図を縮小させることにより、図形F2が表示画面内に収まった俯瞰モデル図を確認できる。
他の態様として、座標Y2sの初期値は予め設定しておき、図形F1と図形F2と間のスクリーン内の距離(Y2s−Y1s)と、座標Z1cとの比に応じて座標X1cが調整されることで、座標X2sが設定されてもよい。すなわち、距離(Y2s−Y1s)と座標Z1cとの比に応じて縮尺が求められる。
さらに、座標(X2s,Y2s)の図形2は、例えば、回転座標U1c(P1c,Q1c,R1c)に基づいて回転された状態で表示画面S3に表示される。また、例えば、図形F2がQ1cのみに基づいて回転された状態で表示画面S3に示されてもよい。
表示画面S3が表示された状態で表示画面S3内の位置をユーザの操作により指定されると、その指定に基づいてARオブジェクトの位置座標の設定が行なわれる。例えば、タッチスクリーンの画面に表示画面S3を表示させ、タッチスクリーンに対するユーザ入力に応じて表示画面S3内の位置が指定される。
表示画面S3の俯瞰モデル図によれば、カメラ座標系のZc方向(奥行き方向)についてのコンピュータ1とマーカーMとの位置関係をユーザに確認させることができる。表示画面S3が提供されると、ユーザは、現実空間におけるコンピュータ1、マーカーMおよび物体Hの位置関係に基づいて、表示画面S3内に示されるコンピュータ1およびマーカーMに対するARオブジェクトEの位置の見当をつけることができる。
例えば、表示画面S3内の位置d3(X3s,Y3s)が指定されると、座標Y3sと座標Y1sとの差および縮尺に基づいて、ARオブジェクトEの奥行きZ2cが定められる。また、指定された位置にARオブジェクトEに対応する図形F3(d3)を表示させる。図形F3に任意の形状を用いてもよいし、ARオブジェクトの投影画像を用いてもよい。
図10は、入力画面(俯瞰モデル図)の例を示す。図10に示す表示画面S4の俯瞰モデル図は、表示画面S3の俯瞰モデル図と同様に、コンピュータ1に対応する図形F1、マーカーMに対応する図形F2を含む。また、表示画面S4には、さらに、縮尺表示と、メニュー群B1〜B9が示される。
表示画面S4の俯瞰モデル図においては、図形F2が位置(X2s,Y2s)に固定される。例えば、座標X2sは表示画面S4の中心を示し、座標Y2sは表示画面S3内の中心から上方に所定量ずらした位置である。図形F1は、カメラ座標系におけるマーカー座標系の原点Omの座標V1c(X1c,Y1c,Z1c)と、カメラ座標系に対するマーカー座標系の回転座標G1c(P1c,Q1c,R1c)とに基づいて、表示位置(X1s,Y1s)および向きが決定される。
表示画面S4が提供されると、ユーザは奥行き方向を含めて、コンピュータ1とマーカーMとの現実空間での位置関係と、表示画面S4内の図形F1と図形F2との位置関係とを照らし合わせることができる。そのため、ユーザは、コンピュータ1とマーカーMとの現実空間での位置関係に基づいて、ARオブジェクトEについて、表示画面S4内に奥行きを含む位置指定の見当をつけることができる。
図11は、入力画面(Zc−Yc平面図)の例を示す。図11に示す表示画面S5の俯瞰モデル図は、表示画面S3の俯瞰モデル図と同様に、コンピュータ1に対応する図形F1、マーカーMに対応する図形F2を含む。また、表示画面Sには、さらに、縮尺表示と、メニュー群B1〜B9が示される。
表示画面S5の俯瞰モデル図は、カメラ座標系のYc軸およびZc軸による2次元空間内のコンピュータ1、マーカーMおよびARオブジェクトEの位置関係を示す。表示画面S5においても、ユーザは奥行き方向を含めて、コンピュータ1とマーカーMとの現実空間での位置関係と、表示画面S5内の図形F1と図形F2との位置関係とを照らし合わせることができる。そのため、ユーザは、コンピュータ1とマーカーMとの現実空間での位置関係に基づいて、ARオブジェクトEについて、表示画面S5内に奥行きを含む位置指定の見当をつけることができる。
表示画面S3〜S5の入力画面を初回に表示させる場合には、俯瞰モデル図内でARオブジェクトに対応する図形の初期位置d4が設定される。しかしながら、カメラ座標系の奥行き方向の座標Z2cは、撮像画像を用いた位置指定では定められないので、例えば任意の値に初期設定される。座標Z2cの初期値は、例えば、マーカーMの座標Z1cでもよい。また、マーカーMを含む平面(マーカー座標系で(Xm,Ym,0)の平面)上の点を初期値としてもよい。ARオブジェクトEの位置を示す投影画像または図形F3は、例えば、ドラッグ操作などにより画面内の位置を調整される。もしくは、単にタップされた画面内の位置に図形F3を移動させることにより、図形F3の画面内の位置が示される。位置d4に表示された図形F3がドラッグ操作で位置d3に移動されてもよいし、位置d3の指定(例えばタップ操作)に応じて位置d4に表示されていた図形F3が位置d3に移動することとしてもよい。
表示画面S3〜S5によれば、ARオブジェクトEについて奥行き方向を含む位置指定の基準が提供される。また、基準を提供されたユーザの入力により、奥行き方向を含む位置指定が行なわれる。視点切替ボタンB2へのユーザの入力が行なわれると、コンピュータ1は、俯瞰モデル図を用いた入力画面から、撮像画像を用いた入力画面に切り替える。
図12は、入力画面(撮像画像)の例を示す。図12に示す表示画面S6の撮像画像は、マーカーMおよび物体Hの像を含む。また、表示画面S6には、さらに、ARオブジェクトEの投影画像と、メニュー群B1〜B4およびB7〜B9が示される。
表示画面S6内へのユーザの入力により、表示画面S6内への位置指定が行なわれる。指定された画面内の位置d5(X5s,Y5s)に基づいてARオブジェクトEの座標が算出される。d5(X5s,Y5s)に対して上述の透視変換の逆変換が行なわれることにより、ARオブジェクトEのカメラ座標系の座標X2cおよび座標Y2cが算出される。算出された座標X2cおよびY2cにARオブジェクトEの座標が更新される。
また、視点切替ボタンB2へのユーザの入力が行なわれると、コンピュータ1は、撮像画像を用いた入力画面から、俯瞰モデル図を用いた入力画面に再度切り替える。撮像画像を用いた入力画面での位置指定と、俯瞰モデル図を用いた入力画面での位置指定の双方が可能であり、編集終了ボタンB1へのユーザの入力が行なわれた時点で、ARオブジェクトEのカメラ座標系の座標(X2c,Y2c,Z2c)が確定される。
上述の通り、撮像画像を用いた入力画面(表示画面S6など)と、俯瞰モデル図を用いた表示画面(表示画面S3〜S5など)との双方を用いた位置指定により、ARオブジェクトEの3次元的な位置が指定される。撮像画像を用いた表示画面と、俯瞰モデル図を用いた表示画面との双方が提供されると、ユーザは、ARオブジェクトの位置を3次元的に確認しながら調整することができる。これにより、ARオブジェクトを付加させる対象の物体と整合させた状態でARオブジェクトが設定される。
ARオブジェクトEのカメラ座標系の座標が確定されると、ARオブジェクトEの各点の位置座標(カメラ座標系)は、上述のモデル−ビュー変換の逆変換によりマーカー座標系の座標に変換される。変換されたARオブジェクトの各点の座標は、マーカーMのマーカーIDと対応付けて登録される。登録されたARオブジェクトEに対して、再度別の画角で撮像された撮像画像に基づいて調整が行なわれてもよい。例えば、ARオブジェクトEの各点の座標の設定が、表示画面S1の撮像画像に基づく入力画面で行なわれたあと、さらに表示画面S2の撮像画像に基づく入力画面(俯瞰モデル図および撮像画像)で行なわれることも可能である。
以下に、上述の表示画面(俯瞰モデル図および撮像画像)を用いたARオブジェクトEの位置指定を実行するコンピュータ1の構成や動作などを説明する。
図13は、コンピュータ1の機能構成例を示す。コンピュータ1は、処理部11、記憶部12、撮像部13、表示部14、入力部15および通信部16を含む。処理部11は、制御部111、認識部112、生成部113および算出部114を含む。
処理部11は、オブジェクトEの位置指定の処理を実行する。また、処理部11は、処理の実行において、記憶部12、撮像部13、表示部14、入力部15および通信部16の制御を行なう。記憶部12は、他の機能ブロックにおいて用いられる情報を記憶する。例えば、後述のマーカー管理テーブルT1、編集テーブルT4、定義テーブルT2および管理テーブルT3などを記憶する。撮像部13は、撮像処理を行なう。撮像部13の撮像処理により得られる撮像画像は記憶部12に記憶される。表示部14は、処理部11の制御に応じて画像の表示を行なう。入力部15は、コンピュータ1の操作者の操作の検知を行ない、検知に応じた信号を処理部11に伝達する。通信部16は、処理部11の指示に応じて他の装置とデータ通信を行なう。
制御部111は、入力部15または通信部16から得られる情報、または認識部112、生成部113および算出部114の処理結果に応じて、各機能ブロックの制御を行なう。認識部112は、撮像画像からマーカーMの像を認識し、認識した像からコンピュータ1に対するマーカーMの座標(カメラ座標系)を算出する。認識部112は、さらにマーカーMの像に基づいてマーカーIDを読み取る。制御部111は、認識部112によるマーカーMの認識結果(座標およびマーカーIDなど)を記憶部12に記憶する。生成部113は、表示部14に表示させる画像を生成する。例えば、生成部113は、ARオブジェクトの投影画像を生成し、生成した投影画像を撮像部13により得られた撮像画像に合成する。また、例えば、コンピュータ1、マーカーMおよびARオブジェクトに対応する図形を生成し、生成した図形が配置された俯瞰モデル図を生成する。算出部114は、マーカー管理テーブルT1の情報、入力部15または通信部16から得られる情報、およびARオブジェクトEの定義などに基づいて、ARオブジェクトEの設定値を算出する。制御部111は、演算により得られた設定値を管理テーブルT3に記憶する。
図14〜図17は、ARオブジェクトEの座標設定に用いられるデータのデータ構造を示す。
図14は、マーカー管理テーブルT1を示す。認識部112は、撮像部13が撮像した撮像画像にマーカーMの像が含まれている場合に、マーカーMの像から得られた認識結果をマーカー管理テーブルT1に格納する。マーカー管理テーブルT1は、認識部112が認識したマーカーのそれぞれについて、マーカーID、カメラ座標系での座標(Xc,Yc,Zc,Pc,Qc,Rc)、およびオブジェクト追加フラグなどの情報を含む。マーカー管理テーブルT1に格納された情報によれば、本実施例におけるマーカーMのマーカーIDは「100」であり、位置座標は(X1c,Y1c,Z1c)であり、回転座標は(P1c,Q1c,R1c)である。オブジェクト追加フラグは、位置指定処理が行なわれているARオブジェクトがいずれのマーカーに対応づけられるのかを示すフラグである。例えば、マーカー管理テーブルT1に格納される情報は撮像画像が取得されるたびに更新される。
図15は、定義テーブルT2を示す。定義テーブルT2には、ARテンプレートの定義情報が示される。ARテンプレートの定義情報は、ARテンプレートの識別情報(テンプレートID)、ARテンプレートを構成する各頂点の座標情報T21、およびARテンプレートを構成する各面の構成情報T22(頂点順序およびテクスチャIDの指定)を含む。頂点順序は、面を構成する頂点の順序を示す。テクスチャIDは、面にマッピングされるテクスチャの識別情報を示す。ARテンプレートの基準点は例えば0番目の頂点である。定義テーブルT2に示される情報により、3次元モデルの形状および模様が定められる。
図16は、管理テーブルT3を示す。管理テーブルT3は、ARテンプレートを利用して設定されるARオブジェクトEの設定情報を示す。管理テーブルT3には、ARオブジェクトEのオブジェクトID、基準点のマーカー座標系における位置座標(Xm,Ym,Zm)、マーカー座標系における回転座標(Pm,Qm,Rm)、ARテンプレートを基準とする倍率D(Jx,Jy,Jz)、ARテンプレートのテンプレートID、マーカーIDおよび追加情報が格納される。管理テーブルT3に格納される座標は、同じレコードに格納されたマーカーIDに示されるマーカーを基準とするマーカー座標系での座標である。ARオブジェクトEは、図15に示されるARテンプレートが管理テーブルT3の設定情報(位置、向きおよびサイズ)に基づいて調整される。すなわちARオブジェクトEの位置・向き・サイズの指定は、管理テーブルT3で管理される情報の設定により行なわれる。追加情報は、ARオブジェクトEに追加される情報である。追加情報として、テキストや、Webページやファイルへのアクセス情報などが用いられる。
例えば、図16に示されるオブジェクトIDが「1000」のARオブジェクトEは、ARテンプレート「10」に定義される各頂点座標が、Xm、Ym、Zm方向のそれぞれに1倍され、回転座標(0,0,0)で回転され、位置座標(121.5,510.0,860.5)に応じて並進されて得られる各頂点により構成される。ARオブジェクトEは、さらにARオブジェクトEを構成する面に追加情報のマッピングを行なう。
図17は、編集テーブルT4を示す。位置指定を行なう対象のARオブジェクトEが決定され、オブジェクトIDが指定されると、記憶部12に編集テーブルT4が設けられる。編集テーブルT4には、ARオブジェクトEについて、オブジェクトID、テンプレートID、基準点の位置座標(マーカー座標系)、回転座標(マーカー座標系)、倍率D、基準点の位置座標(カメラ座標系)、回転座標(カメラ座標系)およびフラグαを含む。フラグαは、位置指定の入力画面の切り換えを示す。フラグαは、例えば、俯瞰モデル図に基づく入力画面が表示される場合には「1」であり、撮像画像に基づく入力画面が表示される場合には「0」である。
オブジェクトIDが指定されると、指定されたオブジェクトIDに関する管理テーブルT3内の情報が、編集テーブル内に格納される(管理情報T41)。管理情報T41には、マーカー座標系におけるARオブジェクトEの位置座標、回転座標および倍率が含まれる。マーカー管理テーブルT1の情報を用いて管理情報T41に基づいて編集情報T42が生成される。編集情報T42は、カメラ座標系におけるARオブジェクトEの位置座標、回転座標および倍率Dxを含む。ARオブジェクトEの位置指定においては、位置が確定されるまで編集情報T42に対して更新が行なわれる。ARオブジェクトEの位置が確定された場合に、算出部114により編集情報T42に基づいて管理情報T41算出され、管理情報T41の内容が管理テーブルT3に反映される。
図18は、位置指定プログラムの処理手順例を示す。位置指定プログラムは、処理部11により実行される位置指定処理の手順が定義されたプログラムである。制御部111は、位置指定プログラムが起動されると、位置指定の前処理を行なう(S101)。S101の処理においては、定義テーブルT2や管理テーブルT3などが読み出され、マーカー管理テーブルT1や編集テーブルT4などの格納領域が確保される。
S101の前処理が行なわれると、制御部111は、AR表示モードの起動指示を行なう(S102)。S102において、制御部111は、例えば撮像部13に所定時間間隔での撮像を開始させ、撮像された画像について認識部112にマーカー検知処理を開始させる。さらに、制御部111は、表示部14に撮像部13により撮像された画像を表示させる。
撮像部13は、制御部111の撮像を指示されると、撮像素子により生成される画像を所定の時間間隔で取得し、取得した画像を記憶部12に記憶する。記憶部12には、複数枚の画像を格納するバッファが設けられ、撮像部13により撮像された画像は、そのバッファに格納される。例えば、記憶部12に設けられるバッファは、表示部14が表示させる画像が格納される表示用バッファである。表示用バッファに格納される画像は、順次表示部14に表示される。
認識部112は、記憶部12に設けられたバッファに格納された画像を取得し、取得した画像にマーカーMの像が含まれているか否か判定する。認識部112は、バッファに格納される所定枚数のうちの1枚の画像について検知処理を行なうこととしてもよい。
画像にマーカーMの像が含まれているか否かの判定基準は、マーカーの形状および模様に応じて定められる。図1に示すマーカーMは、正方形であり、その模様は黒い縁を含む。そのため、マーカーMが画像に含まれているか否かは、例えば、画像内に、輝度が所定値未満で四角形の枠状の領域が存在するか否かに応じて判定される。
また、認識部112は、マーカーMのマーカーIDの読みとりを行なう。マーカーIDの読みとりは、例えば、四角形の枠内の輝度の情報に基づいて行なわれる。例えば、四角形枠を分割した各領域について、輝度が所定値以上の領域を「1」とし、輝度が所定値未満の領域を「0」として、各領域を所定の順序で「1」か「0」かを判定し、判定して得られた情報の列をマーカーIDとする。また、例えば、輝度が所定値以上の領域と所定値未満の領域の四角形枠内での配置をパターン化しておき、パターンに対応するマーカーIDを用いることとしてもよい。さらに、マーカーIDに割り当てられる数値範囲が予め定められており、読みとったマーカーIDがその数値範囲内でない場合には、マーカーIDが読みとれなかったと判定することとしてもよい。認識部112は読みとったマーカーIDを、記憶部12に記憶されたマーカー管理テーブルT1に格納する。さらに、認識部112は、マーカーMの像の位置座標(スクリーン座標系)を制御部111に通知する。
認識部112は、取得した画像にマーカーMの像が含まれているか否かの判定結果を制御部111に通知する。制御部111は、認識部112からの通知結果に基づいてマーカーMが検知されたか否かを判定する(S103)。もしくは、認識部112が制御部111に対して通知を行なわずに、認識部112がマーカー管理テーブルT1にマーカーIDを格納することを制御部111が検知して、マーカーMが検知されたと判断してもよい。制御部111は、マーカーMが検知されると(S103:YES)、マーカー認識処理を実行する(S104)。制御部111は、マーカーMが検知されなかった場合(S103:NO)には、プログラムの終了を指示されたか否かを判定する(S108)。終了を指示されていなければ(S108:NO)、制御部111は、マーカーを検知したか否かの判定(S103)を行なう。
図19は、マーカー認識処理の処理手順例を示す。マーカー認識処理が開始されると、制御部111は、認識されたマーカーMが表示部14の表示画面内で表示される位置に、マーカーの存在を示す強調表示(ハイライト表示)を行なう(S201)。強調表示は、例えば、マーカーMの表示位置に四角い枠を表示するなどにより行なわれ、マーカーMが検知されたことをユーザに通知する役割を果たす。制御部111は、生成部113に、マーカーMの位置座標(スクリーン座標系)を通知する。生成部113は、表示部14に表示させる画像(表示用バッファ内の画像)に対し、制御部111からの通知に応じた位置に強調表示図形を合成する。強調表示図形は、例えば四角い赤枠などの表示要素である。
S201の処理が行なわれると、制御部111は、認識部112にマーカーMの位置・回転座標を算出させる(S202)。認識部112は、制御部111から指示を受けると、S103で検知されたマーカーMの像に基づき、マーカーMの位置・回転座標(カメラ座標系)を算出する。マーカーMの位置・回転座標(カメラ座標系)は、例えば、マーカーMの像の形状および画像内の位置に基づいて算出される。算出された位置・回転座標(カメラ座標系)は、マーカー管理テーブルT1に格納される。
S202の処理が行なわれると、制御部111は、マーカー管理テーブルT1に登録されたマーカーと対応付けられたARオブジェクトの表示処理を行なう(S203〜S205)。S203〜S205の表示処理は、付加的手順である。また、マーカー管理テーブルT1に登録されたマーカーに対応づけられたARオブジェクトが存在しない場合には、ARオブジェクトの表示処理は実行されない。
制御部111は、管理テーブルTに登録されたARオブジェクトのデータのうち、マーカー管理テーブルT1に登録された各マーカーのマーカーIDを含むものを探索する。該当するARオブジェクトが存在する場合には、制御部111は、そのARオブジェクトのデータを管理テーブルから取得し、取得したデータに含まれるテンプレートIDに対応する定義テーブルを読みだす(S203)。制御部111は、S203でデータを取得した各ARオブジェクトについて、生成部113に投影画像を生成させる(S204)。
S204において、生成部113は、取得した定義テーブルに含まれる各座標について、算出部114に、マーカー座標系からカメラ座標系へのモデル−ビュー変換を実行させ、さらにカメラ座標系からスクリーン座標系への透視変換を実行させる。モデル−ビュー変換に用いられる変換行列Mは、マーカー管理テーブルT1に格納されたマーカー座標系の位置・回転座標(カメラ座標系)に基づいて求められる。算出部114が座標変換を行なうと、さらに、生成部113は、座標変換して得られた各点座標に基づいて、点を組み合わせて構成される各面に対応する要素図形(面要素)を生成する。定義テーブルT2に定義される各面要素は、面要素を構成する各点に囲まれた領域に、定義されたテクスチャを合成することにより生成される。さらに、生成部113は、同じARオブジェクトについての面要素を合成することにより、ARオブジェクトに対応する投影図形を生成する。面要素の合成において、生成された面要素間の前後関係に応じた各面要素のテクスチャを補正(他の面要素に隠れる面要素は表示しないなど)が行なわれてもよい。
制御部111は、各ARオブジェクトについて投影画像が生成されると、生成部113に、生成された画像を表示用バッファ内の撮像画像に合成させる(S205)。S205の処理により表示部14には、撮像部13により撮像された撮像画像にARオブジェクトの投影画像が合成された画像が表示される。
S205の処理が行なわれると、制御部111は、表示部14に編集開始ボタンを表示させる(S206)。S206の処理が行なわれると、制御部111は、図19に示すマーカー認識処理を終了し、図18に示す位置指定処理のフローチャートに戻る。
続いて制御部111は、S206で編集開始ボタンが表示されてから所定時間内に編集開始ボタンへの入力が検知されるか否かの判定を行なう(S105)。編集開始ボタンへの入力が検知される(S105:YES)と、制御部111は図20に示す編集処理を実行する(S106)。所定時間内に編集開始ボタンへの入力が検知されない場合(S105:NO)には、制御部111は、プログラムの終了を指示されたか否かを判定する(S108)。
図20は、編集処理の処理手順例を示す。編集処理が開始されると、制御部111は、表示部14による表示を静止画表示に切り替える(S301)。例えば、複数のマーカーが撮像画像内で認識されている場合には、S301において複数のマーカーのいずれか(マーカーM)がユーザの操作により選択される。制御部111は、マーカーMを選択する情報を入力部15から受けると、選択されたマーカーMについて、マーカー管理テーブルT1のオブジェクト追加フラグをONにする。
S301の処理が行なわれると、制御部111は、生成部113に俯瞰モデル図を生成させる(S302)。
図21は、俯瞰モデル図生成の処理手順例を示す。俯瞰モデル図の生成処理が開始されると、生成部113は、記憶部12に記憶された俯瞰モデル図テンプレートを取得する(S401)。俯瞰モデル図テンプレートは、表示部14の表示画面に合わせたサイズの画像であり、例えば、図形F1を所定の位置(X1s,Y1s)に示す。すなわち、図形F1は、図9の表示画面S3のように示される。俯瞰モデル図テンプレートは、図9の表示画面S3のように、メニュー群B1〜9などを含んでもよい。
S401の処理が行なわれると、生成部113は、選択されたマーカーMについて、マーカー管理テーブルから位置・回転座標(カメラ座標系)を取得する(S402)。さらに、生成部113は、算出部114にマーカーMの位置座標(スクリーン座標系)を算出させる(S403)。算出部114は、図9に示す表示画面S3を用いて説明した通り、マーカーMの位置(X2s,Y2s)を、俯瞰モデル図の縮尺、カメラ座標系におけるマーカーMの座標X1cおよびZ1cに基づいて算出する。縮尺は、例えば所定の初期値が設定されている。さらに、生成部113は、算出部114にマーカーMの回転角(スクリーン座標系)を算出させる(S404)。算出される回転角は、図9に示す表示画面S3を用いて説明した通り、マーカーMの回転座標(P1c,Q1c,R1c)に基づいて算出されてもよいし、回転座標Q1cのみに基づいて算出されてもよい。
生成部113は、S403およびS404の算出結果に基づいて俯瞰モデル図テンプレートに図形F2を合成させる(S405)。制御部111は、生成部113のS405の合成により得られた俯瞰モデル図を、記憶部12に記憶する(S406)。S406の処理が実行されると、制御部111は、図20の処理手順に戻る。
制御部111は、俯瞰モデル図の生成処理(S302)が行なわれると、ARテンプレートの選択処理を実行する(S303)。S303において、例えば、制御部111が、図25に示すARテンプレートメニューを表示部14に表示させ、入力部15から受けるユーザの入力応じて、ARテンプレートメニュー内のいずれのテンプレートが選択されたかを判断する。制御部111は、オブジェクトIDを生成し、選択されたARテンプレートのテンプレートIDおよびオブジェクトIDを管理テーブルT3に格納する。管理テーブルT3内の他の項目(位置・回転座標およびサイズ)については所定の初期値を格納する。また、制御部111は、mさらに、管理テーブルT3に格納した情報を、編集テーブルT4に格納する。さらに、制御部111は、編集テーブルT4に格納された管理情報T41に基づいて算出部114に編集情報T42を算出させ、編集情報T42を編集テーブルT4に格納する。
もしくは、S303において、例えば、制御部111が、入力部15から受けるユーザの入力に応じて、S203〜S205により表示されたARオブジェクトのいずれが選択されたかを判断する。この場合には、制御部111は、選択されたARオブジェクトの管理テーブル内の情報を編集テーブルT4に格納する。さらに、制御部111は、編集テーブルT4に格納された管理情報T41に基づいて算出部114に編集情報T42を算出させ、編集情報T42を編集テーブルT4に格納する。
編集テーブルT4に情報が格納されたARオブジェクトが、位置指定の対象となるARオブジェクト(ARオブジェクトE)である。ARオブジェクトEが選択されると、制御部111は、選択されたARオブジェクトEについて位置指定処理を実行する(S304およびS305)。
図22は、撮像画像に基づく位置指定処理の処理手順例を示す。撮像画像に基づく位置指定処理(S304)が開始されると、制御部111は、表示部14に撮像画像およびメニュー群B1〜B9を表示させる(S501)。さらに、制御部111は、編集テーブルT4のフラグαを「0」にセットする。続いて、制御部111は、生成部113に、選択されたARオブジェクトEの投影画像を生成させる(S502)。さらに、制御部111は、生成部113に、生成された投影画像を表示用バッファに格納された撮像画像に合成させ、さらに、表示部14に合成された画像を表示させる(S503)。S502およびS503の処理は、図19に示すS203〜S205と同様の手順により行なわれる。
続いて、制御部111は、入力部15から位置決定の入力を受けたか否かを判定する(S504)。位置決定の入力を受けていない場合(S504:NO)には、制御部111は、入力部15から視点切替の入力を受けたか否かを判定する(S505)。視点切替の入力を受けていない場合(S505:NO)には、制御部111は、入力部15から画面内の位置指定を受けたか否かを判定する(S506)。
S504〜S506の判定処理に用いられる入力部15からの入力は、例えば、表示部14の表示画面における位置座標(スクリーン座標系)である。制御部111は、入力部15から受けた位置座標と、表示画面に表示させた編集終了ボタンB1および視点切替ボタンB2の位置に基づいてS504およびS505の判定を行なう。
制御部111は、入力部15から画面内の位置指定を受けた場合(S506:YES)には、算出部114に、指定された位置座標(スクリーン座標系)をカメラ座標系に変換させる(S507)。前述の通り、この座標変換において、カメラ座標系の座標Z2cには、例えば座標Z1cを用いる。制御部111は、S507で算出されたカメラ座標系の座標に基づいて、編集テーブルT4に格納される座標を更新する(S508)。S508の更新はフラグαに基づいて行なわれ、例えばフラグαが「0」のときにはX2cおよびY2cの更新が行なわれる。S508の更新処理が行なわれると、制御部111は、S502の処理に戻る。
S504において、位置決定の入力を受けた場合(S504:YES)には、制御部111は、図24に示すS306の処理を実行する。
S505において、視点切替の入力を受けた場合(S505:YES)には、制御部111は、撮像画像に基づく位置指定処理(S304)を終了する。
図23は、俯瞰モデル図に基づく位置指定処理の処理手順例を示す。俯瞰モデル図に基づく位置指定処理(S305)が開始されると、制御部111は、記憶部12に記憶された俯瞰モデル図およびメニュー群B1〜B9を表示部14に表示させる(S601)。さらに、制御部111は、編集テーブルT4のフラグαを「1」にセットする。続いて、制御部111は、生成部113に、選択されたARオブジェクトEに対応する図形F3を生成させる(S602)。さらに、制御部111は、生成部113に、生成された図形F3を記憶部12に格納された俯瞰モデル図に合成させ、さらに、表示部14に合成された画像を表示させる(S603)。記憶部12に記憶される俯瞰モデル図は、S302の処理で生成された俯瞰モデル図である。S304の処理においては、拡大ボタンB5や縮小ボタンB6への入力に応じて、図形配置が調整された俯瞰モデル図への更新が適宜行なわれる。
続いて、制御部111は、入力部15から位置決定の入力を受けたか否かを判定する(S604)。位置決定の入力を受けていない場合(S604:NO)には、制御部111は、入力部15から視点切替の入力を受けたか否かを判定する(S605)。視点切替の入力を受けていない場合(S605:NO)には、制御部111は、入力部15から画面内の位置指定を受けたか否かを判定する(S606)。
S604〜S606の判定処理に用いられる入力部15からの入力は、S504〜S506の処理と同様に、例えば、表示部14の表示画面における位置座標(スクリーン座標系)である。制御部111は、入力部15から受けた位置座標と、表示画面に表示させた編集終了ボタンB1および視点切替ボタンB2の位置に基づいてS604およびS605の判定を行なう。
制御部111は、入力部15から画面内の位置指定を受けた場合(S606:YES)には、図形F3の位置座標(スクリーン座標系)カメラ座標系に変換させる(S607)。制御部111は、S607で算出された座標に基づいて編集テーブルT4に格納する座標を更新する(S608)。S608の更新はフラグαに基づいて行なわれ、例えばフラグαが「1」の時にはX2cおよびZ2cの更新が行なわれる。S608の更新処理が行なわれると、制御部111は、S602の処理に戻る。
S604において、位置決定の入力を受けた場合(S604:YES)には、制御部111は、図24に示すS306の処理を実行する。
S605において、視点切替の入力を受けた場合(S605:YES)には、制御部111は、俯瞰モデル図に基づく位置指定処理(S305)を終了する。S305の処理が終了すると、制御部111は、撮像画像に基づく位置指定処理(S304)を実行する。
図24は、編集処理の処理手順例を示す。制御部111は、S306の手順において、算出部14に、ARオブジェクトEに対して指定されたカメラ座標系の座標を、マーカー座標系の座標に座標変換させる(S306)。S306において用いられる変換行列は、図3に示す変換座標Mの逆行列である。
S306の処理が行なわれると、制御部111は、編集を終了するか否かを判定する(S307)。例えば、制御部111は、編集を終了させるか否か指示を求める表示を表示部14に実行させ、その結果入力部15により得られた入力内容に応じてS307の判定を行なう。編集を終了しない場合(S307:NO)には、制御部111は、S303の処理手順に戻る。
S307で編集終了と判定される(S307:YES)と、制御部111は、編集された管理テーブルT3を、ARデータの管理サーバにアップロードする(S107)。管理サーバ側では受信した管理テーブルT3に含まれるオブジェクトIDと、ユーザまたはコンピュータ1を識別する識別情報とを用いて、編集されたARオブジェクトを管理する。制御部111は、定義データの送信処理を行なうとともに、静止画表示モードからマーカー検知モードに切り替え、表示部14はそれに応じて撮像画像の表示を随時更新する。次に、制御部111は、プログラムの終了を指示されたか否かを判定する(S108)。S108の処理において、プログラムの終了が指示されている場合(S108:YES)には、制御部111は、位置指定プログラムの処理を終了する。S108の処理において、プログラムの終了が指示されていない場合(S108:NO)には、制御部111は、S103の処理に戻る。
図22において、画面内で2点位置指定を行なわれた場合には、指定された2点のモーションにより、編集テーブルT4内の倍率のデータを更新する。指定された2点が離れる方向に動作した場合には倍率を増大し、指定された2点が近付く方向に動作した場合には倍率を低減させる。
図22および図23において、回転モードボタンB8への入力を検知した場合には、画面内位置指定に応じて、編集テーブルT4の回転座標を更新する。
図22および図23において、数値指定モードボタンB9への入力を検知した場合には、表示部14は、数値指定画面を表示する。制御部111は、数値指定画面内に編集テーブルT4内のカメラ座標系の座標を表示させ、表示された座標値に対して直接数値を入力させ、入力された数値に編集テーブルT4内の座標値を更新する。
S303で位置指定の対象となったARオブジェクトEに対して、複数の位置を設定させるようにしてもよい。編集終了ボタンB1への入力があった場合であっても所定回数はS304に戻るなどの制御により、1つのARオブジェクトに対して複数の位置の設定が行なわれる。管理テーブルT3は、複数の位置設定が可能な様に構成される。
複数の位置が設定されたARオブジェクトの表示は、複数の位置それぞれの設定に基づく複数の投影画像を順次切り替えながら表示させて行なわれる。これにより、ARオブジェクトを動かしながら表示させることができる。
図25は、ARテンプレートメニュー例を示す。図20に示すS303の処理において、ARテンプレートメニューが表示される。図25に例示される表示画面S7は、ARテンプレートメニューが呼び出された状態の表示画面である。図25に例示されるARテンプレートメニューには、ARテンプレートのタイプを選択可能なボタン群(ボタン1〜ボタン9)が表示される。ARテンプレートメニューの説明において、ボタン領域内に示される番号に基づいてボタンを識別して説明する。例えば、「1」という番号が示される四角いボタンが「ボタン1」である。また、ARテンプレートメニューは、図25に示したボタン群以外にも選択可能なボタン群を含み、それらのボタン群を表示させるためのスクロール操作をさせるためのスクロールボタンB11を含む。また、ARテンプレートメニューは、ARテンプレートの選択を終了させるメニュークローズボタンB12を含む。
ボタン1〜ボタン9は、それぞれ個別のテンプレートIDに対応する。すなわち、それぞれのボタンに対応する定義テーブルが設けられている。いずれかのボタンに対して入力が行なわれると、そのボタンに対応するテンプレートIDが選択され、選択されたテンプレートIDに基づいて定義テーブルが呼び出される。
ボタン1には、吹き出しタイプのARテンプレートが対応付けられている。吹き出しタイプのARテンプレートでは、吹き出し形状の図形内にテキスト情報が追加される。ボタン2は、引き出しボックスタイプのARテンプレートが対応付けられている。引き出しボックスタイプのARテンプレートでは、引き出し線と、引き出し線の先に接合する四角形の図形とを含み、四角形の図形内にテキスト情報が追加される。ボタン3は、テキストボックスタイプのARテンプレートが対応付けられている。テキストボックスタイプのARテンプレートでは、四角形の枠状の図形に対してテキスト情報が追加される。ボタン4は、写真タイプのARテンプレートが対応付けられている。写真タイプのARテンプレートでは、四角形の枠状の図形内に画像データがマッピングされる。この画像データは、記憶部12に記憶された画像ファイルが用いられる。ボタン5は、撮像タイプのARテンプレートが対応付けられている。撮像タイプのARテンプレートも写真タイプのARテンプレートと同様のARテンプレートであるが、画像データの取得先が異なる。撮像タイプのARテンプレートが使用されると、撮像モードが呼び出され、撮像部13による撮像処理が行なわれる。撮像タイプのARテンプレートを使用すると、四角形の枠状の図形内に、撮像処理により撮像された画像データがマッピングされる。写真タイプや撮像タイプでマッピングされる画像データは、静止画でも動画でもよい。ボタン6は、手書きタイプのARテンプレートである。手書きタイプのARテンプレートは、透明で四角形の図形であり、さらに図形の模様が手書き操作により編集される。ボタン7は、リンクタイプのARテンプレートであり、テキストボックスタイプのARテンプレートと同様のテンプレートである。リンクタイプのARテンプレートが選択されると、Webページのリストが表示され、リスト内から選択されたWebページへのアクセス情報がARテンプレートに付加される。Webページのリストは、例えば、Webブラウザのブックマークやアクセス履歴から取得される。ボタン8は、図形タイプのARテンプレートと対応付けられている。図形タイプのARテンプレートは、3次元の立体モデル図形が定義されている。例えば、ボタン8への入力に応じて、立体モデル図形の形状を選択させる画面表示を行なうこととしてもよい。立体モデル図形の形状は、例えば、立方体、直方体、円柱、球、円錐および三角柱などである。また、ボタン8への入力に応じて、CADデータの呼び出しを行なうこととしてもよい。CADデータは、例えば、記憶部12に格納されたCADデータのファイルが選択される。ボタン9は、ファイルタイプのARテンプレートと対応づけられている。ファイルタイプのARテンプレートは、ファイルを示すアイコン画像がマッピングされた四角形の図形である。ファイルタイプのARテンプレートが選択されると、記憶部12内のファイルを選択させ、選択されたファイルへのリンクをARテンプレートに付加させる。
図26は、コンピュータ1のハードウェア構成例を示す。図13に示す各機能ブロックは、例えば、図26に示すハードウェア構成により実現される。コンピュータ1は、例えば、プロセッサ301、RAM(Random Access Memory)302、ROM(Read Only Memory)303、ドライブ装置304、記憶媒体305、入力インターフェース(入力I/F)306、入力デバイス307、出力インターフェース(出力I/F)308、出力デバイス309、通信インターフェース(通信I/F)310、カメラモジュール311、加速度センサ312、角速度センサ313、表示インターフェース314、表示デバイス315およびバス316などを含む。それぞれのハードウェアはバス316を介して接続されている。
通信インターフェース310はネットワーク3を介した通信の制御を行なう。通信インターフェース310が制御する通信は、無線通信を利用して、無線基地局4(図28参照)を介してネットワーク3にアクセスする態様もあり得る。入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる。入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ1の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、プロセッサ301の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、スピーカーなどの音声出力装置などである。表示インターフェース314は、表示デバイス315と接続されている。表示インターフェース314は、表示インターフェース314に設けられた表示用バッファにプロセッサ301により書き込まれた画像情報を、表示デバイス315に表示させる。表示デバイス315は、プロセッサ301の制御に応じて情報を出力する装置である。表示デバイス315は、ディスプレイなどの画像出力装置や、透過型ディスプレイなどが用いられる。透過型ディスプレイが用いられる場合には、ARオブジェクトの投影画像は、撮像画像と合成されるのではなく、例えば透過型ディスプレイ内の適切な位置に表示されるように制御されてもよい。これにより、ユーザは、現実空間とARオブジェクトが整合した状態の視覚が得られる。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307及び表示デバイス315として用いられる。また、入力デバイス307及び表示デバイス315がコンピュータ1内部に組み込まれる代わりに、例えば、入力デバイス307及び表示デバイス315がコンピュータ1に外部から接続されてもよい。
RAM302は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAM以外にもフラッシュメモリなどが用いられてもよい。ROM303は、PROM(Programmable ROM)なども含む。ドライブ装置304は、記憶媒体305に記憶された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体305は、ドライブ装置304によって書き込まれた情報を記憶する。記憶媒体305は、例えば、ハードディスク、SSD(Solid State Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの種類の記憶媒体うちの少なくとも1つである。また、例えば、コンピュータ1は、コンピュータ1内の記憶媒体305の種類に対応したドライブ装置304を含む。
カメラモジュール311は、撮像素子(イメージセンサ)を含み、例えば、撮像素子が測定した値を読み出し、カメラモジュール311に含まれる入力画像用の画像バッファに書き込む。加速度センサ312は、加速度センサ312に対して作用する加速度を計測する。角速度センサ313は、角速度センサ313による動作の角速度を計測する。
プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラム(例えば図27などに例示するプログラム)をRAM302に読み出し、読み出されたプログラムの手順に従って処理を行なう。
例えば、図27に示されるプログラムの一部である位置指定プログラムに基づいた処理をプロセッサ301が行なうことにより、処理部11の機能が実現される。制御部111は、プロセッサ301が位置指定プログラムに示される手順とプロセッサ301の演算処理の結果とに応じて、RAM302へのアクセスを行なうことにより実現される。認識部112は、カメラモジュール311の入力画像用の画像バッファに格納された画像データに基づいて、プロセッサ301が演算処理を行なうことにより実現される。生成部113は、プロセッサ301がRAM302に格納されたデータ(画像データを含む)に基づき演算処理を行なうことにより生成した画像データを表示用バッファに書き込むことにより実現される。算出部114は、プロセッサ301がRAM302に格納された座標などのデータと変換行列などのデータに基づいて演算処理を行なうことにより実現される。その際にRAM302はプロセッサ301のワークエリアとして用いられる。記憶部12の機能は、ROM303および記憶媒体305がプログラムファイルやデータファイルを記憶すること、もしくは、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。例えば、マーカー管理テーブルT1、定義テーブルT2、管理テーブルT3および編集テーブルT4などがRAM302に格納される。
また、カメラモジュール311が入力画像用の画像バッファに画像データを書込み、入力画像用の画像バッファ内の画像データをプロセッサ301が読み出すことにより、撮像部13の機能が実現される。画像データは、モニタリングモードにおいては、例えば、入力画像用の画像バッファに書き込まれるとともに、表示デバイス315の表示用バッファに並行して書き込まれる。さらに、プロセッサ301により生成された画像データが表示インターフェース314に備えられた表示用バッファに書き込まれ、表示デバイス315が表示用バッファ内の画像データの表示を行なうことで表示部14の機能が実現される。
図27は、コンピュータ1で動作するプログラムの構成例を示す。コンピュータ1において、ハードウェア群501(図26に示されるハードウェア)の制御を行なうOS(オペレーティング・システム)502が動作する。OS502に従った手順でプロセッサ301が動作して、ハードウェア501の制御・管理が行なわれることで、アプリケーションプログラム504やミドルウェア503による処理がハードウェア501上で実行される。コンピュータ1において、OS502、ミドルウェア503及びアプリケーションプログラム504などのプログラムは、例えば、RAM302に読み出されてプロセッサ301により実行される。また、位置指定プログラムは、例えば、ミドルウェア503としてアプリケーションプログラム504から呼び出されるプログラムである。または、例えば、位置指定プログラムは、アプリケーションプログラム504として位置指定処理を実行させるプログラムである。位置指定プログラムは、記憶媒体305に記憶される。記憶媒体305は、位置指定プログラムを記憶した状態でコンピュータ1本体と切り離して流通され得る。
図28は、コンピュータ1を含むシステムの例を示す。図28に示すシステムは、コンピュータ1、管理サーバ2、管理データベース2a、ネットワーク3及び無線基地局4を含む。コンピュータ1と管理サーバ2とは、有線または無線のいずれか少なくとも一方の通信方法により通信可能である。管理サーバ2は、管理データベース2aを含む。
図29は、管理サーバ2の機能構成例を示す。管理サーバ2は、処理部21、記憶部22および通信部23を含む。処理部21は、記憶部22および通信部23の制御を行なう。通信部23は、コンピュータ1の通信部16との通信を行なう。記憶部22は、通信部23の通信により取得したARオブジェクトの情報(管理テーブルT3)を記憶する。また、コンピュータ1からARオブジェクトの情報を要求された場合には、処理部21は、記憶部22に記憶された情報(管理テーブルT3)を送信させる処理を通信部23に実行させる。
図30は、管理サーバ2のハードウェア構成例を示す。図29に示す各機能ブロックは、例えば、図30に示すハードウェア構成により実現される。管理サーバ2は、例えば、プロセッサ401、RAM402、ROM403、ドライブ装置404、記憶媒体405、入力インターフェース(入力I/F)406、入力デバイス407、出力インターフェース(出力I/F)408、出力デバイス409、通信インターフェース(通信I/F)410、SAN(Storage Area Network)インターフェース(SAN I/F)411及びバス412などを含む。それぞれのハードウェアはバス412を介して接続されている。
例えば、プロセッサ401はプロセッサ301と同様なハードウェアである。RAM402は、例えばRAM302と同様なハードウェアである。ROM403は、例えばROM303と同様なハードウェアである。ドライブ装置404は、例えばドライブ装置304と同様なハードウェアである。記憶媒体405は、例えば記憶媒体305と同様なハードウェアである。入力インターフェース(入力I/F)406は、例えば入力インターフェース306と同様なハードウェアである。入力デバイス407は、例えば入力デバイス307と同様なハードウェアである。出力インターフェース(出力I/F)408は、例えば出力インターフェース308と同様なハードウェアである。出力デバイス409は、例えば出力デバイス309と同様なハードウェアである。通信インターフェース(通信I/F)410は、例えば通信インターフェース310と同様なハードウェアである。SAN(Storage Area Network)インターフェース(SAN I/F)411は、管理サーバ2をSANに接続するためのインターフェースであり、HBA(Host Bus Adapter)を含む。
プロセッサ401は、ROM403や記憶媒体405に記憶された管理プログラムをRAM402に読み出し、読み出された管理プログラムの手順に従って処理部21の処理を行なう。その際にRAM402はプロセッサ401のワークエリアとして用いられる。記憶部22の機能は、ROM403および記憶媒体405がプログラムファイルやデータファイル(管理テーブルT3など)を記憶すること、もしくは、RAM402がプロセッサ401のワークエリアとして用いられることによって実現される。また、プロセッサ401が通信インターフェース410を制御して通信処理を行なうことにより、通信部23の機能が実現される。
上述の実施形態は本発明の一態様であり、本発明の本旨を逸脱しない範囲の設計変更が適宜行われうる。
1 コンピュータ
11 処理部
12 記憶部
13 撮像部
14 表示部
15 入力部
16 通信部
111 制御部
112 認識部
113 生成部
114 算出部

Claims (10)

  1. コンピュータに、
    基準物を撮影した画像を、カメラから取得し、
    前記画像に含まれる前記基準物の像に基づき、前記カメラを基準とする三次元空間のうち、少なくとも、該カメラの撮影方向を俯瞰可能な平面図であって、かつ、前記カメラおよび前記基準物に対応する図形を含む、平面図を生成し、
    前記カメラから取得した前記画像を、表示装置に表示し、
    選択されたオブジェクトの仮の配置位置として、前記画像における二次元位置の指定を受け付け、
    前記二次元位置および前記三次元空間における前記撮影方向の所定位置に基づき、前記二次元位置を、前記三次元空間における三次元位置に変換し、
    前記平面図上の前記三次元位置に対応する合成位置に、前記オブジェクトを示す他の図形を合成し、
    前記他の図形が合成された前記平面図を、前記表示装置に表示し、
    前記オブジェクトの配置位置として、前記合成位置に合成表示された前記他の図形を移動させるべき、前記平面図における他の二次元位置の指定を受け付け、
    前記他の二次元位置に基づき、前記三次元位置を更新し、
    更新された前記三次元位置を、前記基準物を基準とする他の三次元空間における他の三次元位置へ変換し、
    前記他の三次元位置と前記オブジェクトのオブジェクトデータとを対応付けた管理情報を生成する、
    処理を実行させることを特徴とする表示プログラム。
  2. 前記コンピュータに、さらに、
    前記画像に含まれる前記基準物の像に基づいて、前記三次元空間内における前記基準物と前記カメラとの間の相対位置を算出する処理を実行させ、
    前記図形は、前記カメラおよび前記基準物を、算出した前記相対位置に応じた位置関係で示す、
    ことを特徴とする請求項1に記載の表示プログラム。
  3. 前記コンピュータに、さらに、
    前記画像に含まれる前記基準物の像に基づいて、前記三次元空間内における前記基準物と前記カメラとの間の相対位置を算出する処理を実行させ、
    前記平面図内の前記他の二次元位置が指定された場合に、他の二次元位置および前記相対位置に基づいて、前記三次元位置を更新する、
    処理を実行させることを特徴とする請求項1に記載の表示プログラム。
  4. 前記オブジェクトデータは、3次元の座標で形状が定められたデータであって
    前記コンピュータに、さらに、
    他の三次元位置に基づいて前記他の三次元空間内に仮想的に配置された前記オブジェクトデータが前記カメラにより投影された状態を示す投影画像を生成し、
    生成された前記投影画像を、前記カメラにより新たに撮影された他の画像に重ねて表示する
    処理を実行させることを特徴とする請求項3に記載の表示プログラム。
  5. 前記他の二次元位置は、前記平面図が表示された表示画面内の位置指定に応じて指定されること、
    を特徴とする請求項3または請求項4に記載の表示プログラム。
  6. 前記コンピュータに、
    前記他の二次元位置が指定されると、前記平面図内の前記他の二次元位置に前記オブジェクトデータに対応する前記他の図形を、移動して表示させ、
    前記平面図内の新たな二次元位置が指定されると、前記オブジェクトデータに対応する前記他の図形を前記新たな二次元位置に、移動して表示させる、
    処理を実行させることを特徴とする請求項4に記載の表示プログラム。
  7. 前記コンピュータに、
    前記画像の表示が行われている間に、ユーザから切替指示が入力された場合に、前記平面図表示する
    処理を実行させることを特徴とする請求項1〜6のいずれか1項に記載の表示プログラム。
  8. コンピュータ
    基準物を撮影した画像を、カメラから取得し、
    前記画像に含まれる前記基準物の像に基づき、前記カメラを基準とする三次元空間のうち、少なくとも撮影方向を俯瞰可能な平面図であって、かつ、前記カメラおよび前記基準物に対応する図形を含む、平面図を生成し、
    前記カメラから取得した前記画像を、表示装置に表示し、
    選択されたオブジェクトの仮の配置位置として、前記画像における二次元位置の指定を受け付け、
    前記二次元位置および前記三次元空間における前記撮影方向の所定位置に基づき、前記二次元位置を、前記三次元空間における三次元位置に変換し、
    前記平面図上の前記三次元位置に対応する合成位置に、前記オブジェクトを示す他の図形を合成し、
    前記他の図形が合成された前記平面図を、前記表示装置に表示し、
    前記オブジェクトの配置位置として、前記合成位置に合成表示された前記他の図形を移動させるべき、前記平面図における他の二次元位置の指定を受け付け、
    前記他の二次元位置に基づき、前記三次元位置を更新し、
    更新された前記三次元位置を、前記基準物を基準とする他の三次元空間における他の三次元位置へ変換し、
    前記他の三次元位置と前記オブジェクトのオブジェクトデータとを対応付けた管理情報を生成する、
    とを特徴とする表示方法。
  9. 撮像部と、
    基準物を撮影した画像を、前記撮像部から取得し、前記画像に含まれる前記基準物の像に基づき、前記撮像部を基準とする三次元空間のうち、少なくとも撮影方向を俯瞰可能な平面図であって、かつ、前記撮像部および前記基準物に対応する図形を含む、平面図を生成し、前記画像を表示させ、選択されたオブジェクトの仮の配置位置として、前記画像における二次元位置の指定を受け付け、前記二次元位置および前記三次元空間における前記撮影方向の所定位置に基づき、前記二次元位置を、前記三次元空間における三次元位置に変換し、前記平面図上の前記三次元位置に対応する合成位置に、前記オブジェクトを示す他の図形を合成し、前記他の図形が合成された前記平面図を表示させ、前記オブジェクトの配置位置として、前記合成位置に合成表示された前記他の図形を移動させるべき、前記平面図における他の二次元位置の指定を受け付け、前記他の二次元位置に基づき、前記三次元位置を更新し、更新された前記三次元位置を、前記基準物を基準とする他の三次元空間内における他の三次元位置へ変換し、前記他の三次元位置と前記オブジェクトのオブジェクトデータとを対応付けた管理情報を生成する処理部と、
    前記撮像部から取得した前記画像を表示するとともに、ユーザからの指示に応じて、前記他の図形が合成された前記平面図を表示する表示部と、
    を含むことを特徴とする表示装置。
  10. 第1のコンピュータおよび第2のコンピュータを含む位置設定システムであって、
    前記第1のコンピュータは、
    撮像部と、
    基準物を撮影した画像を、前記撮像部から取得し、前記画像に含まれる前記基準物の像に基づき、前記撮像部を基準とする三次元空間のうち、少なくとも撮影方向を俯瞰可能な平面図であって、かつ、前記撮像部および前記基準物に対応する図形を含む、平面図を生成し、前記画像を表示させ、選択されたオブジェクトの仮の配置位置として、前記画像における二次元位置の指定を受け付け、前記二次元位置および前記三次元空間における前記撮影方向の所定位置に基づき、前記二次元位置を、前記三次元空間における三次元位置に変換し、前記平面図上の前記三次元位置に対応する合成位置に、前記オブジェクトを示す他の図形を合成し、前記他の図形が合成された前記平面図を表示させ、前記オブジェクトの配置位置として、前記合成位置に合成表示された前記他の図形を移動させるべき、前記平面図における他の二次元位置の指定を受け付け、前記他の二次元位置に基づき、前記三次元位置を更新し、更新された前記三次元位置を、前記基準物を基準とする他の三次元空間内における他の三次元位置へ変換し、前記他の三次元位置と前記オブジェクトのオブジェクトデータとを対応付けた管理情報を生成する処理部と、
    前記撮像部から取得した前記画像を表示するとともに、ユーザからの指示に応じて、前記他の図形が合成された前記平面図を表示する表示部と、
    管理情報を前記第2のコンピュータに送信する送信部と、を含み、
    前記第2のコンピュータは、
    前記送信部から送信された前記管理情報を受信する受信部と、
    受信した前記管理情報を記憶する記憶部と、を含む、
    ことを特徴とする位置設定システム。
JP2015501069A 2013-02-21 2013-02-21 表示装置、表示方法、表示プログラムおよび位置設定システム Active JP5991423B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/001003 WO2014128760A1 (ja) 2013-02-21 2013-02-21 表示装置、表示方法、表示プログラムおよび位置設定システム

Publications (2)

Publication Number Publication Date
JP5991423B2 true JP5991423B2 (ja) 2016-09-14
JPWO2014128760A1 JPWO2014128760A1 (ja) 2017-02-02

Family

ID=51390606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015501069A Active JP5991423B2 (ja) 2013-02-21 2013-02-21 表示装置、表示方法、表示プログラムおよび位置設定システム

Country Status (4)

Country Link
US (1) US9965896B2 (ja)
EP (1) EP2960867A4 (ja)
JP (1) JP5991423B2 (ja)
WO (1) WO2014128760A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107576731A (zh) * 2017-08-30 2018-01-12 天津大学 基于混合现实的模型实验结构裂纹扩展过程实时透视方法
CN109668545A (zh) * 2017-10-13 2019-04-23 纬创资通股份有限公司 用于头戴式显示装置的定位方法、定位器以及定位系统

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053562B1 (en) 2010-06-24 2015-06-09 Gregory S. Rabin Two dimensional to three dimensional moving image converter
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
JP6349660B2 (ja) * 2013-09-18 2018-07-04 コニカミノルタ株式会社 画像表示装置、画像表示方法、および画像表示プログラム
US10222301B2 (en) * 2016-05-04 2019-03-05 Embraer S.A. Structural health monitoring system with the identification of the damage through a device based in augmented reality technology
JP2018005091A (ja) * 2016-07-06 2018-01-11 富士通株式会社 表示制御プログラム、表示制御方法および表示制御装置
CN106503810A (zh) * 2016-10-21 2017-03-15 国网山东省电力公司泰安供电公司 一种暖通设备巡检装置和方法
US11475177B2 (en) 2017-02-22 2022-10-18 Middle Chart, LLC Method and apparatus for improved position and orientation based information display
US10740503B1 (en) 2019-01-17 2020-08-11 Middle Chart, LLC Spatial self-verifying array of nodes
US10740502B2 (en) 2017-02-22 2020-08-11 Middle Chart, LLC Method and apparatus for position based query with augmented reality headgear
US10872179B2 (en) 2017-02-22 2020-12-22 Middle Chart, LLC Method and apparatus for automated site augmentation
US11900023B2 (en) 2017-02-22 2024-02-13 Middle Chart, LLC Agent supportable device for pointing towards an item of interest
US11481527B2 (en) 2017-02-22 2022-10-25 Middle Chart, LLC Apparatus for displaying information about an item of equipment in a direction of interest
US11900021B2 (en) 2017-02-22 2024-02-13 Middle Chart, LLC Provision of digital content via a wearable eye covering
US10620084B2 (en) 2017-02-22 2020-04-14 Middle Chart, LLC System for hierarchical actions based upon monitored building conditions
US10902160B2 (en) 2017-02-22 2021-01-26 Middle Chart, LLC Cold storage environmental control and product tracking
US10467353B2 (en) 2017-02-22 2019-11-05 Middle Chart, LLC Building model with capture of as built features and experiential data
US10268782B1 (en) 2017-02-22 2019-04-23 Middle Chart, LLC System for conducting a service call with orienteering
US10831945B2 (en) 2017-02-22 2020-11-10 Middle Chart, LLC Apparatus for operation of connected infrastructure
US10671767B2 (en) 2017-02-22 2020-06-02 Middle Chart, LLC Smart construction with automated detection of adverse structure conditions and remediation
US10949579B2 (en) 2017-02-22 2021-03-16 Middle Chart, LLC Method and apparatus for enhanced position and orientation determination
US10733334B2 (en) 2017-02-22 2020-08-04 Middle Chart, LLC Building vital conditions monitoring
US10762251B2 (en) 2017-02-22 2020-09-01 Middle Chart, LLC System for conducting a service call with orienteering
US10628617B1 (en) 2017-02-22 2020-04-21 Middle Chart, LLC Method and apparatus for wireless determination of position and orientation of a smart device
US11468209B2 (en) 2017-02-22 2022-10-11 Middle Chart, LLC Method and apparatus for display of digital content associated with a location in a wireless communications area
US10824774B2 (en) 2019-01-17 2020-11-03 Middle Chart, LLC Methods and apparatus for healthcare facility optimization
US11625510B2 (en) 2017-02-22 2023-04-11 Middle Chart, LLC Method and apparatus for presentation of digital content
US20180268614A1 (en) * 2017-03-16 2018-09-20 General Electric Company Systems and methods for aligning pmi object on a model
CN108629800A (zh) * 2017-03-20 2018-10-09 北京三星通信技术研究有限公司 平面确定方法及增强现实显示信息的显示方法、相应装置
US10796477B2 (en) * 2017-06-20 2020-10-06 Edx Technologies, Inc. Methods, devices, and systems for determining field of view and producing augmented reality
US10262432B1 (en) * 2017-12-30 2019-04-16 Gabriel Keilholz System and method for measuring and comparing items using computer vision
CN112106103A (zh) * 2018-05-11 2020-12-18 莱斯特有限公司 用于确定坐标系之间的近似变换的系统和方法
GB2577611A (en) * 2018-08-08 2020-04-01 Verascan Inc Methods and systems of providing augmented reality
CA3114093A1 (en) 2018-09-26 2020-04-02 Middle Chart, LLC Method and apparatus for augmented virtual models and orienteering
JP7242229B2 (ja) * 2018-09-27 2023-03-20 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
US10929670B1 (en) * 2019-10-21 2021-02-23 The Boeing Company Marker-to-model location pairing and registration for augmented reality applications

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123983A (ja) * 1994-10-26 1996-05-17 Oki Electric Ind Co Ltd 投影面連動表示装置
JP2001209826A (ja) * 2000-01-24 2001-08-03 Mixed Reality Systems Laboratory Inc 仮想空間の編集方法、仮想空間の編集装置、コンピュータプログラム記憶媒体および仮想現実感提示装置
JP2002092647A (ja) * 2000-09-19 2002-03-29 Olympus Optical Co Ltd 情報呈示システム及びモデル誤差検出システム
JP2005010998A (ja) * 2003-06-18 2005-01-13 Olympus Corp 情報呈示装置及び情報呈示方法
JP2005135355A (ja) * 2003-03-28 2005-05-26 Olympus Corp データオーサリング処理装置
JP2005339127A (ja) * 2004-05-26 2005-12-08 Olympus Corp 画像情報表示装置及び画像情報表示方法
JP2011252917A (ja) * 2011-07-20 2011-12-15 Japan Atomic Energy Agency 現場作業支援システムにおけるマーカ配置方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001091016A1 (en) * 2000-05-25 2001-11-29 Realitybuy, Inc. A real time, three-dimensional, configurable, interactive product display system and method
US6697761B2 (en) 2000-09-19 2004-02-24 Olympus Optical Co., Ltd. Three-dimensional position/orientation sensing apparatus, information presenting system, and model error detecting system
JP2003141558A (ja) 2001-08-24 2003-05-16 Omron Corp 写真シール自動販売機、写真シール作成方法、並びにプログラム
JP4307189B2 (ja) 2003-09-05 2009-08-05 キヤノン株式会社 情報処理方法、情報処理装置、識別方法
EP1398601A3 (en) 2002-09-13 2014-05-07 Canon Kabushiki Kaisha Head up display for navigation purposes in a vehicle
JP4926817B2 (ja) 2006-08-11 2012-05-09 キヤノン株式会社 指標配置情報計測装置および方法
JP5474641B2 (ja) 2009-04-17 2014-04-16 トモデータサービス有限会社 位置検出装置、位置検出方法、位置検出プログラム
DE102009049073A1 (de) 2009-10-12 2011-04-21 Metaio Gmbh Verfahren zur Darstellung von virtueller Information in einer Ansicht einer realen Umgebung
US9488488B2 (en) * 2010-02-12 2016-11-08 Apple Inc. Augmented reality maps
JP5643549B2 (ja) 2010-06-11 2014-12-17 任天堂株式会社 画像処理システム、画像処理プログラム、画像処理装置および画像処理方法
US20110313779A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Augmentation and correction of location based data through user feedback
KR20220032059A (ko) * 2011-09-19 2022-03-15 아이사이트 모빌 테크놀로지 엘티디 증강 현실 시스템용 터치프리 인터페이스

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123983A (ja) * 1994-10-26 1996-05-17 Oki Electric Ind Co Ltd 投影面連動表示装置
JP2001209826A (ja) * 2000-01-24 2001-08-03 Mixed Reality Systems Laboratory Inc 仮想空間の編集方法、仮想空間の編集装置、コンピュータプログラム記憶媒体および仮想現実感提示装置
JP2002092647A (ja) * 2000-09-19 2002-03-29 Olympus Optical Co Ltd 情報呈示システム及びモデル誤差検出システム
JP2005135355A (ja) * 2003-03-28 2005-05-26 Olympus Corp データオーサリング処理装置
JP2005010998A (ja) * 2003-06-18 2005-01-13 Olympus Corp 情報呈示装置及び情報呈示方法
JP2005339127A (ja) * 2004-05-26 2005-12-08 Olympus Corp 画像情報表示装置及び画像情報表示方法
JP2011252917A (ja) * 2011-07-20 2011-12-15 Japan Atomic Energy Agency 現場作業支援システムにおけるマーカ配置方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107576731A (zh) * 2017-08-30 2018-01-12 天津大学 基于混合现实的模型实验结构裂纹扩展过程实时透视方法
CN109668545A (zh) * 2017-10-13 2019-04-23 纬创资通股份有限公司 用于头戴式显示装置的定位方法、定位器以及定位系统
CN109668545B (zh) * 2017-10-13 2024-02-09 纬创资通股份有限公司 用于头戴式显示装置的定位方法、定位器以及定位系统

Also Published As

Publication number Publication date
EP2960867A4 (en) 2016-08-03
EP2960867A1 (en) 2015-12-30
JPWO2014128760A1 (ja) 2017-02-02
US20150356789A1 (en) 2015-12-10
WO2014128760A1 (ja) 2014-08-28
US9965896B2 (en) 2018-05-08

Similar Documents

Publication Publication Date Title
JP5991423B2 (ja) 表示装置、表示方法、表示プログラムおよび位置設定システム
US9710971B2 (en) Information processing device, position designation method and storage medium
US10078914B2 (en) Setting method and information processing device
JP6265027B2 (ja) 表示装置、位置特定プログラム、および位置特定方法
US9792731B2 (en) System and method for controlling a display
JP6264834B2 (ja) ガイド方法、情報処理装置およびガイドプログラム
JP6264972B2 (ja) 表示装置、表示制御プログラム、および表示制御方法
JP6500355B2 (ja) 表示装置、表示プログラム、および表示方法
JP6160290B2 (ja) 情報処理装置、判定方法および判定プログラム
JP6096634B2 (ja) 仮想現実を用いた3次元地図表示システム
JPWO2015107665A1 (ja) 作業支援用データ作成プログラム
JP2018088065A (ja) 情報可視化システム、情報可視化方法、及びプログラム
JP6394107B2 (ja) キャリブレーション装置、キャリブレーション方法、表示制御装置および表示制御方法
JP6350640B2 (ja) 表示制御装置、表示制御方法、表示制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160801

R150 Certificate of patent or registration of utility model

Ref document number: 5991423

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150