(57)【特許請求の範囲】
【請求項１】
撮影画像を用いて計測対象の３次元空間における位置を検出する情報処理装置であって、
所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを取得する画像取得部と、
前記３次元空間において検知面を定義し、前記ステレオ画像のうち前記第１のカメラの撮影画像に前記検知面を投影した検知領域を定める検知面定義部と、
前記ステレオ画像のうち前記第２のカメラの撮影画像において、前記検知領域と同一の領域を、前記検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出する視差補正領域導出部と、
前記第１のカメラの撮影画像における検知領域の画像と、前記第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行うマッチング部と、
前記マッチング部が行ったマッチング結果を出力する検出結果出力部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記検知面の奥行き方向の位置が検知面内で異なるとき、前記視差補正領域導出部は、前記第２のカメラの撮影画像において、前記検知領域と同一の領域の頂点ごとに視差の大きさを算出し、頂点をそれぞれの大きさで移動させることにより前記視差補正領域を導出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１のカメラの撮影画像における検知領域の画像と、前記第２のカメラの撮影画像における視差補正領域の画像とを、同じ大きさのマッチング用の画像とするためにテクスチャマッピングを行う領域切り出し部をさらに含むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記検知面定義部は、前記検知面を前記３次元空間における所定範囲に複数定義し、
前記視差補正領域導出部は、前記検知面ごとに前記視差補正領域を導出し、
前記マッチング部は、前記検知面ごとに前記マッチング処理を行い、
前記検出結果出力部は、マッチング評価値の最も高い検知面を抽出することにより、計測対象の位置を、抽出した検知面上と判定することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記検知面定義部は、複数の前記検知面を、前記３次元空間における所定の軸に対する回転角を異ならせて定義することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記画像取得部は所定のフレームレートで撮影されたステレオ画像を取得し、
前記マッチング部は、同じカメラで撮影された前の時刻の撮影画像との比較により生成された動き差分画像を用い、各画像のうち動き領域以外の領域を無効としたうえ、マッチング処理を行うことを特徴とする請求項１から５のいずれかに記載の情報処理装置。
【請求項７】
前記検知面定義部は、複数の計測対象のそれぞれに対応させて複数の前記検知面を定義し、
前記視差補正領域導出部は、前記検知面ごとに前記視差補正領域を導出し、
前記マッチング部は、前記検知面ごとに前記マッチング処理を行ったうえ、一の検知面においてマッチング評価値がしきい値より高い箇所のうち、別の検知面においてもマッチング評価値がしきい値より高い箇所を無効とすることにより計測対象ごとのマッチング結果とすることを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項８】
前記マッチング部は、マッチング評価値がしきい値より高い箇所を、前記検知面上に存在する計測対象の部位として特定し、
前記検知面上に計測対象の部位が存在するとき、前記３次元空間において、当該検知面と同一平面を表面の一部とした仮想オブジェクトが当該計測対象と相互作用するように、撮影画像上に前記仮想オブジェクトを描画し表示装置に表示させる出力情報生成部をさらに含むことを特徴とする請求項１から７のいずれかに記載の情報処理装置。
【請求項９】
前記検知面定義部は、前記ステレオ画像の解像度を小さくした低解像度ステレオ画像に対し、対応点を抽出してその視差から対象物の奥行き方向の位置を算出するステレオマッチングを行い、その結果から計測対象の概算された位置を取得して、当該位置に基づき前記検知面の位置を決定することを特徴とする請求項１から８のいずれかに記載の情報処理装置。
【請求項１０】
前記画像取得部は所定のフレームレートで撮影されたステレオ画像を取得し、
前記検知面定義部は、前の時刻のステレオ画像に対して判定された計測対象の位置に基づき、複数の前記検知面の位置を決定することを特徴とする請求項４または５に記載の情報処理装置。
【請求項１１】
計測対象の実寸をデータベースから取得し、撮影画像における見かけ上のサイズと実寸との比較により当該計測対象の奥行き方向の位置を取得し、当該位置に検知面を定義したうえで視差補正領域の移動量を変化させてそれぞれマッチング処理を行った結果、正しいマッチング評価が得られる前記移動量を抽出することにより、奥行き方向の位置と前記移動量の関係を補正するキャリブレーション部をさらに備えたことを特徴とする請求項１から１０のいずれかに記載の情報処理装置。
【請求項１２】
撮影画像を用いて計測対象の３次元空間における位置を検出する情報処理装置が行う情報処理方法であって、
所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを撮像装置から取得するステップと、
前記３次元空間において検知面を定義し、前記ステレオ画像のうち前記第１のカメラの撮影画像に前記検知面を投影した検知領域を定めるステップと、
前記ステレオ画像のうち前記第２のカメラの撮影画像において、前記検知領域と同一の領域を、前記検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出するステップと、
前記第１のカメラの撮影画像における検知領域の画像と、前記第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行うステップと、
マッチング結果を出力するステップと、
前記マッチング結果を利用して画像を生成し表示装置に表示するステップと、
を含むことを特徴とする情報処理方法。
【請求項１３】
撮影画像を用いて計測対象の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを撮像装置から取得する機能と、
前記３次元空間において検知面を定義し、前記ステレオ画像のうち前記第１のカメラの撮影画像に前記検知面を投影した検知領域を定める機能と、
前記ステレオ画像のうち前記第２のカメラの撮影画像において、前記検知領域と同一の領域を、前記検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出する機能と、
前記第１のカメラの撮影画像における検知領域の画像と、前記第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行う機能と、
マッチング結果を出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１４】
撮影画像を用いて計測対象の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを撮像装置から取得する機能と、
前記３次元空間において検知面を定義し、前記ステレオ画像のうち前記第１のカメラの撮影画像に前記検知面を投影した検知領域を定める機能と、
前記ステレオ画像のうち前記第２のカメラの撮影画像において、前記検知領域と同一の領域を、前記検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出する機能と、
前記第１のカメラの撮影画像における検知領域の画像と、前記第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行う機能と、
マッチング結果を出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とする、コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像に基づいた処理を行う情報処理装置、および当該装置が行う情報処理方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやゲーム機などにカメラを搭載し、ユーザの姿を撮像して様々な形で利用することが一般的に行われるようになってきた。例えばテレビ電話、ビデオチャットなど、ユーザの画像を、ネットワークを介してそのまま相手に伝送するものや、画像解析によってユーザの動きを認識してゲームや情報処理の入力情報とするものなどが実用化されている（例えば特許文献１参照）。
【０００３】
近年ではさらに、奥行き方向を含む３次元空間におけるユーザの動きを精度よく検出することにより、より臨場感のあるゲームや画像表現を実現できるようになってきた。対象物の奥行き方向の位置を検出する手法としては、ステレオカメラで撮影した左右の画像の視差を利用するもの、照射した赤外線の反射時間や赤外線画像を解析するもの、などが実用化されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ステレオカメラを利用した従来技術では、光源などの撮影環境の変化により計測結果に影響が生じる可能性がある。また精度を上げるためにカメラの解像度を上げると、計算コストが高くなり応答性が悪化しやすくなる、というジレンマも生じる。一方、赤外線を利用した技術は、別途、赤外線センサや専用のカメラシステムが必要であり、製造コストが高く、消費電力も大きい。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、対象物の３次元空間における位置を利用した高精度かつ応答性のよい情報処理を、安価に実現することのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様は情報処理装置に関する。この情報処理装置は、撮影画像を用いて計測対象の３次元空間における位置を検出する情報処理装置であって、所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを取得する画像取得部と、３次元空間において検知面を定義し、ステレオ画像のうち第１のカメラの撮影画像に検知面を投影した検知領域を定める検知面定義部と、ステレオ画像のうち第２のカメラの撮影画像において、検知領域と同一の領域を、検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出する視差補正領域導出部と、第１のカメラの撮影画像における検知領域の画像と、第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行うマッチング部と、マッチング部が行ったマッチング結果を出力する検出結果出力部と、を備えたことを特徴とする。
【０００８】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、撮影画像を用いて計測対象の３次元空間における位置を検出する情報処理装置が行う情報処理方法であって、所定の距離を隔てて設置された第１のカメラおよび第２のカメラで計測対象を並列に撮影したステレオ画像のデータを撮像装置から取得するステップと、３次元空間において検知面を定義し、ステレオ画像のうち第１のカメラの撮影画像に検知面を投影した検知領域を定めるステップと、ステレオ画像のうち第２のカメラの撮影画像において、検知領域と同一の領域を、検知面の奥行き方向の位置によって定まる視差の大きさだけ、視差を解消する方向に移動させた視差補正領域を導出するステップと、第１のカメラの撮影画像における検知領域の画像と、第２のカメラの撮影画像における視差補正領域の画像とでマッチング処理を行うステップと、マッチング結果を出力するステップと、マッチング結果を利用して画像を生成し表示装置に表示するステップと、を含むことを特徴とする。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、撮影画像を入力情報として利用する情報処理を安価かつ高精度に実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態における撮像装置と情報処理装置の構成を示す図である。
【図４】本実施の形態において定義する検知面を説明するための図である。
【図５】本実施の形態において利用する、ステレオ画像における視差と計測対象の奥行き方向の位置の関係を説明するための図である。
【図６】図５における距離Ｚに対する視差Ｄの変化を表す図である。
【図７】本実施の形態における位置情報生成部の構成を詳細に示す図である。
【図８】本実施の形態における検知面の設定例を説明するための図である。
【図９】図８で示した環境で撮影されたステレオ画像の例を示す図である。
【図１０】本実施の形態における検知面の別の設定例を説明するための図である。
【図１１】図１０で示した環境で撮影されたステレオ画像の例を示す図である。
【図１２】本実施の形態の情報処理システムによってなされる情報処理のうち、主に位置検出に係る処理の手順を示すフローチャートである。
【図１３】周期的な構造を有する物の存在による誤判定を説明するための図である。
【図１４】本実施の形態において周期的構造物の存在に起因する位置検出精度の低下を防止する手法を説明するための図である。
【図１５】本実施の形態において周期的構造物の存在に起因する検知精度の低下を防止する別の手法を説明するための図である。
【図１６】本実施の形態において天井面、床面を検出する手法を説明するための図である。
【図１７】図１６で示した天井面、床面を検出するときの位置情報生成部の処理手順を示すフローチャートである。
【図１８】本実施の形態において人物全体の形状に合わせたモデル形状を有する複数の検知面を定義し、撮影画像へ投影させた例を示す図である。
【図１９】本実施の形態において情報処理装置のキャリブレーションを行う場合のシステム構成を示す図である。
【発明を実施するための形態】
【００１２】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム２は、ユーザ１などの対象物を撮影する２つのカメラを搭載した撮像装置１２、撮影した画像に基づき、ユーザの要求に応じた情報処理を行う情報処理装置１０、情報処理装置１０が処理した結果得られた画像データを出力する表示装置１６を含む。また情報処理装置１０はインターネットなどのネットワーク１８と接続可能とする。
【００１３】
情報処理装置１０と、撮像装置１２、表示装置１６、ネットワーク１８とは、有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。撮像装置１２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置１２は必ずしも表示装置１６の上に設置されていなくてもよい。さらに被写体の数や種類は限定されない。
【００１４】
撮像装置１２は、それぞれがＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えた２つのデジタルビデオカメラを既知の間隔で左右に配置した構成を有する。２つのデジタルビデオカメラはそれぞれ、同一空間に存在する被写体を左右の位置から所定のフレームレートで撮影する。以後、このように撮影されたフレームの対を「ステレオ画像」とも呼ぶ。
【００１５】
情報処理装置１０は、画像平面およびカメラからの奥行き方向を含む３次元空間における被写体の位置を検出する。検出結果は、被写体の位置や動きを入力情報として用いる後段の処理に利用する。例えば被写体であるユーザ１の肩や手のひらに飛来する仮想オブジェクトを撮影画像上に描画するようなＡＲ（拡張現実）を実現するのに用いる。あるいはユーザ１の動きをトラッキングしてゲームの画像に反映させたり情報処理のコマンド入力に変換したりしてもよく、その使用目的は限定されない。
【００１６】
表示装置１６は、情報処理装置１０が行った処理の結果を、必要に応じて画像として表示する。表示装置１６は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等である。上述のとおり情報処理装置１０が最終的に実行する処理内容や表示すべき画像はその使用目的によって特に限定されるものではないため、以後は情報処理装置１０が行う、対象物の位置検出処理に主眼を置き説明する。
【００１７】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Porcessing Unit)２４、メインメモリ２６を含む。ＣＰＵ２２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、情報処理装置１０内部の構成要素における処理や信号伝送を制御する。ＧＰＵ２４は画像処理を行う。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００１８】
これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インタフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６やスピーカなどの出力装置へデータを出力する出力部３６、キーボード、マウス、マイクロホン、撮像装置１２などの入力装置からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００１９】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。
【００２０】
ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６などに出力する。
【００２１】
図３は撮像装置１２と情報処理装置１４の構成を示している。図３に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵ、ＲＡＭ、各種プロセッサなどの構成で実現でき、ソフトウェア的にはデータ入力機能、データ保持機能、画像解析機能、描画機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２２】
撮像装置１２は第１カメラ１３ａ、第２カメラ１３ｂを含む。各カメラはそれぞれ、既知の幅を隔てた左右の位置から所定のフレームレートで被写体を撮影する。撮影して得られるステレオ画像は情報処理装置１０からの要求により一般的な手法で随時、情報処理装置１０へ送信される。ここで「被写体」とは図１のユーザ１のように視野の中心に存在する人や物に限らず、背景、天井、床、壁、家具、各種設備など、視野に入っているものであればよい。それらの何を被写体とするかは、検出結果の使用目的によって設定する。具体例は後に述べる。
【００２３】
情報処理装置１０は、撮像装置１２からステレオ画像を取得する画像取得部４２、ユーザからの指示入力を取得する入力情報取得部４４、撮影画像に基づき被写体の位置情報を生成する位置情報生成部４６、被写体の位置に基づき必要な処理を行い出力情報を生成する出力情報生成部５０、撮像装置１２から入力されたステレオ画像および位置情報生成部４６などが生成した中間データを記憶する画像記憶部４８を含む。
【００２４】
入力情報取得部４４は、ユーザからの指示入力を受け付け、それに応じた処理要求信号をその他の機能ブロックに送信する。入力情報取得部４４は、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するＣＰＵなどの協働により実現する。
【００２５】
画像取得部４２は、入力情報取得部４４からの要求に従い撮像装置１２からステレオ画像等の画像データを取得し、画像記憶部４８に格納する。取得する画像は情報処理装置１０が後段で実施する処理や出力する情報に応じて様々であってよい。例えば第１カメラ１３ａが撮影した画像のみを撮影時のフレームレートで取得し、それより低いレートで第１カメラ１３ａ、第２カメラ１３ｂが撮影したステレオ画像を取得するなどでよい。つまり第１カメラ１３ａが撮影した画像と第２カメラ１３ｂが撮影した画像の取得レートは独立に設定できるようにしてもよい。
【００２６】
位置情報生成部４６は、画像記憶部４８に格納されたステレオ画像のデータに基づき、被写体の３次元の位置を検出する。このとき位置情報生成部４６は、カメラ座標系の３次元空間に対象物を検知する検知面を設定し、当該検知面と被写体との位置関係により被写体の位置を特定する。このとき検知面のカメラからの距離（奥行き方向の位置）から算出される視差の値を利用して、ステレオ画像から検知面と被写体との位置関係を特定する。詳細は後に述べる。
【００２７】
出力情報生成部５０は、位置情報生成部４６から入力された、被写体の位置に係る情報に基づき、画像記憶部４８から読み出した撮影画像に描画処理を施すなど、位置検出の結果の使用目的に応じた処理を適宜行う。上述のとおりここで行う処理は特に限定されず、入力情報取得部４４が受け付けたユーザからの指示に応じて適宜切り替えてよい。処理の結果得られた画像のデータは、表示装置１６に出力され表示される。あるいはネットワーク１８を介して別の装置へ送信してもよい。
【００２８】
図４は本実施の形態において定義する検知面を説明するための図である。まず第１カメラ１３ａのカメラ座標系による３次元空間に被写体たるユーザ１がいるとする。このユーザ１のうち、位置を検出したい部分、同図の例では左手近傍に、図示するように検知面５１を設定する。すなわち検知面５１は、カメラ座標系による３次元空間においてその頂点座標を定義した仮想的な平面である。検知面の輪郭形状は特に限定されず、傾きも任意に設定してよい。
【００２９】
図４では第１カメラ１３ａによる撮影画像５２も模式的に示している。撮影画像５２には当然、ユーザ１の像が写っている。位置情報生成部４６は、３次元空間に仮想的に定義した検知面５１を撮影画像５２の平面に投影し、検知面５１に対応する領域５４を算出する。以後、３次元空間で定義する「検知面」に対し、それを画像平面に投影した領域を「検知領域」と呼ぶ。３次元空間において定義されたモデルを２次元の画像平面に投影させる処理は、一般的なコンピュータグラフィックス処理の一つである。コンピュータグラフィックス処理を応用することによって検知面による位置検出を効率的に行える。
【００３０】
本実施の形態では、定義した検知面上に被写体が存在するか否かを位置情報として検出する。具体的な手法は後に述べるが、このようにすることで、（１）一つの検知面上に新たに被写体が存在するようになった（触れた）ことを検知する、（２）複数の検知面を所定範囲に分布させ、被写体が存在する検知面を抽出することで被写体の位置を検知する、という２種類のアプローチを実現できる。例えば上記（１）は、定義した検知面を表面の一部として仮想オブジェクトを描画すれば、被写体と仮想オブジェクトの相互作用を発生させるのに利用できる。上記（２）は、前の時刻の検出結果を利用して検知面を集中的に分布させることにより、被写体のトラッキングに利用できる。
【００３１】
検知面５１の大きさは、位置を検出したい部分（以後、「計測対象」と呼ぶ）の大きさによって変化させてよい。本実施の形態では画像全体から計測対象を絞り込み、さらに奥行き方向の位置を限定的かつ集中的に計測することにより、余分な処理を除外し必要な部分に注力する。結果として処理の負荷を増大させることなく、要求される情報を高精度に取得できる。なお第２カメラ１３ｂによっても、撮影画像５２と同様であり、視差に応じて被写体がずれた位置に写る画像が撮影される。
【００３２】
次に計測対象の位置を、検知面とステレオ画像を用いて検出する原理を説明する。図５はステレオ画像における視差と計測対象の奥行き方向の位置の関係を説明するための図である。第１カメラ１３ａ、第２カメラ１３ｂは距離Ｌを隔てた平行な光軸を有するように設置される。これらのステレオカメラに対し、計測対象は奥行き方向に距離Ｚ離れた右端の矢印に位置するとする。
【００３３】
各カメラが撮影した画像の１画素が表す実空間での幅Δｘは、距離Ｚに比例して次のように表される。
Δｘ＝Ｚ×ｗ／Ｗ
ここでＷはカメラの横方向の画素数、ｗは距離Ｚが１のときの実空間の横方向の視野範囲であり視角によって定まる。
【００３４】
距離Ｌだけ離れたカメラで撮影された同一の計測対象は、その画像上でおよそ下記のような画素数上の視差Ｄを有する。
Ｄ＝Ｌ／Δｘ＝Ｌ×（Ｗ／ｗ）×（１／Ｚ）＝Ｃ／Ｚ
ここでＣはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。
【００３５】
図６は距離Ｚに対する視差Ｄの変化を表している。上式に示すように視差Ｄは距離Ｚに反比例した曲線５６となる。一般的なステレオ画像法によれば、図示した関係を利用し、ステレオ画像上で表れる計測対象の特徴点の視差Ｄから、奥行き方向の距離Ｚを求める。画像は画素単位でデータを持つため視差Ｄも画素単位で得られる。図５において視差は実空間においてΔｘ単位で得られるため、奥行き方向の距離が得られる単位Δｚは、図５から次のようになる。
Δｚ＝Δｘ×Ｚ／Ｌ＝Ｚ２×（ｗ／Ｗ）×（１／Ｌ）
【００３６】
すなわち従来のステレオ画像法による距離Ｚの分解能は距離Ｚの２乗に比例して低下する。図６のグラフにおける縦の点線の間隔はΔｚを表している。例えば計測対象が矢印５８の位置にあっても、距離Ｚの計測結果はその直近の値ｚ１またはｚ２に丸められてしまう。このように従来手法では計測対象が遠方にあるほど計測結果に誤差が生じやすい傾向となる。
【００３７】
本実施の形態では、まず検知面によって距離Ｚを任意の値に設定し、それに対する視差Ｄを導出する。そして第１カメラ１３ａが撮影した画像における検知領域の画像と、第２カメラ１３ｂが撮影した画像における同一領域を視差Ｄだけずらした領域の画像とでマッチングを行い評価する。被写体の像のうち両画像で同じ位置にある部分、すなわちマッチングの評価値が高い部分は視差Ｄを有するということであり、ひいては当該部分が、最初に設定した距離Ｚに位置する、と結論づけることができる。
【００３８】
図７は位置情報生成部４６の構成を詳細に示している。位置情報生成部４６は、検知面を定義する検知面定義部６０、画像の特徴量を算出する特徴量算出部６２、視差を考慮してマッチング対象の領域を導出する視差補正領域導出部６４、導出された領域を切り出す領域切り出し部６６、切り出された領域間でマッチング処理を行うマッチング部６８、マッチングの結果から必要な情報を出力する位置情報出力部７０を含む。
【００３９】
検知面定義部６０は、第１カメラ１３ａのカメラ座標系の３次元空間において検知面を定義し、第１カメラ１３ａの撮影画像の平面に投影することにより検知領域の頂点座標を算出する。なお以後の説明では、ステレオ画像のうち、第１カメラ１３ａが撮影した画像を左画像、第２カメラ１３ｂが撮影した画像を右画像とするが、左右の画像でその役割を逆にしても同様の結果が得られる。
【００４０】
検知面定義部６０が定義する検知面は、上述のように位置検出結果の使用目的によって様々考えられる。例えば固定としてあらかじめ設定しておいてもよいし、ＡＲにおける仮想オブジェクトを構成するポリゴンの情報を出力情報生成部５０から受け取り、それに対応するように検知面を発生させてもよい。または前の時刻における位置検出結果を位置情報出力部７０から受け取り、その位置を中心に検知面を集中的に配置してもよい。
【００４１】
あるいは検知面定義部６０に簡易的な奥行き画像生成機能を設け、計測対象のおよその位置を自ら見積もるようにしてもよい。この機能は、ステレオ画像法により画面全体の奥行き画像を生成する一般的な機能でよいが、本実施の形態を実現するための補助的な情報を取得するのが目的であるため、簡易的な処理を行うのみでよい。具体的には処理対象の画像の解像度を下げたり、マッチングを行うブロックエリアを大きく設定したりすることにより処理の負荷を軽減させる。
【００４２】
特徴量算出部６２は、左画像および右画像に対し、所定の特徴量を導出する処理を施し、特徴量の大きい部分を他と区別した画像（以下、「特徴点画像」と呼ぶ）を生成する。例えばソーベルフィルタを用いてエッジ画像を生成する。あるいは動き差分画像を生成したり、テンプレート形状とのパターンマッチングによって計測対象の領域と他の領域とを２値の画素値で区別したりしてもよい。処理を施す対象は画像全体でなく、検知領域を含む限定的な領域のみでよい。このようにすることで無駄な処理を省き負荷を軽減できる。
【００４３】
視差補正領域導出部６４は、第２カメラ１３ｂが撮影した右画像のうち、第１カメラ１３ａが撮影した左画像における検知領域と同一の領域を、検知面の奥行き方向の位置Ｚに対応する視差Ｄの分だけ左方向にずらした領域を、視差補正領域として導出する。領域切り出し部６６は、左右の特徴点画像のうち、左画像の検知領域と、右画像の視差補正領域を切り出し、マッチング用の２つの画像を生成する。マッチング部６８は、そのようにして生成された左右の画像に対しブロックマッチングを行い、評価値の高い、ひいては画像上の同じ位置に存在するとみなされる特徴点を導出する。
【００４４】
この特徴点を有する部分が、検知面の位置に存在する被写体を表す。なおマッチング処理は画素単位でなく、隣接する画素値を内挿することにより得られる画素間の値を比較対象に含めることにより、画素より小さい単位で行ってよい。また本実施の形態は、マッチング対象の画像のうち同じ位置に同じ物または部位が存在していることを検出することができれば、いわゆる「特徴点画像」をマッチング対象とせず、例えば原画像のままマッチングを行ってもよい。
【００４５】
位置情報出力部７０は、マッチング結果に基づき、出力情報生成部５０が用いる情報を生成して出力する。例えば計測対象が接触した検知面、接触箇所、接触面積などを情報として出力する。またそのような情報を撮影された動画の各フレーム、あるいは数フレームおきに取得することにより時間変化のデータを出力してもよい。
【００４６】
次に検知面の設定と位置検出処理の具体例を説明する。図８は検知面の設定例を説明するための図である。同図上段は撮影環境を上から見た模式図７２ａ、下段は横から見た模式図７２ｂである。図示するように第１カメラ１３ａ、第２カメラ１３ｂに被写体である人物７４が対峙している。このような環境により図４に示したような画像が撮影される。
【００４７】
なお図５に示したように、第１カメラ１３ａ、第２カメラ１３ｂの光軸は平行で、縦方向のずれはないとする。実際には撮影された画像にずれが生じている場合があるが、一般的な手法によりそのような画像は、ずれのない状態に補正されているものとする。このとき等視差面は点線で示すように分布する。ここで等視差面とは、面上の全ての点において視差が等しい平面である。このような環境において、図示するように、ある等視差面上に検知面７６を定義した場合について考える。
【００４８】
図９は図８で示した環境で撮影されたステレオ画像の例を示している。図８で示したように検知面７６を定義すると、それを左画像８０ａに投影したときの検知領域８２が定まる。この検知領域８２の左上の座標を(ｘ，ｙ）とする。等視差面に検知面を定義したことから、左画像８０ａと右画像８０ｂの視差は全領域で同一である。すなわち奥行き方向の位置ｚにある検知面上に存在する物は、左画像８０ａと右画像８０ｂでは視差Ｄ＝Ｃ／ｚだけずれて写る。
【００４９】
そこで右画像８０ｂにおいて、検知領域８２と同一の領域を視差分だけ左方向に平行移動させた、左上の座標が（ｘ−Ｃ／ｚ，ｙ）の領域を視差補正領域８４とする。なお右画像８０ｂにおいて計測対象は左側にずれて写るため、視差を解消して計測対象が左画像８０ａと同じ位置になるようにするための領域移動は左方向となる。左画像８０ａ側をずらす場合は当然、逆方向となる。そして左画像８０ａの検知領域８２と、右画像８０ｂの視差補正領域８４の特徴点画像、例えばエッジ画像を切り出し、マッチング処理を行う。そして評価値の高い特徴点のみを他と異なる画素値としたマッチング画像８６を生成する。
【００５０】
図９におけるマッチング画像８６では、理解を容易にするため、エッジとして抽出された、被写体の左手の輪郭全体を実線および点線で示しているが、実際のマッチング画像はこのうち実線部分のみが残された画像であるとする。すなわち指先の一部および手首の一部が、図８で示した検知面上に位置している、という情報が得られる。マッチング画像として残す部分は、マッチング評価値のしきい値判定によって決定する。
【００５１】
このしきい値を調整することによって、奥行き方向の位置ｚに対する検出分解能を制御できる。なお図９および後述する図１０、１３、１４、１５において、見やすさのためマッチング画像はマッチング評価値の高い部分を黒色、その他の部分を白色で示しているが、それに限定する主旨ではなく白黒反転していてもよい。
【００５２】
図１０は検知面の設定の別の例を示している。図の示し方は図８と同様であり、第１カメラ１３ａ、第２カメラ１３ｂに被写体である人物９４が対峙している。図８では検知面を等視差面上に定義したが、図１０では等視差面に対し任意の傾きを有する場合に拡張している。つまり検知面９６は、等視差面に関わりなく定義する。
【００５３】
図１１は図１０で示した環境で撮影されたステレオ画像の例を示している。図１０で示したように検知面９６を定義すると、左画像１００ａの検知領域１０２が定まる。この例では検知面９６を等視差面と独立に定義しているため、カメラから検知面９６までの距離、ひいては視差が、画像上の全領域で等しいとは限らない。そのため検知領域の全頂点座標を独立に操作することにより全領域に対し適切なずらし量を適用する。
【００５４】
具体的には図示するように、左画像１００ａ上の検知領域１０２の頂点座標を（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）、（ｘ４，ｙ４）とし、検知面におけるそれらの頂点のカメラからの距離をそれぞれｚ１、ｚ２、ｚ３、ｚ４とすると、右画像１００ｂにおける視差補正領域１０４の頂点座標は（ｘ１−Ｃ／ｚ１，ｙ１）、（ｘ２−Ｃ／ｚ２，ｙ２）、（ｘ３−Ｃ／ｚ３，ｙ３）、（ｘ４−Ｃ／ｚ４，ｙ４）となる。
【００５５】
このような頂点座標を有する領域を切り出し、図９で説明したのと同様にしてマッチング画像１０６を生成する。ただしこの場合、検知領域１０２と視差補正領域１０４は異なる形を有している可能性がある。そのため領域切り出し部６６は、切り出した領域を適宜伸縮させ、マッチング処理を施すための同一の形状およびサイズの画像とする。この処理は、コンピュータグラフィックス処理においてテクスチャを読み出し、所望のポリゴンに貼り付ける処理と同等であるため、ＧＰＵを利用することにより効率的に行える。
【００５６】
なおそのようにして生成された図１１のマッチング画像１０６には、図９に示したマッチング画像８６より多くの特徴点が残っている。この結果により、被写体の左手は、図１０で定義した検知面の傾斜により近い角度を有することがわかる。また図１０では一つの検知面を定義していたが、複数の検知面を任意方向に定義しても処理内容は同様である。したがって、検知面を仮想オブジェクトのポリゴンに対応させて定義することも容易であり、本実施形態の手法はそのような仮想オブジェクトと被写体との相互作用表現において特に親和性が高い。
【００５７】
次にこれまで述べた構成によって実現できる情報処理システム２の動作を説明する。図１２は情報処理システム２によってなされる情報処理のうち、主に位置検出に係る処理の手順を示すフローチャートである。まずユーザが処理内容の指定とともに処理の開始を指示すると、撮像装置１２は被写体の撮影を開始する（Ｓ１０）。情報処理装置１０はそのようにして撮影されたフレーム画像のデータを順次取得する（Ｓ１２）。この画像には所定のレートでステレオ画像が含まれる。なおＳ１２からＳ２４までの処理は当該所定のレートで繰り返される。
【００５８】
情報処理装置１０の検知面定義部６０は、取得したステレオ画像の解像度を必要に応じて変換する（Ｓ１４）。例えば撮像装置１２から取得したステレオ画像の解像度が要求される位置検出の精度と比較し高すぎる場合、余計な処理負荷が生じたりノイズの原因になったりする。そのため検出結果の使用目的ごとに要求される精度に対応するステレオ画像の解像度をあらかじめ定めておき、当該解像度を有する画像へ変換する。
【００５９】
次に検知面定義部６０は、第１カメラ１３ａの座標系において検知面を定義する（Ｓ１６）。検知面は上述のように検出結果の使用目的や計測対象の大きさなどに応じて、形状、サイズ、数、位置、傾きなどを様々に設定できる。想定される撮影環境や計測対象によって適切な検知面の定義をあらかじめ準備しておいてもよいし、簡易的に生成した奥行き画像や仮想オブジェクトの位置、前の時刻での検出結果などに応じて適応的に変化させてもよい。
【００６０】
次に特徴量算出部６２は、検知面を左画像に投影してなる検知領域を含む所定範囲の領域、右画像における同様の領域に対し、エッジ抽出などの処理を施し所定の特徴量を算出し、特徴点画像を生成する（Ｓ１８）。次に視差補正領域導出部６４は、右画像については検知面の奥行き方向の位置に応じて定まる視差補正領域の頂点座標を導出し、左右の特徴点画像のうち左画像については検知領域を、右画像については視差補正領域を切り出す（Ｓ２０）。このとき、切り出された領域から、同じ形状およびサイズを有するマッチング用の画像を生成する。
【００６１】
この処理は上述のとおり、切り出し対象の各領域をテクスチャとみなすことにより、ＧＰＵによるテクスチャマッピングの機能を利用できる。このとき、テクスチャフィルタに適切な値を与えることにより、切り出された領域の伸縮を調整でき、実質的に、ブロックマッチング時に比較する単位領域、すなわち輝度差の総和などを求めるブロックエリアの面積を制御できる。ブロックエリアの面積を小さくすることにより、より細かい単位でのマッチング評価が可能となり、奥行き方向の位置の分解能が上がることになる。このようにテクスチャフィルタを適切にすることにより奥行き方向の位置の分解能を制御できる。
【００６２】
また切り出した領域の貼り付け先であるマッチング用画像の解像度を調整すると、画像平面（ｘｙ平面）における位置の分解能も制御できる。このように本実施の形態では、ＧＰＵを利用しながら各処理段階での設定値を調整することにより、各パラメータについて十分な精度を保ちながら無駄な処理を容易に省くことができる。なおＳ２０とＳ１８の処理は逆の順序で行ってもよい。すなわち左画像の検知領域と右画像の視差補正領域を切り出し、テクスチャマッピングなどにより同じサイズおよび形状の画像としてから特徴点を抽出し、その結果得られる特徴点画像をマッチング用画像としてもよい。
【００６３】
次にマッチング部６８は、右画像の検知領域および左画像の視差補正領域をそれぞれ貼り付けたマッチング用画像に対し、ブロックマッチングを行い、マッチング評価値の高い特徴点のみを残したマッチング画像を生成する（Ｓ２２）。そして位置情報出力部７０は、当該マッチング画像に基づき、計測対象の検知面への接触の有無、計測対象の３次元空間での位置など、必要とされる情報を生成し出力する（Ｓ２４）。
【００６４】
出力情報生成部５０は、位置情報出力部７０から供給された情報に基づき、仮想オブジェクトを描画したりゲーム画像を更新したりする（Ｓ２６）。なおＳ２６における画像の更新は、Ｓ１２からＳ２４までの位置検出処理とは独立したレートで行ってよく、例えば撮像装置１２が撮影した動画のフレームレートと同等のレートでよい。
【００６５】
一般的なステレオ画像法では、ステレオ画像の対応点を探索窓をずらしていくことにより特定し、その視差に基づき計測対象の奥行き方向の位置を得る。一方、本実施の形態ではあらかじめ視差分だけ画像をずらし、同じ形状の特徴点が同じ位置にあるか否かで、検知面の位置に計測対象があるか否かを判定する。これにより探索窓をずらしながら対応点を求めるのと比較し処理負荷が軽減されるとともに、奥行き方向の位置が画素単位で丸められ精度が低減するのを防ぐことができる。
【００６６】
一方で、一度のマッチングにより結果を出すという構成上、次のような問題が生じる可能性が出てくる。すなわち検知面と異なる位置にあるにも関わらず、被写体の周期的な模様や構造によって、視差分だけ画像をずらしたときに偶然、同じ位置に再度同じ模様や特徴点が位置してしまうことが考えられる。この場合、その模様や特徴点についてもマッチング評価値が高くなり、当該被写体が検知面上にあるように誤判定されてしまう。
【００６７】
図１３は周期的な構造を有する物の存在による誤判定を説明するための図である。同図右上は、撮影空間において、第１カメラ１３ａ、第２カメラ１３ｂと計測対象１１２の位置関係を表す上面図１１０である。この撮影空間において、計測対象１１２より奧に、周期的な構造を有する背景物１１４が位置しているとする。
【００６８】
この環境において、第１カメラ１３ａ、第２カメラ１３ｂで撮影した画像のうち、検知領域の画像が、それぞれ、左画像１１６、右画像１１８である。図示するように左画像１１６には、計測対象１１２の像１２０ａの背後に背景物１１４の像１２２ａが写っている。同様に右画像１１８には、計測対象１１２の像１２０ｂ、背景物１１４の像１２２ｂが写っている。計測対象１１２は背景物１１４よりカメラに近いため、ステレオ画像における視差がより大きい。
【００６９】
この状態で計測対象１１２が、カメラからの奥行き方向の距離がＺである検知面１１３上にあるとすると、右画像１１８の領域を視差Ｄ＝Ｃ／Ｚだけ左にずらした視差補正領域の画像１２４と、左画像１１６の検知領域とでマッチング処理を行うことになる。ところが背景物が間隔ｄの縦線模様を有するなど周期的構造を有する場合、当該間隔ｄと背景物自体の視差によっては、左画像１１６の縦線と、視差補正領域の画像１２４の縦線の位置が偶然一致してしまう場合がある。
【００７０】
図の例では左画像１１６の背景物の像１２２ａにおける左から２番目の縦線の横方向の位置ＸＬと、視差補正領域の画像１２４の一番左の縦線の位置ＸＲが等しくなっている。すると左右の端にある縦線以外は互いに重なる位置となり、マッチング評価値が高くなる。そのためマッチング評価値の高い特徴点のみを残したマッチング画像１２６において、本来検出されるべき計測対象１１２の特徴点１２０ｃとともに、検知面１１３上にはない背景物１１４の一部の特徴点１２８をも検出されてしまう。
【００７１】
図１４は周期的構造物の存在に起因する位置検出精度の低下を防止する手法を説明するための図である。左画像１１６、右画像１１８は図１３に示したものと同一である。この手法ではさらに、撮影された右画像、左画像のそれぞれについて、前フレームからの動き差分画像１３０、１３２を取得する。計測対象が何らかの動きを伴う場合、動き差分画像１３０、１３２は、図示するように、計測対象の像１２０ａ、１２０ｂの領域とその近傍で値を有する（動き領域１３４ａ、１３４ｂ）。
【００７２】
特徴量算出部６２は、左右の動き差分画像１３０、１３２を取得し、それを用いてそれぞれの特徴点画像をマスクし、計測対象の動き領域１３４ａ、１３４ｂ以外の領域の特徴点を無効とする。そのようにして右画像１１８をずらしたうえマッチング部６８がマッチング処理を施すことにより、動きのない背景物が検出対象から除外されたマッチング画像１３６を生成できる。
【００７３】
なお動き差分画像による特徴点画像のマスクは、マッチング部６８がマッチング画像に対し行ってもよい。この場合、左画像の動き差分画像１３０のみを用いてもよい。また動き差分画像に代え、背景差分によって前景のみを抽出した前景画像、計測対象が周囲の温度と異なる場合は温度分布などに基づき、計測対象以外の領域をマスクするようにしてもよい。
【００７４】
図１５は周期的構造物の存在に起因する検知精度の低下を防止する別の手法を説明するための図である。この手法では、異なる計測対象をターゲットとした検知面を複数定義する。そして、各検知面に対応する視差分だけ右画像をずらした複数の視差補正領域と、左画像の検知領域とをそれぞれマッチング処理し、その結果得られた複数のマッチング画像を互いのマスク画像として利用することにより計測対象を区別する。
【００７５】
図１５の例では、右上に示した撮影環境の上面図１１０において、計測対象１１２をターゲットとする第１検知面１３８と、背景物１１４をターゲットとする第２検知面１４０を定義している。図１５の左画像１１６、右画像１１８は図１３、１４に示したものと同一である。視差補正領域導出部６４は、第１検知面１３８の奥行き方向の距離Ｚに対応する視差Ｄだけ右画像の検知領域をずらした画像１２４（図１３で示した画像１２４と同一）、および、第２検知面１４０の奥行き方向の距離Ｚ’に対応する視差Ｄ’だけ右画像の検知領域をずらした画像１４２を生成する。
【００７６】
そしてマッチング部６８は、左画像１１６と、右画像を２通りにずらした画像１２４、１４２のそれぞれとでマッチング処理を行う。第１検知面１３８に対応させて視差Ｄだけずらした画像１２４に対するマッチング画像１２６は、図１３で示したのと同様、背景物の特徴点が残る画像となる。一方、第２検知面１４０に対応させて視差Ｄ’だけずらした画像１４２に対するマッチング画像１４４は、計測対象１１２の領域においてはマッチング評価値が低くなるため、背景物の特徴点のみが残った画像となる。
【００７７】
マッチング部６８は、このようにして生成した２つのマッチング画像１２６、１４４のうち一方を他方のマスク画像として使用する。同図の例では、第１検知面１３８に対して得られたマッチング画像１２６のうち、第２検知面１４０に対し得られたマッチング画像１４４で評価値の高かった箇所の特徴点を無効とする。これにより、第１検知面１３８がターゲットとする計測対象１１２のみを検出する画像１４６が得られる。
【００７８】
同図の例では、第２検知面１４０に対し得られたマッチング画像１４４において、すでに計測対象１１２の特徴点が消えているが、計測対象１１２の模様や形状によっては同様にミスマッチングが起こり、マッチング画像１４４に計測対象１１２の特徴点が残っている場合がある。そのため、上述と同様に、第２検知面１４０に対して得られたマッチング画像１４４のうち、第１検知面１３８に対して得られたマッチング画像１２６で評価の高かった箇所の特徴点を無効とすることにより、第２検知面１４０がターゲットとする背景物１１４のみを確実に検出できる。
【００７９】
図１５は２つの計測対象をターゲットとして検知面を設定したが、その数は３つ以上でもよい。また撮影空間のおよその奥行き情報を取得する処理を前処理として追加することにより、第１検知面、第２検知面の設定を行ってもよい。この機能は上述した簡易的な奥行き画像生成処理によって実現できる。さらに次に述べるように、本実施の形態の位置検出手法により背景の位置を取得し、それに基づき背景物用の検知面を定義してもよい。
【００８０】
これまでの説明は主に、ユーザの手など主たる被写体の位置検出に検知面を利用する態様であった。一方、本実施の形態で定義する検知面は平面モデルであるため、床、天井、壁などの検出にも有効である。これらの所謂背景は、動きや形状などでの特徴が見出しにくいため、従来技術ではそれ自体の位置検出は容易でなかったが、環境のモデル化やＡＲの舞台設定には非常に重要な要素である。
【００８１】
図１６は本実施の形態において天井面、床面を検出する手法を説明するための図である。同図右側は撮影環境を横から見た模式図１５０であり、左側は当該撮影環境で撮影された左画像１５２である。右画像も視差が生じる以外は同様に撮影されるが同図では省略している。このような撮影環境において、天井面を検出するための天井用検知面１５４および、床面を検出するための床用検知面１５６をこれまでと同様に定義する。ただしあらかじめ定めた検知面に動きを有する被写体が接触するのを検知する場合と異なり、動きのない天井面や床面の位置を探索するのが目的であるため、検知面側の位置や角度を様々に変化させる。
【００８２】
図１７は図１６で示した天井面、床面を検出するときの位置情報生成部４６の処理手順を示すフローチャートである。まず検知面定義部６０は、天井用検知面１５４、床用検知面１５６をそれぞれ、画像の縦方向（ｙ軸方向）に所定範囲で変化させて複数、定義する(Ｓ３０）。すなわち図１６の矢印Ａの方向で検知面を所定間隔で複数分布させる。そして特徴量算出部６２、視差補正領域導出部６４、領域切り出し部６６、マッチング部６８がこれまで述べたのと同様の処理を各検知面について行う（Ｓ３２）。具体的には奥行き方向の位置に応じて各頂点をずらした右画像の視差補正領域の特徴点画像と左画像の検知領域の特徴点画像を切り出し、マッチング処理を施すことによりマッチング画像を生成する。
【００８３】
このとき特徴点として抽出されるのは、天井の照明器具、タイルなどの建材の連結部分が形成する格子模様、絨毯の模様などである。次に、各検知面に対応するマッチング画像を参照し、特徴点が最も残っている、すなわち画像全体で総合的にマッチング評価値が最も高い検知面を、マッチング評価値の合計を比較するなどして抽出する（Ｓ３４）。そして当該検知面に対応するマッチング画像において特に評価値の高い領域を固定とし、画像の水平面、すなわち撮影空間のｘｚ平面に対する傾斜を変化させて新たな検知面を複数個定義する（Ｓ３６）。
【００８４】
すなわち図１６の矢印Ｂの方向で検知面を所定角度で複数分布させる。このとき上述のように、Ｓ３４において抽出したマッチング画像において特にマッチング評価値が高い部分は変化させないなど、矢印Ａ方向での探索結果を利用して回転軸を決定してもよい。そしてＳ３２と同様に各検知面についてマッチング画像を生成し（Ｓ３８）、総合的にマッチング評価値が最も高い検知面を抽出する（Ｓ４０）。このときの検知面がすなわち、天井面、または床面となる。なお天井面と床面を同時に検出しなくてもよい。また壁面の検出は、Ｓ３０において画像の横方向（ｘ軸方向）に変化させて検知面を分布させ、Ｓ３６において画像の垂直面すなわち撮影空間のｙｚ平面に対する傾斜を変化させて検知面を分布させればその他の処理は同様である。
【００８５】
これまで述べたように、本実施の形態は、計測対象と検知面との相対的な関係を検出できるため、計測対象の動きの有無に関わらず、検知面を１つまたは複数分布させることによって様々な運用が考えられる。以下、運用例について説明する。
【００８６】
（１）水平面／垂直面検出
図１６、１７で説明したように、天井面、床面、壁面の位置を検出するのと同様に、机の上面、椅子の座面、舞台上面など、撮影環境において基準となり得る水平面や垂直面の位置を検出する。天井面、壁面、床面が検出できると、それらの平面との距離や角度の関係などからその他の水平面、垂直面のおよその位置を類推できる。そして当該位置に集中的に検知面を分布させることにより、より効率的にこれらの平面を検出できる。
【００８７】
また検出した平面と平面とが交差する位置がわかるため、水平面、垂直面を構成する物の大きさの上限を類推することができる。天井面や床面のようにカメラの奥行き方向に長い平面を一度に検出することにより、元来、視差が小さく位置の検出精度を出しにくい遠方であっても、カメラに近い位置において検出された高精度な平面と一続きであることを利用し高精度な位置特定が可能となる。
【００８８】
（２）ステレオ画像法と組み合わせた位置探索
上述したように、検知面定義部６０などにおいて、一般的なステレオ画像法、すなわちステレオ画像の特徴点を対応づけ、それらの視差から対象物の奥行き方向の位置を算出する手法により奥行き画像を生成し、それを利用して検知面を定義してもよい。例えば計測対象である人の頭、手、胴体など、ターゲットとなる部位のおよその奥行き方向の位置を奥行き画像により導出する。そして部位ごとに、導出したおよその距離を中心とした所定範囲に集中的に検知面を分布させる。そして検知面を用いた評価を上述のとおり行い、最もマッチング評価値の高い検知面を抽出することにより、各ターゲットの位置を特定する。
【００８９】
（３）仮想オブジェクトとの相互作用
上述のとおり動く仮想オブジェクトを描画し、被写体である人物の手の上に飛来したり、手の動きに合わせてはねたり、といった、被写体と仮想オブジェクトの相互作用の発生にも利用できる。このとき、検知面定義部６０などによって簡易的な奥行き画像を所定のレートで生成し、手などのターゲットのおよその位置を監視する。そして一般的なグラフィックス処理により仮想オブジェクトをターゲット方向へ動かしていき、ターゲットまでの距離がしきい値より小さくなった時点で、ターゲット上に検知面を定義する。
【００９０】
この場合、ターゲットが動けば検知面もそれに合うように動かす必要がある。そのため、ターゲット近傍に複数の検知面を分布させ、マッチング評価値の高い検知面を逐次取得する。そして当該検知面に仮想オブジェクトが到達したら、仮想オブジェクトが止まる、跳ね返される、といった相互作用を働かせる。
【００９１】
上記ターゲットを机上面や椅子の座面などとする場合は、奥行き画像に基づき机や椅子近傍の水平面を（１）で説明したように探索する。通常、机や椅子は動かないため、探索して得られた水平面を表す検知面はそのまま仮想オブジェクトの着地面とすることができる。なお仮想オブジェクトは、奥行き画像や検知面による検知結果を利用して一般的な手法により出力情報生成部５０が描画する。
【００９２】
（４）モデル形状の検知面による探索
人物の全体像や顔面など位置を特定したいターゲットの形状に合わせて複数の検知面を組み合わせモデルを形成する。図１８は人物全体の形状に合わせたモデル形状を有する複数の検知面を定義し、撮影画像へ投影させた例を示している。画像平面１６０において、人体のモデルを構成する矩形１６２の１つ１つが検知面である。なお被写体の人物はこの人体モデルに重なっているものとして図示を省略している。
【００９３】
このようなモデルをあらかじめ作成しておき、前フレームでの探索結果などに基づき、モデルの位置、姿勢などを所定範囲で分布させる。そして最もマッチング評価値の高い形状を抽出することにより、人物の位置や姿勢を特定する。これを所定フレームごとに繰り返すことにより、位置のみならず姿勢などの形状変化についても追跡することができる。なお図１８の例は比較的、複雑なモデルであるが、要求される精度に応じて簡易化したり、より多数の小さい検知面を用いてさらに詳細なモデルとしてもよい。例えば顔面、胴体をそれぞれ１つの検知面で表してもよいし、顔面を額、鼻、頬、目などで分割し、それぞれ異なる検知面で表してもよい。
【００９４】
なお手や顔などカメラに対して角度が変化する可能性のあるターゲットについては、天井面を探索したのと同様に、それらをターゲットとした検知面の角度を可動範囲内で変化させるように分布させてもよい。また、同じターゲットであっても、最初は比較的面積の大きい検知面を定義しておよその位置を取得し、その後、図１８で示したような面積が小さい多数の検知面で、位置や姿勢などの詳細を取得するようにしてもよい。
【００９５】
（５）商品データベースを利用したキャリブレーション
商品のラベルなどの情報からその商品の形状や実寸などの規格を含む情報を提供する商品データサーバを利用して、情報処理装置１０のキャリブレーションを行う。図１９はその場合のシステム構成を示している。図１において示したネットワーク１８を介して、情報処理装置１０から商品データサーバ１７２へアクセスする。商品データサーバ１７２は、商品のラベルやバーコードなどの画像を送信すると該当する商品の情報を返信するサーバである。あるいは情報処理装置１０側でラベルやバーコードの画像解析を行い商品名や型番などの基本情報を取得したうえで、当該情報を商品データサーバ１７２へ送信することで商品の情報を返信してもらうシステムでもよい。
【００９６】
商品データサーバ１７２には規格データベース１７４が備えられる。規格データベース１７４は、商品の識別情報と、形状や実寸を含む商品情報とを対応づけて記憶するデータベースである。商品データサーバ１７２は、情報処理装置１０から送信されたラベルなどの画像、または商品の基本情報から当該商品の識別情報を取得し、それに基づき規格データベース１７４から商品情報を取得したうえで情報処理装置１０にその商品情報を返信する。
【００９７】
情報処理装置１０は、位置情報生成部４６にキャリブレーション部１７０を含む。なお情報処理システム２、情報処理装置１０、位置情報生成部４６は、キャリブレーション部１７０以外については、図１、２、３、７で示したのと同じ構成を有するが、ここでは図示を省略している。キャリブレーション部１７０は、被写体に含まれる商品のラベルの画像を取得すると、当該画像のデータやそれから得られる基本情報を商品データサーバ１７２に送信する。
【００９８】
商品データサーバ１７２から該当商品の情報を取得すると、キャリブレーション部１７０は、取得した商品の縦方向、横方向の実寸と、撮影環境におけるカメラからの見かけ上のサイズとの比較によって、カメラから商品までの距離を特定する。そして商品の形状に準じた検知面を設定して、上述のようにステレオ画像のマッチング評価を行う。
【００９９】
この場合、カメラから商品までの距離が既知であるため、生成されたマッチング画像はその評価値が高くなるはずであるが、右画像の視差補正領域を求めるための、視差に基づくずらし量に誤差があると評価値が低くなる。そこでキャリブレーション部１７０は、右画像の視差補正領域を求めるときのずらし量を複数通りに変化させ、最も評価の高いマッチング画像が得られるずらし量を求める。これにより、カメラからの距離と適切なずらし量との関係を正確に導出することができる。
【０１００】
なお上述の例では、実寸が未知であるが商品データサーバからの情報を利用可能な任意の商品を用いてキャリブレーションを行った。一方、実寸や形状に係る情報を情報処理装置１０側で保持している物を用いて同様にキャリブレーションを行ってもよい。あらかじめキャリブレーション用の物を準備しておき、それを撮影することによって同様の処理を行ってもよい。
【０１０１】
以上述べた本実施の形態によれば、撮像装置にカメラを２つ設け、異なる視点から対象物の動画を同時に撮影する。そして一方のカメラ座標系による３次元空間に検知面を定義する。検知面をカメラの撮影画像に投影させてなる検知領域の画像と、他方のカメラの撮影画像の同じ領域を検知面の奥行き方向の位置に基づく視差分だけすらした領域の画像とでマッチング処理を行う。そしてマッチング評価の高い特徴点を有する物体が、検知面の位置にある、と判断する。
【０１０２】
３次元空間に検知面を定義すること、２次元画像に投影させること、検知領域および視差補正領域の画像を切り出してマッチング用の画像として貼り付けること、はコンピュータグラフィックス処理におけるモデリング、座標変換、テクスチャ読み出しの処理と同等であるため、ＧＰＵなど画像処理に適したリソースをそのまま利用することができる。そして、入力画像の解像度、検知面の配置密度、領域読み出し時の解像度、マッチング画像の解像度をそれぞれ独立に設定できるため、画像平面方向、奥行き方向の検知精度を、処理負荷や使用目的に応じて適切に制御することができる。
【０１０３】
またＧＰＵにおいて、解像度に応じた適切なバッファ割り付けが行われるため、処理やリソース使用が効率的である。コンピュータグラフィックス処理の機能を利用することにより、ゲームなどのコンテンツ設計における検知面を含む注目領域の設定と、仮想オブジェクトなどのモデルのデザインレベルの設定を一体化できるため、コンテンツ作成が容易になる。さらに、先に３次元空間で奥行き方向の位置を設定したうえでその位置での視差を逆算するため、従来のステレオマッチング法において画素単位で求めた視差から奥行き方向の位置を算出するのに比べ丸め誤差が発生しにくい。このことは、特にカメラから遠方にある物について有効である。
【０１０４】
また従来のステレオマッチング法が、基準画像のブロックエリアに対し探索窓を視差の起こりうる範囲だけ移動させながらマッチングを行い対応点を抽出するのに対し、本実施の形態による手法では、探索窓の移動そもののが必要ない。また部分的な検知領域のみを処理対象とするため、処理の負荷が格段に小さくなる。さらに検知面の数を変化させたり、背景物の模様などに起因する誤判定を抑制する処理を加えたり外したりすることで、検出結果の使用目的、撮影環境、装置の処理性能などに応じた適切な処理系を選択できる。
【０１０５】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０６】
例えば本実施の形態では、主に第１カメラ１３ａの３次元カメラ座標系において検知面を定義した。一方、第１カメラ１３ａ、第２カメラ１３ｂのカメラ座標系以外の座標系において検知面を定義してもよい。例えば表示用の高解像度画像を撮影する第３のカメラを別に設け、そのカメラの３次元座標系において検知面を定義してもよい。あるいはＡＲ表示などにおけるグラフィックス描画で設定する３次元カメラ座標系において検知面を定義してもよい。このような場合でも本実施の形態と同様、第１カメラ１３ａ、第２カメラ１３ｂのどちらかの撮影画像平面に検知面を投影し、それらのカメラから検知面までの距離に応じた視差で他方の画像をずらしてマッチングを行うことにより、当該検知面に位置する被写体を検出できる。
【符号の説明】
【０１０７】
２  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １６  表示装置、  １３ａ  第１カメラ、  １３ｂ  第２カメラ、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  ４２  画像取得部、  ４４  入力情報取得部、  ４６  位置情報生成部、  ４８  画像記憶部、  ５０  出力情報生成部、  ６０  検知面定義部、  ６２  特徴量算出部、  ６４  視差補正領域導出部、  ６６  領域切り出し部、  ６８  マッチング部、  ７０  位置情報出力部、  １７０  キャリブレーション部、  １７２  商品データサーバ、  １７４  規格データベース。
【図１】
0005773944.tif 000002
【図２】
0005773944.tif 000003
【図３】
0005773944.tif 000004
【図４】
0005773944.tif 000005
【図５】
0005773944.tif 000006
【図６】
0005773944.tif 000007
【図７】
0005773944.tif 000008
【図８】
0005773944.tif 000009
【図９】
0005773944.tif 000010
【図１０】
0005773944.tif 000011
【図１１】
0005773944.tif 000012
【図１２】
0005773944.tif 000013
【図１３】
0005773944.tif 000014
【図１４】
0005773944.tif 000015
【図１５】
0005773944.tif 000016
【図１６】
0005773944.tif 000017
【図１７】
0005773944.tif 000018
【図１８】
0005773944.tif 000019
【図１９】
0005773944.tif 000020