JP2014071850A - 画像処理装置、端末装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、端末装置、画像処理方法、およびプログラム Download PDF

Info

Publication number
JP2014071850A
JP2014071850A JP2012219942A JP2012219942A JP2014071850A JP 2014071850 A JP2014071850 A JP 2014071850A JP 2012219942 A JP2012219942 A JP 2012219942A JP 2012219942 A JP2012219942 A JP 2012219942A JP 2014071850 A JP2014071850 A JP 2014071850A
Authority
JP
Japan
Prior art keywords
marker
image
information
projection
projection image
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.)
Pending
Application number
JP2012219942A
Other languages
English (en)
Inventor
Masaya Ota
正哉 太田
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.)
Osaka University NUC
Osaka Prefecture University
Original Assignee
Osaka University NUC
Osaka Prefecture University
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 Osaka University NUC, Osaka Prefecture University filed Critical Osaka University NUC
Priority to JP2012219942A priority Critical patent/JP2014071850A/ja
Publication of JP2014071850A publication Critical patent/JP2014071850A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力できる画像処理装置を提供する。
【解決手段】一の対象物を投影した1以上の投影画像と、各投影画像における一の対象物の投影方向に関する投影方向情報をそれぞれ有する1以上の投影画像関連情報が格納される投影画像格納部100と、マーカ撮影画像を受け付ける撮影画像受付部101と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部103と、マーカ認識部103が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部105と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部106と、投影画像取得部106が取得した投影画像を出力する出力部108とを備えた。
【選択図】図1

Description

