(57)【特許請求の範囲】
【請求項１】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを取得する画像取得部と、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力する位置情報生成部と、
を備え、
前記位置情報生成部は、所定の探索範囲で前記ステレオ画像に対しブロックマッチングを行うことにより被写体のカメラからの距離を取得して、当該距離を画像平面に画素値として表した奥行き画像を生成したうえ、それに基づき距離値のヒストグラムを生成し、しきい値以上の画素数を有する距離に基づき対象物の前記位置の概略値を取得する距離概略値取得部を含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置。
【請求項２】
前記距離概略値取得部が行うブロックマッチングは、その結果を用いて探索範囲を調整して行うブロックマッチングと比較し、低解像度のステレオ画像を用いる、より簡易な類似度計算手法を用いる、低頻度で実施する、のうち少なくともいずれかであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記位置情報生成部は、前記距離概略値取得部が行ったブロックマッチングにより生成した奥行き画像のうち、前記対象物の領域を、その結果を用いて探索範囲を調整して行ったブロックマッチングにより生成した奥行き画像のデータに置換することにより、最終的な位置の情報を生成することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記位置情報生成部は、前記距離概略値取得部が行ったブロックマッチング時に、対応するブロックを決定した根拠となった類似度と、探索範囲を調整して行ったブロックマッチング時に、対応するブロックを決定した根拠となった類似度とを比較し、後者が大きければ奥行き画像のデータを置換することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを取得する画像取得部と、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力する位置情報生成部と、
を備え、
前記位置情報生成部は、実空間に仮想的な検知面を設定し、それをステレオ画像の一方の画像に投影してなる検知領域と、他方の画像において前記検知領域に対応する領域を、前記検知面のカメラからの距離に対応する視差分だけ視差を解消する方向に平行移動させた視差補正領域とを設定し、ステレオ画像のうち前記検知領域と前記視差補正領域内の画像をマッチングすることで、前記検知面の位置に対象物が存在するか否かをマッチング評価値の高い画素の数に基づき判定し、その判定結果に基づき対象物の前記位置の概略値を取得する距離概略値取得部を含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置。
【請求項６】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを取得する画像取得部と、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力する位置情報生成部と、
を備え、
前記位置情報生成部は、カメラからの距離が既知の所定位置にユーザを移動させる指示を表示装置またはスピーカーから出力させ、当該所定位置にユーザが移動した時点を判定することにより対象物の前記位置の概略値を取得する距離概略値取得部を含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置。
【請求項７】
前記位置情報生成部は、異なる複数の前記位置の概略値に対し、それぞれに対応する位置および長さに探索範囲を調整して前記ブロックマッチングを行うことにより、検出された対応点に基づきカメラからの距離を取得して、当該距離を画像平面に画素値として表した複数の奥行き画像を生成し、それらを合成することにより、最終的な前記位置の情報を生成することを特徴とする請求項１、５、または６に記載の情報処理装置。
【請求項８】
前記複数の位置の概略値は前景および背景の位置に対応し、背景に対するブロックマッチングは、前景に対するブロックマッチングと比較し、低解像度のステレオ画像を用いる、より簡易な類似度計算手法を用いる、低頻度で実施する、のうち少なくともいずれかであることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
各位置の概略値に対応するブロックマッチング時に、対応するブロックを決定した根拠となった類似度を互いに比較し、類似度が大きい方のブロックマッチングにより生成された奥行き画像のデータを採用することにより奥行き画像を合成することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記位置の情報に基づき所定の情報処理を行い出力データを生成する出力情報生成部をさらに備えたことを特徴とする請求項１から９のいずれかに記載の情報処理装置。
【請求項１１】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを撮像装置から取得するステップと、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力するステップと、
を含み、
前記位置の情報を生成するステップは、所定の探索範囲で前記ステレオ画像に対しブロックマッチングを行うことにより被写体のカメラからの距離を取得して、当該距離を画像平面に画素値として表した奥行き画像を生成したうえ、それに基づき距離値のヒストグラムを生成し、しきい値以上の画素数を有する距離に基づき対象物の前記位置の概略値を取得するステップを含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置による情報処理方法。
【請求項１２】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを撮像装置から取得するステップと、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力するステップと、
を含み、
前記位置の情報を生成するステップは、実空間に仮想的な検知面を設定し、それをステレオ画像の一方の画像に投影してなる検知領域と、他方の画像において前記検知領域に対応する領域を、前記検知面のカメラからの距離に対応する視差分だけ視差を解消する方向に平行移動させた視差補正領域とを設定し、ステレオ画像のうち前記検知領域と前記視差補正領域内の画像をマッチングすることで、前記検知面の位置に対象物が存在するか否かをマッチング評価値の高い画素の数に基づき判定し、その判定結果に基づき対象物の前記位置の概略値を取得するステップを含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置による情報処理方法。
【請求項１３】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを撮像装置から取得するステップと、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力するステップと、
を含み、
前記位置の情報を生成するステップは、カメラからの距離が既知の所定位置にユーザを移動させる指示を表示装置またはスピーカーから出力させ、当該所定位置にユーザが移動した時点を判定することにより対象物の前記位置の概略値を取得するステップを含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえで前記ブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とする情報処理装置による情報処理方法。
【請求項１４】
既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを取得する機能と、
前記ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置の情報を生成し出力する機能と、
をコンピュータに実現させ、
前記位置の情報を生成する機能は、所定の探索範囲で前記ステレオ画像に対しブロックマッチングを行うことにより被写体のカメラからの距離を取得して、当該距離を画像平面に画素値として表した奥行き画像を生成したうえ、それに基づき距離値のヒストグラムを生成し、しきい値以上の画素数を有する距離に基づき対象物の前記位置の概略値を取得する機能、または、実空間に仮想的な検知面を設定し、それをステレオ画像の一方の画像に投影してなる検知領域と、他方の画像において前記検知領域に対応する領域を、前記検知面のカメラからの距離に対応する視差分だけ視差を解消する方向に平行移動させた視差補正領域とを設定し、ステレオ画像のうち前記検知領域と前記視差補正領域内の画像をマッチングすることで、前記検知面の位置に対象物が存在するか否かをマッチング評価値の高い画素の数に基づき判定し、その判定結果に基づき対象物の前記位置の概略値を取得する機能、または、カメラからの距離が既知の所定位置にユーザを移動させる指示を表示装置またはスピーカーから出力させ、当該所定位置にユーザが移動した時点を判定することにより対象物の前記位置の概略値を取得する機能、を含み、当該位置の概略値に基づき、前記探索範囲の開始位置および長さを調整して決定したうえでブロックマッチングを行うことにより、同じ対象物の最終的な前記位置の情報を生成することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像を利用して対象物の位置や動きを認識する技術に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやゲーム機などにカメラを搭載し、ユーザの姿を撮像して様々な形で利用することが一般的に行われるようになってきた。例えばテレビ電話、ビデオチャットなど、ユーザの画像を、ネットワークを介してそのまま相手に伝送するものや、画像解析によってユーザの動きを認識してゲームや情報処理の入力情報とするものなどが実用化されている（例えば特許文献１参照）。近年ではさらに、奥行き方向を含む３次元空間における対象物の動きを精度よく検出することにより、より臨場感のあるゲームや画像表現を実現できるようになってきた。
【０００３】
対象物の３次元空間での位置を求める一般的な手法としてステレオ画像法がある。ステレオ画像法は、左右に既知の間隔だけ離れた２つのカメラで同じ空間を同時に撮影したステレオ画像から対応点を検出し、その視差に基づき三角測量の原理で対象物の撮像面からの距離を算出する手法である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ステレオ画像法により対象物の位置情報を詳細かつ正確に取得するには、解像度の高いステレオ画像を用いたり、高度な計算手法で対応点を検出したりすることが考えられるが、このようにすることで自ずと処理の負荷が増大する。一方、対象物の動きに基づき情報処理を行いその結果を画像などで表現する態様においては、フレームレート程度の頻度で位置情報を更新していくことが求められる。そのため、位置情報の取得精度と取得速度の両立は常に大きな課題となっている。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、３次元空間における対象物の位置情報取得を高精度かつ高速に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様は情報処理装置に関する。この情報処理装置は、既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを取得する画像取得部と、ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置情報を生成し出力する位置情報生成部と、を備え、位置情報生成部は、対象物のカメラからの推定距離範囲を決定し、当該推定距離範囲に対応する位置および長さで探索範囲を限定して設定したうえでブロックマッチングを行うことを特徴とする。
【０００８】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、既知の間隔を有する左右のカメラで同一空間を撮影したステレオ画像のデータを撮像装置から取得するステップと、ステレオ画像の一方に設定した参照ブロックに対し他方に設定した探索範囲内で類似度の高い領域を検出するブロックマッチングを行うことにより対応点を検出し、その視差に基づき対象物のカメラからの距離を含む位置情報を生成し出力するステップと、を含み、位置情報を生成するステップは、対象物のカメラからの推定距離範囲を決定し、当該推定距離範囲に対応する位置および長さで探索範囲を限定して設定したうえでブロックマッチングを行うことを特徴とする。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、撮影画像中の対象物の位置や動きに基づく情報処理を高速かつ高精度に実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態における撮像装置と情報処理装置の機能ブロックの構成を示す図である。
【図４】ステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。
【図５】本実施の形態で用いる、基本的なブロックマッチングの手法を説明するための図である。
【図６】本実施の形態における限定された探索範囲の設定位置を異ならせたときの位置情報の取得結果を奥行き画像で表した図である。
【図７】本実施の形態において第１位置情報取得部が簡易ステレオマッチングと顔検出処理を行い、第２位置情報取得部が詳細ステレオマッチングを行う場合の処理の流れを示す図である。
【図８】本実施の形態において第２位置情報取得部が設定する探索範囲を説明するための図である
【図９】本実施の形態における第１位置情報取得部が簡易ステレオマッチングおよびヒストグラム生成を行い、第２位置情報取得部が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。
【図１０】本実施の形態における第１位置情報取得部がユーザとの対話により距離の概略値を取得し、第２位置情報取得部が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。
【図１１】本実施の形態における第１位置情報取得部が検知面を設定することにより所定位置の対象物を検知し、第２位置情報取得部が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。
【図１２】本実施の形態において検知面を設定することにより所定位置の対象物を検知する手法を説明するための図である。
【図１３】図１２で示した環境で撮影されたステレオ画像の例を示す図である。
【図１４】本実施の形態において詳細度、精度の異なる奥行き情報を合成して１つの奥行き画像を生成する態様における位置情報生成部による処理の流れを説明するための図である。
【図１５】本実施の形態における合成処理の手法を説明するための図である。
【図１６】本実施の形態における距離の算出対象を分担する態様における位置情報生成部による処理の流れを説明するための図である。
【図１７】本実施の形態における第１位置情報取得部と第２位置情報取得部が、距離を取得する対象を分担したときのブロックマッチングの様子を例示している。
【発明を実施するための形態】
【００１２】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム２は、ユーザ１などの被写体を撮影する２つのカメラを搭載した撮像装置１２、撮影した画像に基づき、ユーザの要求に応じた情報処理を行う情報処理装置１０、情報処理装置１０が処理した結果得られた画像データを出力する表示装置１６を含む。情報処理装置１０はインターネットなどのネットワークと接続可能としてもよい。
【００１３】
情報処理装置１０と、撮像装置１２、表示装置１６とは、有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。撮像装置１２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置１２は必ずしも表示装置１６の上に設置されていなくてもよい。さらに被写体の数や種類は限定されない。
【００１４】
撮像装置１２は、それぞれがＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えた２つのデジタルビデオカメラを既知の間隔で左右に配置したステレオカメラの構成を有する。２つのデジタルビデオカメラはそれぞれ、同一空間に存在する被写体を左右の位置から所定のフレームレートで撮影する。以後、このように撮影されたフレームの対を「ステレオ画像」とも呼ぶ。
【００１５】
情報処理装置１０は、画像平面およびカメラからの奥行き方向を含む３次元空間における被写体の位置を検出する。検出結果は、被写体の位置や動きを入力情報として用いる後段の処理に利用する。例えば被写体であるユーザ１の手や足の動きに反応する仮想オブジェクトを撮影画像上に描画するようなＡＲ（拡張現実）を実現するのに用いる。あるいはユーザ１の動きをトラッキングしてゲームの画像に反映させたり情報処理のコマンド入力に変換したりしてもよい。このように本実施の形態で得られる被写体の位置に係る情報の使用目的は特に限定されない。
【００１６】
表示装置１６は、情報処理装置１０が行った処理の結果を、必要に応じて画像として表示する。表示装置１６は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等である。上述のとおり情報処理装置１０が最終的に実行する処理内容や表示すべき画像はその使用目的によって特に限定されるものではないため、以後は情報処理装置１０が行う、被写体の位置検出処理に主眼を置き説明する。
【００１７】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。
【００１８】
入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６やスピーカなどの出力装置へデータを出力する出力部３６、キーボード、マウス、撮像装置１２、マイクロホンなどの入力装置からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００１９】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステム、およびリムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた、各種プログラムに基づいて情報処理を実行する。また、情報処理装置１０内部の各種回路における処理や信号伝送を制御する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、図示しないフレームバッファに表示画像のデータを格納する。そして当該表示画像のデータをビデオ信号に変換して出力部３６などに出力する。
【００２０】
図３は撮像装置１２と情報処理装置１０の機能ブロックの構成を示している。図３に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵや、ＲＡＭなどのメモリ、各種回路などの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードされた、データ入力機能、データ保持機能、画像解析機能、描画機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２１】
撮像装置１２は第１カメラ１３ａ、第２カメラ１３ｂを含む。各カメラはそれぞれ、既知の間隔を有する左右の位置から所定のフレームレートで被写体を撮影する。撮影して得られるステレオ画像は情報処理装置１０からの要求により一般的な手法で随時、情報処理装置１０へ送信される。
【００２２】
情報処理装置１０は、撮像装置１２からステレオ画像等のデータを取得する画像取得部４２、ユーザからの指示入力を取得する入力情報取得部４４、撮影画像に基づき被写体の位置情報を生成する位置情報生成部４６、被写体の位置に基づき必要な処理を行い出力情報を生成する出力情報生成部５０、撮像装置１２から取得したステレオ画像のデータや、位置情報生成部４６が生成した中間データなどを記憶する画像データ記憶部４８を含む。
【００２３】
入力情報取得部４４は、処理の開始や終了要求、メニューの選択、実行中のゲーム等に対するユーザ操作など、撮像装置１２以外の手段によるユーザからの指示入力を受け付け、それに応じた処理要求信号をその他の機能ブロックに送信する。入力情報取得部４４は、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するＣＰＵ２２などの協働により実現する。
【００２４】
画像取得部４２は、入力情報取得部４４からの要求に従い撮像装置１２からステレオ画像等のデータを取得し、画像データ記憶部４８に格納する。取得するデータは情報処理装置１０が実施する情報処理の内容に応じて様々であってよい。例えば第１カメラ１３ａが撮影した画像のみを撮影時のフレームレートで取得し、それより低いレートすなわち頻度で第１カメラ１３ａ、第２カメラ１３ｂが撮影したステレオ画像を取得するなどでよい。つまり第１カメラ１３ａが撮影した画像と第２カメラ１３ｂが撮影した画像の取得レートは独立に設定できるようにしてもよい。画像取得部４２は、図２で示した入力部３８、入出力インターフェース２８、およびＣＰＵ２２などの協働により実現する。
【００２５】
位置情報生成部４６は図２で示したＣＰＵ２２、ＧＰＵ２４などにより実現し、画像データ記憶部４８に格納されたステレオ画像のデータに基づき、被写体の３次元空間での位置の情報を生成する。位置情報生成部４６は、第１位置情報取得部５２、第２位置情報取得部５６を含む。本実施の形態では位置情報生成処理を、第１位置情報取得部５２が行う第１の処理と第２位置情報取得部５６が行う第２の処理の２つに分けることで、位置情報の精度向上と処理の高速化を実現する。このとき、第１の処理を第２の処理の前処理とする場合と、第１の処理と第２の処理を並列に行う場合がある。
【００２６】
第１の処理を第２の処理の前処理とする場合、第１位置情報取得部５２は所定の手段により被写体のおよその位置を特定し、第２位置情報取得部５６は当該およその位置に基づき対象を絞って詳細な位置情報を取得する。この場合、第２位置情報取得部５６はステレオ画像法により位置情報を取得するが、第１位置情報取得部５２がおよその位置を特定する手段は様々であってよい。第２位置情報取得部５６はステレオ画像法による処理において、着目する対象の存在が推定される範囲に基づき、ステレオ画像における対応点の探索範囲を限定する。
【００２７】
一方、第１の処理と第２の処理を並列に行う場合、第１位置情報取得部５２および第２位置情報取得部５６は、それぞれが担当する対象に着目して位置情報を取得する。この場合、第１位置情報取得部５２および第２位置情報取得部５６はどちらも、ステレオ画像法により位置情報を取得する。そして双方が、着目する対象の存在が推定される範囲に基づき、ステレオ画像における対応点の探索範囲を限定する。なお場合によっては、第２位置情報取得部５６は、第１の処理により生成された位置情報と第２の処理により生成された位置情報を統合し、最終的な位置情報を生成する処理も行う。
【００２８】
出力情報生成部５０は、図２で示したＣＰＵ２２、ＧＰＵ２４などにより実現し、位置情報生成部４６が生成した被写体の位置情報に基づき、画像データ記憶部４８から読み出した撮影画像にさらに描画処理を施すなど、使用目的に応じた処理を適宜行う。上述のとおりここで行う処理は特に限定されず、入力情報取得部４４が受け付けたユーザからの指示や実行するプログラムなどに応じて適宜切り替えてよい。処理の結果得られた画像のデータは、表示装置１６に出力され表示される。あるいはネットワークを介して別の装置へ送信してもよい。出力情報生成部５０はさらに、被写体の動きに応じた音声データを生成し、スピーカから出力するようにしてもよい。
【００２９】
次に、第２位置情報取得部５６が行うステレオマッチングの基本的な手法について説明する。図４はステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。第１カメラ１３ａ、第２カメラ１３ｂは距離Ｌを隔てた平行な光軸を有するように設置される。これらのカメラに対し、被写体は奥行き方向に距離Ｚ離れた右端の矢印に位置するとする。
【００３０】
各カメラが撮影した画像の１画素が表す実空間での幅Δｘは、距離Ｚに比例して次のように表される。
Δｘ＝Ｚ×ｗ／Ｗ
ここでＷはカメラの横方向の画素数、ｗは距離Ｚが単位長さのときの実空間の横方向の視野範囲であり視角によって定まる。距離Ｌだけ離れたカメラで撮影された同一の対象物は、その画像上でおよそ下記のような画素数上の視差Ｄを有する。
Ｄ＝Ｌ／Δｘ＝Ｌ×（Ｗ／ｗ）×（１／Ｚ）＝Ｃ／Ｚ
ここでＣはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。
【００３１】
ステレオ画像上に表れる同一の被写体の像のずれを視差Ｄとして求めれば、上記関係式により奥行き方向の距離Ｚが求められる。視差Ｄを求めるため、ステレオ画像に対しブロックマッチングを行い、両画像における被写体の像の位置関係を特定する。図５は基本的なブロックマッチングの手法を説明するための図である。まずステレオ画像を構成する左視点画像１８０ａ、右視点画像１８０ｂのうち、例えば右視点画像１８０ｂに、所定サイズの参照ブロック１８２を設定する。
【００３２】
ここで参照ブロック１８２のサイズは、例えば４×４画素や８×８画素などとする。視差Ｄは参照ブロック単位で得られるため、奥行き方向の位置情報の解像度は、４×４画素であれば原画像の１／４×１／４倍、８×８画素であれば１／８×１／８倍となる。次に左視点画像１８０ａのうち、右視点画像１８０ｂの参照ブロック１８２と比較し類似度の高いブロック１８４を特定する。
【００３３】
画像の横方向をｘ軸、縦方向をｙ軸とすると、類似度の高いブロック１８４を特定するためにはまず左視点画像１８０ａに対し、ｙ軸方向で参照ブロック１８２と同じ位置ｙ＝ｙ１に、横方向に所定の長さを有する探索範囲１８６を設定する。視差により、左視点画像１８０ａにおける像は右視点画像１８０ｂの同一の被写体の像より右に寄っていることを考慮し、探索範囲１８６は、参照ブロック１８２の横方向の位置ｘ１を始点として右側に設定する。
【００３４】
そして参照ブロック１８２と同じサイズのブロック枠を当該探索範囲１８６内で横方向にずらしながら、ブロック枠で囲まれた領域（以後、「ターゲットブロック」と呼ぶ）と参照ブロック１８２との類似度を計算していく。ブロック枠は一画素ずつ、または所定の複数画素ずつずらす。結果として、探索範囲１８６の横方向の軸に対する類似度の変化が得られる。そのうち最も高い類似度が得られたときのターゲットブロックが、参照ブロック１８２に対応するブロック１８４ということになる。そして、右視点画像１８０ｂにおける参照ブロック１８２の横方向の位置ｘ１と、左視点画像１８０ａにおける対応するブロック１８４の横方向の位置ｘ２との差が視差Ｄとなる。
【００３５】
このようにして視差Ｄを求め、上記関係式により奥行き方向の距離Ｚを求める処理を、右視点画像１８０ｂの画像平面をメッシュ分割してなる各領域を参照ブロックとして繰り返すことにより、右視点画像１８０ｂの参照ブロック単位の位置座標に対し距離Ｚが対応づけられる。なお類似度の計算として、ＳＳＤ(Sum of Squared Difference)、ＳＡＤ(Sum of Absolute Difference)、ＮＣＣ(Normalized Cross-Correlation)、ＺＮＣＣ(Zero-mean Normalized Cross-Correlation)などいくつかの手法が提案されている。いずれの手法も、参照ブロックとターゲットブロックを、対応する画素の輝度値に基づき比較することを基本とする。
【００３６】
このようにステレオ画像法により位置情報を取得する場合、ステレオ画像の解像度が高いほど、ターゲットブロックの位置に対する類似度の変化が詳細かつ高精度に得られ、結果として、対応点の取得、ひいては奥行き方向の距離Ｚの取得精度が向上する。一方で、１つの参照ブロックに対するマッチング処理の負荷が増えたり、参照ブロックの数が増えたりして、画像の全領域に対し被写体の位置を求めるのに要する時間も増大する。
【００３７】
画像の解像度によらず探索範囲１８６の横方向の画素数を固定とした場合、解像度が高くなるほど画像上で探索範囲１８６が及ぶ領域が小さくなり、ターゲットブロックが真の対応箇所に至らないことも考えられる。そこで本実施の形態では着目対象を絞ることにより、上述のように探索範囲を適切な位置に限定して設定し、少ない処理の負荷で高精度な位置情報を生成する。次に、探索範囲を限定した際の位置情報への影響について説明する。
【００３８】
図６は、限定された探索範囲の設定位置を異ならせたときの位置情報の取得結果を奥行き画像で表している。奥行き画像とは、ステレオ画像法により得られた被写体の奥行き方向の距離Ｚを、画像平面上に輝度分布として表した画像である。同図では距離Ｚが大きいほど小さい輝度で表している。各奥行き画像（ａ）、（ｂ）の上段には、図５で示したのと同様の形式で、右視点画像１８０ｂに設定した参照ブロック１８２と、それに対応して左視点画像１８０ａに設定する探索範囲１８６を例示している。この例は、室内にいる人物を中心とした撮影画像に基づくものであり、視野内には天井や周囲の物も含まれる。
【００３９】
図示するように、奥行き画像（ａ）は探索範囲１８６の始点ｘａを参照ブロックと同位置ｘ１とした場合、奥行き画像（ｂ）は探索範囲１８６の始点ｘｂを参照ブロックの位置ｘ１より数十画素分、離した場合の奥行き画像である。両者で探索範囲の長さは等しいとする。画像中、略中心に写っている人の顔領域１９０ａ、１９０ｂに着目すると、奥行き画像（ａ）は奥行き画像（ｂ）と比較しデータに欠損が多く見られる。
【００４０】
一方、画像の奥方向に伸びている天井板の境界線１９２ａ、１９２ｂに着目すると、奥行き画像（ａ）では、顔領域１９０ａより小さい輝度、すなわち顔より奥にあることが正確に示されている一方、奥行き画像（ｂ）は顔領域１９０ｂと同じ輝度、すなわち奥行き方向に同じ位置にあると誤認識している。上述のように視差Ｄは奥行き方向の距離Ｚに反比例するため、手前にある物ほど視差Ｄが大きく、ひいては対応点が参照ブロック１８２から離れる傾向となる。
【００４１】
したがって奥行き画像（ａ）のように、探索範囲１８６を参照ブロック１８２と近接させた場合は、奥にある被写体に対し正確な位置情報が得られる。一方、画像（ｂ）のように探索範囲１８６を参照ブロック１８２から離すほど、より手前にある被写体に対し正確な情報が得られる。特に天井板の境界線のように画像上で繰り返し表れる線や模様などでは、本来、最高類似度が得られる真の対応箇所が別にあるにも関わらず、限定された探索範囲内で良好な類似度が得られてしまった結果、別の線や模様を対応箇所と誤認識し、誤った距離値を算出してしまうことがあり得る。
【００４２】
奥行き画像（ｂ）ではそのような現象が結果として表れている。これらのことを踏まえ、本実施の形態ではまず、第１位置情報取得部５２により被写体のおよその位置を別途取得し、それに基づき第２位置情報取得部５６が適切な探索範囲を設定したうえでブロックマッチングを行う。真の対応箇所が含まれるように探索範囲を設定することにより、探索範囲自体が短くても正確な位置情報を取得できる。
【００４３】
探索範囲を限定する代わりに、それを用いたブロックマッチング自体は詳細かつ高精度に実施する。具体的には、第２位置情報取得部５６が行う処理は第１位置情報取得部５２が行う処理より、（１）高解像度の画像を用いる、（２）類似度の計算に高度なアルゴリズムを用いる、（３）高い頻度（レート）で実施する、の少なくともいずれかとする。このように第２位置情報取得部５６を高品質な処理とすることで、第１位置情報取得部５２が行う処理を簡略化できる、と捉えることもできる。
【００４４】
次に第１位置情報取得部５２が行う処理のバリエーションを含む、位置情報生成部４６による位置情報生成処理の流れを説明する。図７は、第１位置情報取得部５２が簡易ステレオマッチングと顔検出処理を行い、第２位置情報取得部５６が詳細ステレオマッチングを行う場合の処理の流れを示している。以後、上述のようにブロックマッチングによりステレオ画像上で対応する箇所を検出し、その視差に基づき奥行き方向の距離を求める処理をステレオマッチングとも呼ぶ。また以後の説明では、室内で撮像装置１２の前にいるユーザを位置情報取得の主たる対象とするが、対象物や撮影環境を限定する主旨ではない。
【００４５】
まず画像取得部４２が取得したステレオ画像１９４ａ、１９４ｂのデータを画像データ記憶部４８から読み出すと、第１位置情報取得部５２は、それらを用いて簡易ステレオマッチングを行う（Ｓ１０）。簡易ステレオマッチングは基本的に、上述したのと同じ手順でステレオマッチングを行い奥行き画像を生成する処理である。ただし撮像装置１２から取得したステレオ画像１９４ａ、１９４ｂを縮小するなどして低解像度画像を生成することにより、第２位置情報取得部５６より低い解像度のステレオ画像でブロックマッチングを行う。
【００４６】
あるいはブロックマッチング時のブロックサイズを大きくしてもよい。なお撮像装置１２が、複数解像度のステレオ画像を出力する機能を有する場合は、第１位置情報取得部５２は、そのようにして撮像装置１２が生成した低解像度のステレオ画像を用いればよい。なお上述のように第１位置情報取得部５２は、類似度の計算手法を、ＳＡＤなど第２位置情報取得部５６が用いる手法より簡易なものとしてもよい。ここで「簡易」とは、類似度を算出するまでの時間が短いこと、計算式が少ないこと、発生するパラメータの数が少ないこと、の少なくともいずれかを満たすものである。ＳＡＤは参照ブロックとターゲットブロック内の対応する画素の値の差分の総和を類似度とする、他の計算手法より簡易な計算手法である。
【００４７】
また第１位置情報取得部５２は、第２位置情報取得部５６より低い頻度でステレオマッチングを行ってもよい。一方で第１位置情報取得部５２は、ブロックマッチング時の探索範囲を限定しない。すなわち、参照ブロックを始点として視差が生じる方向に画像の端までの、第２位置情報取得部５６より広い範囲を探索範囲とする。これにより、位置によらず視野内にある全ての被写体について奥行き方向の距離を表した簡易的な奥行き画像１９６が得られる。これと並行して第１位置情報取得部５２は、ステレオ画像１９４ａ、１９４ｂのどちらかに対し顔検出処理を施す（Ｓ１２）。ここで行う顔検出処理は、平均顔画像や登録顔画像を表すテンプレート画像と撮影画像を比較するテンプレートマッチングなど、一般的な技術を用いてよい。
【００４８】
なお簡易ステレオマッチングの処理の頻度を低下させる場合は、顔検出処理の頻度もそれに合わせて低下させてよい。また対象物を人としない場合は、顔検出に代えて当該対象物の形状や特徴点を表すテンプレート画像とのマッチングにより対象物の像を検出できる。そして第１位置情報取得部５２は、顔検出処理によって取得された画像上での顔領域１９８を簡易的な奥行き画像１９６に当てはめることにより、顔を含むユーザの奥行き方向の距離の概略値を取得する。ここで距離の概略値とは、例えば顔領域１９８の中心に位置する画素の画素値、あるいは顔領域１９８内にあり同一位置にあると見なせる顔面の領域を構成する画素値の平均値などである。
【００４９】
複数のユーザが存在する場合は複数の顔領域が検出されるため、ユーザごとに距離の概略値を取得する。次に第２位置情報取得部５６は、当該距離の概略値に基づき探索領域を限定して設定したうえで詳細ステレオマッチングを行う（Ｓ１６）。ここでは上述のように、第１位置情報取得部５２より高い解像度のステレオ画像１９４ａ、１９４ｂを用いたり、ブロックマッチング時のブロックサイズを小さくしたりする。あるいは類似度の計算手法をＺＮＣＣなど、第１位置情報取得部５２が使用した手法より高度なものとしたり、第１位置情報取得部５２より高い頻度で処理を行ったりする。
【００５０】
Ｓ１０の簡易ステレオマッチングとＳ１６の詳細ステレオマッチングは、ステレオ画像の解像度、計算手法の複雑さ、処理の頻度のうちいずれか一つを異ならせてもよいし、２つ以上を同時に異ならせてもよい。最終的に出力する位置情報の精度と総合的な処理の負荷との兼ね合いにより、どのように差をつけるかを適宜決定してよい。このようにして第２位置情報取得部５６は、少なくとも対象物たるユーザについて詳細かつ高精度な奥行き画像２００を生成して出力情報生成部５０に出力する。これにより出力情報生成部５０は、ユーザの位置や動きに応じた表示画像などの出力データを正確に生成できる。
【００５１】
図８は、第２位置情報取得部５６が設定する探索範囲を説明するための図である。まず第１位置情報取得部５２が取得するユーザの奥行き方向の距離の概略値をＺｅとする。すると第２位置情報取得部５６は、概略値の誤差や体の厚みなどを考慮し概略値Ｚｅの前後に所定範囲を含めた推定距離範囲Ｚｅ−ΔＺｆ≦Ｚ≦Ｚｅ＋ΔＺｂを決定する。ここでΔＺｆは距離Ｚの軸上で前方向の余裕分、ΔＺｂは後ろ方向の余裕分であり、例えばΔＺｆ＝ΔＺｂ＝３０ｃｍなどとする。
【００５２】
この範囲のうち対象物が最も奥にある場合、すなわちＺ＝Ｚｅ＋ΔＺｂの場合の視差が最も小さく表れ、上述した式からその視差Ｄｍｉｎは、
Ｄｍｉｎ＝Ｃ／（Ｚｅ＋ΔＺｂ）
となる。最も手前にある場合、すなわちＺ＝Ｚｅ−ΔＺｆの場合の視差が最も大きく表れ、上述した式からその視差Ｄｍａｘは、
Ｄｍａｘ＝Ｃ／（Ｚｅ−ΔＺｆ）
となる。
【００５３】
したがって図８に示したように、右視点画像１９４ｂにおける位置ｘ１の参照ブロック２０２に対し左視点画像１９４ａに設定する探索範囲２０４は、ターゲットブロックの移動量としてｘ１＋Ｄｍｉｎからｘ１＋Ｄｍａｘまでの範囲となる。第２位置情報取得部５６は、右視点画像１９４ｂの画像平面をメッシュ分割してなる各領域を参照ブロックとし、それぞれに対し設定した探索範囲２０４内でターゲットブロックをずらしながら類似度を計算する。そして高い類似度が得られたときのターゲットブロックを、当該参照ブロックに対応するブロックとして検出する。
【００５４】
これにより、少なくともＺｅ−ΔＺｆ≦Ｚ≦Ｚｅ＋ΔＺｂの範囲に存在する対象物については、詳細かつ高精度に奥行き方向の距離が表された奥行き画像２００が得られる。あるいは第２位置情報取得部５６は、さらに参照ブロック２０２の設定範囲を限定してもよい。すなわち、対象物の像の領域に対してのみ参照ブロック２０２を設定することにより、周囲の物に対するブロックマッチング処理自体を省略する。この場合、対象物の像が画像上で及ぶ範囲を特定する必要がある。
【００５５】
例えば対象物をユーザとした場合、Ｓ１２で検出した顔領域１９８を基準とすると、手先や足先などの可動範囲は、顔領域１９８の位置や大きさから推定が容易である。したがってそれを網羅するようにユーザの像の及ぶ最大範囲を決定し、その範囲内で参照ブロック２０２を設定する。あるいはＳ１０における簡易ステレオマッチングの結果、得られた簡易的な奥行き画像１９６のうち、顔領域１９８を構成する画素の値から所定範囲内に画素値を有し、顔領域と連続している画素の領域を人体の領域と推定し、その範囲に限定して参照ブロック２０２を設定してもよい。
【００５６】
さらに、ゲームなどの初期設定として、手を広げるなど像の及ぶ範囲が最大となるポーズをとった状態のユーザを撮影し、そのときのユーザの奥行き方向の距離と、当該最大範囲との関係をユーザごとに取得しておいてもよい。この場合、第１位置情報取得部５２が求めた距離の概略値に基づきユーザが及ぶ最大範囲を特定し、その範囲に限定して参照ブロック２０２を設定する。これらの手法により、指先などが詳細ステレオマッチング処理の対象から外れることなく、より効率的に対象物の位置情報を生成できる。なお参照ブロックの設定範囲を限定する手法は、以下に述べる態様においても採用できる。
【００５７】
図９は位置情報生成部４６による処理の流れの別の例として、第１位置情報取得部５２が簡易ステレオマッチングおよびヒストグラム生成を行い、第２位置情報取得部５６が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。なお図７と同じ処理には同じ符号を付し、説明を省略する。この例では、第１位置情報取得部５２は、簡易ステレオマッチングを行ったあと（Ｓ１０）、得られた簡易的な奥行き画像１９６を用いて、距離値のヒストグラムを生成する（Ｓ１８）。
【００５８】
すなわち簡易的な奥行き画像１９６の画素値が表す奥行き方向の距離Ｚの、画像中での出現度数を表したヒストグラムを生成する。物の表面はおよそ同じ位置にあることを考慮すると、奥行き画像１９６において物の表面を表すある程度まとまった数の画素群は、同程度の画素値を有することになる。この特性を利用すると、ヒストグラムにおいて高い出現度数となる画素値に対応する距離に物が存在すると推定できる。同図の例では出現度数に２つのピークが得られているため、それに対応する距離に物体が存在すると考えられる。
【００５９】
第１位置情報取得部５２は、あらかじめ設定したしきい値Ｔｈとヒストグラムを比較し、しきい値Ｔｈ以上の出現度数を有する部分を抽出する。しきい値Ｔｈは例えば、人の像として表れる画素数を実際の撮影画像などから求め、それに誤差を考慮するなどして決定しておく。奥行き方向の距離によって像の大きさも変化することから、しきい値Ｔｈをヒストグラムにおける奥行き方向の位置によって変化させてもよい。
【００６０】
そして抽出したピークから、所定の規則で選択したピークの位置、あるいはその範囲をユーザの位置あるいは範囲と推定する。例えばユーザが撮像装置１２の目前に位置し、その背後に家具や壁がある、という一般的な状況においては、最も手間にある、すなわち距離Ｚが小さいピークを選択する。ただし選択規則はこれに限らず、撮影環境やユーザの人数などによって適宜変化させてよい。例えばゲームの開始前などに、背景のみを撮影した画像に基づきヒストグラムを取得しておくことで、運用時は当該背景によるピークを除外することができる。この場合、ユーザが複数存在する場合でも、除外したピーク以外の複数のピークが、各ユーザの像を表していると認識できる。
【００６１】
そのようにしてユーザの像によるピークを推定したら、当該ピークを与える距離、あるいはしきい値Ｔｈ以上の出現度数を与える距離の範囲の中心値などをユーザの奥行き方向の距離の概略値Ｚｅとして決定する。これに基づき第２位置情報取得部５６は、図７で説明した場合と同様に、前後に所定範囲を含めた推定距離範囲に基づき探索範囲を限定したうえで、詳細ステレオマッチングを行う（Ｓ１６）。この場合も、少なくとも対象物たるユーザについて詳細かつ高精度な奥行き画像２００を生成できるため、第２位置情報取得部５６はそのデータを出力情報生成部５０に出力する。
【００６２】
図１０は、位置情報生成部４６による処理の流れの別の例として、第１位置情報取得部５２がユーザとの対話により距離の概略値を取得し、第２位置情報取得部５６が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。なお図７と同じ処理には同じ符号を付し、説明を省略する。この例では、第１位置情報取得部５２は、「カメラから１ｍ付近に立ってください」といった指示により、奥行き方向の距離が既知の所定位置に立つようにユーザに促す。あるいはゲーム上などで自然にその位置に移動するように誘導する。そしてユーザが当該位置に立った時点で、その奥行き方向の距離をこれまで述べた態様における「距離の概略値」とする。
【００６３】
椅子に座って行うゲームなどの場合、座った状態での撮像装置１２からの距離をユーザに入力させるようにしてもよい。ここで要求される距離は概略値でよいため、例えば３０ｃｍごとなど所定の刻み幅の複数の候補距離から選択させるようにしてもよい。第１位置情報取得部５２は、ユーザに対する立ち位置の指示や距離の入力指示を、画像や音声で表すように出力情報生成部５０に要求する。そして、立ち位置を指示した場合はユーザが当該位置に移動し静止した時点を判定し第２位置情報取得部５６に通知する。
【００６４】
ユーザに距離を入力させた場合、第１位置情報取得部５２は入力された情報を入力情報取得部４４から取得して第２位置情報取得部５６に通知する。第２位置情報取得部５６は、その時点で撮影されたステレオ画像１９４ａ、１９４ｂを用いて、これまでの態様と同様、指定した、または入力された距離の概略値の前後に所定範囲を含めた推定距離範囲に基づき探索範囲を限定したうえで、詳細ステレオマッチングを行う（Ｓ１６）。この場合も、少なくとも対象物たるユーザについて詳細かつ高精度な奥行き画像２００を生成できるため、第２位置情報取得部５６はそのデータを出力情報生成部５０に出力する。
【００６５】
なおこの態様においては、第１位置情報取得部５２が距離の概略値を取得するタイミングは、ゲームの開始時などに限定される。したがって第２位置情報取得部５６は、一度、当該距離の概略値を取得して詳細ステレオマッチングを行ったあとは、前のフレームに対し自らが取得した位置情報を用いて後のフレームの位置情報を取得するようにしてもよい。
【００６６】
図１１は、位置情報生成部４６による処理の流れの別の例として、第１位置情報取得部５２が検知面を設定することにより所定位置の対象物を検知し、第２位置情報取得部５６が詳細ステレオマッチングを行う場合の処理の流れを説明するための図である。なお図７と同じ処理には同じ符号を付し、説明を省略する。検知面によって対象物の位置を検出する手法は、特開２０１３−２４２８１２号公報に開示されている。
【００６７】
この技術において検知面とは実空間に仮想的に設定する面である。検知面をステレオ画像のスクリーン座標に投影して得られる領域は、撮像装置１２から検知面までの距離に応じた視差を有する。仮に検知面と重なる位置に人が立っていたとすると、ステレオ画像における当該人の像は、検知面をステレオ画像にそれぞれ投影してなる２つの領域内で同じ位置に表れるはずである。したがってステレオ画像の一方から、検知面を投影してなる領域を、他方から、それに視差を加味して決定した対応する領域を切り取り、両者のマッチングをとる。２つの領域において同じ位置に像があると判定された場合、その物は検知面の位置に存在することがわかる。さらなる説明については後述する。
【００６８】
第１位置情報取得部５２は実空間においてこのような検知面を所定の位置に仮想的に設定し、それをステレオ画像上に投影してなる領域についてマッチングを行う。その結果、マッチング評価値が高い画素が所定数以上検出されたら、当該検知面の位置にユーザがいると判定する。検知面を複数の位置、例えば撮像装置１２の撮像面と平行に所定の間隔で設定し、各検知面に対し同様の判定処理を行うことにより、対象物たるユーザの奥行き方向の距離の概略値を決定できる。
【００６９】
第２位置情報取得部５６はこれまで述べた態様と同様、当該概略値の前後に所定範囲を含めた推定距離範囲に基づき探索範囲を限定したうえで詳細ステレオマッチングを行う（Ｓ１６）。この場合も、少なくとも対象物たるユーザについて詳細かつ高精度な奥行き画像２００を生成できるため、第２位置情報取得部５６はそのデータを出力情報生成部５０に出力する。
【００７０】
図１２は、検知面を設定することにより所定位置の対象物を検知する手法を説明するための図である。同図上段は撮影環境を上から見た模式図７２ａ、下段は横から見た模式図７２ｂである。図示するように第１カメラ１３ａ、第２カメラ１３ｂに被写体である人物７４が対峙している。このとき等視差面は点線で示すように分布する。ここで等視差面とは、面上の全ての点において視差が等しい平面である。
【００７１】
このような環境において、検出したい位置の等視差面上に検知面７６を定義する。検知面７６は、カメラ座標系による３次元空間においてその頂点座標を定義した仮想的な平面である。ただし検知面の輪郭形状は特に限定されず、傾きも任意に設定してよい。図１３は図１２で示した環境で撮影されたステレオ画像の例を示している。図１２で示した検知面７６を左視点画像８０ａに投影したものが領域８２である。以後、３次元空間で定義する「検知面」に対し、それを画像平面に投影した領域を「検知領域」と呼ぶ。
【００７２】
なお３次元空間において定義されたモデルを２次元の画像平面に投影させる処理は、一般的なコンピュータグラフィックス処理として実現できる。検知領域８２の左上の座標を(ｘ，ｙ）とする。等視差面上に検知面を定義した場合、左視点画像８０ａと右視点画像８０ｂの視差は全領域で同一である。すなわち奥行き方向の距離Ｚにある検知面上に存在する物は、左視点画像８０ａと右視点画像８０ｂでは視差Ｄ＝Ｃ／Ｚだけずれて写る。
【００７３】
そこで右視点画像８０ｂにおいて、検知領域８２と同一の領域を視差分だけ左方向に平行移動させた、左上の座標が（ｘ−Ｃ／Ｚ，ｙ）の領域を視差補正領域８４とする。すなわち視差補正領域８４は、検知領域８２と同位置の領域を、ステレオ画像における視差を解消する方向に移動させたものである。そして左視点画像８０ａの検知領域８２と、右視点画像８０ｂの視差補正領域８４の特徴点画像、例えばエッジ画像を切り出し、マッチング処理を行う。そして高い評価値が得られた画素を表したマッチング画像８６を生成する。
【００７４】
図１３におけるマッチング画像８６では、理解を容易にするため、エッジとして抽出された、被写体の左手の輪郭全体を実線および点線で示しているが、実際のマッチング画像はこのうち実線部分のみが残された画像であるとする。すなわち指先の一部および手首の一部が、図１２で示した検知面上に位置している、という情報が得られる。マッチング画像として残す部分は、マッチング評価値のしきい値判定によって決定する。このしきい値を調整することによって、奥行き方向の位置Ｚに対する検出分解能を制御できる。
【００７５】
なお等視差面に対し傾きを有するように検知面を設定した場合、画像平面の縦方向で視差が変化するため、それに応じて検知領域のずらし量を縦方向で変化させて視差補正領域を決定すれば、その後の処理は同様となる。第１位置情報取得部５２は上述のとおり、マッチング画像８６においてマッチング評価値が高いことが表された画素の数が所定値以上のとき、対象物が検知面の位置にいると判定し、その位置を距離の概略値として第２位置情報取得部５６に通知する。
【００７６】
なお図示する例では手の位置を検出するためのサイズを有する検知面であったが、ユーザの体全体など、対象物の大きさによって検知面のサイズも変化させる。さらに上述のように、検知面を複数、設定し、いずれかの検知面で検出できるようにすれば、対象物がどこにいてもその距離の概略値を取得することができる。
【００７７】
図７および図８で説明した態様において、第１位置情報取得部５２が行う簡易ステレオマッチングは、第２位置情報取得部５６が限定的な探索範囲を適切に設定するために必要な距離の概略値を得ることを目的としていた。一方、その結果得られた簡易的な奥行き画像を、位置情報生成部４６から出力する位置情報のデータに含めるようにしてもよい。具体的には、第２位置情報取得部５６が取得した奥行き画像のうち、詳細に距離を求めた対象物の像の領域と、第１位置情報取得部５２が取得した簡易的な奥行き画像のうち当該対象物の像以外の領域とを合成して最終的な奥行き画像とする。
【００７８】
すなわち１つの奥行き画像において、詳細度および精度の異なる奥行き情報を表す複数の領域が混在した状態とする。このようにすると、ユーザなどの対象物の領域以外の領域についても、探索範囲を限定した場合より精度の高い奥行き情報が得られる。例えば撮影画像上に描画したオブジェクトモデルをユーザの動きに応じて動かすＡＲを実現した場合、ユーザとのインタラクションと周囲の物とのインタラクションでは、求められる位置認識精度が異なる。すなわちユーザの手など人体は複雑な形状のうえ動きも複雑なため、臨場感のあるインタラクションを実現するには詳細な位置情報が要求される。
【００７９】
一方、周囲の物は一般的に、形状が単純で動くことも少ないため、大まかな位置情報でも臨場感が大きく損なわれることはない。したがって上述のように１つの奥行き画像内で詳細度、精度に変化をつけることにより、必要な情報を確保しつつ処理の負荷を抑えることができる。図１４は詳細度、精度の異なる奥行き情報を合成して１つの奥行き画像を生成する態様における位置情報生成部４６による処理の流れを説明するための図である。なお図７と同じ処理には同じ符号を付し、説明を省略する。この場合、図７で説明したのと同様、第１位置情報取得部５２は、ステレオ画像１９４ａ、１９４ｂを用いて簡易ステレオマッチングを行う（Ｓ１０）。それとともに第１位置情報取得部５２は、ステレオ画像１９４ａ、１９４ｂのどちらかに対し顔検出処理を施す（Ｓ１２）。
【００８０】
そして簡易ステレオマッチングで生成した簡易的な奥行き画像１９６に顔領域１９８を当てはめることにより、顔を含むユーザの奥行き方向の距離の概略値を取得する。第２位置情報取得部５６は、当該距離の概略値に基づき、図７で説明したのと同様に探索領域を限定したうえで詳細ステレオマッチングを行う（Ｓ１６）。次に第２位置情報取得部５６は、そのようにして生成した、対象物たるユーザについて詳細かつ高精度な位置情報を表す奥行き画像２００と、第１位置情報取得部５２がＳ１０の簡易ステレオマッチングによって生成した簡易的な奥行き画像とを合成する（Ｓ２４）
【００８１】
具体的には、簡易的な奥行き画像１９６のうち対象物の像の領域の画素値を、当該対象物について第２位置情報取得部５６が詳細に取得した奥行き画像２００の対応する領域の画素値に置き換える。第１位置情報取得部５２が生成した簡易的な奥行き画像１９６と第２位置情報取得部５６が生成した奥行き画像２００で解像度（画像のサイズ）が異なる場合は、例えば前者を拡大して後者のサイズに揃えたうえで画素値を置き換える。
【００８２】
これにより、第１位置情報取得部５２が広い探索範囲で全体的に求めた奥行き画像のうち、対象物の像の領域については特に詳細かつ高精度に求めた奥行き情報が表された奥行き画像２１０が生成される。なお対象物以外の領域は家具や壁など単純な形状であったり動きがなかったりする可能性が高いため、簡易的な奥行き画像１９６の合成部分の更新頻度は、詳細な奥行き画像２００の合成部分の更新頻度より低くてよい。例えば前者の更新頻度を後者の１／１０程度としてもよい。このとき第１位置情報取得部５２の処理自体の頻度を下げてもよい。
【００８３】
また図示する例は、図７と同様、第１位置情報取得部５２が顔領域を検出する態様であったが、図９で説明したようにヒストグラムによって距離の概略値を検出してもよい。さらに図１０や図１１で説明したように、ステレオマッチング以外の手段で距離の概略値を求める態様と組み合わせてもよい。この場合、第１位置情報取得部５２は、別途、簡易ステレオマッチングを行い簡易的な奥行き画像を生成して合成対象とする。
【００８４】
図１５は合成処理の手法を説明するための図である。合成処理においては、簡易的な奥行き画像１９６のうち第２位置情報取得部５６が生成した奥行き画像で置き換える領域を決定する必要がある。第２位置情報取得部５６が生成した奥行き画像は、対象物の距離範囲に特化したデータであり、それ以外の位置にある物は原則的には距離算出対象から除外される。探索範囲を上述のように限定することにより、本来はそれに対応する距離範囲に存在する物のみが、ブロックマッチングにおける類似度の高さにより検出されるが、上述の天井板の境界線のように、繰り返しで出現する線や模様など、類似の物も誤って検出される可能性がある。
【００８５】
図１５の上段（ａ）は、第１位置情報取得部５２が探索範囲を限定しないでブロックマッチングを行う様子を、下段（ｂ）は、第２位置情報取得部５６が探索範囲を限定してブロックマッチングを行う様子を示している。具体的には、（ａ）におけるステレオ画像２２０ａ、２２０ｂのうち、右視点画像２２０ｂの参照ブロック２２２に対し、左視点画像２２０ａに画像の右端まで到達する探索範囲２２４が設定されている。一方、（ｂ）におけるステレオ画像２３０ａ、２３０ｂのうち、右視点画像２３０ｂの参照ブロック２３２に対し、左視点画像２３０ａに、限定された探索範囲２３４が設定されている。
【００８６】
なお参照ブロック２２２と２３２は同じ位置にあるとする。各探索範囲２２４、２３４の下には、その範囲において算出された類似度２２６、２３６を例示している。ただし（ｂ）において実際に類似度が算出されるのは実線の部分のみとなる。（ａ）のように広い探索範囲２２４を設定した場合、最大類似度Ａが得られたときのターゲットブロック２２８が対応するブロックとして検出される。ただし横方向の別の位置に同様の線や模様が存在すると、図示するように類似度Ｂや類似度Ｃのような異なる極大点も得られる。
【００８７】
このような撮影環境において（ｂ）のように探索範囲を限定すると、当該探索範囲２３４の外に真の対応箇所があるにもかかわらず、別の位置で当該範囲内での最大類似度Ｂが得られてしまい、そのときのターゲットブロック２３８が対応するブロックとして検出されてしまう。結果として偽の視差が取得され、ひいては偽の距離値が算出されてしまう可能性がある。この（ｂ）の例のように、第２位置情報取得部５６が生成する詳細な奥行き画像には、誤った位置情報が含まれている可能性がある。
【００８８】
したがって上述のように置き換える領域を正確に決定することにより、画像全体で誤差の少ない位置情報が表されている最終的な奥行き画像２１０を生成する。最も単純には、簡易的な奥行き画像のうち、顔領域における画素値と同等（所定範囲）の画素値を有し、かつ顔領域から連続した画素群からなる領域を、対象物たるユーザの像の領域として、第２位置情報取得部５６が生成した奥行き画像の画素値に置き換える。
【００８９】
図９で説明したようにヒストグラムを用いる場合は、例えば、距離の概略値を求めたときのピークを構成する画素群のうち、連続して所定の大きさの領域を形成している画素群について、第２位置情報取得部５６が生成した奥行き画像の画素値に置き換える。あるいは、第１位置情報取得部５２が簡易的な奥行き画像を生成する際に求めた類似度と、第２位置情報取得部５６が詳細な奥行き画像を生成する際に求めた類似度を比較し、後者の方が高い場合に詳細な奥行き画像のデータへの置き換えを実施してもよい。
【００９０】
すなわち第１位置情報取得部５２は、簡易ステレオマッチングの処理において、対応するブロックとしてターゲットブロック２２８を検出した際に得られた最大類似度Ａを、対応する参照ブロック２２２の位置に対応づけた類似度画像を生成しておく。第２位置情報取得部５６も同様に、詳細ステレオマッチングの処理において、対応するブロックとしてターゲットブロック２３８を検出した際に得られた最大類似度Ｂを、対応する参照ブロック２３２の位置に対応づけた類似度画像を生成しておく。そして奥行き画像を合成する際は、両者の類似度画像のうち同じ位置の参照ブロックに対応づけられた類似度を比較して、より高い類似度が得られている方の奥行き画像のデータを真の距離値として採用する。
【００９１】
図１５の例ではＡ＞Ｂのため、第１位置情報取得部５２が（ａ）により取得した距離値を採用する。なお第１位置情報取得部５２と第２位置情報取得部５６が異なる手法で類似度を計算している場合、類似度のスケールが異なり単純に比較できないことが考えられる。あらかじめ両者の値の関係が判明していれば、それに応じて一方を他方のスケールに換算した後、比較する。あるいは、図１５の（ａ）、（ｂ）のように探索範囲２２４、２３４の一部が重複している場合、同じ位置における類似度を比較して倍率を求め、それを一方に乗算することでスケールを揃えてもよい。
【００９２】
これまで述べた態様では、第１位置情報取得部５２は、対象物の距離の概略値を求める手法の一つとして、ステレオ画像に広い探索範囲を設定し粗い精度でステレオマッチングを行った。その変形例として、第１位置情報取得部５２も探索範囲を限定することで、第２位置情報取得部５６とは別の位置に存在する物を対象として距離値を算出し、双方の位置情報を合成して最終的な奥行き画像としてもよい。図１６はこのように距離の算出対象を分担する態様における位置情報生成部４６による処理の流れを説明するための図である。
【００９３】
この例では、第１位置情報取得部５２はユーザの背後にある家具や壁などの背景を対象に距離を求め、第２位置情報取得部５６はこれまでの例と同様、ユーザなどの前景を対象に距離を求める。背景と前景では当然、カメラからの距離の範囲が異なるため、第１位置情報取得部５２がステレオマッチング時に設定する探索範囲と第２位置情報取得部５６がステレオマッチング時に設定する探索範囲とを、それぞれの距離範囲に応じて個別に設定する。
【００９４】
例えば前者は、参照ブロックの位置を始点として６３画素までを探索範囲とし、後者は６４画素目を始点として１２７画素までを探索範囲とする。なお探索範囲はこのように固定値としてもよいし、これまでの態様と同様、第１位置情報取得部５２がまず、ユーザなどの対象物の距離の概略値を求め、それに応じて両者の探索範囲を適応的に設定してもよい。第１位置情報取得部５２が設定する探索範囲を第１探索範囲、第２位置情報取得部５６が設定する探索範囲を第２探索範囲とする。１つの参照ブロックに対し設定する第１探索範囲と第２探索範囲は、重複部分が上述の例のようになくてもよいしあってもよい。
【００９５】
そして第１位置情報取得部５２は、例えばステレオ画像のうち一方の画像１９４ｂの各参照ブロックに対応して、他方の画像１９４ａに第１探索範囲を設定してステレオマッチングを行う（Ｓ３０）。その結果、少なくとも背景にある物に対し正確な距離が表された奥行き画像２８０が得られる。一方、第２位置情報取得部５６は例えば、ステレオ画像のうち一方の画像１９４ｂの各参照ブロックに対応して、他方の画像１９４ａに第２探索範囲を設定してステレオマッチングを行う（Ｓ３２）。その結果、前景にある物、すなわちユーザに対し正確な距離が表された奥行き画像２８２が得られる。
【００９６】
そして第２位置情報取得部５６は、図１４で説明した態様と同様に、双方の奥行き画像を合成する（Ｓ３４）。具体的には、第１位置情報取得部５２が生成した奥行き画像２８０のうち、前景の領域を、第２位置情報取得部５６が生成した奥行き画像２８２のデータで置き換える。その結果、前景、背景ともに、正確な距離が画素値として表された最終的な奥行き画像２８４が生成される。
【００９７】
図１７は、第１位置情報取得部５２と第２位置情報取得部５６が、距離を取得する対象を分担したときのブロックマッチングの様子を例示している。同図上段の（ａ）は、第１位置情報取得部５２が、２つの参照ブロック２４２、２６２に対応して設定する探索範囲を例示している。一方、下段の（ｂ）は、第２位置情報取得部５６が、（ａ）と同じ参照ブロック２４２、２６２に対応して設定する探索範囲を例示している。図の表し方は図１５と同様である。ただし同図では、参照ブロックの位置を、探索範囲を設定するのと同じ画像内に黒い矩形で示している。
【００９８】
上述の例のように、第１位置情報取得部５２は背景、第２位置情報取得部５６は前景の距離を求めるとした場合、前者の探索範囲は参照ブロックに近い範囲、後者の探索範囲は参照ブロックから遠い範囲となる。例えば同図左側に示す参照ブロック２４２に対し、第１位置情報取得部５２は画像２４０のように、参照ブロック２４２に近接させて探索範囲２４４を設定する。第２位置情報取得部５６は画像２５０のように、参照ブロック２４２から前述のように所定画素数ｄだけ離れた位置に探索範囲２５４を設定する。同図右側に示す参照ブロック２６２に対する探索範囲２６４、２７４の設定も同様である。
【００９９】
まず画像２４０のケースでは、第１位置情報取得部５２が探索範囲２４４に対し求めた類似度２４６のうち、最大類似度Ａが得られるときのターゲットブロック２４８が、対応するブロックとして検出される。これに対し画像２５０のケースでは、第２位置情報取得部５６が探索範囲２５４に対し求めた類似度２５６のうち、最大類似度Ｂが得られるときのターゲットブロック２５８が、対応するブロックとして検出される。この場合、合成処理時には、図１５で説明したのと同様に最大類似度ＡとＢを比較するなどして、第１位置情報取得部５２が算出した値を参照ブロック２４２に対する距離値として採用する。
【０１００】
一方、画像２６０のケースでは、第１位置情報取得部５２が探索範囲２６４に対し求めた類似度２６６には、対応すると見なせる程度に類似度が突出したブロックがないため対応箇所は検出されない。この場合、奥行き画像の画素値は０などとする。これに対し画像２７０のケースでは、第２位置情報取得部５６が探索範囲２７４に対し求めた類似度２７６のうち、最大類似度Ｄが得られるときのターゲットブロック２７８が、対応するブロックとして検出される。この場合、合成処理時には、第２位置情報取得部５６が算出した値を参照ブロック２６２に対する距離値として採用する。
【０１０１】
このようにして、第１位置情報取得部５２および第２位置情報取得部５６がそれぞれ生成した２つの奥行き画像が表す距離値のうち、採用する値を参照ブロックごとに適切に選択し、全画像平面に対し最終的な画素値を決定することにより奥行き画像を合成する。結果として、それぞれが設定した限定的な探索範囲を網羅した範囲で探索が行われたのと同等に、位置の異なる全ての対象物の距離を正確に求めることができる。
【０１０２】
ここで、第１位置情報取得部５２と第２位置情報取得部５６で距離値を求める対象を分担することにより、これまで述べた態様と同様に、両者の処理の詳細度や精度を個別に設定することができる。すなわち上述のように前景は背景より形状が複雑で動きが多いと想定されるため、背景を対象とする第１位置情報取得部５２と比較し前景を対象とする第２位置情報取得部５６は、第１位置情報取得部５２より高解像度のステレオ画像を利用したり、類似度の計算に高度な手法を採用したり、処理の頻度を高くしたり、といった態様の少なくともいずれかを実施する。
【０１０３】
なお計算手法を異ならせる場合は、第１位置情報取得部５２および第２位置情報取得部５６の探索範囲の一部を重複させることにより、図１５の場合と同様、同じ位置で類似度を比較することができ、両者のスケールを揃えられる。このように対象物の特性に応じて詳細度や解像度を変化させることにより、無駄な処理を省きつつ必要な位置情報を要求される精度で取得することができる。
【０１０４】
以上述べた本実施の形態によれば、ステレオ画像を用いて被写体の３次元空間での位置を求める情報処理装置において、処理を複数の役割に分割する。具体的には、画像全体あるいは距離を詳細に求めたい対象物に特化して、奥行き方向の距離の概略値を求めたうえ、当該概略値に対応する探索範囲に限定してブロックマッチングを行い詳細かつ高精度な位置情報を求める。これにより、対象物以外の背景などの物に対して処理を簡略化できるとともに、対象物については正確な位置情報が得られる。結果として処理負荷の軽減と後段の処理に必要な位置情報の精度の向上を両立させることができる。
【０１０５】
また、処理を２段階に分けたことによって生成される、全体的かつ簡易な位置情報と、対象を絞った詳細な位置情報とを合成することにより、詳細度や精度が異なる領域が混在した奥行き画像を生成する。これにより、対象物の特性の違いに起因して、要求される詳細度や精度が異なっても、それに見合った位置情報を１つの奥行き画像で表すことができる。結果として、少ない処理負荷およびデータ量で、後段の処理に必要な情報を適切に出力することができる。
【０１０６】
さらに、対象物のおよその位置によって距離を算出する対象を分担し、それぞれに適切な探索範囲を設定して並列に処理する。そしてそれぞれが生成した位置情報を合成することにより、必要な距離範囲を網羅した最終的な奥行き画像を生成する。このとき、対象物の特性によって解像度、類似度の計算手法、処理の頻度、の少なくともいずれかを異ならせることにより、余計な処理を可能な限り省いたうえで、必要な対象に処理を集約させることができる。結果として、少ない処理負荷およびデータ量で、後段の処理に必要かつ正確な位置情報を適切に出力することができる。
【０１０７】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１０８】
２  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １６  表示装置、  １３ａ  第１カメラ、  １３ｂ  第２カメラ、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  ４２  画像取得部、  ４４  入力情報取得部、  ４６  位置情報生成部、  ４８  画像データ記憶部、  ５０  出力情報生成部、  ５２  第１位置情報取得部、  ５６  第２位置情報取得部。
【図１】
0006548518.tif 000002
【図２】
0006548518.tif 000003
【図３】
0006548518.tif 000004
【図４】
0006548518.tif 000005
【図５】
0006548518.tif 000006
【図６】
0006548518.tif 000007
【図７】
0006548518.tif 000008
【図８】
0006548518.tif 000009
【図９】
0006548518.tif 000010
【図１０】
0006548518.tif 000011
【図１１】
0006548518.tif 000012
【図１２】
0006548518.tif 000013
【図１３】
0006548518.tif 000014
【図１４】
0006548518.tif 000015
【図１５】
0006548518.tif 000016
【図１６】
0006548518.tif 000017
【図１７】
0006548518.tif 000018