(57)【要約】【課題】一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力できる画像処理装置を提供する。【解決手段】一の対象物を投影した１以上の投影画像と、各投影画像における一の対象物の投影方向に関する投影方向情報をそれぞれ有する１以上の投影画像関連情報が格納される投影画像格納部１００と、マーカ撮影画像を受け付ける撮影画像受付部１０１と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部１０３と、マーカ認識部１０３が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部１０５と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部１０６と、投影画像取得部１０６が取得した投影画像を出力する出力部１０８とを備えた。【選択図】図１
2014071850.tif 000002
【特許請求の範囲】
【請求項１】
一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される投影画像格納部と、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得部と、
前記投影画像取得部が取得した投影画像を出力する出力部とを備えた画像処理装置。
【請求項２】
前記投影画像取得部が取得した投影画像を補正する補正部を更に備え、
前記出力部は、前記補正部が補正した投影画像を出力する請求項１記載の画像処理装置。
【請求項３】
前記投影画像格納部には、更に、前記各投影画像を投影する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納され、
前記補正部は、当該投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する請求項２記載の画像処理装置。
【請求項４】
前記補正部は、前記投影画像の傾きを補正する請求項２または請求項３記載の画像処理装置。
【請求項５】
前記出力部は、前記投影画像を、前記マーカ撮影画像に重畳して出力する請求項１から請求項４いずれか一項記載の画像処理装置。
【請求項６】
前記方向情報取得部は、
前記マーカ認識部が取得したマーカ関連情報を用いて、当該マーカ認識部が認識したマーカの位置と、前記マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する位置関係情報取得手段と、
前記位置関係情報を用いて、前記方向情報を取得する方向取得手段と、を備えた請求項１から請求項５いずれか一項記載の画像処理装置。
【請求項７】
サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、、
前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、
一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信部と、
前記投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置。
【請求項８】
前記撮影画像受付部は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付け、
前記端末受信部が受信した投影画像に隣接する１以上の投影画像を含む１以上の投影画像である周辺投影画像と、当該各周辺投影画像に対応する投影方向情報とを受信する周辺画像受信部と、
前記周辺画像受信部が受信した周辺投影画像と、当該周辺投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報が格納される周辺投影画像格納部と、
前記周辺画像受信部が受信した周辺投影画像と、当該投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報を前記周辺投影画像格納部に蓄積する蓄積部と、
前記方向情報取得部が取得した方向情報に一致する投影方向情報が、前記周辺投影画像格納部に格納されているか否かを判断する判断部と、
前記判断部が一致する投影方向情報があると判断した場合に、当該一致する投影方向情報に対応する周辺投影画像を、前記周辺投影画像格納部から取得する端末投影画像取得部と、
前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、を更に備え、
前記端末送信部は、前記判断部が一致する投影方向情報がないと判断した場合にのみ、前記方向情報を前記マーカ対応情報として前記サーバ装置に送信し、
前記端末受信部は、一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報である方向情報と一致する投影画像を、前記サーバ装置から受信し、
前記出力部は、前記判断部が一致する投影方向情報があると判断した場合に、前記端末投影画像取得部が取得した周辺投影画像を出力する請求項７記載の端末装置。
【請求項９】
サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、
一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される端末投影画像格納部と、
一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信部と、
前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との１以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する１以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信部と、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得部と、
前記投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置。
【請求項１０】
一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される投影画像格納部と、撮影画像受付部と、マーカ認識部と、方向情報取得部と、投影画像取得部と、出力部とを用いて行われる画像処理方法であって、
前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
前記方向情報取得部が、前記マーカ認識ステップで取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得ステップと、
前記投影画像取得部が、前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得ステップと、
前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
【請求項１１】
サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、撮影画像受付部と、マーカ認識部と、端末送信部と、端末受信部と、出力部とを備えた端末装置を用いて行われる画像処理方法であって、
前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
前記端末送信部が、前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信ステップと、
前記端末受信部が、一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信ステップと、
前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
【請求項１２】
サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される端末投影画像格納部と、要求情報送信部と、投影画像受信部と、撮影画像受付部と、マーカ認識部と、位置関係情報取得部と、方向情報取得部と、投影画像取得部と、出力部と、を備えた端末装置を用いて行われる画像処理方法であって、
前記要求情報送信部が、一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信ステップと、
前記投影画像受信部が、前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との１以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する１以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信ステップと、
前記撮影画像受付部が、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付ステップと、
前記マーカ認識部が、前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識ステップと、
前記方向情報取得部が、前記マーカ認識ステップで取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得ステップと、
前記投影画像取得部が、前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得ステップと、
前記出力部が、前記投影画像取得ステップで取得した投影画像を出力する出力ステップとを備えた画像処理方法。
【請求項１３】
一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される投影画像格納部とにアクセス可能なコンピュータを、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記投影画像関連情報から取得する投影画像取得部と、
前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
【請求項１４】
コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムあって、
コンピュータを、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、
一の対象物を異なる方向に投影した画像である投影画像であって、当該投影画像における前記一の対象物の投影方向に関する情報である投影方向情報が、前記端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、前記サーバ装置から受信する端末受信部と、
前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
【請求項１５】
コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムであって、
一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、当該各投影画像における前記一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される端末投影画像格納部にアクセス可能なコンピュータを、
一の対象物の投影画像の送信を要求する情報である要求情報を、前記サーバ装置に送信する要求情報送信部と、
前記要求情報に応じた投影画像と当該投影画像に対応する投影方向情報との１以上の組を前記サーバ装置から受信し、受信した投影画像と投影方向情報との組を有する１以上の投影画像関連情報を、前記端末投影画像格納部に蓄積する投影画像受信部と、
マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、
前記マーカ撮影画像内のマーカを認識し、当該マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、
前記マーカ認識部が取得したマーカ関連情報を用いて、前記マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、
前記方向情報に一致する投影方向情報と対応付けられた投影画像を、前記端末投影画像格納部から取得する投影画像取得部と、
前記投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＲ（Augmented Reality：拡張現実）の技術に関するものである。
【背景技術】
【０００２】
従来の技術として、撮像装置を用いて撮像された実空間を映す入力画像を取得する画像取得部と、上記入力画像を表示装置の画面上に表示させ、上記画面上でユーザにより指定される指定位置を検出するユーザインタフェース部と、仮想オブジェクトの拡張現実空間内での３次元位置を、上記ユーザインタフェース部により検出される上記指定位置から計算する計算部と、上記計算部により計算される上記仮想オブジェクトの上記３次元位置を上記仮想オブジェクトと関連付けて記憶媒体に記憶させるオーサリング部と、を備える情報処理装置が知られていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１６８７９８号公報（第１頁、第１図等）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の装置においては、入力画像に対応する拡張現実空間内の３次元位置に仮想オブジェクトの画像を出力する際には、仮想オブジェクトを二次元画像に投影した画像を生成するためのレンダリング処理を行う必要があった。しかしながら、このレンダリング処理は、計算負荷が高く、非常に時間がかかる処理であるため、仮想オブジェクトを投影した二次元画像を拡張現実空間内の三次元位置に高速に出力することができない、という課題があった。このため、例えば、画像を撮影してから仮想オブジェクトの画像を出力するまでの待ち時間が長くなる、という問題があった。また、例えば、撮像装置を用いて撮像された実空間を映す画像が動画像である場合、動画像を構成する各フレーム画像を出力するまでに、仮想オブジェクトの画像生成が間に合わず、仮想オブジェクトの動きが、撮像装置の動きに応じた滑らかな動きにならない場合がある、という問題があった。
【課題を解決するための手段】
【０００５】
本発明の画像処理装置は、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される投影画像格納部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた画像処理装置である。
【０００６】
かかる構成により、予め格納されている対象物の投影画像を出力することができるため、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
【０００７】
また、本発明の画像処理装置は、前記画像処理装置において、投影画像取得部が取得した投影画像を補正する補正部を更に備え、出力部は、補正部が補正した投影画像を出力する画像処理装置である。
【０００８】
かかる構成により、投影画像を補正した適切な画像を拡張現実空間内に出力することができる。
【０００９】
また、本発明の画像処理装置は、前記画像処理装置において、投影画像格納部には、更に、各投影画像を投影する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納され、補正部は、投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する画像処理装置である。
【００１０】
かかる構成により、投影画像のサイズを補正した適切な画像を拡張現実空間内に出力することができる。
【００１１】
また、本発明の画像処理装置は、前記画像処理装置において、補正部は、投影画像の傾きを補正する画像処理装置である。
【００１２】
かかる構成により、投影画像の傾きを補正した適切な画像を拡張現実空間内に出力することができる。
【００１３】
また、本発明の画像処理装置は、前記画像処理装置において、出力部は、投影画像を、マーカ撮影画像に重畳して出力する画像処理装置である。
【００１４】
かかる構成により、マーカ撮影画像に投影画像を重ね合わせた画像を出力することができ、マーカを撮影した位置に、投影画像が示す対象物が配置されているような拡張現実空間の画像を出力することができる。
【００１５】
また、本発明の画像処理装置は、前記画像処理装置において、方向情報取得部は、マーカ認識部が取得したマーカ関連情報を用いて、マーカ認識部が認識したマーカの位置と、マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する位置関係情報取得手段と、位置関係情報を用いて、方向情報を取得する方向取得手段と、を備えた画像処理装置である。
【００１６】
かかる構成により、マーカを撮影したカメラの方向に対応した適切な投影画像を出力することができる。
【００１７】
本発明の端末装置は、サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、前記マーカ関連情報に対応する情報であるマーカ対応情報を、前記サーバ装置に送信する端末送信部と、一の対象物を異なる方向に投影した画像である投影画像であって、投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置から受信する端末受信部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置である。
【００１８】
かかる構成により、マーカ撮影画像を受け付ける毎に、逐次サーバ装置から投影画像を取得して出力することができ、投影画像をダウンロードする待ち時間を低減させることができる。
【００１９】
また、本発明の端末装置は、前記端末装置において、撮影画像受付部は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付け、端末受信部が受信した投影画像に隣接する１以上の投影画像を含む１以上の投影画像である周辺投影画像と、各周辺投影画像に対応する投影方向情報とを受信する周辺画像受信部と、周辺画像受信部が受信した周辺投影画像と、周辺投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報が格納される周辺投影画像格納部と、周辺画像受信部が受信した周辺投影画像と、投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報を周辺投影画像格納部に蓄積する蓄積部と、方向情報取得部が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部に格納されているか否かを判断する判断部と、判断部が一致する投影方向情報があると判断した場合に、一致する投影方向情報に対応する周辺投影画像を、周辺投影画像格納部から取得する端末投影画像取得部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、を更に備え、端末送信部は、判断部が一致する投影方向情報がないと判断した場合にのみ、方向情報をマーカ対応情報としてサーバ装置に送信し、端末受信部は、一の対象物を異なる方向に投影した画像である投影画像であって、この投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報である方向情報と一致する投影画像を、サーバ装置から受信し、出力部は、判断部が一致する投影方向情報があると判断した場合に、端末投影画像取得部が取得した周辺投影画像を出力する端末装置である。
【００２０】
かかる構成により、マーカ撮影画像に対応した周辺投影画像がある場合には、周辺投影画像を出力することで、サーバ装置から、投影画像をダウンロードする頻度を減らすことができ、滑らかな投影画像の出力が可能となる。また、周辺投影画像だけをサーバ装置からダウンロードするため、ダウンロードの時間の増加を抑えることができ、ダウンロードの待ち時間と、投影画像の品質との両立を図ることができる。
【００２１】
また、本発明の端末装置は、サーバ装置と端末装置とを備えた画像処理システムの端末装置であって、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される端末投影画像格納部と、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置に送信する要求情報送信部と、要求情報に応じた投影画像と投影画像に対応する投影方向情報との１以上の組をサーバ装置から受信し、受信した投影画像と投影方向情報との組を有する１以上の投影画像関連情報を、端末投影画像格納部に蓄積する投影画像受信部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部とを備えた端末装置である。
【００２２】
かかる構成により、一度サーバ装置から１以上の投影画像をダウンロードした後は、更なる投影画像のダウンロードを行わなくても、一の対象物についての投影画像を、マーカ撮影画像に応じて逐次出力することができ、滑らかな投影画像の出力が可能となる。
【発明の効果】
【００２３】
本発明による画像処理装置等によれば、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態１における画像処理装置のブロック図
【図２】同画像処理装置の動作について説明するフローチャート
【図３】同画像処理装置の動作について説明するフローチャート
【図４】同画像処理装置の動作について説明するフローチャート
【図５】同画像処理装置の動作について説明するフローチャート
【図６】同画像処理装置の動作について説明するフローチャート
【図７】同画像処理装置の投影画像管理情報（図７（ａ））、投影画像の表示例（図７（ｂ））、および距離関連情報を管理する距離関連情報管理情報を示す図（図７（ｃ））を示す図
【図８】同画像処理装置におけるＡＲの座標系を説明するための図
【図９】同画像処理装置のカメラ撮影したマーカの斜視図（図９（ａ））、およびマーカを撮影したマーカ撮影画像を示す図（図９（ｂ））
【図１０】同画像処理装置の補正部による補正処理を説明するための模式図
【図１１】同画像処理装置の３ＤＲＬのカメラの座標系を示す模式図（図１１（ａ））、および、カメラ座標系と基準座標系との関係を示す模式図（図１１（ｂ））
【図１２】拡大撮像面と撮像面との関係を示す模式図（図１２（ａ））、および拡大撮像面の回転角を説明するための模式図（図１２（ｂ））
【図１３】同画像処理装置の出力部がＡＲ画像を出力している状態を示す図（図１３（ａ））、および画像処理装置のカメラが設けられている側の外観を示す図
【図１４】本発明の実施の形態２における画像処理システムのブロック図
【図１５】同画像処理システムのサーバ装置の動作について説明するフローチャート
【図１６】同画像処理システムの端末装置３の動作について説明するフローチャート
【図１７】本発明の実施の形態３における画像処理システムのブロック図
【図１８】同画像処理システムの端末装置の動作について説明するフローチャート
【図１９】本発明の実施の形態４における画像処理システムのブロック図
【図２０】同画像処理システムのサーバ装置の動作について説明するフローチャート
【図２１】本発明の各実施の形態におけるコンピュータシステムの外観の一例を示す図
【図２２】同実施の形態におけるコンピュータシステムの構成の一例を示す図
【発明を実施するための形態】
【００２５】
以下、画像処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２６】
（実施の形態１）
図１は、本実施の形態における画像処理装置１のブロック図である。
【００２７】
画像処理装置１は、投影画像格納部１００、撮影画像受付部１０１、カメラ１０２、マーカ認識部１０３、方向情報取得部１０５、投影画像取得部１０６、補正部１０７、出力部１０８を備える。方向情報取得部１０５は、位置関係情報取得手段１０５１と、方向取得手段１０５２とを備える。
【００２８】
投影画像格納部１００には、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する１以上の投影画像関連情報が格納される。投影画像関連情報は、投影画像と、この投影画像についての投影方向情報とを有する情報である。ここでの１以上の方向とは、具体的には、１の方向または異なる２以上の方向を意味する。また、ここでの１以上の投影画像は、１または２以上の投影画像を意味する。また、ここでの１以上の投影画増関連情報は、１または２以上の投影画像関連情報を意味する。
【００２９】
対象物は、投影の対象となる物体である。対象物は、実空間の物体であっても良いし、３Ｄオブジェクト等の仮想空間内の仮想の物体であっても良い。一の対象物は、１つの物体であっても良いし、複数の物体で構成されるグループであっても良い。ここでの投影とは、撮影を含む概念である。投影画像は、対象物を、例えば、カメラ等の撮像装置の撮像面や仮想の投影面等に投影した画像である。投影画像は、例えば、カメラ等の撮像装置で撮影された撮影画像や、３Ｄモデルをレンダリングすることで得られた二次元画像である。例えば、投影画像は、３Ｄモデルを仮想的な３次元空間に配置し、予め指定された照明条件の下で、予め指定された位置および角度から見た姿あるいは外観を計算して二次元のＣＧとして取得したものであっても良い。投影画像が撮影画像である場合、対象物は、被写体と考えても良い。
【００３０】
各投影画像関連情報に含まれる投影方向情報は、同じ投影画像関連情報に含まれる投影画像における対象物の投影方向に関する情報である。投影方向とは、例えば、対象物側から投影面側を見る場合の方向であり、対象物から投影面に向かう方向である。投影方向は、例えば、投影を行う際の視点から、対象物を見る場合の方向に対して、１８０度向きが異なる方向である。対象物を見る方向は、例えば、後述する対象物の目標点から、投影を行う視点に向かう方向と考えても良い。例えば、投影方向は、撮影方向やレンダリング方向に対して１８０度向きが異なる方向である。撮影方向は、カメラ等の撮像装置の光軸上の、撮像装置側を起点とした被写体に向かう方向である。レンダリング方向は、レンダリング時の視線の方向や仮想のカメラやビューの方向である。投影方向情報は、投影方向を特定可能な情報であれば良い。投影方向情報は、投影方向を特定することが可能な情報であればどのような情報であっても良い。例えば、投影方向情報は、投影を行う方向の伏角と方位角との組合せである。また、投影方向情報は、投影を行う方向を示す単位ベクトル等のベクトルであってもよい。伏角および方位角とは、例えば以下のように定義される。まず、ここでは、対象物の、投影画像において中央に配置させる目標点をオブジェクト中心と呼ぶ。また、投影の対象物を配置した水平面をｘｙ平面とし、高さ方向をｚ軸とする右手系の座標系であって、ｚ軸がオブジェクト中心を通るよう定義し、このｚ軸が水平面と交わる点を原点に定義した座標系をオブジェクト座標系と呼ぶ。そして、このオブジェクト座標系において、オブジェクト中心と投影画像の中心位置とを結ぶ直線がｚ軸のなす角をここでは伏角、投影面の中心をｘｙ平面におろした点と原点を結ぶ直線と、−ｙ軸とのなす角をここでは方位角とする。なお、オブジェクト中心として、対象物の重心や中心等を用いるようにしても良い。また、オブジェクト中心は、対象物の重心や、ユーザが指定する対象物上、あるいは対象物内の位置であっても良い。
【００３１】
投影画像は、一の対象物を投影した画像に対して、１以上の画像処理等が行われた画像であっても良い。この画像処理はどのような画像処理であっても良い。例えば、この画像処理は、アンシャープマスク処理や、レベル調整処理、色補正処理、ガンマ補正処理等である。また、画像処理は、投影画像の一部の領域を削除したり、投影画像の一部の領域にアルファチャンネル等を設定する処理であっても良い。
【００３２】
投影画像は、一の対象物以外の領域が透明である画像であることが好ましい。投影画像の対象物以外の領域を、ここでは、背景領域と呼ぶ。背景領域が透明である画像とは、例えば、背景領域が透過領域に設定されている画像である。背景領域が透明である画像とは、例えば、アルファチャンネルが設定されており、背景領域内のアルファ値が透過を示す値である「０」に設定されている画像である。また、背景領域が透明である画像は、例えば、背景領域内に画素が設けられていない画像や、背景領域の画素の透過度が１００％に設定されている画像である。なお、背景領域が透明である投影画像のかわりに、背景領域が、予め指定された単色や、パターン等である投影画像を用いても良い。この場合、投影画像を出力する際に、この予め指定された単色やパターンを有する領域を投影画像から自動検出して、この部分を透過領域に指定したり、この部分を背景画像等を置きかえたりすることで、結果的に、投影画像の背景領域を実質的に透明にすることができる。
【００３３】
なお、投影画像の背景領域を透明にするためには、例えば、投影画像に対して色域検出やパターン検出等の画像処理を行って背景領域を検出し、投影画像のアルファチャンネルのこの領域内のアルファ値を「０」に設定したり、この領域の画素を削除したり等するようにすればよい。
【００３４】
投影画像格納部１００には、更に、各投影画像を取得する際の距離に関する情報である距離関連情報が、各投影画像と対応付けられて格納されていてもよい。距離関連情報は、例えば、投影面とオブジェクト中心との間の距離である。また、距離関連情報は、撮像装置のレンズの光軸上の実質的な中心位置とオブジェクト中心との距離であっても良く、また、撮像装置の焦点距離であっても良い。なお、画角の値を用いることも、焦点距離を用いることと考えても良い。また、距離関連情報は、レンダリングの際の仮想のカメラのレンズの中心位置とオブジェクト中心との距離、および仮想のカメラの焦点距離であってもよい。また、距離関連情報は、これらのうちの２以上の距離であっても良い。
【００３５】
各投影画像に対応する距離関連情報は、例えば、各投影画像を有する投影画像関連情報内に格納されていても良い。また、複数の投影画像を取得する際の距離に関する情報が、共通である場合に、これらの複数の投影画像をそれぞれ有する複数の投影画像関連情報に対して、共通する一の距離関連情報が対応付けて格納されていても良い。
【００３６】
投影画像格納部１００には、複数の異なる対象物のそれぞれを１以上の方向に投影した投影画像を有する複数の投影画像関連情報が格納されていても良い。ここでの１以上の方向とは、具体的には、１の方向または異なる２以上の方向を意味する。また、各対象物についての投影画像を有する１または２以上の投影画像関連情報は、各対象物の識別情報と対応付けて投影画像格納部１００に格納されていても良い。対象物の識別情報は、後述するマーカ識別情報であっても良い。
【００３７】
投影画像格納部１００は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００３８】
撮影画像受付部１０１は、マーカ撮影画像を受け付ける。マーカ撮影画像は、例えば、予め指定されたマーカを撮影した画像である。マーカ撮影画像は、例えば、実空間に配置したマーカをカメラ１０２で撮影した画像である。マーカ撮影画像は、マーカ以外の背景等を含んでいてよい。マーカは、例えば、このマーカが配置された領域の背景に対して識別可能な形状や、色、パターン、画像、文字列等のコード等を有する指標である。マーカは、例えば、物質に印刷、あるいは貼付された二次元の画像である。マーカは、例えば、バーコードを有していても良い。また、マーカは、立体の部材等であっても良い。予め指定されたマーカとは、予め指定されたサイズや、上記のような予め指定された形状や、色、パターン、特徴点等を有するマーカである。特徴点については後述する。予め指定されたマーカは、例えば、予め、マーカのサイズや、マーカの特徴点や、マーカの画像等が図示しない記憶媒体等に登録されたマーカである。なお、マーカとして認識可能なものであれば、予め指定された形状等を有する物体等をマーカとして用いても良い。例えば、予め登録されているプレートやトレイ等をマーカと考えても良い。また、マーカは、マーカの向きを検出可能な形状等を有することが好ましい。なお、複数のマーカが、実質的に一のマーカを構成していても良い。
【００３９】
マーカ撮影画像は、静止画像であっても、マーカを撮影した動画像の一のフレーム画像であっても良い。撮影画像受付部１０１は、例えば、動画像を構成する１または２以上のフレーム画像を、順次受け付けても良い。また、マーカ撮影画像のデータ構造等は問わない。また、マーカ撮影画像は、カラー画像であっても、グレースケール画像であっても、二値化画像であっても良い。
【００４０】
撮影画像受付部１０１は、さらに、撮影時のパラメータに関する情報を受け付けても良い。撮影時のパラメータに関する情報とは、撮影時の焦点距離、画素数等の情報である。撮影時のパラメータに関する情報とは、マーカ撮影画像を取得する際に用いたカメラ１０２の特性を示すデータ、例えば、カメラ１０２の焦点距離等により生じるゆがみ等を校正するための校正データであっても良い。このパラメータに関する情報は、各撮影画像ごとに受け付けても良いが、複数の撮影画像のパラメータが同じである場合、最初の撮影画像を受け付ける際やその直前等に、このパラメータに関する情報を受け付けるようにしても良い。
【００４１】
ここでの受け付けとは、例えば、他の装置や処理部等から出力されるマーカ撮影画像等の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、入力デバイスからの受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。本実施の形態においては、撮影画像受付部１０１が、カメラ１０２が撮影して出力するマーカ撮影画像を撮影画像受付部１０１が受け付ける場合を例に挙げて説明する。また、マーカの撮影時のパラメータ等は、カメラ１０２から受け付けても良く、キーボード等の入力デバイスとを介してユーザから受け付けても良い。撮影画像受付部１０１は、通信デバイスや、通信デバイスとそのデバイスドライバーとの組合せや、入力インターフェースや、入力インターフェースとそのドライバ等の組合せや、メニュー画面の制御ソフトウェア等で実現され得る。
【００４２】
カメラ１０２は、マーカを撮影して、このマーカを含むマーカ撮影画像を取得する。カメラ１０２は、例えば、予め指定されたマーカを撮影する。カメラ１０２は、静止画像であるマーカ撮影画像を取得しても良いし、動画像であるマーカ撮影画像を取得しても良い。カメラ１０２は取得したマーカ撮影画像を撮影画像受付部１０１に出力する。また、カメラ１０２は、マーカ撮影時のパラメータ、例えば、焦点距離等を撮影画像受付部１０１に出力しても良い。なお、カメラ１０２と、撮影画像受付部１０１との接続は、有線接続であっても無線接続であっても良い。カメラ１０２は、例えば、デジタルスチルカメラや、デジタルムービーカメラである。カメラ１０２は、例えば、コンピュータ等の外付けカメラであってもよい。
【００４３】
マーカ認識部１０３は、マーカ撮影画像内のマーカを認識し、認識したマーカに関する情報であるマーカ関連情報を取得する。マーカを認識するということは、例えば、マーカ撮影画像内のマーカが示されている領域を検出することや、マーカの輪郭を検出することや、マーカのコーナー部等の１以上の特徴点を検出することである。マーカの特徴点とは、例えば、マーカの外観等における特徴を示す１以上の部分や、マーカにおけるマーカと背景とを区別するために用いられる１以上の形状等を有する部分である。例えば、マーカの特徴点とは、マーカの１以上の隅部分や、マーカ内や、マーカの外周に設けられた特定の形状を有する部分である。
【００４４】
マーカ関連情報は、例えば、マーカ撮影画像内におけるマーカの配置されている状況を示す情報である。マーカの配置されている状況を示す情報（以下、マーカ配置状況情報と称す）とは、例えば、マーカ撮影画像内におけるマーカの配置されている領域や、マーカの向きや、マーカの形状等を表す情報や、これらの特定に利用可能な情報である。また、マーカ配置状況情報とは、例えば、マーカと、マーカ撮影画像を撮影したカメラ１０２との配置関係の特定に利用可能な情報と考えてもよい。マーカ配置状況情報は、例えば、マーカ認識部１０３が検出したマーカの輪郭を示す情報である。輪郭を示す情報は、例えば、マーカ撮影画像内の輪郭に位置する複数の座標群や、輪郭を構成する１以上の辺を示す数式等である。また、マーカ配置状況情報は、マーカ撮影画像内におけるマーカの１以上の隅を示す情報であってもよい。また、マーカ配置状況情報は、マーカの中心点や重心の位置を示す情報であっても良い。マーカの隅や、中心点や、重心を示す情報は、例えば、隅や、中心点や、重心の座標である。また、マーカ配置状況情報は、マーカの辺や、マーカの中心線等の向きを示すベクトル等の情報であっても良い。また、マーカ配置状況情報は、マーカ撮影画像内におけるマーカの１以上の特徴点を示す情報であっても良い。特徴点を示す情報とは、例えば、特徴点を示す座標や、特徴点を示す領域を示す情報である。また、マーカの配置されている状況を示す情報とは、これらの情報の２以上の組合せであっても良い。例えば、マーカ配置状況情報は、矩形のマーカの４隅の座標や、４隅の座標と中心点または重心との組合せであっても良い。
【００４５】
例えば、マーカ認識部１０３は、マーカ撮影画像がカラー画像またはグレースケール画像であり、マーカの輪郭等が、背景よりも十分に輝度が低い色を有するものである場合、予め指定された閾値でマーカ撮影画像を二値化して、マーカ撮影画像内のマーカの輪郭等を検出する。また、マーカが、他の部分とは異なる輝度の複数のドット等が配置されたマーカである場合等においては、マーカ認識部１０３は、二値化したマーカ撮影画像から、輝度値が特定の値である隣接した画素で構成されるマーカを構成する複数の領域を検出してもよい。この複数の領域の検出をマーカの検出と考えても良い。マーカ撮影画像が二値化画像である場合、上記の二値化処理は不要である。
【００４６】
マーカ認識部１０３は、更に、上記で検出したマーカ撮影画像内のマーカの領域内の画像と、予め図示しない記憶媒体等に格納されている複数のマーカの画像等とのパターンマッチングを行って、一致するマーカの画像等を検出し、このマーカの画像と予め対応付けられているマーカの識別情報（以下、マーカ識別情報と称す）を取得するようにしても良い。なお、上記の予め格納されているマーカの画像とは、マーカ内の部分的な画像であっても良い。
【００４７】
なお、上記のように、マーカ撮影画像からマーカを認識する処理や、マーカの隅や、中心点、重心の座標や、マーカの輪郭を示す情報等のマーカ関連情報を取得する処理については、以下の非特許文献１、２等において、公知の技術であるので、ここでは詳細な説明は省略する。
【００４８】
「非特許文献１：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」
【００４９】
「非特許文献２：橋本直"ARToolKit 拡張現実感プログラミング入門"株式会社アスキー・メディアワークス,初版9月18日,2008」
【００５０】
方向情報取得部１０５は、マーカ認識部１０３が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する。方向情報は、例えば、マーカ撮影画像を撮影した際の、マーカからみたカメラ１０２が位置する方向を示す情報である。ここでのカメラ１０２の位置とは、例えば、カメラ１０２のレンズの、光軸方向における実質的な中心位置である。カメラ１０２の位置は、カメラの撮像面をレンダリングの際の投影面と考えた場合の視点に相当する位置と考えても良い。ただし、カメラ１０２の位置は、実際のカメラ１０２のレンズの中心位置から誤差等の分だけずれた位置であっても良い。方向情報は、例えば、マーカ撮影画像を撮影した際の、カメラ１０２の方位角および伏角である。このカメラ１０２の方位角および伏角は、例えば、マーカ座標系における方位角および伏角である。マーカ座標系とは、マーカの位置を基準とした座標系であり、例えば、ここでは、マーカ座標系は、マーカの中心を原点とし、マーカを正面から見た場合、即ちマーカを平面側から見た場合の右向きをｘ軸、上向きをｙ軸、手前向きをｚ軸とした座標系であるとする。なお、この場合の伏角は、マーカからカメラ１０２を見た場合の視線方向と、マーカ座標系の＋ｚ軸とがなす角、方位角は、マーカからカメラ１０２を見た場合の視線方向を、マーカ座標系のｘｙ平面に下した直線と−ｙ軸とのなす角である。ただし、方向情報は、他の座標系におけるカメラ１０２の方位角および伏角としても良い。また、方向情報は、マーカの位置を始点としたカメラ１０２の位置する方向を示す単位ベクトル等のベクトルであってもよい。なお、方向情報取得部１０５は、方向情報として、マーカ撮影画像を撮影した際のカメラ１０２の撮影方向を示す情報、具体的には、撮影方向の方位角や伏角を取得しても良い。撮影方向とは、カメラ１０２の位置から見たマーカの方向を示す情報である。また、方向情報取得部１０５は、方向情報として、更に、カメラ１０２の光軸を回転軸とした回転角を取得しても良い。また、方向情報取得部１０５は、カメラ１０２の位置を示す座標や、カメラ１０２とマーカとの距離を示す情報等を更に取得しても良い。
【００５１】
なお、この実施の形態においては、方向情報取得部１０５を構成する位置関係情報取得手段１０５１と、方向取得手段１０５２とにより、方向情報を取得する場合の例について説明する。また、方向情報取得部１０５により、方向情報を取得する処理の具体例については、後述する。
【００５２】
位置関係情報取得手段１０５１は、マーカ認識部１０３が取得したマーカ関連情報を用いて、マーカ認識部１０３が認識したマーカの位置と、マーカ撮影画像を撮影した位置との関係を示す情報である位置関係情報を取得する。位置関係情報は、例えば、マーカ認識部１０３がマーカ撮影画像内において認識したマーカについて設定したマーカ座標系における座標と、マーカ撮影画像を撮影したカメラ１０２の座標系とにおける座標との対応関係を示す情報である。カメラ１０２の座標系をここでは、カメラ座標系と呼ぶ。カメラ座標系は、カメラ１０２に対して設定される座標系と考えても良い。位置関係情報は、例えば、マーカ座標系における座標と、カメラ座標系とにおける座標との座標変換行列、あるいは座標変換関数である。
【００５３】
位置関係情報取得手段１０５１は、例えば、マーカ関連情報と、マーカ撮影画像に撮影されたマーカのマーカ属性情報とを用いて位置関係情報を取得する。マーカ属性情報は、例えば、予め図示しない記憶媒体等に格納されているものを読み出して取得する。マーカ属性情報とは、マーカの属性を示す情報である。マーカ属性情報とは、例えば、マーカの外観に関する属性を示す情報である。マーカ属性情報は、例えば、マーカの縦横の長さ等のサイズの情報や、マーカの形状の情報や、マーカ座標系におけるマーカの特徴点の座標等である。カメラ１０２が撮影するマーカが、予め指定された一のマーカ、あるいは、同じサイズや形状、特徴点を有するマーカである場合、位置関係情報取得手段１０５１が利用するマーカ属性情報は、予め特定しておくようにすればよく、この特定されたマーカ属性情報は、図示しない記憶媒体等に予め蓄積しておくようにすればよい。また、カメラ１０２が撮影するマーカが、異なるサイズや形状、特徴点を有する複数のマーカである場合、予めマーカの識別情報と、マーカに関する情報とを対応付けて有する複数組の情報を、図示しない記憶媒体等に格納しておくようにし、マーカ認識部１０３がマーカ撮影画像から取得したマーカ識別情報に対応するマーカに関する情報を、この複数組の情報から検索等により取得しても良い。
【００５４】
位置関係情報取得手段１０５１は、更に、マーカ撮影画像の撮影時のパラメータに関する情報である撮影パラメータ情報を用いて、位置関係情報を取得することが好ましい。撮影パラメータ情報は、例えば、カメラ１０２の校正データである。パラメータに関する情報は、例えば、カメラ１０２の焦点距離の情報や、カメラ１０２の撮像面のサイズや、カメラ１０２の画素数等に関する情報である。撮影パラメータ情報は撮影時等に、カメラ１０２等から取得するようにしても良いし、予め図示しない記憶媒体等に格納されている撮影パラメータ情報を読み出しても良い。撮影パラメータ情報としては、カメラで撮影して得られる画像に付与されるＥｘｉｆ（Exchangeable image file format）情報等が利用可能である。
【００５５】
なお、本実施の形態においては、位置関係情報取得手段１０５１が、位置関係情報として、座標変換行列を取得する場合を例に挙げて説明する。なお、位置関係情報取得手段１０５１が取得する座標変換行列の具体例については後述する。
【００５６】
位置関係情報取得手段１０５１が、マーカ認識部１０３が取得したマーカ関連情報を用いて、位置関係情報を取得する処理は、上記の非特許文献１、２等に示されているように公知の技術であるため、ここでは詳細な説明は省略する。
【００５７】
方向取得手段１０５２は、位置関係情報取得手段１０５１が取得した位置関係情報を用いて方向情報を取得する。方向情報は、上述したように、マーカ撮影画像を撮影した際の方向に関する情報である。方向取得手段１０５２は、例えば、位置関係情報を用いて、マーカ撮影画像を撮影した際のカメラの回転角を取得する。カメラの回転角は、例えば、カメラ１０２をマーカ座標系のｘ軸、ｙ軸、ｚ軸の少なくとも１以上を回転軸として回転させた場合の角度である。この回転角は、例えば、予め指定された状態にカメラ１０２が配置されている場合等を基準とした場合の回転角である。カメラ１０２の回転角は、例えば、カメラ座標系のｘ軸、ｙ軸またはｙ軸が、マーカ座標系のｘ軸、ｙ軸またはｚ軸に対してなす角度等で示すことができる。また、方向取得手段１０５２は、例えば、位置関係情報を用いて、マーカ撮影画像を撮影した際の、マーカ座標系におけるカメラ１０２の位置の情報を取得する。カメラ１０２の位置の情報は、マーカ座標系におけるカメラ１０２の座標や、カメラ１０２の位置ベクトル等である。そして、カメラ１０２の回転角と、位置の情報とを用いて、マーカ座標系におけるカメラ１０２の方位角と伏角とを取得する。なお、方向情報を取得する処理の具体例については、後述する。
【００５８】
投影画像取得部１０６は、方向情報取得部１０５が取得した方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する。例えば、方向情報取得部１０５が取得した方向情報に一致する投影方向情報を有する投影画像関連情報を検索し、検出された投影画像関連情報が有する投影画像を取得する。方向情報に一致する投影方向情報とは、例えば、方向情報が示す方向と一致する方向を示す投影方向情報を意味する。ここでの一致とは、完全な一致であっても良いし、予め指定された範囲内の差異も含めた一致であっても良い。例えば、方向情報の値と、投影方向情報との値との値の差が、予め指定された値未満である場合に、方向情報の値と、投影方向情報とが一致であると考えても良い。予め指定された値は、例えば、隣接する投影方向情報間の値の半分の値である。一の投影方向情報に隣接する投影方向情報とは、一の投影方向情報が示す方向の上下左右に隣接する方向を示す投影方向情報である。あるいは、斜め方向に隣接する方向を示す投影方向情報も、一の投影方向情報に隣接する投影方向情報と考えても良い。また、方向情報と、投影方向情報とのそれぞれの値を、同じ桁で四捨五入、切り捨て、切り上げした場合に、両者の値が一致する場合も、一致と考えても良い。また、方向情報が示す方向が、２以上の投影方向情報がそれぞれ示す方向の間の方向を示す場合、最も方向情報が示す方向に近い方向を示す投影方向情報を、一致する投影方向情報と判断しても良い。方向が近いということは、ベクトル間のなす角が小さいことと考えても良い。方向情報と投影方向情報とが一致するということは、例えば、方向情報が示すカメラ１０２の伏角および方位角が、投影方向情報が示す投影方向の伏角および方位角と一致することや、値の差が、それぞれ予め指定された値未満となることである。ただし、用途等に応じて、伏角または方位角のいずれか一方のみの一致としても良い。また、方向情報の伏角または方位角の少なくとも一方が一致する投影方向情報がない場合、方向情報に対して、伏角および方位角の値の差が最も近い伏角および方位角を有する投影方向情報を一致する投影方向情報と判断するようにしても良い。また、方向情報の伏角と最も近い伏角を有する投影方向情報と、方向情報の方位角と最も近い方位角を有する投影方向情報とが異なる場合、伏角が近い投影方向情報を一致する投影方向情報と判断するようにしても良く、あるいは方位角が近い投影方向情報を一致する投影方向情報と判断するようにしても良い。
【００５９】
なお、伏角が予め指定された正値より小さい場合は、投影画像取得部１０６は、対象物を真上に投影した投影画像を取得するようにしても良い。
【００６０】
なお、予め、異なる対象物について取得された複数の投影画像を、異なるマーカ識別情報とを対応付けて、投影画像格納部１００に蓄積しておくようにし、マーカ認識部１０３がマーカ撮影画像から取得したマーカ識別情報と対応する１または２以上の投影画像の中から、対応する投影方向情報が方向情報と一致する投影画像を取得するようにしても良い。このようにすることで、マーカに応じた投影画像を取得することが可能となる。なお、投影画像取得部１０６は、方向情報取得部１０５が取得した方向情報に一致する投影方向情報と対応付けられた投影画像が検出できなかった場合、投影画像を取得しなくても良い。この場合、後述する出力部１０８は、投影画像を出力しなくても良いし、マーカ撮影画像に対応する投影画像がなかったことを示すための、図示しない記憶媒体等に予め格納されている文字列や画像等の情報を出力するようにしても良い。
【００６１】
補正部１０７は、投影画像取得部１０６が取得した投影画像を補正する。補正部１０７は、例えば、位置関係情報取得手段１０５１が取得した位置関係情報を用いて投影画像を補正する。位置関係情報取得手段１０５１が取得した位置関係情報を用いるということは、例えば、方向情報取得部１０５が、方向情報を取得する際に位置関係情報を用いて取得したカメラ１０２の位置を示す座標等の中間情報等を用いることも含む概念である。補正部１０７は、投影画像取得部１０６が取得した投影画像が、この投影画像が示す投影物をマーカ撮影画像が示すマーカが配置されていた位置に配置して方向情報が示す方向からカメラ１０２で撮影した画像となるように、投影画像に対して補正を行う。
【００６２】
例えば、補正部１０７は、投影画像の傾きを補正する。投影画像の傾きとは、例えば、投影画像が予め指定された基準となる状態にある場合に対する傾きである。基準となる状態とは、例えば、投影画像をカメラ１０２の撮像面に貼付した状態や、投影画像のオリジナルの状態である。投影画像のオリジナルの状態とは、即ち、投影面への投影時の状態である。ここでの貼付は、投影やいわゆるマッピング等と考えても良い。かかることは以下においても同様である。また、ここでのカメラ１０２の撮像面は、仮想三次元空間内におけるカメラ１０２の撮像面に実質的に相当する面等と考えても良い。投影画像の傾きは、例えば、投影画像の基準となる状態に対する回転角で示される。投影画像の傾きは、例えば、投影画像を貼付したカメラ１０２の撮像面の法線、あるいは、投影画像の法線を回転軸とした回転角で示される。また、投影画像の傾きは、例えば、投影画像をカメラ１０２の撮像面に貼付した状態を基準とした場合の回転角で示されても良い。例えば、投影画像の傾きは、投影画像の上辺、または下辺の少なくとも一方が、投影の対象物が配置されている平面に平行である状態を基準とした傾きである。例えば、補正部１０７は、投影画像の傾きを、位置関係情報を用いて補正する。補正部１０２は、後述するように、出力部１０８が投影画像をカメラ１０２の撮像面に貼付して得られた投影画像等を出力する場合には、例えば、投影画像をカメラ１０２の撮像面等の法線や、貼付後の投影画像の法線を回転軸として回転させることで投影画像の傾きを補正する。また、補正部１０７は、例えば、投影画像を、この投影画像の法線を回転軸として回転させることで投影画像の傾きを補正してもよい。補正部１０７は、例えば、傾きを補正するための回転角を取得し、この回転角で、カメラ１０２の撮像面に貼付した状態の投影画像、または、オリジナルの投影画像を回転させる。回転軸として用いられる投影画像の法線や撮像面の法線としては、例えば、投影画像の中心を通る法線が用いられる。
【００６３】
補正部１０７は、例えば、投影画像の傾きを、マーカ撮影画像の傾きに対応する傾きとなるよう補正する。補正部１０７は、例えば、投影画像内における対象物が配置されている平面が、マーカ撮影画像内におけるマーカが配置されている平面と平行となるように、投影画像の傾きを補正する。例えば、補正部１０７は、投影画像内における対象物が配置されている平面と、マーカ撮影画像内におけるマーカが配置されている平面とが平行となるように、投影画像を、上述したように投影画像が貼付されるカメラ１０２の撮像面の法線、または、当該投影画像の法線を回転軸として回転させる。なお、対象物やマーカが配置されている平面とは、対象物やマーカの配置されている位置に設定される仮想の平面や平面であっても良い。また、補正部１０７は、例えば、投影画像内における対象物について設定された座標系と、マーカ撮影画像内におけるマーカについて設定された座標系とが一致するように、投影画像を、カメラ１０２の撮像面等の法線を回転軸として、あるいは、当該投影画像の法線を回転軸として回転させてもよい。
【００６４】
また、補正部１０７は、投影画像の上辺または下辺の少なくとも一方が、マーカ撮影画像に写り込んだマーカが配置されている平面がマーカ撮影画像と交わってできる直線に平行となるよう、投影画像の傾きを補正してもよい。また、投影画像や撮像面の上下辺の代わりに、投影画像や撮像面を高さ方向に分割する直線等を用いても良い。この直線は、投影画像や撮像面の中点や重心を通る直線とすることが好ましい。
【００６５】
また、補正部１０７は、例えば、投影画像取得部１０６が投影画像を取得した際の投影面の上下辺の、投影方向に平行な直線に垂直かつ投影の対象物が配置された平面に平行な直線に対する傾きを、マーカ撮像画像を撮影する際のカメラ１０２の撮像面の上下辺の、方向情報が示す方向に平行な直線に垂直かつマーカが配置された平面に平行な直線に対する傾きと一致させた場合の投影画像を、投影画像取得部１０６が取得した投影画像の傾きを補正して取得する。例えば、補正部１０７は、上記のそれぞれの傾きを示す角度を取得して、投影画像を、この取得した角度が一致するよう、この投影画像が貼付される撮像面の法線や、この投影画像の法線を回転軸として回転させるようにする。なお、上記における方向等の一致や、方向や面が平行となること等は、マーカ撮影画像内におけるマーカの位置とマーカ撮影画像の中心とのずれや、投影方向と方向情報が示す方向とのずれ等に伴って発生する差異程度のばらつきを含むものであっても良い。
【００６６】
なお、補正部１０７による投影画像の傾きを補正する処理の具体例については後述する。
【００６７】
また、補正部１０７は、例えば、投影画像に対応する距離関連情報を更に用いて、投影画像のサイズを補正する。ここでのサイズとは、画像の大きさである。補正部１０７は、例えば、投影画像のサイズを、マーカ撮影画像に適合したサイズに補正する。ここでのサイズの変更は、縦横比が一定となるサイズの変更でなくても良い。また、投影画像の変型等を含むサイズの変更であっても良い。
【００６８】
補正部１０７は、例えば、投影画像取得部１０６が取得した投影画像を用いて、当該投影画像に投影した対象物を、マーカの配置されている位置に配置して、カメラ１０２の撮像面へ投影した場合の投影画像を取得しても良い。例えば、投影画像を投影する際の視点から対象物の位置に投影した画像を、マーカ位置に配置してカメラ１０２の撮像面へ投影した場合のサイズとなるよう、投影画像のサイズを補正する。投影画像を投影する際の視点とは、例えば、投影の対象物を撮影するカメラの位置（例えば、レンズの実質的な中心）や、立体モデルである対象物をレンダリングする際の仮想の視点やカメラ位置である。例えば、補正部１０７は、投影画像取得部１０６が取得した投影画像を、この投影画像の投影面に平行であって、この投影画像に投影された対象物の中心位置を通る面に、投影時の視点から投影した場合に得られる画像を取得する。そして、この画像を、カメラ座標系の、カメラ１０２の中心とマーカの中心とを結ぶ直線に交わるスクリーンに投影して、サイズを変更した画像を取得する。ここでのスクリーンとは、例えば、カメラ１０２の撮像面である。
【００６９】
また、補正部１０７は、投影の対象物からこの対象物の投影画像を投影する際の視点までの距離とこの視点から投影面までの距離との比である第一の比、およびマーカからカメラ１０２までの距離とカメラ１０２からカメラ１０２の撮像面までの距離との比である第二の比を用いて、投影画像を補正しても良い。例えば、補正部１０７は、上記の比を用いて、投影画像を投影時と同じ視点から対象物が配置されていた位置に投影した画像を、マーカの位置に配置して、カメラ１０２の撮像面に補正した場合に得られる画像のサイズと同じサイズとなるよう、投影画像のサイズを補正しても良い。
なお、補正部１０７によるサイズを変更する処理の具体例については後述する。
【００７０】
出力部１０８は、投影画像取得部１０６が取得した投影画像を出力する。出力部１０８は、投影画像取得部１０６が取得した投影画像を直接出力する代わりに、補正部１０７が補正した投影画像を出力するようにしてもよい。また、出力部１０８は、投影画像を、マーカ撮影画像に重畳して出力するようにしてもよい。例えば、出力部１０８は、マーカ撮影画像が投影画像の背景となるよう、投影画像とマーカ撮影画像とを重畳して出力しても良い。なお、出力部１０８が、投影画像とマーカ撮影画像とを、どのような合成モード等で重畳して出力しても良い。また、出力部１０８は、重畳した画像、あるいは重畳の前後に、予め指定された画像処理を行うようにしても良い。例えば、マーカ撮影画像のマーカ部分を削除したり、予め指定された画像等で埋め込んだ画像を、投影画像と重畳して出力しても良い。
【００７１】
ここでの出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。例えば、出力部１０８は、カメラ１０２の図示しない撮影内容を表示するためのモニタ画面等に、投影画像を出力しても良い。
【００７２】
出力部１０８は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部１０８は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００７３】
次に、画像処理装置１の動作の一例について図２のフローチャートを用いて説明する。
【００７４】
（ステップＳ１０１）カメラ１０２は、マーカ撮影画像を取得する。
【００７５】
（ステップＳ１０２）撮影画像受付部１０１は、ステップＳ１０１で取得されたマーカ撮影画像を受け付ける。
【００７６】
（ステップＳ１０３）マーカ認識部１０３は、マーカ撮影画像についてマーカを認識して、マーカ関連情報を取得する。
【００７７】
（ステップＳ１０４）位置関係情報取得手段１０５１は、ステップＳ１０３で認識したマーカと、マーカ撮影画像を撮影したカメラ１０２の位置との関係を示す位置関係情報を取得する。
【００７８】
（ステップＳ１０５）方向取得手段１０５２は、ステップＳ１０４で取得した位置関係情報を用いて、カメラ１０２の回転角を取得する。
【００７９】
（ステップＳ１０６）方向取得手段１０５２は、ステップＳ１０４で取得した位置関係情報を用いて、カメラ１０２の位置を示す情報を取得する。
【００８０】
（ステップＳ１０７）方向取得手段１０５２は、ステップＳ１０５で取得した回転角と、ステップＳ１０６で取得した位置とを用いて、方向情報であるカメラ１０２の伏角と方位角とを取得する。
【００８１】
（ステップＳ１０８）投影画像取得部１０６は、ステップＳ１０７で取得した伏角と方位角とが一致する投影方向情報と対応付けられた投影画像を取得する。
【００８２】
（ステップＳ１０９）補正部１０７は、ステップＳ１０８で取得した投影画像の補正を行う。この補正の処理の詳細については後述する。
【００８３】
（ステップＳ１１０）補正部１０７は、ステップＳ１０９で補正した投影画像を、ステップＳ１０３で取得したマーカ撮影画像と重畳して出力する。そして、ステップＳ１０１に戻る。
【００８４】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００８５】
図３は、画像処理装置１における投影画像取得部１０６が取得した投影画像を補正する処理の第一の例について示す図である。この補正処理を、以下、第一の補正処理と呼ぶ。この処理は、図２のステップＳ１０９の処理に相当する処理である。
【００８６】
（ステップＳ２０１）補正部１０７は、３ＤＣＧの描画に用いるライブラリのカメラと、マーカ撮影画像を撮影するカメラ１０２、即ちＡＲに利用するカメラ１０２の方向とを一致させる。
【００８７】
（ステップＳ２０２）補正部１０７は、３ＤＣＧを描画するためのカメラ位置を、マーカ撮影画像を撮影するカメラ１０２の位置に設定する。
【００８８】
（ステップＳ２０３）補正部１０７は、投影画像取得部１０６が取得した投影画像を、投影の対象となった対象物が配置されていた位置に投影させるための平面である拡大撮像面を示す３Ｄモデルを設定する。具体的には、拡大撮像面を示す３Ｄモデルである平面のサイズや、この平面のｘ軸を回転軸とした回転角や、ｚ軸を回転軸とした回転角を設定する。このとき、３Ｄモデルを基準として設定される座標系と、マーカ座標系とを一致させる。３Ｄモデルを基準として設定される座標系は、オブジェクト座標系、もしくはそれに相当するものと考えても良い。なお、拡大撮像面については、後述する。
【００８９】
（ステップＳ２０４）補正部１０７は、拡大撮像面の３Ｄモデルに、投影画像取得部１０６が取得した投影画像をテクスチャとして貼付して、３ＤＣＧの描画、即ちレンダリングを行う。そして上位の処理にリターンする。
【００９０】
図４は、画像処理装置１における投影画像取得部１０６が取得した投影画像を補正する処理の第二の例について示す図である。この補正処理を、以下、第二の補正処理と呼ぶ。この処理は、図２のステップＳ１０９の処理に相当する処理である。
【００９１】
（ステップＳ３０１）補正部１０７は、投影画像取得時の投影面の水平右向きベクトル、および垂直下向きベクトルを取得し、拡大撮像面の四隅の位置ベクトルを取得する。
【００９２】
（ステップＳ３０２）補正部１０７は、拡大撮像面の四隅をスクリーン上へ投影する際の投射位置を求める。このとき、拡大撮像面を基準として設定される座標系と、マーカ座標系とを一致させるものとする。拡大撮像面を基準として設定される座標系は、オブジェクト座標系、もしくはそれに相当するものと考えても良い。
【００９３】
なお、ここでのスクリーンとは、例えば、ＡＲの際に投影画像を配置して出力する面である。スクリーンは、例えば、カメラ１０２の撮像面、またはカメラ１０２とマーカとの位置関係が、カメラ１０２の撮像面と同等である。また、スクリーンは、マーカ撮影画像またはマーカ撮影画像に相当する面と考えても良い。
【００９４】
（ステップＳ３０３）補正部１０７は、投影画像のスクリーンに貼付する際の回転角を取得する。
【００９５】
（ステップＳ３０４）補正部１０７は、オブジェクト中心を始点とした撮像面の垂直下向きベクトルを、スクリーンに投影して得られる単位ベクトルを取得する。
【００９６】
（ステップＳ３０５）補正部１０７は、ステップＳ３０４で取得した単位ベクトルを、スクリーン上でカメラから見て左にπ／２回転させたベクトルを取得する。
【００９７】
（ステップＳ３０６）補正部１０７は、ステップＳ３０４で取得した単位ベクトルを用いて、貼付する投影画像の幅を取得する。
【００９８】
（ステップＳ３０７）補正部１０７は、ステップＳ３０５で取得したベクトルを用いて、貼付する投影画像の高さを取得する。
【００９９】
（ステップＳ３０８）補正部１０７は、スクリーンにおける補正した投影画像を貼り付ける位置を取得する。この位置は、投影画像の中央の貼り付け位置であり、例えば、スクリーン座標系の座標で示される。
【０１００】
（ステップＳ３０９）補正部１０８は、投影画像を、ステップＳ３０６およびステップＳ３０７で取得したサイズに伸縮し、ステップＳ３０３で取得した回転角で回転させ、ステップＳ３０８で取得した貼り付け位置に貼り付ける。そして、上位の処理にリターンする。
【０１０１】
図５は、画像処理装置１における投影画像取得部１０６が取得した投影画像を補正する処理の第三の例について示す図である。この補正処理を、以下、第三の補正処理と呼ぶ。この処理は、図２のステップＳ１０９の処理に相当する処理である。
【０１０２】
（ステップＳ４０１）補正部１０７は、ステップＳ１０８で取得した投影画像を、スクリーンに貼付する場合の、回転角を取得する。
【０１０３】
（ステップＳ４０２）補正部１０７は、スクリーンにおける画像を貼り付ける位置を取得する。この位置は、投影画像の中央の貼り付け位置であり、例えば、スクリーン座標系の座標で示される。
【０１０４】
（ステップＳ４０３）補正部１０７は、貼付する投影画像のサイズである幅と高さとを取得する。例えば、補正部１０７は、投影画像を投影する際の焦点距離と、投影画像を投影する際の視点と対象物との間の距離との比と、カメラ１０２の焦点距離とマーカとカメラ１０２の位置との間の距離との比との関係を用いて、貼付する投影画像のサイズである幅と高さとを取得する。
【０１０５】
（ステップＳ４０４）補正部１０７は、ステップＳ１０８で取得した投影画像を、ステップＳ４０４で取得したサイズに伸縮し、ステップＳ４０２で取得した回転角で回転させ、ステップＳ４０２で取得した位置に貼り付ける。そして上位の処理にリターンする。
【０１０６】
以下、本実施の形態における画像処理装置１の具体的な動作の一例について説明する。なお、以下においては、ベクトルをアンダーラインで示す場合がある。例えば、ベクトルＸは、Ｘと表す場合がある。また、数式や図面等においては、ベクトルは太字で示す場合がある。
【０１０７】
ここでは、実物体を異なる方向からカメラで撮影した画像が、投影画像として、投影画像格納部１００に格納されている場合を例に挙げて説明する。ただし、上述したように、３Ｄモデルを異なる方向から見た画像をレンダリングして得られた画像が投影画像として格納されていても良い。ここでは、投影画像を撮影するために用いるカメラを、撮影時カメラと呼ぶ場合がある。この撮影時カメラの位置は、対象物である３Ｄモデルをレンダリングする場合の視点や仮想のカメラ位置に相当すると考えて良い。また、ここでの対象物の投影面は、撮影時カメラの撮像面であるとする。
【０１０８】
画像処理装置１は、ここでは、一例として、いわゆるスマートフォンと呼ばれる携帯情報端末である場合を例に挙げて説明する。ただし、画像処理装置１は、タブレット端末や、カメラ付き携帯電話等の携帯情報端末であってもよいし、コンピュータであってもよい。また、通信機能付きカメラ等であっても良い。
【０１０９】
Ａ．投影画像の取得
１）投影画像を取得する構成
実物体を撮影する場合の撮影システムは、例えば、図示しない撮影装置（ここでは具体的にはカメラ）、編集装置、画像格納装置で構成される。なお、３ＤＣＧモデルを描画する場合は、図示しない３ＤＣＧ描画装置、編集装置、画像格納装置で構成される。画像格納装置は、画像処理装置１からアクセス可能な装置であることが好ましい。ここでは、画像格納装置が、画像処理装置１の投影画像格納部１００である場合について説明する。ただし、画像格納装置は、画像処理装置１に接続可能な外部記憶装置（ＨＤＤやＦｌａｓｈメモリ）等でもよい。また、画像格納装置は、画像処理装置１からアクセス可能なインターネット上のサーバでもよい。
【０１１０】
２）対象物の座標系
以下、対象物の座標系を定義する。なお、対象物の座標系を、ここではオブジェクト座標系と呼ぶ。
【０１１１】
図６は、オブジェクト座標系を説明するための図である。オブジェクト座標系は対象物６ａを置いた水平面をｘｙ平面６ｂとし、高さ方向をｚ軸とする右手系で、対象物の投影画像において中央に投影させたい目標点をオブジェクト中心６ｃと呼び、ｚ軸はこの目標物の中心を通るように定義し、このｚ軸が水平面と交わる点を原点とする。また、オブジェクト中心６ｃとカメラの位置６ｈを結ぶ直線とｚ軸のなす角を伏角、カメラの位置６ｈをｘｙ平面におろした点と原点を結ぶ直線と、＋ｙ軸とのなす角を方位角ということとする。なお、カメラの位置６ｈは、レンダリングで投影画像を取得する際の視点等に相当する。
【０１１２】
３）オブジェクトの撮影方法
ＡＲで表示させる対象物の撮影方法の一例を以下に説明する。
【０１１３】
撮影では、撮影対象である対象物６ａを水平面６ｂに置き、撮影時カメラ（図示せず）の撮像面６ｄの中心６ｅを通過するこの面に垂直な軸、即ち撮影時カメラの光軸６ｆが、必ずオブジェクト中心６ｃを通るように撮影時カメラを設置する。撮影時カメラの撮像面６ｄが、ここでは投影面に相当する。また、撮像面で撮影される画像が、投影画像に相当する。撮影時カメラの撮像面６ｄは通常、長方形であり、撮像面６ｄの上下辺６ｇは必ず水平面に平行になるように撮影時カメラを設置する。これにより撮像面の左右辺に平行で上向きのベクトルは、光軸とｚ軸でできる平面に含まれる。
【０１１４】
オブジェクト中心からｘｙ平面までの距離をε、撮影時カメラの位置６ｈからオブジェクト中心６ｃまでの距離をＤ、撮影時カメラの位置６ｈから撮像面までの距離をＦとする。撮影はε、Ｆ、Ｄを固定して必要な枚数撮影する。例えば、ある伏角に固定し、方位角を３度毎変更して撮影すると１２０枚の投影画像が得られる。また、例えば、伏角を８０度から３０度まで１０度毎にずらし、方位角を３度毎ずらして対象物６ａを撮影し、さらに真上から１枚撮影すると７２１枚の投影画像が得られる。
【０１１５】
対象物６ａとして実物体を撮影する際、投影画像を一枚一枚撮影するのではなく、オブジェクトを定速で回転する回転台に乗せてビデオカメラで撮影して動画像を生成し、後にこの動画像からある時間間隔で画像を抜き出すことで投影画像を生成してもよい。
【０１１６】
また、上記では実物体を撮影する場合について述べたが、ＡＲの対象が仮想物体の場合は、レンダリングの視点を変更しながら、上記と同様の設定で投影画像または動画像を生成する。
【０１１７】
４）画像の編集と保存
撮影時に対象物を青など同一色の面等で囲んで撮影し、撮影後に、投影画像から、この同一色を背景色として選択して削除することで、オブジェクトの背景を消去した投影画像を生成し保存する。この編集により、より臨場感のあるＡＲが可能となる。
【０１１８】
撮影された画像が動画像の場合は、動画像のまま背景を透過した後、必要な枚数の画像を抜き出す。６０秒で１回転する動画の場合、０．５秒毎に画像を抜き取ると、方位角３度毎の画像１２０枚が得られる。
【０１１９】
ただし、画像処理装置１が動画像の連続したフレーム画像を受付可能なものである場合、抜き取り作業を行わず、一般的な動画圧縮形式で圧縮保存しておくだけでよい。これによって画像を一枚一枚保存しておくよりもデータが圧縮され、データ量を低く抑えられる。
【０１２０】
上記のように取得した各投影画像は、撮影時の方位角と伏角とを有する投影方向情報と、対象物の識別情報である対象物識別情報と対応づけられて投影画像格納部１００に蓄積される。具体的には、投影画像と、投影方向情報と、対象物識別情報とを有する１または２以上の投影画像関連情報が、投影画像格納部１００に蓄積される。対象物識別情報は、例えば「ＯＢＪ０１」であるとする。また、ここでは、これらの投影画像を取得した際のオブジェクト中心からｘｙ平面までの距離ε、撮影時カメラの位置６ｈからオブジェクト中心６ｃまでの距離Ｄ、撮像面までの距離Ｆで構成される距離関連情報が、対象物識別情報と対応づけられて投影画像格納部１００に蓄積される。
【０１２１】
図７は、投影画像格納部１００に格納された投影画像関連情報を管理する投影画像管理情報（図７（ａ））、投影画像の一例を示す図（図７（ｂ））、および距離関連情報を管理する距離関連情報管理情報を示す図（図７（ｃ））である。投影画像管理情報は、対象物識別情報を示す「対象物ＩＤ」、方位角を示す「方位角」、伏角を示す「伏角」、投影画像のファイル名を示す「投影画像」という属性を有している。「方位角」および「伏角」の組は、ここでは、投影画像と対応付けられた投影方向情報である。距離関連情報管理情報は、「対象物ＩＤ」と、投影画像を取得した際のオブジェクト中心からｘｙ平面までの距離を示す「距離ε」、撮影時カメラの位置６ｈからオブジェクト中心６ｃまでの距離を示す「距離Ｄ」、撮影時カメラの位置６ｈから撮像面までの距離を示す「距離Ｆ」という属性を有している。なお、ここでは、Ｇ１，Ｋ１，Ｄ１，Ｆ１，ε１等は、それぞれ任意の数値を示しているものとする。
【０１２２】
Ｂ．ＡＲ処理
１）ＡＲの座標系
図８は、ＡＲの座標系について説明するための図である。以下、図８を用いてＡＲの座標系を定義する。この具体例において説明するマーカ型ＡＲで使われる座標系は、マーカ座標系、スクリーン座標系、カメラ座標系である。マーカ座標系はマーカの中心を原点Ｏｍとし、マーカを正面から見たときの右向きをｘｍ軸、上向きをｙｍ軸、手前向きをｚｍ軸とした右手系の座標系である。スクリーン座標系はＡＲの画像を表示する投影面（ここでは、スクリーンと呼ぶ）８１の左上を原点Ｏｓとし、右向きをｘｓ軸、下向きをｙｓ軸とした２次元座標系である。投影面は、例えば、マーカ撮影画像の撮像面（投影面）である。ただし、マーカ撮影画像の撮像面でなくてもよい。カメラ座標系はマーカを撮影するカメラ１０２の位置を原点Ｏｃとし、右向きをｘｃ軸、下向きをｙｃ軸、奥行き方向をｚｃ軸とする右手系座標系である。なお、ここでは、マーカを撮影するカメラ１０２の位置は、ＡＲ時の視点（あるいは、仮想のカメラ位置）に相当すると考えられること、およびカメラ１０２が撮影したマーカ撮影画像に投影画像を重畳したＡＲの画像を出力することも可能であることから、ここでは、カメラ１０２を説明の便宜上、ＡＲ時カメラ１０２と呼ぶ場合がある。
【０１２３】
２）オブジェクトの描画方法
３ＤＣＧを用いる従来からの一般的なマーカ型ＡＲでは、マーカの中心がオブジェクト座標系の原点と一致するように３Ｄモデルである対象物を描画する。対象物上の各点は、その点とＡＲ時カメラ１０２の位置とを結ぶ直線と、ＡＲを出力するスクリーンとの交点に描画される。
【０１２４】
本実施の形態においては、マーカの中心がオブジェクト座標系の原点と一致するように対象物を描画することとする。ただしオブジェクトの３Ｄモデルがないため、事前に撮影した投影画像の中から適切な投影画像を選択し、これを補正してスクリーン上に描画する。
【０１２５】
本実施の形態では、ＡＲ時カメラ１０２の位置とオブジェクト中心８ａとを結ぶ直線ｂを対象物への視線と呼び、この視線上に撮影時カメラが位置している際に撮影された投影画像、即ち、この視線に対応する方位角と伏角と対応づけられた投影画像を選択することとする。
【０１２６】
ＡＲ時カメラ１０２の位置からオブジェクト中心までの距離をｄ、撮影時カメラの位置からオブジェクト中心までの距離を上述したようにＤとするとき、オブジェクトへの視線がＡＲ時カメラ１０２の光軸と一致している場合を考える。ＡＲ時カメラ１０２の光軸は、スクリーン中心を通過してスクリーンに垂直な軸である。ＡＲ時にユーザが、ＡＲ時カメラ１０２で対象物を注視すると、ほぼこれらの軸は一致する。この場合ｄ＝Ｄならば画像の拡大・縮小・回転を適切に行うことで正しい姿（ビュー）の対象物の画像を描画できる。
【０１２７】
対象物への視線がＡＲ時カメラ１０２の光軸と一致していても、ｄ＝Ｄでない場合、即ち、撮影時カメラとオブジェクト中心までの距離と、ＡＲ時カメラとマーカまでの距離とが異なるのときは、正しい姿（ビュー）の画像を描画することはできない。また、対象物への視線がＡＲ時カメラ１０２の光軸と一致していない場合、すなわちユーザが背景などオブジェクト以外の点を見ようとしてＡＲ時カメラを動かした場合、正しい見えの画像を描画できない。視線と光軸が一致しないような場合、このような問題がある。しかし、このような場合ユーザはオブジェクトを注視していないため、わずかな描画画像の不正確さは感知されず十分無視されうる。
【０１２８】
２）マーカ撮影
ユーザがＡＲの画像を出力するために、ＡＲ時カメラ１０２を用いてマーカを撮影したとする。このＡＲ時カメラ１０２は、画像処理装置１に内蔵されたものであってもよいし、画像処理装置１と無線や有線により接続されたものであってもよい。ここで撮影した画像は、動画像であるとし、撮影された各フレーム画像が、マーカ撮影画像として、順次、撮影画像受付部１０１に出力されるものとする。
【０１２９】
撮影画像受付部１０１は、ＡＲ時カメラ１０２から送信されるマーカ撮影画像を受け付ける。
【０１３０】
図９は、ＡＲ時カメラ１０２で撮影したマーカ９０の斜視図（図９（ａ））、およびマーカを撮影したマーカ撮影画像を示す図（図９（ｂ））を示す図である。ここでは、マーカ９０はシート９１上に印刷されているものとする。
【０１３１】
３）マーカ認識および座標変換行列の取得
マーカ認識部１０３は、マーカ撮影画像に投影されたマーカ９０を認識する。そして、位置関係情報取得手段１０５１は、マーカ認識部１０３によるマーカ９０の認識結果を用いて、マーカ認識部１０３が認識したマーカ９０の位置と、マーカ撮影画像を撮影したＡＲ時カメラ１０２の位置との関係を示す位置関係情報を取得する。ここでは、位置関係情報として、座標変換行列を取得する。座標変換行列の取得は、ここでは、上述した非特許文献１に示された処理により行う。なお、マーカ撮影画像から、マーカ認識部１０３によりマーカを認識してマーカの４隅の座標等を取得する処理と、このマーカの認識結果を用いて、マーカ認識部１０３が座標変換行列を取得する処理は、例えば、ARToolKitと呼ばれるソフトウェアライブラリを用いることで実現可能である。ARToolKitについては、以下の非特許文献３を参照されたい。「非特許文献３："ARToolKit Home Page"、［online］、［平成２４年９月１８日検索］、インターネット<URL：http://www.hitl.washington.edu/artoolkit/>」。
【０１３２】
マーカ座標系で見たある点Ｘｍ＝（Ｘｍ、Ｙｍ、Ｚｍ）Ｔ（Ｔは転置）をカメラ座標系で見た座標表現Ｘｃ＝（Ｘｃ、Ｙｃ、Ｚｃ）Ｔ
に座標変換する式は以下で与えられる。
【０１３３】
【数１】
2014071850.tif 000003
なお、ここで、Ｒ３×３を回転行列、Ｔｃを並進ベクトル、Ｔｃｍを座標変換行列と呼ぶ。
【０１３４】
カメラ座標系で見たマーカ座標系のｘ軸、ｙ軸、ｚ軸向きの単位ベクトルをＶ１、Ｖ２、Ｖ３とする。このとき、次式が成り立つ。
【数２】
2014071850.tif 000004
【０１３５】
なぜなら、例えばマーカ座標系で見たベクトル（１、０、０）Ｔは、上記の座標変換行列Ｔｃｍを用いてカメラ座標系で見たベクトルに変換すると（ｒ１１、ｒ２１、ｒ３１）Ｔであり、これはＶ１に他ならない。
【０１３６】
４）位置関係情報の取得処理
４−１）回転行列のオイラー角表現
上述したＡＲの回転行列Ｒ３×３をｚ?ｙ?ｘ系のオイラー角で表現する。ただし、ここでは回転順序はｚ→ｙ→ｘ、回転角はθｚ、θｙ、θｘとする。空間中に固定された点のマーカ座標系で見た座標をＡｍ、カメラ座標系で見た座標をＡｃとすると、これらの間には以下の関係がある。
【数３】
2014071850.tif 000005
【０１３７】
よって、オイラー角は、後述する式（３１）、式（３２）、式（３３）より、
【数４】
2014071850.tif 000006
より求められる。オイラー角の詳細、および上記のオイラー角を求める処理の詳細については、後述する。
【０１３８】
なお、ここで｜θｙ｜＜π／２と仮定している。マーカ型ＡＲでは、通常、マーカ裏からの画像表示を行わないため、この仮定が成り立つ。また、マーカを真横から見た場合、いわゆるジンバルロックを生じるが、このような場合マーカを認識できないため、ジンバルロックが生じる場合についても、ここでは考えないものとする。ジンバルロックについては後述する。
【０１３９】
４−２）マーカ座標系で見たカメラ位置座標
座標変換行列は式（１）より
【数５】
2014071850.tif 000007
と表すことができる。
【０１４０】
よってカメラ座標系からマーカ座標系への変換は、
【数６】
2014071850.tif 000008
と表すことができる。これより、カメラ座標系で見たＡＲ時カメラ１０２のカメラ位置Ｏｃ＝（０、０、０）を、マーカ座標系で見たときの位置ベクトルは、
【数７】
2014071850.tif 000009
で求められる。
【０１４１】
このため、方向取得手段１０５１は、この式を用いることで、カメラ座標系で見たカメラ位置座標を取得することができる。ただし、この式ではＲ３×３の逆行列を求め、さらに行列Ｒ３×３?１とベクトルＴｃの乗算を行う必要があり、計算量が多い。そこでＲ３×３＝Ｒｘ（?θｘ）Ｒｙ（?θｙ）Ｒｚ（?θｚ）の関係から、
【数８】
2014071850.tif 000010
とした式を用いて、方向取得手段１０５１は、カメラ座標系で見たカメラ位置座標を取得する。この式を用いることで、１２回の乗算でカメラ位置座標を求めることができる。
【０１４２】
４−３）マーカ座標系で見たカメラの伏角および方位角
方向取得手段１０５２は、カメラ位置座標を用いて、マーカ座標系で見たＡＲ時カメラ１０２の方向情報である伏角と方位角とを取得する。マーカ座標系で見たオブジェクト中心を（０、０、ε）Ｔ、ＡＲ時カメラ１０２の位置ベクトルをＣｍ＝（Ｃｍｘ、Ｃｍｙ、Ｃｍｚ）Ｔとしたとき、対象物への視線とマーカ座標系の＋ｚ軸とのなす角を伏角φ（ｄｉｐ）、オブジェクトへの視線をマーカ座標系のｘｙ平面に下した直線と?ｙ軸のなす角を方位角ψ（ａｚ）（時計回りを正）は、以下で求められる。
【０１４３】
【数９】
2014071850.tif 000011
【０１４４】
５）投影画像の選択
投影画像取得部１０６は、上記で取得した方向情報である伏角φおよび方位角ψに一致する投影方向情報と対応付けられた投影画像を、図７（ａ）に示した投影画像管理情報から取得する。ここでは、方向情報を構成する伏角φおよび方位角ψが示す方向に対して、最も近い方向を示す伏角と方位角との組と対応付けられた投影画像を取得する。
【０１４５】
例えば、投影画像取得部１０６は、図７（ａ）に示した投影画像管理情報のレコードの「対象物ＩＤ」が「ＯＢＪ０１」であるレコードから、方向情報取得部１０５が取得した方向情報の方位角ψに対する「方位角」の値の差の絶対値が最も小さく、方向情報取得部１０５が取得した方向情報の伏角φに対する「伏角」の値の差の絶対値が最も小さいレコードを検出し、検出したレコードの「投影画像」を取得する。例えば、ここでは、このような図７（ａ）に示した投影画像管理情報のレコードにおいて、「投影画像」が「０００５．ｐｎｇ」であるレコードの「方位角」の値Ｇ５と方位角ψとの差の絶対値が他のレコードよりも最も小さく、「投影画像」が「０００５．ｐｎｇ」であるレコードの「伏角」の値Ｋ５と伏角φとの値の差の絶対値が他のレコードよりも最も小さかったとする。投影画像取得部１０６は、このレコードの「投影画像」である「０００５．ｐｎｇ」を取得したとする。
【０１４６】
なお、投影画像取得部１０６は、伏角φが予め指定された値δより小さい場合は、真上から撮影された投影画像を選択するようにしても良い。予め指定された値δは、例えば、投影画像に対応付けられている最も値の小さい伏角の２分の１の値である。
【０１４７】
６）補正処理
以下、補正部１０７が行う補正処理について説明するが、ここでは、まず、拡大撮像面について説明する。
【０１４８】
６−１）拡大撮像面
図１０は、補正部１０７による補正処理を説明するための模式図である。投影画像格納部１００に格納されている投影画像の投影面である撮像面１０ａに平行で、投影のオブジェクト中心１０ｂを通る面を考え、対象物の撮影時の撮影時カメラの位置１０ｃからこの面に投射した撮像面を拡大撮像面１０ｄと呼ぶこととする。拡大撮像面に投影された投影画像は、例えば、実寸サイズの対象物の投影画像となる。なお、拡大撮像面に投影された投影画像は、正確には、視点から見える対象物の表面で、拡大撮像面と交わる点については、実寸表示となるが、拡大撮像面よりも手前のものは、実寸よりも大きく、奥のものは実寸よりも小さく表示される。ただし、この投影画像は、対象物を等倍で撮影した画像に相当すると考えられることから、ここでは、実寸サイズであると考える。
【０１４９】
ここでは、補正部１０７は、以下に示すように、原点が１０ｅであるＡＲ時カメラ１０２のカメラ座標系で見た拡大撮像面の四隅Ｓ１〜Ｓ４を求める。この処理は、例えば、ステップＳ３０１に相当する処理である。
【０１５０】
ＡＲ時カメラ１０２のカメラ座標系の原点を原点１０ｅとした場合、オブジェクト座標系で見たオブジェクト中心を（０、０、ε）Ｔとし、ＡＲ時カメラ１０２のカメラ座標系で見たオブジェクト中心の座標をＴ＝（Ｔｘ，Ｔｙ，Ｔｚ）Ｔとすると、オブジェクト中心の座標Ｔは、
【数１０】
2014071850.tif 000012
である。
【０１５１】
撮像面の水平右向きベクトルＰは、対象物の撮影時の撮影時カメラの光軸（またはＡＲ時の対象物への視線）１０ｈおよびＶ３でできる平面１０ｇに垂直である。光軸（または対象物への視線）はＴと平行であることから、
【数１１】
2014071850.tif 000013
である。ここで×は外積である。
【０１５２】
また、撮像面の垂直下向きベクトルＱは、ＴおよびＰに垂直であることから、
【数１２】
2014071850.tif 000014
である。
【０１５３】
以上より拡大撮像面の四隅Ｓ１〜Ｓ４は、以下のように表される
【数１３】
2014071850.tif 000015
ここでＷｐ、Ｈｐは撮像面の幅および高さ、
【数１４】
2014071850.tif 000016
である。
【０１５４】
６−２）拡大撮像面のスクリーン座標系への投影
補正部１０７は、拡大撮像面の四隅をスクリーンに投影したときの四角形の頂点座標を求める。この処理は、例えば、ステップＳ３０２に相当する処理である。
【０１５５】
拡大撮像面の四隅とＡＲのためにマーカを撮影するＡＲ時カメラ１０２の位置を結ぶ直線がスクリーンと交わる点をスクリーン座標系の座標で表したものをそれぞれｓ１、ｓ２、ｓ３、ｓ４とすると、スクリーンと交わる点の座標は、
【数１５】
2014071850.tif 000017
で与えられる。ここでＷｄとＨｄはスクリーンの幅と高さであるとする。
【０１５６】
７）第一の補正処理
以下、補正部１０７が行う第一の補正処理について説明する。この補正処理は、図３のフローチャートに相当する処理である。
【０１５７】
補正部１０７は、拡大撮像面をスクリーンに投影して画像を描画する。すなわちスクリーン上のｓ１、ｓ２、ｓ３、ｓ４で囲まれた領域のすべての点について、この点とＡＲ時カメラの位置を結ぶ直線が拡大撮像面と交わる点を計算し、その画素値をスクリーン上の点の画素値とする。
【０１５８】
この描画は、一般的な３ＤＣＧ描画ライブラリ（３Ｄ computer graphics rendering library、３ＤＲＬ）に実装される機能を利用することで、簡単に実現できる。ＡＲ時に利用できる３ＤＲＬとしては、例えば、上述した非特許文献３に示されているＡＲＴｏｏｌＫｉｔに含まれているＯｐｅｎＧＬや、Ｔｈｒｅｅ．ｊｓ等がある。Ｔｈｒｅｅ．ｊｓについては、以下の非特許文献４を参照されたい。「非特許文献４："three.js-JavaScript 3D library"、［online］、［平成２４年９月１８日検索］、インターネット<URL：http://mrdoob.github.com/three.js/>」
【０１５９】
これらは任意の３Ｄモデルの表面に指定のテクスチャ画像を貼付した３ＤＣＧを描画する機能（いわゆるテクスチャ貼付）を有している。マーカ座標系を３ＤＲＬの基準となる座標系（以下、基準座標系と呼ぶ）と一致させるとして、まず３ＤＲＬのカメラをＡＲ時カメラ１０２と同じ位置に、同じ姿勢となるように設定し、次に拡大撮像面を３Ｄモデルとして設定し、この平面に選択した投影画像をテクスチャとして貼付し、最後に３ＤＣＧを描画すれば、３ＤＲＬが上述の計算を実行する。以下では、３ＤＲＬの描画の基準座標系をマーカ座標系に一致させ、３ＤＲＬのカメラをＡＲ時カメラ１０２に重なるように３ＤＲＬのカメラの回転角および並進ベクトルを計算する。
【０１６０】
図１１は、３ＤＲＬのカメラの座標系を示す模式図（図１１（ａ））、および、カメラ座標系と基準座標系との関係を示す模式図（図１１（ｂ））である。ここでは、３ＤＲＬの座標系が右手系であると仮定する。また、図４（ａ）に示すように、３ＤＲＬのカメラ座標系を定義する。この座標系の原点は３ＤＲＬのカメラの位置であり、光軸に平行で視線手前向きを＋ｚ軸、右向きを＋ｘ軸、上向き（カメラの頭）を＋ｙ軸とする。このように定義すると、真正面からこのカメラでマーカを見たとき、この座標系とマーカ座標系の各軸は平行になり同じ向きを向く。
【０１６１】
次に３ＤＲＬの初期状態（デフォルト）でのカメラ座標系と基準座標系の変換式を以下のように定義する。
【数１６】
2014071850.tif 000018
【０１６２】
ここでＸ?ｃは３ＤＲＬのカメラ座標系で表現した任意の点の位置ベクトル、Ｘ?はその基準座標系表現、Ｒ?は回転行列、Ｔ?は並進ベクトルである。
【０１６３】
次に、図４（ｂ）に示すように、３ＤＲＬのカメラとＡＲ時カメラ１０２について、それぞれの位置、光軸（視線の向き）、カメラの上向きを合わせたときの両カメラの座標系間の変換行列を定義する。ＡＲ時カメラ１０２のカメラ座標系は、光軸に平行で視線奥向きを＋ｚ軸、右向きを＋ｘ軸、下向きを＋ｙ軸としているため、上で定義した３ＤＲＬのカメラ座標系とはｙ軸とｚ軸が逆を向いている。したがって、Ｘ?ｃを３ＤＲＬのカメラ座標系で表現した任意の点の位置ベクトル、ＸｃをＡＲのカメラ座標系での表現とするとき、
【数１７】
2014071850.tif 000019
が成り立つ。このＲｘ（π）が、３ＤＲＬのカメラ座標系とＡＲ時カメラ１０２のカメラ座標系の変換行列である。
【０１６４】
次に３ＤＲＬのカメラ座標系とマーカ座標系の変換式を求める。ＡＲのカメラ座標系とマーカ座標系の間には上述したような式（６）のような関係がある。この式に上記の式（１７）を代入すると、
【数１８】
2014071850.tif 000020
が得られる。
【０１６５】
マーカ座標系と３ＤＲＬの基準座標系を一致させることからＸｍ＝Ｘ?を用いると、
【数１９】
2014071850.tif 000021
が言える。この式と上記の式（１６）との比較より、３ＤＲＬのカメラのデフォルト時からの回転角は、
【数２０】
2014071850.tif 000022
並進ベクトルは、
【数２１】
2014071850.tif 000023
より求められる。
【０１６６】
３ＤＲＬがＴｈｒｅｅ．ｊｓの場合、座標系は右手系で、デフォルトでカメラ座標系は基準座標系と重なっており、手前向き（視線の逆向き）にｚ軸、右向きにｘ軸、上向きにｙ軸があり、カメラは基準座標系の原点に位置している。したがって、
【数２２】
2014071850.tif 000024
であり、
【数２３】
2014071850.tif 000025
と表すことができる。
【０１６７】
以上より基準座標系に重なる座標系をｚ軸、ｙ軸、ｘ軸の順に、θｚ、θｙ、θｘ?π回転することでカメラ座標系となり、これと同じ回転をカメラに施すことでＴｈｒｅｅ．ｊｓのカメラはＡＲ時カメラ１０２と光軸方向が一致する。
【０１６８】
Ｔｈｒｅｅ．ｊｓのオイラー角はデフォルトでｘ?ｙ?ｚ系であるため、ｚ?ｙ?ｘ系に変更し、次にカメラのｘ軸回りの回転角パラメータをθｘ?π、ｙ軸回りの回転角パラメータをθｙ、ｚ軸回りの回転角パラメータをθｚに指定することでカメラを回転させられる（ステップＳ２０１）。
【０１６９】
次に並進ベクトルについて考える。Ｔｈｒｅｅ．ｊｓの並進ベクトルはＴ?＝ＯよりＲｘ（π）Ｔｃである。この表現はＴｈｒｅｅ．ｊｓのカメラ座標系で見たベクトルであり、基準座標系で見たベクトルで表現し直す必要がある。ただし、この並進移動はＴｈｒｅｅ．ｊｓと無関係にマーカ座標系で見たＡＲ時カメラ１０２の位置ベクトルに等しいため、上述した式（７）のＣｍを並進移動ベクトルとすればよい（ステップＳ２０２）。
【０１７０】
図１２は、拡大撮像面と撮像面との関係を示す模式図（図１２（ａ））、および拡大撮像面の回転角を説明するための模式図（図１２（ｂ））である。補正部１０７は、オブジェクト中心を通る拡大撮像面を示す平面１２ａを３Ｄモデルとして設定する（ステップＳ２０３）。モデルとして設定される平面１２ａのサイズは、図１２（ａ）に示すような対象物を撮影した撮影時カメラの位置１２ｃと、対象物の投影面である撮像面１２ｂと、光軸１２ｈとの関係より、幅ＷｐＤ／Ｆ、高さＨｐＤ／Ｆである。また平面１２ａの回転角は、図１２（ｂ）より３ＤＲＬの基準座標系（マーカ座標系）のｘ軸回りにφ、ｚ軸回りにψとする。
【０１７１】
そして、補正部１０７は、この３Ｄモデルの拡大撮像面に、上記で取得した投影画像をテクスチャとして貼付した画像を作成する（ステップＳ２０４）。以上のように補正を行うことにより、ＡＲ時カメラ１０２から見た場合の対象物の画像を容易に描画して取得することができる。
【０１７２】
８）第二の補正処理
補正部１０７は、上記のような第一の補正処理を行う代わりに、以下のような第二の補正処理を行うようにしても良い。この補正処理は、第一の補正処理のような、３ＤＣＧ描画ライブラリを用いない近似手法であり、画像を縦横に拡大縮小および回転してスクリーンに直接貼付する方法である。以下、補正部１０７が行う第二の補正処理について説明する。この補正処理は、図４のフローチャートに相当する処理である。
【０１７３】
まず、上記のように、補正部１０７は、拡大撮像面の四隅の位置ベクトルを取得（ステップＳ３０１）し、拡大撮像面をスクリーンに投射する際の投射位置を取得（ステップＳ３０２）する。
【０１７４】
拡大撮像面の四隅を、スクリーンに投影したとき、その４点をつないだ四角形は長方形になるとは限らない。そこで四角形｛ｓ１、ｓ２、ｓ３、ｓ４｝にもっとも近い長方形の頂点を求める。
【０１７５】
まず長方形の傾きを考える。投影画像の撮像面においてオブジェクト座標系のｚ軸は、上述したような撮影方法より、必ず撮像面の左右辺に平行に投影される。ＡＲ時はオブジェクト座標系とマーカ座標系を一致させるため、マーカ座標系のｚ軸も撮像面の左右辺に平行に投影される。ここで、オブジェクトへの視線（ＡＲ時カメラ１０２の位置とオブジェクト中心を結ぶ直線）とマーカ座標系のｚ軸を含む平面を考え、この平面がスクリーンと交わってできる直線を考える。撮像面はオブジェクトの視線に垂直であるため、上記で定義した直線がスクリーンの左右辺と平行のときに限り、スクリーンに描画する画像の回転角を０としてよいことがわかる。そこで、このような直線を取得し、取得した直線とスクリーンのｙ軸とのなす角を、スクリーンに描画する画像の回転角として取得する。スクリーンのｙ軸は、例えば、スクリーンの左右辺と平行な直線やスクリーンの上下辺に垂直な直線である。上述した平面はＶ３を含むため、Ｖ３をスクリーンに投影したベクトルの傾きが上述した直線の傾きである。スクリーン座標系の−ｙ軸とこの直線の傾き（ＡＲ時カメラからみて時計回りを正）をρとすると、補正部１０７は、傾きρを次式で求める（ステップＳ３０３）。
【数２４】
2014071850.tif 000026
【０１７６】
ただし伏角φが予め指定された値δより小さいとき、Ｖ３がスクリーンに対して垂直に近いこととなるため、
【数２５】
2014071850.tif 000027
とする。なお、値δとしては、例えば、第一の補正処理において説明したものと同様の値が利用可能である。
【０１７７】
このとき、以下のｗとｈの関数を考える。
【数２６】
2014071850.tif 000028
【０１７８】
ここでｑは、オブジェクト中心Ｔを始点としたベクトルＱをスクリーンに投影した単位ベクトル（ステップＳ３０４）で、
【数２７】
2014071850.tif 000029
としたとき、Ｑ'をスクリーンに投影した点
【数２８】
2014071850.tif 000030
と、Ｔをスクリーンに投影した点
【数２９】
2014071850.tif 000031
との差で定義される。
【０１７９】
すなわち次式である。
【数３０】
2014071850.tif 000032
【０１８０】
また、ｐはスクリーン上でｑをカメラから見て左にπ／２回転したベクトル（ステップＳ３０５）とする。
【数３１】
2014071850.tif 000033
ここでＲは２次元の回転行列である。
【０１８１】
補正部１０７は、このＪ（ｗ、ｈ）を最小とするｗとｈを求める。
【０１８２】
【数３２】
2014071850.tif 000034
より、
【数３３】
2014071850.tif 000035
となる（ステップＳ３０６）。
【０１８３】
同様に、
【数３４】
2014071850.tif 000036
より、
【数３５】
2014071850.tif 000037
となる（ステップＳ３０７）。
【０１８４】
また、補正部１０７は、補正した投影画像のスクリーン上の貼り付け位置を、
【数３６】
2014071850.tif 000038
より取得する（ステップＳ３０８）。
【０１８５】
以上より、補正部１０７は、投影画像取得部１０６が取得した投影画像「０００５．ｐｎｇ」を横ｗ、高さｈに拡大または縮小し、左にρ回転した後、スクリーン上の貼り付け位置を中心として貼り付けた画像を、補正した投影画像として取得する（ステップＳ３０９）。
【０１８６】
９）第三の補正処理
補正部１０７は、上記のような第一の補正処理を行う代わりに、以下のような第三の補正処理を行うようにしても良い。以下、補正部１０７が行う第二の補正処理について説明する。この補正処理は、図５のフローチャートに相当する処理である。
【０１８７】
補正部１０７は、上記の第二の補正処理と同様に、式（１９）から、傾きρを取得する（ステップＳ４０１）。また、上記の第二の補正処理と同様に、式（２８）から、補正した投影画像のスクリーン上の貼り付け位置を取得する（ステップＳ４０２）。
【０１８８】
カメラ座標系のｚ軸と、カメラ座標系のオブジェクト中心の座標Ｔとのなす角が十分小さく、スクリーンに貼りつける投影画像のアスペクト比が貼りつけ前とほぼ等しいと近似できるとき、補正部１０７は、サイズを変更する際のｗとｈを以下のように求める（ステップＳ４０３）。
【数３７】
2014071850.tif 000039
【０１８９】
補正部１０７は、投影画像「０００５．ｐｎｇ」の横がｗ、高さがｈとなるよう拡大または縮小して、補正した投影画像を取得する（ステップＳ４０４）。なお、上記の第二の補正処理と同様の処理により回転角ρを取得して、横及び高さを補正した投影画像を、この角度だけ更に回転させた投影画像を取得しても良い。
【０１９０】
１０）出力
出力部１０８は、上記のように補正部１０７が補正した投影画像「０００５．ｐｎｇ」を、撮影画像受付部１０１が受け付けたマーカ撮影画像上に重畳した画像を生成し、出力する。画像を重畳する際には、ここでは、一例として、補正した投影画像を、マーカ撮影画像上に配置するとともに、投影画像の背景が除去された部分には、マーカ撮影画像の画素が表示され、投影画像の背景が除去されていない部分には、投影画像の画素が表示されるようにする。なお、背景が除去された部分は、いわゆるアルファチャンネル等の透過される領域を示す情報が設定されている部分であっても良い。ここでは、一例として、出力部１０８は、重畳した画像をＡＲ画像として、画像処理装置１のモニタ１０８ａに出力する。
【０１９１】
図１３は、出力部１０８が上記で取得したＡＲ画像を出力している状態を示す図（図１３（ａ））、および画像処理装置１のＡＲ時カメラ１０２が設けられている側の外観を示す図である。図１３に示すように、マーカ撮影画像のマーカが検出された位置に、投影画像の対象物が配置された画像がモニタ１０８ａに出力される。
なお、ＡＲ時カメラ１０２が、新たなフレーム画像を取得して出力する毎に、このフレーム画像をマーカ撮影画像として、上記と同様の処理が行われ、マーカ撮影画像に補正された投影画像が重畳された画像が、上記と同様に、出力部１０８から出力される。
【０１９２】
Ｃ．オイラー角と回転行列について
以下、上記で説明したオイラー角や回転行列等について説明する。
【０１９３】
１）オイラー角
以下の非特許文献５に示されているように、オイラー角は、基準座標系と原点を共有するある座標系の空間中の姿勢を、基準座標系から座標軸まわりの回転を繰り返すことで表下ものである。例えば、基準座標系を小文字の（ｘ，ｙ，ｚ）で表し、対象座標系を大文字の（Ｘ，Ｙ，Ｚ）で表す。そして、
１．（ｘ，ｙ，ｚ）をｚ軸まわりに角度αだけ回転し、（ｘ'，ｙ'，ｚ'）とする。
２．（ｘ'，ｙ'，ｚ'）をｙ'軸まわりに角度βだけ回転し、（ｘ''，ｙ''，ｚ''）とする。
３．（ｘ''，ｙ''，ｚ''）をｘ''軸まわりに角度γだけ回転し、（ｘ'''，ｙ'''，ｚ'''）とする。
【０１９４】
この結果（ｘ'''，ｙ'''，ｚ'''）が（Ｘ，Ｙ，Ｚ）に一致するならば，対象座標系の向きはオイラー角α，β，γで表される。上記の定義はｚ軸−ｙ軸−ｘ軸の順に回転するのでｚ−ｙ−ｘ系のオイラー角とよばれる。実際にはどの軸のまわりに回転させるかに任意性があり、同じ座標系をあらわすのに全部で１２通りの表現法がある。「非特許文献５：オイラー角-Wikipedia"、［online］、［平成２４年９月２１日検索］、インターネット<URL：http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E8%A7%92>」。
【０１９５】
２）回転行列
２−１）２次元の回転行列
２次元の回転行列はある点の原点回りの回転後の座標の計算に使う。２次元の回転行列は以下のように定義される。
【数３８】
2014071850.tif 000040
【０１９６】
ある座標系Ｘの上のある点Ａ＝（Ａｘ，Ａｙ）をθ回転したとき、回転後の点Ｂ＝（Ｂｘ，Ｂｙ）は、Ｂ＝Ｒ（θ）Ａである。ここでＡ，Ｂはある一つの座標系Ｘで見たときの異なる点の座標である。今、この点と同時に座標系Ｘも回転するとする。回転する座標系から回転する点を観察すると、その点は静止しているように見える。すなわち回転後の点の座標は、回転前座標系で見ると（Ｂｘ，Ｂｙ）であるが、回転後座標系で見ると（Ａｘ，Ａｙ）である。
【０１９７】
そこで視点を変えて、平面に固定された任意の一点を回転する座標系で観察すると考えると、この式は座標変換を意味する。なぜならこの式によると、平面に固定された任意の一点の回転後座標系（Ａｆｔｅｒ）で見た座標Ａに回転行列をかけると、回転前座標系（Ｂｅｆｏｒｅ）で見た座標Ｂが計算できるからである。
【０１９８】
以上のように回転行列による計算は、一つの座標系上での点の回転移動を計算しているという解釈だけでなく、一つの点を回転する座標系で見たときの座標を変換しているという解釈も成り立つ。
【０１９９】
２−２）３次元の回転行列
３次元の回転行列は以下のように定義される。
【数３９】
2014071850.tif 000041
【０２００】
各軸の回転を組み合わせることで点の回転移動を計算できる。ある座標系Ｘ０上の点Ａ０＝（Ａ０ｘ，Ａ０ｙ，Ａ０ｚ）を、このＸ０のｚ軸回りにθｚ回転すると、Ｂ０＝Ｒｚ（θｚ）Ａ０に移る。
【０２０１】
次にこれをＸ０のｙ軸回りにθｙ回転すると、Ｃ０＝Ｒｙ（θｙ）Ｂ０に移る。
【０２０２】
さらにこれをＸ０のｘ軸回りにθｘ回転すると、Ｄ０＝Ｒｘ（θｘ）Ｃ０に移る。
【０２０３】
以上をまとめると、
Ｄ０＝Ｒｘ（θｘ）Ｒｙ（θｙ）Ｒｚ（θｚ）Ａ０
となる。
【０２０４】
ここでＡ０，Ｂ０，Ｃ０，Ｄ０はある一つの座標系Ｘ０で見たときの異なる点である。３次元の場合も回転行列による計算は、一つの座標系上での点の回転移動を計算しているという解釈だけでなく、一つの点を回転する座標系で見たときの座標を変換しているという解釈が成り立つ。すなわち、まず、空間に固定された任意の一点を考える。そして、つぎのように座標系Ｘ０を回転させる。座標系Ｘ０をＸ０のｚ軸回りにθｚ回転した座標系をＸ１、座標系Ｘ１をＸ０のｙ軸回りにθｙ回転した座標系をＸ２、座標系Ｘ２をＸ０のｘ軸回りにθｘ回転した座標系をＸ３とする。空間に固定された任意の一点を座標系Ｘ３で見たとき座標がＡ０とする。するとこのＡ０に回転行列をかけると、その点の回転前座標系Ｘ０で見た座標Ｄ０が求められる。
【０２０５】
３）オイラー角と回転行列
上記で考えた回転する座標系Ｘ１，Ｘ２，Ｘ３から最初の座標系Ｘ０を見ることを考える。座標系Ｘ１から見たＸ０をＸ０'、座標系Ｘ２から見たＸ０をＸ０''、座標系Ｘ３から見たＸ０をＸ０'''、とする。回転後の座標系Ｘ１，Ｘ２，Ｘ３を基準として最初の座標系を観察すると、座標系Ｘ０'はＸ０のｚ軸回りに?θｚ回転で得られ、座標系Ｘ０''はＸ０'のｙ軸回りに?θｙ回転で得られ、座標系Ｘ０'''はＸ０''のｘ軸回りに?θｘ回転で得られるように見える。
【０２０６】
すなわち、最終的な回転後の座標系（Ｘ３）から見た回転前座標系（Ｘ０'''，実体はＸ０）はｚ?ｙ?ｘ系のオイラー角（?θｚ，?θｙ，?θｘ）で表わされる座標系変換の結果であると考えられる。
【０２０７】
すなわち、
Ｄ０＝Ｒｘ（θｘ）Ｒｙ（θｙ）Ｒｚ（θｚ）Ａ０
のような回転行列によって表される座標変換は、ｚ?ｙ?ｘ系のオイラー角（?θｚ，?θｙ，?θｘ）で表わされる座標系変換と等価である。
【０２０８】
回転行列の逆行列の性質から、ｚ?ｙ?ｘ系のオイラー角（θｚ，θｙ，θｘ）で表わされる座標系変換は、
【数４０】
2014071850.tif 000042
のような回転行列によって表される座標変換と等価である。
【０２０９】
４）回転行列からオイラー角を求める方法
以下、回転行列からオイラー角を求める方法を述べる。今、回転行列Ｒが以下の場合を考える。
【０２１０】
【数４１】
2014071850.tif 000043
ここでｃｘ＝ｃｏｓθｘ，ｓｘ＝ｓｉｎθｘ等である。
【０２１１】
この式より、まず１行３列目から、
【数４２】
2014071850.tif 000044
が言える。
【０２１２】
また、１行１列目と１行２列目から、
【数４３】
2014071850.tif 000045
が言える。
【０２１３】
同様に、２行３列目と３行３列目から、
【数４４】
2014071850.tif 000046
が言える。
【０２１４】
ただし上述の計算で用いるｓｉｎ?１やｔａｎ?１は複数の解を持つことに注意しなければならない。ｓｉｎ?１（ｘ）の計算に用いる算術ライブラリａｓｉｎ（ｘ）は、一般に?π／２からπ／２の範囲の戻り値を返すが、実際に求められたθｙ以外にπ?θｙも解である。いずれの解を選択するかによってｃｙの符号が変わる。
【０２１５】
また、ｔａｎ?１（ｙ／ｘ）の計算に用いる算術ライブラリａｔａｎ２（ｙ，ｘ）は、一般に?πからπの範囲の戻り値を返すが、ｘ，ｙの符号に注意が必要である。すなわち、ｔａｎ?１（ｙ／ｘ）の引数は（ｘ，ｙ）＝（?１，?２）でも（ｘ，ｙ）＝（１，２）でもｙ／ｘ＝２／１＝（?２）／（?１）＝２であるが、ａｔａｎ２（２，１）≠ａｔａｎ２（−２，−１）である。
【０２１６】
θｚの計算では、
【数４５】
2014071850.tif 000047
であるので、ｃｙの符号によって解がπ変わる。これは、θｘの計算でも同じである。
【０２１７】
以上のように変換行列をオイラー角表現すると複数の解が得られる。
【０２１８】
ここで、｜θｙ｜＜π／２を仮定すると、
【数４６】
2014071850.tif 000048
である。
【０２１９】
しかし、π／２＜｜θｙ｜＜πを仮定すると、
【数４７】
2014071850.tif 000049
となる（±の符号はいずれでもよい）。
【０２２０】
さらなる注意として、ｕ３１＝±１のとき角度が一意に決まらないことがある。ｓｙ＝ｓｉｎθｙ＝±１のときθｙ＝±π／２であり、ｃｏｓθｙ＝ｃｙ＝０である。このとき三角関数の加法定理より回転行列Ｒは以下のようになる。
【０２２１】
【数４８】
2014071850.tif 000050
となり、θｘとθｚを一意に求めることができない。
【０２２２】
これはθｙ＝±π／２のときｘ軸とｚ軸が一致してしまうことで起こる現象で、ジンバルロックと呼ばれる。ジンバルロックが生じた場合は、ｘまたはｚの回転角のいずれか一方を仮定して他方を計算する。
【０２２３】
以上、本実施の形態によれば、予め用意されている対象物の１または２以上の投影画像から、方向情報に対応する投影画像を取得して出力することにより、一の対象物を、拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。また、投影画像を取得する際の３Ｄモデルのレンダリング等が不要となるため、少ない処理量で投影画像を得ることができる。
【０２２４】
また、投影画像のサイズや傾き等を補正して出力することにより、予め用意されている投影画像をマーカ撮影画像等に応じて適切に補正して出力することができる。
【０２２５】
また、投影画像として、特に、カメラで撮影した画像、いわゆる写真を用いた場合においては、３Ｄモデルをレンダリングして得られた投影画像を出力する従来のＡＲ技術には難しいリアルな表現が可能となるという効果を得ることができる。
【０２２６】
なお、上記の具体例においては、出力部１０８が投影画像をマーカ撮影画像と重畳させて出力する場合について説明したが、出力部１０８は、投影画像をマーカ撮影画像と重畳せずに出力するようにしても良い。
【０２２７】
なお、上記実施の形態においては、方向情報取得部１０５の位置関係情報取得手段１０５１が、マーカ認識部１０３が取得したマーカ関連情報を用いて位置関係情報を取得し、この位置関係情報を用いて、方向情報取得部１０５の方向取得手段１０５２が、方向情報を取得する場合について説明したが、本発明においては、方向情報取得部１０５は、位置関係情報を取得せずに、方向情報を取得するようにしても良い。
【０２２８】
以下、上記の実施の形態の画像処理装置１において、方向情報取得部１０５が、位置関係情報取得手段１０５１と方向取得手段１０５２とを備えておらず、位置関係情報を取得せずに方向情報を取得する場合について例を挙げて説明する。なお、この処理は、ＡＲ時カメラ１０２の光軸と対象物への視線とが一致しているとみなせる場合であり、かつ、伏角が小さい場合を前提とした処理である。また、ここでは、マーカを正方形と仮定する。この方向情報を取得する処理は、マーカ撮影画像における正方形のマーカの四隅を通過する楕円のパラメータを用いて、方向情報であるＡＲ時カメラ１０２の伏角と方位角とを取得する処理である。
【０２２９】
まず、マーカ認識部１０３が、マーカ撮影画像において認識したマーカの四隅の座標をマーカ関連情報として取得する。また、マーカ認識部１０３が、マーカ撮影画像内に示されているマーカの４隅を結ぶ対角線の交点を計算してマーカの中央座標を求める。マーカ認識部１０３は、この中央座標も、マーカ関連情報として取得する。
【０２３０】
ＡＲに利用するＡＲ時カメラ１０２の光軸が、マーカの位置に対象物を配置した場合におけるＡＲ時カメラ１０２からの対象物への視線が一致していると見なせ、かつ伏角が小さいとき、正方形であるマーカの四隅は，必ずマーカ中心を中心とする楕円上にあると考えることができる。このため、方向情報取得部１０５は、この四隅の座標からこの楕円の方程式を求め，長半径，短半径，長軸・短軸の傾きを算出する。
【０２３１】
方向情報取得部１０５は取得した長半径と短半径の比から伏角を算出する。
【０２３２】
また、方向情報取得部１０５は、楕円と短軸の交点を求める．この交点とマーカの四隅の座標（楕円上）の相対的な位置関係から方位角を算出する。
【０２３３】
また、補正部１０７は、長軸の長さとマーカの一辺の長さの比から貼付する投影画像の伸縮率を算出する。
【０２３４】
また、補正部１０７は、短軸の傾斜角を貼付する投影画像の回転角として取得する。
【０２３５】
また、補正部１０７は、楕円の中心の座標を、スクリーンにおける投影画像の貼付位置を示す情報として取得する。
【０２３６】
そして、補正部１０７は、上記で取得した伸縮率や回転角により、投影画像取得部１０６が取得した投影画像を補正する。
【０２３７】
このようにすることで、方向関連情報を取得せずに、容易に方向情報等を取得することができる。なお、かかる方向情報取得部１０５等を用いても良いことは、以下の実施の形態においても、同様である。
【０２３８】
以下、上記の実施の形態の画像処理装置１において、方向情報取得部１０５が、位置関係情報取得手段１０５１と方向取得手段１０５２とを備えておらず、位置関係情報を取得せずに方向情報を取得する場合の第二の例について説明する。
【０２３９】
なお、ここでは、マーカを正方形と仮定する。この方向情報を取得する処理は、マーカ撮影画像における正方形のマーカが透視図法に従って描画される性質を用いて方向情報であるＡＲ時カメラ１０２の伏角と方位角とを取得する処理である。
【０２４０】
まず、マーカ認識部１０３が、マーカ撮影画像において認識したマーカの四隅の座標をマーカ関連情報として取得する。また、マーカ認識部１０３が、マーカ撮影画像内に示されているマーカの４隅を結ぶ対角線の交点を計算してマーカの中央座標を求める。マーカ認識部１０３は、この中央座標も、マーカ関連情報として取得する。
【０２４１】
方向情報取得部１０５は、ＡＲ時カメラ１０２の撮像面に投影されたマーカの向かい合う２辺の延長線が交差する点を算出する。２辺は２組あるため交差点は、通常、２点得られる。これらを消点と呼ぶ。得られた消点を結ぶ直線はマーカの置かれた平面のカメラから見た水平線に相当する。この直線をここでは水平線と呼ぶ。
【０２４２】
方向情報取得部１０５は、ＡＲ時カメラ１０２の撮像面上に投影されたマーカ中心を通過し、水平線に直角に交わる線に平行で，マーカから水平線に向かう向きの単位ベクトルを算出する。なお、マーカの向かい合う２辺が撮像面の上下辺に平行な場合、消点は１点しか得られない。この場合は、スクリーンの左右辺に平行なベクトルを単位ベクトルとして算出する。この処理を、ここでは第一の処理と呼ぶ。
【０２４３】
方向情報取得部１０５は、第一の処理で算出した単位ベクトルのｘ成分およびｙ成分の比から水平線の傾きを算出し、これを貼付する投影画像の傾き角ρとする。
【０２４４】
方向情報取得部１０５は、マーカ中心を通過して上記水平線に平行な直線を、ＡＲ時カメラ１０２の撮像面に投影されたマーカの向かい合う２辺の延長線で切り取った線分の長さを算出する。マーカの向かい合う２辺は２組あるため線分は２本得られる。この２つの線分の比から、マーカの回転角σを算出する。なお、消点が１つしかない場合は、σは０とする。
【０２４５】
方向情報取得部１０５は、ＡＲ時カメラ１０２の撮像面上で、撮像面中央から水平線に下した足の長さを算出し，これとＡＲ時カメラ１０２と撮像面までの距離の比よりマーカの置かれた平面の撮像面に対する傾きλを算出する。
【０２４６】
方向情報取得部１０５は、ＡＲ時カメラ１０２の撮像面上のマーカ中心を通過し、マーカの置かれた平面に平行な平面をλより算出する。次にＡＲ時カメラ１０２の位置からこの平面までの距離を算出し、これとマーカ中心の座標より伏角φを算出する。この処理をここでは、第二の処理と呼ぶ。
【０２４７】
方向情報取得部１０５は、第一の処理で算出した単位ベクトルを含み水平線に垂直な平面と、第二の処理で算出した平面との交線を算出する。ＡＲ時カメラ１０２の位置から第二の処理で算出した平面に下ろした垂線の足からマーカ中心に向かうベクトルと、この交線とのなす角ωを算出する。次にこのωとσから方位角ψを算出する。
【０２４８】
補正部１０７は、ＡＲ時カメラ１０２の撮像面のマーカをρ、σ、λ、φ、ψにより補
正して一辺の長さを算出し、これより貼付する投影画像の伸縮率を算出する。
補正部１０７は、マーカ中心とオブジェクト中心の間の距離εをρ、σ、λ、φ、ψにより補正し、ＡＲ時カメラ１０２の撮像面のマーカ中心からこの補正された距離だけ、上記の第一の処理で算出した単位ベクトル方向に移動した位置を算出し、投影画像の貼付位置情報とする。
【０２４９】
そして、補正部１０７は、上記で取得した伸縮率や回転角により、投影画像取得部１０６が取得した投影画像を補正する。
【０２５０】
このようにすることで、方向関連情報を取得せずに、容易に方向情報等を取得することができる。なお、かかる方向情報取得部１０５等を用いても良いことは、以下の実施の形態においても、同様である。
【０２５１】
なお、上記実施の形態において、投影画像格納部１００に１つの投影画像を有する１の投影画像関連情報しか格納されていない場合、投影画像取得部１０６は、常にこの投影画像を取得するようにしてもよい。そして、補正部１０７が、位置関係情報や投影方向情報等を上記と同様に適宜用いてこの投影画像を補正することにより、マーカ撮影画像の撮影方向に応じた投影画像を取得して、この投影画像を出力部１０８が出力するようにしても良い。この場合、方向情報取得部１０５は、投影画像を取得するために利用する方向情報を取得する必要はない。ただし、補正の際に方向情報を利用する場合には、方向情報を取得しても良い。このような構成にすることで、投影画像が一つであっても、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を、迅速に出力することができる。
【０２５２】
（実施の形態２）
上記実施の形態１においては、画像処理装置１が、投影画像格納部１００内に１または２以上の投影画像を有しており、この複数の投影画像の中から方向情報に応じた投影画像を読み出すものについて説明した。本実施の形態においては、サーバ装置２に１または２以上の投影画像が格納されており、端末装置３が、このサーバ装置２から、マーカ撮影画像について取得した方向情報に応じた投影情報を逐次取得する画像処理システム１０００について説明する。
【０２５３】
図１４は、本実施の形態における画像処理システム１０００のブロック図である。図において、図１と同一符号は、同一または相当する部分を示している。
【０２５４】
画像処理システム１０００は、サーバ装置２と端末装置３とを備える。サーバ装置２と端末装置３とは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
【０２５５】
サーバ装置２は、投影画像格納部２０１、サーバ側受信部２１１、投影画像取得部２１２、サーバ側送信部２１３を備える。
【０２５６】
端末装置３は、撮影画像受付部１０１、カメラ１０２、マーカ認識部１０３、方向情報取得部１０５、端末送信部３１１、端末受信部３１２、補正部３１３、出力部３１４を備える。方向情報取得部１０５は、位置関係情報取得手段１０５１と、方向取得手段１０５２とを備えている。
【０２５７】
サーバ装置２は、例えば、コンピュータ等で実現される。
【０２５８】
投影画像格納部２０１には、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する１以上の投影画像関連情報が格納される。投影画像関連情報は、投影画像と、投影方向情報とを有する情報である。ここでの１以上の方向とは、具体的には、１の方向または異なる２以上の方向を意味する。また、ここでの１以上の投影画像は、１または２以上の投影画像を意味する。また、ここでの１以上の投影画増関連情報は、１または２以上の投影画像関連情報を意味する。投影画像格納部２０１は、上記実施の形態の投影画像格納部２０１と同様のものであり、ここでは詳細な説明は省略する。
【０２５９】
サーバ側受信部２１１は、端末装置３からネットワーク等を介して送信される方向情報を受信する。サーバ側受信部２１１は、さらに、マーカ識別情報を受信しても良い。サーバ側受信部２１１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。サーバ側受信部２１１は、通信デバイスを含むと考えても、含まないと考えても良い。
【０２６０】
投影画像取得部２１２は、サーバ側受信部２１１が受信した方向情報に対応する投影画像を取得する。具体的には、サーバ側受信部２１１が受信した方向情報と一致する投影方向情報と対応付けられた投影画像を、投影画像格納部２０１に格納されている投影画像関連情報から取得する。また、サーバ側受信部２１１がマーカ識別情報と方向情報とを受信した場合、このマーカ識別情報に対応する投影画像の中から、この方向情報に対応する投影画像を取得する。また、投影画像取得部２１２は、取得する投影画像に対応付けられた投影方向情報や距離関連情報を取得するようにしてもよい。投影画像取得部２１２が投影画像等を取得する構成および処理は、上記実施の形態の投影画像取得部１０６が投影画像を取得する構成及び処理等と同様であるので、ここでは、詳細な説明は省略する。
【０２６１】
サーバ側送信部２１３は、投影画像取得部２１２が取得した投影画像を、ネットワーク等を介して端末装置３に送信する。また、投影画像と対応付けて、投影画像取得部２１２が取得した投影方向情報や距離関連情報を端末装置３に送信しても良い。サーバ側送信部２１３は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。サーバ側送信部２１３は、通信デバイスを含むと考えても、含まないと考えても良い。
【０２６２】
端末装置３は、例えばコンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
【０２６３】
端末送信部３１１は、方向情報取得部１０５が取得した方向情報を、サーバ装置２に送信する。また、マーカ認識部１０３が取得したマーカ識別情報も、方向情報と対応付けてサーバ装置２に送信しても良い。
【０２６４】
端末送信部３１１は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。端末送信部３１１は、通信デバイスを含むと考えても、含まないと考えても良い。
【０２６５】
端末受信部３１２は、端末送信部３１１が送信した方向情報と一致する投影方向情報と対応付けられた投影画像を、サーバ装置２から受信する。端末受信部３１２は、投影画像と対応付けられてサーバ装置２から送信される撮影方向情報や距離関連情報も受信しても良い。端末受信部３１２は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。端末受信部３１２は、通信デバイスを含むと考えても、含まないと考えても良い。
【０２６６】
補正部３１３は、端末受信部３１２が受信した投影画像を補正する。補正部３１３は、端末受信部３１２が受信した投影画像を補正する点を除けば、上記実施の形態の補正部１０７と同様であり、ここでは、詳細な説明は省略する。
【０２６７】
出力部３１４は、端末受信部３１２が受信した投影画像を出力する。出力部１０８は、端末受信部３１２が受信した投影画像を直接出力する代わりに、補正部３１３が補正した投影画像を出力するようにしてもよい。出力部３１４の構成は、端末受信部３１２が受信した投影画像を出力する点等を除けば、上記実施の形態の出力部１０８と同様であり、個々では詳細な説明は省略する。
【０２６８】
次に、画像処理システム１０００のサーバ装置２の動作の一例について図１５のフローチャートを用いて説明する。
【０２６９】
（ステップＳ５０１）サーバ側受信部２１１は、端末装置３からネットワーク等を介して送信される方向情報を受信したか否かを判断する。受信した場合、ステップＳ５０２に進み、受信していない場合、ステップＳ５０１に戻る。なお、サーバ側受信部２１１は、方向情報と対応付けられたマーカ識別情報を更に受信しても良い。
【０２７０】
（ステップＳ５０２）投影画像取得部２１２は、ステップＳ５０１で受信した方向情報と一致する投影方向情報と対応付けられた投影画像を取得する。なお、投影画像取得部２１２は、ステップＳ５０１で受信したマーカ識別情報と対応付けられた投影画像の中から、ステップＳ５０１で受信した方向情報と一致する投影方向情報と対応付けられた投影画像を取得するようにしてもよい。また、投影画像と対応付けられた投影方向情報や距離関連情報も取得するようにしても良い。
【０２７１】
（ステップＳ５０３）サーバ側送信部２１３は、ステップＳ５０２で取得した投影画像等を端末装置３に送信する。そして、ステップＳ５０１に戻る。
【０２７２】
なお、図１５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２７３】
次に、画像処理システム１０００の端末装置３の動作の一例について図１６のフローチャートを用いて説明する。なお、図１６において、図２と同一符号は同一または相当する処理ステップを示す。ただし、補正部１０７および出力部１０８が行う処理は、補正部３１３および出力部３１４が行うようにする。
【０２７４】
（ステップＳ６０１）端末送信部３１１は、ステップＳ１０７で取得した方向情報をサーバ装置２に送信する。なお、マーカ認識部１０３が取得したマーカ識別情報も方向情報と対応付けて送信しても良い。
【０２７５】
（ステップＳ６０２）端末受信部３１２は、投影画像をサーバ装置２から受信したか否かを判断する。受信した場合、ステップＳ１０９に進み、受信していない場合、ステップＳ６０２に戻る。なお、端末受信部３１２は、投影画像と対応付けられて送信された投影方向情報や投影画像も受信するようにしても良い。
【０２７６】
なお、図１６のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２７７】
以上、本実施の形態によれば、端末装置３が取得した方向情報に対応した投影情報を逐次サーバ装置２から受信して、出力することができるため、端末装置３に１または２以上の投影情報等を格納する必要がなく、記録媒体の容量等が小さい端末装置３等においても、一の対象物を拡張現実空間内に配置した状態を示す二次元画像を高速に出力することができる。
【０２７８】
なお、上記実施の形態２においては、端末装置３が補正部３１３により投影画像の補正を行うようにしたが、本発明においては、サーバ装置２が、補正部３１３と同様の構成を備えるようにして、投影画像取得部２１２が取得した投影画像を補正して、補正した投影画像をサーバ側送信部２１１が端末装置３に送信するようにしてもよい。これにより、端末装置３による補正を行う際の処理負荷等を低減させ、高速な処理を実現することが可能となる。なお、補正に必要な情報は、端末送信部３１１が方向情報を送信する際等にサーバ装置２に送信するようにすればよい。
【０２７９】
また、上記実施の形態２においては、端末装置３が方向情報を取得して、サーバ装置２に送信する例について説明した。しかし、本発明においては、結果的に、サーバ装置２が投影画像を取得するために必要となる方向情報を取得することができれば良い。このため、上述したような端末装置３が方向情報を取得する際に用いたマーカ関連情報を、端末装置３の端末送信部３１１がサーバ装置２に送信するようにし、サーバ装置２でこのマーカ関連情報に対応する情報から、端末装置３と同様の処理を行って方向情報を取得して、この方向情報に対応する投影情報を取得するようにしてもよい。また、マーカ関連情報から方向情報を得る際の処理途中で得られる情報を、端末送信部３１１がサーバ装置２に送信するようにし、サーバ装置２が、この処理途中の情報を用いて方向情報を取得するための残りの処理を行って方向情報を取得するようにしてもよい。つまり、本発明においては、端末装置３の端末送信部３１１が、マーカ関連情報に対応する情報であるマーカ対応情報をサーバ装置２に送信するようにし、サーバ装置２がこのマーカ対応情報から、方向情報を取得するようにすればよい。ここでのマーカ関連情報に対応する情報は、マーカ関連情報そのものや、マーカ関連情報を用いて方向情報を取得する処理の途中で得られる情報や、方向情報そのものも含む概念である。また、端末受信部３１２は、端末送信部３１１が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置２から受信すればよい。マーカ対応情報に対応する方向情報とは、例えば、マーカ対応情報を用いてサーバ装置２が取得した方向情報である。なお、この場合においては、上述した端末装置３において、不要な構成は、省略するようにしても良い。また、サーバ装置２においては、方向情報を取得する際に必要となる構成を、適宜設けるようにすればよい。この場合において、サーバ装置２に設ける必要がある構成は、例えば、端末装置３の方向情報取得部１０５の少なくとも一部と同様の構成である。
【０２８０】
（実施の形態３）
本実施の形態において、上記実施の形態２において示した画像処理システムにおいて、サーバ装置が、方向情報が一致する投影方向情報と対応付けられた投影画像と、この投影画像に隣接した投影画像を含む周辺の投影画像とを、端末装置に送信することで、端末装置３が、投影画像を予め読み込んでおけるようにしたもの、即ち先読みできるようにしたものである。
【０２８１】
図１７は、本実施の形態における画像処理システム１０００ａのブロック図である。図において、図１４と同一符号は、同一または相当する部分を示している。
【０２８２】
画像処理システム１０００ａは、サーバ装置２ａと、端末装置３ａとを備える。サーバ装置２ａと端末装置３ａとは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
【０２８３】
サーバ装置２ａは、投影画像格納部２０１、サーバ側受信部２１１、投影画像取得部２２２、サーバ側送信部２２３を備える。
【０２８４】
端末装置３ａは、撮影画像受付部３０１、カメラ３０２、マーカ認識部１０３、方向情報取得部１０５、端末送信部３２１、端末受信部３１２、周辺画像受信部３２２、周辺投影画像格納部３２３、蓄積部３２４、判断部３２５、端末投影画像取得部３２６、補正部３２７、出力部３２８を備える。方向情報取得部１０５は、位置関係情報取得手段１０５１と、方向取得手段１０５２とを備える。
【０２８５】
サーバ装置２ａは、例えば、コンピュータ等で実現される。
【０２８６】
投影画像取得部２２２は、サーバ側受信部２１１が受信した方向情報に対応する投影画像を取得する。投影画像取得部２２２は、更に、この取得した投影画像に隣接する１または２以上の投影画像を含む１または２以上の投影画像（以下、周辺投影画像と称す）を、当該投影画像格納部２０１から取得する。取得した投影画像に隣接する一の投影画像とは、例えば、各投影画像を、それぞれに対応付けられた投影方向情報が示す方向に垂直に、かつ、対象物に対する距離が等しい距離となるように配置した場合に、上下左右斜めのうちの少なくとも一の方向において取得した投影画像の隣に配置されることとなる投影画像、あるいは、上下左右斜めのうちの少なくとも一の方向において最も近い位置に配置されることとなる投影画像である。この方向は予め指定されているようにしても良い。また、例えば、投影画像が予め指定された角度毎に撮影された画像、あるいはレンダリングされた画像である場合、方向情報について取得した投影画像に対して、上記の予め指定された角度だけ、対応する投影方向情報が示す角度が異なる投影画像を、隣接する投影画像と考えても良い。なお、投影画像間の隣接関係を管理するために、予め隣接する投影画像を示す情報を、各投影画像に対応付けて、投影画像格納部２０１に蓄積しておくようにしても良い。また、投影画像取得部２２２は、方向情報について取得した投影画像に隣接する投影画像にさらに隣接する投影画像等の、方向情報について取得した投影画像の周辺の投影画像を周辺投影画像として取得するようにしても良い。投影画像取得部２２２は、例えば、方向情報について取得した投影画像を中心とした予め指定された範囲内を通過する投影方向情報を有する投影画像情報を周辺投影画像として取得するようにしても良い。
【０２８７】
なお、投影画像取得部２２２は、周辺投影画像を構成する各投影画像について、各投影画像に対応付けられた投影方向情報を取得する。更に投影画像取得部２２２は、周辺投影画像を構成する各投影画像について、各投影画像に対応付けられた距離関連情報を取得するようにしてもよい。
【０２８８】
投影画像取得部２２２が、方向情報に対応する投影画像を取得する処理等のその他の処理や構成については、上述した投影画像取得部２１２と同様であるので、ここでは詳細な説明は省略する。
【０２８９】
サーバ側送信部２２３は、投影画像取得部２２２が方向情報に応じて取得した投影画像を端末装置３ａに送信する。また、サーバ側送信部２２３は、投影画像取得部２２２が取得した周辺投影画像を端末装置３ａに送信する。また、サーバ側送信部２２３は、投影画像取得部２２２が周辺投影画像について取得した投影方向情報を、周辺投影画像に対応付けて端末装置３ａに送信する。また、サーバ側送信部２２３は、投影画像取得部２２２が周辺投影画像について取得した距離関連情報を、周辺投影画像に対応付けて端末装置３ａに送信するようにしても良い。サーバ側送信部２２３の他の構成や処理等については、サーバ側送信部２１３と同様であるので、ここでの詳細な説明は省略する。
【０２９０】
端末装置３ａは、例えば、コンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
【０２９１】
撮影画像受付部３０１は、一のマーカを撮影した複数のマーカ撮影画像を順次受け付ける。ここでの一のマーカを撮影した複数のマーカ撮影画像とは、例えば、異なる方向からマーカを撮影した画像である。なお、その他の構成や処理等については、上述した撮影画像受付部１０１と同様であるので、詳細な説明は省略する。
【０２９２】
カメラ３０２は、一のマーカを順次撮影して、撮影により得られた複数のマーカ撮影画像を撮影画像受付部３０１に出力する。カメラ３０２が撮影により順次取得するマーカ撮影画像は、動画像のフレーム画像等と考えても良い。なお、その他の構成や処理等については、上述したカメラ１０２と同様であるので、詳細な説明は省略する。
【０２９３】
端末送信部３２１は、上述した端末送信部３１１と同様の構成を有している。ただし、端末送信部３２１は、判断部３２５が一致する投影方向情報がないと判断した場合にのみ、方向情報取得部１０５が取得した方向情報をサーバ装置２ａに送信する。
【０２９４】
周辺画像受信部３２２は、サーバ装置２ａから送信される周辺投影画像と、各投影画像に対応する投影方向情報とを受信する。また、周辺画像受信部３２２は、距離関連情報も受信するようにしてもよい。周辺画像受信部３２２は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。周辺画像受信部３２２は、通信デバイスを含むと考えても、含まないと考えても良い。
【０２９５】
周辺投影画像格納部３２３には、周辺画像受信部３２２が受信した周辺投影画像と、投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報が格納される。また、周辺投影画像関連情報には、各周辺投影画像に対応付けられた距離関連情報が更に格納されていても良い。
【０２９６】
蓄積部３２４は、周辺画像受信部３２２が受信した周辺投影画像と、投影画像に対応する投影方向情報との１以上の組をそれぞれ有する１以上の周辺投影画像関連情報を周辺投影画像格納部３２３に蓄積する。また、蓄積部３２４は、周辺画像受信部３２２が周辺投影画像とともに受信した距離関連情報を更に含む周辺統計画像関連情報を、周辺投影画像格納部３２３に更に蓄積するようにしてもよい。なお、蓄積部３２４は、端末受信部３１２が受信した投影画像と投影方向情報とを有する周辺投影画像関連情報を、周辺投影画像格納部３２３に蓄積するようにしてもよい。なお、蓄積する際に、既に格納されている周辺投影画像と重複する周辺投影画像については、蓄積部３２４は、蓄積せずに削除するようにしても良い。あるいは、蓄積部３２４は、重複する周辺投影画像を上書きするようにしても良い。
【０２９７】
判断部３２５は、方向情報取得部１０５が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部３２３に格納されているか否かを判断する。具体的には、判断部３２５は、方向情報取得部１０５が取得した方向情報に一致する投影方向情報を有する周辺投影画像関連情報がある以下否かを判断する。
【０２９８】
端末投影画像取得部３２６は、判断部３２５が一致する投影方向情報があると判断した場合に、一致する投影方向情報に対応する周辺投影画像を、周辺投影画像格納部３２３から取得する。一致しない場合は、端末投影画像取得部３２６は、投影画像を取得しない。
【０２９９】
補正部３２７は、上述した補正部３１３と同様に、端末受信部３１２が受信した投影画像を補正する。また、端末投影画像取得部３２６が周辺投影画像を取得した場合、この周辺投影画像に対して、上述した補正部３１３と同様の補正を行う。なお、補正部３１３のその他の構成等については、上述した補正部３１３と同様である。
【０３００】
出力部３２８は、上述した出力部３１４と同様に、端末受信部３１２が受信した投影画像を出力する。出力部１０８は、端末受信部３１２が受信した投影画像を直接出力する代わりに、端末受信部３１２が受信した投影画像を補正部３１３が補正した投影画像を出力するようにしてもよい。また、出力部３２８は、判断部３２５が一致する投影方向情報があると判断した場合に、端末投影画像取得部３２６が取得した周辺投影画像を出力する。この場合も、周辺投影画像を直接出力する代わりに周辺投影画像を補正部３１３が補正した周辺投影画像を出力するようにしてよい。出力部３２８のその他の構成等については、上述した出力部３２８等と同様である。
【０３０１】
次に、画像処理システム１０００ａのサーバ装置２ａの動作について、以下に簡単に説明する。サーバ装置２ａの動作は、図１５に示したフローチャートにおいて、ステップＳ５０２において、投影画像取得部２２２が、方向情報に対応する投影画像を取得するようにし、ステップＳ５０２の直後に、投影画像取得部２２２が、この投影画像に隣接する投影画像を含む周辺投影画像を取得し、その後のステップＳ５０３において、サーバ側送信部２２３が、投影画像と、周辺投影画像とを端末装置３ａに送信するようにしたものである。
【０３０２】
次に、画像処理システム１０００ａの端末装置３ａの動作の一例について、図１８のフローチャートを用いて説明する。なお、図１８において、図１６と同一符号は同一または相当する処理ステップを示す。ただし、カメラ１０２、撮影画像受付部１０１、補正部３１３および出力部３１４が行う処理は、カメラ３０２、撮影画像受付部３０１、補正部３２７および出力部３２８が行うようにする。
【０３０３】
（ステップＳ７０１）判断部３２５は、ステップＳ１０７で方向情報取得部１０５が取得した方向情報に一致する投影方向情報が、周辺投影画像格納部３２３に格納されているか否かを判断する。格納されている場合、ステップＳ７０２に進み、格納されていない場合、ステップＳ７０３に進む。
【０３０４】
（ステップＳ７０２）端末投影画像取得部３２６は、ステップＳ７０１で一致すると判断された投影方向情報と対応付けられた周辺投影画像を取得する。そして、ステップＳ１０９に進む。
【０３０５】
（ステップＳ７０３）端末送信部３２１は、ステップＳ１０７で方向情報取得部１０５が取得した方向情報をサーバ装置２ａに送信する。
【０３０６】
（ステップＳ７０４）端末受信部３１２は、方向情報に対応した投影画像を受信したか否かを判断する。受信した場合、ステップＳ７０５に進み、受信していない場合、ステップＳ７０４に戻る。
【０３０７】
（ステップＳ７０５）周辺画像受信部３２２は、周辺投影画像と投影方向情報との１以上の組を受信したか否かを判断する。受信した場合、ステップＳ７０６に進み、受信していない場合、ステップＳ７０５に戻る。
【０３０８】
（ステップＳ７０６）蓄積部３２４は、ステップＳ７０５で受け付けた周辺投影画像と投影方向情報との１以上の組をそれぞれ有する周辺投影画像関連情報を、周辺投影画像格納部３２３に蓄積する。そして、ステップＳ１０９に進む。
【０３０９】
なお、図１８のフローチャートのステップＳ１０９に示した補正の処理においては、適宜、周辺投影画像格納部３２３に格納されている投影方向情報や、距離関連情報を用いるようにしても良い。
【０３１０】
なお、図１８のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３１１】
以上、本実施の形態によれば、サーバ装置２ａに送信した方向情報に対応する投影画像の周辺の周辺投影画像を、端末装置３ａに先読みさせることができるため、投影画像を取得する際に、毎回、方向情報をサーバ装置２ａに送信する必要がなく、投影画像を滑らかに出力することができる。また、周辺投影画像だけを先読みするため、周辺投影画像をダウンロードする時間等も短縮することができ、先読みをするための待ち時間等を低減させることができ、ダウンロードの待ち時間と、出力の品質との両立を図ることができる。
【０３１２】
（実施の形態４）
本実施の形態において、端末装置３ｂが一の対象物についての投影画像を出力する際に、この一の対象物についての全ての投影画像を、サーバ装置２ｂから一括ダウンロードするようにしたものである。
【０３１３】
図１９は、本実施の形態における画像処理システム１０００ｂのブロック図である。図において、図１４と同一符号は、同一または相当する部分を示している。
【０３１４】
画像処理システム１０００ｂは、サーバ装置２ｂと、端末装置３ｂとを備える。サーバ装置２ｂと端末装置３ｂとは、インターネット等のネットワークや専用通信回線等を用いて通信可能に接続されている。
【０３１５】
サーバ装置２ｂは、投影画像格納部２０１、サーバ側受信部２３１、サーバ側送信部２３２を備える。
【０３１６】
端末装置３ｂは、端末投影画像格納部３３１、要求情報送信部３３２、投影画像受信部３３３、撮影画像受付部１０１、カメラ１０２、マーカ認識部１０３、方向情報取得部１０５、投影画像取得部３３４、補正部３３５、出力部３３６を備える。方向情報取得部１０５は、位置関係情報取得手段１０５１と、方向取得手段１０５２とを備える。
【０３１７】
サーバ装置２ｂは、例えば、コンピュータ等で実現される。
【０３１８】
サーバ側受信部２３１は、一の対象物の投影画像の送信を要求する情報である要求情報を端末装置３ｂから受信する。要求情報は、例えば、一の対象物について取得された投影情報を識別する情報を有する情報である。一の対象物について取得された投影情報を識別する情報は、マーカ識別情報であっても良い。また、要求情報は、投影画像の送信を指示する情報を含んでいていても良いし、含んでいなくても良い。例えば、一の対象物について取得された投影画像を識別する情報等を、要求情報と考えても良い。また、投影画像格納部２０１に一の対象物についての投影画像しか格納されていない場合や、要求情報に対応する一の対象物が予め決まっている場合等には、要求情報は、投影画像を識別する情報を含んでいなくても良い。例えば、この場合の要求情報は、単に投影画像を送信する指示であっても良い。
【０３１９】
サーバ側受信部２３１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。サーバ側受信部２３１は、通信デバイスを含むと考えても、含まないと考えても良い。
【０３２０】
サーバ側送信部２３２は、要求情報に応じて、一の対象物に対応する１または２以上の投影画像と、この投影画像に対応付けられた投影方向情報を、投影画像格納部１００から読みだし、端末装置３ｂに送信する。一の投影画像に対応する投影方向情報とは、例えば、一の投影画像を有する投影画像関連情報に含まれる投影方向情報である。例えば、サーバ側送信部２３２は、要求情報が有する投影情報を識別する情報と対応付けられた投影画像と投影方向情報との組を読み出し、送信する。また、投影画像格納部２０１に一の対象物についての投影画像しか格納されていない場合や、要求情報に対応する一の対象物が予め決まっている場合等には、サーバ側送信部２３２は、これらの投影画像を読み出して送信する。好ましくは、サーバ側送信部２３２は、一の対象物に対応付けられた全ての投影画像を読み出し送信する。ここでの全ての投影画像は、ＡＲの出力に利用されうる一の対象物に対応付けられた全ての投影画像と考えても良い。なお、投影画像は、例えば、予め、投影画像に投影されている対象物の識別情報と対応付けて投影画像格納部１００に蓄積しておく。例えば、投影画像格納部２０１に格納されている各投影画像関連情報に対して、対象物の識別情報を対応付けておくようにすることが好ましい。対象物の識別情報は、マーカ識別情報であっても良い。また、サーバ側送信部２３２は、例えば、各投影画像と対応付けられた距離関連情報も取得し、各投影画像と対応付けて送信するようにしてもよい。なお、サーバ側送信部２３２は、一の投影画像と、この投影画像に対応付けられた投影方向情報を送信する代わりに、一の対象物の投影画像を有する投影画像関連情報を、投影画像格納部１００から読みだし送信するようにしてもよく、この場合も、投影画像と距離関連情報との１または２以上の組を送信することと考えても良い。かかることは他においても同様である。その他の構成等については、サーバ側送信部２１３と同様である。
【０３２１】
端末装置３ｂは、例えば、コンピュータや、スマートフォンや、タブレット端末、カメラ付き携帯電話等の携帯情報端末や、通信機能付きカメラ等で実現可能である。
【０３２２】
端末投影画像格納部３３１には、一の対象物を異なる方向に投影した画像である投影画像と、各投影画像を投影した際の方向に関する情報である投影方向情報とを有する情報である１または２以上の投影画像関連情報が格納される。
【０３２３】
端末投影画像格納部３３１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０３２４】
要求情報送信部３３２は、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置２ｂに送信する。要求情報は、例えば、ユーザにより指定された対象物の識別情報を有する情報であっても良い。また、要求情報は、マーカ認識部１０３がマーカ撮影画像から取得したマーカ識別情報を有する情報であっても良い。
【０３２５】
要求情報送信部３３２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。要求情報送信部３３２は、通信デバイスを含むと考えても、含まないと考えても良い。
【０３２６】
投影画像受信部３３３は、要求情報に応じた投影画像とこの投影画像に対応する投影画像関連情報との１または２以上の組をサーバ装置２ｂから受信する。投影画像受信部３３３は、受信した投影画像と投影画像関連情報との組をそれぞれ有する１または２以上の投影画像関連情報を投影画像格納部２０１に蓄積する。なお、投影画像受信部３３３は、投影画像と、投影画像関連情報との１または２以上の組を受信する代わりに、１または２以上の投影画像関連情報を受信しても良く、この場合も、投影画像と投影画像関連情報の１または２以上の組を受信したと考えても良い。投影画像受信部３３３は、要求情報が示す一の対象物についての全ての投影画像を含む投影画像関連情報を受信することが好ましい。
【０３２７】
投影画像受信部３３３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。投影画像受信部３３３は、通信デバイスを含むと考えても、含まないと考えても良い。
【０３２８】
投影画像取得部３３４は、方向情報取得部１０５が取得した方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部３３１から取得する。具体的には、投影画像取得部３３４は、端末投影画像格納部３３１に格納されている投影画像関連情報のうちの、方向情報取得部１０５が取得した方向情報に一致する投影方向情報を有する投影画像関連情報から投影画像を取得する。なお、投影画像取得部３３４の構成及び処理等は、図１７に示した端末投影画像取得部３２６と同様であるため、ここでは詳細な説明は省略する。
【０３２９】
補正部３３５は、投影画像取得部３３４が取得した投影画像を補正する点を除けば、補正部１０７等と同様であるので、ここでは詳細な説明は省略する。
【０３３０】
出力部３３６は、投影画像取得部３３４が取得した投影画像を出力する。出力部３３６は、投影画像取得部３３４が取得した投影画像を直接出力する代わりに、投影画像取得部３３４が取得した投影画像を補正部３３５が補正した投影画像を出力するようにしてもよい。出力部３３６のその他の構成等については、上述した出力部３２８等と同様である。
【０３３１】
次に、画像処理システム１０００ｂのサーバ装置２ｂの動作について簡単に説明する。サーバ装置２ｂのサーバ側受信部２３１が、要求情報を受信すると、サーバ側送信部２３２が、この要求情報が示す対象物に対応する１または２以上の投影画像と、この１または２以上の投影画像にそれぞれ対応する投影方向情報との１または２以上の組と、距離関連情報とを、投影画像格納部２０１から読み出す。そして、サーバ側送信部２３２は、読み出した投影画像と投影方向情報との組と、距離関連情報とを端末装置３ｂに送信する。
【０３３２】
次に、画像処理システム１０００ｂのサーバ装置２ｂの動作の一例について図２０を用いて説明する。なお、図２０において、図１６と同一符号は同一または相当する処理ステップを示す。ただし、補正部３１３および出力部３１４が行う処理は、補正部３３５および出力部３３６が行うようにする。
【０３３３】
（ステップＳ８０１）マーカ認識部１０３は、ステップＳ１０３で認識したマーカのマーカ識別情報を取得する。
【０３３４】
（ステップＳ８０２）要求情報送信部３３２は、ステップＳ８０１で取得したマーカ識別情報と同じマーカ識別情報を有する要求情報を既に送信したか否かを判断する。送信した場合、ステップＳ１０４に進み、送信していない場合、ステップＳ８０３に進む。なお、送信していない場合、このマーカ識別情報を送信済のマーカ識別情報として図示しない記憶媒体等に蓄積する。
【０３３５】
（ステップＳ８０３）要求情報送信部３３２は、ステップＳ８０１で取得したマーカ識別情報を含む要求情報を、サーバ装置２ｂに送信する。
【０３３６】
（ステップＳ８０４）投影画像受信部３３３は、ステップＳ８０３で送信した要求情報が含むマーカ識別情報と対応付けられた投影画像と投影方向情報との１または２以上の組と、距離関連情報とを受信したか否かを判断する。受信した場合、ステップＳ８０５に進み、受信していない場合、ステップＳ８０４に戻る。
【０３３７】
（ステップＳ８０５）投影画像受信部３３３は、受信した投影画像と投影方向情報との１または２以上の組をそれぞれ有する１または２以上の投影画像関連情報と、距離関連情報とを端末投影画像格納部３３１に蓄積する。そして、ステップＳ１０４に進む。
【０３３８】
（ステップＳ８０６）投影画像取得部３３４は、端末投影画像格納部３３１に格納されている投影画像関連情報から、ステップＳ１０７で取得した方向情報と一致する投影方向情報と対応付けられた投影画像を取得する。そして、ステップＳ１０９に進む。
【０３３９】
なお、図２０のフローチャートのステップＳ１０９に示した補正の処理においては、適宜、端末投影画像格納部３３１に格納されている投影方向情報や、距離関連情報を用いるようにする。
【０３４０】
また、ここでは、マーカ認識部１０３がマーカ識別情報を取得してから要求情報を送信して投影画像を取得するようにしたが、端末装置３ｂの起動時等に、予め指定されている対象物に対応付けられたダウンロード可能な全ての投影画像と投影方向画像との組等をダウンロードするようにしても良い。また、端末装置３ｂの起動時等に、サーバ装置２ｂの投影画像格納部２０１に格納されているダウンロード可能な全ての投影画像と投影方向画像との組等をダウンロードするようにしても良い。
【０３４１】
なお、図２０のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０３４２】
以上、本実施の形態によれば、一の対象物についての全ての投影画像を、端末装置３ｂに一括ダウンロードさせて先読みさせることができるため、投影画像を取得する際に、毎回、方向情報をサーバ装置２ａに送信する必要がなく、投影画像を滑らかに出力することができる。特に、カメラ１０２の移動速度が速い場合においても滑らかに投影画像を取得することができる。
【０３４３】
なお、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０３４４】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段（端末送信部や端末受信部など）は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０３４５】
また、上記実施の形態１では、画像処理装置がスタンドアロンである場合について説明したが、画像処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
【０３４６】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＭＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部（例えば、ハードディスクやメモリ等の記録媒体）にアクセスしながらプログラムを実行してもよい。
【０３４７】
なお、上記各実施の形態における画像処理装置やサーバ装置、端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される投影画像格納部とにアクセス可能なコンピュータを、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、投影画像関連情報から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
【０３４８】
また、このプログラムは、コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムあって、コンピュータを、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ関連情報に対応する情報であるマーカ対応情報を、サーバ装置に送信する端末送信部と、一の対象物を異なる方向に投影した画像である投影画像であって、投影画像における一の対象物の投影方向に関する情報である投影方向情報が、端末送信部が送信したマーカ対応情報に対応する方向情報と一致する投影画像を、サーバ装置から受信する端末受信部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
【０３４９】
また、このプログラムは、コンピュータを、サーバ装置と端末装置とを備えた画像処理システムの端末装置として機能させるためのプログラムであって、一の対象物を１以上の方向に投影した１以上の投影画像をそれぞれ有する情報であって、各投影画像における一の対象物の投影方向に関する情報である投影方向情報をそれぞれ有する情報である１以上の投影画像関連情報が格納される端末投影画像格納部にアクセス可能なコンピュータを、一の対象物の投影画像の送信を要求する情報である要求情報を、サーバ装置に送信する要求情報送信部と、要求情報に応じた投影画像と投影画像に対応する投影方向情報との１以上の組をサーバ装置から受信し、受信した投影画像と投影方向情報との組を有する１以上の投影画像関連情報を、端末投影画像格納部に蓄積する投影画像受信部と、マーカを撮影した画像であるマーカ撮影画像を受け付ける撮影画像受付部と、マーカ撮影画像内のマーカを認識し、マーカに関する情報であるマーカ関連情報を取得するマーカ認識部と、マーカ認識部が取得したマーカ関連情報を用いて、マーカ撮影画像を撮影した際の方向に関する情報である方向情報を取得する方向情報取得部と、方向情報に一致する投影方向情報と対応付けられた投影画像を、端末投影画像格納部から取得する投影画像取得部と、投影画像取得部が取得した投影画像を出力する出力部として機能させるためのプログラムである。
【０３５０】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
【０３５１】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０３５２】
図２１は、上記プログラムを実行して、上記実施の形態による画像処理装置や、サーバ装置、端末装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【０３５３】
図２１において、コンピュータシステム９００は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０５、ＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）ドライブ９０６を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０３５４】
図２２は、コンピュータシステム９００の内部構成を示す図である。図２２において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０５、ＦＤドライブ９０６に加えて、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１３と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５とを備える。なお、コンピュータ９０１は、ＬＡＮへの接続を提供する図示しないネットワークカードを含んでいてもよい。
【０３５５】
コンピュータシステム９００に、上記実施の形態による画像処理装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９２１、またはＦＤ９２２に記憶されて、ＣＤ−ＲＯＭドライブ９０５、またはＦＤドライブ９０６に挿入され、ハードディスク９１４に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９１４に記憶されてもよい。プログラムは実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ＣＤ−ＲＯＭ９２１やＦＤ９２２、またはネットワークから直接、ロードされてもよい。
【０３５６】
プログラムは、コンピュータ９０１に、上記実施の形態による画像処理装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【０３５７】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０３５８】
以上のように、本発明にかかる画像処理装置等は、ＡＲの画像等を出力する装置等として適しており、特に、３Ｄモデルを用いて作成した画像では表現が難しい画像や、レンダリングに時間がかかる画像等をＡＲにおいて出力する装置等として有用である。
【符号の説明】
【０３５９】
１  画像処理装置
２、２ａ、２ｂ  サーバ装置
３、３ａ、３ｂ  端末装置
１００、２０１  投影画像格納部
１０１、３０１  撮影画像受付部
１０２  撮影部
１０２、３０２  カメラ
１０３  マーカ認識部
１０５  方向情報取得部
１０６、２１２、２２２、３３４  投影画像取得部
１０７、３１３、３２７、３３５  補正部
１０８、３１４、３２８、３３６  出力部
１０８ａ  モニタ
１２０  画像
２１１、２３１  サーバ側受信部
２１３、２２３、２３２  サーバ側送信部
３１１、３２１  端末送信部
３１２  端末受信部
３２２  周辺画像受信部
３２３  周辺投影画像格納部
３２４  蓄積部
３２５  判断部
３２６  端末投影画像取得部
３３１  端末投影画像格納部
３３２  要求情報送信部
３３３  投影画像受信部
１０００、１０００ａ、１０００ｂ  画像処理システム
【図１】
2014071850.tif 000051
【図２】
2014071850.tif 000052
【図３】
2014071850.tif 000053
【図４】
2014071850.tif 000054
【図５】
2014071850.tif 000055
【図６】
2014071850.tif 000056
【図７】
2014071850.tif 000057
【図８】
2014071850.tif 000058
【図９】
2014071850.tif 000059
【図１０】
2014071850.tif 000060
【図１１】
2014071850.tif 000061
【図１２】
2014071850.tif 000062
【図１３】
2014071850.tif 000063
【図１４】
2014071850.tif 000064
【図１５】
2014071850.tif 000065
【図１６】
2014071850.tif 000066
【図１７】
2014071850.tif 000067
【図１８】
2014071850.tif 000068
【図１９】
2014071850.tif 000069
【図２０】
2014071850.tif 000070
【図２１】
2014071850.tif 000071
【図２２】
2014071850.tif 000072