本発明は、AR(Augmented Reality:拡張現実)の技術に関するものである。
従来の技術として、撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、上記入力画像を表示装置の画面上に表示させ、上記画面上でユーザにより指定される指定位置を検出するユーザインタフェース部と、仮想オブジェクトの拡張現実空間内での3次元位置を、上記ユーザインタフェース部により検出される上記指定位置から計算する計算部と、上記計算部により計算される上記仮想オブジェクトの上記3次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、を備える情報処理装置が知られていた(例えば、特許文献1参照)。
特開2012−168798号公報(第1頁、第1図等)
従来の装置においては、入力画像に対応する拡張現実空間内の3次元位置に仮想オブジェクトの画像を出力する際には、仮想オブジェクトを二次元画像に投影した画像を生成するためのレンダリング処理を行う必要があった。しかしながら、このレンダリング処理は、計算負荷が高く、非常に時間がかかる処理であるため、仮想オブジェクトを投影した二次元画像を拡張現実空間内の三次元位置に高速に出力することができない、という課題があった。このため、例えば、画像を撮影してから仮想オブジェクトの画像を出力するまでの待ち時間が長くなる、という問題があった。また、例えば、撮像装置を用いて撮像された実空間を映す画像が動画像である場合、動画像を構成する各フレーム画像を出力するまでに、仮想オブジェクトの画像生成が間に合わず、仮想オブジェクトの動きが、撮像装置の動きに応じた滑らかな動きにならない場合がある、という問題があった。
本発明の画像処理装置は、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される投影画像格納部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた画像処理装置である。
かかる構成により、予め格納されている対象物の投影画像を出力することができるため、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
また、本発明の画像処理装置は、前記画像処理装置において、投影画像取得部が取得した投影画像を補正する補正部を更に備え、出力部は、補正部が補正した投影画像を出力する画像処理装置である。
かかる構成により、投影画像を補正した適切な画像を拡張現実空間内に出力することができる。
また、本発明の画像処理装置は、前記画像処理装置において、投影画像格納部には、更に、各投影画像を投影する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納され、補正部は、投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する画像処理装置である。
かかる構成により、投影画像のサイズを補正した適切な画像を拡張現実空間内に出力することができる。
また、本発明の画像処理装置は、前記画像処理装置において、補正部は、投影画像の傾きを補正する画像処理装置である。
かかる構成により、投影画像の傾きを補正した適切な画像を拡張現実空間内に出力することができる。
また、本発明の画像処理装置は、前記画像処理装置において、出力部は、投影画像を、マーカ撮影画像に重畳して出力する画像処理装置である。
かかる構成により、マーカ撮影画像に投影画像を重ね合わせた画像を出力することができ、マーカを撮影した位置に、投影画像が示す対象物が配置されているような拡張現実空間の画像を出力することができる。
また、本発明の画像処理装置は、前記画像処理装置において、方向情報取得部は、マーカ認識部が取得したマーカ関連情報を用いて、マーカ認識部が認識したマーカの位置と、マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する位置関係情報取得手段と、位置関係情報を用いて、方向情報を取得する方向取得手段と、を備えた画像処理装置である。
かかる構成により、マーカを撮影したカメラの方向に対応した適切な投影画像を出力することができる。
本発明の端末装置は、サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、一の対象物を異なる方向に投影した画像である投影画像であって、投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置から受信する端末受信部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置である。
かかる構成により、マーカ撮影画像を受け付ける毎に、逐次サーバ装置から投影画像を取得して出力することができ、投影画像をダウンロードする待ち時間を低減させることができる。
また、本発明の端末装置は、前記端末装置において、撮影画像受付部は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付け、端末受信部が受信した投影画像に隣接する1以上の投影画像を含む1以上の投影画像である周辺投影画像と、各周辺投影画像に対応する投影方向情報とを受信する周辺画像受信部と、周辺画像受信部が受信した周辺投影画像と、周辺投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報が格納される周辺投影画像格納部と、周辺画像受信部が受信した周辺投影画像と、投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報を周辺投影画像格納部に蓄積する蓄積部と、方向情報取得部が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部に格納されているか否かを判断する判断部と、判断部が一致する投影方向情報があると判断した場合に、一致する投影方向情報に対応する周辺投影画像を、周辺投影画像格納部から取得する端末投影画像取得部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、を更に備え、端末送信部は、判断部が一致する投影方向情報がないと判断した場合にのみ、方向情報をマーカ対応情報としてサーバ装置に送信し、端末受信部は、一の対象物を異なる方向に投影した画像である投影画像であって、この投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報である方向情報と一致する投影画像を、サーバ装置から受信し、出力部は、判断部が一致する投影方向情報があると判断した場合に、端末投影画像取得部が取得した周辺投影画像を出力する端末装置である。
かかる構成により、マーカ撮影画像に対応した周辺投影画像がある場合には、周辺投影画像を出力することで、サーバ装置から、投影画像をダウンロードする頻度を減らすことができ、滑らかな投影画像の出力が可能となる。また、周辺投影画像だけをサーバ装置からダウンロードするため、ダウンロードの時間の増加を抑えることができ、ダウンロードの待ち時間と、投影画像の品質との両立を図ることができる。
また、本発明の端末装置は、サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される端末投影画像格納部と、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置に送信する要求情報送信部と、要求情報に応じた投影画像と投影画像に対応する投影方向情報との1以上の組をサーバ装置から受信し、受信した投影画像と投影方向情報との組を有する1以上の投影画像関連情報を、端末投影画像格納部に蓄積する投影画像受信部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置である。
かかる構成により、一度サーバ装置から1以上の投影画像をダウンロードした後は、更なる投影画像のダウンロードを行わなくても、一の対象物についての投影画像を、マーカ撮影画像に応じて逐次出力することができ、滑らかな投影画像の出力が可能となる。
本発明による画像処理装置等によれば、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
本発明の実施の形態1における画像処理装置のブロック図 同画像処理装置の動作について説明するフローチャート 同画像処理装置の動作について説明するフローチャート 同画像処理装置の動作について説明するフローチャート 同画像処理装置の動作について説明するフローチャート 同画像処理装置の動作について説明するフローチャート 同画像処理装置の投影画像管理情報(図7(a))、投影画像の表示例(図7(b))、および距離関連情報を管理する距離関連情報管理情報を示す図(図7(c))を示す図 同画像処理装置におけるARの座標系を説明するための図 同画像処理装置のカメラ撮影したマーカの斜視図(図9(a))、およびマーカを撮影したマーカ撮影画像を示す図(図9(b)) 同画像処理装置の補正部による補正処理を説明するための模式図 同画像処理装置の3DRLのカメラの座標系を示す模式図(図11(a))、および、カメラ座標系と基準座標系との関係を示す模式図(図11(b)) 拡大撮像面と撮像面との関係を示す模式図(図12(a))、および拡大撮像面の回転角を説明するための模式図(図12(b)) 同画像処理装置の出力部がAR画像を出力している状態を示す図(図13(a))、および画像処理装置のカメラが設けられている側の外観を示す図 本発明の実施の形態2における画像処理システムのブロック図 同画像処理システムのサーバ装置の動作について説明するフローチャート 同画像処理システムの端末装置3の動作について説明するフローチャート 本発明の実施の形態3における画像処理システムのブロック図 同画像処理システムの端末装置の動作について説明するフローチャート 本発明の実施の形態4における画像処理システムのブロック図 同画像処理システムのサーバ装置の動作について説明するフローチャート 本発明の各実施の形態におけるコンピュータシステムの外観の一例を示す図 同実施の形態におけるコンピュータシステムの構成の一例を示す図
以下、画像処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における画像処理装置1のブロック図である。
画像処理装置1は、投影画像格納部100、撮影画像受付部101、カメラ102、マーカ認識部103、方向情報取得部105、投影画像取得部106、補正部107、出力部108を備える。方向情報取得部105は、位置関係情報取得手段1051と、方向取得手段1052とを備える。
投影画像格納部100には、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する1以上の投影画像関連情報が格納される。投影画像関連情報は、投影画像と、この投影画像についての投影方向情報とを有する情報である。ここでの1以上の方向とは、具体的には、1の方向または異なる2以上の方向を意味する。また、ここでの1以上の投影画像は、1または2以上の投影画像を意味する。また、ここでの1以上の投影画増関連情報は、1または2以上の投影画像関連情報を意味する。
対象物は、投影の対象となる物体である。対象物は、実空間の物体であっても良いし、3Dオブジェクト等の仮想空間内の仮想の物体であっても良い。一の対象物は、1つの物体であっても良いし、複数の物体で構成されるグループであっても良い。ここでの投影とは、撮影を含む概念である。投影画像は、対象物を、例えば、カメラ等の撮像装置の撮像面や仮想の投影面等に投影した画像である。投影画像は、例えば、カメラ等の撮像装置で撮影された撮影画像や、3Dモデルをレンダリングすることで得られた二次元画像である。例えば、投影画像は、3Dモデルを仮想的な3次元空間に配置し、予め指定された照明条件の下で、予め指定された位置および角度から見た姿あるいは外観を計算して二次元のCGとして取得したものであっても良い。投影画像が撮影画像である場合、対象物は、被写体と考えても良い。
各投影画像関連情報に含まれる投影方向情報は、同じ投影画像関連情報に含まれる投影画像における対象物の投影方向に関する情報である。投影方向とは、例えば、対象物側から投影面側を見る場合の方向であり、対象物から投影面に向かう方向である。投影方向は、例えば、投影を行う際の視点から、対象物を見る場合の方向に対して、180度向きが異なる方向である。対象物を見る方向は、例えば、後述する対象物の目標点から、投影を行う視点に向かう方向と考えても良い。例えば、投影方向は、撮影方向やレンダリング方向に対して180度向きが異なる方向である。撮影方向は、カメラ等の撮像装置の光軸上の、撮像装置側を起点とした被写体に向かう方向である。レンダリング方向は、レンダリング時の視線の方向や仮想のカメラやビューの方向である。投影方向情報は、投影方向を特定可能な情報であれば良い。投影方向情報は、投影方向を特定することが可能な情報であればどのような情報であっても良い。例えば、投影方向情報は、投影を行う方向の伏角と方位角との組合せである。また、投影方向情報は、投影を行う方向を示す単位ベクトル等のベクトルであってもよい。伏角および方位角とは、例えば以下のように定義される。まず、ここでは、対象物の、投影画像において中央に配置させる目標点をオブジェクト中心と呼ぶ。また、投影の対象物を配置した水平面をxy平面とし、高さ方向をz軸とする右手系の座標系であって、z軸がオブジェクト中心を通るよう定義し、このz軸が水平面と交わる点を原点に定義した座標系をオブジェクト座標系と呼ぶ。そして、このオブジェクト座標系において、オブジェクト中心と投影画像の中心位置とを結ぶ直線がz軸のなす角をここでは伏角、投影面の中心をxy平面におろした点と原点を結ぶ直線と、−y軸とのなす角をここでは方位角とする。なお、オブジェクト中心として、対象物の重心や中心等を用いるようにしても良い。また、オブジェクト中心は、対象物の重心や、ユーザが指定する対象物上、あるいは対象物内の位置であっても良い。
投影画像は、一の対象物を投影した画像に対して、1以上の画像処理等が行われた画像であっても良い。この画像処理はどのような画像処理であっても良い。例えば、この画像処理は、アンシャープマスク処理や、レベル調整処理、色補正処理、ガンマ補正処理等である。また、画像処理は、投影画像の一部の領域を削除したり、投影画像の一部の領域にアルファチャンネル等を設定する処理であっても良い。
投影画像は、一の対象物以外の領域が透明である画像であることが好ましい。投影画像の対象物以外の領域を、ここでは、背景領域と呼ぶ。背景領域が透明である画像とは、例えば、背景領域が透過領域に設定されている画像である。背景領域が透明である画像とは、例えば、アルファチャンネルが設定されており、背景領域内のアルファ値が透過を示す値である「0」に設定されている画像である。また、背景領域が透明である画像は、例えば、背景領域内に画素が設けられていない画像や、背景領域の画素の透過度が100%に設定されている画像である。なお、背景領域が透明である投影画像のかわりに、背景領域が、予め指定された単色や、パターン等である投影画像を用いても良い。この場合、投影画像を出力する際に、この予め指定された単色やパターンを有する領域を投影画像から自動検出して、この部分を透過領域に指定したり、この部分を背景画像等を置きかえたりすることで、結果的に、投影画像の背景領域を実質的に透明にすることができる。
なお、投影画像の背景領域を透明にするためには、例えば、投影画像に対して色域検出やパターン検出等の画像処理を行って背景領域を検出し、投影画像のアルファチャンネルのこの領域内のアルファ値を「0」に設定したり、この領域の画素を削除したり等するようにすればよい。
投影画像格納部100には、更に、各投影画像を取得する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納されていてもよい。距離関連情報は、例えば、投影面とオブジェクト中心との間の距離である。また、距離関連情報は、撮像装置のレンズの光軸上の実質的な中心位置とオブジェクト中心との距離であっても良く、また、撮像装置の焦点距離であっても良い。なお、画角の値を用いることも、焦点距離を用いることと考えても良い。また、距離関連情報は、レンダリングの際の仮想のカメラのレンズの中心位置とオブジェクト中心との距離、および仮想のカメラの焦点距離であってもよい。また、距離関連情報は、これらのうちの2以上の距離であっても良い。
各投影画像に対応する距離関連情報は、例えば、各投影画像を有する投影画像関連情報内に格納されていても良い。また、複数の投影画像を取得する際の距離に関する情報が、共通である場合に、これらの複数の投影画像をそれぞれ有する複数の投影画像関連情報に対して、共通する一の距離関連情報が対応付けて格納されていても良い。
投影画像格納部100には、複数の異なる対象物のそれぞれを1以上の方向に投影した投影画像を有する複数の投影画像関連情報が格納されていても良い。ここでの1以上の方向とは、具体的には、1の方向または異なる2以上の方向を意味する。また、各対象物についての投影画像を有する1または2以上の投影画像関連情報は、各対象物の識別情報と対応付けて投影画像格納部100に格納されていても良い。対象物の識別情報は、後述するマーカ識別情報であっても良い。
投影画像格納部100は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
撮影画像受付部101は、マーカ撮影画像を受け付ける。マーカ撮影画像は、例えば、予め指定されたマーカを撮影した画像である。マーカ撮影画像は、例えば、実空間に配置したマーカをカメラ102で撮影した画像である。マーカ撮影画像は、マーカ以外の背景等を含んでいてよい。マーカは、例えば、このマーカが配置された領域の背景に対して識別可能な形状や、色、パターン、画像、文字列等のコード等を有する指標である。マーカは、例えば、物質に印刷、あるいは貼付された二次元の画像である。マーカは、例えば、バーコードを有していても良い。また、マーカは、立体の部材等であっても良い。予め指定されたマーカとは、予め指定されたサイズや、上記のような予め指定された形状や、色、パターン、特徴点等を有するマーカである。特徴点については後述する。予め指定されたマーカは、例えば、予め、マーカのサイズや、マーカの特徴点や、マーカの画像等が図示しない記憶媒体等に登録されたマーカである。なお、マーカとして認識可能なものであれば、予め指定された形状等を有する物体等をマーカとして用いても良い。例えば、予め登録されているプレートやトレイ等をマーカと考えても良い。また、マーカは、マーカの向きを検出可能な形状等を有することが好ましい。なお、複数のマーカが、実質的に一のマーカを構成していても良い。
マーカ撮影画像は、静止画像であっても、マーカを撮影した動画像の一のフレーム画像であっても良い。撮影画像受付部101は、例えば、動画像を構成する1または2以上のフレーム画像を、順次受け付けても良い。また、マーカ撮影画像のデータ構造等は問わない。また、マーカ撮影画像は、カラー画像であっても、グレースケール画像であっても、二値化画像であっても良い。
撮影画像受付部101は、さらに、撮影時のパラメータに関する情報を受け付けても良い。撮影時のパラメータに関する情報とは、撮影時の焦点距離、画素数等の情報である。撮影時のパラメータに関する情報とは、マーカ撮影画像を取得する際に用いたカメラ102の特性を示すデータ、例えば、カメラ102の焦点距離等により生じるゆがみ等を校正するための校正データであっても良い。このパラメータに関する情報は、各撮影画像ごとに受け付けても良いが、複数の撮影画像のパラメータが同じである場合、最初の撮影画像を受け付ける際やその直前等に、このパラメータに関する情報を受け付けるようにしても良い。
ここでの受け付けとは、例えば、他の装置や処理部等から出力されるマーカ撮影画像等の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、入力デバイスからの受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。本実施の形態においては、撮影画像受付部101が、カメラ102が撮影して出力するマーカ撮影画像を撮影画像受付部101が受け付ける場合を例に挙げて説明する。また、マーカの撮影時のパラメータ等は、カメラ102から受け付けても良く、キーボード等の入力デバイスとを介してユーザから受け付けても良い。撮影画像受付部101は、通信デバイスや、通信デバイスとそのデバイスドライバーとの組合せや、入力インターフェースや、入力インターフェースとそのドライバ等の組合せや、メニュー画面の制御ソフトウェア等で実現され得る。
カメラ102は、マーカを撮影して、このマーカを含むマーカ撮影画像を取得する。カメラ102は、例えば、予め指定されたマーカを撮影する。カメラ102は、静止画像であるマーカ撮影画像を取得しても良いし、動画像であるマーカ撮影画像を取得しても良い。カメラ102は取得したマーカ撮影画像を撮影画像受付部101に出力する。また、カメラ102は、マーカ撮影時のパラメータ、例えば、焦点距離等を撮影画像受付部101に出力しても良い。なお、カメラ102と、撮影画像受付部101との接続は、有線接続であっても無線接続であっても良い。カメラ102は、例えば、デジタルスチルカメラや、デジタルムービーカメラである。カメラ102は、例えば、コンピュータ等の外付けカメラであってもよい。
マーカ認識部103は、マーカ撮影画像内のマーカを認識し、認識したマーカに関する情報であるマーカ関連情報を取得する。マーカを認識するということは、例えば、マーカ撮影画像内のマーカが示されている領域を検出することや、マーカの輪郭を検出することや、マーカのコーナー部等の1以上の特徴点を検出することである。マーカの特徴点とは、例えば、マーカの外観等における特徴を示す1以上の部分や、マーカにおけるマーカと背景とを区別するために用いられる1以上の形状等を有する部分である。例えば、マーカの特徴点とは、マーカの1以上の隅部分や、マーカ内や、マーカの外周に設けられた特定の形状を有する部分である。
マーカ関連情報は、例えば、マーカ撮影画像内におけるマーカの配置されている状況を示す情報である。マーカの配置されている状況を示す情報(以下、マーカ配置状況情報と称す)とは、例えば、マーカ撮影画像内におけるマーカの配置されている領域や、マーカの向きや、マーカの形状等を表す情報や、これらの特定に利用可能な情報である。また、マーカ配置状況情報とは、例えば、マーカと、マーカ撮影画像を撮影したカメラ102との配置関係の特定に利用可能な情報と考えてもよい。マーカ配置状況情報は、例えば、マーカ認識部103が検出したマーカの輪郭を示す情報である。輪郭を示す情報は、例えば、マーカ撮影画像内の輪郭に位置する複数の座標群や、輪郭を構成する1以上の辺を示す数式等である。また、マーカ配置状況情報は、マーカ撮影画像内におけるマーカの1以上の隅を示す情報であってもよい。また、マーカ配置状況情報は、マーカの中心点や重心の位置を示す情報であっても良い。マーカの隅や、中心点や、重心を示す情報は、例えば、隅や、中心点や、重心の座標である。また、マーカ配置状況情報は、マーカの辺や、マーカの中心線等の向きを示すベクトル等の情報であっても良い。また、マーカ配置状況情報は、マーカ撮影画像内におけるマーカの1以上の特徴点を示す情報であっても良い。特徴点を示す情報とは、例えば、特徴点を示す座標や、特徴点を示す領域を示す情報である。また、マーカの配置されている状況を示す情報とは、これらの情報の2以上の組合せであっても良い。例えば、マーカ配置状況情報は、矩形のマーカの4隅の座標や、4隅の座標と中心点または重心との組合せであっても良い。
例えば、マーカ認識部103は、マーカ撮影画像がカラー画像またはグレースケール画像であり、マーカの輪郭等が、背景よりも十分に輝度が低い色を有するものである場合、予め指定された閾値でマーカ撮影画像を二値化して、マーカ撮影画像内のマーカの輪郭等を検出する。また、マーカが、他の部分とは異なる輝度の複数のドット等が配置されたマーカである場合等においては、マーカ認識部103は、二値化したマーカ撮影画像から、輝度値が特定の値である隣接した画素で構成されるマーカを構成する複数の領域を検出してもよい。この複数の領域の検出をマーカの検出と考えても良い。マーカ撮影画像が二値化画像である場合、上記の二値化処理は不要である。
マーカ認識部103は、更に、上記で検出したマーカ撮影画像内のマーカの領域内の画像と、予め図示しない記憶媒体等に格納されている複数のマーカの画像等とのパターンマッチングを行って、一致するマーカの画像等を検出し、このマーカの画像と予め対応付けられているマーカの識別情報(以下、マーカ識別情報と称す)を取得するようにしても良い。なお、上記の予め格納されているマーカの画像とは、マーカ内の部分的な画像であっても良い。
なお、上記のように、マーカ撮影画像からマーカを認識する処理や、マーカの隅や、中心点、重心の座標や、マーカの輪郭を示す情報等のマーカ関連情報を取得する処理については、以下の非特許文献1、2等において、公知の技術であるので、ここでは詳細な説明は省略する。
「非特許文献1:Hirokazu Kato, Mark Billinghurst,"Marker Tracking and HMD Calibration for a video-based Augmented Reality Conferencing System"Proceedings of the 2nd International Workshop on Augmented Reality,pp.85-94,Oct.,1999」
「非特許文献2:橋本直"ARToolKit 拡張現実感プログラミング入門"株式会社アスキー・メディアワークス,初版9月18日,2008」
方向情報取得部105は、マーカ認識部103が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する。方向情報は、例えば、マーカ撮影画像を撮影した際の、マーカからみたカメラ102が位置する方向を示す情報である。ここでのカメラ102の位置とは、例えば、カメラ102のレンズの、光軸方向における実質的な中心位置である。カメラ102の位置は、カメラの撮像面をレンダリングの際の投影面と考えた場合の視点に相当する位置と考えても良い。ただし、カメラ102の位置は、実際のカメラ102のレンズの中心位置から誤差等の分だけずれた位置であっても良い。方向情報は、例えば、マーカ撮影画像を撮影した際の、カメラ102の方位角および伏角である。このカメラ102の方位角および伏角は、例えば、マーカ座標系における方位角および伏角である。マーカ座標系とは、マーカの位置を基準とした座標系であり、例えば、ここでは、マーカ座標系は、マーカの中心を原点とし、マーカを正面から見た場合、即ちマーカを平面側から見た場合の右向きをx軸、上向きをy軸、手前向きをz軸とした座標系であるとする。なお、この場合の伏角は、マーカからカメラ102を見た場合の視線方向と、マーカ座標系の+z軸とがなす角、方位角は、マーカからカメラ102を見た場合の視線方向を、マーカ座標系のxy平面に下した直線と−y軸とのなす角である。ただし、方向情報は、他の座標系におけるカメラ102の方位角および伏角としても良い。また、方向情報は、マーカの位置を始点としたカメラ102の位置する方向を示す単位ベクトル等のベクトルであってもよい。なお、方向情報取得部105は、方向情報として、マーカ撮影画像を撮影した際のカメラ102の撮影方向を示す情報、具体的には、撮影方向の方位角や伏角を取得しても良い。撮影方向とは、カメラ102の位置から見たマーカの方向を示す情報である。また、方向情報取得部105は、方向情報として、更に、カメラ102の光軸を回転軸とした回転角を取得しても良い。また、方向情報取得部105は、カメラ102の位置を示す座標や、カメラ102とマーカとの距離を示す情報等を更に取得しても良い。
なお、この実施の形態においては、方向情報取得部105を構成する位置関係情報取得手段1051と、方向取得手段1052とにより、方向情報を取得する場合の例について説明する。また、方向情報取得部105により、方向情報を取得する処理の具体例については、後述する。
位置関係情報取得手段1051は、マーカ認識部103が取得したマーカ関連情報を用いて、マーカ認識部103が認識したマーカの位置と、マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する。位置関係情報は、例えば、マーカ認識部103がマーカ撮影画像内において認識したマーカについて設定したマーカ座標系における座標と、マーカ撮影画像を撮影したカメラ102の座標系とにおける座標との対応関係を示す情報である。カメラ102の座標系をここでは、カメラ座標系と呼ぶ。カメラ座標系は、カメラ102に対して設定される座標系と考えても良い。位置関係情報は、例えば、マーカ座標系における座標と、カメラ座標系とにおける座標との座標変換行列、あるいは座標変換関数である。
位置関係情報取得手段1051は、例えば、マーカ関連情報と、マーカ撮影画像に撮影されたマーカのマーカ属性情報とを用いて位置関係情報を取得する。マーカ属性情報は、例えば、予め図示しない記憶媒体等に格納されているものを読み出して取得する。マーカ属性情報とは、マーカの属性を示す情報である。マーカ属性情報とは、例えば、マーカの外観に関する属性を示す情報である。マーカ属性情報は、例えば、マーカの縦横の長さ等のサイズの情報や、マーカの形状の情報や、マーカ座標系におけるマーカの特徴点の座標等である。カメラ102が撮影するマーカが、予め指定された一のマーカ、あるいは、同じサイズや形状、特徴点を有するマーカである場合、位置関係情報取得手段1051が利用するマーカ属性情報は、予め特定しておくようにすればよく、この特定されたマーカ属性情報は、図示しない記憶媒体等に予め蓄積しておくようにすればよい。また、カメラ102が撮影するマーカが、異なるサイズや形状、特徴点を有する複数のマーカである場合、予めマーカの識別情報と、マーカに関する情報とを対応付けて有する複数組の情報を、図示しない記憶媒体等に格納しておくようにし、マーカ認識部103がマーカ撮影画像から取得したマーカ識別情報に対応するマーカに関する情報を、この複数組の情報から検索等により取得しても良い。
位置関係情報取得手段1051は、更に、マーカ撮影画像の撮影時のパラメータに関する情報である撮影パラメータ情報を用いて、位置関係情報を取得することが好ましい。撮影パラメータ情報は、例えば、カメラ102の校正データである。パラメータに関する情報は、例えば、カメラ102の焦点距離の情報や、カメラ102の撮像面のサイズや、カメラ102の画素数等に関する情報である。撮影パラメータ情報は撮影時等に、カメラ102等から取得するようにしても良いし、予め図示しない記憶媒体等に格納されている撮影パラメータ情報を読み出しても良い。撮影パラメータ情報としては、カメラで撮影して得られる画像に付与されるExif(Exchangeable image file format)情報等が利用可能である。
なお、本実施の形態においては、位置関係情報取得手段1051が、位置関係情報として、座標変換行列を取得する場合を例に挙げて説明する。なお、位置関係情報取得手段1051が取得する座標変換行列の具体例については後述する。
位置関係情報取得手段1051が、マーカ認識部103が取得したマーカ関連情報を用いて、位置関係情報を取得する処理は、上記の非特許文献1、2等に示されているように公知の技術であるため、ここでは詳細な説明は省略する。
方向取得手段1052は、位置関係情報取得手段1051が取得した位置関係情報を用いて方向情報を取得する。方向情報は、上述したように、マーカ撮影画像を撮影した際の方向に関する情報である。方向取得手段1052は、例えば、位置関係情報を用いて、マーカ撮影画像を撮影した際のカメラの回転角を取得する。カメラの回転角は、例えば、カメラ102をマーカ座標系のx軸、y軸、z軸の少なくとも1以上を回転軸として回転させた場合の角度である。この回転角は、例えば、予め指定された状態にカメラ102が配置されている場合等を基準とした場合の回転角である。カメラ102の回転角は、例えば、カメラ座標系のx軸、y軸またはy軸が、マーカ座標系のx軸、y軸またはz軸に対してなす角度等で示すことができる。また、方向取得手段1052は、例えば、位置関係情報を用いて、マーカ撮影画像を撮影した際の、マーカ座標系におけるカメラ102の位置の情報を取得する。カメラ102の位置の情報は、マーカ座標系におけるカメラ102の座標や、カメラ102の位置ベクトル等である。そして、カメラ102の回転角と、位置の情報とを用いて、マーカ座標系におけるカメラ102の方位角と伏角とを取得する。なお、方向情報を取得する処理の具体例については、後述する。
投影画像取得部106は、方向情報取得部105が取得した方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する。例えば、方向情報取得部105が取得した方向情報に一致する投影方向情報を有する投影画像関連情報を検索し、検出された投影画像関連情報が有する投影画像を取得する。方向情報に一致する投影方向情報とは、例えば、方向情報が示す方向と一致する方向を示す投影方向情報を意味する。ここでの一致とは、完全な一致であっても良いし、予め指定された範囲内の差異も含めた一致であっても良い。例えば、方向情報の値と、投影方向情報との値との値の差が、予め指定された値未満である場合に、方向情報の値と、投影方向情報とが一致であると考えても良い。予め指定された値は、例えば、隣接する投影方向情報間の値の半分の値である。一の投影方向情報に隣接する投影方向情報とは、一の投影方向情報が示す方向の上下左右に隣接する方向を示す投影方向情報である。あるいは、斜め方向に隣接する方向を示す投影方向情報も、一の投影方向情報に隣接する投影方向情報と考えても良い。また、方向情報と、投影方向情報とのそれぞれの値を、同じ桁で四捨五入、切り捨て、切り上げした場合に、両者の値が一致する場合も、一致と考えても良い。また、方向情報が示す方向が、2以上の投影方向情報がそれぞれ示す方向の間の方向を示す場合、最も方向情報が示す方向に近い方向を示す投影方向情報を、一致する投影方向情報と判断しても良い。方向が近いということは、ベクトル間のなす角が小さいことと考えても良い。方向情報と投影方向情報とが一致するということは、例えば、方向情報が示すカメラ102の伏角および方位角が、投影方向情報が示す投影方向の伏角および方位角と一致することや、値の差が、それぞれ予め指定された値未満となることである。ただし、用途等に応じて、伏角または方位角のいずれか一方のみの一致としても良い。また、方向情報の伏角または方位角の少なくとも一方が一致する投影方向情報がない場合、方向情報に対して、伏角および方位角の値の差が最も近い伏角および方位角を有する投影方向情報を一致する投影方向情報と判断するようにしても良い。また、方向情報の伏角と最も近い伏角を有する投影方向情報と、方向情報の方位角と最も近い方位角を有する投影方向情報とが異なる場合、伏角が近い投影方向情報を一致する投影方向情報と判断するようにしても良く、あるいは方位角が近い投影方向情報を一致する投影方向情報と判断するようにしても良い。
なお、伏角が予め指定された正値より小さい場合は、投影画像取得部106は、対象物を真上に投影した投影画像を取得するようにしても良い。
なお、予め、異なる対象物について取得された複数の投影画像を、異なるマーカ識別情報とを対応付けて、投影画像格納部100に蓄積しておくようにし、マーカ認識部103がマーカ撮影画像から取得したマーカ識別情報と対応する1または2以上の投影画像の中から、対応する投影方向情報が方向情報と一致する投影画像を取得するようにしても良い。このようにすることで、マーカに応じた投影画像を取得することが可能となる。なお、投影画像取得部106は、方向情報取得部105が取得した方向情報に一致する投影方向情報と対応付けられた投影画像が検出できなかった場合、投影画像を取得しなくても良い。この場合、後述する出力部108は、投影画像を出力しなくても良いし、マーカ撮影画像に対応する投影画像がなかったことを示すための、図示しない記憶媒体等に予め格納されている文字列や画像等の情報を出力するようにしても良い。
補正部107は、投影画像取得部106が取得した投影画像を補正する。補正部107は、例えば、位置関係情報取得手段1051が取得した位置関係情報を用いて投影画像を補正する。位置関係情報取得手段1051が取得した位置関係情報を用いるということは、例えば、方向情報取得部105が、方向情報を取得する際に位置関係情報を用いて取得したカメラ102の位置を示す座標等の中間情報等を用いることも含む概念である。補正部107は、投影画像取得部106が取得した投影画像が、この投影画像が示す投影物をマーカ撮影画像が示すマーカが配置されていた位置に配置して方向情報が示す方向からカメラ102で撮影した画像となるように、投影画像に対して補正を行う。
例えば、補正部107は、投影画像の傾きを補正する。投影画像の傾きとは、例えば、投影画像が予め指定された基準となる状態にある場合に対する傾きである。基準となる状態とは、例えば、投影画像をカメラ102の撮像面に貼付した状態や、投影画像のオリジナルの状態である。投影画像のオリジナルの状態とは、即ち、投影面への投影時の状態である。ここでの貼付は、投影やいわゆるマッピング等と考えても良い。かかることは以下においても同様である。また、ここでのカメラ102の撮像面は、仮想三次元空間内におけるカメラ102の撮像面に実質的に相当する面等と考えても良い。投影画像の傾きは、例えば、投影画像の基準となる状態に対する回転角で示される。投影画像の傾きは、例えば、投影画像を貼付したカメラ102の撮像面の法線、あるいは、投影画像の法線を回転軸とした回転角で示される。また、投影画像の傾きは、例えば、投影画像をカメラ102の撮像面に貼付した状態を基準とした場合の回転角で示されても良い。例えば、投影画像の傾きは、投影画像の上辺、または下辺の少なくとも一方が、投影の対象物が配置されている平面に平行である状態を基準とした傾きである。例えば、補正部107は、投影画像の傾きを、位置関係情報を用いて補正する。補正部102は、後述するように、出力部108が投影画像をカメラ102の撮像面に貼付して得られた投影画像等を出力する場合には、例えば、投影画像をカメラ102の撮像面等の法線や、貼付後の投影画像の法線を回転軸として回転させることで投影画像の傾きを補正する。また、補正部107は、例えば、投影画像を、この投影画像の法線を回転軸として回転させることで投影画像の傾きを補正してもよい。補正部107は、例えば、傾きを補正するための回転角を取得し、この回転角で、カメラ102の撮像面に貼付した状態の投影画像、または、オリジナルの投影画像を回転させる。回転軸として用いられる投影画像の法線や撮像面の法線としては、例えば、投影画像の中心を通る法線が用いられる。
補正部107は、例えば、投影画像の傾きを、マーカ撮影画像の傾きに対応する傾きとなるよう補正する。補正部107は、例えば、投影画像内における対象物が配置されている平面が、マーカ撮影画像内におけるマーカが配置されている平面と平行となるように、投影画像の傾きを補正する。例えば、補正部107は、投影画像内における対象物が配置されている平面と、マーカ撮影画像内におけるマーカが配置されている平面とが平行となるように、投影画像を、上述したように投影画像が貼付されるカメラ102の撮像面の法線、または、当該投影画像の法線を回転軸として回転させる。なお、対象物やマーカが配置されている平面とは、対象物やマーカの配置されている位置に設定される仮想の平面や平面であっても良い。また、補正部107は、例えば、投影画像内における対象物について設定された座標系と、マーカ撮影画像内におけるマーカについて設定された座標系とが一致するように、投影画像を、カメラ102の撮像面等の法線を回転軸として、あるいは、当該投影画像の法線を回転軸として回転させてもよい。
また、補正部107は、投影画像の上辺または下辺の少なくとも一方が、マーカ撮影画像に写り込んだマーカが配置されている平面がマーカ撮影画像と交わってできる直線に平行となるよう、投影画像の傾きを補正してもよい。また、投影画像や撮像面の上下辺の代わりに、投影画像や撮像面を高さ方向に分割する直線等を用いても良い。この直線は、投影画像や撮像面の中点や重心を通る直線とすることが好ましい。
また、補正部107は、例えば、投影画像取得部106が投影画像を取得した際の投影面の上下辺の、投影方向に平行な直線に垂直かつ投影の対象物が配置された平面に平行な直線に対する傾きを、マーカ撮像画像を撮影する際のカメラ102の撮像面の上下辺の、方向情報が示す方向に平行な直線に垂直かつマーカが配置された平面に平行な直線に対する傾きと一致させた場合の投影画像を、投影画像取得部106が取得した投影画像の傾きを補正して取得する。例えば、補正部107は、上記のそれぞれの傾きを示す角度を取得して、投影画像を、この取得した角度が一致するよう、この投影画像が貼付される撮像面の法線や、この投影画像の法線を回転軸として回転させるようにする。なお、上記における方向等の一致や、方向や面が平行となること等は、マーカ撮影画像内におけるマーカの位置とマーカ撮影画像の中心とのずれや、投影方向と方向情報が示す方向とのずれ等に伴って発生する差異程度のばらつきを含むものであっても良い。
なお、補正部107による投影画像の傾きを補正する処理の具体例については後述する。
また、補正部107は、例えば、投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する。ここでのサイズとは、画像の大きさである。補正部107は、例えば、投影画像のサイズを、マーカ撮影画像に適合したサイズに補正する。ここでのサイズの変更は、縦横比が一定となるサイズの変更でなくても良い。また、投影画像の変型等を含むサイズの変更であっても良い。
補正部107は、例えば、投影画像取得部106が取得した投影画像を用いて、当該投影画像に投影した対象物を、マーカの配置されている位置に配置して、カメラ102の撮像面へ投影した場合の投影画像を取得しても良い。例えば、投影画像を投影する際の視点から対象物の位置に投影した画像を、マーカ位置に配置してカメラ102の撮像面へ投影した場合のサイズとなるよう、投影画像のサイズを補正する。投影画像を投影する際の視点とは、例えば、投影の対象物を撮影するカメラの位置(例えば、レンズの実質的な中心)や、立体モデルである対象物をレンダリングする際の仮想の視点やカメラ位置である。例えば、補正部107は、投影画像取得部106が取得した投影画像を、この投影画像の投影面に平行であって、この投影画像に投影された対象物の中心位置を通る面に、投影時の視点から投影した場合に得られる画像を取得する。そして、この画像を、カメラ座標系の、カメラ102の中心とマーカの中心とを結ぶ直線に交わるスクリーンに投影して、サイズを変更した画像を取得する。ここでのスクリーンとは、例えば、カメラ102の撮像面である。
また、補正部107は、投影の対象物からこの対象物の投影画像を投影する際の視点までの距離とこの視点から投影面までの距離との比である第一の比、およびマーカからカメラ102までの距離とカメラ102からカメラ102の撮像面までの距離との比である第二の比を用いて、投影画像を補正しても良い。例えば、補正部107は、上記の比を用いて、投影画像を投影時と同じ視点から対象物が配置されていた位置に投影した画像を、マーカの位置に配置して、カメラ102の撮像面に補正した場合に得られる画像のサイズと同じサイズとなるよう、投影画像のサイズを補正しても良い。
なお、補正部107によるサイズを変更する処理の具体例については後述する。
出力部108は、投影画像取得部106が取得した投影画像を出力する。出力部108は、投影画像取得部106が取得した投影画像を直接出力する代わりに、補正部107が補正した投影画像を出力するようにしてもよい。また、出力部108は、投影画像を、マーカ撮影画像に重畳して出力するようにしてもよい。例えば、出力部108は、マーカ撮影画像が投影画像の背景となるよう、投影画像とマーカ撮影画像とを重畳して出力しても良い。なお、出力部108が、投影画像とマーカ撮影画像とを、どのような合成モード等で重畳して出力しても良い。また、出力部108は、重畳した画像、あるいは重畳の前後に、予め指定された画像処理を行うようにしても良い。例えば、マーカ撮影画像のマーカ部分を削除したり、予め指定された画像等で埋め込んだ画像を、投影画像と重畳して出力しても良い。
ここでの出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。例えば、出力部108は、カメラ102の図示しない撮影内容を表示するためのモニタ画面等に、投影画像を出力しても良い。
出力部108は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、画像処理装置1の動作の一例について図2のフローチャートを用いて説明する。
(ステップS101)カメラ102は、マーカ撮影画像を取得する。
(ステップS102)撮影画像受付部101は、ステップS101で取得されたマーカ撮影画像を受け付ける。
(ステップS103)マーカ認識部103は、マーカ撮影画像についてマーカを認識して、マーカ関連情報を取得する。
(ステップS104)位置関係情報取得手段1051は、ステップS103で認識したマーカと、マーカ撮影画像を撮影したカメラ102の位置との関係を示す位置関係情報を取得する。
(ステップS105)方向取得手段1052は、ステップS104で取得した位置関係情報を用いて、カメラ102の回転角を取得する。
(ステップS106)方向取得手段1052は、ステップS104で取得した位置関係情報を用いて、カメラ102の位置を示す情報を取得する。
(ステップS107)方向取得手段1052は、ステップS105で取得した回転角と、ステップS106で取得した位置とを用いて、方向情報であるカメラ102の伏角と方位角とを取得する。
(ステップS108)投影画像取得部106は、ステップS107で取得した伏角と方位角とが一致する投影方向情報と対応付けられた投影画像を取得する。
(ステップS109)補正部107は、ステップS108で取得した投影画像の補正を行う。この補正の処理の詳細については後述する。
(ステップS110)補正部107は、ステップS109で補正した投影画像を、ステップS103で取得したマーカ撮影画像と重畳して出力する。そして、ステップS101に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
図3は、画像処理装置1における投影画像取得部106が取得した投影画像を補正する処理の第一の例について示す図である。この補正処理を、以下、第一の補正処理と呼ぶ。この処理は、図2のステップS109の処理に相当する処理である。
(ステップS201)補正部107は、3DCGの描画に用いるライブラリのカメラと、マーカ撮影画像を撮影するカメラ102、即ちARに利用するカメラ102の方向とを一致させる。
(ステップS202)補正部107は、3DCGを描画するためのカメラ位置を、マーカ撮影画像を撮影するカメラ102の位置に設定する。
(ステップS203)補正部107は、投影画像取得部106が取得した投影画像を、投影の対象となった対象物が配置されていた位置に投影させるための平面である拡大撮像面を示す3Dモデルを設定する。具体的には、拡大撮像面を示す3Dモデルである平面のサイズや、この平面のx軸を回転軸とした回転角や、z軸を回転軸とした回転角を設定する。このとき、3Dモデルを基準として設定される座標系と、マーカ座標系とを一致させる。3Dモデルを基準として設定される座標系は、オブジェクト座標系、もしくはそれに相当するものと考えても良い。なお、拡大撮像面については、後述する。
(ステップS204)補正部107は、拡大撮像面の3Dモデルに、投影画像取得部106が取得した投影画像をテクスチャとして貼付して、3DCGの描画、即ちレンダリングを行う。そして上位の処理にリターンする。
図4は、画像処理装置1における投影画像取得部106が取得した投影画像を補正する処理の第二の例について示す図である。この補正処理を、以下、第二の補正処理と呼ぶ。この処理は、図2のステップS109の処理に相当する処理である。
(ステップS301)補正部107は、投影画像取得時の投影面の水平右向きベクトル、および垂直下向きベクトルを取得し、拡大撮像面の四隅の位置ベクトルを取得する。
(ステップS302)補正部107は、拡大撮像面の四隅をスクリーン上へ投影する際の投射位置を求める。このとき、拡大撮像面を基準として設定される座標系と、マーカ座標系とを一致させるものとする。拡大撮像面を基準として設定される座標系は、オブジェクト座標系、もしくはそれに相当するものと考えても良い。
なお、ここでのスクリーンとは、例えば、ARの際に投影画像を配置して出力する面である。スクリーンは、例えば、カメラ102の撮像面、またはカメラ102とマーカとの位置関係が、カメラ102の撮像面と同等である。また、スクリーンは、マーカ撮影画像またはマーカ撮影画像に相当する面と考えても良い。
(ステップS303)補正部107は、投影画像のスクリーンに貼付する際の回転角を取得する。
(ステップS304)補正部107は、オブジェクト中心を始点とした撮像面の垂直下向きベクトルを、スクリーンに投影して得られる単位ベクトルを取得する。
(ステップS305)補正部107は、ステップS304で取得した単位ベクトルを、スクリーン上でカメラから見て左にπ/2回転させたベクトルを取得する。
(ステップS306)補正部107は、ステップS304で取得した単位ベクトルを用いて、貼付する投影画像の幅を取得する。
(ステップS307)補正部107は、ステップS305で取得したベクトルを用いて、貼付する投影画像の高さを取得する。
(ステップS308)補正部107は、スクリーンにおける補正した投影画像を貼り付ける位置を取得する。この位置は、投影画像の中央の貼り付け位置であり、例えば、スクリーン座標系の座標で示される。
(ステップS309)補正部108は、投影画像を、ステップS306およびステップS307で取得したサイズに伸縮し、ステップS303で取得した回転角で回転させ、ステップS308で取得した貼り付け位置に貼り付ける。そして、上位の処理にリターンする。
図5は、画像処理装置1における投影画像取得部106が取得した投影画像を補正する処理の第三の例について示す図である。この補正処理を、以下、第三の補正処理と呼ぶ。この処理は、図2のステップS109の処理に相当する処理である。
(ステップS401)補正部107は、ステップS108で取得した投影画像を、スクリーンに貼付する場合の、回転角を取得する。
(ステップS402)補正部107は、スクリーンにおける画像を貼り付ける位置を取得する。この位置は、投影画像の中央の貼り付け位置であり、例えば、スクリーン座標系の座標で示される。
(ステップS403)補正部107は、貼付する投影画像のサイズである幅と高さとを取得する。例えば、補正部107は、投影画像を投影する際の焦点距離と、投影画像を投影する際の視点と対象物との間の距離との比と、カメラ102の焦点距離とマーカとカメラ102の位置との間の距離との比との関係を用いて、貼付する投影画像のサイズである幅と高さとを取得する。
(ステップS404)補正部107は、ステップS108で取得した投影画像を、ステップS404で取得したサイズに伸縮し、ステップS402で取得した回転角で回転させ、ステップS402で取得した位置に貼り付ける。そして上位の処理にリターンする。
以下、本実施の形態における画像処理装置1の具体的な動作の一例について説明する。なお、以下においては、ベクトルをアンダーラインで示す場合がある。例えば、ベクトルXは、と表す場合がある。また、数式や図面等においては、ベクトルは太字で示す場合がある。
ここでは、実物体を異なる方向からカメラで撮影した画像が、投影画像として、投影画像格納部100に格納されている場合を例に挙げて説明する。ただし、上述したように、3Dモデルを異なる方向から見た画像をレンダリングして得られた画像が投影画像として格納されていても良い。ここでは、投影画像を撮影するために用いるカメラを、撮影時カメラと呼ぶ場合がある。この撮影時カメラの位置は、対象物である3Dモデルをレンダリングする場合の視点や仮想のカメラ位置に相当すると考えて良い。また、ここでの対象物の投影面は、撮影時カメラの撮像面であるとする。
画像処理装置1は、ここでは、一例として、いわゆるスマートフォンと呼ばれる携帯情報端末である場合を例に挙げて説明する。ただし、画像処理装置1は、タブレット端末や、カメラ付き携帯電話等の携帯情報端末であってもよいし、コンピュータであってもよい。また、通信機能付きカメラ等であっても良い。
A.投影画像の取得
1)投影画像を取得する構成
実物体を撮影する場合の撮影システムは、例えば、図示しない撮影装置(ここでは具体的にはカメラ)、編集装置、画像格納装置で構成される。なお、3DCGモデルを描画する場合は、図示しない3DCG描画装置、編集装置、画像格納装置で構成される。画像格納装置は、画像処理装置1からアクセス可能な装置であることが好ましい。ここでは、画像格納装置が、画像処理装置1の投影画像格納部100である場合について説明する。ただし、画像格納装置は、画像処理装置1に接続可能な外部記憶装置(HDDやFlashメモリ)等でもよい。また、画像格納装置は、画像処理装置1からアクセス可能なインターネット上のサーバでもよい。
2)対象物の座標系
以下、対象物の座標系を定義する。なお、対象物の座標系を、ここではオブジェクト座標系と呼ぶ。
図6は、オブジェクト座標系を説明するための図である。オブジェクト座標系は対象物6aを置いた水平面をxy平面6bとし、高さ方向をz軸とする右手系で、対象物の投影画像において中央に投影させたい目標点をオブジェクト中心6cと呼び、z軸はこの目標物の中心を通るように定義し、このz軸が水平面と交わる点を原点とする。また、オブジェクト中心6cとカメラの位置6hを結ぶ直線とz軸のなす角を伏角、カメラの位置6hをxy平面におろした点と原点を結ぶ直線と、+y軸とのなす角を方位角ということとする。なお、カメラの位置6hは、レンダリングで投影画像を取得する際の視点等に相当する。
3)オブジェクトの撮影方法
ARで表示させる対象物の撮影方法の一例を以下に説明する。
撮影では、撮影対象である対象物6aを水平面6bに置き、撮影時カメラ(図示せず)の撮像面6dの中心6eを通過するこの面に垂直な軸、即ち撮影時カメラの光軸6fが、必ずオブジェクト中心6cを通るように撮影時カメラを設置する。撮影時カメラの撮像面6dが、ここでは投影面に相当する。また、撮像面で撮影される画像が、投影画像に相当する。撮影時カメラの撮像面6dは通常、長方形であり、撮像面6dの上下辺6gは必ず水平面に平行になるように撮影時カメラを設置する。これにより撮像面の左右辺に平行で上向きのベクトルは、光軸とz軸でできる平面に含まれる。
オブジェクト中心からxy平面までの距離をε、撮影時カメラの位置6hからオブジェクト中心6cまでの距離をD、撮影時カメラの位置6hから撮像面までの距離をFとする。撮影はε、F、Dを固定して必要な枚数撮影する。例えば、ある伏角に固定し、方位角を3度毎変更して撮影すると120枚の投影画像が得られる。また、例えば、伏角を80度から30度まで10度毎にずらし、方位角を3度毎ずらして対象物6aを撮影し、さらに真上から1枚撮影すると721枚の投影画像が得られる。
対象物6aとして実物体を撮影する際、投影画像を一枚一枚撮影するのではなく、オブジェクトを定速で回転する回転台に乗せてビデオカメラで撮影して動画像を生成し、後にこの動画像からある時間間隔で画像を抜き出すことで投影画像を生成してもよい。
また、上記では実物体を撮影する場合について述べたが、ARの対象が仮想物体の場合は、レンダリングの視点を変更しながら、上記と同様の設定で投影画像または動画像を生成する。
4)画像の編集と保存
撮影時に対象物を青など同一色の面等で囲んで撮影し、撮影後に、投影画像から、この同一色を背景色として選択して削除することで、オブジェクトの背景を消去した投影画像を生成し保存する。この編集により、より臨場感のあるARが可能となる。
撮影された画像が動画像の場合は、動画像のまま背景を透過した後、必要な枚数の画像を抜き出す。60秒で1回転する動画の場合、0.5秒毎に画像を抜き取ると、方位角3度毎の画像120枚が得られる。
ただし、画像処理装置1が動画像の連続したフレーム画像を受付可能なものである場合、抜き取り作業を行わず、一般的な動画圧縮形式で圧縮保存しておくだけでよい。これによって画像を一枚一枚保存しておくよりもデータが圧縮され、データ量を低く抑えられる。
上記のように取得した各投影画像は、撮影時の方位角と伏角とを有する投影方向情報と、対象物の識別情報である対象物識別情報と対応づけられて投影画像格納部100に蓄積される。具体的には、投影画像と、投影方向情報と、対象物識別情報とを有する1または2以上の投影画像関連情報が、投影画像格納部100に蓄積される。対象物識別情報は、例えば「OBJ01」であるとする。また、ここでは、これらの投影画像を取得した際のオブジェクト中心からxy平面までの距離ε、撮影時カメラの位置6hからオブジェクト中心6cまでの距離D、撮像面までの距離Fで構成される距離関連情報が、対象物識別情報と対応づけられて投影画像格納部100に蓄積される。
図7は、投影画像格納部100に格納された投影画像関連情報を管理する投影画像管理情報(図7(a))、投影画像の一例を示す図(図7(b))、および距離関連情報を管理する距離関連情報管理情報を示す図(図7(c))である。投影画像管理情報は、対象物識別情報を示す「対象物ID」、方位角を示す「方位角」、伏角を示す「伏角」、投影画像のファイル名を示す「投影画像」という属性を有している。「方位角」および「伏角」の組は、ここでは、投影画像と対応付けられた投影方向情報である。距離関連情報管理情報は、「対象物ID」と、投影画像を取得した際のオブジェクト中心からxy平面までの距離を示す「距離ε」、撮影時カメラの位置6hからオブジェクト中心6cまでの距離を示す「距離D」、撮影時カメラの位置6hから撮像面までの距離を示す「距離F」という属性を有している。なお、ここでは、G,K,D,F,ε等は、それぞれ任意の数値を示しているものとする。
B.AR処理
1)ARの座標系
図8は、ARの座標系について説明するための図である。以下、図8を用いてARの座標系を定義する。この具体例において説明するマーカ型ARで使われる座標系は、マーカ座標系、スクリーン座標系、カメラ座標系である。マーカ座標系はマーカの中心を原点Omとし、マーカを正面から見たときの右向きをx軸、上向きをy軸、手前向きをz軸とした右手系の座標系である。スクリーン座標系はARの画像を表示する投影面(ここでは、スクリーンと呼ぶ)81の左上を原点Oとし、右向きをx軸、下向きをy軸とした2次元座標系である。投影面は、例えば、マーカ撮影画像の撮像面(投影面)である。ただし、マーカ撮影画像の撮像面でなくてもよい。カメラ座標系はマーカを撮影するカメラ102の位置を原点Ocとし、右向きをx軸、下向きをy軸、奥行き方向をz軸とする右手系座標系である。なお、ここでは、マーカを撮影するカメラ102の位置は、AR時の視点(あるいは、仮想のカメラ位置)に相当すると考えられること、およびカメラ102が撮影したマーカ撮影画像に投影画像を重畳したARの画像を出力することも可能であることから、ここでは、カメラ102を説明の便宜上、AR時カメラ102と呼ぶ場合がある。
2)オブジェクトの描画方法
3DCGを用いる従来からの一般的なマーカ型ARでは、マーカの中心がオブジェクト座標系の原点と一致するように3Dモデルである対象物を描画する。対象物上の各点は、その点とAR時カメラ102の位置とを結ぶ直線と、ARを出力するスクリーンとの交点に描画される。
本実施の形態においては、マーカの中心がオブジェクト座標系の原点と一致するように対象物を描画することとする。ただしオブジェクトの3Dモデルがないため、事前に撮影した投影画像の中から適切な投影画像を選択し、これを補正してスクリーン上に描画する。
本実施の形態では、AR時カメラ102の位置とオブジェクト中心8aとを結ぶ直線bを対象物への視線と呼び、この視線上に撮影時カメラが位置している際に撮影された投影画像、即ち、この視線に対応する方位角と伏角と対応づけられた投影画像を選択することとする。
AR時カメラ102の位置からオブジェクト中心までの距離をd、撮影時カメラの位置からオブジェクト中心までの距離を上述したようにDとするとき、オブジェクトへの視線がAR時カメラ102の光軸と一致している場合を考える。AR時カメラ102の光軸は、スクリーン中心を通過してスクリーンに垂直な軸である。AR時にユーザが、AR時カメラ102で対象物を注視すると、ほぼこれらの軸は一致する。この場合d=Dならば画像の拡大・縮小・回転を適切に行うことで正しい姿(ビュー)の対象物の画像を描画できる。
対象物への視線がAR時カメラ102の光軸と一致していても、d=Dでない場合、即ち、撮影時カメラとオブジェクト中心までの距離と、AR時カメラとマーカまでの距離とが異なるのときは、正しい姿(ビュー)の画像を描画することはできない。また、対象物への視線がAR時カメラ102の光軸と一致していない場合、すなわちユーザが背景などオブジェクト以外の点を見ようとしてAR時カメラを動かした場合、正しい見えの画像を描画できない。視線と光軸が一致しないような場合、このような問題がある。しかし、このような場合ユーザはオブジェクトを注視していないため、わずかな描画画像の不正確さは感知されず十分無視されうる。
2)マーカ撮影
ユーザがARの画像を出力するために、AR時カメラ102を用いてマーカを撮影したとする。このAR時カメラ102は、画像処理装置1に内蔵されたものであってもよいし、画像処理装置1と無線や有線により接続されたものであってもよい。ここで撮影した画像は、動画像であるとし、撮影された各フレーム画像が、マーカ撮影画像として、順次、撮影画像受付部101に出力されるものとする。
撮影画像受付部101は、AR時カメラ102から送信されるマーカ撮影画像を受け付ける。
図9は、AR時カメラ102で撮影したマーカ90の斜視図(図9(a))、およびマーカを撮影したマーカ撮影画像を示す図(図9(b))を示す図である。ここでは、マーカ90はシート91上に印刷されているものとする。
3)マーカ認識および座標変換行列の取得
マーカ認識部103は、マーカ撮影画像に投影されたマーカ90を認識する。そして、位置関係情報取得手段1051は、マーカ認識部103によるマーカ90の認識結果を用いて、マーカ認識部103が認識したマーカ90の位置と、マーカ撮影画像を撮影したAR時カメラ102の位置との関係を示す位置関係情報を取得する。ここでは、位置関係情報として、座標変換行列を取得する。座標変換行列の取得は、ここでは、上述した非特許文献1に示された処理により行う。なお、マーカ撮影画像から、マーカ認識部103によりマーカを認識してマーカの4隅の座標等を取得する処理と、このマーカの認識結果を用いて、マーカ認識部103が座標変換行列を取得する処理は、例えば、ARToolKitと呼ばれるソフトウェアライブラリを用いることで実現可能である。ARToolKitについては、以下の非特許文献3を参照されたい。「非特許文献3:"ARToolKit Home Page"、[online]、[平成24年9月18日検索]、インターネット<URL:http://www.hitl.washington.edu/artoolkit/>」。
マーカ座標系で見たある点 =(X、Y、Z(Tは転置)をカメラ座標系で見た座標表現 =(X、Y、Z
に座標変換する式は以下で与えられる。
Figure 2014071850
なお、ここで、R3×3を回転行列、Tを並進ベクトル、Tcmを座標変換行列と呼ぶ。
カメラ座標系で見たマーカ座標系のx軸、y軸、z軸向きの単位ベクトルを とする。このとき、次式が成り立つ。
Figure 2014071850
なぜなら、例えばマーカ座標系で見たベクトル(1、0、0)は、上記の座標変換行列Tcmを用いてカメラ座標系で見たベクトルに変換すると(r11、r21、r31であり、これは に他ならない。
4)位置関係情報の取得処理
4−1)回転行列のオイラー角表現
上述したARの回転行列R3×3をz?y?x系のオイラー角で表現する。ただし、ここでは回転順序はz→y→x、回転角はθ、θ、θとする。空間中に固定された点のマーカ座標系で見た座標をm、カメラ座標系で見た座標を とすると、これらの間には以下の関係がある。
Figure 2014071850
よって、オイラー角は、後述する式(31)、式(32)、式(33)より、
Figure 2014071850
より求められる。オイラー角の詳細、および上記のオイラー角を求める処理の詳細については、後述する。
なお、ここで|θy|<π/2と仮定している。マーカ型ARでは、通常、マーカ裏からの画像表示を行わないため、この仮定が成り立つ。また、マーカを真横から見た場合、いわゆるジンバルロックを生じるが、このような場合マーカを認識できないため、ジンバルロックが生じる場合についても、ここでは考えないものとする。ジンバルロックについては後述する。
4−2)マーカ座標系で見たカメラ位置座標
座標変換行列は式(1)より
Figure 2014071850
と表すことができる。
よってカメラ座標系からマーカ座標系への変換は、
Figure 2014071850
と表すことができる。これより、カメラ座標系で見たAR時カメラ102のカメラ位置c=(0、0、0)を、マーカ座標系で見たときの位置ベクトルは、
Figure 2014071850
で求められる。
このため、方向取得手段1051は、この式を用いることで、カメラ座標系で見たカメラ位置座標を取得することができる。ただし、この式ではR3×3の逆行列を求め、さらに行列R3×3 ?1とベクトル の乗算を行う必要があり、計算量が多い。そこでR3×3=R(?θ)R(?θ)R(?θ)の関係から、
Figure 2014071850
とした式を用いて、方向取得手段1051は、カメラ座標系で見たカメラ位置座標を取得する。この式を用いることで、12回の乗算でカメラ位置座標を求めることができる。
4−3)マーカ座標系で見たカメラの伏角および方位角
方向取得手段1052は、カメラ位置座標を用いて、マーカ座標系で見たAR時カメラ102の方向情報である伏角と方位角とを取得する。マーカ座標系で見たオブジェクト中心を(0、0、ε)、AR時カメラ102の位置ベクトルを =(Cmx、Cmy、Cmzとしたとき、対象物への視線とマーカ座標系の+z軸とのなす角を伏角φ(dip)、オブジェクトへの視線をマーカ座標系のxy平面に下した直線と?y軸のなす角を方位角ψ(az)(時計回りを正)は、以下で求められる。
Figure 2014071850
5)投影画像の選択
投影画像取得部106は、上記で取得した方向情報である伏角φおよび方位角ψに一致する投影方向情報と対応付けられた投影画像を、図7(a)に示した投影画像管理情報から取得する。ここでは、方向情報を構成する伏角φおよび方位角ψが示す方向に対して、最も近い方向を示す伏角と方位角との組と対応付けられた投影画像を取得する。
例えば、投影画像取得部106は、図7(a)に示した投影画像管理情報のレコードの「対象物ID」が「OBJ01」であるレコードから、方向情報取得部105が取得した方向情報の方位角ψに対する「方位角」の値の差の絶対値が最も小さく、方向情報取得部105が取得した方向情報の伏角φに対する「伏角」の値の差の絶対値が最も小さいレコードを検出し、検出したレコードの「投影画像」を取得する。例えば、ここでは、このような図7(a)に示した投影画像管理情報のレコードにおいて、「投影画像」が「0005.png」であるレコードの「方位角」の値Gと方位角ψとの差の絶対値が他のレコードよりも最も小さく、「投影画像」が「0005.png」であるレコードの「伏角」の値Kと伏角φとの値の差の絶対値が他のレコードよりも最も小さかったとする。投影画像取得部106は、このレコードの「投影画像」である「0005.png」を取得したとする。
なお、投影画像取得部106は、伏角φが予め指定された値δより小さい場合は、真上から撮影された投影画像を選択するようにしても良い。予め指定された値δは、例えば、投影画像に対応付けられている最も値の小さい伏角の2分の1の値である。
6)補正処理
以下、補正部107が行う補正処理について説明するが、ここでは、まず、拡大撮像面について説明する。
6−1)拡大撮像面
図10は、補正部107による補正処理を説明するための模式図である。投影画像格納部100に格納されている投影画像の投影面である撮像面10aに平行で、投影のオブジェクト中心10bを通る面を考え、対象物の撮影時の撮影時カメラの位置10cからこの面に投射した撮像面を拡大撮像面10dと呼ぶこととする。拡大撮像面に投影された投影画像は、例えば、実寸サイズの対象物の投影画像となる。なお、拡大撮像面に投影された投影画像は、正確には、視点から見える対象物の表面で、拡大撮像面と交わる点については、実寸表示となるが、拡大撮像面よりも手前のものは、実寸よりも大きく、奥のものは実寸よりも小さく表示される。ただし、この投影画像は、対象物を等倍で撮影した画像に相当すると考えられることから、ここでは、実寸サイズであると考える。
ここでは、補正部107は、以下に示すように、原点が10eであるAR時カメラ102のカメラ座標系で見た拡大撮像面の四隅S〜Sを求める。この処理は、例えば、ステップS301に相当する処理である。
AR時カメラ102のカメラ座標系の原点を原点10eとした場合、オブジェクト座標系で見たオブジェクト中心を(0、0、ε)とし、AR時カメラ102のカメラ座標系で見たオブジェクト中心の座標を=(T,T,Tとすると、オブジェクト中心の座標Tは、
Figure 2014071850
である。
撮像面の水平右向きベクトルは、対象物の撮影時の撮影時カメラの光軸(またはAR時の対象物への視線)10hおよび でできる平面10gに垂直である。光軸(または対象物への視線)はと平行であることから、
Figure 2014071850
である。ここで×は外積である。
また、撮像面の垂直下向きベクトルは、およびに垂直であることから、
Figure 2014071850
である。
以上より拡大撮像面の四隅S〜Sは、以下のように表される
Figure 2014071850
ここでW、Hは撮像面の幅および高さ、
Figure 2014071850
である。
6−2)拡大撮像面のスクリーン座標系への投影
補正部107は、拡大撮像面の四隅をスクリーンに投影したときの四角形の頂点座標を求める。この処理は、例えば、ステップS302に相当する処理である。
拡大撮像面の四隅とARのためにマーカを撮影するAR時カメラ102の位置を結ぶ直線がスクリーンと交わる点をスクリーン座標系の座標で表したものをそれぞれs、s、s、sとすると、スクリーンと交わる点の座標は、
Figure 2014071850
で与えられる。ここでWとHはスクリーンの幅と高さであるとする。
7)第一の補正処理
以下、補正部107が行う第一の補正処理について説明する。この補正処理は、図3のフローチャートに相当する処理である。
補正部107は、拡大撮像面をスクリーンに投影して画像を描画する。すなわちスクリーン上のs、s、s、sで囲まれた領域のすべての点について、この点とAR時カメラの位置を結ぶ直線が拡大撮像面と交わる点を計算し、その画素値をスクリーン上の点の画素値とする。
この描画は、一般的な3DCG描画ライブラリ(3D computer graphics rendering library、3DRL)に実装される機能を利用することで、簡単に実現できる。AR時に利用できる3DRLとしては、例えば、上述した非特許文献3に示されているARToolKitに含まれているOpenGLや、Three.js等がある。Three.jsについては、以下の非特許文献4を参照されたい。「非特許文献4:"three.js-JavaScript 3D library"、[online]、[平成24年9月18日検索]、インターネット<URL:http://mrdoob.github.com/three.js/>」
これらは任意の3Dモデルの表面に指定のテクスチャ画像を貼付した3DCGを描画する機能(いわゆるテクスチャ貼付)を有している。マーカ座標系を3DRLの基準となる座標系(以下、基準座標系と呼ぶ)と一致させるとして、まず3DRLのカメラをAR時カメラ102と同じ位置に、同じ姿勢となるように設定し、次に拡大撮像面を3Dモデルとして設定し、この平面に選択した投影画像をテクスチャとして貼付し、最後に3DCGを描画すれば、3DRLが上述の計算を実行する。以下では、3DRLの描画の基準座標系をマーカ座標系に一致させ、3DRLのカメラをAR時カメラ102に重なるように3DRLのカメラの回転角および並進ベクトルを計算する。
図11は、3DRLのカメラの座標系を示す模式図(図11(a))、および、カメラ座標系と基準座標系との関係を示す模式図(図11(b))である。ここでは、3DRLの座標系が右手系であると仮定する。また、図4(a)に示すように、3DRLのカメラ座標系を定義する。この座標系の原点は3DRLのカメラの位置であり、光軸に平行で視線手前向きを+z軸、右向きを+x軸、上向き(カメラの頭)を+y軸とする。このように定義すると、真正面からこのカメラでマーカを見たとき、この座標系とマーカ座標系の各軸は平行になり同じ向きを向く。
次に3DRLの初期状態(デフォルト)でのカメラ座標系と基準座標系の変換式を以下のように定義する。
Figure 2014071850
ここで ? は3DRLのカメラ座標系で表現した任意の点の位置ベクトル、 ?はその基準座標系表現、R?は回転行列、 ?は並進ベクトルである。
次に、図4(b)に示すように、3DRLのカメラとAR時カメラ102について、それぞれの位置、光軸(視線の向き)、カメラの上向きを合わせたときの両カメラの座標系間の変換行列を定義する。AR時カメラ102のカメラ座標系は、光軸に平行で視線奥向きを+z軸、右向きを+x軸、下向きを+y軸としているため、上で定義した3DRLのカメラ座標系とはy軸とz軸が逆を向いている。したがって、 ? を3DRLのカメラ座標系で表現した任意の点の位置ベクトル、 をARのカメラ座標系での表現とするとき、
Figure 2014071850
が成り立つ。このR(π)が、3DRLのカメラ座標系とAR時カメラ102のカメラ座標系の変換行列である。
次に3DRLのカメラ座標系とマーカ座標系の変換式を求める。ARのカメラ座標系とマーカ座標系の間には上述したような式(6)のような関係がある。この式に上記の式(17)を代入すると、
Figure 2014071850
が得られる。
マーカ座標系と3DRLの基準座標系を一致させることからX=X?を用いると、
Figure 2014071850
が言える。この式と上記の式(16)との比較より、3DRLのカメラのデフォルト時からの回転角は、
Figure 2014071850
並進ベクトルは、
Figure 2014071850
より求められる。
3DRLがThree.jsの場合、座標系は右手系で、デフォルトでカメラ座標系は基準座標系と重なっており、手前向き(視線の逆向き)にz軸、右向きにx軸、上向きにy軸があり、カメラは基準座標系の原点に位置している。したがって、
Figure 2014071850
であり、
Figure 2014071850
と表すことができる。
以上より基準座標系に重なる座標系をz軸、y軸、x軸の順に、θ、θ、θ?π回転することでカメラ座標系となり、これと同じ回転をカメラに施すことでThree.jsのカメラはAR時カメラ102と光軸方向が一致する。
Three.jsのオイラー角はデフォルトでx?y?z系であるため、z?y?x系に変更し、次にカメラのx軸回りの回転角パラメータをθ?π、y軸回りの回転角パラメータをθ、z軸回りの回転角パラメータをθに指定することでカメラを回転させられる(ステップS201)。
次に並進ベクトルについて考える。Three.jsの並進ベクトルは ?よりR(π) である。この表現はThree.jsのカメラ座標系で見たベクトルであり、基準座標系で見たベクトルで表現し直す必要がある。ただし、この並進移動はThree.jsと無関係にマーカ座標系で見たAR時カメラ102の位置ベクトルに等しいため、上述した式(7)の を並進移動ベクトルとすればよい(ステップS202)。
図12は、拡大撮像面と撮像面との関係を示す模式図(図12(a))、および拡大撮像面の回転角を説明するための模式図(図12(b))である。補正部107は、オブジェクト中心を通る拡大撮像面を示す平面12aを3Dモデルとして設定する(ステップS203)。モデルとして設定される平面12aのサイズは、図12(a)に示すような対象物を撮影した撮影時カメラの位置12cと、対象物の投影面である撮像面12bと、光軸12hとの関係より、幅WD/F、高さHD/Fである。また平面12aの回転角は、図12(b)より3DRLの基準座標系(マーカ座標系)のx軸回りにφ、z軸回りにψとする。
そして、補正部107は、この3Dモデルの拡大撮像面に、上記で取得した投影画像をテクスチャとして貼付した画像を作成する(ステップS204)。以上のように補正を行うことにより、AR時カメラ102から見た場合の対象物の画像を容易に描画して取得することができる。
8)第二の補正処理
補正部107は、上記のような第一の補正処理を行う代わりに、以下のような第二の補正処理を行うようにしても良い。この補正処理は、第一の補正処理のような、3DCG描画ライブラリを用いない近似手法であり、画像を縦横に拡大縮小および回転してスクリーンに直接貼付する方法である。以下、補正部107が行う第二の補正処理について説明する。この補正処理は、図4のフローチャートに相当する処理である。
まず、上記のように、補正部107は、拡大撮像面の四隅の位置ベクトルを取得(ステップS301)し、拡大撮像面をスクリーンに投射する際の投射位置を取得(ステップS302)する。
拡大撮像面の四隅を、スクリーンに投影したとき、その4点をつないだ四角形は長方形になるとは限らない。そこで四角形{s、s、s、s}にもっとも近い長方形の頂点を求める。
まず長方形の傾きを考える。投影画像の撮像面においてオブジェクト座標系のz軸は、上述したような撮影方法より、必ず撮像面の左右辺に平行に投影される。AR時はオブジェクト座標系とマーカ座標系を一致させるため、マーカ座標系のz軸も撮像面の左右辺に平行に投影される。ここで、オブジェクトへの視線(AR時カメラ102の位置とオブジェクト中心を結ぶ直線)とマーカ座標系のz軸を含む平面を考え、この平面がスクリーンと交わってできる直線を考える。撮像面はオブジェクトの視線に垂直であるため、上記で定義した直線がスクリーンの左右辺と平行のときに限り、スクリーンに描画する画像の回転角を0としてよいことがわかる。そこで、このような直線を取得し、取得した直線とスクリーンのy軸とのなす角を、スクリーンに描画する画像の回転角として取得する。スクリーンのy軸は、例えば、スクリーンの左右辺と平行な直線やスクリーンの上下辺に垂直な直線である。上述した平面は を含むため、 をスクリーンに投影したベクトルの傾きが上述した直線の傾きである。スクリーン座標系の−y軸とこの直線の傾き(AR時カメラからみて時計回りを正)をρとすると、補正部107は、傾きρを次式で求める(ステップS303)。
Figure 2014071850
ただし伏角φが予め指定された値δより小さいとき、 がスクリーンに対して垂直に近いこととなるため、
Figure 2014071850
とする。なお、値δとしては、例えば、第一の補正処理において説明したものと同様の値が利用可能である。
このとき、以下のwとhの関数を考える。
Figure 2014071850
ここでqは、オブジェクト中心Tを始点としたベクトルをスクリーンに投影した単位ベクトル(ステップS304)で、
Figure 2014071850
としたとき、'をスクリーンに投影した点
Figure 2014071850
と、をスクリーンに投影した点
Figure 2014071850
との差で定義される。
すなわち次式である。
Figure 2014071850
また、pはスクリーン上でqをカメラから見て左にπ/2回転したベクトル(ステップS305)とする。
Figure 2014071850
ここでRは2次元の回転行列である。
補正部107は、このJ(w、h)を最小とするwとhを求める。
Figure 2014071850
より、
Figure 2014071850
となる(ステップS306)。
同様に、
Figure 2014071850
より、
Figure 2014071850
となる(ステップS307)。
また、補正部107は、補正した投影画像のスクリーン上の貼り付け位置を、
Figure 2014071850
より取得する(ステップS308)。
以上より、補正部107は、投影画像取得部106が取得した投影画像「0005.png」を横w、高さhに拡大または縮小し、左にρ回転した後、スクリーン上の貼り付け位置を中心として貼り付けた画像を、補正した投影画像として取得する(ステップS309)。
9)第三の補正処理
補正部107は、上記のような第一の補正処理を行う代わりに、以下のような第三の補正処理を行うようにしても良い。以下、補正部107が行う第二の補正処理について説明する。この補正処理は、図5のフローチャートに相当する処理である。
補正部107は、上記の第二の補正処理と同様に、式(19)から、傾きρを取得する(ステップS401)。また、上記の第二の補正処理と同様に、式(28)から、補正した投影画像のスクリーン上の貼り付け位置を取得する(ステップS402)。
カメラ座標系のz軸と、カメラ座標系のオブジェクト中心の座標とのなす角が十分小さく、スクリーンに貼りつける投影画像のアスペクト比が貼りつけ前とほぼ等しいと近似できるとき、補正部107は、サイズを変更する際のwとhを以下のように求める(ステップS403)。
Figure 2014071850
補正部107は、投影画像「0005.png」の横がw、高さがhとなるよう拡大または縮小して、補正した投影画像を取得する(ステップS404)。なお、上記の第二の補正処理と同様の処理により回転角ρを取得して、横及び高さを補正した投影画像を、この角度だけ更に回転させた投影画像を取得しても良い。
10)出力
出力部108は、上記のように補正部107が補正した投影画像「0005.png」を、撮影画像受付部101が受け付けたマーカ撮影画像上に重畳した画像を生成し、出力する。画像を重畳する際には、ここでは、一例として、補正した投影画像を、マーカ撮影画像上に配置するとともに、投影画像の背景が除去された部分には、マーカ撮影画像の画素が表示され、投影画像の背景が除去されていない部分には、投影画像の画素が表示されるようにする。なお、背景が除去された部分は、いわゆるアルファチャンネル等の透過される領域を示す情報が設定されている部分であっても良い。ここでは、一例として、出力部108は、重畳した画像をAR画像として、画像処理装置1のモニタ108aに出力する。
図13は、出力部108が上記で取得したAR画像を出力している状態を示す図(図13(a))、および画像処理装置1のAR時カメラ102が設けられている側の外観を示す図である。図13に示すように、マーカ撮影画像のマーカが検出された位置に、投影画像の対象物が配置された画像がモニタ108aに出力される。
なお、AR時カメラ102が、新たなフレーム画像を取得して出力する毎に、このフレーム画像をマーカ撮影画像として、上記と同様の処理が行われ、マーカ撮影画像に補正された投影画像が重畳された画像が、上記と同様に、出力部108から出力される。
C.オイラー角と回転行列について
以下、上記で説明したオイラー角や回転行列等について説明する。
1)オイラー角
以下の非特許文献5に示されているように、オイラー角は、基準座標系と原点を共有するある座標系の空間中の姿勢を、基準座標系から座標軸まわりの回転を繰り返すことで表下ものである。例えば、基準座標系を小文字の(x,y,z)で表し、対象座標系を大文字の(X,Y,Z)で表す。そして、
1.(x,y,z)をz軸まわりに角度αだけ回転し、(x',y',z')とする。
2.(x',y',z')をy'軸まわりに角度βだけ回転し、(x'',y'',z'')とする。
3.(x'',y'',z'')をx''軸まわりに角度γだけ回転し、(x''',y''',z''')とする。
この結果(x''',y''',z''')が(X,Y,Z)に一致するならば,対象座標系の向きはオイラー角α,β,γで表される。上記の定義はz軸−y軸−x軸の順に回転するのでz−y−x系のオイラー角とよばれる。実際にはどの軸のまわりに回転させるかに任意性があり、同じ座標系をあらわすのに全部で12通りの表現法がある。「非特許文献5:オイラー角-Wikipedia"、[online]、[平成24年9月21日検索]、インターネット<URL:http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E8%A7%92>」。
2)回転行列
2−1)2次元の回転行列
2次元の回転行列はある点の原点回りの回転後の座標の計算に使う。2次元の回転行列は以下のように定義される。
Figure 2014071850
ある座標系Xの上のある点=(A,A)をθ回転したとき、回転後の点=(B,B)は、=R(θ)である。ここではある一つの座標系で見たときの異なる点の座標である。今、この点と同時に座標系も回転するとする。回転する座標系から回転する点を観察すると、その点は静止しているように見える。すなわち回転後の点の座標は、回転前座標系で見ると(B,B)であるが、回転後座標系で見ると(A,A)である。
そこで視点を変えて、平面に固定された任意の一点を回転する座標系で観察すると考えると、この式は座標変換を意味する。なぜならこの式によると、平面に固定された任意の一点の回転後座標系(After)で見た座標に回転行列をかけると、回転前座標系(Before)で見た座標が計算できるからである。
以上のように回転行列による計算は、一つの座標系上での点の回転移動を計算しているという解釈だけでなく、一つの点を回転する座標系で見たときの座標を変換しているという解釈も成り立つ。
2−2)3次元の回転行列
3次元の回転行列は以下のように定義される。
Figure 2014071850
各軸の回転を組み合わせることで点の回転移動を計算できる。ある座標系 上の点 =(A0x,A0y,A0z)を、この のz軸回りにθ回転すると、 =R(θ に移る。
次にこれを のy軸回りにθ回転すると、 =R(θ に移る。
さらにこれを のx軸回りにθ回転すると、 =R(θ に移る。
以上をまとめると、
=R(θ)R(θ)R(θ
となる。
ここで はある一つの座標系 で見たときの異なる点である。3次元の場合も回転行列による計算は、一つの座標系上での点の回転移動を計算しているという解釈だけでなく、一つの点を回転する座標系で見たときの座標を変換しているという解釈が成り立つ。すなわち、まず、空間に固定された任意の一点を考える。そして、つぎのように座標系 を回転させる。座標系 のz軸回りにθ回転した座標系を 、座標系 のy軸回りにθ回転した座標系を 、座標系 のx軸回りにθ回転した座標系を とする。空間に固定された任意の一点を座標系 で見たとき座標が とする。するとこの に回転行列をかけると、その点の回転前座標系 で見た座標 が求められる。
3)オイラー角と回転行列
上記で考えた回転する座標系 から最初の座標系 を見ることを考える。座標系 から見た '、座標系 から見た ''、座標系 から見た '''、とする。回転後の座標系 を基準として最初の座標系を観察すると、座標系 'は のz軸回りに?θ回転で得られ、座標系 ''は 'のy軸回りに?θ回転で得られ、座標系 '''は ''のx軸回りに?θ回転で得られるように見える。
すなわち、最終的な回転後の座標系( )から見た回転前座標系( ''',実体は )はz?y?x系のオイラー角(?θ,?θ,?θ)で表わされる座標系変換の結果であると考えられる。
すなわち、
=R(θ)R(θ)R(θ
のような回転行列によって表される座標変換は、z?y?x系のオイラー角(?θ,?θ,?θ)で表わされる座標系変換と等価である。
回転行列の逆行列の性質から、z?y?x系のオイラー角(θ,θ,θ)で表わされる座標系変換は、
Figure 2014071850
のような回転行列によって表される座標変換と等価である。
4)回転行列からオイラー角を求める方法
以下、回転行列からオイラー角を求める方法を述べる。今、回転行列Rが以下の場合を考える。
Figure 2014071850
ここでc=cosθ,s=sinθ等である。
この式より、まず1行3列目から、
Figure 2014071850
が言える。
また、1行1列目と1行2列目から、
Figure 2014071850
が言える。
同様に、2行3列目と3行3列目から、
Figure 2014071850
が言える。
ただし上述の計算で用いるsin?1やtan?1は複数の解を持つことに注意しなければならない。sin?1(x)の計算に用いる算術ライブラリasin(x)は、一般に?π/2からπ/2の範囲の戻り値を返すが、実際に求められたθ以外にπ?θも解である。いずれの解を選択するかによってcの符号が変わる。
また、tan?1(y/x)の計算に用いる算術ライブラリatan2(y,x)は、一般に?πからπの範囲の戻り値を返すが、x,yの符号に注意が必要である。すなわち、tan?1(y/x)の引数は(x,y)=(?1,?2)でも(x,y)=(1,2)でもy/x=2/1=(?2)/(?1)=2であるが、atan2(2,1)≠atan2(−2,−1)である。
θの計算では、
Figure 2014071850
であるので、cの符号によって解がπ変わる。これは、θの計算でも同じである。
以上のように変換行列をオイラー角表現すると複数の解が得られる。
ここで、|θ|<π/2を仮定すると、
Figure 2014071850
である。
しかし、π/2<|θ|<πを仮定すると、
Figure 2014071850
となる(±の符号はいずれでもよい)。
さらなる注意として、u31=±1のとき角度が一意に決まらないことがある。s=sinθ=±1のときθ=±π/2であり、cosθ=c=0である。このとき三角関数の加法定理より回転行列Rは以下のようになる。
Figure 2014071850
となり、θとθを一意に求めることができない。
これはθ=±π/2のときx軸とz軸が一致してしまうことで起こる現象で、ジンバルロックと呼ばれる。ジンバルロックが生じた場合は、xまたはzの回転角のいずれか一方を仮定して他方を計算する。
以上、本実施の形態によれば、予め用意されている対象物の1または2以上の投影画像から、方向情報に対応する投影画像を取得して出力することにより、一の対象物を、拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。また、投影画像を取得する際の3Dモデルのレンダリング等が不要となるため、少ない処理量で投影画像を得ることができる。
また、投影画像のサイズや傾き等を補正して出力することにより、予め用意されている投影画像をマーカ撮影画像等に応じて適切に補正して出力することができる。
また、投影画像として、特に、カメラで撮影した画像、いわゆる写真を用いた場合においては、3Dモデルをレンダリングして得られた投影画像を出力する従来のAR技術には難しいリアルな表現が可能となるという効果を得ることができる。
なお、上記の具体例においては、出力部108が投影画像をマーカ撮影画像と重畳させて出力する場合について説明したが、出力部108は、投影画像をマーカ撮影画像と重畳せずに出力するようにしても良い。
なお、上記実施の形態においては、方向情報取得部105の位置関係情報取得手段1051が、マーカ認識部103が取得したマーカ関連情報を用いて位置関係情報を取得し、この位置関係情報を用いて、方向情報取得部105の方向取得手段1052が、方向情報を取得する場合について説明したが、本発明においては、方向情報取得部105は、位置関係情報を取得せずに、方向情報を取得するようにしても良い。
以下、上記の実施の形態の画像処理装置1において、方向情報取得部105が、位置関係情報取得手段1051と方向取得手段1052とを備えておらず、位置関係情報を取得せずに方向情報を取得する場合について例を挙げて説明する。なお、この処理は、AR時カメラ102の光軸と対象物への視線とが一致しているとみなせる場合であり、かつ、伏角が小さい場合を前提とした処理である。また、ここでは、マーカを正方形と仮定する。この方向情報を取得する処理は、マーカ撮影画像における正方形のマーカの四隅を通過する楕円のパラメータを用いて、方向情報であるAR時カメラ102の伏角と方位角とを取得する処理である。
まず、マーカ認識部103が、マーカ撮影画像において認識したマーカの四隅の座標をマーカ関連情報として取得する。また、マーカ認識部103が、マーカ撮影画像内に示されているマーカの4隅を結ぶ対角線の交点を計算してマーカの中央座標を求める。マーカ認識部103は、この中央座標も、マーカ関連情報として取得する。
ARに利用するAR時カメラ102の光軸が、マーカの位置に対象物を配置した場合におけるAR時カメラ102からの対象物への視線が一致していると見なせ、かつ伏角が小さいとき、正方形であるマーカの四隅は,必ずマーカ中心を中心とする楕円上にあると考えることができる。このため、方向情報取得部105は、この四隅の座標からこの楕円の方程式を求め,長半径,短半径,長軸・短軸の傾きを算出する。
方向情報取得部105は取得した長半径と短半径の比から伏角を算出する。
また、方向情報取得部105は、楕円と短軸の交点を求める.この交点とマーカの四隅の座標(楕円上)の相対的な位置関係から方位角を算出する。
また、補正部107は、長軸の長さとマーカの一辺の長さの比から貼付する投影画像の伸縮率を算出する。
また、補正部107は、短軸の傾斜角を貼付する投影画像の回転角として取得する。
また、補正部107は、楕円の中心の座標を、スクリーンにおける投影画像の貼付位置を示す情報として取得する。
そして、補正部107は、上記で取得した伸縮率や回転角により、投影画像取得部106が取得した投影画像を補正する。
このようにすることで、方向関連情報を取得せずに、容易に方向情報等を取得することができる。なお、かかる方向情報取得部105等を用いても良いことは、以下の実施の形態においても、同様である。
以下、上記の実施の形態の画像処理装置1において、方向情報取得部105が、位置関係情報取得手段1051と方向取得手段1052とを備えておらず、位置関係情報を取得せずに方向情報を取得する場合の第二の例について説明する。
なお、ここでは、マーカを正方形と仮定する。この方向情報を取得する処理は、マーカ撮影画像における正方形のマーカが透視図法に従って描画される性質を用いて方向情報であるAR時カメラ102の伏角と方位角とを取得する処理である。
まず、マーカ認識部103が、マーカ撮影画像において認識したマーカの四隅の座標をマーカ関連情報として取得する。また、マーカ認識部103が、マーカ撮影画像内に示されているマーカの4隅を結ぶ対角線の交点を計算してマーカの中央座標を求める。マーカ認識部103は、この中央座標も、マーカ関連情報として取得する。
方向情報取得部105は、AR時カメラ102の撮像面に投影されたマーカの向かい合う2辺の延長線が交差する点を算出する。2辺は2組あるため交差点は、通常、2点得られる。これらを消点と呼ぶ。得られた消点を結ぶ直線はマーカの置かれた平面のカメラから見た水平線に相当する。この直線をここでは水平線と呼ぶ。
方向情報取得部105は、AR時カメラ102の撮像面上に投影されたマーカ中心を通過し、水平線に直角に交わる線に平行で,マーカから水平線に向かう向きの単位ベクトルを算出する。なお、マーカの向かい合う2辺が撮像面の上下辺に平行な場合、消点は1点しか得られない。この場合は、スクリーンの左右辺に平行なベクトルを単位ベクトルとして算出する。この処理を、ここでは第一の処理と呼ぶ。
方向情報取得部105は、第一の処理で算出した単位ベクトルのx成分およびy成分の比から水平線の傾きを算出し、これを貼付する投影画像の傾き角ρとする。
方向情報取得部105は、マーカ中心を通過して上記水平線に平行な直線を、AR時カメラ102の撮像面に投影されたマーカの向かい合う2辺の延長線で切り取った線分の長さを算出する。マーカの向かい合う2辺は2組あるため線分は2本得られる。この2つの線分の比から、マーカの回転角σを算出する。なお、消点が1つしかない場合は、σは0とする。
方向情報取得部105は、AR時カメラ102の撮像面上で、撮像面中央から水平線に下した足の長さを算出し,これとAR時カメラ102と撮像面までの距離の比よりマーカの置かれた平面の撮像面に対する傾きλを算出する。
方向情報取得部105は、AR時カメラ102の撮像面上のマーカ中心を通過し、マーカの置かれた平面に平行な平面をλより算出する。次にAR時カメラ102の位置からこの平面までの距離を算出し、これとマーカ中心の座標より伏角φを算出する。この処理をここでは、第二の処理と呼ぶ。
方向情報取得部105は、第一の処理で算出した単位ベクトルを含み水平線に垂直な平面と、第二の処理で算出した平面との交線を算出する。AR時カメラ102の位置から第二の処理で算出した平面に下ろした垂線の足からマーカ中心に向かうベクトルと、この交線とのなす角ωを算出する。次にこのωとσから方位角ψを算出する。
補正部107は、AR時カメラ102の撮像面のマーカをρ、σ、λ、φ、ψにより補
正して一辺の長さを算出し、これより貼付する投影画像の伸縮率を算出する。
補正部107は、マーカ中心とオブジェクト中心の間の距離εをρ、σ、λ、φ、ψにより補正し、AR時カメラ102の撮像面のマーカ中心からこの補正された距離だけ、上記の第一の処理で算出した単位ベクトル方向に移動した位置を算出し、投影画像の貼付位置情報とする。
そして、補正部107は、上記で取得した伸縮率や回転角により、投影画像取得部106が取得した投影画像を補正する。
このようにすることで、方向関連情報を取得せずに、容易に方向情報等を取得することができる。なお、かかる方向情報取得部105等を用いても良いことは、以下の実施の形態においても、同様である。
なお、上記実施の形態において、投影画像格納部100に1つの投影画像を有する1の投影画像関連情報しか格納されていない場合、投影画像取得部106は、常にこの投影画像を取得するようにしてもよい。そして、補正部107が、位置関係情報や投影方向情報等を上記と同様に適宜用いてこの投影画像を補正することにより、マーカ撮影画像の撮影方向に応じた投影画像を取得して、この投影画像を出力部108が出力するようにしても良い。この場合、方向情報取得部105は、投影画像を取得するために利用する方向情報を取得する必要はない。ただし、補正の際に方向情報を利用する場合には、方向情報を取得しても良い。このような構成にすることで、投影画像が一つであっても、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
(実施の形態2)
上記実施の形態1においては、画像処理装置1が、投影画像格納部100内に1または2以上の投影画像を有しており、この複数の投影画像の中から方向情報に応じた投影画像を読み出すものについて説明した。本実施の形態においては、サーバ装置2に1または2以上の投影画像が格納されており、端末装置3が、このサーバ装置2から、マーカ撮影画像について取得した方向情報に応じた投影情報を逐次取得する画像処理システム1000について説明する。
図14は、本実施の形態における画像処理システム1000のブロック図である。図において、図1と同一符号は、同一または相当する部分を示している。
画像処理システム1000は、サーバ装置2と端末装置3とを備える。サーバ装置2と端末装置3とは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
サーバ装置2は、投影画像格納部201、サーバ側受信部211、投影画像取得部212、サーバ側送信部213を備える。
端末装置3は、撮影画像受付部101、カメラ102、マーカ認識部103、方向情報取得部105、端末送信部311、端末受信部312、補正部313、出力部314を備える。方向情報取得部105は、位置関係情報取得手段1051と、方向取得手段1052とを備えている。
サーバ装置2は、例えば、コンピュータ等で実現される。
投影画像格納部201には、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する1以上の投影画像関連情報が格納される。投影画像関連情報は、投影画像と、投影方向情報とを有する情報である。ここでの1以上の方向とは、具体的には、1の方向または異なる2以上の方向を意味する。また、ここでの1以上の投影画像は、1または2以上の投影画像を意味する。また、ここでの1以上の投影画増関連情報は、1または2以上の投影画像関連情報を意味する。投影画像格納部201は、上記実施の形態の投影画像格納部201と同様のものであり、ここでは詳細な説明は省略する。
サーバ側受信部211は、端末装置3からネットワーク等を介して送信される方向情報を受信する。サーバ側受信部211は、さらに、マーカ識別情報を受信しても良い。サーバ側受信部211は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。サーバ側受信部211は、通信デバイスを含むと考えても、含まないと考えても良い。
投影画像取得部212は、サーバ側受信部211が受信した方向情報に対応する投影画像を取得する。具体的には、サーバ側受信部211が受信した方向情報と一致する投影方向情報と対応付けられた投影画像を、投影画像格納部201に格納されている投影画像関連情報から取得する。また、サーバ側受信部211がマーカ識別情報と方向情報とを受信した場合、このマーカ識別情報に対応する投影画像の中から、この方向情報に対応する投影画像を取得する。また、投影画像取得部212は、取得する投影画像に対応付けられた投影方向情報や距離関連情報を取得するようにしてもよい。投影画像取得部212が投影画像等を取得する構成および処理は、上記実施の形態の投影画像取得部106が投影画像を取得する構成及び処理等と同様であるので、ここでは、詳細な説明は省略する。
サーバ側送信部213は、投影画像取得部212が取得した投影画像を、ネットワーク等を介して端末装置3に送信する。また、投影画像と対応付けて、投影画像取得部212が取得した投影方向情報や距離関連情報を端末装置3に送信しても良い。サーバ側送信部213は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。サーバ側送信部213は、通信デバイスを含むと考えても、含まないと考えても良い。
端末装置3は、例えばコンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
端末送信部311は、方向情報取得部105が取得した方向情報を、サーバ装置2に送信する。また、マーカ認識部103が取得したマーカ識別情報も、方向情報と対応付けてサーバ装置2に送信しても良い。
端末送信部311は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。端末送信部311は、通信デバイスを含むと考えても、含まないと考えても良い。
端末受信部312は、端末送信部311が送信した方向情報と一致する投影方向情報と対応付けられた投影画像を、サーバ装置2から受信する。端末受信部312は、投影画像と対応付けられてサーバ装置2から送信される撮影方向情報や距離関連情報も受信しても良い。端末受信部312は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。端末受信部312は、通信デバイスを含むと考えても、含まないと考えても良い。
補正部313は、端末受信部312が受信した投影画像を補正する。補正部313は、端末受信部312が受信した投影画像を補正する点を除けば、上記実施の形態の補正部107と同様であり、ここでは、詳細な説明は省略する。
出力部314は、端末受信部312が受信した投影画像を出力する。出力部108は、端末受信部312が受信した投影画像を直接出力する代わりに、補正部313が補正した投影画像を出力するようにしてもよい。出力部314の構成は、端末受信部312が受信した投影画像を出力する点等を除けば、上記実施の形態の出力部108と同様であり、個々では詳細な説明は省略する。
次に、画像処理システム1000のサーバ装置2の動作の一例について図15のフローチャートを用いて説明する。
(ステップS501)サーバ側受信部211は、端末装置3からネットワーク等を介して送信される方向情報を受信したか否かを判断する。受信した場合、ステップS502に進み、受信していない場合、ステップS501に戻る。なお、サーバ側受信部211は、方向情報と対応付けられたマーカ識別情報を更に受信しても良い。
(ステップS502)投影画像取得部212は、ステップS501で受信した方向情報と一致する投影方向情報と対応付けられた投影画像を取得する。なお、投影画像取得部212は、ステップS501で受信したマーカ識別情報と対応付けられた投影画像の中から、ステップS501で受信した方向情報と一致する投影方向情報と対応付けられた投影画像を取得するようにしてもよい。また、投影画像と対応付けられた投影方向情報や距離関連情報も取得するようにしても良い。
(ステップS503)サーバ側送信部213は、ステップS502で取得した投影画像等を端末装置3に送信する。そして、ステップS501に戻る。
なお、図15のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、画像処理システム1000の端末装置3の動作の一例について図16のフローチャートを用いて説明する。なお、図16において、図2と同一符号は同一または相当する処理ステップを示す。ただし、補正部107および出力部108が行う処理は、補正部313および出力部314が行うようにする。
(ステップS601)端末送信部311は、ステップS107で取得した方向情報をサーバ装置2に送信する。なお、マーカ認識部103が取得したマーカ識別情報も方向情報と対応付けて送信しても良い。
(ステップS602)端末受信部312は、投影画像をサーバ装置2から受信したか否かを判断する。受信した場合、ステップS109に進み、受信していない場合、ステップS602に戻る。なお、端末受信部312は、投影画像と対応付けられて送信された投影方向情報や投影画像も受信するようにしても良い。
なお、図16のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上、本実施の形態によれば、端末装置3が取得した方向情報に対応した投影情報を逐次サーバ装置2から受信して、出力することができるため、端末装置3に1または2以上の投影情報等を格納する必要がなく、記録媒体の容量等が小さい端末装置3等においても、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を高速に出力することができる。
なお、上記実施の形態2においては、端末装置3が補正部313により投影画像の補正を行うようにしたが、本発明においては、サーバ装置2が、補正部313と同様の構成を備えるようにして、投影画像取得部212が取得した投影画像を補正して、補正した投影画像をサーバ側送信部211が端末装置3に送信するようにしてもよい。これにより、端末装置3による補正を行う際の処理負荷等を低減させ、高速な処理を実現することが可能となる。なお、補正に必要な情報は、端末送信部311が方向情報を送信する際等にサーバ装置2に送信するようにすればよい。
また、上記実施の形態2においては、端末装置3が方向情報を取得して、サーバ装置2に送信する例について説明した。しかし、本発明においては、結果的に、サーバ装置2が投影画像を取得するために必要となる方向情報を取得することができれば良い。このため、上述したような端末装置3が方向情報を取得する際に用いたマーカ関連情報を、端末装置3の端末送信部311がサーバ装置2に送信するようにし、サーバ装置2でこのマーカ関連情報に対応する情報から、端末装置3と同様の処理を行って方向情報を取得して、この方向情報に対応する投影情報を取得するようにしてもよい。また、マーカ関連情報から方向情報を得る際の処理途中で得られる情報を、端末送信部311がサーバ装置2に送信するようにし、サーバ装置2が、この処理途中の情報を用いて方向情報を取得するための残りの処理を行って方向情報を取得するようにしてもよい。つまり、本発明においては、端末装置3の端末送信部311が、マーカ関連情報に対応する情報であるマーカ対応情報をサーバ装置2に送信するようにし、サーバ装置2がこのマーカ対応情報から、方向情報を取得するようにすればよい。ここでのマーカ関連情報に対応する情報は、マーカ関連情報そのものや、マーカ関連情報を用いて方向情報を取得する処理の途中で得られる情報や、方向情報そのものも含む概念である。また、端末受信部312は、端末送信部311が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置2から受信すればよい。マーカ対応情報に対応する方向情報とは、例えば、マーカ対応情報を用いてサーバ装置2が取得した方向情報である。なお、この場合においては、上述した端末装置3において、不要な構成は、省略するようにしても良い。また、サーバ装置2においては、方向情報を取得する際に必要となる構成を、適宜設けるようにすればよい。この場合において、サーバ装置2に設ける必要がある構成は、例えば、端末装置3の方向情報取得部105の少なくとも一部と同様の構成である。
(実施の形態3)
本実施の形態において、上記実施の形態2において示した画像処理システムにおいて、サーバ装置が、方向情報が一致する投影方向情報と対応付けられた投影画像と、この投影画像に隣接した投影画像を含む周辺の投影画像とを、端末装置に送信することで、端末装置3が、投影画像を予め読み込んでおけるようにしたもの、即ち先読みできるようにしたものである。
図17は、本実施の形態における画像処理システム1000aのブロック図である。図において、図14と同一符号は、同一または相当する部分を示している。
画像処理システム1000aは、サーバ装置2aと、端末装置3aとを備える。サーバ装置2aと端末装置3aとは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
サーバ装置2aは、投影画像格納部201、サーバ側受信部211、投影画像取得部222、サーバ側送信部223を備える。
端末装置3aは、撮影画像受付部301、カメラ302、マーカ認識部103、方向情報取得部105、端末送信部321、端末受信部312、周辺画像受信部322、周辺投影画像格納部323、蓄積部324、判断部325、端末投影画像取得部326、補正部327、出力部328を備える。方向情報取得部105は、位置関係情報取得手段1051と、方向取得手段1052とを備える。
サーバ装置2aは、例えば、コンピュータ等で実現される。
投影画像取得部222は、サーバ側受信部211が受信した方向情報に対応する投影画像を取得する。投影画像取得部222は、更に、この取得した投影画像に隣接する1または2以上の投影画像を含む1または2以上の投影画像(以下、周辺投影画像と称す)を、当該投影画像格納部201から取得する。取得した投影画像に隣接する一の投影画像とは、例えば、各投影画像を、それぞれに対応付けられた投影方向情報が示す方向に垂直に、かつ、対象物に対する距離が等しい距離となるように配置した場合に、上下左右斜めのうちの少なくとも一の方向において取得した投影画像の隣に配置されることとなる投影画像、あるいは、上下左右斜めのうちの少なくとも一の方向において最も近い位置に配置されることとなる投影画像である。この方向は予め指定されているようにしても良い。また、例えば、投影画像が予め指定された角度毎に撮影された画像、あるいはレンダリングされた画像である場合、方向情報について取得した投影画像に対して、上記の予め指定された角度だけ、対応する投影方向情報が示す角度が異なる投影画像を、隣接する投影画像と考えても良い。なお、投影画像間の隣接関係を管理するために、予め隣接する投影画像を示す情報を、各投影画像に対応付けて、投影画像格納部201に蓄積しておくようにしても良い。また、投影画像取得部222は、方向情報について取得した投影画像に隣接する投影画像にさらに隣接する投影画像等の、方向情報について取得した投影画像の周辺の投影画像を周辺投影画像として取得するようにしても良い。投影画像取得部222は、例えば、方向情報について取得した投影画像を中心とした予め指定された範囲内を通過する投影方向情報を有する投影画像情報を周辺投影画像として取得するようにしても良い。
なお、投影画像取得部222は、周辺投影画像を構成する各投影画像について、各投影画像に対応付けられた投影方向情報を取得する。更に投影画像取得部222は、周辺投影画像を構成する各投影画像について、各投影画像に対応付けられた距離関連情報を取得するようにしてもよい。
投影画像取得部222が、方向情報に対応する投影画像を取得する処理等のその他の処理や構成については、上述した投影画像取得部212と同様であるので、ここでは詳細な説明は省略する。
サーバ側送信部223は、投影画像取得部222が方向情報に応じて取得した投影画像を端末装置3aに送信する。また、サーバ側送信部223は、投影画像取得部222が取得した周辺投影画像を端末装置3aに送信する。また、サーバ側送信部223は、投影画像取得部222が周辺投影画像について取得した投影方向情報を、周辺投影画像に対応付けて端末装置3aに送信する。また、サーバ側送信部223は、投影画像取得部222が周辺投影画像について取得した距離関連情報を、周辺投影画像に対応付けて端末装置3aに送信するようにしても良い。サーバ側送信部223の他の構成や処理等については、サーバ側送信部213と同様であるので、ここでの詳細な説明は省略する。
端末装置3aは、例えば、コンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
撮影画像受付部301は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付ける。ここでの一のマーカを撮影した複数のマーカ撮影画像とは、例えば、異なる方向からマーカを撮影した画像である。なお、その他の構成や処理等については、上述した撮影画像受付部101と同様であるので、詳細な説明は省略する。
カメラ302は、一のマーカを順次撮影して、撮影により得られた複数のマーカ撮影画像を撮影画像受付部301に出力する。カメラ302が撮影により順次取得するマーカ撮影画像は、動画像のフレーム画像等と考えても良い。なお、その他の構成や処理等については、上述したカメラ102と同様であるので、詳細な説明は省略する。
端末送信部321は、上述した端末送信部311と同様の構成を有している。ただし、端末送信部321は、判断部325が一致する投影方向情報がないと判断した場合にのみ、方向情報取得部105が取得した方向情報をサーバ装置2aに送信する。
周辺画像受信部322は、サーバ装置2aから送信される周辺投影画像と、各投影画像に対応する投影方向情報とを受信する。また、周辺画像受信部322は、距離関連情報も受信するようにしてもよい。周辺画像受信部322は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。周辺画像受信部322は、通信デバイスを含むと考えても、含まないと考えても良い。
周辺投影画像格納部323には、周辺画像受信部322が受信した周辺投影画像と、投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報が格納される。また、周辺投影画像関連情報には、各周辺投影画像に対応付けられた距離関連情報が更に格納されていても良い。
蓄積部324は、周辺画像受信部322が受信した周辺投影画像と、投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報を周辺投影画像格納部323に蓄積する。また、蓄積部324は、周辺画像受信部322が周辺投影画像とともに受信した距離関連情報を更に含む周辺統計画像関連情報を、周辺投影画像格納部323に更に蓄積するようにしてもよい。なお、蓄積部324は、端末受信部312が受信した投影画像と投影方向情報とを有する周辺投影画像関連情報を、周辺投影画像格納部323に蓄積するようにしてもよい。なお、蓄積する際に、既に格納されている周辺投影画像と重複する周辺投影画像については、蓄積部324は、蓄積せずに削除するようにしても良い。あるいは、蓄積部324は、重複する周辺投影画像を上書きするようにしても良い。
判断部325は、方向情報取得部105が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部323に格納されているか否かを判断する。具体的には、判断部325は、方向情報取得部105が取得した方向情報に一致する投影方向情報を有する周辺投影画像関連情報がある以下否かを判断する。
端末投影画像取得部326は、判断部325が一致する投影方向情報があると判断した場合に、一致する投影方向情報に対応する周辺投影画像を、周辺投影画像格納部323から取得する。一致しない場合は、端末投影画像取得部326は、投影画像を取得しない。
補正部327は、上述した補正部313と同様に、端末受信部312が受信した投影画像を補正する。また、端末投影画像取得部326が周辺投影画像を取得した場合、この周辺投影画像に対して、上述した補正部313と同様の補正を行う。なお、補正部313のその他の構成等については、上述した補正部313と同様である。
出力部328は、上述した出力部314と同様に、端末受信部312が受信した投影画像を出力する。出力部108は、端末受信部312が受信した投影画像を直接出力する代わりに、端末受信部312が受信した投影画像を補正部313が補正した投影画像を出力するようにしてもよい。また、出力部328は、判断部325が一致する投影方向情報があると判断した場合に、端末投影画像取得部326が取得した周辺投影画像を出力する。この場合も、周辺投影画像を直接出力する代わりに周辺投影画像を補正部313が補正した周辺投影画像を出力するようにしてよい。出力部328のその他の構成等については、上述した出力部328等と同様である。
次に、画像処理システム1000aのサーバ装置2aの動作について、以下に簡単に説明する。サーバ装置2aの動作は、図15に示したフローチャートにおいて、ステップS502において、投影画像取得部222が、方向情報に対応する投影画像を取得するようにし、ステップS502の直後に、投影画像取得部222が、この投影画像に隣接する投影画像を含む周辺投影画像を取得し、その後のステップS503において、サーバ側送信部223が、投影画像と、周辺投影画像とを端末装置3aに送信するようにしたものである。
次に、画像処理システム1000aの端末装置3aの動作の一例について、図18のフローチャートを用いて説明する。なお、図18において、図16と同一符号は同一または相当する処理ステップを示す。ただし、カメラ102、撮影画像受付部101、補正部313および出力部314が行う処理は、カメラ302、撮影画像受付部301、補正部327および出力部328が行うようにする。
(ステップS701)判断部325は、ステップS107で方向情報取得部105が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部323に格納されているか否かを判断する。格納されている場合、ステップS702に進み、格納されていない場合、ステップS703に進む。
(ステップS702)端末投影画像取得部326は、ステップS701で一致すると判断された投影方向情報と対応付けられた周辺投影画像を取得する。そして、ステップS109に進む。
(ステップS703)端末送信部321は、ステップS107で方向情報取得部105が取得した方向情報をサーバ装置2aに送信する。
(ステップS704)端末受信部312は、方向情報に対応した投影画像を受信したか否かを判断する。受信した場合、ステップS705に進み、受信していない場合、ステップS704に戻る。
(ステップS705)周辺画像受信部322は、周辺投影画像と投影方向情報との1以上の組を受信したか否かを判断する。受信した場合、ステップS706に進み、受信していない場合、ステップS705に戻る。
(ステップS706)蓄積部324は、ステップS705で受け付けた周辺投影画像と投影方向情報との1以上の組をそれぞれ有する周辺投影画像関連情報を、周辺投影画像格納部323に蓄積する。そして、ステップS109に進む。
なお、図18のフローチャートのステップS109に示した補正の処理においては、適宜、周辺投影画像格納部323に格納されている投影方向情報や、距離関連情報を用いるようにしても良い。
なお、図18のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上、本実施の形態によれば、サーバ装置2aに送信した方向情報に対応する投影画像の周辺の周辺投影画像を、端末装置3aに先読みさせることができるため、投影画像を取得する際に、毎回、方向情報をサーバ装置2aに送信する必要がなく、投影画像を滑らかに出力することができる。また、周辺投影画像だけを先読みするため、周辺投影画像をダウンロードする時間等も短縮することができ、先読みをするための待ち時間等を低減させることができ、ダウンロードの待ち時間と、出力の品質との両立を図ることができる。
(実施の形態4)
本実施の形態において、端末装置3bが一の対象物についての投影画像を出力する際に、この一の対象物についての全ての投影画像を、サーバ装置2bから一括ダウンロードするようにしたものである。
図19は、本実施の形態における画像処理システム1000bのブロック図である。図において、図14と同一符号は、同一または相当する部分を示している。
画像処理システム1000bは、サーバ装置2bと、端末装置3bとを備える。サーバ装置2bと端末装置3bとは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
サーバ装置2bは、投影画像格納部201、サーバ側受信部231、サーバ側送信部232を備える。
端末装置3bは、端末投影画像格納部331、要求情報送信部332、投影画像受信部333、撮影画像受付部101、カメラ102、マーカ認識部103、方向情報取得部105、投影画像取得部334、補正部335、出力部336を備える。方向情報取得部105は、位置関係情報取得手段1051と、方向取得手段1052とを備える。
サーバ装置2bは、例えば、コンピュータ等で実現される。
サーバ側受信部231は、一の対象物の投影画像の送信を要求する情報である要求情報を端末装置3bから受信する。要求情報は、例えば、一の対象物について取得された投影情報を識別する情報を有する情報である。一の対象物について取得された投影情報を識別する情報は、マーカ識別情報であっても良い。また、要求情報は、投影画像の送信を指示する情報を含んでいていても良いし、含んでいなくても良い。例えば、一の対象物について取得された投影画像を識別する情報等を、要求情報と考えても良い。また、投影画像格納部201に一の対象物についての投影画像しか格納されていない場合や、要求情報に対応する一の対象物が予め決まっている場合等には、要求情報は、投影画像を識別する情報を含んでいなくても良い。例えば、この場合の要求情報は、単に投影画像を送信する指示であっても良い。
サーバ側受信部231は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。サーバ側受信部231は、通信デバイスを含むと考えても、含まないと考えても良い。
サーバ側送信部232は、要求情報に応じて、一の対象物に対応する1または2以上の投影画像と、この投影画像に対応付けられた投影方向情報を、投影画像格納部100から読みだし、端末装置3bに送信する。一の投影画像に対応する投影方向情報とは、例えば、一の投影画像を有する投影画像関連情報に含まれる投影方向情報である。例えば、サーバ側送信部232は、要求情報が有する投影情報を識別する情報と対応付けられた投影画像と投影方向情報との組を読み出し、送信する。また、投影画像格納部201に一の対象物についての投影画像しか格納されていない場合や、要求情報に対応する一の対象物が予め決まっている場合等には、サーバ側送信部232は、これらの投影画像を読み出して送信する。好ましくは、サーバ側送信部232は、一の対象物に対応付けられた全ての投影画像を読み出し送信する。ここでの全ての投影画像は、ARの出力に利用されうる一の対象物に対応付けられた全ての投影画像と考えても良い。なお、投影画像は、例えば、予め、投影画像に投影されている対象物の識別情報と対応付けて投影画像格納部100に蓄積しておく。例えば、投影画像格納部201に格納されている各投影画像関連情報に対して、対象物の識別情報を対応付けておくようにすることが好ましい。対象物の識別情報は、マーカ識別情報であっても良い。また、サーバ側送信部232は、例えば、各投影画像と対応付けられた距離関連情報も取得し、各投影画像と対応付けて送信するようにしてもよい。なお、サーバ側送信部232は、一の投影画像と、この投影画像に対応付けられた投影方向情報を送信する代わりに、一の対象物の投影画像を有する投影画像関連情報を、投影画像格納部100から読みだし送信するようにしてもよく、この場合も、投影画像と距離関連情報との1または2以上の組を送信することと考えても良い。かかることは他においても同様である。その他の構成等については、サーバ側送信部213と同様である。
端末装置3bは、例えば、コンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
端末投影画像格納部331には、一の対象物を異なる方向に投影した画像である投影画像と、各投影画像を投影した際の方向に関する情報である投影方向情報とを有する情報である1または2以上の投影画像関連情報が格納される。
端末投影画像格納部331は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
要求情報送信部332は、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置2bに送信する。要求情報は、例えば、ユーザにより指定された対象物の識別情報を有する情報であっても良い。また、要求情報は、マーカ認識部103がマーカ撮影画像から取得したマーカ識別情報を有する情報であっても良い。
要求情報送信部332は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。要求情報送信部332は、通信デバイスを含むと考えても、含まないと考えても良い。
投影画像受信部333は、要求情報に応じた投影画像とこの投影画像に対応する投影画像関連情報との1または2以上の組をサーバ装置2bから受信する。投影画像受信部333は、受信した投影画像と投影画像関連情報との組をそれぞれ有する1または2以上の投影画像関連情報を投影画像格納部201に蓄積する。なお、投影画像受信部333は、投影画像と、投影画像関連情報との1または2以上の組を受信する代わりに、1または2以上の投影画像関連情報を受信しても良く、この場合も、投影画像と投影画像関連情報の1または2以上の組を受信したと考えても良い。投影画像受信部333は、要求情報が示す一の対象物についての全ての投影画像を含む投影画像関連情報を受信することが好ましい。
投影画像受信部333は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。投影画像受信部333は、通信デバイスを含むと考えても、含まないと考えても良い。
投影画像取得部334は、方向情報取得部105が取得した方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部331から取得する。具体的には、投影画像取得部334は、端末投影画像格納部331に格納されている投影画像関連情報のうちの、方向情報取得部105が取得した方向情報に一致する投影方向情報を有する投影画像関連情報から投影画像を取得する。なお、投影画像取得部334の構成及び処理等は、図17に示した端末投影画像取得部326と同様であるため、ここでは詳細な説明は省略する。
補正部335は、投影画像取得部334が取得した投影画像を補正する点を除けば、補正部107等と同様であるので、ここでは詳細な説明は省略する。
出力部336は、投影画像取得部334が取得した投影画像を出力する。出力部336は、投影画像取得部334が取得した投影画像を直接出力する代わりに、投影画像取得部334が取得した投影画像を補正部335が補正した投影画像を出力するようにしてもよい。出力部336のその他の構成等については、上述した出力部328等と同様である。
次に、画像処理システム1000bのサーバ装置2bの動作について簡単に説明する。サーバ装置2bのサーバ側受信部231が、要求情報を受信すると、サーバ側送信部232が、この要求情報が示す対象物に対応する1または2以上の投影画像と、この1または2以上の投影画像にそれぞれ対応する投影方向情報との1または2以上の組と、距離関連情報とを、投影画像格納部201から読み出す。そして、サーバ側送信部232は、読み出した投影画像と投影方向情報との組と、距離関連情報とを端末装置3bに送信する。
次に、画像処理システム1000bのサーバ装置2bの動作の一例について図20を用いて説明する。なお、図20において、図16と同一符号は同一または相当する処理ステップを示す。ただし、補正部313および出力部314が行う処理は、補正部335および出力部336が行うようにする。
(ステップS801)マーカ認識部103は、ステップS103で認識したマーカのマーカ識別情報を取得する。
(ステップS802)要求情報送信部332は、ステップS801で取得したマーカ識別情報と同じマーカ識別情報を有する要求情報を既に送信したか否かを判断する。送信した場合、ステップS104に進み、送信していない場合、ステップS803に進む。なお、送信していない場合、このマーカ識別情報を送信済のマーカ識別情報として図示しない記憶媒体等に蓄積する。
(ステップS803)要求情報送信部332は、ステップS801で取得したマーカ識別情報を含む要求情報を、サーバ装置2bに送信する。
(ステップS804)投影画像受信部333は、ステップS803で送信した要求情報が含むマーカ識別情報と対応付けられた投影画像と投影方向情報との1または2以上の組と、距離関連情報とを受信したか否かを判断する。受信した場合、ステップS805に進み、受信していない場合、ステップS804に戻る。
(ステップS805)投影画像受信部333は、受信した投影画像と投影方向情報との1または2以上の組をそれぞれ有する1または2以上の投影画像関連情報と、距離関連情報とを端末投影画像格納部331に蓄積する。そして、ステップS104に進む。
(ステップS806)投影画像取得部334は、端末投影画像格納部331に格納されている投影画像関連情報から、ステップS107で取得した方向情報と一致する投影方向情報と対応付けられた投影画像を取得する。そして、ステップS109に進む。
なお、図20のフローチャートのステップS109に示した補正の処理においては、適宜、端末投影画像格納部331に格納されている投影方向情報や、距離関連情報を用いるようにする。
また、ここでは、マーカ認識部103がマーカ識別情報を取得してから要求情報を送信して投影画像を取得するようにしたが、端末装置3bの起動時等に、予め指定されている対象物に対応付けられたダウンロード可能な全ての投影画像と投影方向画像との組等をダウンロードするようにしても良い。また、端末装置3bの起動時等に、サーバ装置2bの投影画像格納部201に格納されているダウンロード可能な全ての投影画像と投影方向画像との組等をダウンロードするようにしても良い。
なお、図20のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上、本実施の形態によれば、一の対象物についての全ての投影画像を、端末装置3bに一括ダウンロードさせて先読みさせることができるため、投影画像を取得する際に、毎回、方向情報をサーバ装置2aに送信する必要がなく、投影画像を滑らかに出力することができる。特に、カメラ102の移動速度が速い場合においても滑らかに投影画像を取得することができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末送信部や端末受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態1では、画像処理装置がスタンドアロンである場合について説明したが、画像処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをMPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における画像処理装置やサーバ装置、端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される投影画像格納部とにアクセス可能なコンピュータを、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムあって、コンピュータを、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ関連情報に対応する情報であるマーカ対応情報を、サーバ装置に送信する端末送信部と、一の対象物を異なる方向に投影した画像である投影画像であって、投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置から受信する端末受信部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムであって、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される端末投影画像格納部にアクセス可能なコンピュータを、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置に送信する要求情報送信部と、要求情報に応じた投影画像と投影画像に対応する投影方向情報との1以上の組をサーバ装置から受信し、受信した投影画像と投影方向情報との組を有する1以上の投影画像関連情報を、端末投影画像格納部に蓄積する投影画像受信部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図21は、上記プログラムを実行して、上記実施の形態による画像処理装置や、サーバ装置、端末装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図21において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図22は、コンピュータシステム900の内部構成を示す図である。図22において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による画像処理装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による画像処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上のように、本発明にかかる画像処理装置等は、ARの画像等を出力する装置等として適しており、特に、3Dモデルを用いて作成した画像では表現が難しい画像や、レンダリングに時間がかかる画像等をARにおいて出力する装置等として有用である。
1 画像処理装置
2、2a、2b サーバ装置
3、3a、3b 端末装置
100、201 投影画像格納部
101、301 撮影画像受付部
102 撮影部
102、302 カメラ
103 マーカ認識部
105 方向情報取得部
106、212、222、334 投影画像取得部
107、313、327、335 補正部
108、314、328、336 出力部
108a モニタ
120 画像
211、231 サーバ側受信部
213、223、232 サーバ側送信部
311、321 端末送信部
312 端末受信部
322 周辺画像受信部
323 周辺投影画像格納部
324 蓄積部
325 判断部
326 端末投影画像取得部
331 端末投影画像格納部
332 要求情報送信部
333 投影画像受信部
1000、1000a、1000b 画像処理システム

Claims (15)

  1. 一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される投影画像格納部と、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
    前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
    前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得部と、
    前記投影画像取得部が取得した投影画像を出力する出力部とを備えた画像処理装置。
  2. 前記投影画像取得部が取得した投影画像を補正する補正部を更に備え、
    前記出力部は、前記補正部が補正した投影画像を出力する請求項1記載の画像処理装置。
  3. 前記投影画像格納部には、更に、前記各投影画像を投影する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納され、
    前記補正部は、当該投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する請求項2記載の画像処理装置。
  4. 前記補正部は、前記投影画像の傾きを補正する請求項2または請求項3記載の画像処理装置。
  5. 前記出力部は、前記投影画像を、前記マーカ撮影画像に重畳して出力する請求項1から請求項4いずれか一項記載の画像処理装置。
  6. 前記方向情報取得部は、
    前記マーカ認識部が取得したマーカ関連情報を用いて、当該マーカ認識部が認識したマーカの位置と、前記マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する位置関係情報取得手段と、
    前記位置関係情報を用いて、前記方向情報を取得する方向取得手段と、を備えた請求項1から請求項5いずれか一項記載の画像処理装置。
  7. サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、、
    前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、
    一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信部と、
    前記投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置。
  8. 前記撮影画像受付部は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付け、
    前記端末受信部が受信した投影画像に隣接する1以上の投影画像を含む1以上の投影画像である周辺投影画像と、当該各周辺投影画像に対応する投影方向情報とを受信する周辺画像受信部と、
    前記周辺画像受信部が受信した周辺投影画像と、当該周辺投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報が格納される周辺投影画像格納部と、
    前記周辺画像受信部が受信した周辺投影画像と、当該投影画像に対応する投影方向情報との1以上の組をそれぞれ有する1以上の周辺投影画像関連情報を前記周辺投影画像格納部に蓄積する蓄積部と、
    前記方向情報取得部が取得した方向情報に一致する投影方向情報が、前記周辺投影画像格納部に格納されているか否かを判断する判断部と、
    前記判断部が一致する投影方向情報があると判断した場合に、当該一致する投影方向情報に対応する周辺投影画像を、前記周辺投影画像格納部から取得する端末投影画像取得部と、
    前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、を更に備え、
    前記端末送信部は、前記判断部が一致する投影方向情報がないと判断した場合にのみ、前記方向情報を前記マーカ対応情報として前記サーバ装置に送信し、
    前記端末受信部は、一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報である方向情報と一致する投影画像を、前記サーバ装置から受信し、
    前記出力部は、前記判断部が一致する投影方向情報があると判断した場合に、前記端末投影画像取得部が取得した周辺投影画像を出力する請求項7記載の端末装置。
  9. サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、
    一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される端末投影画像格納部と、
    一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信部と、
    前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との1以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する1以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信部と、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
    前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
    前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得部と、
    前記投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置。
  10. 一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される投影画像格納部と、撮影画像受付部と、マーカ認識部と、方向情報取得部と、投影画像取得部と、出力部とを用いて行われる画像処理方法であって、
    前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
    前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
    前記方向情報取得部が、前記マーカ認識ステップで取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得ステップと、
    前記投影画像取得部が、前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得ステップと、
    前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
  11. サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、撮影画像受付部と、マーカ認識部と、端末送信部と、端末受信部と、出力部とを備えた端末装置を用いて行われる画像処理方法であって、
    前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
    前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
    前記端末送信部が、前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信ステップと、
    前記端末受信部が、一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信ステップと、
    前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
  12. サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される端末投影画像格納部と、要求情報送信部と、投影画像受信部と、撮影画像受付部と、マーカ認識部と、位置関係情報取得部と、方向情報取得部と、投影画像取得部と、出力部と、を備えた端末装置を用いて行われる画像処理方法であって、
    前記要求情報送信部が、一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信ステップと、
    前記投影画像受信部が、前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との1以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する1以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信ステップと、
    前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
    前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
    前記方向情報取得部が、前記マーカ認識ステップで取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得ステップと、
    前記投影画像取得部が、前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得ステップと、
    前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
  13. 一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される投影画像格納部とにアクセス可能なコンピュータを、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
    前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
    前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得部と、
    前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
  14. コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムあって、
    コンピュータを、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
    前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、
    一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信部と、
    前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
  15. コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムであって、
    一の対象物を1以上の方向に投影した1以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である1以上の投影画像関連情報が格納される端末投影画像格納部にアクセス可能なコンピュータを、
    一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信部と、
    前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との1以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する1以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信部と、
    マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
    前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
    前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
    前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得部と、
    前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
JP2012219942A 2012-10-02 2012-10-02 画像処理装置、端末装置、画像処理方法、およびプログラム Pending JP2014071850A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012219942A JP2014071850A (ja) 2012-10-02 2012-10-02 画像処理装置、端末装置、画像処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012219942A JP2014071850A (ja) 2012-10-02 2012-10-02 画像処理装置、端末装置、画像処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2014071850A true JP2014071850A (ja) 2014-04-21

Family

ID=50746940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012219942A Pending JP2014071850A (ja) 2012-10-02 2012-10-02 画像処理装置、端末装置、画像処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2014071850A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016081225A (ja) * 2014-10-15 2016-05-16 Kddi株式会社 情報提示システム
JP2016099839A (ja) * 2014-11-21 2016-05-30 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
WO2017104447A1 (ja) * 2015-12-18 2017-06-22 ソニー株式会社 画像処理装置および方法、データ、並びに記録媒体
JP2017117077A (ja) * 2015-12-22 2017-06-29 日本電気株式会社 情報取得装置、情報取得方法、プログラム、情報取得システム、サーバ装置
JP2018163458A (ja) * 2017-03-24 2018-10-18 日本電気株式会社 携帯端末、サーバ装置、情報処理システム、制御方法、及びプログラム
KR101914660B1 (ko) * 2016-11-30 2018-11-06 스마트한 주식회사 자이로 센서를 기반으로 증강현실 컨텐츠의 표시를 제어하는 방법 및 그 장치
JP2020009464A (ja) * 2014-11-21 2020-01-16 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020095645A (ja) * 2018-12-14 2020-06-18 ヤフー株式会社 表示プログラム、表示装置および表示方法
JP2020095602A (ja) * 2018-12-14 2020-06-18 ヤフー株式会社 表示プログラム、表示装置および表示方法
CN112651881A (zh) * 2020-12-30 2021-04-13 北京百度网讯科技有限公司 图像合成方法、装置、设备、存储介质以及程序产品
CN115174878A (zh) * 2022-07-18 2022-10-11 峰米(重庆)创新科技有限公司 投影画面校正方法、装置和存储介质
CN115174879A (zh) * 2022-07-18 2022-10-11 峰米(重庆)创新科技有限公司 投影画面校正方法、装置、计算机设备和存储介质
CN115278184A (zh) * 2022-07-18 2022-11-01 峰米(重庆)创新科技有限公司 投影画面校正方法及装置
JP7373090B1 (ja) 2023-05-01 2023-11-01 株式会社あかつき 情報処理システム、情報処理装置、プログラム及び情報処理方法
JP7480408B1 (ja) 2023-05-01 2024-05-09 株式会社あかつき 情報処理システム、情報処理装置、プログラム及び情報処理方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016081225A (ja) * 2014-10-15 2016-05-16 Kddi株式会社 情報提示システム
JP2016099839A (ja) * 2014-11-21 2016-05-30 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020009464A (ja) * 2014-11-21 2020-01-16 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
WO2017104447A1 (ja) * 2015-12-18 2017-06-22 ソニー株式会社 画像処理装置および方法、データ、並びに記録媒体
CN108369091A (zh) * 2015-12-18 2018-08-03 索尼公司 图像处理装置和方法、数据及纪录介质
JPWO2017104447A1 (ja) * 2015-12-18 2018-10-04 ソニー株式会社 画像処理装置および方法、データ、並びに記録媒体
US10852127B2 (en) 2015-12-18 2020-12-01 Sony Corporation Image processing apparatus and method, data, and recording medium
JP2017117077A (ja) * 2015-12-22 2017-06-29 日本電気株式会社 情報取得装置、情報取得方法、プログラム、情報取得システム、サーバ装置
KR101914660B1 (ko) * 2016-11-30 2018-11-06 스마트한 주식회사 자이로 센서를 기반으로 증강현실 컨텐츠의 표시를 제어하는 방법 및 그 장치
JP2018163458A (ja) * 2017-03-24 2018-10-18 日本電気株式会社 携帯端末、サーバ装置、情報処理システム、制御方法、及びプログラム
JP2020095602A (ja) * 2018-12-14 2020-06-18 ヤフー株式会社 表示プログラム、表示装置および表示方法
JP2020095645A (ja) * 2018-12-14 2020-06-18 ヤフー株式会社 表示プログラム、表示装置および表示方法
CN112651881A (zh) * 2020-12-30 2021-04-13 北京百度网讯科技有限公司 图像合成方法、装置、设备、存储介质以及程序产品
CN112651881B (zh) * 2020-12-30 2023-08-01 北京百度网讯科技有限公司 图像合成方法、装置、设备、存储介质以及程序产品
CN115174878A (zh) * 2022-07-18 2022-10-11 峰米(重庆)创新科技有限公司 投影画面校正方法、装置和存储介质
CN115174879A (zh) * 2022-07-18 2022-10-11 峰米(重庆)创新科技有限公司 投影画面校正方法、装置、计算机设备和存储介质
CN115278184A (zh) * 2022-07-18 2022-11-01 峰米(重庆)创新科技有限公司 投影画面校正方法及装置
CN115174879B (zh) * 2022-07-18 2024-03-15 峰米(重庆)创新科技有限公司 投影画面校正方法、装置、计算机设备和存储介质
CN115278184B (zh) * 2022-07-18 2024-03-15 峰米(重庆)创新科技有限公司 投影画面校正方法及装置
CN115174878B (zh) * 2022-07-18 2024-03-15 峰米(重庆)创新科技有限公司 投影画面校正方法、装置和存储介质
JP7373090B1 (ja) 2023-05-01 2023-11-01 株式会社あかつき 情報処理システム、情報処理装置、プログラム及び情報処理方法
JP7480408B1 (ja) 2023-05-01 2024-05-09 株式会社あかつき 情報処理システム、情報処理装置、プログラム及び情報処理方法

Similar Documents

Publication Publication Date Title
JP2014071850A (ja) 画像処理装置、端末装置、画像処理方法、およびプログラム
US10964108B2 (en) Augmentation of captured 3D scenes with contextual information
US10789671B2 (en) Apparatus, system, and method of controlling display, and recording medium
US10593014B2 (en) Image processing apparatus, image processing system, image capturing system, image processing method
EP2328125B1 (en) Image splicing method and device
CN111291584B (zh) 识别二维码位置的方法及其系统
US10726580B2 (en) Method and device for calibration
JP5075182B2 (ja) 画像処理装置、画像処理方法、および、画像処理プログラム
CN110300292B (zh) 投影畸变校正方法、装置、系统及存储介质
US20150040074A1 (en) Methods and systems for enabling creation of augmented reality content
EP2560145A2 (en) Methods and systems for enabling the creation of augmented reality content
US10855916B2 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
CN113396442A (zh) 通过松散耦合的重新定位服务和资产管理服务在人工环境中呈现数字资产的系统和方法
US10051180B1 (en) Method and system for removing an obstructing object in a panoramic image
JP2007183948A (ja) 幾何情報を校正してパノラマ映像を提供する方法および装置
US20140192055A1 (en) Method and apparatus for displaying video on 3d map
US9071785B2 (en) Adjusting perspective distortion of an image
JP6096634B2 (ja) 仮想現実を用いた3次元地図表示システム
US20190306420A1 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
CN113643414B (zh) 一种三维图像生成方法、装置、电子设备及存储介质
US20190289206A1 (en) Image processing apparatus, image capturing system, image processing method, and recording medium
US11605183B2 (en) Aligning and merging contents from multiple collaborative workstations
JP2014164483A (ja) データベース生成装置、カメラ姿勢推定装置、データベース生成方法、カメラ姿勢推定方法、およびプログラム
JP2006113832A (ja) ステレオ画像処理装置およびプログラム
CN108628914B (zh) 移动装置及其操作方法、非挥发性计算机可读取记录媒体