JP6265027B2 - 表示装置、位置特定プログラム、および位置特定方法 - Google Patents

表示装置、位置特定プログラム、および位置特定方法 Download PDF

Info

Publication number
JP6265027B2
JP6265027B2 JP2014088540A JP2014088540A JP6265027B2 JP 6265027 B2 JP6265027 B2 JP 6265027B2 JP 2014088540 A JP2014088540 A JP 2014088540A JP 2014088540 A JP2014088540 A JP 2014088540A JP 6265027 B2 JP6265027 B2 JP 6265027B2
Authority
JP
Japan
Prior art keywords
image data
specific
content
straight line
information
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
JP2014088540A
Other languages
English (en)
Other versions
JP2015207219A (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
Priority to JP2014088540A priority Critical patent/JP6265027B2/ja
Priority to US14/665,231 priority patent/US9495802B2/en
Publication of JP2015207219A publication Critical patent/JP2015207219A/ja
Priority to US15/292,309 priority patent/US10074217B2/en
Application granted granted Critical
Publication of JP6265027B2 publication Critical patent/JP6265027B2/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/225Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、画像データに、他の画像データを重畳して表示する技術に関する。
現実世界を撮像した画像をディスプレイに表示する際に、現実世界には存在しない画像データやテキストデータなどのオブジェクトを、ディスプレイに表示された現実世界の画像に重畳表示する事で、そのオブジェクトが現実世界に存在するかのような合成画像を提供する拡張現実(Augmented Reality:AR)技術が知られている。なお、オブジェクトは、形状や色などによってそれ自体で特徴的な意味を想起させる画像データであったり、テキストデータを含む画像データであったりする。以後、このオブジェクトをARコンテンツと称する。
合成画像を閲覧するユーザは、ARコンテンツとして表示された情報を、現実空間と対応付けて認識することができるため、単純な現実世界を視認した場合と比べて、より多くの情報を取得することができる。
AR技術には、ロケーションベースARと呼ばれる技術や、ビジョンベースARと呼ばれる技術がある。ロケーションベースARは、カメラ付き端末の位置情報や、方位に関する情報を、GPSセンサ等から取得し、位置情報や方位に関する情報に応じて、カメラが撮影した画像に重畳表示するARコンテンツの内容や、ARコンテンツの重畳表示位置を決定する。
一方、ビジョンベースARは、カメラが撮影した画像データに対して物体認識や空間認識などの画像認識を行う。そして、ビジョンベースARは、画像データが特定の物体を撮像した画像のデータであることを確認した場合には、当該特定の物体に予め対応づけられて準備されたARコンテンツを、画像認識結果に応じて重畳表示する(例えば、特許文献1や特許文献2)。一般的に、特定の物体としてマーカーを認識する場合には、マーカー型ビジョンベースARと称され、特定の物体として、マーカー以外の物体を認識する場合には、マーカーレス型ビジョンベースARと称されることもある。
ここで、AR技術においては、予めARコンテンツを準備するという作業が必須となる。例えば、ビジョンベースARにおいては、予め、ARコンテンツとして表示する画像データやテキストデータを生成するとともに、当該ARコンテンツを配置する位置を、特定の物体を基準として、設定する。ARコンテンツを準備するための作業やコンピュータ処理は、オーサリングとも称される。このように、オーサリングにより、ARコンテンツが準備されることで、後に、特定の物体を含む現実空間をカメラで撮影すると、準備された対応するARコンテンツが重畳表示されることとなる。
例えば、ユーザによるオーサリング作業を支援する情報処理装置が知られている(例えば、特許文献3)。当該情報処理装置は、入力画像を画面上に表示させるとともに、ユーザにより指定された指定位置を検出する。そして、情報処理装置は、指定位置に対応する拡張現実空間内での3次元位置を計算するとともに、仮想オブジェクトと3次元位置を対応付けて記憶する。
具体的には、情報処理装置が備える画像認識部が、入力画像から、特定の物体を認識する。そして、情報処理装置が備える計算部が、認識した物体の面を含む仮想空間上の平面における、ユーザの指定位置に対応する位置を計算する。この位置が、仮想オブジェクトの配置位置となる。また、本情報処理装置に対してユーザがオフセット値を与えることで、仮想オブジェクトの配置位置は、仮想現実空間の奥行き方向に対して調整される。
特開2002−092647号公報 特開2004−048674号公報 特開2012−168798号公報
従来の情報処理装置では、画像認識部が認識可能な物体の平面を包含する仮想現実空間の平面上に、仮想オブジェクトを配置したい場合であれば、問題はない。しかし、画像認識部が認識可能な物体の平面を包含する仮想現実空間の平面上以外に、仮想オブジェクトを配置したい場合には次のような問題が生じる。
例えば、マーカー型ビジョンベースARであれば、マーカーを画像から認識することとなる。上記情報処理装置は、マーカーの平面を包含する平面上にARコンテンツを配置することは可能であるが、マーカーよりも前または後ろにARコンテンツを配置したい場合には、ユーザによるオフセット値の入力を必要とする。
オフセット値の入力をユーザに強いる場合、ユーザは、デフォルトでARコンテンツが配置される位置と、自身がARコンテンツを配置したい位置との差分を、正確に数値化し、オフセット値の入力を行わなければならない。これは、ユーザにとって作業負荷が高い。また、マーカーレス型ビジョンベースARにおいても、同様である。
そこで、本発明は、ビジョンベースARにおいて、ARコンテンツのオーサリング作業における作業者の負荷を軽減しつつ、仮想現実空間におけるARコンテンツの配置位置を正確に設定することを目的とする。
上記課題を解決する為に、ひとつの実施態様において、撮像装置および表示装置を備えるコンピュータが、予め決められた特定の画像データを含むように前記撮像装置が撮影した第一の画像データを前記表示装置に表示し、前記特定の画像データの形状に基づき、前記第一の画像データの撮影位置を特定するとともに、前記第一の画像データ上の任意の特定位置の指定を受付けることで、該撮影位置と指定された該第一の画像データ上の該特定位置とを通る第一の直線情報を生成し、前記撮影位置とは異なる他の撮影位置で前記特定の画像データおよび前記特定位置が含まれるように前記撮像装置が撮影した第二の画像データ中の前記特定の画像データの形状に基づき、前記第二の画像データの前記他の撮影位置を特定するとともに、該他の撮影位置と前記第二の画像データ上の前記特定位置とを通る第二の直線情報を生成し、前記第一の直線情報と前記第二の直線情報とに基づき、前記特定位置に対応する3次元空間の位置を特定する処理を実行する。
本発明の一観点によれば、ARコンテンツのオーサリングにおいて、ユーザはオフセット値を入力することなく、3次元の仮想現実空間におけるARコンテンツの配置位置を正確に設定することができる。
図1は、カメラ座標系およびマーカー座標系との関係を示す図である。 図2は、マーカー座標系におけるARコンテンツの例を示す。 図3は、マーカー座標系からカメラ座標系への変換行列と回転行列を示す。 図4は、回転行列R1、R2およびR3を示す。 図5は、スクリーン座標系とカメラ座標系との関係を示す図である。 図6は、マーカーMと同じ奥行き位置に配置されたARコンテンツを説明するための図である。 図7は、ARコンテンツを対応付けたい物体の位置とARコンテンツの配置位置との関係を説明するための図である。 図8は、オーサリングが行われた地点と異なる地点からみた仮想現実空間を説明するための図である。 図9は、B地点におけるAR表示画像を示す図である。 図10は、本実施例に係るオーサリング処理の概念図である。 図11は、本実施例により配置位置が決定されたARコンテンツのAR表示画像の例である。 図12は、本実施例にかかるシステム構成図である。 図13は、表示装置の機能ブロック図である。 図14は、ARコンテンツ情報を記憶するデータテーブルの構成例である。 図15は、テンプレート情報を記憶するデータテーブルの構成例である。 図16は、仮ARコンテンツ情報を記憶するデータテーブルの構成例である。 図17は、本実施例に係るオーサリング処理のフローチャートである。 図18は、AR表示処理の処理フローチャートである。 図19は、仮オーサリング処理のフローチャートである。 図20は、本オーサリング処理のフローチャートである。 図21は、テンプレート選択用の画面の例である。 図22は、仮ARコンテンツを表示するAR表示画像の例である。 図23は、直線を求める他の方法を説明するための図である。 図24は、表示装置のハードウェア構成例である。 図25は、コンピュータで動作するプログラムの構成例を示す。 図26は、管理装置のハードウェア構成例である。
以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下では、マーカーを利用するマーカー型ビジョンベースARを例に説明する。
[AR表示処理]
まず、本実施例に係るARコンテンツのオーサリング処理の説明に先駆けて、本実施例により生成されたARコンテンツを用いたAR表示処理について説明する。なお、AR表示処理とは、カメラが撮影した画像データに特定の物体の画像データが含まれると判断された場合、当該特定の画像データに対応するARコンテンツを、該画像データに重畳表示する処理である。マーカー型ビジョンベースARにおいては、マーカーがこの特定の物体の一例である。
マーカー型ビジョンベースARは、現実空間と仮想空間とを、マーカーを介して重ね合わせることで、仮想現実空間を仮想的に生成する。現実空間は、カメラにより撮影される空間である。よって、カメラはマーカーやその他の物体を含む現実空間を撮影する。一方、仮想空間には、マーカーと特定の位置関係を保って配置されたARコンテンツが存在するが、実際のカメラでは仮想空間を撮影することはできない。
そこで、現実空間の画像データに、仮想空間を撮影したと仮定した場合の画像データを重ね合わせることで、仮想現実空間を撮影したと仮定した場合の画像データが表示される。ARコンテンツの配置位置が正確に設定されている場合には、現実空間において、マーカーと所定の位置関係に存在する物体とARコンテンツとが、仮想現実空間で対応する位置に存在することとなる。よって、AR表示を閲覧するユーザは、物体とARコンテンツが対応付けられているかのように認識することができる。
このとき、現実空間と仮想空間を重ね合わせて仮想現実空間を生成するために、ユーザの位置とマーカーの位置との位置関係を判別することが求められる。このとき、カメラが撮影した画像データにマーカーの画像データが含まれると認識された場合に、マーカーの画像データを用いて、位置関係が判別される。
よって、マーカーの形状には、マーカーとカメラと位置関係が判別可能な形状が採用される。また、マーカーとカメラとの距離はマーカーの大きさによって決定される。なお、マーカーは、例えば、建物内の壁や天井、設備などに添付された紙に印刷された印刷物である。また、マーカーは、特有の特徴を持つ。特有の特徴は、例えば、形状、また形状および色などの組み合わせである。例えば、本実施例では、マーカーは、1辺の長さが5cmである正方形形状を有する。
また、マーカーを認識するために、物体認識用テンプレート(辞書)が用意されるが、辞書はマーカーの特有の特徴等に基づき生成される。ただし、当該辞書は、マーカーを正面以外から撮影した場合でもマーカーを認識なように、学習される。
図1は、カメラ座標系およびマーカー座標系との関係を示す図である。カメラ座標系はカメラを中心とする座標系であって、マーカー座標系は、マーカーを中心とする座標系である。例えば、マーカー座標系やカメラ座標系は、画像データにおけるマーカー一つ分の大きさを、単位座標とすることができる。また、実空間の絶対値として、1cmを単位座標としてもよい。
図1では、カメラ座標系の原点を、Oc(0,0,0)とする。カメラ座標系は、(Xc,Yc,Zc)の3次元で構成される。Xc−Yc平面は、カメラの撮像素子面と平行な面である。また、Zc軸は、撮像素子面に垂直な軸である。なお、原点Ocは、実際のカメラの位置であってもよいし、カメラの焦点の位置や、カメラの焦点からZc方向に所定距離にある位置であってもよい。
また、マーカー座標系の原点は、Om(0,0,0)である。なお、原点Omは、マーカーMの中心である。マーカー座標系は、(Xm,Ym,Zm)の3次元で構成される。例えば、マーカー座標系のXm−Ym平面はマーカーMと平行な面であり、Zm軸はマーカーMの面と垂直な軸である。
一方、マーカー座標系の原点Omは、カメラ座標系では、(X1c,Y1c,Z1c)であらわされるものとする。カメラ座標系におけるOmの座標(X1c,Y1c,Z1c)は、カメラから取得した画像データに対して、物体認識および空間認識を行うことで、算出される。
次に、図1において、カメラ座標系(Xc,Yc,Zc)に対するマーカー座標系(Xm,Ym,Zm)の回転角は、回転座標G1c(P1c,Q1c,R1c)で示される。P1cはXc軸回りの回転角であり、Q1cはYc軸回りの回転角であり、R1cはZc軸回りの回転角である。図1に例示されるマーカー座標系は、Ym軸回りにのみ回転しているため、P1cおよびR1cは0である。なお、各々の回転角は、既知のマーカーM形状と、撮像画像におけるマーカーMの像の形状との比較に基づき、算出される。
図2は、マーカー座標系におけるARコンテンツの例を示す。図2に示すARコンテンツCは、吹き出し形状を有する画像データであって、かつ吹き出し内に「ヒビあり!」というテキスト情報を含む。なお、ARコンテンツCの配置位置は、オーサリングによって予め設定されており、マーカーMに対する所定の位置関係として定義されている。つまり、マーカーMに対する所定の位置関係は、マーカー座標系におけるARコンテンツCの位置情報(座標値)である。なお、配置位置と同様に、ARコンテンツCの配置姿勢も、マーカー座標系におけるARコンテンツCの回転情報として定義される。
ここで、位置情報および回転情報について詳しく説明する。図2におけるARコンテンツCの先の黒丸は、ARコンテンツCの基準点V2m(X2m,Y2m,Z2m)である。また、さらにARコンテンツCの姿勢は回転座標G2m(P2m,Q2m,R2m)で定められ、ARコンテンツCのサイズは倍率D(Jx,Jy,Jz)で定められる。なお、ARコンテンツCの回転座標G2mは、マーカー座標系に対してARコンテンツCがどの程度回転した状態で配置されるのかを示す。例えば、図2の例とは異なるが、G2mが(0,0,0)である場合には、マーカーMと平行にARコンテンツCがAR表示されることとなる。
次に、基準点以外のARコンテンツCを構成する各点の座標も、個別に設定されることで、ARコンテンツCの形状が設定される。本実施例においては、ARコンテンツCの形状は、事前に作成されたテンプレートを流用するものとして説明する。つまり、ARコンテンツCの形状の雛型であるテンプレートに、ARコンテンツCを形成する各点の座標が定義されている。ARコンテンツCのテンプレートについての詳細は後述するが、テンプレートにおいては、基準点を座標(0,0,0)とし、基準点以外の各点は基準点の座標に対する相対値として定義される。よって、ARコンテンツCの基準点V2mが設定されると、テンプレートを構成する各点の座標は、座標V2mに基づいて平行移動される。
さらに、テンプレートに含まれる各点の座標は、設定された回転座標G2mに基づいて回転され、倍率Dで隣接する点同士の距離が拡縮される。つまり、図2のARコンテンツCは、テンプレートに定義された各点が、基準点の座標V2m、回転座標G2mおよび倍率Dに基づいて調整された点に基づいて構成された状態を示している。以上のように、ARコンテンツCの位置情報および回転情報に基づき、マーカーMに対するARコンテンツCの配置が特定される。
次に、図2に示す仮想空間を撮影した場合のARコンテンツCの画像データが、カメラが実際に撮影した画像データに対して重畳されることとなる。重畳表示されるARコンテンツCの像を表す画像データを生成する処理について、説明する。
ここでは、マーカー座標系で定義されたARコンテンツCの各点の座標をカメラ座標系に変換する処理と、カメラ座標系に変換された各点をディスプレイに描画するためにディスプレイ平面に投影する処理とが実行される。さらに、ARコンテンツCの像を表す画像データを、カメラから取得した画像データに重ねて描画することで、ARコンテンツCが重畳表示される。
以下、各変換処理を説明する。まず、図3は、マーカー座標系からカメラ座標系への変換行列と回転行列を示す。変換行列Tは、マーカー座標系の原点となるOmのカメラ座標系における座標値(X1c,Y1c,Z1c)と、カメラ座標系に対するマーカー座標系の回転座標G1c(P1c,Q1c,R1c)とに基づき、マーカー座標系で定義されたARコンテンツCの各点を、マーカー座標系からカメラ座標系に変換するための行列式である。
変換行列Tは、4×4の行列である。変換行列Tと、マーカー座標系の座標Vmに関する列ベクトル(Xm,Ym,Zm,1)との積により、カメラ座標系の対応する座標Vcに関する列ベクトル(Xc,Yc,Zc,1)が得られる。
変換行列Tの1〜3行目且つ1〜3列の部分行列(回転行列R)がマーカー座標系の座標に作用することにより、マーカー座標系の向きとカメラ座標系との向きを合わせるための回転操作が行なわれる。変換行列Tの1〜3行目且つ4列目の部分行列が作用することにより、マーカー座標系の向きとカメラ座標系との位置を合わせるための並進操作が行なわれる。
図4は、回転行列R1、R2およびR3を示す。なお、図3に示す回転行列Rは、回転行列R1、R2およびR3の積(R1・R2・R3)により算出される。また、回転行列R1は、Xc軸に対するXm軸の回転を示す。回転行列R2は、Yc軸に対するYm軸の回転を示す。回転行列R3は、Zc軸に対するZm軸の回転を示す。
回転行列R1、R2およびR3は、カメラが撮影した画像データにおけるマーカーMの画像データに基づき、生成される。つまり、回転角P1c、Q1c、R1cは、先に述べたとおり、既知の形状を有するマーカーMが、処理対象となる撮像画像において、どのような像として撮像されているかに基づき、算出される。回転角P1c、Q1c、R1cに基づき、各回転行列R1、R2およびR3は生成される。
以上のように、列ベクトル(Xm,Ym,Zm,1)に座標変換対象のマーカー座標系の点座標を代入して、行列演算を行なうことにより、カメラ座標系の点座標を含む列ベクトル(Xc,Yc,Zc,1)が得られる。つまり、マーカー座標系の点(Xm,Ym,Zm)を、カメラ座標系(Xc,Yc,Zc)に変換することができる。なお、座標変換は、モデル−ビュー変換とも称される。
例えば、図2のように、モデル−ビュー変換が、ARコンテンツCの基準点V2mに対して行なわれることにより、マーカー座標系で規定された基準点V2mが、カメラ座標系におけるどの点V2c(X2c,Y2c,Z2c)に対応するのかが求められる。ここまでの処理で、カメラに対するARコンテンツCの位置(カメラとARコンテンツCの位置関係)が、マーカーMの画像データを利用する事で算出される。
つぎに、ARコンテンツCの各点のカメラ座標系の座標は、スクリーン座標系に変換される。スクリーン座標系は、(Xs,Ys)の2次元で構成される。そして、カメラ座標系に変換されたARコンテンツCの各点の座標を、仮想のスクリーンとなる2次元平面(Xs,Ys)に投影することで、AR表示されるARコンテンツCの像が生成される。
つまり、スクリーン座標系の一部分がディスプレイの表示画面と対応する。なお、カメラ座標系の座標をスクリーン座標系に変換することを、透視変換と称する。投影面となる仮想のスクリーンは、例えば、カメラ座標系のXc−Yc平面と平行に、かつZc方向に所定の距離に設定される。この時、カメラ座標系における原点Oc(0,0,0)が、カメラの焦点からZc方向に一定距離に設定される場合には、スクリーン座標系における原点(0,0)も、カメラの光軸上の一点に対応する。
透視変換は、例えば、カメラの焦点距離fに基づいて行なわれる。カメラ座標系における座標(Xc,Yc,Zc)に対応するスクリーン座標系の座標のXs座標は、以下の式1で求められる。また、カメラ座標系における座標(Xc,Yc,Zc)に対応するスクリーン座標系の座標のYs座標は、以下の式2で求められる。なお、投影面は、Xc−Yc平面に平行に設定する以外にも、適宜設定することができる。設定される投影面に応じて、透視変換は異なるアルゴリズムが適用される。
Figure 0006265027
Figure 0006265027
透視変換により得られるスクリーン座標系の座標値に基づいて、ARコンテンツCを描画するための描画用データが生成される。ARコンテンツCは、ARコンテンツCを構成する複数の点を補間して得られる面にテクスチャをマッピングすることにより生成される。ARコンテンツCの元になるテンプレートには、どの点を補間して面を形成するか、どの面にどのテクスチャをマッピングするかが定義される。
以上のように、ARコンテンツCを構成する各点の座標は、マーカー座標系からカメラ座標系、さらには、スクリーン座標系へと変換されることで、入力された画像データと重ね合わせて表示されたときに、現実空間における特定の物体に対応する位置にARコンテンツCが重畳表示される。
[本実施例にかかるオーサリング処理]
以上説明したとおり、マーカーM相対で配置位置が決定されたARコンテンツCが、現実空間においてマーカーMと特定の位置関係にある物体と対応するかのように、AR表示されるためには、ARコンテンツCの配置位置を正確に指定する必要がある。
そこで、本実施例に開示の技術の一つの側面では、撮像装置および表示装置を備えるコンピュータが、特定の画像データ(マーカーM)を含むように撮像装置が撮影した第一の画像データを表示装置に表示する。そして、コンピュータが、特定の画像データの形状に基づき第一の画像データの撮影位置を特定するとともに、ユーザから第一の画像データ上の任意の特定位置の指定を受付ける。そして、当該コンピュータは、撮影位置と指定された第一の画像データ上の特定位置とを通る第一の直線情報を生成する。
一方、ユーザは、先の撮影位置とは異なる他の撮影位置で特定の画像データ(マーカーM)および特定位置が含まれるように、新たに第二の画像データを撮影する。コンピュータは、第二の画像データ中の特定の画像データの形状に基づき、第二の画像データの他の撮影位置を特定するとともに、他の撮影位置と第二の画像データ上の特定位置とを通る第二の直線情報を生成する。そして、コンピュータは、第一の直線情報と第二の直線情報とに基づき、特定位置に対応する3次元空間の位置を特定する。さらに、特定された3次元位置がARコンテンツの配置位置として設定される。
ここで、オーサリング処理における大まかな流れを説明する。なお、本実施例においては、撮像装置および表示装置を備えるコンピュータとしてカメラ付きタブレット型コンピュータが利用される。また、本実施例におけるカメラ付きタブレット型コンピュータは、表示装置としてタッチパネル式ディスプレイを搭載し、各種処理を実行するCPU(Central Processing Unit)を搭載しているものとする。ユーザは、カメラ付きタブレット型コンピュータを所持し、ARコンテンツCを配置したい物体が存在する場所へ赴く。なお、当該カメラ付きタブレット型コンピュータが、AR表示処理やオーサリング処理を実行可能なプログラムを所持しており、ユーザは、当該プログラムを起動させることで、オーサリング作業やAR表示の閲覧を行う。
以下、オーサリング作業を行う作業者としてのユーザと、AR表示を閲覧する閲覧者としてのユーザを、ともにユーザと称する。作業者と閲覧者は同一人物とは限らないが、以下では特に区別する必要がある場合を除いて、ユーザと称する。
ユーザは、ARコンテンツCを配置したい物体の付近に、マーカーMが添付されていなければ、添付する。ユーザは、カメラ付きタブレット型コンピュータを用いて、マーカーMと当該物体とを撮影する。撮影された画像は、カメラ付きタブレット型コンピュータのタッチパネル式ディスプレイに表示されるので、ユーザは、表示された画像を閲覧しながら、タッチパネル式ディスプレイの一点にタッチする。この時、ユーザは、表示された画像において、自身がARコンテンツCを配置したい物体が表示されている位置をタッチする。
タッチパネル式ディスプレイから、ユーザのタッチ位置の情報(2次元情報)が、カメラ付きタブレット型コンピュータのCPUに入力される。CPUは、ユーザのタッチ位置の情報に基づき、マーカー座標系における配置位置を決定する。なお、決定された配置位置は、ARコンテンツCとなるオブジェクトの情報や、マーカーIDとともに記憶装置へ記憶される。
ここで、2次元情報であるタッチ位置の情報を、3次元情報であるマーカー座標系の配置位置へ変換する際の処理について、説明する。タッチ位置の情報は、スクリーン座標系における座標値(Xs,Ys)で与えられるものとするが、タッチパネルの座標値と投影面として設定されるスクリーン上の座標値が対応していない場合は、変換が行われる。
図5は、スクリーン座標系とカメラ座標系との関係を示す図である。本実施例では、Xc−Yc平面と平行で、かつ、Zc方向の所定の距離に、スクリーン座標系(Xs,Ys)の平面が設定されるものとする。また、図示していないが、直線L1から直線L4で囲まれた空間に、マーカーMが存在する。
また、カメラ付きタブレット型コンピュータのディスプレイの表示範囲は有限であるため、投影面となるスクリーン座標系の平面のうち、一部領域のみが表示対象となる。図5においては、当該一部領域を領域Sとして示す。つまり、カメラ原点Ocから延びる直線L1,L2,L3,L4で囲まれる範囲が、スクリーン座標系の平面の一部である領域Sに投影されることで、カメラ付きタブレット型コンピュータのディスプレイに表示される。
ユーザは、ディスプレイの表示画像を確認し、表示画像においてARコンテンツを配置したい位置に対応するディスプレイ上の点M1をタッチする。タッチされたディスプレイ上の点M1は、タッチパネルにより検出される。点M1は、スクリーン座標系の座標に対応しており、その座標情報として(Xs1,Ys1)が検出される。
つぎに、投影面となる領域Sはカメラ座標系におけるZc方向の所定位置に設定されているため、点M1は、タッチパネルから入力される(Xs1,Ys1)と領域が設定されているZc方向の位置とに基づき、対応するカメラ座標系での3次元位置へ変換される。よって、カメラ原点Ocと点M1とを通る直線が生成される。なお、この直線は、3次元空間上での点の集合である。
また、図5では、直線の代わりに、ベクトルV1が示されている。このように、カメラ原点Ocと点M1とを結ぶ直線に、さらにカメラ原点Ocから点M1への方向を示す情報が加味されてもよい。以下では、ベクトルV1を用いて説明する。
このように、カメラ座標系においては、ユーザ(カメラ)からみて、ARコンテンツを配置したいと考えている物体が存在する方向(ベクトルV1)を特定することができるが、ベクトルV1上のいずれの点が、現実空間においてユーザがARコンテンツを配置したい3次元位置であるのかを特定することはできない。
そこで、例えば、ベクトルV1上のマーカーMと同じ位置(マーカー座標系におけるZm=0)など、予め設定された条件に応じて、ARコンテンツCの配置位置が一意に決定される。なお、点M1により決定されるARコンテンツCの配置は、先に述べたARコンテンツの基準点の位置座標となる。よって、基準点を基準に、例えば吹き出し形状等の複数の点で構成されるARコンテンツが配置される。
図6は、マーカーMと同じ奥行き位置に配置されたARコンテンツを説明するための図である。図1に示したとおり、マーカーMの平面に沿ってマーカー座標系のXm−Ym平面が設定されるため、Xm−Ym平面とベクトルV1との交点M2に、ARコンテンツCの配置が決定されることとなる。
しかし、この方法だけで、ARコンテンツCの配置が決定された場合、次のような問題が生じる。図7、図8、図9、図10を用いて、ARコンテンツの配置に関する問題を説明する。なお、本実施例に開示の技術は、この方法をベースに更なる改良を行う事で、ARコンテンツの配置を正確に決定する。
図7は、ARコンテンツを対応付けたい物体の位置とARコンテンツの配置位置との関係を説明するための図である。図7において、図5と同じ対象には同様の符号を付す。また、図7に示す点M2は、図6に示す点M2に対応し、点M2に配置されたARコンテンツCを、ARコンテンツC1として図示する。よって、図7におけるカメラから見たベクトルV1の方向のM2の位置に、ARコンテンツC1が存在することを示す。
ARコンテンツC1の配置位置がM2に設定されたとしても、本来の現実空間(3次元においては、点M3の位置に、ARコンテンツC1を対応付けるべき物体が存在するとする。このとき、ARコンテンツC1の配置位置M2と、当該物体の存在位置M3とが、一致しないことになる。
このような状況において、AR表示を閲覧するユーザおよびカメラが、Ocの位置に存在する場合には、特に問題なく、ARコンテンツC1が、当該ARコンテンツC1を対応付ける物体付近に重畳して表示される。なぜなら、AR表示処理においては、先に説明したとおり、スクリーン座標系の領域SにARコンテンツC1が投影されるため、ベクトルV1上の物体はスクリーンのM1に投影される。
しかし、オーサリング作業が行われた位置Ocで、ユーザがAR表示を閲覧するとは限らない。AR表示を閲覧するユーザの立ち位置を指定することも考えられるが、その場合には、汎用性が低下する。
図8は、オーサリングが行われた地点と異なる地点からみた仮想現実空間を説明するための図である。図8に示すように、ユーザはA地点でオーサリング作業を行い、B地点でAR表示を閲覧する。
図8における、(XcA、YcA、ZcA)は、ユーザがA地点に存在する場合のカメラ座標系であって、カメラ座標系の原点はOcAである。また、領域SAは、ユーザがA地点に存在する場合のスクリーン座標系の平面の一部であって、ディスプレイの表示可能範囲を示す。なお、XcA、YcA、ZcA、OcA、SAは、各々図5における、Xc、Yc、Zc、Oc、Sに対応する。
図8における、(XcB、YcB、ZcB)は、ユーザがB地点に存在する場合のカメラ座標系であって、カメラ座標系の原点はOcBである。また、領域SBは、ユーザがB地点に存在する場合のスクリーン座標系の平面の一部であって、ディスプレイの表示可能範囲を示す。
ユーザがB地点に移動した後、カメラ付きタブレット型コンピュータにて、ZcB方向を撮影すると、領域SB上のM2´の位置にM2が投影されるので、M2を基準にARコンテンツC1が重畳表示される。本来、ARコンテンツC1が対応付けられる物体が、点M3に存在するのであれば、点M3は領域SB上の点M3´の位置に表示される。よって、領域SBに対応するAR表示画像を閲覧したユーザは、ARコンテンツC1と、現実に存在する物体とを対応付けて認識することができない。
図9は、B地点におけるAR表示画像を示す図である。パイプ101上にヒビ103が存在する。また。パイプ101にはマーカー105が添付されている。B地点からマーカー105を含む空間を撮影すると、マーカー105に対応付けられたARコンテンツ107が、カメラから入力された画像データに重畳して、AR表示画像100が表示される。なお、オーサリング時には、A地点で撮影した画像に対して、ユーザは、ヒビ103が表示された位置(M1)を指定とする。これは、ユーザが、ヒビ103の存在を注意喚起する目的でARコンテンツを作成した場合である。
しかし、オーサリング処理の段階で、実際のヒビ103の位置とARコンテンツ107の配置位置に不一致が生じているため、B地点で撮影された画像にARコンテンツ107が投影されたAR表示画像100では、ヒビ103の位置とARコンテンツ107の位置とがずれた状態で表示される。このAR表示画像100を閲覧したユーザは、ARコンテンツ107が示す部分でどこであるのかを認識できず、ARコンテンツ107を有効に活用することができない。
以上説明したとおり、ARコンテンツの配置位置を3次元空間上で正確に設定する必要があるため、本実施例にかかるオーサリング処理では、ユーザによる異なる2地点でオーサリング操作(処理)を利用する。なお、後述では、1地点目でのオーサリングを仮オーサリング処理、2地点目での処理を、単なる、本オーサリング処理と称するが、仮オーサリング処理および本オーサリング処理を含めてオーサリング処理と呼ぶ。
図10は、本実施例に係るオーサリング処理の概念図である。なお、図10では、A地点で仮オーサリング処理が行われ、B地点で本オーサリング処理が行われるものとする。便宜上、図8と同様の環境を利用し、同じ対象には同様の付番を付して説明を行うが、本実施例におけるオーサリング処理は、この例に拘束されない。最低条件として、2地点は、いずれもマーカーMおよびARコンテンツを紐づけたい物体が撮像可能な撮影位置であることが要求される。
ユーザは、A地点で、領域SAに投影された表示画像を閲覧し、表示画像上でARコンテンツC2を配置したい位置を指定する。例えば、ユーザは、図8等と同様に、ARコンテンツC2を対応付けたい物体が表示されている点M1をタッチする。これによって、図5で説明したとおり、カメラ原点OcAと点M1とを通るベクトルV1が指定される。このときのベクトルV1(またはM1とOCを通る直線)の情報を、後の2地点目でのオーサリング(本オーサリング処理)に利用する。
なお、本実施例では、必ずしもARコンテンツの配置位置(マーカー座標系における3次元位置)を決定する必要はないが、仮オーサリング処理でも配置位置を決定してもよい。ただし、仮オーサリング処理で決定された配置位置は本オーサリング処理によって、更新される。仮オーサリング処理でも配置位置を決定する場合には、例えば、図6の点M2のように、ベクトルV1上の1点を所定の条件に応じて決定する。
次に、ユーザは、B地点へ移動する。そして、ユーザは、B地点で、領域SBに投影された表示画像を閲覧し、表示画像上でARコンテンツC2を配置したい位置を指定する。例えば、ユーザは、ARコンテンツC2を対応付けたい物体が表示されている点M4をタッチする。これによって、A地点と同様に、カメラ原点OcBと点M4を通るベクトルV2が指定される。
本実施例においては、ベクトルV1とベクトルV2との情報を用いて、ARコンテンツC2の最終的な配置位置を決定する。例えば、本実施例では、ベクトルV1とベクトルV2との交点M5や、やベクトルV1とベクトルV2の距離が最も近くなる点M5を演算する。そして、本実施例は、点M5をARコンテンツC2の配置位置(基準点の位置座標)として設定する。
なお、点M5は、カメラ座標系の座標値とマーカー座標系の座標値に相互変換が可能であるが、マーカー座標系の座標値に変換され、ARコンテンツC2の基準点の位置座標として、記憶装置に記憶される。
図11は、本実施例により配置位置が決定されたARコンテンツのAR表示画像の例である。図11では、図9に示すパイプ101が設置された場所において、図10におけるA地点とB地点の中間であるC地点を想定し、C地点でユーザがAR表示の閲覧を行った場合の例を示す。
AR表示画像110には、パイプ111、ヒビ113、マーカー115が含まれる。なお、パイプ111、ヒビ113、マーカー115は、図9に示すパイプ101、ヒビ103、マーカー105と同一である。さらに、AR表示画像110には、ARコンテンツ117がヒビ113を指し示す位置に重畳表示される。
本実施例によれば、ARコンテンツの配置位置は、ヒビ113が存在する3次元位置が指定されるため、A地点、B地点、C地点など様々な位置で撮影された画像に対してAR表示処理が行われても、ARコンテンツ117が、現実空間のヒビの付近に表示される。
なお、上記では、ベクトルV1とベクトルV2との距離が最も近くなる点M5を、最終的な配置位置として決定することを説明したが、これに限られない。例えば、ベクトルV1上の点で、最もベクトルV2との距離が近い点や、ベクトルV2上の点で、最もベクトルV1との距離が近い点が、最終的な配置位置として指定されてもよい。このように、2地点のうちいずれかで、指定したベクトル上に制限して、最終的な配置位置が決定されてもよい。
[システム構成例]
図12は、本実施例にかかるシステム構成図である。図12の例では、AR表示処理やオーサリング処理を行う表示装置の例として、通信端末1−1および通信端末1−2を示す。以下、これらを総称して、表示装置1とする。さらに、表示装置1は、ネットワークNを介して、管理装置2と通信する。
表示装置1は、例えば、カメラ等の撮像装置およびディスプレイを有する、タブレットPCやスマートフォンなどのコンピュータである。管理装置2は、例えば、サーバコンピュータであって、表示装置1を管理する。ネットワークNは、例えば、インターネットである。なお、本実施例に係るシステムは、表示装置1および管理装置2を含む。
表示装置1は、AR表示処理を実行する。AR表示処理は、例えば、図1から図4を用いて説明したとおりである。また、表示装置1は、オーサリング処理を実行する。オーサリング処理は、例えば、図10を用いて説明したとおりである。
管理装置2は、ARコンテンツ情報やテンプレート情報を記憶する。表示装置1によりオーサリング処理が実行された場合には、管理装置2は、当該オーサリング処理によって生成されたARコンテンツ情報を、表示装置1から取得するとともに、記憶装置へ記憶する。また、表示装置1によってAR表示処理が実行された場合には、管理装置2は、ARコンテンツ情報やテンプレート情報を、表示装置1へ提供する。
ARコンテンツ情報は、AR表示される対象のARコンテンツCにかかわる情報である。テンプレート情報は、ARコンテンツCとして利用されるオブジェクトを、予めテンプレートとして準備した場合の、当該テンプレートの形状や模様等が定義された情報である。
[機能的構成例]
図13は、表示装置の機能ブロック図である。表示装置1は、通信部11、撮像部12、表示部13、記憶部14、制御部15を含む。
通信部11は、他のコンピュータと通信を行う。例えば、通信部11は、オーサリング処理によって生成したARコンテンツ情報を、管理装置2へ送信する。また、AR表示処理のために、通信部11は、過去に作成されたARコンテンツ情報、テンプレート情報を、管理装置2から受信する。
撮像部12は、一定のフレーム間隔で撮影を行い、画像データを生成する。そして、撮像部12は、画像データを、制御部15へ入力する。また、撮像部12は、撮影した画像を記憶部14に記憶する。
表示部13は、制御部15から取得した各種画像データを表示する。各種画像データには、撮像部12が取得した画像データや、制御部15が生成する合成画像データも含まれる。
記憶部14は、制御部15の制御の下、各種情報を記憶する。記憶部14は、画像データを記憶する。例えば、記憶部14には、複数枚の画像を格納するバッファが設けられ、撮像部12により撮影された画像は、そのバッファに格納される。例えば、記憶部14に設けられるバッファは、表示部13が表示させる画像が格納される表示用バッファである。表示用バッファに格納される画像は、順次、表示部13に表示される。
また、記憶部14は、ARコンテンツ情報、テンプレート情報、仮ARコンテンツ情報を記憶する。仮ARコンテンツ情報は、仮オーサリング処理において指定された方向(または直線)を、ユーザに提示するための情報である。例えば、図10のように、ユーザがA地点でM1を指定し、その後B地点に移動し、再度位置の指定を行うとする。この時、B地点で、表示装置1の表示部には、ベクトルV1に対する仮ARコンテンツが表示される。なお、仮ARコンテンツであっても、ARコンテンツ同様の処理によって、AR表示が行われる。
ベクトルV1に相当するガイド線がユーザに対して提供されることで、ユーザはB地点において、仮オーサリング処理で指定したベクトルV1を横から眺めることができる。ユーザが仮オーサリング処理にて指定した方向のいずれか1点を指定することを、仮ARコンテンツは補助する。
次に、制御部15は、表示装置1全体の各種処理を制御する。例えば、制御部15は、マーカーM認識処理、AR表示処理、仮オーサリング処理、本オーサリング処理を行う。また、制御部15は、認識部16、表示制御部17、第一オーサリング部18、第二オーサリング部19を含む。
認識部16は、入力された画像データを対象に、物体認識を行う。具体的には、認識部16は、マーカーMの形状に基づく物体認識用のテンプレートを用いて、入力された画像データにマーカーMの画像データが含まれるかを判断する。なお、画像データに、マーカーMの画像データが含まれないと判断した場合には、認識部16は、認識失敗の旨を、表示制御部17へ出力する。
一方、入力された画像データにマーカーMの画像データが含まれる場合、認識部16は、入力された画像データにおけるマーカーMの領域を示す領域情報を生成する。なお、領域情報から、画像データに映っているマーカーMの形状が判別できる。例えば、領域情報は、マーカーMを構成する4つの頂点の座標値である。なお、領域情報は、後述の表示制御部17へ入力される。
また、認識部16は、領域情報に基づいて、マーカーMの位置座標および回転座標を算出する。なお、マーカーMの位置座標および回転座標は、カメラ座標系での値である。認識部16は、算出した位置座標および回転座標を表示制御部17へ出力する。
さらに、画像データにマーカーMの画像データが含まれる場合、認識部16は、マーカーMの模様からマーカーMを識別する識別情報を取得する。例えば、マーカーIDが取得される。例えば、二次元バーコードと同様に、白部分と黒部分の配置から、一意のマーカーIDが取得される。マーカーIDを取得する方法として、他の既知の取得方法が適用されてもよい。
なお、マーカーMの形状は、複数のマーカーMで同様である。一方、マーカーMの模様は、マーカーM毎に異なる。これにより、マーカーMの模様が異なるマーカーMを複数用意し、各々のマーカーMに異なるARコンテンツCを対応付けることができる。
次に、表示制御部17は、マーカーIDに対応するARコンテンツ情報や仮ARコンテンツ情報が存在する場合には、認識部16から入力された位置座標、回転座標を用いてAR表示画像データを生成する。
図14は、ARコンテンツ情報を記憶するデータテーブルの構成例である。ARコンテンツ情報は、少なくとも、ARコンテンツID、位置情報、回転情報を含む。さらに、ARコンテンツ情報は、倍率情報、テンプレートID、マーカーID、追加情報を含んでもよい。なお、ARコンテンツ情報に含まれる位置情報は、本実施例に係るオーサリング処理にて設定された3次元位置となる。
データテーブルには、ARコンテンツID、マーカー座標系におけるARコンテンツCの位置情報、回転情報が互いに対応付けられて格納される。ARコンテンツIDは、ARコンテンツCを一意に識別する識別情報である。位置情報は、マーカーMに対するARコンテンツCの位置を指定するための情報であって、例えば、マーカー座標系における、ARコンテンツCを形成する基準点の位置座標(Xm,Ym,Zm)である。回転情報は、マーカーMに対するARコンテンツCの回転を指定するための情報であって、例えば、マーカー座標系に対する、ARコンテンツCの回転座標(Pm,Qm,Rm)である。
また、データテーブルには、テンプレートIDおよび倍率情報が格納される。テンプレートIDは、ARコンテンツCに適用されるテンプレートを識別する識別情報である。倍率情報は、テンプレートをARコンテンツCとして適用する際の倍率Dの情報であって、例えば、各軸方向に、各々拡大または縮小するための倍率(Jx,Jy,Jz)である。
さらに、認識したマーカーMの識別情報に応じて、AR表示するARコンテンツCを切り替える場合には、各ARコンテンツCを対応付けるマーカーMのマーカーIDが、データテーブルに格納される。なお、同一のマーカーMでも、ユーザの属性情報によって、AR表示するARコンテンツCを切り替える場合には、マーカーIDと合わせて、各ARコンテンツCについて、ユーザの属性を識別する情報がさらに格納される。
データテーブルには、さらに、追加情報が格納されてもよい。追加情報として、例えば、ARコンテンツC内に描画されるテキストの情報が記憶される。図14のARコンテンツID「C1」の例では、ARコンテンツC内に「ヒビあり!」というテキストが描画されることになる。
図15は、テンプレート情報を記憶するデータテーブルの構成例である。テンプレート情報は、テンプレートの識別情報(テンプレートID)、テンプレートを構成する各頂点の座標情報T1、およびテンプレートを構成する各面の構成情報(頂点順序およびテクスチャIDの指定)T2を含む。
頂点順序は、面を構成する頂点の順序を示す。テクスチャIDは、面にマッピングされるテクスチャの識別情報を示す。テンプレートの基準点は例えば0番目の頂点である。テンプレート情報テーブルに示される情報により、3次元モデルの形状および模様が定められる。
表示制御部17は、例えば、図11に示されたARコンテンツIDが「C1」のARコンテンツCについて、図12のテンプレート「T1」に定義される各頂点座標を、Xm、Ym、Zm方向のそれぞれに、1倍ずつ拡縮する。そして、表示制御部17は、テンプレート「T1」に定義される各頂点座標を、回転座標(0,0,0)で回転し、位置座標(20、25、10)に応じて並進する。
そして、表示制御部17は、変換行列Tを用いて、ARコンテンツCの各点の座標をマーカー座標系からカメラ座標系へ座標変換する。さらに、表示制御部17は、上述の式1や式2を用いて、カメラ座標系をスクリーン座標系へ変換する。さらに、表示制御部17は、ARコンテンツCを構成する面に、テンプレート情報に定義されたテクスチャと、ARコンテンツ情報に定義された追加情報のマッピングを行なうことで、重畳表示用のARコンテンツCの像(画像データ)を生成する。
また、認識部16から入力されたマーカーIDに対応する仮ARコンテンツ情報が存在する場合にも、表示制御部17は、同様の処理により、仮ARコンテンツが重畳表示される。
図13に戻り、第一オーサリング部18は、仮オーサリング処理を行う。第一オーサリング部18の処理について、図10を参照しながら、詳細を説明する。第一オーサリング部18は、表示部13が表示した画像データ上でユーザにより指定された点M1(表示部13上の1点)のスクリーン座標系の座標値(Xs1,Ys1)を取得する。なお、当該座標値は、表示部13から入力される。
第一オーサリング部18は、M1について、スクリーン座標系の座標値からカメラ座標系の座標値(Xc1,Yc1,Zc1)へ変換する。上記式1のXsにXs1、式2のYsにYs1、さらに、ZcにZc_screenを代入する事で、Xc1およびYc1を求める。ただし、Zc1はZc_screenであって、Zc_screenは、投影面となるスクリーンが設定されるZc方向における位置を示す。
次に、M1について、カメラ座標系の座標値(Xc1,Yc1,Zc1)を、マーカー座標系の座標値(Xm1,Ym1,Zm1)に変換する。変換においては、変換行列Tの逆行列が利用される。変換行列Tは、表示制御部17と同様に、認識部16からの入力によって生成される。
次に、第一オーサリング部18は、カメラ原点OcA(0,0,0)をマーカー座標系の座標値(Xmc,Ymc,Zcm)へ変換する。変換においては、M1の座標変換と同様に、変換行列Tの逆行列が利用される。なお、カメラ原点OcAは、表示された画像データが撮影された撮影位置とみなされる。
そして、第一オーサリング部18は、M1のマーカー座標系の座標値(Xm1,Ym1,Zm1)およびOcAのマーカー座標系の座標値(Xmc,Ymc,Zcm)を用いて、これら2点を通る直線の情報を生成する。つまり、第一オーサリング部18は、ユーザにより指定された特定位置と撮像位置とを通る直線情報を生成する。例えば、直線の式は以下の式3および式4により得られる。なお、式3は、引数tを操作することで、直線上の任意の点R(t)が得られることを示す。なお、図10におけるベクトルV1は式4のベクトルVに相当する。
Figure 0006265027
Figure 0006265027
次に、第一オーサリング部18は、R(t)のtに予め設定された第一の値と第二の値とを代入する事で、始点の位置情報(マーカー座標系の座標値)および終点の位置情報(マーカー座標系の座標値)が得られる。第一の値および第二の値は、どの程度の長さのガイド線を提供するかによって、予め設定される。
そして、第一オーサリング部18は、始点の位置情報および終点の位置情報を含む仮ARコンテンツ情報を生成する。そして、記憶部14に記憶する。なお、仮ARコンテンツ情報は、図10におけるV1を、ARコンテンツとして描画するための情報である。
図16は、仮ARコンテンツ情報を記憶するデータテーブルの構成例である。仮ARコンテンツ情報は、少なくとも、仮ARコンテンツID、ARコンテンツID、始点の位置情報、終点の位置情報を含む。仮ARコンテンツIDは、仮ARコンテンツを識別する情報である。また、ARコンテンツIDは、仮ARコンテンツが由来する仮オーサリングによって、配置位置が決定されたARコンテンツのIDである。つまり、オーサリング中のARコンテンツのIDが格納される。なお、仮ARコンテンツ情報には、回転情報は含まれない。
始点の位置情報は、直線R(t)のtに第一の値を代入したときに得られる座標値(マーカー座標系)である。終点の位置情報は、直線R(t)のtに第二の値を代入したときに得られる座標値(マーカー座標系)である。
さらに、仮ARコンテンツ情報は、倍率情報、テンプレートID、マーカーID、追加情報を含んでもよい。なお、図16の例では、テンプレートIDとしては、直線を描画するためのテンプレートが選択される。テンプレート情報のデータの構成は、図15と同様であるが、太さを持たせた直線(またはベクトル)を描画するために、始点および終点から所定距離にある点の集合が定義され、三角柱などの多角形や円柱のテンプレートが用意されてもよい。
そして、第一オーサリング部18は、直線R(t)上のいずれかの点にARコンテンツを配置する事としてもよい。例えば、R(t)とマーカー座標名のXm−Ym平面との交点にARコンテンツを配置する。この場合、記憶部14に、ARコンテンツ情報を記憶する。なお、仮オーサリング処理にて記憶されたARコンテンツ情報は、続く本オーサリング処理にて、更新される。
図13に戻り、第二オーサリング部19は、本オーサリング処理を実行する。新たにユーザがスクリーン上で指定した点(図10の点M4)および、先の仮オーサリング処理で生成された直線情報(V1)を用いて、ARコンテンツの配置位置(M5)を特定する。なお、配置位置は、マーカー座標系の座標値である。
例えば、本オーサリング処理において、仮オーサリング処理で生成された仮ARコンテンツ情報およびARコンテンツ情報に基づき、ガイド線とR(t)上のある位置に配置されたARコンテンツが表示される。ユーザは、ガイド線に沿って、ARコンテンツをドラッグし、B地点で撮影された画像上で、当該ARコンテンツを配置したい位置(M4)を指定する。
第二オーサリング部19は、ユーザが指定したM4について、スクリーン座標系の座標値(Xs4,Ys4)からカメラ座標系の座標値(Xc4,Yc4,Zc4)へ変換する。ただし、Zc4はZc_screenである。次に、M4(Xc4,Yc4,Zc4)を、マーカー座標系の座標値(Xm4,Ym4,Zm4)に変換する。
そして、第一オーサリング部18は、カメラ原点OcB(0,0,0)をマーカー座標系の座標値(Xmc´,Ymc´,Zcm´)へ変換する。なお、各種変換処理は、仮オーサリング処理における変換処理と同様である。さらに、第二オーサリング部19は、仮オーサリン部処理と同様に、式3および式4を用いて、M4およびOcBを通る直線R´(t)を求め、直線情報を生成する。
そして、第二オーサリング部19は、仮オーサリング処理で生成された直線情報R(t)と、新たに生成した直線情報R´(t)とを用いて、ユーザによる指定位置に対応する位置M5を特定する。例えば、2つの直線情報が示す2本の直線の交わる位置や、2本の直線間の距離が最も小さくなる位置が、特定される。また、仮オーサリング処理で生成された直線情報が示す直線上で、2本の直線間の距離が最も小さくなる位置が特定されてもよい。
さらに、第二オーサリング部19は、M4の指定を受け付ける際、表示制御部17により表示されている仮ARコンテンツ上の点のみで、M4を指定可能としてもよい。つまり、表示装置1は、ガイド線上以外の点がユーザにより指定された場合に、アラームを挙げるとともに、再指定を要求する。として受け付けることとしてもよい。この場合、2つの直線情報が示す2本の直線は必ず、M5にて交わることとなる。
次に、第二オーサリング部19は、仮ARコンテンツ情報に含まれるARコンテンツIDをキーに、ARコンテンツ情報のデータテーブルを検索し、対応するレコードにおける位置情報を、特定した位置に対応する位置情報(マーカー座標系の座標値)に更新する。
[フローチャート]
図17は、本実施例に係るオーサリング処理のフローチャートである。なお、本実施例においては、オーサリング処理の中に、AR表示処理も含まれるとして説明するが、AR表示処理は別で実行されてもよい。また、以下では図10と同様に、仮オーサリング処理はA地点で行われ、本オーサリング処理はB地点で行われるものとする。
制御部15は、ARプログラムが起動されると、前処理を行なう(Op.1)。前処理においては、テンプレート情報が管理装置2から取得される。また、過去に作成されたARコンテンツ情報が存在する場合、管理装置2から取得される。
つぎに、制御部15は、AR表示モードの起動指示を行なう(Op.2)。制御部15は、例えば撮像部12に所定時間間隔での撮影を開始させ、撮影された画像データについて認識部16にマーカーM検知処理を開始させる。さらに、制御部15は、表示部13に、撮像部12により撮影された画像データを表示させる。
次に、認識部16は、記憶部14に設けられたバッファに格納された画像データを取得し、取得した画像データにマーカーMの画像データが含まれているか否か判定する(Op.3)。認識部16がマーカーMを検知した場合(Op.3YES)、AR表示処理を実行する(Op.4)。なお、マーカーMが検知された場合には、認識部16はマーカーMの対応する領域の領域情報を表示制御部17へ入力する。また、認識部16は、マーカーMのマーカーIDの読みとりを行ない、表示制御部17へ入力する。認識部16は読みとったマーカーIDを、記憶部14に一時的に記憶する。なお、記憶されたマーカーIDは、ARコンテンツ情報および仮ARコンテンツ情報の生成時に参照される。
一方、認識部16がマーカーMを検知しなかった場合(Op.3NO)には、制御部15は、プログラムの終了が指示されたか否かを判定する(Op.10)。終了が指示されていなければ(Op.10NO)、制御部15は、再度、Op.3へ戻り、マーカーMを検知したか否かの判定を行なう。
図18は、AR表示処理の処理フローチャートである。AR表示処理は、認識されたマーカーMに対応付けられたARコンテンツ情報や仮ARコンテンツ情報が、記憶部14に存在する場合に実行される。ARコンテンツ等が存在しない場合には、AR表示処理は、省略される。
AR表示処理が開始されると、表示制御部17は、認識部16から入力された領域情報に基づき、認識されたマーカーMが表示部13の表示画面内で表示される位置に、マーカーMの存在を示す強調表示(ハイライト表示)を行なう(Op.11)。強調表示は、例えば、マーカーMの表示位置に四角い枠を表示するなどにより行なわれ、マーカーMが検知されたことをユーザに通知する役割を果たす。
次に、認識部16は、マーカーMの位置座標および回転座標を算出する(Op.12)。例えば、認識部16は、Op.3で検知されたマーカーMの領域情報に基づき、マーカーMの位置座標および回転座標を算出する。ここで得られる位置座標および回転座標は、カメラ座標系における座標値である。
そして、表示制御部17は、ARコンテンツ情報および仮ARコンテンツ情報について、テンプレート情報で定義されるARコンテンツCの各点の座標を、マーカー座標系からカメラ座標系に変換する(Op.13)。具体的には、表示制御部17は、ARコンテンツ情報のデータテーブルに登録されたARコンテンツ情報のうち、認識されたマーカーMのマーカーIDを含むものを探索する。該当するARコンテンツ情報が存在する場合には、表示制御部17は、ARコンテンツ情報をデータテーブルから取得する。そして、取得したARコンテンツ情報に含まれるテンプレートIDに対応するテンプレート情報テーブルを読みだす。そして、表示制御部17は、モデル−ビュー変換を行う。また、仮ARコンテンツ情報についても同様である。
表示制御部17は、ARコンテンツの各点の座標を、カメラ座標系からスクリーン座標系へ変換することで、ARコンテンツの投影画像を生成する(Op.14)。表示制御部17は、ARコンテンツについて投影画像が生成されると、投影画像を表示用バッファ内の撮影画像に重ねあわせて表示する(Op.15)。
つぎに、表示制御部17は、表示部13にオーサリング開始ボタンを表示させる(Op.16)。ここでは、オーサリング開始ボタンとして、仮オーサリング開始ボタンと本オーサリング開始ボタンが表示される。ユーザがオーサリングを開始する際に、上記ボタンが押下される。以上の処理が終了すると、制御部15は、図18に示すAR表示処理を終了し、図17に示すオーサリング処理のフローチャートに戻る。
続いて制御部15は、オーサリング開始ボタンが表示されてから所定時間内にオーサリング開始ボタンへの入力が検知されたか否かの判定を行なう(Op.5)。オーサリング開始ボタンへの入力が検知される(Op.5YES)と、制御部15はオーサリングモードを起動する。オーサリングモードの起動により、撮像部12が撮影した画像データを順次表示する動画表示モードから、オーサリング開始ボタンが入力された時点で表示部13に表示されていた画像データを表示する静止画表示モードに変更される。
次に、制御部15は、仮オーサリングが終了しているか否かを判定する(Op.7)。ここでは、例えば、認識されたマーカーMのマーカーIDを含む仮ARコンテンツ情報が存在している場合には、仮オーサリングが終了していると判定される。また、オーサリング開始ボタンのうち、本オーサリング開始ボタンが入力された場合に、仮オーサリングが終了していると判定してもよい。
仮オーサリングが終了していない場合(Op.7NO)、第一オーサリング部18が、仮オーサリング処理を実行する(Op.8)。一方、所定時間内にオーサリング開始ボタンへの入力が検知されなかった場合(Op.5NO)には、制御部15は、プログラムの終了が指示されたか否かを判定する(Op.10)。
図19は、仮オーサリング処理のフローチャートである。第一オーサリング部18は、まず、テンプレート選択用の画面を表示するとともに、テンプレートの選択を受け付ける(Op.21)。
図21は、テンプレート選択用の画面の例である。例えば、静止画表示モードで表示されている画像データを表示する画面210に対して、テンプレート表示領域211が重畳表示される。ユーザは、テンプレート表示領域211に表示されているテンプレートの中から、ARコンテンツとして表示したいオブジェクトを選択する。なお、ここで選択されたオブジェクトに対応するテンプレートIDが取得され、ARコンテンツ情報として利用される。
次に、第一オーサリング部18は、ユーザによる指定位置(Xs1,Ys1)を取得する(Op.22)。第一オーサリング部18は、ユーザにより指定されたM1を、カメラ座標系の座標値を経由して、マーカー座標系の座標値へ変換する(Op.23)。
また、第一オーサリング部18は、撮影位置に相当するカメラ原点OcAを、マーカー座標系の座標値へ変換する(Op.24)。なお、Op.23およぶOp.24における変換の方法については、先に述べたとおりである。また、Op.23とOp.24の順序は入れ替え可能である。
そして、ユーザによる指定位置M1と、撮影位置に相当するカメラ原点OcAとを通る直線を示す直線情報を生成する(Op.25)。なお、直線は、上記式3および式4により求められる。また、直線はマーカー座標系の座標値を与える。
第一オーサリング部18は、直線情報に基づき、ユーザが指定した方向をAR表示する為に、仮ARコンテンツ情報を生成する(Op.26)。そして、第一オーサリング部18は、生成した仮ARコンテンツ情報を、データテーブル(図16)に記憶する(Op.27)。
仮ARコンテンツ情報は、先に述べたとおり、始点の位置情報(マーカー座標系)と終点の位置情報(マーカー座標系)、ARコンテンツID、マーカーID、直線を示すテンプレートのテンプレートID等を含む。なお、ARコンテンツIDには、続く処理で生成されるARコンテンツ情報に付与されるARコンテンツIDが設定される。
つぎに、第一オーサリング部18は、直線情報を用いて、ARコンテンツ情報を生成する(Op.28)。そして、第一オーサリング部18は、生成したARコンテンツ情報を、データテーブル(図14)に記憶する(Op.29)。なお、Op.29終了後、制御部15は、ユーザに対して、撮影位置を変更するよう、メッセージを出力してもよい。
ARコンテンツ情報は、ARコンテンツID、マーカーID、Op,21にて選択されたテンプレートID、位置情報等を含む。なお、Op.28にて生成されるARコンテンツ情報における位置情報は、後の本オーサリング処理において更新される。例えば、直線とマーカー座標系のXm−Ym平面との交点の位置が、ARコンテンツの配置位置として設定される。
図17に戻り、仮オーサリング処理が終了した後に、終了指示が受け付けられていない場合には(Op.10NO)、制御部15は、静止画表示モードを解除し、動画表示モードへ復帰した後、Op.3以降の処理を行う。ユーザは、その間に、撮影位置を変更するために移動する。なお、ユーザは、マーカーMおよびARコンテンツを配置したい場所が撮影可能な位置に、移動する。
ここで、新たに、仮オーサリング処理終了後マーカーMが検知され(Op.3YES)、AR表示処理(Op.4)が実行された場合、仮ARコンテンツが、動画表示モードで表示されている画像データに重畳表示される。
図22は、仮ARコンテンツを表示するAR表示画像の例である。AR表示画像200には、現実に存在する、パイプ201、ヒビ203、マーカー205が表示される。また、仮オーサリング処理で生成された仮ARコンテンツ203と、ARコンテンツ207が表示されている。ユーザは、ARコンテンツ207の配置位置が、ヒビ203から離れていることを確認し、仮ARコンテンツ203上で、ARコンテンツ207を配置したい位置を指定する。
これによって、A地点で指定した方向に延びる線(仮ARコンテンツ203)上で、ARコンテンツ207の配置位置を指定することができる。このように、2地点からの指定位置に基づき、奥行き方向の配置位置も正確に指定することができる。よって、さまざまな撮影位置で撮影された画像データに対してAR表示処理が行われても、ヒビ203の付近にARコンテンツ207が重畳表示される。
図17に戻り、Op.5にて、再度オーサリング指示を受け付けた場合、制御部15は、オーサリングモードを再起動する(Op.6)。さらに、仮オーサリングが終了している場合(Op.7YES)、第二オーサリング部19が本オーサリング処理を行う(Op.9)。本オーサリング処理終了後、制御部15は、ユーザからオーサリング処理の終了入力を受け付けた場合に(Op.10YES)、一連のオーサリング処理を終了する。
図20は、本オーサリング処理のフローチャートである。まず、第二オーサリング部19は、ユーザによる指定位置(Xs4,Ys4)を取得する(Op.31)。
第二オーサリング部19は、ユーザにより指定された位置M4を、カメラ座標系を経由して、マーカー座標系の座標値へ変換する(Op.32)。また、第二オーサリング部19は、撮影位置に相当するカメラ原点OcBを、マーカー座標系の座標値へ変換する(Op.33)。なお、Op.32とOp.33の順序は入れ替え可能である。そして、第二オーサリング部19は、ユーザによる指定位置M4と、撮影位置に相当するカメラ原点OcBとを通る直線を示す直線情報を生成する(Op.34)。
第二オーサリング部19は、仮オーサリング処理で生成された直線情報と、本オーサリング処理で生成された直線情報とに基づき、ARコンテンツの配置位置を特定する(Op.35)。そして、第二オーサリング部19は、特定した配置位置(マーカー座標系の座標値)を用いて、Op.29で記憶されたARコンテンツ情報の位置情報を、更新する(Op.36)。なお、複数のARコンテンツが存在する場合には、ユーザに、本オーサリングの対象となるARコンテンツを選択させてから、本オーサリング処理(Op.9)が実行されることとしてもよい。
以上のように、本実施例によれば、ユーザは、簡易な作業で、ARコンテンツの配置を正確に指定することができる。つまり、ユーザは異なる2つの地点で所望の配置位置を指定するのみで、表示装置1は、2つの指定位置の情報を利用して、ARコンテンツCの配置位置を決定する。よって、本実施例は、位置指定の精度と、ユーザの利便性を兼ね備えた、オーサリング機能を提供することができる。
このようにして、ARコンテンツCの奥行き方向(Zc方向)の位置も含め正確に配置位置が決定されているため、AR表示処理において、どういった撮影位置で撮影された画像に対しても、ARコンテンツCが、本体紐づけられるべき物体に対応する位置に重畳表示される。
[変型例1]
撮影位置と、ユーザにより指定された特定位置とを通る直線は、例えば、以下に示す他の方法によって求めることも可能である。図23は、直線を求める他の方法を説明するための図である。AR技術においては、仮想現実空間をスクリーンに投影する際、その投影範囲を設定することがある。例えば、カメラ原点からZc方向にZcnearの位置にXc−Yc平面と平行に設定される第一の平面Snearと、カメラ原点からZc方向にZcfarの位置にXc−Yc平面と平行に設定される第一の平面Sfarとで、定義された空間を、投影範囲とすることができる。なお、ZcnearおよびZcfarは、予め設定される値である。
例えば、ユーザがタッチパネル上でタッチした位置Msを、平面Snear上の対応点M1と、平面Sfar上の対応点M10へ変換する。なお、投影面を平面Snearの一部としている場合には、図23のとおり、タッチした位置MsはそのままM1となる。
例えば、点M1は、先の実施例同様、(Xs1,Ys1)と、平面Snearが設定されているZc方向の位置Zcnearにより求められる。また、点M10は、平面Snearと平面Sfarとの変換係数αを用いて、(α・Xs1、α・Ys1)と、平面Sfarが設定されているZc方向の位置Zcfarにより求められる。
このとき、点M1から点M10へ向かうベクトルは、カメラ原点Ocと点M1とを通るベクトルV1と同様となる。よって、平面Snear上で、ユーザが指定した位置に対応する点M1と、平面Sfar上でユーザが指定した位置に対応する点M10とを通る直線が、仮ARコンテンツとして利用される。なお、点M1と点M10を通る直線は、式3および式4と同様に求めることができる。
[変型例2]
開示した実施例における他の態様では、透過型ディスプレイにARコンテンツCの投影画像が表示されてもよい。この態様においても、ユーザがディスプレイを透過して得られる現実空間の像と、ARコンテンツCの投影画像とが整合するので、ユーザに提供される視覚的な情報が拡張される。
[変型例3]
各実施例に開示の技術は、マーカーレス型ビジョンベースARにも適用可能である。マーカーレス型ビジョンベースARに本実施例に開示の技術を適用する場合には、画像認識処理において、認識対象の物体の特徴を学習させた辞書(物体認識用テンプレート)を予め準備する。そして、当該辞書を用いて、画像データに対して物体認識処理が実行される。認識対象の物体が、マーカーMであるか、マーカーM以外の物体(自然マーカーともいう)であるかが異なるが、同様のアルゴリズムによって、本実施例の開示の技術は実現される。
[変型例4]
上記実施例では、2つの地点で各々ユーザによる位置の指定操作を必要とする態様について説明したが、これに限られない。例えば、仮オーサリング処理は先の実施例と同様に実行される。その後、仮オーサリング処理にて指定された点M1を、トラッキング技術を併用する事で、トラッキングする。つまり、トラッキング技術によって、ユーザの移動に応じて、他の撮影位置から撮影された画像データにおける点M1に対応する点を特定する。
そして、先の実施例における本オーサリングと同様に、トラッキングで特定された点と、他の撮影位置とを用いて、2点を通る直線情報が生成される。つまり、トラッキング処理によって特定された点M1に対応する点が、図10における点M4相当となり、他の撮影位置がOcB相当となる。
[ハードウェア構成例]
各実施例に示した表示装置1のハードウェア構成について説明する。図24は、表示装置のハードウェア構成例である。各実施例における表示装置1は、コンピュータ300によって、実現される。図13に示す機能ブロックは、例えば、図24に示すハードウェア構成により実現される。コンピュータ300は、例えば、プロセッサ301、Random Access Memory(RAM)302、Read Only Memory(ROM)303、ドライブ装置304、記憶媒体305、入力インターフェース(入力I/F)306、入力デバイス307、出力インターフェース(出力I/F)308、出力デバイス309、通信インターフェース(通信I/F)310、カメラモジュール311、加速度センサ312、角速度センサ313、表示インターフェース(表示I/F)314、表示デバイス315およびバス316などを含む。それぞれのハードウェアはバス316を介して接続されている。
通信インターフェース310はネットワークNを介した通信の制御を行なう。通信インターフェース310が制御する通信は、無線通信を利用して、無線基地局を介してネットワークNにアクセスする態様でもよい。通信インターフェース310の一例は、ネットワーク・インタフェース・カード(NIC)である。入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる。入力インターフェース306および出力インターフェース308の一例は、I/Oコントローラである。
入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ300の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、プロセッサ301の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、スピーカーなどの音声出力装置などである。
表示インターフェース314は、表示デバイス315と接続されている。表示インターフェース314は、表示インターフェース314に設けられた表示用バッファにプロセッサ301により書き込まれた画像情報を、表示デバイス315に表示させる。表示インターフェース314の一例は、グラフィックカードやグラフィックチップである。表示デバイス315は、プロセッサ301の制御に応じて情報を出力する装置である。表示デバイス315は、ディスプレイなどの画像出力装置や、透過型ディスプレイなどが用いられる。
透過型ディスプレイが用いられる場合には、ARコンテンツCの投影画像は、撮像画像と合成されるのではなく、例えば透過型ディスプレイ内の適切な位置に表示されるように制御されてもよい。これにより、ユーザは、現実空間とARコンテンツCが整合した状態の視覚が得られる。
また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307及び表示デバイス315として用いられる。また、入力デバイス307及び表示デバイス315が、コンピュータ300内部に組み込まれる代わりに、例えば、入力デバイス307及び表示デバイス315が、コンピュータ300に外部から接続されてもよい。
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つである。また、例えば、コンピュータ300は、コンピュータ300内の記憶媒体305の種類に対応したドライブ装置304を含む。
カメラモジュール311は、撮像素子(イメージセンサ)を含み、撮像素子が光電変換して得られたデータを、カメラモジュール311に含まれる入力画像用の画像バッファに書き込む。加速度センサ312は、加速度センサ312に対して作用する加速度を計測する。角速度センサ313は、角速度センサ313による動作の角速度を計測する。
プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラムをRAM302に読み出し、読み出されたプログラムの手順に従って処理を行なう。例えば、制御部15の機能は、プロセッサ301が、図17、図18、図19および図20に示される処理が規定されたオーサリングプログラムに基づいて、他のハードウェアの制御を行なうことにより実現される。
通信部11の機能は、プロセッサ301が、通信インターフェース310を制御してデータ通信を実行させ、受信したデータを記憶媒体305に格納させることにより実現される。撮像部12の機能は、カメラモジュール311が入力画像用の画像バッファに画像データを書込み、入力画像用の画像バッファ内の画像データをプロセッサ301が読み出すことにより実現される。画像データは、モニタリングモードにおいては、例えば、入力画像用の画像バッファに書き込まれるとともに、表示デバイス315の表示用バッファに並行して書き込まれる。
また、表示部13の機能は、プロセッサ301により生成された画像データが表示インターフェース314に備えられた表示用バッファに書き込まれ、表示デバイス315が表示用バッファ内の画像データの表示を行なうことにより実現される。記憶部14の機能は、ROM303および記憶媒体305がプログラムファイルやデータファイルを記憶すること、また、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。例えば、ARコンテンツ情報、テンプレート情報などがRAM302に格納される。
次に、図25は、コンピュータで動作するプログラムの構成例を示す。コンピュータ300において、ハードウェア群の制御を行なうOS(オペレーティング・システム)502が動作する。OS502に従った手順でプロセッサ301が動作して、HW(ハードウェア)501の制御・管理が行なわれることで、AP(アプリケーションプログラム)504やMW(ミドルウェア)503による処理がHW501上で実行される。
コンピュータ300において、OS502、MW503及びAP504などのプログラムは、例えば、RAM302に読み出されてプロセッサ301により実行される。
また、各実施例に示したオーサリングプログラムは、例えば、MW503としてAP504から呼び出されるプログラムである。または、例えば、オーサリングプログラムは、AP504としてAR機能を実現させるプログラムである。
オーサリングプログラムは、記憶媒体305に記憶される。記憶媒体305は、本実施例に係る表示制御プログラム単体または、他のプログラムを含むAR制御プログラムを記憶した状態で、コンピュータ300本体と切り離して流通され得る。
次に、各実施例における管理装置2のハードウェア構成について説明する。図26は、管理装置のハードウェア構成例である。管理装置2は、コンピュータ400によって、実現される。管理装置2は、例えば、図26に示すハードウェア構成により実現される。
コンピュータ400は、例えば、プロセッサ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と同様なハードウェアである。入力インターフェース406は、例えば入力インターフェース306と同様なハードウェアである。入力デバイス407は、例えば入力デバイス307と同様なハードウェアである。
出力インターフェース408は、例えば出力インターフェース308と同様なハードウェアである。出力デバイス409は、例えば出力デバイス309と同様なハードウェアである。通信インターフェース410は、例えば通信インターフェース310と同様なハードウェアである。SAN(Storage Area Network)インターフェース411は、コンピュータ400をSANに接続するためのインターフェースであり、HBA(Host Bus Adapter)を含む。
プロセッサ401は、ROM403や記憶媒体405に記憶された管理プログラムをRAM402に読み出し、読み出された管理プログラムの手順に従って処理を行なう。その際にRAM402はプロセッサ401のワークエリアとして用いられる。なお、管理プログラムは、管理装置2の管理機能にかかるプログラムであって、ARコンテンツ情報を表示装置1へ送信する処理などを実行するためのプログラムである。また、管理装置2側でAR表示処理を行う場合にはAR表示プログラムも含まれる。
ROM403および記憶媒体405が、プログラムファイルやデータファイルを記憶すること、もしくは、RAM402がプロセッサ401のワークエリアとして用いられることによって、管理装置2は、各種情報を記憶する。また、プロセッサ401が、通信インターフェース410を制御して通信処理を行なう。
1 表示装置
11 通信部
12 撮像部
13 表示部
14 記憶部
15 制御部
16 認識部
17 表示制御部
18 第一オーサリング部
19 第二オーサリング部
2 管理装置

Claims (11)

  1. 撮像装置および表示装置を備えるコンピュータが、
    予め決められた特定の画像データを含むように前記撮像装置が撮影した第一の画像データを前記表示装置に表示し、
    前記特定の画像データの形状に基づき、前記第一の画像データの撮影位置を特定するとともに、前記第一の画像データ上の任意の特定位置の指定を受付けることで、該撮影位置と指定された該第一の画像データ上の該特定位置とを通る第一の直線情報を生成し、
    前記撮影位置とは異なる他の撮影位置で前記特定の画像データおよび前記特定位置が含まれるように前記撮像装置が撮影した第二の画像データ中の前記特定の画像データの形状に基づき、前記第二の画像データの前記他の撮影位置を特定するとともに、該他の撮影位置と前記第二の画像データ上の前記特定位置とを通る第二の直線情報を生成し、
    前記第一の直線情報と前記第二の直線情報とに基づき、前記特定位置に対応する3次元空間の位置を特定する処理を実行することを特徴とする位置特定方法。
  2. 前記特定の画像データは既知の形状を有する物体の画像データであって、
    前記コンピュータは、前記第一の画像データまたは前記第二の画像データに含まれる該特定の画像データの前記形状と前記既知の形状との比較によって、前記撮影位置を特定することを特徴とする請求項1記載の位置特定方法。
  3. 前記3次元空間は、前記特定の画像データを基準として設定される空間であることを特徴とする請求項1または請求項2のいずれか一項に記載の位置特定方法。
  4. 前記コンピュータは、さらに、
    前記特定の画像データを識別する情報と、前記3次元空間の位置と、他の画像データとを含むコンテンツ情報を生成し、
    前記コンテンツ情報を記憶装置へ記憶する処理を実行することを特徴とする請求項1乃至請求項3のいずれか一項に記載の位置特定方法。
  5. 前記コンピュータは、さらに、
    前記撮像装置から第三の画像データを取得し、
    前記第三の画像データに前記特定の画像データが含まれる場合、前記コンテンツ情報を参照し、該第三の画像データに前記他の画像データを、該特定の画像データと特定の位置関係で、重畳表示する処理を実行することを特徴とする請求項4に記載の位置特定方法。
  6. 前記コンピュータは、さらに、
    前記第一の画像データが取得された後に、前記ユーザに対して、前記撮影位置の変更を促すメッセージを出力することを特徴とする請求項1乃至請求項5のいずれか一項に記載の位置特定方法。
  7. 前記コンピュータは、さらに、
    前記第二の画像データに、前記特定の画像データが含まれる場合に、前記第一の直線情報を示すガイド用画像データを重畳表示することを特徴とする請求項1乃至請求項6のいずれか一項に記載の位置特定方法。
  8. 前記3次元空間の位置として、前記第一の直線情報が示す直線と前記第二の直線情報が示す直線との交点、または最接近点が特定されることを特徴とする請求項1乃至請求項7のいずれか一項に記載の位置特定方法。
  9. 撮像装置および表示装置を備えるコンピュータに、
    予め決められた特定の画像データを含むように前記撮像装置が撮影した第一の画像データを前記表示装置に表示し、
    前記特定の画像データの形状に基づき前記第一の画像データの撮影位置を特定するとともに、前記第一の画像データ上の任意の特定位置の指定を受付けることで、該撮影位置と指定された該第一の画像データ上の該特定位置とを通る第一の直線情報を生成し、
    前記撮影位置とは異なる他の撮影位置で前記特定の画像データおよび前記特定位置が含まれるように前記撮像装置が撮影した第二の画像データ中の前記特定の画像データの形状に基づき、前記第二の画像データの前記他の撮影位置を特定するとともに、該他の撮影位置と前記第二の画像データ上の前記特定位置とを通る第二の直線情報を生成し、
    前記第一の直線情報と前記第二の直線情報とに基づき、前記特定位置に対応する3次元空間の位置を特定する処理を実行させることを特徴とする位置特定プログラム。
  10. 第一の画像データおよび第二の画像データを撮影する撮影部と、
    前記第一の画像データを表示する表示部と、
    前記第一の画像データに特定の画像データが含まれる場合、当該特定の画像データの形状に基づき前記第一の画像データの撮影位置を特定するとともに、前記第一の画像データ上の任意の特定位置の指定を受付けることで、該撮影位置と指定された該第一の画像データ上の該特定位置とを通る第一の直線情報を生成する第一処理部と、
    前記第二の画像データに前記特定の画像データが含まれる場合、前記特定の画像データの形状に基づき、前記第二の画像データの前記他の撮影位置を特定するとともに、該他の撮影位置と前記第二の画像データ上の前記特定位置とを通る第二の直線情報を生成し、前記第一の直線情報と前記第二の直線情報とに基づき、前記特定位置に対応する3次元空間の位置を特定する第二処理部とを含むことを特徴とする表示装置。
  11. 撮像装置および表示装置を備えるコンピュータが、
    予め決められた特定の画像データを含むように前記撮像装置が撮影した第一の画像データを前記表示装置に表示し、
    前記第一の画像データ上の任意の特定位置の指定を受付け、
    前記第一の画像データの撮影位置と該第一の画像データ上の前記特定位置とを通る直線に対応する第一の直線情報を生成し、
    前記撮影位置とは異なる他の撮影位置で前記特定の画像データおよび前記特定位置が含まれるように前記撮像装置が撮影した第二の画像データ上の新たな特定位置の指定を受け付け、
    前記新たな特定位置と前記他の撮影位置とを通る直線に対応する第二の直線情報を生成し、
    前記第一の直線情報と前記第二の直線情報とに基づき、前記特定位置および前記新たな特定位置で指定される3次元空間の位置を特定する処理を実行することを特徴とする位置特定方法。
JP2014088540A 2014-04-22 2014-04-22 表示装置、位置特定プログラム、および位置特定方法 Active JP6265027B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014088540A JP6265027B2 (ja) 2014-04-22 2014-04-22 表示装置、位置特定プログラム、および位置特定方法
US14/665,231 US9495802B2 (en) 2014-04-22 2015-03-23 Position identification method and system
US15/292,309 US10074217B2 (en) 2014-04-22 2016-10-13 Position identification method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014088540A JP6265027B2 (ja) 2014-04-22 2014-04-22 表示装置、位置特定プログラム、および位置特定方法

Publications (2)

Publication Number Publication Date
JP2015207219A JP2015207219A (ja) 2015-11-19
JP6265027B2 true JP6265027B2 (ja) 2018-01-24

Family

ID=54322464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014088540A Active JP6265027B2 (ja) 2014-04-22 2014-04-22 表示装置、位置特定プログラム、および位置特定方法

Country Status (2)

Country Link
US (2) US9495802B2 (ja)
JP (1) JP6265027B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017061281A1 (ja) 2015-10-08 2017-04-13 ソニー株式会社 情報処理装置、及び、情報処理方法
JP6723018B2 (ja) * 2016-02-02 2020-07-15 株式会社パスコ 対象物記録装置及び対象物記録プログラム
JP6701930B2 (ja) 2016-04-28 2020-05-27 富士通株式会社 オーサリング装置、オーサリング方法およびオーサリングプログラム
US10298587B2 (en) * 2016-06-20 2019-05-21 International Business Machines Corporation Peer-to-peer augmented reality handlers
JP2018005091A (ja) * 2016-07-06 2018-01-11 富士通株式会社 表示制御プログラム、表示制御方法および表示制御装置
US20180268614A1 (en) * 2017-03-16 2018-09-20 General Electric Company Systems and methods for aligning pmi object on a model
US10387730B1 (en) * 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
JP6744990B2 (ja) * 2017-04-28 2020-08-19 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6727448B2 (ja) * 2017-08-28 2020-07-22 三菱電機株式会社 拡張現実コンテンツ生成装置および拡張現実コンテンツ生成方法
CN107576731A (zh) * 2017-08-30 2018-01-12 天津大学 基于混合现实的模型实验结构裂纹扩展过程实时透视方法
US11354815B2 (en) * 2018-05-23 2022-06-07 Samsung Electronics Co., Ltd. Marker-based augmented reality system and method
US11087538B2 (en) * 2018-06-26 2021-08-10 Lenovo (Singapore) Pte. Ltd. Presentation of augmented reality images at display locations that do not obstruct user's view
CN110827411B (zh) * 2018-08-09 2023-07-18 北京微播视界科技有限公司 自适应环境的增强现实模型显示方法、装置、设备及存储介质
WO2020030156A1 (zh) 2018-08-10 2020-02-13 广东虚拟现实科技有限公司 图像处理方法、终端设备及计算机可读介质
CN109345573B (zh) * 2018-08-20 2021-04-13 联想(北京)有限公司 一种位置信息确定方法、电子设备和计算机存储介质
US11393170B2 (en) 2018-08-21 2022-07-19 Lenovo (Singapore) Pte. Ltd. Presentation of content based on attention center of user
JP6640294B1 (ja) * 2018-08-24 2020-02-05 株式会社Cygames 複合現実システム、プログラム、携帯端末装置、及び方法
US10991139B2 (en) 2018-08-30 2021-04-27 Lenovo (Singapore) Pte. Ltd. Presentation of graphical object(s) on display to avoid overlay on another item
CA3104444A1 (en) * 2018-11-08 2020-05-14 Rovi Guides, Inc. Methods and systems for augmenting visual content
US10997630B2 (en) * 2018-12-20 2021-05-04 Rovi Guides, Inc. Systems and methods for inserting contextual advertisements into a virtual environment
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
US11151792B2 (en) 2019-04-26 2021-10-19 Google Llc System and method for creating persistent mappings in augmented reality
US11163997B2 (en) * 2019-05-05 2021-11-02 Google Llc Methods and apparatus for venue based augmented reality
CN112702643B (zh) * 2019-10-22 2023-07-21 上海哔哩哔哩科技有限公司 弹幕信息显示方法、装置、移动终端
JP2021086163A (ja) * 2019-11-25 2021-06-03 株式会社NejiLaw 個体識別システム
EP3893096A1 (en) * 2020-04-06 2021-10-13 Siemens Aktiengesellschaft Aligning and augmenting a partial subspace of a physical infrastructure with at least one information element
JP6982659B1 (ja) * 2020-06-26 2021-12-17 株式会社ドワンゴ サーバ、端末、配信システム、配信方法、および情報処理方法
WO2022172335A1 (ja) * 2021-02-09 2022-08-18 マクセル株式会社 仮想ガイド表示装置、仮想ガイド表示システム、及び仮想ガイド表示方法
US11354868B1 (en) * 2021-02-26 2022-06-07 Zebra Technologies Corporation Method to map dynamically drawn augmented reality (AR) scribbles using recognition of discrete spatial anchor(s)
US20230351632A1 (en) * 2022-04-27 2023-11-02 Htc Corporation Method for providing visual content, host, and computer readable storage medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212390A (ja) * 1995-02-08 1996-08-20 Canon Inc 画像処理方法とその装置
JP2000276613A (ja) * 1999-03-29 2000-10-06 Sony Corp 情報処理装置および情報処理方法
EP1308903B1 (en) * 2000-06-16 2010-04-14 Imagnosis Inc. Point inputting device and method for three-dimensional images
JP4537557B2 (ja) 2000-09-19 2010-09-01 オリンパス株式会社 情報呈示システム
JP2004048674A (ja) 2002-05-24 2004-02-12 Olympus Corp 視野一致型情報呈示システム、並びに、それに用いられる携帯情報端末及びサーバ
EP2764899A3 (en) * 2005-08-29 2014-12-10 Nant Holdings IP, LLC Interactivity via mobile image recognition
JP4358181B2 (ja) * 2005-11-11 2009-11-04 任天堂株式会社 ゲームプログラムおよびゲーム装置
KR101135186B1 (ko) * 2010-03-03 2012-04-16 광주과학기술원 상호작용형 실시간 증강현실 시스템과 그 방법, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체
JP5518677B2 (ja) * 2010-11-05 2014-06-11 日本電信電話株式会社 仮想情報付与装置及び仮想情報付与プログラム
JP5799521B2 (ja) * 2011-02-15 2015-10-28 ソニー株式会社 情報処理装置、オーサリング方法及びプログラム
US9679414B2 (en) * 2013-03-01 2017-06-13 Apple Inc. Federated mobile device positioning

Also Published As

Publication number Publication date
US9495802B2 (en) 2016-11-15
US10074217B2 (en) 2018-09-11
JP2015207219A (ja) 2015-11-19
US20150302649A1 (en) 2015-10-22
US20170032515A1 (en) 2017-02-02

Similar Documents

Publication Publication Date Title
JP6265027B2 (ja) 表示装置、位置特定プログラム、および位置特定方法
JP6264972B2 (ja) 表示装置、表示制御プログラム、および表示制御方法
JP5991423B2 (ja) 表示装置、表示方法、表示プログラムおよび位置設定システム
US9710971B2 (en) Information processing device, position designation method and storage medium
JP6314394B2 (ja) 情報処理装置、設定方法、設定プログラム、システムおよび管理装置
JP6299234B2 (ja) 表示制御方法、情報処理装置、および表示制御プログラム
JP6500355B2 (ja) 表示装置、表示プログラム、および表示方法
JP6264834B2 (ja) ガイド方法、情報処理装置およびガイドプログラム
AU2014203449B2 (en) Information processing apparatus, and displaying method
JP6318542B2 (ja) 表示制御方法、表示制御プログラムおよび情報処理装置
JP6160290B2 (ja) 情報処理装置、判定方法および判定プログラム
JP6394107B2 (ja) キャリブレーション装置、キャリブレーション方法、表示制御装置および表示制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171115

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: 20171128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171211

R150 Certificate of patent or registration of utility model

Ref document number: 6265027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150