JP6223976B2 - 表示制御プログラム、表示制御方法及び表示制御装置 - Google Patents

表示制御プログラム、表示制御方法及び表示制御装置 Download PDF

Info

Publication number
JP6223976B2
JP6223976B2 JP2014526607A JP2014526607A JP6223976B2 JP 6223976 B2 JP6223976 B2 JP 6223976B2 JP 2014526607 A JP2014526607 A JP 2014526607A JP 2014526607 A JP2014526607 A JP 2014526607A JP 6223976 B2 JP6223976 B2 JP 6223976B2
Authority
JP
Japan
Prior art keywords
image
unit
display control
reference object
marker
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
JP2014526607A
Other languages
English (en)
Other versions
JPWO2014016862A1 (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
Publication of JPWO2014016862A1 publication Critical patent/JPWO2014016862A1/ja
Application granted granted Critical
Publication of JP6223976B2 publication Critical patent/JP6223976B2/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
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • 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
    • 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/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/002Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to project the image of a two-dimensional display, such as an array of light emitting or modulating elements or a CRT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

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

Description

本発明は、表示制御技術に関する。
撮像素子により取得された撮像画像を表示する表示領域内に、画像モデルを投影させて得られる画像(投影画像)を撮像画像と整合させて表示させる技術がある。撮像画像と投影画像とが整合した表示は、撮像画像中に含まれる基準物の像の位置、サイズ及び向きなどに応じて、投影画像の表示領域内の位置、サイズ及び向きなどが調整されることにより行なわれる。
投影画像の表示調整に用いられる基準物には、基準物が撮像画像内に映された像により、基準物と撮像素子との相対位置及び相対的な向き(相対角度)とを計測可能な識別体が用いられる。例えば、AR(Augmented Reality:拡張現実感)マーカーと呼ばれる識別体が基準物として用いられる。ARマーカーは、例えば、ARマーカー自体が撮影された撮像画像に基づいて、撮像素子との相対位置及び相対角度を計測可能な模様(パターン)が印刷された印刷物などである。また、ARマーカーには、撮像画像内のARマーカーの像に基づいて、ARマーカーに印刷されたパターンを解析することにより、ARマーカーから情報を取得可能なものもある。
投影画像の表示中に、撮像画像の更新により、基準物と撮像素子との相対位置及び相対角度の少なくとも一方が変化すると、更新された撮像画像と投影画像とが整合しなくなることがある。そのため、基準物と撮像素子との相対位置及び相対角度に応じて、投影画像の再調整が行なわれる。投影画像の再調整において、更新された撮像画像内に基準物の像が含まれない場合には、更新された撮像画像と整合する投影画像の表示位置やサイズが不明となるため、投影画像の表示を終了させる制御が行なわれる。上述のように、撮像画像内に基準物の像が含まれるか否かの判定に応じた投影画像表示の実行制御によって、撮像画像と整合しない恐れのある投影画像の表示を終了させることができる。
一方で、投影画像の再描画に関して、投影画像を表示領域に表示した状態で端末装置に設けられた方位センサの値が所定値以上となった場合にのみ、投影画像の再描画を行なう技術がある(特許文献1〜3参照)。
特開2010−238096号公報 特開2000−156849号公報 特開2006−18818号公報
しかしながら、撮影範囲が変わらない場合であっても、撮像素子と基準物との間に障害物が入り込むと、基準物が障害物の陰に隠れるため、撮影情報に基準物の像が含まれなくなる。そのような場合に基準物の非認識に基づいて投影画像の表示が終了されると、撮像画像と整合する投影画像の表示が可能であるにも関わらず、投影画像の表示が終了されてしまうこととなる。
本開示の一側面においては、撮像画像と整合する投影画像が表示可能であるにも関わらず、投影画像の表示を終了してしまうことを抑制することを目的とする。
一態様によれば、表示制御プログラムは、コンピュータに、撮像素子から撮像画像を取得し、前記撮像素子から取得した前記撮像画像内から基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像素子から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、前記撮像素子の移動に関わる計測値を、センサから単位時間ごとに取得し、前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、複数単位時間経過後の前記撮像素子の位置に関わる変化の累積から、前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像素子の位置との間の距離である移動変化量を求め、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続し、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する処理を実行させる。
一態様によれば、コンピュータが、撮像素子から撮像画像を取得し、前記撮像素子から取得した前記撮像画像内から基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像素子から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、前記撮像素子の移動に関わる計測値を、センサから単位時間ごとに取得し、前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、複数単位時間経過後の前記撮像素子の位置に関わる変化の累積から、前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像素子の位置との間の距離である移動変化量を求め、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続し、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する処理を実行することを特徴とする表示制御方法が用いられる。
一態様によれば、表示制御装置は、撮像部と、前記撮像部の移動に関わる計測値を計測するセンサ部と、前記撮像部から撮像画像を取得するとともに、前記センサ部から前記計測値を、単位時間ごとに取得する取得部と、前記撮像部から取得した前記撮像画像内より基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像部から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、また、前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、複数単位時間経過後の前記撮像部の位置に関わる変化の累積から、前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像部の位置との間の距離である移動変化量を求め、前記基準物を認識した後、前記撮像部から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続するとともに、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する制御部と、を含む。
一側面においては、撮像画像と整合する投影画像が表示可能であるにも関わらず、投影画像の表示を終了してしまうことを抑制することができる。
図1A―Cは、マーカーと投影画像との関係を示す。 図2は、本実施形態のシステム構成例を示す。 図3は、端末装置1の機能ブロックの構成例を示す。 図4は、端末装置1のハードウェア構成例を示す。 図5は、サーバ装置2の機能ブロック構成例を示す。 図6は、サーバ装置2のハードウェア構成例を示す。 図7A及びBは、それぞれ端末装置1及びサーバ装置2で動作するプログラムの構成例を示す。 図8は、表示制御のフローチャート例を示す。 図9A及びBは、それぞれ認識管理テーブルT1および認識結果を格納する記憶領域R1のデータ構造例を示す。 図10は、マーカー座標テーブルT2の例を示す。 図11は、マーカー認識処理のフローチャート例を示す。 図12は、認識管理テーブルT1の更新処理のフローチャート例を示す。 図13A−Cは、それぞれ加速度Ax、速度Vx、位置座標Lxの時間変化例を示す。 図14は、移動量算出処理のフローチャート例を示す。 図15A及びBは、座標テーブルT3および移動量テーブルT4の例を示す。 図16は、画像生成処理のフローチャートを示す。 図17は、投影画像管理テーブルT5の例を示す。 図18A及びBは、それぞれマーカー座標系とカメラ座標系との関係、およびスクリーン座標系を示す。 図19A及びBは、それぞれ変換行列X1および変換行列X2の例を示す。 図20は、端末装置1の機能ブロックの構成例を示す。 図21は、端末装置1のプログラムの構成例を示す。 図22は、サーバ装置2の機能ブロックの構成例を示す。 図23は、サーバ装置2のプログラムの構成例を示す。
本発明の実施形態について、図面を用いて説明する。
カメラなどから得られる撮像画像をリアルタイムに表示させる表示デバイスに、撮像画像と整合させて投影画像を重畳表示させる際に、ARマーカーなどのマーカーが基準物として用いられる。マーカーは、画像を撮影する撮像素子に対する相対位置及び相対角度が、撮像画像内に映るマーカー自体の像に基づいて算出可能な識別体である。投影画像は、例えば、マーカーからの位置関係が定義された画像モデルを、マーカーの相対位置及び相対角度に基づいて投影角度やサイズが調整されることで得られる。画像モデルは、事前に形状と表面の模様(パターン)が定義されていても良いし、撮像画像を基に加工されたものでもよい。また、画像モデル自体は、1次元モデル、2次元モデル及び3次元モデルを含む。例えば、モデル自体が、1次元座標や2次元座標で定義されていても、定義されていない方向に定数の座標を与えることで、3次元の座標として表現することとしてもよい。投影画像の表示は、撮像画像を表示する表示デバイスだけでなく、例えば、透過型ディスプレイに対しても行なわれる。透過型ディスプレイに投影画像が表示される場合には、例えば、透過型ディスプレイを介して視認される像と整合するように調整された投影画像が表示される。
図1A乃至Cのそれぞれは、マーカーと投影画像との関係の説明図である。フレームFは、撮像素子により撮影される範囲を示し、フレームFの内部は、撮像画像及び投影画像を表示させる表示画面の例を示す。図1A乃至Cにおいては、実際に表示される内容が実線で表記され、実際に表示されない内容は点線で表記されている(矢印は除く)。
図1Aは、マーカーが認識された場合の投影画像の表示例を示す。図1Aに示す例においては、マーカーM1の像が撮像画像内に含まれる。また、投影画像PI1は、マーカーM1を基準として定義される画像モデルが、マーカーの相対位置及び相対角度とに基づいて調整されて生成される。画像モデルの定義には、マーカーに対してどの位置に存在するか(図1における矢印に相当する)、どのような形状をしているか(図1では立方体が例示されている)、などの指定が含まれる。
図1Aに例示されるマーカーM1は、撮像素子とほぼ並行な向きを向いており、さらに、マーカーM1に対してどの位置に画像モデルが存在するかを示す矢印がほぼマーカーM1の面上に存在する。そのため、マーカーM1と投影画像PI1とのそれぞれの奥行きが、ほぼ同じ程度に表示される。投影画像PI2は、投影画像PI1と同様の定義がマーカーM2を基準として行なわれた画像モデルの投影画像である。図1Aにおいて、マーカーM2は、マーカーM1よりも浅い角度で映り込んでいる。そのため、マーカーM2を基準とする投影画像PI2は、マーカーM2と異なる奥行きで表示される。マーカーM1及びマーカーM2を用いて説明したように、マーカーの像(映り方)に応じて、そのマーカーを基準として定義される投影画像の表示位置、サイズ及び向きが調整される。
図1Bは、マーカーがフレームアウトした場合の撮像画像の例を示す。図1Bの例においては、マーカーM3の像がフレームF内に含まれない。そのため、マーカーM3を基準に定義される画像モデルがあったとしても、その画像モデルに対応する投影画像(投影画像PI3)の表示は行なわれない。すなわち、マーカーの像がフレームアウトすると、表示の基準が不明になるため、投影画像の表示が中断される。図1Bにおいて、投影画像PI3を点線で示しているのは、マーカーM3を基準に定義される3Dモデルが存在するが、マーカーM3が認識されないために表示されないことを便宜的に示すためである。
例えば、あるマーカーを基準とする投影画像を表示させた後に、別のマーカーを基準とする投影画像を表示させる場合には、カメラが別の撮影対象に向けられるため、先に基準としていたマーカーのフレームアウトが生じうる。先に基準としていたマーカーのフレームアウトと、新しく基準となるマーカーのフレームインによって、投影画像表示の基準の切り換えが行なわれる。また、例えば、マーカーを基準とする投影画像の表示を終了させる場合には、カメラを撮影対象(投影画像表示の基準となるマーカーや投影画像など)に向け続ける必要がなくなる。その際には、操作者が別の操作(重畳表示の終了操作や端末に対する入力操作など)を行なうなどによりマーカーがフレームアウトすることとなり、操作者の意図に沿ったタイミングにおいて投影画像表示が終了となる。
図1Cは、障害物(図1Cの例では操作者の手)により、マーカーが認識できない場合の撮像画像の例を示す。図1Cにおいて、マーカーM4はフレームF内に収まっているが、障害物の存在により、マーカーM4の像が識別できない。そのため、マーカーM4を基準とする投影画像PI4の表示が中断されてしまう。障害物による投影画像表示の中断は、別の撮影対象へのフレームの移動や、操作者の別の操作への移行などの操作者の意図に沿ったフレームアウトによる中断と異なり、操作者が継続して投影画像を表示させようとした場合にも起こり得る。
操作者に投影画像表示を継続させる意図がある場合に、障害物により意図に沿わずに投影画像表示が中断されることとなれば、操作性を損なう要因となる。さらに、投影画像の表示を用いたアプリケーションプログラムに、複数の投影画像を順序立てて表示させるシナリオが存在する場合も想定される。そのようなアプリケーションプログラムの動作中に投影画像の表示が中断された場合には、例えば、シナリオが開始地点に戻ることとなる。もしくは、アプリケーションプログラム自体に、投影画像の表示が中断された場合のシナリオ復帰の仕組みが設けられることとなる。このような事態に対して、マーカーの像が撮像画像内に含まれないことの判定のみでなく、さらに撮影素子そのものが動いたことの検知が行なわれた場合にのみ、投影画像表示の中断が行われることで、操作者が意図しない投影画像表示の中断が抑制される。
図2は、本実施形態のシステム構成を示す。図2に示すシステムは、端末装置1、サーバ装置2、記憶装置3、ネットワーク4及び基地局5を含む。端末装置1とサーバ装置2とは、有線または無線のいずれか少なくとも一方の通信方法により通信可能である。サーバ装置2は、記憶装置3に含まれるデータベース3aにアクセス可能である。
図3は、端末装置1の機能ブロックの構成を示す。端末装置1は、取得部11、表示部12、制御部13、記憶部14および通信部15を含む。取得部11は、端末装置1に備えられたセンサにより計測された情報を取得する。取得部11により取得される情報は、例えば、撮像素子により撮影された画像や、端末装置1の動き量を示す情報(加速度・角速度センサにより計測される値など)である。例えば、取得部11は、設定された時間間隔で情報を取得する。表示部12は、制御部13の制御に応じて画像を表示させる。例えば、図1A乃至Cに示す画面のように、取得部11が取得した撮像画像や、投影画像の表示を行なう。制御部13は、取得部11が取得した情報および通信部15を介して取得した情報に応じて処理を行ない、表示部12及び通信部15を制御する。記憶部14は、制御部13に処理に用いられる情報を記憶する。例えば、後述の認識管理テーブルT1、マーカー座標テーブルT2、座標テーブルT3、移動量テーブルT4及び図17に示す投影画像管理テーブルT5などを記憶する。通信部15は、制御部13の制御に応じて、サーバ装置2などの装置との通信を行なう。制御部13は、3Dモデルの定義情報を記憶部12から取得するか、もしくは通信部15の通信によりサーバ装置2から取得する。すなわち、端末装置1が単体で動作する態様もある一方で、端末装置1とサーバ装置2とが連携して処理を行なう態様もあり得る。
制御部13は、認識判定部131、移動判定部132、座標算出部133及び画像生成部134を含む。
認識判定部131は、取得部11が取得した情報に応じて、マーカーを認識しているか否か判断する。認識判定部131は、撮像画像内にマーカーの像が含まれるか否かの判断と、端末装置1が動いたか否かの判断とを行なう。例えば、認識判定部131は、撮像画像内にマーカーの像が含まれるか否かの判断を定期的に行ない、認識状態にあったマーカーの像が撮像画像に像が含まれなくなった場合に、端末装置1本体の移動量に応じて、そのマーカーの認識状態を解除するか否かの判定を行なう。
移動判定部132は、認識判定部131の呼び出しに応じて端末装置1の移動量を算出する。認識判定部131は、移動判定部132が算出した移動量に応じて、端末装置1本体が動いたか否かの判定を行なう。移動判定部132による移動量の算出は、例えば、取得部11が取得した加速度センサや角速度センサの計測値に基づいて算出される。もしくは、移動判定部132が、マーカーの位置座標の履歴に基づいて移動予測量を算出し、認識判定部131が移動予測量に基づいて、マーカーの認識状態を解除するか否かの判断を行なってもよい。
座標算出部133は、認識判定部131の呼び出しに応じて、撮像画像に含まれるマーカーの像に基づき、マーカーと撮像素子との相対位置及び相対角度を算出する処理を行なう。さらに、座標算出部133は、画像生成部134の呼び出しに応じて、3Dモデルに含まれる各頂点の座標変換を行なう。具体的には、座標算出部133は、マーカーを基準とする座標系で定義された座標から、3Dモデルを画面に表示させた際の表示画面中の位置を示す座標に変換する。この座標変換は、先に計算したマーカーの相対位置及び相対角度に基づいて行なわれる。
画像生成部134は、認識判定部131により認識されているマーカーに関連付けられた3Dモデルについて、座標算出部133により変換された各頂点の座標と、3Dモデルの定義とに基づいて、3Dモデルに対応した投影画像を生成する。制御部13は、画像生成部134により生成された画像を表示部12に表示させる制御を行なう。
図4は端末装置1のハードウェア構成を示す。図3に示す各機能ブロックは、例えば、図4に示すハードウェア構成により実現される。端末装置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などを含む。それぞれのハードウェアはバス314を介して接続されている。
通信インターフェース310はネットワーク4を介した通信の制御を行なう。通信インターフェース310が制御する通信は、ネットワーク4に基地局5を介してアクセスする態様もあり得る。入力インターフェース306は、入力デバイス307と接続されており、入力デバイス307から受信した入力信号をプロセッサ301に伝達する。出力インターフェース308は、出力デバイス309と接続されており、出力デバイス309に、プロセッサ301の指示に応じた出力を実行させる。入力デバイス307は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードや端末装置1の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス309は、端末装置1の制御に応じて情報を出力する装置である。出力デバイス309は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカーなどの音声出力装置などである。前述の通り、表示デバイスには、透過型ディスプレイが用いられてもよい。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス307及び出力デバイス309として用いられる。また、入力デバイス307及び出力デバイス309は、端末装置1に含まれず、例えば、端末装置1に外部から接続する装置であってもよい。
RAM302は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAM以外にもフラッシュメモリなどが用いられてもよい。ROM303は、PROM(Programmable ROM)なども含む。ドライブ装置304は、記憶媒体305に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体305は、ドライブ装置304によって書き込まれた情報を記憶する。記憶媒体305は、例えば、ハードディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ1は、複数種類の記憶媒体それぞれについて、ドライブ装置304及び記憶媒体305を設ける。
カメラモジュール311は、撮像素子(イメージセンサ)を含み、例えば、撮像素子が計測した値を読み出し、カメラモジュール311に含まれる入力画像用の画像バッファに書き込む。加速度センサ312は、加速度センサ312に対して作用する加速度を計測する。角速度センサ313は、角速度センサ313による動作の角速度を計測する。
プロセッサ301は、ROM303や記憶媒体305に記憶されたプログラム(例えば図7Aおよび図22などに例示するプログラム)をRAM302に読み出し、読み出されたプログラムの手順に従って制御部13の処理を行なう。その際にRAM302はプロセッサ301のワークエリアとして用いられる。記憶部14の機能は、ROM303および記憶媒体305がプログラムファイルやデータファイルを記憶すること、もしくは、RAM302がプロセッサ301のワークエリアとして用いられることによって実現される。
また、カメラモジュール311が画像データを生成し、生成された画像データをプロセッサ301が取得すること、ならびに加速度センサ312及び角速度センサ313が計測した値をプロセッサ301が取得することにより、取得部11の機能が実現される。カメラモジュール311からプロセッサ301に引き渡される画像データは、例えば、カメラモジュール311が備える入力画像用のバッファに蓄積され、プロセッサ301は、入力画像用のバッファから画像データを読み出す。
さらに、プロセッサ301が、出力用の画像データを生成し、生成した画像データが出力デバイス309である表示デバイスに表示されることにより、表示部12の機能が実現される。プロセッサ301が生成した出力用の画像データは、出力インターフェース308に備えられた出力画像用のバッファに書き込まれ、表示デバイスは出力画像用のバッファから画像データを読み出し、読み出した画像データを表示する。
図5は、サーバ装置2の機能ブロックの構成例を示す。サーバ装置2は、通信部21、制御部22、記憶部23及びDBアクセス部24を含む。通信部21は、制御部22の制御に応じて端末装置1と通信を行なう。制御部22は、通信部21の通信により端末装置1から情報の取得要求を受けた場合に、記憶部23から情報を読み出して、読み出した情報を通信部21に端末装置1に送信させる。もしくは、制御部22は、DBアクセス部24が記憶装置3に含まれるデータベース3aから情報を読み出し、読み出した情報を通信部21に端末装置1に送信させる。端末装置1から取得を要求される情報は、例えば、マーカーに対応付けられた3Dモデルの定義情報などである。記憶部23は、3Dモデルの定義情報などを記憶し、DBアクセス部24は、制御部22の制御に応じて記憶装置3に含まれるデータベース3aにアクセスする。
図6はサーバ装置2のハードウェア構成を示す。図5に示す各機能ブロックは、例えば、図6に示すハードウェア構成により実現される。サーバ装置2は、例えば、プロセッサ401、RAM(Random Access Memory)402、ROM(Read Only Memory)403、ドライブ装置404、記憶媒体405、入力インターフェース(入力I/F)406、入力デバイス407、出力インターフェース(出力I/F)408、出力デバイス409、通信インターフェース(通信I/F)410、SAN(Storage Area Network)インターフェース(SAN I/F)411及びバス412などを含む。それぞれのハードウェアはバス412を介して接続されている。
通信インターフェース410はネットワーク4を介した通信の制御を行なう。入力インターフェース406は、入力デバイス407と接続されており、入力デバイス407から受信した入力信号をプロセッサ401に伝達する。出力インターフェース408は、出力デバイス409と接続されており、出力デバイス409に、プロセッサ401の指示に応じた出力を実行させる。入力デバイス407は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやサーバ装置2の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス409は、サーバ装置2の制御に応じて情報を出力する装置である。出力デバイス409は、例えば、ディスプレイなどの画像出力装置(表示デバイス)や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス407及び出力デバイス409として用いられる。また、入力デバイス407及び出力デバイス409は、サーバ装置2に含まれず、例えば、サーバ装置2に外部から接続する装置であってもよい。
RAM402は読み書き可能なメモリ装置であって、例えば、SRAM(Static RAM)やDRAM(Dynamic RAM)などの半導体メモリ、またはRAM以外にもフラッシュメモリなどが用いられてもよい。ROM403は、PROM(Programmable ROM)なども含む。ドライブ装置404は、記憶媒体405に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体405は、ドライブ装置404によって書き込まれた情報を記憶する。記憶媒体405は、例えば、ハードディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスクなどの記憶媒体である。また、例えば、サーバ装置2は、複数種類の記憶媒体それぞれについて、ドライブ装置404及び記憶媒体405を設ける。
プロセッサ401は、ROM403や記憶媒体405に記憶されたプログラム(例えば図7Bまたは図23に例示するプログラム)をRAM402に読み出し、読み出されたプログラムの手順に従って制御部22の処理を行なう。その際にRAM402はプロセッサ401のワークエリアとして用いられる。記憶部23の機能は、ROM403および記憶媒体405がプログラムファイルやデータファイル(投影画像の定義情報(CADデータ)など)を記憶すること、もしくは、RAM402がプロセッサ401のワークエリアとして用いられることによって実現される。また、プロセッサ401の制御に応じてSANインターフェース411が動作することで、データベース3aへのアクセス処理というDBアクセス部24の機能が実現される。
図7Aは、端末装置1で動作するプログラムの構成例を示す。端末装置1において、ハードウェア群501(図4に示されるハードウェア)の制御を行なうOS(オペレーティング・システム)502が動作する。OS502に従った手順でプロセッサ301が動作して、ハードウェア501の制御・管理が行なわれることにより、アプリケーションプログラム504やミドルウェア503による処理がハードウェア501により実行される。端末装置1において、OS502、ミドルウェア503及びアプリケーションプログラム504などのプログラムが、RAM302に読み出されてプロセッサ301により実行される。また、プロセッサ301がミドルウェア503に基づく処理を行なうことにより、(それらの処理をOS502に基づいてハードウェア501の制御が行なわれ、)取得部11、表示部12、制御部13、記憶部14及び通信部15の機能が実現される。また、ミドルウェア503とアプリケーションプログラム504とは、連動した動作を実行させる別個のプログラムでもよいし、一体のプログラムでもよい。
アプリケーションプログラム504には、例えば、ミドルウェア503の投影画像の表示制御機能を用いた処理の手順が示される。例えば、投影画像の表示と、その表示に応じた入力の検知、さらにその入力に応じた投影画像の表示制御など、入力に従った投影画像表示のシナリオが決められてもよい。アプリケーションプログラム504に従った処理により、例えば、後述の投影画像管理テーブルT5において、マーカーIDに関連付けされるモデルの関連付けフラグが変更されてもよい。
図7Bは、サーバ装置2で動作するプログラムの構成例を示す。サーバ装置2において、ハードウェア群601(図6に示されるハードウェア)の制御を行なうOS602が動作する。OS602に従った手順でプロセッサ401が動作して、ハードウェア601の制御・管理が行なわれることにより、アプリケーションプログラム604やミドルウェア603による処理がハードウェア601により実行される。サーバ装置2において、OS602、ミドルウェア603及びアプリケーションプログラム604などのプログラムが、RAM402に読み出されてプロセッサ401により実行される。また、プロセッサ401がミドルウェア403に基づく処理を行なうことにより、(それらの処理をOS602に基づいてハードウェア601の制御が行なわれ、)通信部21、制御部22、記憶部23及びDBアクセス部24の機能が実現される。また、ミドルウェア603とアプリケーションプログラム604とは、連動した動作を実行させる別個のプログラムでもよいし、一体のプログラムでもよい。
図8は、端末装置1における表示制御のフローチャートを示す。投影画像の表示機能が呼び出される(S100)と、制御部13が前処理を行なう(S101)。投影画像の表示機能は、例えば、アプリケーションプログラム504の手順に従った処理により呼び出される。例えば、S101の前処理において、制御部13は、加速度・角速度に基づく移動量算出のフローの開始や、認識管理テーブルT1およびマーカー座標テーブルT2の記憶領域の確保、投影画像管理テーブルT5の読出しなどを行なう。さらに、制御部13は、カウンタCT1の値を初期化する。S101の処理の次に、認識判定部131は、取得部11から取得した撮像画像に基づいて、マーカー認識処理を行なう(S102)。S102のマーカー認識処理については、図11に基づいて後述する。マーカー認識処理は、例えば、時間間隔I2で行われる。時間間隔T2は、カメラモジュール311が入力用画像バッファに読み出した画像を書き込む時間間隔T1に対して、例えば、1〜数倍の時間間隔である。
図9Aは、認識管理テーブルT1を示す。認識管理テーブルT1は、認識判定部131により認識されたマーカーの識別情報(マーカーID)、認識されたマーカーの画面内位置を示す座標(Xr,Yr)、および認識結果の格納先を示すポインタを格納する。マーカーIDは、撮像画像内のマーカーの像に対して画像解析を行なうことにより読み出される情報である。マーカーIDは、例えば、備えられるマーカーのそれぞれを一意に特定可能な情報である。マーカーIDは、例えば、マーカーのサイズを指定する情報が含まれていてもよい。マーカーIDからマーカーのサイズが読み出せ、座標算出部133がマーカーのサイズに応じてマーカーの相対位置及び相対角度を算出することとすれば、端末装置1は、サイズが異なる複数種類のマーカーに対応して処理を行なうことができる。
認識管理テーブルT1に格納されるマーカーの画面内位置(Xr,Yr)は、例えば、マーカー自体が四角形であるとすると、撮像画像内に含まれるマーカーの像の中心座標でもよいし、各頂点を示す4つの座標でもよい。マーカーの画面内位置(Xr,Yr)は、例えば、マーカーとの相対位置及び相対角度を算出する際に、マーカーの像の読み出し位置の探索に用いられる。また、図9Aではマーカーの画面内位置は最新のものが格納されるが、マーカーの画面内位置(Xr、Yr)の履歴を数回分残しておき、その履歴を画面内でのマーカー位置の移動予測に用いてもよい。
また、認識結果は、図9Bに例示される記憶領域R1に格納される。記憶領域R1は、例えば、所定数N1(図9Bの例では16)ビットのビット列を複数格納可能な記憶領域である。記憶領域R1において、1つのマーカーの認識結果を格納するのに、1つのビット列が割り当てられている。例えば、認識管理テーブルT1に示されるように、マーカーID「0000」のマーカーの認識結果は、ポインタPT1が開始位置を示すビット列により示される。例えば、マーカーIDが「0000」のマーカーについて、i回目の認識判定が行なわれたとすると、ポインタPT1が示す位置からi−1ビットシフトさせた位置にマーカーの認識結果が格納される。例えば、マーカーが認識されれば「1」が格納され、マーカーが認識されなければ「0」が格納される。もちろん、「1」と「0」が逆でも良いし、「1」及び「0」に代わる情報で表現されてもよい。例えば、マーカーID「0000」であるマーカーの認識結果を示すビット列の開始位置は、認識管理テーブルT1に格納されるポインタPT1で示される。例えば、9回目の認識判定においてマーカーID「0000」のマーカーが認識されたとすると、ポインタPT1で示される位置から8ビットシフトした位置のビットが「1」となる。また、所定数N1ビットの格納領域は、所定数N1回の認識判定を行なうたびに繰り返し使用される。図9Bの例では、18回目の認識判定の認識結果は、ポインタPT1で示される位置から1ビットシフトした位置のビットに反映される。前述のとおり、マーカーの認識処理は時間間隔I2で行なわれるので、図9Bに示す記憶領域R1は、16×I2秒経過するごとに繰り返し使用される。
図10は、マーカー座標テーブルT2を示す。マーカー座標テーブルT2には、認識判定部131により認識された各マーカーについて、マーカーID、撮像素子との相対位置を示す位置座標(Xs,Ys,Zs)及び撮像素子との相対的な角度を示す角度座標(Ps,Qs,Rs)が格納される。Psが撮像素子基準の座標系のx軸周りの回転角を示し、Qsがy軸周りの回転角を示し、Rsがz軸周りの回転角を示す。
図8に示す表示制御のフローチャートの説明に戻る。S102では、認識判定部131が、マーカーの情報を読み取り、読み取った情報を認識管理テーブルT1及び記憶領域R1に反映させる(前述の通り、マーカーが認識された場合に、例えば、記憶領域内の対応する値を「1」にセットする)。認識判定部131は、S102の処理後、S102のマーカー認識処理の結果に基づいて、認識管理テーブルT1の更新処理を行なう(S103)。認識判定部131は、S103の更新処理において、所定数N2以上連続で認識されなかったマーカーに関する情報を認識管理テーブルT1から削除する。所定数N2は、所定数N1以下の数である。前述のとおり、マーカーの認識処理は時間間隔I2で行なわれるので、N2×I2秒間マーカーが認識されない場合に、そのマーカーに関する情報が認識管理テーブルT1から削除される。例えば、複数の判定において連続で認識されないマーカーのみを削除することで、マーカー認識エラーにより認識されないマーカーの情報を不用意に削除してしまうことが抑制される。
S103の認識管理テーブルT1の更新処理が終わると、認識判定部131は、カウンタCT1の値をインクリメントし(S104)、さらに、カウンタCT1の値が所定値N3に達したか否かを判定する(S105)。所定値T3は、例えば、1〜N1までのいずれかの数である。カウンタCT1の値が所定値N3に達している場合(S105:YES)には、座標算出部133が、図9Aの認識管理テーブルT1に情報が格納されているマーカーのそれぞれについて、撮像素子からの相対座標(Xs,Ys,Zs)及び相対角度(Ps,Qs,Rs)を算出し、算出した座標をマーカー座標テーブルT2に格納する(S106)。この場合、カウンタCT1の値はリセットされる。カウンタCT1の値が所定値N3に達していない場合(S105:NO)は、記憶領域R1のうち、カウンタCT1の値に対応する領域をクリアする(例えば、値を「0」にする)。クリアされるビットは、記憶領域R1内の各ビット列において、各ポインタが示す位置から、カウンタCT1の値シフトした位置にある各ビットである。ビットのクリアを行なった後、認識判定部131は、再度S102の処理を行なう。
制御部13は、S106の処理を終えると、投影画像の表示ルーチンを呼び出す(S107)。制御部13は、S107の処理後、投影画像の表示機能の終了指示が入力された否かを判定する(S108)。制御部13は、終了指示が入力されていなければ(S108:NO)、S102の処理を再度実行し、終了指示が入力されていれば(S108:YES)、投影画像の表示制御のフローを終了する(S109)。
図11は、マーカー認識処理のフローチャートを示す。認識判定部131は、S102の処理が呼び出される(S200)と、取得部11により取得された撮像画像を読み込む(S201)。S201の撮像画像の読み込みは、入力用の画像バッファに書き込まれる各フレームについて行なわれてもよいし、指定された数のフレームのうち1つを読み込むようにしてもよい。このフレーム数の指定は、予め定められていてもよいし、処理の途中で、処理負荷などに応じて変更されてもよい。このフレーム数は、例えば、入力用の画像バッファから取得部11が画像を読み出す時間間隔I2が、撮像画像が入力用の画像バッファに書き込まれる時間間隔I1に対してどの程度の長さとなるかにより定められる。
次に、認識判定部131は、S201で読み出された撮像画像内にマーカーの像が含まれるか否かを判定する(S202)。S202の判定は、認識対象のマーカーが図1に示す形状のマーカーである場合には、太線で四角形の像が存在するか否かに基づいて行なわれる。その場合には、例えば、4つの頂点付近の画像のパターンを複数種類予め記憶しておき、予め記憶された4つの頂点付近の画像の組み合わせと合致する4つの像が撮像画像に含まれるか否かに基づいて、マーカーの存否が判断される。この方法で判断するために、マーカーが様々な方向に向いた場合の画像組み合わせが用意される。
撮像画像内にマーカーの像が存在しない場合には、S206の処理が行なわれる。撮像画像内にマーカーの像が含まれていることが検知された場合(S202:YES)に、認識判定部131はマーカーの像を解析することにより情報を取得する(S203)。S203において認識判定部131が取得する情報は、例えば、マーカの像の表示位置を示す座標(Xr,Yr)や、マーカーのパターンから解読されるマーカーIDなどである。表示位置を示す座標(Xr,Yr)は、例えば、マーカーの像の中心座標や、マーカーの像の4つの頂点の座標などである。また、図1を用いて前述したように、マーカーIDは、マーカー内のパターンに基づいて読み出される。マーカーIDの抽出は、例えば、検知されたマーカーの像(並行四辺形や台形に近い形状をしている)を正方形に変形させて、変形させた画像に含まれるパターンに基づいて行なわれる。例えば、変形された画像が2値化された場合に、2値化された「1」と「0」との配列をそのままマーカーIDとすればよい。
次に、認識判定部131は、S203で取得されたマーカーIDが条件CD1を満たすか否かを判定する(S204)。所定の条件CD1は、例えば、マーカーIDのサイズが定められたビット数であること、マーカーIDの値が所定の範囲内であることなどである。条件CD1は、アプリケーションプログラム504に基づく処理により指定されてもよい。例えば、携帯電話番号などの情報が識別情報として用いられることが前提とされるアプリケーションプログラムを用いる場合に、マーカーIDが、11ケタの数値であることや、または「090」などから始まる数値であることが所定の条件CD1とされる。また、条件CD1が設定されず、S203の判定が行われずに、S204の処理が行われてもよい。
S204において、マーカーIDが条件CD1を満たすと判定された場合(S204:YES)に、認識判定部131は、マーカーに関する情報(マーカーID、マーカーの表示位置(Xr,Yr)、認識結果を格納するビット列へのポインタ)を認識管理テーブルT1に格納する(S205)。詳細に処理を述べると、S205において、認識判定部131は、読み出したマーカーIDが既に認識管理テーブルT1に格納されているか否か判断する。認識判定部131は、読み出したマーカーIDが認識管理テーブルT1に既に格納されている場合には、認識管理テーブルT1の更新と、記憶領域R1に認識結果の反映とを行なう。また、認識判定部131は、読み出したマーカーIDが認識管理テーブルT1に格納されていない場合には、認識管理テーブルT1に新たなレコードの追加と、記憶領域R1に認識結果の反映とを行なう。前述の通り、認識判定部131は、記憶領域R1のうち、読み出したマーカーIDに対応するビット列のうち、カウンタCT1の値が示す順番のビットを「1」(認識を示す)に更新する。S205の処理を終えると、S103の処理が行なわれる(S206)。S202でマーカーを検知できない場合(S202:NO)や、S203で読み出したマーカーIDが条件CD1を満たさない場合(S204:NO)にも、S206の処理が行なわれる。
図12は、認識管理テーブルT1の更新処理のフローチャートを示す。図8に示すS103の処理が呼び出される(S300)と、認識判定部131は、認識管理テーブルT1に格納されたマーカーIDのうち、1つを選択する(S301)。例えば、マーカーIDを読み取られたマーカーがN4個あれば、認識判定部131は、認識管理テーブルT1のうち、1番目のレコードからN4番目のレコードまでを順に選択し、S301〜S306の間の処理を繰り返し行なう。認識判定部131は、選択したレコードに対応するマーカーが所定数N2以上連続で認識されていないか否かを判定する(S302)。所定数N2以上連続で認識されていないと判定された場合(S302:YES)は、移動判定部132が端末装置1の移動量Dを図15Bに示す移動量テーブルT4から読み出す(S303)。移動量Dの算出処理については、図14を用いて後述する。S302で所定数以上連続で認識されていないマーカーでないと判定された場合(S302:NO)には、S306の処理が行なわれる。
例えば、S302の処理において、選択されたレコード内のポインタに示されるビット列の中で、カウンタ値CT1に示される位置のビットまでの所定数N2個のビットがいずれも「0」であると、所定数N2以上連続で認識されていないと判定される。例えば、図9Bに示す例において、最新で更新されたビットが各ビット列の11番目のビットであるし、所定数N2が例えば6であるとする。図9Bによれば、マーカーID「0000」のマーカーとマーカーID「0001」のマーカーは、過去6回の認識判定において認識されている(6〜11番目のビットがすべて0となっていない)ので、S306の処理が行われる。その一方で、マーカーID「0010」のマーカーは、過去6回の認識判定において一度も認識されていないので、S303の処理が実行される。
S303において端末装置1本体の移動量Dが読み出されると、移動判定部132は、読み出された移動量Dが所定量D0以上であるか否かを判定する(S304)。S304において、移動量Dが所定量D0以上であると判定された場合(S304:YES)には、認識判定部131は、選択されたレコードを認識管理テーブルT1から削除する(S305)。S304で移動量Dが所定量D0以上でない(S304:NO)と判定された場合には、S306の処理が行なわれる。S306では、認識判断部131が認識管理テーブルT1に未選択のレコードが存在するか否かを判断し、未選択のレコードがあればS301の処理を行ない、未選択のレコードが無ければS307の処理を行なう。S307では、処理フローが図8に示すマーカー管理のフローに移され、S104の処理が行なわれる。
次に、移動量Dについて説明する。移動量Dは、例えば、加速度、速度、位置座標などの時間変化量である。移動量Dは、例えば、時間間隔I4で算出される。
移動量Dの算出処理を説明する前に、図13A乃至Cを用いて、加速度、速度及び位置座標の関係について説明する。横軸は時間の進行を示し、t0〜t11は、時間間隔I5で区切られた時刻を示す。図13A乃至Cに示す例において、時間間隔I5は、時間間隔I4の1/4の長さである。図13Aにはx方向の加速度の時間変化、図13Bには速度の時間変化、図13Cには位置座標の時間変化が示される。図13A乃至Cには示されないが、その他の方向についても同様の関係が存在する。
図13Aは、x方向の加速度Axの時間変化例を示す。図13Aの縦軸は加速度Axを示し、図13Aの曲線のグラフは、加速度センサが計測する値の時間変化を示す時刻t0の時のx方向の加速度Axは、Ax(t0)と示され、時刻t1の時のx方向の加速度Axは、Ax(t1)と示される。それ以降の時刻t2〜t11についても同様である。加速度の定積分が速度に相当するので、移動判定部132は、例えば、時間方向の定積分を、加速度Ax×時間間隔I5で近似的に算出する。時刻t0の時のx方向の速度Vxは、Vx(t0)と示され、時刻t1の時のx方向の速度Vxは、Vx(t1)と示される。すると、Vx(t1)=Vx(t0)+Ax(t1)×I5となる。
図13Bは、図13Aに示す加速度Axの時間変化に基づいて算出されるx方向の速度Vxの例を示す。図13Bは、横軸が時間を表し、縦軸がx方向の速度Vxを表す。図13Bに示される曲線のグラフは、時間間隔I5を充分に短く設定した場合に算出される速度Vxの時間変化を示す。速度Vxは、実際には、有限の時間間隔I5刻みに値が得られるのみであり、速度Vxは、Vx(t0)、Vx(t1)、Vx(t2)、・・・と離散的な値で変化する。速度Vxに基づいて、位置座標Cxを算出するには、近似的に得られた速度Vxの定積分を算出する。その結果、例えば、時刻t1におけるx方向の位置座標Lxは、Lx(t1)=Lx(t0)+Vx(t1)×I5となる。
図13Cは、図13Bに示す速度Vxの時間変化に基づいて算出されるx方向の位置座標Lxの例を示す。図13Cにおいて、横軸は時間を示し、縦軸はx方向の位置座標Lxの変化を示す。図13Cに示される曲線グラフは、時間間隔I5を充分に短く設定して速度Vxの算出と位置座標Lxの算出とが行なわれた場合に得られる位置座標Lxの時間変化を示す。実際には、有限の時間間隔I5刻みに位置座標Lxが得られる。
図14は、移動量D算出のフローチャートを示す。図12のS303では、時間間隔I4ごとに、取得部11が取得した情報に基づいて、移動判定部132が移動量Dを算出する。S303で動き判定処理が開始される(S400)と、まず、移動判定部132は、初期値を設定する(S401)。加速度の初期値、速度の初期値及び位置座標の初期値が図15Aに示す座標テーブルT3に格納される。さらに、移動判定部132は、カウンタCT2の値を初期化する。
図15Aに示す座標テーブルT3は、加速度、速度及び位置座標を格納するテーブルの例である。図15Aの例においては、加速度、速度及び位置座標のx,y,z成分それぞれの値が座標テーブルT3に格納される。
図15Aの例において、加速度A0のレコードに、加速度の時間変化量を算出する際に用いられる基準値が格納される。加速度A1のレコードには、加速度の計測値が格納される。速度V0のレコードに、速度の時間変化量を算出する際に用いられる基準値が格納される。速度V1のレコードには、速度の算出値が格納される。位置座標L0のレコードに、位置座標の時間変化量を算出する際に用いられる基準値が格納される。位置座標L1のレコードには、位置座標の算出値が格納される。加速度A0、加速度A1、速度V0、速度V1、位置座標L0及び位置座標L1のレコードには、それぞれx方向、y方向、z方向の値が格納される。例えば、S401の処理で格納される加速度、速度及び位置座標の初期値は、それぞれ加速度A0及びA1、速度V0及びV1、並びに位置座標L0及びL1のレコードに格納される。
図14のフローの説明に戻る。まず、移動判定部132は、時間間隔I5経過したか否かの判定を行なう(S402)。時間間隔I5経過しない場合(S402:NO)には、時間間隔I5経過するまでS403の処理は行なわれない。時間間隔I5は、例えば、図13に示す例と同様に、時間間隔I4の1/4などでよい。時間間隔I5経過した場合(S402:YES)には、移動判定部132は、カウンタCT2の値をインクリメントし、加速度センサの値を読み出し、座標テーブルT3の加速度A1のレコードを、x,y,z成分それぞれについて加速度センサの値に更新する(S403)。次に、移動判定部132は、S403で記録した加速度A1及び座標テーブルT3に格納される速度V1などに基づいて速度を算出して、座標テーブルT3の速度V1を、算出した速度のx,y,z成分それぞれについて更新する(S404)。速度V1は、例えば、速度V1(更新値)=速度V1(更新前の値)+加速度A1×時間間隔I5などにより算出される。また、移動判定部132は、S404で記録した速度V1などに基づいて位置座標を算出し、座標テーブルT3の位置座標L1を、x,y,z成分それぞれについて算出した位置座標L1に更新する(S405)。位置座標L1は、例えば、位置座標L1(更新値)=L1(更新前の値)+速度V1×時間間隔I5などにより算出される。
次に、移動判定部132は、カウンタCT2の値が所定値N4に達したか否かを判定する(S406)。カウンタCT2の値が所定値N4に達していない場合(S406:NO)には、移動判定部132は、再度S402の判定処理を行なう。所定値N4は、時間間隔I4と時間間隔I5とに基づいて、カウンタCT2の値が所定N4に達した場合に、時間間隔I4経過するように定められる。図13の例の通り、時間間隔I5が、時間間隔I4の1/4であるとすると、N4は4となる。
カウンタCT2の値が所定値N4に達していた場合(S406:YES)に、移動判定部132は、加速度、速度及び位置座標のそれぞれについて時間変化量を算出する(S407)。具体的には、加速度の差A2=A1−A0、速度の差V2=V1−V0、位置座標の差L2=L1−L0で算出される。移動判定部132は、算出された時間変化量A2,V2及びL2を、図15Bに示す移動量テーブルT4に格納する。
図15Bは、移動量テーブルT4の例を示す。図15Bに示される移動量テーブルT4には、時間間隔I4で、加速度の時間変化量A2、速度の時間変化量V2および位置座標の時間変化量L2が、x、y、z方向のそれぞれについて格納される。さらに、移動量テーブルT4には、加速度の時間変化量、速度の時間変化量および位置座標の時間変化量のそれぞれについて、方向に依存しない変化量の絶対値(x方向変化量の2乗+y方向変化量の2乗+z方向変化量の2乗など)を格納する領域を設けてもよい。また、さらに、端末本体から被写体に向かうz方向の変化量を敢えて除いて算出される変化量(x方向変化量の2乗+y方向変化量の2乗)を格納する領域を設けてもよい。
さらに、移動判定部132は、時間変化量算出の基準値を更新する(S408)。具体的には、移動判定部132は、座標テーブルT3において、A1に格納された値をA0にコピーし、V1に格納された値をV0にコピーし、L1に格納された値をL0にコピーする。さらに、移動判定部132は、カウンタの値CT2をリセットし(S409)、終了指示があるか否かの判定を行なう(S410)。終了指示がある場合(S410:YES)には、移動判定部132は処理を終了し(S411)、終了指示がない場合(S410:NO)には、移動判定部132は、S402の判定を再度行なう。
図12のS304において、移動判定部132は、例えば、移動量Dとして、移動量テーブルT4に格納された、加速度の時間変化量A2、速度の時間変化量V2及び位置座標の時間変化量L2のいずれか少なくとも1つを用いる。図12のS303の処理において、これらのパラメータが、予め設定された値よりも大きく変動した場合に、移動判定部132は、端末装置1が移動したと判定する。
また、移動量Dの算出に、加速度センサ312の値でなく、角速度センサ313の値が用いられてもよい。角速度に基づく移動量算出においても、加速度に基づく移動量算出と類似の手順が用いられる。図14に示す加速度センサの値に基づく移動量算出のフローチャートに従って、角速度センサの値に基づく移動量算出について説明する。
S303で動き判定処理が開始される(S400´)と、まず、移動判定部132は、初期値を設定する(S401´)。角速度の初期値及び角度の初期値が格納される。記憶部14に記憶される角速度ω0及びω1の値を角速度の初期値とし、角度θ0及びθ1を角度の初期値とする。さらに、移動判定部132は、カウンタCT2の値を初期化する。
まず、移動判定部132は、時間間隔I5経過したか否かの判定を行なう(S402´)。時間間隔I5経過しない場合(S402´:NO)には、時間間隔I5経過するまでS403´の処理は行なわれない。時間間隔I5経過した場合(S402´:YES)には、移動判定部132は、カウンタCT2の値をインクリメントし、角速度センサの値を読み出し、角速度ω1の値を、読み出した角速度センサの値に更新する(S403´)。次に、移動判定部132は、S403´で更新された角速度ω1及び角度θ1の値に基づいて角度を算出して、角度θ1を更新する(S404´)。角度θ1は、例えば、角度θ1(更新値)=角度θ1(更新前の値)+角速度ω1×時間間隔I5などにより算出される。また、角速度センサに基づく処理においては、S405に相当する処理は割愛される。
次に、移動判定部132は、カウンタCT2の値が所定値N4に達したか否かを判定する(S406´)。カウンタCT2の値が所定値N4に達していない場合(S406´:NO)には、移動判定部132は、再度S402´の判定処理を行なう。カウンタCT2の値が所定値N4に達していた場合(S407´)に、移動判定部132は、角速度及び角度のそれぞれについて時間変化量を算出する。具体的には、角速度の差ω2=ω1−ω0、角度の差θ2=θ1−θ0で算出される。移動判定部132は、算出された時間変化量ω2及びθ2を移動量とする。
さらに、移動判定部132は、時間変化量算出の基準値を更新する(S408´)。具体的には、移動判定部132は、ω1の値をω0にコピーし、θ1の値をθ0にコピーする。さらに、移動判定部132は、カウンタの値CT2をリセットし(S409´)、終了指示があるか否かの判定を行なう(S410´)。終了指示がある場合(S410´:YES)には、移動判定部132は処理を終了し(S411´)、終了指示がない場合(S410´:NO)には、移動判定部132はS402´の判定を再度行なう。
さらに、加速度センサ312と、角速度センサ313との双方の値を用いた移動量を算出することとしてもよい。例えば、位置座標の時間変化量L2と角度の時間変化量θ2とのそれぞれに係数α1およびα2を乗じて、移動量D=α1×L2+α2×θ2などにより移動量Dが算出されることとしてもよい。その際に、例えば、座標テーブルT2に格納されるZsの値に応じて係数α2の値が調整されることとしてもよい。マーカーの位置が遠いほど、端末装置1本体の水平移動によるフレームアウトが生じにくいので、例えば、Zsの値が大きいほどα1の値が小さく調整される。
また、移動量Dを用いた判定の基準である所定値D0は、例えば、フレームサイズ及び視野角に基づいて決定される。例えば、角度の時間変化量を移動量Dとした場合に、視野角の半分の角度を所定量D0とすると、時間間隔I4の間に撮影範囲が画面の半分以上変わるので、マーカーが含まれなくなっている可能性が高い。加速度を移動量Dに用いて判定する場合においても同様に、マーカーがフレームアウトする可能性が高くなる程度の移動量が、所定量D0として設定される。
また、例えば、マーカーの像が表示デバイスに表示される位置座標(Xr,Yr)の履歴に基づいて算出されるマーカーの像の予測位置を用いて、移動量の判定が行われてもよい。例えば、時間間隔I2で生成される位置座標(Xr,Yr)を数回分記憶しておき、記憶しておいた位置座標群に基づく外挿予測により得られる座標がフレームの外部の座標である場合に、端末装置1本体に動きがあったと判定される。また、外挿予測により得られる位置座標がフレーム内であれば、端末装置1の本体に動きはないと判定される。
次に、投影画像の表示がどのような制御により行われるかについて説明する。
図8のS107で表示ルーチンが呼び出されると、座標算出部133は、S106で算出されたマーカーの相対座標および相対角度に基づいて、画像モデルに定義された各頂点について座標変換を行なう。さらに、画像生成部134は、座標算出部133により変換された座標に基づいて、画像モデルを撮影画面に投影させた投影画像を生成し、生成した投影画像を画像バッファに書き込む制御を行なう。
図16は、座標算出部133と画像生成部134により行なわれる投影画像の生成手順を示す。まず、表示ルーチンが呼び出される(S500)と、画像生成部134は、認識管理テーブルT1に格納されたマーカーIDのうち、未選択のマーカーIDを選択する(S501)。例えば、マーカーIDを読み取られたマーカーがN4個あれば、画像生成部134は、認識管理テーブルT1のうち、1番目のレコードからN4番目のレコードまでを順に選択し、S501〜S508の間の処理を繰り返し行なう。S501において、さらに座標算出部133は、選択したマーカーIDに対応付けられてマーカー座標テーブルT2に格納されたマーカーの座標Csi(Xsi,Ysi,Zsi)に基づいて、変換行列Xを求める。変換行列Xについては後述する。次に、画像生成部134は、S501で選択したマーカーIDに示されるマーカーを基準として定義された画像モデルを選択する(S502)。
画像モデルの情報は、例えば、図17に示す投影画像管理テーブルT5に格納される。投影画像管理テーブルT5には、マーカーID、各マーカーに関連付けられた画像モデルの識別情報(モデルID)、画像モデルの表示制御フラグ、各画像モデルに含まれる各要素の識別情報(要素ID)、各要素のテクスチャの識別情報(テクスチャID)および各要素に含まれる頂点の座標Cmi(Xmi,Ymi,Zmi)などの情報が格納される。要素に含まれる頂点の座標Cmiは、対応するマーカーを基準(例えば、マーカーの中心が座標系の原点)に定められる座標である。
1つのマーカーIDに対して複数のモデルIDが関連付けられていてもよいし、1つのマーカーIDに1つも関連付けられていない場合もある。投影画像管理テーブルT5においては、モデルIDそれぞれに表示制御フラグが設けられている。表示制御フラグがセットされている画像モデルについては、投影画像の生成が行われ、表示制御フラグがセットされていない画像モデルについては、投影画像の生成がおこなわれない。この表示制御フラグは、アプリケーションプログラム504に従った処理によりオンまたはオフされる。また、1つの画像モデルは1以上の構成要素で構成されており、投影画像管理テーブルT5には、1つのモデルIDに1以上の要素IDが関連づけられて格納される。
テクスチャIDは、各構成要素の模様を示す識別情報である。また、頂点座標Cmiは、投影画像の構成要素に含まれる頂点のうちの1つの座標を示す。例えば、n個の頂点座標Cmi(i=1〜n)が指定された場合には、画像生成部134は、頂点座標Cm1〜Cmnに対応する面領域内にテクスチャIDに対応する模様が配置された画像を生成する。画像生成部134は、テクスチャIDに対応する模様の2D画像を、記憶部14またはサーバ装置2から取得する。例えば、記憶部14や、サーバ装置2の記憶部23、データベース3aなどには、複数のテクスチャIDに対応する複数の2D画像が格納されている。
S502では、投影画像管理テーブルT5において、S501で選択されたマーカーIDと対応付けられたモデルIDのうち、未選択のモデルIDが選択される。次に、画像生成部134は、投影画像管理テーブルT5において、S502で選択されたモデルIDに関連付けられた要素IDのうち、未選択の要素IDを選択する(S503)。
S503で選択された要素IDと関連づけて投影画像管理テーブルT5に格納された頂点座標Cmi(i=1〜n)のそれぞれについて、座標算出部133は、S501で求められた変換行列Xを用いて、頂点座標Cdi(i=1〜n)に変換する(S504)。
次に、画像生成部134は、S504で変換された頂点座標Cdi(i=1〜n)に囲まれた領域に、S503で選択された要素に対応するテクスチャに基づいたパターンが付与された画像要素を生成する(S505)。画像生成部134は、S504で選択したモデルIDに対応する要素で未選択の要素があれば、S503を再度行なう(S506)。また、画像生成部134は、S501で選択したマーカーIDに対応するモデルIDで未選択のモデルIDがあれば、S502を再度行なう(S507)。さらに、画像生成部134は、投影画像管理テーブルT5において未選択のマーカーがある場合には、S501を再度行なう(S508)。
画像生成部134は、各要素についてS505で生成された画像要素を合成して投影画像を生成する(S509)。S509において、画像生成部134は、Zdiの値に応じた順序で画像要素同士を重ね合わせる。Zdiは、撮像素子に対して奥行き方向の座標であり、例えば、画像生成部134は、撮像素子に対して手前に存在する画像要素が上になるように、画像要素同士を重ねる。S509で生成された投影画像は、表示部12により表示され(S510)、表示ルーチンは終了となる(S511)。具体的には、例えば、S509で生成された投影画像は、制御部13により、出力デバイス309である表示デバイスの出力画像用のバッファに書き込まれる。表示部12では表示更新のたびに、書き込まれた投影画像の表示を行なう。すなわち、表示部12により表示される投影画像は、S107の表示ルーチンが呼び出されるたびに、更新される。
次に、変換行列Xを用いて行われる座標変換について説明する。
図18Aにマーカーと端末装置1との位置関係を示す。例えば、画像モデルPI5の頂点Aが、マーカーM5を基準とするマーカー座標系で座標CmA(XmA,YmA,ZmA)であるとする。一方、端末装置1は、マーカーM5とは別の位置に存在する。そのため、端末装置1を基準とする座標系(カメラ座標系)での頂点Aは、座標CmAと異なる座標CcA(XcA,YcA,ZcA)で表される。マーカー座標系の座標をカメラ座標系に変換する変換行列X1を座標CmAに作用させることにより、カメラ座標系の座標CcAが得られる。変換行列X1は、マーカーM5の端末装置1からの相対位置座標(Xs,Ys,Zs)及び相対角度(Ps,Qs,Rs)に基づいて算出される。
図19Aは変換行列X1を示す。マーカー座標系が、カメラ座標系に対してX軸周りにPs回転し、Y軸周りにQs回転し、Z軸周りにRs回転し、さらに、x方向にXs、y方向にYs、z方向にZs並進させた座標系であるため、変換行列X1が作用するとその逆の操作が行われる。
カメラ座標系での頂点Aの座標に対して透視変換が行われると、スクリーン座標系での座標CdA(XdA,YdA,ZdA)が得られる。透視変換においては、x方向及びy方向の座標の大きさがz方向の座標に応じて補正され、撮像画像に映り込んだ場合に、中心からx方向及びy方向にどの程度離れた位置に移るかを示す座標に変換される。透視変換において、カメラ座標系におけるx方向、y方向及び、z方向の座標が大きいほど小さい係数を乗じて縮小される。例えば、カメラ座標系で表される座標を透視変換させる変換行列を変換行列X2とする。図18Bは、頂点Aの座標がスクリーン座標系に変換された場合の頂点Aの位置を示す。
図19Bは、変換行列X2を示す。w、h、n及びfは、カメラスクリーンのサイズやカメラの視野角によって定められる定数である。wはスクリーン幅を表す定数であり、hはスクリーンの高さを表す。さらに、n及びfは、スクリーンの表示の遠近を調整するパラメータである。
モデル画像から透視画像を生成する場合には、画像生成部134は、モデル画像に含まれる各頂点について、マーカー座標系からスクリーン座標系に変換する。この際に用いられる変換行列Xは、変換行列X=X1×X2で算出される(「×」は行列同士の積を示す)。
次に、他のシステム構成例を説明する。例えば、端末装置1がカメラとして機能し、サーバ装置2において、マーカー管理及び画像モデルの表示制御が行なわれることとしてもよい。例えば、遠隔操作で端末装置1を操作し、端末装置1から取得する撮像画像に基づき、操作者が作業を進めるなどの用途がある。
図20は、他のシステム構成における端末装置1の機能ブロックの構成例を示す。端末装置1は、取得部11、表示部12、通信部15及び制御部16を含む。取得部11、表示部12及び通信部15は、図3に示す端末装置1と同様の処理を行なう。制御部16は、通信部15を制御して、取得部11が取得した情報をサーバ装置2に送信する。また、制御部16は、サーバ装置2から表示指示を受けた場合に、表示部12に表示指示に基づく表示を行なう。
図21は、他のシステムにおける端末装置1のプログラム構成例を示す。端末装置1のハードウェア(HW)505は、アプリケーションプログラム(AP)506の手順に従った処理が定義されたオペレーションシステム(OS)502に基づいて、制御される。アプリケーションプログラム506には、撮像画像及びセンサ情報を通信する機能、受信した画像を表示させる機能が含まれる。ハードウェア501とオペレーションシステム502とは、図7Aに示されるものと同様である。
図22は、他のシステムにおけるサーバ装置2の機能ブロック構成例を示す。サーバ装置2は、通信部21、記憶部23、DBアクセス部24及び制御部25を含む。また、制御部25は、認識判定部251、移動判定部252、座標算出部253及び画像生成部254を含む。通信部21、記憶部23及びDBアクセス部24は、図5に示すサーバ装置2と同様の処理を行なう。制御部25は、図20に示す端末装置1から受けた情報に基づいて、画像モデルの表示制御を行なう。認識判定部251、移動判定部252、座標算出部253及び画像生成部254は、それぞれ認識判定部131、移動判定部132、座標算出部133及び画像生成部134と同様の処理を行なう。
図23は、他のシステムにおけるサーバ装置2のプログラム構成例を示す。サーバ装置2においては、ハードウェア(HW)601は、アプリケーションプログラム(AP)606やミドルウェア(MW)603及び605の処理要求を受けたオペレーティングシステム(OS)602により制御される。ハードウェア601、オペレーティングシステム602及びミドルウェア603は、図7Bに示すものと同様である。ミドルウェア605は、図7B及び図23に示すミドルウェア603と異なり、ハードウェア601に、例えば、認識判定部251、移動判定部252、座標算出部253及び画像生成部254の機能を実現させる。アプリケーションプログラム606は、操作者へのシナリオ提供機能を含み、操作者の指示に応じて、画像モデルの表示制御の呼び出し機能を含む。アプリケーションプログラム606に基づく処理により呼び出されると、サーバ装置2は、ミドルウェア605を起動し、図8のフローに基づく表示制御を行なう。
図3に示す端末装置1と図5に示すサーバ装置2を用いると、取得部11が取得した撮像画像に基づき表示される投影画像の生成が端末装置1で行なわれ、生成された投影画像は端末装置1の表示部12に表示される。一方、図21に示す端末装置1と、図23に示すサーバ装置2を用いると、投影画像の生成はサーバ装置2で行なわれ、投影画像の表示は端末装置1及びサーバ装置2の少なくともいずれか一方で行なわれる。
上記に説明される実施形態は一例であり、発明を実施しうる範囲内で適宜変形可能である。また、上記の説明された各処理のさらに詳細な内容については、当業者に周知の技術が適宜用いられる。
1 端末装置
2 サーバ装置
3 記憶装置
4 ネットワーク
5 基地局
11 取得部
12 表示部
13 制御部
14 記憶部
15 通信部
16 制御部
131 認識判定部
132 移動判定部
133 座標算出部
134 画像生成部
21 通信部
22 制御部
23 記憶部
24 DBアクセス部
25 制御部
251 認識判定部
252 移動判定部
253 座標算出部
254 画像生成部

Claims (11)

  1. コンピュータに、
    撮像素子から撮像画像を取得し、
    前記撮像素子から取得した前記撮像画像内から基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像素子から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、
    前記撮像素子の移動に関わる計測値を、センサから単位時間ごとに取得し、
    前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、
    複数単位時間経過後の前記撮像素子の位置に関わる変化の累積から、前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像素子の位置との間の距離である移動変化量を求め、
    前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続し、
    前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する、
    処理を実行させることを特徴とする表示制御プログラム。
  2. 前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内に前記基準物の像が前記所定時間認識されない場合に、前記撮像素子の移動変化量が前記所定値以上であるか否かを判定する、
    ことを特徴とする請求項1に記載の表示制御プログラム。
  3. 前記基準物を認識した後、前記撮像素子から連続して取得した複数の前記撮像画像内のいずれにおいても、前記基準物の像が含まれない場合に、前記基準物が前記所定時間認識されないことを判定する、
    処理を実行させることを特徴とする請求項1に記載の表示制御プログラム。
  4. 前記コンピュータに、
    前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内に前記基準物の像が含まれる場合に、前記表示制御を継続する、
    ことを実行させることを特徴とする請求項1乃至3のいずれか1項に記載の表示制御プログラム。
  5. 前記画像モデルは、前記基準物を基準とする座標で定義された3次元のモデル情報であり、前記表示制御により、前記位置関係に応じて投影された画像に調整されて表示される、
    ことを特徴とする請求項1乃至3のいずれか1項に記載の表示制御プログラム。
  6. 前記センサは、前記コンピュータに備えられた加速度センサまたは角速度センサであって、
    前記計測値は、正負を含む加速度の値である、
    ことを特徴とする請求項1乃至5のいずれか1項に記載の表示制御プログラム。
  7. 前記所定値は、前記撮像素子の撮影範囲を基準に定められる、
    ことを特徴とする請求項1乃至6のいずれか1項に記載の表示制御プログラム。
  8. コンピュータが、
    撮像素子から撮像画像を取得し、
    前記撮像素子から取得した前記撮像画像内から基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像素子から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、
    前記撮像素子の移動に関わる計測値を、センサから単位時間ごとに取得し、
    前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、
    複数単位時間経過後の前記撮像素子の位置に関わる変化の累積から、前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像素子の位置との間の距離である移動変化量を求め、
    前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続し、
    前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する、
    処理を実行することを特徴とする表示制御方法。
  9. 撮像部と、
    前記撮像部の移動に関わる計測値を計測するセンサ部と、
    前記撮像部から撮像画像を取得するとともに、前記センサ部から前記計測値を、単位時間ごとに取得する取得部と、
    前記撮像部から取得した前記撮像画像内より基準物の像を認識した場合に、前記基準物と前記撮像素子との位置関係に応じて調整された画像モデルの表示制御を開始するとともに、前記撮像部から取得した前記撮像画像内より前記基準物が認識されている場合は前記表示制御を継続し、また、前記計測値から、単位時間前の前記撮像素子の位置に対する変化を求め、複数単位時間経過後の前記撮像部の位置に関わる変化の累積から前記複数単位時間の開始時点における前記撮像素子の位置と前記複数単位時間経過後における前記撮像部の位置との間の距離である移動変化量を求め、前記基準物を認識した後、前記撮像部から取得した前記撮像画像内より前記基準物が所定時間認識されず、かつ、前記移動変化量が所定値未満である場合に、前記表示制御を継続するとともに、前記基準物を認識した後、前記撮像素子から取得した前記撮像画像内より前記基準物が前記所定時間認識されず、かつ、前記移動変化量が前記所定値以上である場合に、前記表示制御を終了する制御部と、
    を含むことを特徴とする表示制御装置。
  10. 前記計測値である前記加速度から、前記単位時間あたりの前記撮像素子の速度を求め、
    前記速度から、前記変化として、単位時間前の位置座標からの該撮像素子の変化を求め、
    前記位置座標に関する前記変化を、前記複数単位時間にわたり演算し、
    最新の前記位置座標に関する前記変化と、基準位置座標との差分から、前記移動変化量を求める
    ことを特徴とする請求項6に記載の表示制御プログラム。
  11. 前記位置座標は、3次元方向の各々について、求められ、
    前記変化量は、前記3次元方向の各々について、求められる
    ことを特徴とする請求項10に記載の表示制御プログラム。
JP2014526607A 2012-07-23 2012-07-23 表示制御プログラム、表示制御方法及び表示制御装置 Active JP6223976B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/004673 WO2014016862A1 (ja) 2012-07-23 2012-07-23 表示制御プログラム、表示制御方法及び表示制御装置

Publications (2)

Publication Number Publication Date
JPWO2014016862A1 JPWO2014016862A1 (ja) 2016-07-07
JP6223976B2 true JP6223976B2 (ja) 2017-11-01

Family

ID=49996701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014526607A Active JP6223976B2 (ja) 2012-07-23 2012-07-23 表示制御プログラム、表示制御方法及び表示制御装置

Country Status (4)

Country Link
US (1) US9773335B2 (ja)
EP (1) EP2876608A4 (ja)
JP (1) JP6223976B2 (ja)
WO (1) WO2014016862A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305345B2 (en) * 2014-04-24 2016-04-05 General Electric Company System and method for image based inspection of an object
JP6386263B2 (ja) * 2014-06-26 2018-09-05 東日本旅客鉄道株式会社 画像形成装置、画像形成システム及び画像形成プログラム
JP6288060B2 (ja) 2015-12-10 2018-03-07 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6311695B2 (ja) 2015-12-16 2018-04-18 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6323439B2 (ja) 2015-12-17 2018-05-16 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP6187623B1 (ja) * 2016-03-14 2017-08-30 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2018005091A (ja) * 2016-07-06 2018-01-11 富士通株式会社 表示制御プログラム、表示制御方法および表示制御装置
CN106435526B (zh) * 2016-10-10 2018-07-27 电子科技大学 一种用于mocvd制备ybco带材的气体反应腔
EP3416027B1 (en) * 2017-06-12 2020-04-08 Hexagon Technology Center GmbH Augmented-reality device and system with seamless bridging
JP2020149140A (ja) * 2019-03-11 2020-09-17 株式会社Nttファシリティーズ 作業支援システム、作業支援方法、及びプログラム
US11785184B2 (en) * 2019-03-22 2023-10-10 Spp Technologies Co., Ltd. Maintenance support system, maintenance support method, and program
JP6748793B1 (ja) * 2019-03-22 2020-09-02 Sppテクノロジーズ株式会社 保守支援システム、保守支援方法、プログラム及び加工画像の生成方法
JP2021093037A (ja) * 2019-12-11 2021-06-17 株式会社東芝 算出システム、算出方法、プログラム、及び記憶媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000156849A (ja) 1998-06-29 2000-06-06 Toshiba Corp 携帯情報端末装置
JP2003123197A (ja) 2001-10-16 2003-04-25 Alpine Electronics Inc 道路標示等認識装置
DE10323915A1 (de) 2003-05-23 2005-02-03 Daimlerchrysler Ag Kamerabasierte Positionserkennung für ein Straßenfahrzeug
JP4789511B2 (ja) 2004-06-04 2011-10-12 キヤノン株式会社 状況モニタリング装置及び状況モニタリングシステム
US20100045701A1 (en) * 2008-08-22 2010-02-25 Cybernet Systems Corporation Automatic mapping of augmented reality fiducials
WO2010094065A1 (en) * 2009-02-17 2010-08-26 Jumbuck Entertainment Limited Augmented reality system and method
JP5244012B2 (ja) 2009-03-31 2013-07-24 株式会社エヌ・ティ・ティ・ドコモ 端末装置、拡張現実感システム及び端末画面表示方法
EP2354893B1 (en) * 2009-12-31 2018-10-24 Sony Interactive Entertainment Europe Limited Reducing inertial-based motion estimation drift of a game input controller with an image-based motion estimation
JP5423406B2 (ja) * 2010-01-08 2014-02-19 ソニー株式会社 情報処理装置、情報処理システム及び情報処理方法
JP5697487B2 (ja) * 2011-02-25 2015-04-08 任天堂株式会社 画像処理システム、画像処理方法、画像処理装置、および画像処理用プログラム
JP5821526B2 (ja) * 2011-10-27 2015-11-24 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
JP5496991B2 (ja) * 2011-12-09 2014-05-21 任天堂株式会社 画像表示プログラム、画像表示装置、画像表示システム、および画像表示方法
JP5966510B2 (ja) * 2012-03-29 2016-08-10 ソニー株式会社 情報処理システム
US20130328925A1 (en) * 2012-06-12 2013-12-12 Stephen G. Latta Object focus in a mixed reality environment
US20130342572A1 (en) * 2012-06-26 2013-12-26 Adam G. Poulos Control of displayed content in virtual environments

Also Published As

Publication number Publication date
EP2876608A1 (en) 2015-05-27
US20150138236A1 (en) 2015-05-21
WO2014016862A1 (ja) 2014-01-30
US9773335B2 (en) 2017-09-26
EP2876608A4 (en) 2016-02-10
JPWO2014016862A1 (ja) 2016-07-07

Similar Documents

Publication Publication Date Title
JP6223976B2 (ja) 表示制御プログラム、表示制御方法及び表示制御装置
US10157478B2 (en) Enabling use of three-dimensional locations of features with two-dimensional images
US8660362B2 (en) Combined depth filtering and super resolution
US8976172B2 (en) Three-dimensional scanning using existing sensors on portable electronic devices
JP5766795B2 (ja) 拡張現実環境のためのモバイルデバイスベースのコンテンツマッピング
US20140210950A1 (en) Systems and methods for multiview metrology
US10232262B2 (en) Information processing apparatus, motion control method, and non-transitory computer-readable recording medium
JP6160290B2 (ja) 情報処理装置、判定方法および判定プログラム
JP6589636B2 (ja) 3次元形状計測装置、3次元形状計測方法及び3次元形状計測プログラム
US20150145891A1 (en) Methods and Systems for Viewing a Three-Dimensional (3D) Virtual Object
JP2010128799A (ja) 複合メディア合成装置及び複合メディア表示システム及び複合メディア合成方法及び複合メディア合成プログラム
JP7140965B2 (ja) 画像処理プログラム、画像処理方法および画像処理装置
JP2017151026A (ja) 三次元情報取得装置、三次元情報取得方法、及びプログラム
CN113610702B (zh) 一种建图方法、装置、电子设备及存储介质
JP2019015553A (ja) 情報処理装置、情報処理方法および個体撮像装置
CA3099748A1 (en) Spatial construction using guided surface detection
US10891780B2 (en) Methods and systems for viewing a three-dimensional (3D) virtual object
JP5861684B2 (ja) 情報処理装置、及びプログラム
JP6581348B2 (ja) 情報処理装置、情報処理方法、およびプログラム
CN115686233A (zh) 一种主动笔与显示设备的交互方法、装置及交互系统
WO2023149118A1 (ja) プログラム、情報処理装置、および情報処理方法
JP6948363B2 (ja) 情報処理装置、情報処理方法、およびプログラム
KR101020862B1 (ko) 콘텐츠 저작 공간 구축 방법 및 시스템
KR102247057B1 (ko) 인공신경망을 이용한 슬라브 길이 연산 방법 및 그 장치
JP5122508B2 (ja) 3次元空間データ作成方法及び3次元空間データ作成装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160623

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160701

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171004

R150 Certificate of patent or registration of utility model

Ref document number: 6223976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150