(57)【特許請求の範囲】
【請求項１】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置であって、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出し、その結果に基づき、前記情報処理に用いる当該対象物の位置情報を取得する対象物検出部と、
前記対象物検出部による前記位置情報の取得処理と並行して、前記対象物の像の検出結果に基づき、前記ステレオ画像の上下方向の位置ずれ量を、キャリブレーションの必要性を判定するためのパラメータとして監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定するキャリブレーション判定部と、
カメラキャリブレーションが必要と判定された際、ユーザにその旨を通知するための出力データを生成し出力する出力データ生成部と、
を備え、
前記キャリブレーション判定部は、前記ステレオカメラが撮影している動画のうち複数フレーム分のステレオ画像の上下方向の位置ずれ量を蓄積して記録し、それに基づきカメラキャリブレーションの要、不要の判定に用いる有効な位置ずれ量を決定することを特徴とする情報処理装置。
【請求項２】
前記キャリブレーション判定部は、前記対象物検出部による対象物の像の検出結果に基づき、前記上下方向の位置ずれ量の蓄積の開始および終了の少なくともいずれかのタイミングを決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記対象物検出部は、前記対象物として、所定の配置で物体表面に設けた複数のマーカーの像を検出し、
前記キャリブレーション判定部は、前記対象物検出部が検出したマーカーの像の数に基づき、前記上下方向の位置ずれ量の蓄積の開始および終了のタイミングを決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記キャリブレーション判定部は、前記複数フレーム分のステレオ画像において検出された、対応する対象物の像の位置座標の上下方向の差分値を対象物ごとに取得していき、差分値ごとにその頻度を表した情報に基づき、前記有効な位置ずれ量を決定することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記キャリブレーション判定部は、前記対象物検出部による各フレームにおける対象物の像の検出結果に基づき、前記差分値ごとに加算する頻度に重み付けを行うことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置が行う情報処理方法であって、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出し、その結果に基づき、前記情報処理に用いる当該対象物の位置情報を取得するステップと、
前記位置情報を取得するステップと並行して、前記対象物の像の検出結果に基づき、前記ステレオ画像の上下方向の位置ずれ量を、キャリブレーションの必要性を判定するためのパラメータとして監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定するステップと、
カメラキャリブレーションが必要と判定された際、ユーザにその旨を通知するための出力データを生成して出力するステップと、
を含み、
前記判定するステップは、前記ステレオカメラが撮影している動画のうち複数フレーム分のステレオ画像の上下方向の位置ずれ量を蓄積して記録し、それに基づきカメラキャリブレーションの要、不要の判定に用いる有効な位置ずれ量を決定することを特徴とする情報処理方法。
【請求項７】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行うコンピュータに、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出し、その結果に基づき、前記情報処理に用いる当該対象物の位置情報を取得する機能と、
前記位置情報の取得処理と並行して、前記対象物の像の検出結果に基づき、前記ステレオ画像の上下方向の位置ずれ量を、キャリブレーションの必要性を判定するためのパラメータとして監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定する機能と、
カメラキャリブレーションが必要と判定された際、ユーザにその旨を通知するための出力データを生成し出力する機能と、
を実現させ、
前記判定する機能は、前記ステレオカメラが撮影している動画のうち複数フレーム分のステレオ画像の上下方向の位置ずれ量を蓄積して記録し、それに基づきカメラキャリブレーションの要、不要の判定に用いる有効な位置ずれ量を決定することを特徴とするコンピュータプログラム。
【請求項８】
ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行うコンピュータに、
前記ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出し、その結果に基づき、前記情報処理に用いる当該対象物の位置情報を取得する機能と、
前記位置情報の取得処理と並行して、前記対象物の像の検出結果に基づき、前記ステレオ画像の上下方向の位置ずれ量を、キャリブレーションの必要性を判定するためのパラメータとして監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定する機能と、
カメラキャリブレーションが必要と判定された際、ユーザにその旨を通知するための出力データを生成し出力する機能と、
を実現させ、
前記判定する機能は、前記ステレオカメラが撮影している動画のうち複数フレーム分のステレオ画像の上下方向の位置ずれ量を蓄積して記録し、それに基づきカメラキャリブレーションの要、不要の判定に用いる有効な位置ずれ量を決定するコンピュータプログラムを記録したことを特徴とする、コンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像における対象物の検出を伴う情報処理技術に関する。
【背景技術】
【０００２】
ユーザの体やマーカーをカメラで撮影し、その像の領域を別の画像で置換してディスプレイに表示するゲームが知られている（例えば、特許文献１参照）。また、カメラで撮影された口や手の動きをアプリケーションの操作指示として受け取るユーザインタフェースシステムも知られている。このように、実世界を撮影しその動きに反応する仮想世界を表示させたり、何らかの情報処理を行ったりする技術は、携帯端末からレジャー施設まで、その規模によらず幅広い分野で利用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術において、撮影画像から実世界に係る情報をいかに正確に取得するかは常に重要な課題である。例えば、撮像環境の変化や撮像装置の経年変化などによって各種撮影パラメータが変化した場合、情報の取得精度が低下する可能性がある。しかしながらこのような内部パラメータの変化は一般的には不可視の領域であり、ユーザには認識しづらい。その結果ユーザは、装置のパフォーマンスの低下に不満を抱きつつそのまま使用しつづける、という状況にもなり得る。処理開始前などに定期的にキャリブレーションの実施をユーザに促すことで最適条件を得ることも考えられるが、ユーザの負担が大きくなる。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を利用した対象物の追跡を伴う情報処理の精度を、ユーザの手間を少なく容易に維持できる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置であって、当該ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出する対象物検出部と、当該対象物の像の検出結果に基づき、ステレオ画像の上下方向の位置ずれ量を監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定するキャリブレーション判定部と、カメラキャリブレーションが必要と判定された際、その旨の情報を出力する出力データ生成部と、を備えることを特徴とする。
【０００７】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、ステレオカメラが撮影した画像から対象物の位置情報を取得し情報処理を行う情報処理装置が行う情報処理方法であって、ステレオカメラが左右の視点から撮影したステレオ画像から対象物の像を検出するステップと、当該対象物の像の検出結果に基づき、ステレオ画像の上下方向の位置ずれ量を監視し、当該位置ずれ量が所定の条件を満たしたときカメラキャリブレーションが必要であると判定するステップと、カメラキャリブレーションが必要と判定された際、その旨の情報を出力するステップと、を含むことを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、撮影画像を利用した情報処理の精度を容易に維持できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態におけるＨＭＤの外観形状の例を示す図である。
【図４】本実施の形態において撮像装置が撮影した画像を用いて対象物を追跡する手法を説明するための図である。
【図５】左右のカメラの光軸または縦方向の位置がずれているときのステレオ画像を例示する図である。
【図６】本実施の形態における情報処理装置の機能ブロックの構成を示す図である。
【図７】本実施の形態における情報処理装置が情報処理を行いながら、キャリブレーションの必要なタイミングを判定する処理手順を示すフローチャートである。
【図８】本実施の形態において有効な位置データが得られたか否かを判定する手法の一例を説明するための図である。
【図９】本実施の形態において、画像中のマーカーの像の数を利用してデータ蓄積開始と終了を判定する場合の、位置データの有効性確認の処理手順を示すフローチャートである。
【図１０】本実施の形態における、有効なずれ量とキャリブレーションの必要性の判定処理との関係を説明するための図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム８は、対象物を撮影する撮像装置１２、撮影した画像に基づき情報処理を行う情報処理装置１０、情報処理の結果として得られた画像を表示する平板型ディスプレイ１６およびヘッドマウントディスプレイ（以下、「ＨＭＤ」と呼ぶ）１８、ユーザが操作する入力装置１４を含む。
【００１２】
情報処理装置１０と、撮像装置１２、入力装置１４、平板型ディスプレイ１６、ＨＭＤ１８とは、有線ケーブルで接続されても、Bluetooth（登録商標）など既知の無線通信技術により接続されてもよい。また情報処理装置１０が実施する情報処理によっては、入力装置１４、平板型ディスプレイ１６、ＨＭＤ１８は選択的に導入してもよい。またこれらの装置の外観形状は図示するものに限らない。さらにこれらのうち２つ以上の装置を一体的に備えた装置としてもよい。例えば情報処理装置１０、入力装置１４、平板型ディスプレイ１６を、それらを備えた携帯端末などで実現してもよい。
【００１３】
撮像装置１２は、ユーザなどの対象物を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、情報処理装置１０に送出する機構とを有する。カメラはＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的な可視光センサを既知の間隔で左右に配置したステレオカメラである。
【００１４】
情報処理装置１０は、撮像装置１２から送信されたデータを用いて必要な情報処理を行い、画像や音声などの出力データを生成する。ここで情報処理装置１０が行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜決定してよい。例えば、撮影画像に対し追跡処理を施すことにより、対象物であるユーザの動作を反映させたキャラクタが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりする。
【００１５】
このとき入力装置１４に設けたマーカーを利用して入力装置１４の動きを取得してもよい。またＨＭＤ１８の外面に設けた複数のマーカーを追跡することにより、ＨＭＤ１８を装着したユーザの頭部の位置や姿勢を特定し、それに対応して動く視点から見た仮想世界をＨＭＤ１８に表示させてもよい。情報処理装置１０が生成した出力データは、ＨＭＤ１８および平板型ディスプレイ１６の少なくとも一方に送信される。
【００１６】
ＨＭＤ１８は、ユーザが頭に装着することによりその眼前に位置する有機ＥＬパネルなどの表示パネルに画像を表示する表示装置である。例えば左右の視点から見た視差画像を生成し、表示画面を２分割してなる左右の領域にそれぞれ表示させることにより、画像を立体視させてもよい。ただし本実施の形態をこれに限る主旨ではなく、表示画面全体に１つの画像を表示させてもよい。ＨＭＤ１８はさらに、ユーザの耳に対応する位置に音声を出力するスピーカーやイヤホンを内蔵していてもよい。
【００１７】
平板型ディスプレイ１６は、２次元の画像を出力するディスプレイおよび音声を出力するスピーカーを有するテレビでよく、例えば液晶テレビ、有機ＥＬテレビ、プラズマテレビ、ＰＣディスプレイ等である。あるいはタブレット端末や携帯端末のディスプレイおよびスピーカーであってもよい。入力装置１４は、ユーザが操作することにより、処理の開始、終了、機能の選択、各種コマンド入力などの要求を受け付け、情報処理装置１０に電気信号として供給する。
【００１８】
入力装置１４は、ゲームコントローラ、キーボード、マウス、ジョイスティック、平板型ディスプレイ１６の表示画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはそれらの組み合わせによって実現してよい。入力装置１４はさらに、所定の色で発光する素子またはその集合からなる発光マーカーを備えていてもよい。この場合、情報処理装置１０が撮影画像を用いてマーカーの動きを追跡することにより、入力装置１４自体の動きをユーザ操作とすることができる。なお入力装置１４を、発光マーカーとそれを把持する機構のみで構成してもよい。
【００１９】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、平板型ディスプレイ１６やＨＭＤ１８へデータを出力する出力部３６、撮像装置１２や入力装置１４からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００２０】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６に出力する。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００２１】
図３はＨＭＤ１８の外観形状の例を示している。この例においてＨＭＤ１８は、出力機構部１０２および装着機構部１０４で構成される。装着機構部１０４は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド１０６を含む。装着バンド１０６は各ユーザの頭囲に合わせて長さの調節が可能な素材または構造とする。例えばゴムなどの弾性体としてもよいし、バックルや歯車などを利用してもよい。
【００２２】
出力機構部１０２は、ＨＭＤ１８をユーザが装着した状態において左右の目を覆うような形状の筐体１０８を含み、内部には装着時に目に正対するように表示パネルを備える。そして筐体１０８の外面には、発光マーカー１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどを設ける。発光マーカーの数や配置は特に限定されないが、本実施の形態では出力機構部１０２の筐体前面の４隅および中央に設ける。さらに、装着バンド１０６後方の両側面にも発光マーカー１１０ｆ、１１０ｇを設けてよい。なお発光マーカー１１０ｄ、１１０ｅは出力機構部１０２の下側、発光マーカー１１０ｆ、１１０ｇは装着バンド１０６の外側にあり、図３の視点からは本来は見えないため、外周を点線で表している。
【００２３】
本実施の形態の情報処理装置１０は、ＨＭＤ１８などの対象物に設けた発光マーカーの像を撮影画像から検出し、それに基づき対象物の位置や姿勢を取得することを基本とする。これにより上述のように、ユーザ自身の位置や姿勢を取得し、それに応じた視点からの仮想世界をＨＭＤ１８に表示させるなど、ユーザの動きや位置に応じた情報処理を行う。ここで発光マーカーは、ＨＭＤ１８に設けたものに限らず、入力装置１４に設けたものやユーザの体に直接、取り付けたものなどでもよい。
【００２４】
すなわち情報処理の内容に応じて、追跡したい対象物に発光マーカーが装着されていればよい。人の頭部の位置や姿勢を、ＨＭＤ１８を用いて追跡する、という態様でない場合、表示装置はＨＭＤ１８に限らなくてよい。またマーカーは、所定の色や形状を有し、撮影空間にある他の物からの識別が可能な物や図形であればよく、発光体に限らない。
【００２５】
図４は、撮像装置１２が撮影した画像を用いて対象物を追跡する手法を説明するための図である。上述の通り撮像装置１２は、２つのカメラを既知の間隔で左右に配置したステレオカメラで構成される。当該ステレオカメラで左右の視点から撮影した一対の画像（ステレオ画像）には、カメラの間隔と被写体のカメラからの距離に依存して、画像の横方向に視差が生じる。図示するステレオ画像１２０ａ、１２０ｂには、図３で示したＨＭＤ１８のように、網掛けで示した５つのマーカーの像が、左視点からの画像１２０ａにおいては右寄りに、右視点からの画像１２０ｂにおいては左よりに、それぞれ写っている。
【００２６】
これらの像を色、形状、配置などに基づき検出し、両画像で対応するマーカーの像の横方向の位置座標の差分（例えばｘ＿ｌ−ｘ＿ｒ）を求めれば、それに基づき撮像面から当該マーカーまでの距離を取得できる。ステレオ画像における像の横方向の位置の差分に基づき撮像面からの距離を算出する手法は、三角測量の原理に基づく一般的なものである。そして算出した距離に基づき、画像平面でのマーカーの位置座標を実空間に逆射影することにより、実空間でのマーカーの位置、ひいては対象物の位置を特定できる。
【００２７】
撮像装置１２を構成する２つのカメラの光軸が平行で、縦方向の位置ずれもない状態であれば、ステレオ画像１２０ａ、１２０ｂにおける同一のマーカーの像の縦方向の位置（例えばｙ＿ｌおよびｙ＿ｒ）は一致する。このように縦方向の位置が一致していれば、両画像における対応するマーカーの像の特定は容易である。しかし実際には、製造時の組み立て精度などによって微妙な光軸ずれが発生し得る。
【００２８】
図５は左右のカメラの光軸（特にピッチ角）または縦方向の位置がずれているときのステレオ画像を示している。この例では、左視点からの画像１２０ａにおけるマーカーの像の縦方向の位置（例えばｙ＿ｌ）が、右視点からの画像１２０ｂにおける対応するマーカーの像の位置（例えばｙ＿ｒ）よりΔｙだけ上にある。この状態で、対応するマーカーの像は両画像の同じ行にあるという原則に従い対応づけを行うと、Δｙが１０画素程度の差であっても対応を誤認識してしまう可能性が出てくる。そのため正確な視差が得られず、最終的には対象物の追跡精度が十分に得られないことがあり得る。
【００２９】
そのため製造された段階で撮像装置１２個々の状態を確認し、縦方向の位置ずれΔｙを表すパラメータを不揮発性メモリなどに記録しておく。運用時には、情報処理装置１０側で当該パラメータを読み出し、撮像装置１２が撮影したステレオ画像のうちどちらかを、仮想的に画像平面上で縦方向にΔｙだけずらすことにより、画像間で縦方向の位置を揃える。図５の例では、右視点からの画像１２０ｂを上方にΔｙだけ移動させることにより、点線で枠を示した補正画像１２２を生成している。
【００３０】
そして左視点からの画像１２０ａと補正画像１２２とを比較すれば、対応するマーカーの像を縦方向の位置に基づき容易に特定できる。しかしながら、撮像装置１２が出荷された後であっても、運用時に装置内部で発生する熱、落下など外部から加えられた衝撃、部品の経年変化など、様々な要因で位置ずれΔｙが変化し得る。このため処理精度を維持するには、ユーザは独自にキャリブレーションし直し、位置ずれΔｙの設定値を更新することが望ましい。
【００３１】
しかしその好適なタイミングは使用状況などにもよるため共通ではなく、ユーザ自身が必要性を認識することも難しい。また、運用時に簡易な処理で高速かつ高精度に追跡処理を行うためには、キャリブレーションについてはある程度、厳密に実施することが望ましい。例えば画面全体を対象としてブロックマッチングにより対応点を取得し、詳細なマッチング処理を集約させた結果として位置ずれΔｙを求めることが望ましい。また好適には、そのようなブロックマッチングに適した条件や環境で撮影した画像を用いてさらに精度を向上させる。
【００３２】
このようなキャリブレーション処理を高い頻度で行うように規則づけると、その間、情報処理装置１０を利用できなかったり、撮影環境を整える手間が増えたりして、ユーザにストレスを与えることになる。これを回避するためキャリブレーションを行わないでいると、追跡処理の精度が低下して出力結果に影響を及ぼし、装置やアプリケーション自体の性能が、本来よりも低く評価されてしまうこともあり得る。そこで本実施の形態では、キャリブレーション処理が必要なタイミングを情報処理装置１０が判断することにより、最低限の手間で追跡精度を維持できるようにする。
【００３３】
図６は情報処理装置１０の機能ブロックの構成を示している。図６に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵ、メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、入出力機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３４】
情報処理装置１０は、入力装置１４からの入力情報を取得する入力情報取得部５０、撮像装置１２から撮影画像のデータを取得する撮影画像取得部５２、マーカーの像に基づき対象物を追跡する追跡処理部５４、追跡結果を用いるなどして情報処理を行う情報処理部６２、情報処理の結果として表示画像などの出力データを生成する出力データ生成部６６、追跡処理と並行してキャリブレーションの必要なタイミングを判定するキャリブレーション判定部６４、キャリブレーションを実施するキャリブレーション部６８を含む。
【００３５】
入力情報取得部５０は、ユーザ操作の内容を入力装置１４から取得する。ここでユーザ操作とは、実行するアプリケーションの選択、処理の開始／終了、コマンド入力など、一般的な情報処理でなされるものでよい。入力情報取得部５０は入力装置１４から取得した情報を、その内容に応じて撮影画像取得部５２、情報処理部６２、キャリブレーション部６８に供給する。
【００３６】
撮影画像取得部５２は、撮像装置１２が動画撮影して得られる撮影画像のデータを所定のフレームレートで取得する。撮影画像取得部５２はさらに、入力情報取得部５０が取得したユーザからの処理開始／終了要求に従い、撮像装置１２における撮影の開始／終了を制御したり、情報処理部６２における処理の結果に応じて、撮像装置１２から取得するデータの種類を制御したりしてもよい。
【００３７】
追跡処理部５４は、撮影画像に基づきＨＭＤ１８などの対象物を追跡し、動きや位置を特定する。詳細には追跡処理部５４は、対応マーカー特定部５８、位置情報取得部６０、および補正データ記憶部５６を含む。対応マーカー特定部５８は、動画撮影された各フレームのステレオ画像のデータを撮影画像取得部５２から取得し、両画像から対応するマーカーの像を検出する。そして当該マーカーの像の位置座標を対応づけて、位置情報取得部６０およびキャリブレーション判定部６４に供給する。
【００３８】
ここで「位置座標」は、マーカーの像の有限面積のうち、重心など所定箇所の位置座標を意味する。補正データ記憶部５６は、ステレオ画像の縦方向の位置ずれΔｙを表すデータが格納され記憶領域である。当該データは、初期状態では、工場出荷時などに取得されたものである。対応マーカー特定部５８は、当該データを読み出すことにより、それが表す位置ずれΔｙに基づきステレオ画像のどちらかの画像を画像平面上で縦方向にずらし、左右の画像の縦方向の位置を揃えたうえで、対応するマーカーの像を特定する。
【００３９】
位置情報取得部６０は、ステレオ画像における、対応するマーカーの像の横方向の位置の差分に基づき、三角測量の原理でマーカー、ひいてはそれが備えられた対象物の位置を特定する。複数のマーカーを用い、それらの位置関係などによって対象物の姿勢も特定してよい。例えば、あらかじめ対象物の３次元モデルを準備しておき、見かけ上のマーカーの位置を３次元モデルに当てはめることにより、対象物の姿勢を求めることができる。
【００４０】
さらに、対象物が備える加速度センサなど各種センサによる計測値を取得し、撮影画像から得られる位置情報と統合することにより、姿勢等をより詳細に特定してもよい。位置情報取得部６０は、取得した対象物の位置や姿勢の情報を情報処理部６２に供給する。情報処理部６２は、ユーザが指定したゲームなどの情報処理を実施する。この際、対象物の追跡結果を追跡処理部５４からフレームごとに取得することにより、対象物の動きを情報処理に反映させる。さらに入力装置１４から入力情報取得部５０が取得したユーザ操作の内容も反映させてよい。上述のとおり、これらの入力データを用いて情報処理部６２が行う情報処理の内容は特に限定されない。
【００４１】
キャリブレーション判定部６４は、追跡処理部５４の対応マーカー特定部５８から供給された、対応するマーカーの像の位置座標のうち、縦方向の位置座標の差分に基づき、キャリブレーションが必要なタイミングを判定する。具体的には、補正データ記憶部５６に設定されている縦方向の位置ずれΔｙに基づき縦方向の位置をそろえた後のステレオ画像において、さらにマーカーの像が縦方向にずれていないかを監視し、しきい値を超えるずれが観測されたら、位置ずれΔｙの設定値を更新する必要がある、と判定する。詳細な処理内容については後述する。
【００４２】
出力データ生成部６６は、情報処理部６２からの要求に従い、情報処理の結果として出力すべき画像や音声のデータを生成する。例えば上述のように、ユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を左右の視差画像とし描画する。この視差画像をＨＭＤ１８において左右の目の前に表示させたり、仮想世界での音声を出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。そのほか、追跡結果やユーザ操作を利用して様々な情報処理を実現できることは当業者には理解されるところである。
【００４３】
出力データ生成部６６はまた、キャリブレーションの必要が生じたとキャリブレーション判定部６４が判定した際、その旨をユーザに通知するための表示画像を生成する。生成した出力データは、適宜、ＨＭＤ１８や平板型ディスプレイ１６に出力することで、画像や音声として出力させる。
【００４４】
キャリブレーション部６８は、所定のキャリブレーション処理を実施し、補正データ記憶部５６に格納された、位置ずれΔｙを表すデータを更新する。キャリブレーション部６８の動作は、キャリブレーションの必要性を通知されたユーザが、入力装置１４を介して起動させることを基本とする。これに応じてキャリブレーション部６８は、例えばステレオ画像の全面をピクセル単位あるいはサブピクセル単位で走査していくことにより対応点を抽出し、その位置座標を比較するなどして位置ずれΔｙを正確に取得する。
【００４５】
すなわち、ゲームなどの情報処理において追跡処理部５４が対象物を追跡するためにマーカーの像を検出する処理より詳細な情報を取得する。そのため、明るさや被写体などの撮影環境、露光時間などの撮影条件、ゲイン値などの画像処理条件は、ゲームなどの情報処理中とは異なることが多い点に留意する。撮影環境については、最適な状態を準備してもらうように、表示などを用いてユーザに促してもよい。このようにキャリブレーションが求める環境や処理条件が、ゲームなどの通常処理時のものとは異なっていても、本実施の形態ではそのタイミングを装置が判定することにより実施頻度を最小限とし、ユーザの負担を少なく情報処理の精度が維持されるようにする。
【００４６】
次に、以上の構成によって実現される情報処理装置１０の動作について説明する。図７は、本実施の形態における情報処理装置１０が、ゲームなどの情報処理を行いながら、キャリブレーションの必要なタイミングを判定する処理手順を示すフローチャートである。このフローチャートのうち左のフローは、主に追跡処理部５４、情報処理部６２、出力データ生成部６６が、ゲームなど主たる情報処理を実施する手順であり、右のフローは、キャリブレーション判定部６４がそれに並行して行う、キャリブレーションが必要なタイミングを判定する処理の手順である。後者はゲームなど主たる情報処理の最中に、ユーザに意識されることのない状態、すなわちバックグラウンドでなされるものである。
【００４７】
まずユーザが入力装置１４を用いて、ゲームを選択するなどして処理の開始要求を入力すると、撮影画像取得部５２は撮像装置１２に撮影の開始を要求し、これに応じて送信されたステレオ画像のデータを追跡処理部５４が取得する（Ｓ１０）。追跡処理部５４の対応マーカー特定部５８はまず、補正データ記憶部５６に格納された、縦方向の位置ずれΔｙを表すデータに基づき、取得したステレオ画像の縦方向の位置を合わせる補正を行う（Ｓ１２）。そのうえで、両者における対応するマーカーの像を検出する（Ｓ１４）。
【００４８】
補正によって、対応するマーカーの像が縦方向の限定的な範囲内に収まっていることになり、両者の対応づけを容易に行える。対応マーカー特定部５８は、対応するマーカーの像の位置座標を追跡処理部５４の位置情報取得部６０とキャリブレーション判定部６４に提供する。位置情報取得部６０は、対応するマーカーの像の横方向の位置の差分から、当該マーカーの撮像面からの距離を算出したうえ、対象物の位置や姿勢の情報を取得する（Ｓ１６）。
【００４９】
情報処理部６２はその結果を受けてゲームなどの情報処理を進捗させ（Ｓ１８）、出力データ生成部６６に画像などの出力データを生成させて、ＨＭＤ１８などから出力させる（Ｓ２０）。一方、キャリブレーション判定部６４は、対応マーカー特定部５８から提供された、対応するマーカーの像の位置座標を取得したら、まずキャリブレーションの必要性を判定するのに有効な位置データが得られたか否かを判定する（Ｓ２４）。ここで「有効な位置データ」とは、キャリブレーションの必要性を判定するのに十分な信頼性を有する位置データである。
【００５０】
キャリブレーション判定部６４は定性的には、ステレオ画像における対応するマーカーの像の縦方向の位置ずれが所定のしきい値を超えたときに、キャリブレーションの必要があると判定する。しかしながら、例えば１フレーム分のステレオ画像から検出したマーカーの位置座標のみを用いて判定処理を行った場合、位置座標の一時的な誤差により、本来、キャリブレーションの必要ないタイミングで必要と判定してしまうことが考えられる。このようにキャリブレーションが必要なタイミングを余計に判定しユーザの負担を増やすことがないよう、判定の元となる位置データの有効性を精査することが望ましい。
【００５１】
具体的には、（１）追跡処理部５４による対象物の追跡処理が精度よく行われていること、（２）十分な量の位置データが収集できたこと、などの観点から位置データの有効性を判断する。具体例は後述する。Ｓ２４で有効なデータが得られない間は、有効なデータが得られるまで、対応するマーカーの位置情報取得および判定処理を繰り返す（Ｓ２４のＮ）。有効な位置データが得られたら（Ｓ２４のＹ）、それが表す縦方向の位置のずれをしきい値と比較し、キャリブレーションを必要とする条件を満たしたら（Ｓ２６のＹ）、その旨をユーザに通知するよう出力データ生成部６６に要求する（Ｓ３０）。
【００５２】
キャリブレーションを必要とする条件を満たさなかったら、現状の位置ずれΔｙの設定値で問題ないとし、再度、有効なデータが得られるまでＳ２４の判定処理を繰り返す（Ｓ２６のＮ）。キャリブレーションの必要性をユーザに通知する要求がなされたら、出力データ生成部６６は、通知用の画像データを生成しＨＭＤ１８などから出力させる（Ｓ２０）。以上の処理を、撮像装置１２が撮影する動画のフレーム単位で繰り返し（Ｓ２２のＮおよびＳ３２のＮ）、ユーザが入力装置１４を介して情報処理の終了を要求したりゲームが終了するなどしたら、全ての処理を終了する（Ｓ２２のＹおよびＳ３２のＹ）。
【００５３】
図８は図７のＳ２４で、有効な位置データが得られたか否かを判定する手法の一例を説明するための図である。この例では、対応するマーカーの像の縦方向の位置ずれ量を、ある期間、蓄積していくことによりデータの有効性を確認している。具体的には、対応するマーカーの位置座標のデータが対応マーカー特定部５８から供給される都度、その縦方向の差分を「ずれ量」とし、ずれ量ごとに頻度をカウントしていく。図４で示したように５つのマーカーがステレオ画像のそれぞれに写っている場合は、１フレームにつき合計５回、いずれかのずれ量の頻度が加算されることになる。
【００５４】
この処理を繰り返すことにより、図８に示すように「ずれ量」に対する「頻度」のヒストグラムが成長していく。そして矢印で示したように、頻度の観点から他と比べて明らかに優位なずれ量「Ｙ５」を、有効な位置データとしてキャリブレーションの必要性判定に用いる。例えば、頻度が所定のしきい値を最初に超えたずれ量、データ蓄積開始から所定時間経過した時点で最も高い頻度が得られているずれ量、頻度の分布が収束した時点で最も高い頻度が得られているずれ量などを「優位なずれ量」とする。標準偏差などを用いて統計処理を行って決定してもよい。
【００５５】
一旦、優位なずれ量を決定したら、次のヒストグラム形成時には、前のヒストグラムを破棄して頻度を０からカウントし直す。あるいは、前のヒストグラムの各ずれ量の頻度に１未満の所定の割合を乗算したものにさらに以降の頻度を加算していくことにより、ある程度の割合で前の結果が含まれるようにしてもよい。また加算する頻度には、対応マーカー特定部５８がマーカーの位置座標を取得したときの状況に応じて重みづけを行ってもよい。例えば、画像中のマーカーの像が小さい場合、撮像面からマーカーまでの距離が遠かったり、マーカーの一部が視野外にあったりして、位置座標に誤差が含まれやすいと考えられる。
【００５６】
したがって、マーカーの像が小さいほど１回に加算する頻度の値が小さくなるように重み付けしてもよい。また視野内に照明や端末のディスプレイなどマーカー以外の発光体がある場合、その像をマーカーと誤認識する可能性がある。さらに図３のＨＭＤ１８のように、一つの対象物に複数のマーカーを備えた場合、対象物の向きによってマーカーの像の数が減ることがある。マーカーの像の数が減るほどそれが表す情報量が少なくなるため、マーカーの対応関係を誤認しやすくなる。
【００５７】
したがって、これらのときにも１回に加算する頻度の値が小さくなるように重みづけしてもよい。その他、マーカーの位置座標や対応関係の特定精度に影響を与えるいかなる事象も、加算頻度の重み付けに利用してよい。このようにすることで、より高い精度でヒストグラムを形成でき、キャリブレーションの必要性判定に用いるずれ量の信頼性が向上する。なおこのような場合、重みづけに用いる各種データは、位置座標のデータとともに対応マーカー特定部５８がキャリブレーション判定部６４に提供する。
【００５８】
さらに、対応マーカー特定部５８がマーカーの位置座標を取得したときの状況を、ヒストグラム形成の開始タイミングや終了タイミングの少なくともいずれかの判定に用いてもよい。図９はそのような態様の一例として、画像中のマーカーの像の数を利用したときの、位置データの有効性確認の処理手順を示すフローチャートである。当該処理は全体で、図７のＳ２４の処理に対応し、一旦、有効な位置データが得られた直後など、新たに位置座標のデータ蓄積を開始する前段階を初期状態とする。この期間も、キャリブレーション判定部６４は、画像中のマーカーの像の数に係る情報を、位置座標のデータとともに対応マーカー特定部５８から取得している。
【００５９】
そして一つの対象物に設けたマーカー、図３のＨＭＤ１８の場合は５つのマーカーが全て写っている場合に（Ｓ４０のＹ）、位置座標のデータ蓄積を開始する（Ｓ４４）。位置座標のデータ蓄積とは例えば図８で示したヒストグラムの形成である。上述のとおり、マーカーの像の数が多いほど、対応マーカー特定部５８における対応関係の誤認の可能性が低くなる。そのため、それを契機にデータの蓄積を開始することにより、その後の蓄積期間において対象物の向きが変わるなどして、多少、像の数が減少したとしても、蓄積中のデータの信頼性が大きく損なわれる可能性は低くなる。
【００６０】
一方、マーカーの像の数が、対象物に設けられたマーカーの数より小さい場合は（Ｓ４０のＮ）、有効なデータが得られていない（図７のＳ２４のＮ）と判定して処理を抜ける（Ｓ４２）。これにより実際には、図７のフローチャートが示すように、再びＳ４０の判定に戻ることになる。データ蓄積量が十分でなければ優位なずれ量は得られないことになるため（Ｓ４６のＮ）、蓄積開始から所定時間が経過していないことを確認し（Ｓ５０のＮ）、次のフレームの位置座標等のデータを取得する（Ｓ５２）。
【００６１】
このフレームのステレオ画像の少なくとも一方においてマーカーの像の数が１つであったり全く検出されなかったりした場合は（Ｓ５４のＹ）、有効なデータが得られていない（図７のＳ２４のＮ）と判定して処理を抜ける（Ｓ５６）。すなわちデータ蓄積を停止してヒストグラムを破棄する。次のフレームのステレオ画像のどちらにも２個以上の像が検出されたら（Ｓ５４のＮ）、当該フレームにおける対応するマーカーの位置ずれに基づき頻度を加算する（Ｓ５８）。
【００６２】
所定時間が経過しないうちは、２個以上のマーカーの像が検出されている限り、以後のフレームの位置座標データに基づき頻度を加算していく（Ｓ４６のＮ、Ｓ５０のＮ、Ｓ５２、Ｓ５４のＮ、Ｓ５８）。所定時間内に優位なずれ量を決定できたら（Ｓ４６のＹ）、有効なデータが得られた（図７のＳ２４のＹ）と判定して処理を抜ける（Ｓ４８）。このとき得られたずれ量は、図７のＳ２６においてキャリブレーションの必要性判定に用いられる。優位なずれ量が得られないうちに所定時間が経過したり（Ｓ４６のＮ、Ｓ５０のＹ）、マーカーの像が１個以下になったりしたら（Ｓ５４のＹ）、有効なデータが得られていない（図７のＳ２４のＮ）と判定して処理を抜ける（Ｓ５６）。すなわちデータ蓄積を停止してヒストグラムを破棄する。
【００６３】
なおＳ４０やＳ５４で判定に用いるマーカーの像の数は、図示したものに限らない。また、位置座標のデータの蓄積開始や終了の契機とする基準は、マーカーの像の数以外に、頻度の重み付けについて上述したような、位置座標取得精度に係る事象のいずれを採用してもよい。そのほか、マーカーの撮像面からの距離が所定範囲内にあるか否か、マーカーの像がフレームの所定範囲内にあるか否か、手前の物の存在によりマーカーにオクルージョンが発生したか否か、マーカーの発光が別の物に映り込んでいるか否か、といった基準によって、位置座標のデータの蓄積開始や終了を判定してもよい。
【００６４】
なおこのような要因は、追跡処理部５４における対象物の追跡処理全体の精度にも影響を与えるため、キャリブレーション判定部６４は、追跡精度や追跡状況に係る情報を追跡処理部５４から取得し、それに基づき位置座標のデータの蓄積開始や終了を判定してもよい。さらに、撮像装置１２の設置場所、周囲の明るさ、撮影空間に存在する照明の色など、撮影空間の様々な要因によって、位置ずれ量の取得に十分な精度が得られないと判定した場合は、キャリブレーション判定部６４の動作そのものを停止させてもよい。
【００６５】
図１０は、上述のように取得した有効なずれ量とキャリブレーションの必要性の判定処理との関係を説明するための図である。同図は横軸に時間経過を、縦軸に、図７のＳ２４で有効なデータが得られたと判定されたタイミングＴ０、Ｔ１、・・・に取得されたずれ量を示している。キャリブレーション判定部６４は、当該有効なずれ量が取得される都度、それを所定のしきい値Ｔｈと比較する。そしてずれ量がしきい値を超えたタイミングＴ６で、キャリブレーションが必要であると判定しユーザに通知する。しきい値Ｔｈは、あらかじめ実験などによって取得した最適値を、情報処理装置１０の内部で保持していてもよいし、実行するアプリケーションにおいて設定してあるものを読み出してもよい。
【００６６】
ユーザがこれを受けて、自分の都合に合ったタイミングでキャリブレーション部６８の機能を起動する。同図ではこのタイミングを太線で表している。キャリブレーション部６８は上述のとおりブロックマッチングなどにより厳密にステレオ画像の縦方向の位置ずれΔｙを取得し、それを表すデータを補正データ記憶部５６に格納し直す。これにより、次にユーザがゲームなどを開始し、追跡処理部５４が対象物追跡のためにマーカーの像を検出する際は、ステレオ画像の位置合わせが正確になされる。
【００６７】
結果として、キャリブレーション判定部６４がＴ’０のタイミングで次に取得する有効なずれ量は、しきい値Ｔｈ以下となり、キャリブレーションは不必要と判定されることになる。仮にユーザが、タイミングＴ６でキャリブレーションの必要性を通知されたにも関わらずキャリブレーションを行わなかった場合は、ずれ量がしきい値Ｔｈを超えた状態が継続するため、通知も継続される。その状態でもユーザはゲームなどの情報処理を続行することができる。このとき位置ずれに起因して処理結果に何らかの影響が生じても、ユーザはその原因を認識できるため、情報処理装置やアプリケーションが不当に評価されたり、ユーザがストレスを感じたりすることを回避できる。
【００６８】
以上述べた本実施の形態によれば、ステレオ画像を用いて対象物を追跡する情報処理技術において、追跡処理の途中で得られるマーカーの像の縦方向の位置ずれ量を利用して、カメラキャリブレーションの必要性を監視する。そして必要が生じたときにユーザに通知し、キャリブレーション処理を実行するよう促す。これにより、ステレオカメラの状態変化のように、ユーザが気づきにくい要素を原因とした情報処理のパフォーマンスの低下を防止でき、容易に最適な状態を保つことができる。また実際の状況に合わせてキャリブレーションの要／不要を判定するため、余計なタイミングでのキャリブレーションを回避できる。
【００６９】
頻度を抑えることにより、キャリブレーション処理自体は厳密に行っても支障が少なく、結果として運用時の追跡処理を容易かつ高精度に実施できる。また、運用時の追跡処理の過程で得られるパラメータを利用するため、ユーザが別途、キャリブレーションの必要性を判定する機能を起動させたり、そのために撮影環境を整えたりする手間が発生しない。そして装置の負荷も最低限に抑えた状態で定常的な監視を実現できる。このような定常的な監視状態を利用してキャリブレーションの必要性を判定するため、蓄積されたデータに基づき高精度な判定処理を実現できる。さらに追跡処理で得られる様々なパラメータを利用することにより、装置の負荷を少なく高精度な判定が行える。
【００７０】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００７１】
８  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １４  入力装置、  １６  平板型ディスプレイ、  １８  ＨＭＤ、  ５０  入力情報取得部、  ５２  撮影画像取得部、  ５４  追跡処理部５４、  ５６  補正データ記憶部、  ５８  対応マーカー特定部、  ６０  位置情報取得部、  ６２  情報処理部、  ６４  キャリブレーション判定部、  ６６  出力データ生成部、  ６８  キャリブレーション部、  １１０ａ  発光マーカー。
【図１】
0006345627.tif 000002
【図２】
0006345627.tif 000003
【図３】
0006345627.tif 000004
【図４】
0006345627.tif 000005
【図５】
0006345627.tif 000006
【図６】
0006345627.tif 000007
【図７】
0006345627.tif 000008
【図８】
0006345627.tif 000009
【図９】
0006345627.tif 000010
【図１０】
0006345627.tif 000011