JP4307403B2 - 位置向き推定装置、位置向き推定方法、ならびに、プログラム - Google Patents

位置向き推定装置、位置向き推定方法、ならびに、プログラム Download PDF

Info

Publication number
JP4307403B2
JP4307403B2 JP2005095599A JP2005095599A JP4307403B2 JP 4307403 B2 JP4307403 B2 JP 4307403B2 JP 2005095599 A JP2005095599 A JP 2005095599A JP 2005095599 A JP2005095599 A JP 2005095599A JP 4307403 B2 JP4307403 B2 JP 4307403B2
Authority
JP
Japan
Prior art keywords
unit
orientation
screen
image
display unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005095599A
Other languages
English (en)
Other versions
JP2006279543A (ja
Inventor
昌二 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2005095599A priority Critical patent/JP4307403B2/ja
Publication of JP2006279543A publication Critical patent/JP2006279543A/ja
Application granted granted Critical
Publication of JP4307403B2 publication Critical patent/JP4307403B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、表示装置の画面に表示された目印を撮影部により撮影することによって当該撮影部の位置および向きを推定するのに好適な位置向き推定装置、位置向き推定方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、CRT(Cathode Ray Tube)などを利用した走査線方式の表示装置に対して、走査線による明暗を検知部により検知して、当該検知部の画面における位置を推定するライトペンの技術が提案されている。このような表示装置の画面に対する位置検出技術については、以下の文献に技術が開示されている。
特許第2550072号公報
しかしながら、表示装置としては、CRT以外に、走査線を利用しない液晶ディスプレイやプラズマディスプレイ、プロジェクタが普及しつつあり、走査線を利用したライトペンの位置推定技術が適用できない局面が増えつつある。また、射撃を行うゲーム装置の場合などでは、表示画面から離れた位置にある拳銃型コントローラの位置や向きを推定する必要もある。
したがって、従来とは異なる手法により、表示用の画面から離れた位置にあるものの位置や向きを簡易に推定する技術であって、電波や音波、超音波等を使うのではなく、位置や向きを推定したい部材に固定した安価なCCDカメラなどの撮影部を利用する技術が求められている。
本発明は、表示装置の画面に表示された目印を撮影部により撮影することによって当該撮影部の位置および向きを推定するのに好適な位置向き推定装置、位置向き推定方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る位置向き推定装置は、表示部、撮影部、基準画像取得部、現在画像取得部、推定部を備え、以下のように構成する。
まず、表示部は、複数の目印を画面内の互いに異なる位置に表示する。
この際に、各目印は、異なる形状や異なる色彩で表示すると、後述する推定が容易になる。また、各目印を表示するタイミングを微妙にずらすことによって、同様の効果を得ることも可能である。
表示部の画面としては、CRTを用いたモニタのほか、液晶ディスプレイ、プラズマディスプレイ、各種のプロジェクターを利用した場合のスクリーン等を適用することができる。すなわち、走査線による必要はなく、上記の各目印が表示できれば十分である。
一方、撮影部は、設定されている位置から設定されている向きで、表示された目印を撮影して、撮影した画像を出力する。
上記のように、撮影部は、典型的には、位置および向きを知りたい部材に固定される。したがって、撮影部の位置および向きは、位置および向きを知りたい部材の位置および向きと一致もしくは連動する。
撮影部としては、画面に表示される目印を撮影できるものであれば十分であるが、たとえば、今日安価に提供されているCCDカメラ等を利用することができる。
また、撮影の際に色彩フィルタをかけたり、各目印の表示タイミングに時間差がある場合は、その時間差に撮影のタイミングを合わせることにより、撮影された全画像中のどの場所に各目印が撮影されているか、を容易に得ることができる。
さらに、基準画像取得部は、表示部の画面に対して相対的に定められた所定の位置と所定の向きに撮影部の位置および向きを設定したときに、撮影部により撮影された画像(以下「基準画像」という。)を取得する。
典型的には、ユーザに対して、「画面から○○メートル離れ、カメラの視界の中央を画面中央に合わせる」ように促してから、基準画像を撮影する。このように、一旦基準画像を撮影することによって、表示部の画面のサイズなどの差異に対応することができる。
そして、現在画像取得部は、撮影部が現在設定されている位置と向きを推定するため、撮影部が現在設定されている位置および向きで撮影部により撮影された画像(以下「現在画像」という。)を取得する。
すなわち、撮影部の位置や向きが必要な場合に、現在画像取得部が動作することとなる。現在画像取得部が連続して動作することとしても良いし、表示部の画面の垂直同期割り込みの間隔等に合わせて所定の時間間隔で動作することとしても良いし、撮影部が固定される部材に用意されたスイッチやボタン、レバー、トリガ等をユーザが操作したときに動作することとしても良い。
一方、推定部は、取得された基準画像において表示された目印が撮影された位置と、取得された現在画像において表示された目印が撮影された位置と、から、表示部の画面に対して撮影部が現在設定されている位置および現在の向きを推定する。
製図や三次元グラフィックスの透視投影法では、表示部の画面に表示される目印と、視点に相当する撮影部とを結ぶ直線が、基準画像や現在画像が投影される平面と交叉する交点を、当該目印の投影先とする。
そこで、表示部の画面を固定した三次元座標系と、この座標系の中で、基準画像が配置される基準平面と、現在画像が配置される現在平面とを考えれば、すべての目印について、当該目印の表示部の画面における位置、基準平面における基準画像内の位置、その目印の現在平面における現在画像内の位置、撮影部の位置を通過する直線が存在するように、撮影部と基準画像が配置される基準平面と、現在画像が配置される現在平面とを配置することができる。
そして、複数の目印の座標に関する連立方程式を解くことによって、表示部の画面に対する基準平面や現在平面ならびに撮影部の位置を決定することができるのである。また、撮影部の向きは、撮影部の位置から現在平面へ垂らした垂線の向きとなる。このようにして、位置および向きを推定するのである。
本発明によれば、各種の表示方式により表示装置の画面に表示された目印を、安価なCCDカメラ等の撮影部により撮影することによって、当該表示装置の画面に対する当該撮影部の相対的な位置および向きを推定することができるようになる。
また、本発明の位置向き推定装置において、表示される目印の個数は4個以上であり、推定部は、取得された現在画像において表示された目印が撮影された位置と、推定されるべき位置から推定されるべき向きで撮影部により撮影されるべき画像において表示された目印が配置されるべき位置と、の距離の自乗和が最小となるように、推定されるべき位置と向きとを最尤推定するように構成することができる。
上記のように、目印の数は少なくとも4個あれば、撮影部の位置や向きを推定することができるが、実際には、表示部の画面の解像度や撮影部の画像の解像度、表示部および撮影部の平面性などから、各目印が撮影される位置には誤差が生じる。
そこで、目印の数が5個以上であるときは、最尤推定法を採用して、撮影部の位置および向きを推定するのである。
投射投影を行う三次元空間内で、表示部の画面に対する基準平面の位置および向きは固定されているから、撮影部の位置、現在平面の位置および向きを適宜変更し、基準平面内の目印と撮影部の位置とを結ぶ線分が、現在平面と交叉する点を考える。
この交点と現在平面の対応する目印の位置との距離が「誤差」となる。そこで、各目印についての、この誤差の自乗の総和を最小にするように、最尤推定するのである。
本発明によれば、表示および撮影される目印の個数を増やすことによって、表示や撮影の解像度等の問題をできるだけ避け、尤もらしく撮影部の位置や向きを推定することができる。
また、本発明の位置向き推定装置は、視点設定部をさらに備え、以下のように構成することができる。
すなわち、表示部は、仮想空間内を、当該仮想空間内に設定された視点の位置から視線の向きで見た様子を表す画像に、表示される目印を重ねて表示する。
これは、一般的な三次元グラフィックス技術による表示であるが、仮想空間の画像にオーバレイするように、位置および向きを推定するための目印を重ねて表示するのである。
一方、視点設定部は、当該仮想空間内に設定された視点の位置および視線の向きを、当該仮想空間内に配置され、表示部の画面に対応付けられるオブジェクトの位置および向き、ならびに、推定された表示部の画面に対する撮影部の現在の位置および現在の向きから定める。
たとえば、シューティングゲーム、アクションゲームなどに本発明を適用する場合、各種のコントローラを用いて仮想三次元空間内でキャラクターを移動させるが、これは、上記の基準平面や現在平面をプレイヤーの指示にしたがって移動させることに相当する。
本発明においては、表示部の画面に対する撮影部(および現在平面)の相対的な位置および向きが推定されるのであるから、これらの情報を用いれば、仮想三次元空間内におけるキャラクターの視点位置(銃を持っている位置)を決めることができる。
このように、本発明では、撮影部の位置や向きと仮想三次元空間内の視点の位置や向きを連動させて表示することができるようになり、ユーザによりリアルな仮想空間内の移動を感じさせることができるようになる。
本発明のその他の観点に係る位置向き推定方法は、複数の目印を画面内の互いに異なる位置に表示する表示部、設定されている位置から設定されている向きで表示された目印を撮影して撮影した画像を出力する撮影部を用い、基準画像取得工程、現在画像取得工程、推定工程を備え、以下のように構成する。
すなわち、基準画像取得工程では、表示部の画面に対して相対的に定められた所定の位置と所定の向きに撮影部の位置および向きを設定したときに、撮影部により撮影された画像(以下「基準画像」という。)を取得する。
一方、現在画像取得工程では、撮影部が現在設定されている位置と向きを推定するため、撮影部が現在設定されている位置および向きで撮影部により撮影された画像(以下「現在画像」という。)を取得する。
さらに、推定工程では、取得された基準画像において表示された目印が撮影された位置と、取得された現在画像において表示された目印が撮影された位置と、から、表示部の画面に対して撮影部が現在設定されている位置および現在の向きを推定する。
本発明のその他の観点に係るプログラムは、コンピュータを上記の位置向き推定装置として機能させ、コンピュータに上記の位置向き推定方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、表示装置の画面に表示された目印を撮影部により撮影することによって当該撮影部の位置および向きを推定するのに好適な位置向き推定装置、位置向き推定方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、プログラムを実行することにより、本発明の位置向き推定装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の位置向き推定装置が実現される。
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
インターフェイス104を介して接続されたコントローラ105は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
射撃ゲームなどの場合には、拳銃型コントローラ(図示せず)がインターフェイス104に接続され、ユーザの操作入力を受け付けるとともに、モニタに対する拳銃型コントローラの位置および向きを情報処理装置100において推定する。拳銃型コントローラの詳細については、後述する。
インターフェイス104を介して着脱自在に接続された外部メモリ106には、レーシングゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
図2は、本実施形態で利用される拳銃型コントローラの外観を示す説明図である。以下、本図を参照して説明する。
拳銃型コントローラ201には、ケーブル202ならびにコネクタ203が用意されており、コネクタ203がインターフェイス104に接続されて、情報処理装置100本体との情報のやりとりをする。
拳銃型コントローラ201の本体204は、概ね拳銃の形状をしており、トリガ205が用意されていて、プレイヤーがトリガ205を引くと、その旨がケーブル202およびコネクタ203を介して、情報処理装置100に伝達される。
また、拳銃型コントローラ201の銃身206の先端部には、CCD(Charge Coupled Device)カメラ207が配置されており、拳銃型コントローラ201の現在の位置から、銃身206の向きに、外界を撮影することができるようになっている。
撮影のタイミングは、情報処理装置100によってケーブル202およびコネクタ203を介して制御され、撮影された画像は、ケーブル202およびコネクタ203を介して情報処理装置100へ伝達される。
なお、本実施形態では、ゲーム用の情報処理装置100および拳銃型コントローラ201を組み合わせて使用するが、一般的なコンピュータと電子制御されるカメラとキーボードやマウスなどの指示入力装置の組合せによっても、同様の構成を実現することができる。また、従来のライトペンに類似するような形状のコントローラや入力デバイスを使用することとしても良い。これらの構成も、本発明の範囲に含まれる。
図3は、本実施形態に係る位置向き推定装置の概要構成を示す模式図である。図4は、ゲームにおいて本実施形態に係る位置向き推定装置を利用するゲーム制御処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本実施形態に係る位置向き推定装置301は、表示部302、撮影部303、基準画像取得部304、現在画像取得部305、推定部306、視点設定部307を備え、以下のように構成する。
本処理が開始されると、位置向き推定装置301の表示部302は、複数の目印を画面内の互いに異なる位置に表示する(ステップS401)。したがって、情報処理装置100のCPU 101の制御の下、画像処理部107と外部に接続される各種のモニタ(CRT、液晶ディスプレイ、プラズマディスプレイ、プロジェクタ等、各種のものを含む)と共働して、表示部302として機能する。
図5は、画面に目印が表示される様子を示す説明図である。以下、本図を参照して説明する。
画面501には、4個の目印502が、点線で示す長方形503の頂点および辺の上に表示されている。各目印502は、十文字形、鍵形(L字形)、もしくは丁字形(T字形)をしており、互いに異なる色で表示される。また、各目印502の下には、射撃の標的511を含む仮想空間内の様子をある視点から見た三次元グラフィックス画像が重ねて表示されている。すなわち、三次元グラフィックス画像よりも手前に各目印502があるように、オーバレイ、もしくは、スーパーインポーズされたように各目印502が表示されている。
一般的には、画面501は、640×480ドット等、あらかじめ定められた正方形形状のドットの集合として把握することができる。典型的には、表示される仮想空間の様子が変化しても目印502の画面501内における位置は固定されているものとする。
一方、情報処理装置100側の画像処理部107から見ればドット単位で同じ場所に目印502を表示するように設定していたとしても、モニタのサイズ(インチ数やプロジェクタとスクリーンの距離等)によって画面501の大きさが変わるから、画面501における各目印502の現実の表示位置も変化することになる。
そこで、ドット単位で見たi番目の目印502の画面501内における座標を(X[i],Y[i])と表記することとすると、現実のモニタに表示されるi番目の目印502の画面501内における座標は、各ドットの辺の長さをdとすれば、(X[i]d,Y[i]d)と表現することができる。
さて、このように画面501に表示された目印502を、位置向き推定装置301の撮影部303が撮影するのである。上述の通り、本実施形態では、拳銃型コントローラ201のCCDカメラ207が、撮影部303として機能する。
図6は、撮影部303により目印502が撮影される様子を概念的に説明する説明図である。
現実の三次元空間の中には、画面501が配置されており、その画面501内には目印502が表示されている。そこで、理解を容易にするため、画面501が三次元空間のx−y平面に存在するものとし、i番目の目印502の三次元空間内における座標がP[i] = (Px[i]d,Py[i]d,0)と標記できるように、xyz座標系を配置する。
一方、撮影部303は、この三次元空間内に配置される。また、いわゆるスクリーン座標系が配置される平面601が、この三次元空間内に仮想的に配置される。透視投影では、撮影部303と平面601の距離は一定であるものとして、撮影部303および平面601の法線ベクトルの向きが変化することとするのである。
そして、撮影部303と、目印502とを結ぶ直線が、平面601と交わる交点を当該目印502の投影点とする。これが、CCDカメラ207によって撮影された画像に表される目印502の位置、ということになる。
ここで、撮影部303の座標をs = (sx,sy,sz)とし、平面601の長さ1の法線ベクトルをn = (nx,ny,nz)とし、平面601内の基準軸(スクリーン座標系のx軸)の3次元空間における長さ1の方向ベクトルをh = (hx,hy,hz)とすると、これらの3つのベクトルによって、撮影部303の位置、向き、向きに対する回転量がすべて定まることになる。
ここで、これらの量の自由度を考えると、ベクトルsの自由度は3である。また、法線ベクトルnは、3つのパラメータを持つが、長さが1という制限を1つ持つから、自由度は2である。そして、方向ベクトルhについては、3つのパラメータを持つが、長さが1という制限1つと、nとhは直交し、
n・h = 0
が成立するという制限1つがあるので、自由度は1である。
また、平面601内のもう1つの基準軸(スクリーン座標系のy軸)の3次元空間における長さ1の方向ベクトルkは、
k = n×h
とおくことができる。
このように、撮影部303の位置および向きに関する自由度は、6ということになる。
スクリーン座標系は、実際にCCDカメラ207で撮影された位置を、その画素(ドット)の大きさによって適宜拡大縮小したものに相当する。そこで、CCDにおいて目印502が投射された位置をQ[i] = (Qx[i],Qy[i])とし、撮影部303と平面601(スクリーン座標)との距離をmとすれば、この三次元空間内における目印502の投射点の位置R[i]は、
R[i] = s + mn + Qx[i]h + Qy[i]k
となる。ここで、スクリーン座標系画素の辺の長さに相当する量が1となるように、距離mを定めるものとする。
一旦この距離mが定まれば、ズーム等を使用しない限り、撮影部303の位置や向きの変化に連動して、距離mを保つように、平面601が移動することになる。
原点から撮影部303までの変位ベクトルがs、そこから平面601の中心までの変位ベクトルがmn(平面601の法線ベクトルnに両者の距離mを乗じたもの)、そこからスクリーン座標におけるh方向、k方向の変位量がそれぞれQx[i],Qy[i]であることから、これが得られる。
さて、撮影部303と目印P[i] = (Px[i]d,Py[i]d,0)とを結ぶ直線は、撮影部303と投射点R[i]とを結ぶ直線と一致するから、ベクトルP[i] - sとベクトルR[i] - sとは平行である。
したがって、パラメータt[i](方向ベクトルの長さの比のパラメータ)を使って、
t[i](P[i] - s) = R[i] - s
すなわち、
t[i](P[i] - s) = mn + Qx[i]h + Qy[i]k
と書くことができる。
これは、ベクトルに関する等式であるからスカラー量で考えると、3つの方程式を含む。一方、目印502が1つにつき自由度が1つ増えることになる。
これらを実際に考えたときの自由度は、以下のように整理することができる。
画面501の解像度に関するパラメータdの自由度1
画面501に対する撮影部303の位置と向きの自由度6
撮影部303の解像度に関するパラメータmの自由度1
目印502の方向ベクトルの長さの比のパラメータt[i]の自由度
一方、目印502が1つあると、ベクトル方程式が1つ構成されるので、自由度を3つ減らすことができる。
したがって、目印502がN個あるとき、
1 + 6 + 1 + N ≦ 3N
が成立すれば、すなわち、N ≧ 4であれば、撮影部303の位置s = (sx,sy,sz)および向きn = (nx,ny,nz)を定めることができることになる。この際に、制約が多くなりすぎるときには、以下に述べる最尤推定を用いることとなる。
すなわち、変数s = (sx,sy,sz),n = (nx,ny,nz),d,m,t[1],…,t[N]が、1≦i≦Nについての方程式
t[i](P[i] - s) = mn + Qx[i]h + Qy[i]k
をできるだけ満たすようにすれば良いのであるから、誤差ベクトル
e[i] = t[i](P[i] - s) - mn + Qx[i]h + Qy[i]k
を考え、自乗誤差の総和(評価関数)
E = Σi=1 N |e[i]|2
を最小にするように、パラメータs = (sx,sy,sz),n = (nx,ny,nz),d,m,t[1],…,t[N]を、最急降下法で求める、という手法が考えられる。
最急降下法は、非線型計画法で広く用いられている手法であり、数値計算による数値微分を応用して、ある評価関数が極値をとるようなパラメータを求める手法である。
さて、情報処理装置100は、モニタに「画面から○○メートル離れ、拳銃型コントローラの照準を画面中央に合わせて、トリガを引いてください」というメッセージを目印502を隠さないように重ねて表示して(ステップS402)、ユーザがトリガ205を引いたか否かを判断し(ステップS403)、引いていない間(ステップS403;No)、ステップS403に戻る。
ユーザがトリガ205を引いた場合(ステップS403;Yes)、基準画像取得部304は、拳銃型コントローラ201の現在CCDカメラ207で撮影されている画像をRAM 103に取得する(ステップS404)。
「画面から○○メートル離れ、拳銃型コントローラの照準を画面中央に合わせ」ると、撮影部303を構成する拳銃型コントローラ201の現在CCDカメラ207の位置と向きは、表示部302の画面に対して相対的に定められた所定の位置と所定の向きに設定される。
したがって、ステップS404において取得される画像が、基準画像となる。そこで、推定部306は、表示されている目印502の位置と基準画像に撮影された目印502の位置から、撮影部303の位置s = (sx,sy,sz)および向きn = (nx,ny,nz)を定めるとともに、パラメータd,mなどを最尤推定する(ステップS405)。
このとき、「画面から○○メートル離れ、拳銃型コントローラの照準を画面中央に合わせ」たとしても、それには必ず誤差が含まれるので、ユーザに対するこの指示によって定められる撮影部303の位置や向きの数値は、あくまで最急降下法の繰り返しの初期値として利用することとなる。
以降の処理では、パラメータd,mとしては、ステップS405で求められた値を定数として使うことにより、最急降下法において考慮すべきパラメータの個数を減らすことができる。
したがって、上記の定数や測定値、これらのパラメータの計算過程での一時的な値を記憶するRAM 103とCPU 101が共働して、推定部306として機能する。
ついで、ゲーム用の情報処理装置100は、ゲームにおいて想定される仮想空間内に標的オブジェクトを配置する(ステップS406)。図6に示すように、標的オブジェクト611は、撮影部303から見て表示部302の画面よりも遠い側に配置されている。すなわち、標的オブジェクト611の座標W = (Wx,Wy,Wz)としたとき、szとWzの符号が異なることになる。
なお、本実施形態の説明では、理解を容易にするため、標的オブジェクト611は1つとしているが、複数用意した場合も同様に取り扱うことができる。
上記のように、パラメータdが決定されていれば、ゲーム内の仮想空間と、現実世界の空間との位置関係を一対一に決定することができる。たとえば、両者の数値を完全に一致させれば、モニタの画面は、仮想世界を覗く「窓」として機能することになる。
そこで、視点設定部307は、推定部306により推定され、RAM 103の撮影部303の現実世界における位置と向きs = (sx,sy,sz),n = (nx,ny,nz)を格納するための領域に格納された値から、これに対応する位置と向きに仮想世界における視点と視線の方向を設定する(ステップS407)。
仮想世界に配置される標的オブジェクト611や、視点の位置、視線の方向は、RAM 103などに格納されるため、CPU 101がRAM 103などと共働して、視点設定部307として機能することとなる。
シューティングゲーム、アクションゲームなどでは、各種のコントローラを用いて仮想三次元空間内でキャラクターを移動させるが、これは、「窓枠」が仮想世界を移動することに対応する。そして、「窓枠」からの相対的な位置関係から、キャラクターの現在の位置や向きが決められるのである。
このように、本実施形態では、撮影部303の位置や向きと仮想三次元空間内の視点の位置や向きを連動させて表示することができるようになり、ユーザによりリアルな仮想空間内の移動を感じさせることができるようになる。
なお、この三次元グラフィックス画像生成の際に、仮想三次元空間内の視点の位置から視線の方向へ伸ばした直線も描画することとしておくと、レーザ光線を用いて標的を照らすことにより射撃の際の目標とするような現実の軍隊や警察における射撃の様子をシミュレートすることができる。
ついで、当該設定された視点で当該設定された視線の方向に当該仮想世界の様子を見た三次元グラフィックス画像に、目印502を重ねた画像を生成し(ステップS408)、垂直同期割り込みが発生するまで待機する(ステップS409)。この待機の間は、他の処理をコルーチン的に行っても良い。
また、三次元グラフィックス画像の生成は、CPU 101の制御のもと、画像処理部107がRAM 103と共働しておこなう。
割り込みが発生したら、CPU 101の制御のもと、画像処理部107がRAM 103に生成された画像をフレームメモリに転送する(ステップS410)。これにより、現在の拳銃型コントローラ201からモニタという窓枠を透かして仮想世界を覗いた様子が、モニタに表示されることになる。
ついで、現在画像取得部305は、拳銃コントローラ201のCCDカメラ207の現在の位置と向きをさらに推定するため、CCDカメラ207が現在撮影している画像(以下「現在画像」という。)をRAM 103に取得し(ステップS411)、推定部306は、現在画像に配置されている目印502の位置から、上記基準画像の場合と同様に、CCDカメラ207の位置と向きとを推定する(ステップS412)。
そして、RAM 103内に用意されたCCDカメラ207の現在の位置と向きを記憶する領域(この領域に記憶されている値を、視点設定部307が参照する。)に、ここで推定された値を書き込んで、撮影部303の位置を更新する(ステップS413)。
さらに、情報処理装置100は、拳銃型コントローラ201のトリガ205が引かれているか調べ(ステップS414)、引かれていなければ(ステップS414;No)、ステップS408に戻る。
一方引かれていれば(ステップS414;Yes)、撮影部303により推定された現在の撮影部303の位置および向きs = (sx,sy,sz),n=(nx,ny,nz)と、標的オブジェクト611の仮想空間内における座標W = (Wx,Wy,Wz)から、射撃が成功したか否かを判定する(ステップS415)。
ここで、現実世界の座標と仮想世界の座標とを、窓枠である目印502の位置を基準に一致させるものとする。
図6では、標的オブジェクト611がモニタの画面に投影された標的画像511も表示されている。視点sからベクトルnの方向へ延長した先に標的画像511も標的オブジェクト611も存在するので、これは、射撃が成功する場合に相当する。
射撃が成功したか否かは、最も単純には、銃身の方向ベクトル
n = (nx,ny,nz)
と、拳銃コントローラ201から標的オブジェクト611への方向ベクトル
W - s = (Wx-sx,Wy-sy,Wz-sz)
とのなす角θが、一定の角度未満である、ということによって判断できる。
これはすなわち、ある1未満の1に極めて近い閾値Fを用いて、
F ≦ cosθ = (n・W)/(|n| |W|) ≦ 1
が成立するか否かによって判定できる。
このほか、標的オブジェクト611の外周の点(標的オブジェクト611を構成するポリゴンの頂点の一部)を何個か設定しておき、視点の位置sからこれらの点へ辺を引くことによってできる角錐の中に、視点の位置から発する方向ベクトルnが含まれることをもって、射撃が成功したと判断しても良い。
射撃が成功した場合(ステップS415;Yes)、ミッションが成功した旨を画面に表示して(ステップS416)、本処理を終了する。
一方、射撃が成功しなかった場合(ステップS415;No)、ステップS408に戻って、ゲームを続ける。
このように、本実施形態によれば、モニタの画面501に表示された目印502をCCDカメラ207で撮影することによって、拳銃型コントローラ201の位置や向きを推定することができる。
なお、目印502の色をそれぞれ異なるものとしておいたり、上記のように、モニタ自体を仮想世界への覗き窓として機能させる場合には、特殊な模様が描かれた窓枠の図形を目印502とすることによって、基準画像や現在画像から目印502が撮影された位置が同定しやすくなる。
以上説明したように、本発明によれば、表示装置の画面に表示された目印を撮影部により撮影することによって当該撮影部の位置および向きを推定するのに好適な位置向き推定装置、位置向き推定方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
本発明の位置向き推定装置が実現される典型的な情報処理装置の概要構成を示す模式図である。 本実施形態に係る拳銃型コントローラの外観を示す説明図である。 本実施形態に係る位置向き推定装置の概要構成を示す模式図である。 ゲーム制御処理の制御の流れを示すフローチャートである。 画面に目印が表示される様子を示す説明図である。 撮影部により目印が撮影される様子を概念的に説明する説明図である。
符号の説明
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
201 拳銃型コントローラ
202 ケーブル
203 コネクタ
204 拳銃型コントローラ本体
205 トリガ
206 銃身
207 CCDカメラ
301 位置向き推定装置
302 表示部
303 撮影部
304 基準画像取得部
305 現在画像取得部
306 推定部
307 視点設定部
501 画面
502 目印
503 長方形
511 標的画像
601 平面
611 標的オブジェクト

Claims (5)

  1. 4個以上の目印を画面内の互いに異なる位置に表示する表示部、
    設定されている位置から設定されている向きで、前記表示された目印を撮影して、撮影した画像を出力する撮影部、
    前記表示部の画面に対して相対的に定められた所定の位置と所定の向きに前記撮影部の位置および向きを設定したときに、前記撮影部により撮影された画像(以下「基準画像」という。)を取得する基準画像取得部、
    前記撮影部が現在設定されている位置と向きを推定するため、前記撮影部が現在設定されている位置および向きで前記撮影部により撮影された画像(以下「現在画像」という。)を取得する現在画像取得部、
    前記取得された基準画像において前記表示された目印が撮影された位置と、前記取得された現在画像において前記表示された目印が撮影された位置と、から、前記表示部の画面の解像度と、前記表示部の画面に対して前記撮影部が現在設定されている位置および現在の向きを推定する推定部
    を備えることを特徴とする位置向き推定装置。
  2. 請求項1に記載の位置向き推定装置であって、
    前記表示される目印の個数Nは5以上であり、
    前記推定部は、
    前記表示部の画面の解像度d、
    前記取得された基準画像において前記表示された目印が撮影された位置
    (Px[1],Py[1]),(Px[2],Py[2]),…,(Px[N],Py[N])、
    に対して定められる位置ベクトル
    P[1]=(Px[1]d,Py[1]d,0),P[2]=(Px[2]d,Py[2]d,0),…,P[N]=(Px[N]d,Py[N]d,0)、
    前記取得された現在画像において前記表示された目印が撮影された位置
    (Qx[1],Qy[1]),(Qx[2],Qy[2]),…,(Qx[N],Qy[N])、
    に対して定められる位置ベクトル
    Q[1]=(Qx[1]d,Qy[1]d,0),Q[2]=(Qx[2]d,Qy[2]d,0),…,Q[N]=(Qx[N]d,Qy[N]d,0)、
    前記撮影部の位置ベクトルs = (sx,sy,sz)、
    前記撮影部の撮影方向ベクトルn = (nx,ny,nz)、
    前記撮影方向ベクトルnに直交する姿勢ベクトルであって、投影面の前記撮影方向ベクトルn周りの姿勢を表す姿勢ベクトルh = (hx,hy,hz)、
    前記撮影方向ベクトルと前記姿勢ベクトルとに直交する方向ベクトルk = n×h、
    前記撮影部と前記投影面との距離m、
    長さの比のパラメータt[1],t[2],…,t[N]
    により、整数i = 1,2,…,Nに対して定められる誤差ベクトル
    e[i] = t[i](P[i] - s) - mn + Qx[i]h + Qy[i]k
    の大きさの自乗総和
    |E| = Σ i=1 N |e[i]| 2
    を最小にするように、d,s = (sx,sy,sz),n = (nx,ny,nz),m,t[1],t[2],…,t[N]を最急降下法で計算することにより、前記撮影部が現在設定されている位置sおよび現在の向きnを推定する
    ことを特徴とする位置向き推定装置
  3. 請求項1または2に記載の位置向き推定装置であって、
    前記表示部は、仮想空間内を、当該仮想空間内に設定された視点の位置から視線の向きで見た様子を表す画像に、前記表示される目印を重ねて表示し、
    当該仮想空間内に設定された視点の位置および視線の向きを、当該仮想空間内に配置され、前記表示部の画面に対応付けられるオブジェクトの位置および向き、ならびに、前記推定された前記表示部の画面に対する前記撮影部の現在の位置および現在の向きから定める視点設定部
    をさらに備えることを特徴とする位置向き推定装置
  4. 4個以上の目印を画面内の互いに異なる位置に表示する表示部、設定されている位置から設定されている向きで前記表示された目印を撮影して撮影した画像を出力する撮影部を用いる位置向き推定方法であって、
    前記表示部の画面に対して相対的に定められた所定の位置と所定の向きに前記撮影部の位置および向きを設定したときに、前記撮影部により撮影された画像(以下「基準画像」という。)を取得する基準画像取得工程、
    前記撮影部が現在設定されている位置と向きを推定するため、前記撮影部が現在設定されている位置および向きで前記撮影部により撮影された画像(以下「現在画像」という。)を取得する現在画像取得工程、
    前記取得された基準画像において前記表示された目印が撮影された位置と、前記取得された現在画像において前記表示された目印が撮影された位置と、から、前記表示部の画面の解像度と、前記表示部の画面に対して前記撮影部が現在設定されている位置および現在の向きを推定する推定工程
    を備えることを特徴とする方法。
  5. コンピュータを、
    4個以上の目印を画面内の互いに異なる位置に表示する表示部、
    設定されている位置から設定されている向きで、前記表示された目印を撮影して、撮影した画像を出力する撮影部、
    前記表示部の画面に対して相対的に定められた所定の位置と所定の向きに前記撮影部の位置および向きを設定したときに、前記撮影部により撮影された画像(以下「基準画像」という。)を取得する基準画像取得部、
    前記撮影部が現在設定されている位置と向きを推定するため、前記撮影部が現在設定されている位置および向きで前記撮影部により撮影された画像(以下「現在画像」という。)を取得する現在画像取得部、
    前記取得された基準画像において前記表示された目印が撮影された位置と、前記取得された現在画像において前記表示された目印が撮影された位置と、から、前記表示部の画面の解像度と、前記表示部の画面に対して前記撮影部が現在設定されている位置および現在の向きを推定する推定部
    として機能させることを特徴とするプログラム。
JP2005095599A 2005-03-29 2005-03-29 位置向き推定装置、位置向き推定方法、ならびに、プログラム Active JP4307403B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005095599A JP4307403B2 (ja) 2005-03-29 2005-03-29 位置向き推定装置、位置向き推定方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005095599A JP4307403B2 (ja) 2005-03-29 2005-03-29 位置向き推定装置、位置向き推定方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2006279543A JP2006279543A (ja) 2006-10-12
JP4307403B2 true JP4307403B2 (ja) 2009-08-05

Family

ID=37213817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005095599A Active JP4307403B2 (ja) 2005-03-29 2005-03-29 位置向き推定装置、位置向き推定方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP4307403B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023238362A1 (ja) * 2022-06-10 2023-12-14 三菱電機株式会社 センサ制御装置、センサ制御方法、および、センサ制御システム

Also Published As

Publication number Publication date
JP2006279543A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
US8159507B2 (en) Display device, display method, information recording medium and program
US7053916B2 (en) Information presentation apparatus and information processing method thereof
JP3786132B2 (ja) ゲーム画像処理プログラム及び記憶媒体
US7268781B2 (en) Image display control method
JP5675260B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法
JP5939733B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法
JP2019197279A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
US8643679B2 (en) Storage medium storing image conversion program and image conversion apparatus
JP5847610B2 (ja) Ar技術を用いたコンピュータ・グラフィックス画像処理システム及び方法
EP1174829A2 (en) Three-dimensional image processing unit
JP4307403B2 (ja) 位置向き推定装置、位置向き推定方法、ならびに、プログラム
JP6590324B2 (ja) 情報処理装置、情報処理装置のプログラム、情報処理システム、及び、表示方法
JP4575937B2 (ja) 画像生成装置、画像生成方法、ならびに、プログラム
JP2009244936A (ja) 画像生成装置、広視野画像生成方法、および、プログラム
TWI286719B (en) System of simulating flight navigation and the method of using the same
JPH11232483A (ja) 情報処理装置および情報記録媒体
US11948257B2 (en) Systems and methods for augmented reality video generation
JP2005208867A (ja) 3次元コンピュータ・グラフィックス・モデリング・システム
JP4726336B2 (ja) 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP4726347B2 (ja) 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム
JP2002312810A (ja) 合成動画像生成装置および合成動画像生成方法
JP2002269585A (ja) 画像処理方法、画像処理装置、記憶媒体及びプログラム
JP2009048256A (ja) 画像表示装置、画像表示方法、ならびに、プログラム
JPH09134453A (ja) 映像表示装置
JP2005050100A (ja) 映像処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081029

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090421

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090428

R150 Certificate of patent or registration of utility model

Ref document number: 4307403

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250