(57)【要約】【課題】撮影画像における対象物の位置検出を効率的かつ高精度に行う。【解決手段】ユーザ１７０が存在する３次元空間に検出領域１７２を設定する。検出領域１７２に実際の手が入ると、奥行き画像においてその手の像１７４を構成する画素が表す座標点（黒丸）が当該検出領域１７２に入る。そこで当該検出領域１７２に含まれる座標点の数に基づき手を検出する。このとき頭部の像を含む所定範囲の領域に不感領域１７８を設定することにより、その中に存在する座標点を検出処理の対象から除外する。【選択図】図２１
2015153180.tif 000002
【特許請求の範囲】
【請求項１】
カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する情報処理装置であって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する奥行き画像取得部と、
前記奥行き画像の画素を前記３次元空間に表した座標点の内外判定により前記対象物を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を前記３次元空間に設定し、前記検出領域内にあり前記不感領域外にある座標点を検出することにより、前記対象物の位置を特定してその位置情報を生成し出力する座標点解析部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記座標点解析部は、前記対象物の形状および動きの特性の少なくともいずれかに基づき、前記検出領域および前記不感領域の形状を切り替えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記座標点解析部は、カメラ座標系およびワールド座標系の双方に対し前記検出領域および前記不感領域の少なくともいずれかを設定し、前記カメラが備える加速度センサの出力値に基づき光軸と前記３次元空間における水平面とのなす角度を取得することにより、前記座標点を、前記検出領域および前記不感領域が設定された座標系に応じて変換したうえで内外判定を行うことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記座標点解析部は、第一の形状を有する検出領域によって前記対象物の位置候補を絞り込み、さらに当該位置候補に設定した第二の形状を有する検出領域によって前記対象物の位置を最終的に特定することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記座標点解析部は、前記カメラの視野に含まれる床を表す座標点を検出することにより３次元空間における床面の位置を特定し、当該床面の位置に前記不感領域を設定することにより、対象物である足を表す座標点を、床を表す座標点と区別して、当該足の位置を特定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
検出対象の対象物の可動範囲の基準となる別の部位の３次元空間における位置を検出する基準部位検出部をさらに備え、
前記座標点解析部は、前記別の部位の位置に基づき特定した前記可動範囲に基づき、前記検出領域を設定するとともに、前記別の部位を含む領域を前記不感領域として設定することを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項７】
前記座標点解析部は、所定時間変化のない座標点により構成される領域を前記不感領域として設定することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記座標点解析部は、前記検出領域内にあり前記不感領域外にある座標点が所定数以上検出されたら、検出した各座標点に対し所定の演算を施し比較することにより、前記対象物の先端の位置を特定することを特徴とする請求項１から７のいずれかに記載の情報処理装置。
【請求項９】
情報処理装置が、カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する情報処理方法であって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得しメモリに格納するステップと、
前記メモリから読み出した前記奥行き画像の画素を前記３次元空間に表した座標点の内外判定により前記対象物を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を前記３次元空間に設定し、前記検出領域内にあり前記不感領域外にある座標点を検出することにより、前記対象物の位置を特定してその位置情報を生成し出力するステップと、
を含むことを特徴とする情報処理方法。
【請求項１０】
カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する機能と、
前記奥行き画像の画素を前記３次元空間に表した座標点の内外判定により前記対象物を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を前記３次元空間に設定し、前記検出領域内にあり前記不感領域外にある座標点を検出することにより、前記対象物の位置を特定してその位置情報を生成し出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１１】
カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する機能と、
前記奥行き画像の画素を前記３次元空間に表した座標点の内外判定により前記対象物を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を前記３次元空間に設定し、前記検出領域内にあり前記不感領域外にある座標点を検出することにより、前記対象物の位置を特定してその位置情報を生成し出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像に基づいた処理を行う情報処理装置、および当該装置が行う情報処理方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやゲーム機などにカメラを搭載し、ユーザの姿を撮像して様々な形で利用することが一般的に行われるようになってきた。例えばテレビ電話、ビデオチャットなど、ユーザの画像を、ネットワークを介してそのまま相手に伝送するものや、画像解析によってユーザの動きを認識してゲームや情報処理の入力情報とするものなどが実用化されている（例えば特許文献１参照）。近年ではさらに、奥行き方向を含む３次元空間における対象物の動きを精度よく検出することにより、より臨場感のあるゲームや画像表現を実現できるようになってきた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多様な物が存在する空間を撮影し、その画像から所望の対象物のみを判別したり動きを追跡したりするには様々な課題が存在する。例えば光源などの撮影環境の変化により処理結果に影響が生じる可能性がある。また精度を上げるために時間解像度、空間解像度を上げて対象物の検出処理を行うと処理の負荷が高くなる。結果として被写体の撮影から処理結果の出力までに時間を要し、被写体の動きに対する応答性が悪化する。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、対象物の３次元空間における位置検出を効率的かつ高精度に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する情報処理装置であって、カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する奥行き画像取得部と、奥行き画像の画素を３次元空間に表した座標点の内外判定により対象物の存在を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を３次元空間に設定し、検出領域内にあり不感領域外にある座標点を検出することにより、対象物の位置を特定してその位置情報を生成し出力する座標点解析部と、を備えたことを特徴とする。
【０００７】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、カメラで撮影した被写体のうち所定の対象物の３次元空間における位置を検出する情報処理方法であって、カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得しメモリに格納するステップと、メモリから読み出した奥行き画像の画素を３次元空間に表した座標点の内外判定により対象物の存在を検出するための検出領域と、当該内外判定の対象から除外する座標点の範囲を定める不感領域を３次元空間に設定し、検出領域内にあり不感領域外にある座標点を検出することにより、対象物の位置を特定してその位置情報を生成し出力するステップと、を含むことを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、撮影画像を入力情報として利用する情報処理を高精度に応答性よく実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態における撮像装置と情報処理装置の構成を示す図である。
【図４】本実施の形態における情報処理システムによってなされる情報処理のうち、主に対象物の位置検出に係る処理の基本的な手順を示すフローチャートである。
【図５】本実施の形態においてステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。
【図６】本実施の形態の撮影空間における奥行き方向の軸について説明するための図である。
【図７】本実施の形態においてマッチング処理部が行うテンプレートマッチング処理の手順を模式的に示す図である。
【図８】本実施の形態において基準テンプレート画像のサイズを調整しその後にマッチング評価値を算出する具体的な手法を説明するための図である。
【図９】図４のＳ１６において情報処理装置のマッチング処理部が頭部の位置を検出する処理手順を示すフローチャートである。
【図１０】本実施の形態において得られる位置情報のデータ例を示す図である。
【図１１】本実施の形態における検出処理において設定する検出領域について説明するための図である。
【図１２】本実施の形態において設定した検出領域に対象物が存在するか否かを判定する処理を説明するための図である。
【図１３】本実施の形態において検出領域を設定する座標系と検出領域の形状を例示する図である。
【図１４】本実施の形態において、ある検出領域において手の存在が検出された場合に、手先の位置を特定する原理を説明するための図である。
【図１５】本実施の形態において基準ベクトルを用いて手先の位置を特定する手法を説明するための図である。
【図１６】図４のＳ１８において情報処理装置の座標点解析部が手の位置を検出する処理手順を示すフローチャートである。
【図１７】図１６のＳ５８において座標点解析部が行う、手先の位置を検出する処理の手順を示すフローチャートである。
【図１８】本実施の形態において手の存在を検出するための存在検出領域と、先端の位置を検出するための先端検出領域とを異ならせる例を模式的に示す図である。
【図１９】本実施の形態において複数の座標系に複数の形状を有する検出領域を設定した例を模式的に示す図である。
【図２０】本実施の形態において異なる形状の検出領域を重複するように設定して段階的に検出を行う態様の例を模式的に示す図である。
【図２１】本実施の形態において検出領域とともに不感領域を設定する態様を説明するための図である。
【図２２】本実施の形態において床に対し不感領域を設定する例を模式的に示す図である。
【図２３】本実施の形態において天井面や床面を検出する手法を説明するための図である。
【図２４】本実施の形態において検出領域の角度を調整し正しい水平面を検出する手法を説明するための図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム２は、ユーザ１などの対象物を撮影する２つのカメラを搭載した撮像装置１２、撮影した画像に基づき、ユーザの要求に応じた情報処理を行う情報処理装置１０、情報処理装置１０が処理した結果得られた画像データを出力する表示装置１６を含む。情報処理装置１０はインターネットなどのネットワークと接続可能としてもよい。
【００１２】
情報処理装置１０と、撮像装置１２、表示装置１６とは、有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。撮像装置１２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置１２は必ずしも表示装置１６の上に設置されていなくてもよい。さらに被写体の数や種類は限定されない。
【００１３】
撮像装置１２は、それぞれがＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えた２つのデジタルビデオカメラを既知の間隔で左右に配置した構成を有する。２つのデジタルビデオカメラはそれぞれ、同一空間に存在する被写体を左右の位置から所定のフレームレートで撮影する。以後、このように撮影されたフレームの対を「ステレオ画像」とも呼ぶ。
【００１４】
情報処理装置１０は、画像平面およびカメラからの奥行き方向を含む３次元空間における被写体の位置を検出する。検出結果は、被写体の位置や動きを入力情報として用いる後段の処理に利用する。例えば被写体であるユーザ１の手や足の動きに反応する仮想オブジェクトを撮影画像上に描画するようなＡＲ（拡張現実）を実現するのに用いる。あるいはユーザ１の動きをトラッキングしてゲームの画像に反映させたり情報処理のコマンド入力に変換したりしてもよい。このように本実施の形態で得られる被写体の位置に係る情報の使用目的は特に限定されない。
【００１５】
表示装置１６は、情報処理装置１０が行った処理の結果を、必要に応じて画像として表示する。表示装置１６は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等である。上述のとおり情報処理装置１０が最終的に実行する処理内容や表示すべき画像はその使用目的によって特に限定されるものではないため、以後は情報処理装置１０が行う、被写体の位置検出処理に主眼を置き説明する。
【００１６】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Porcessing Unit)２４、メインメモリ２６を含む。ＣＰＵ２２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、情報処理装置１０内部の構成要素における処理や信号伝送を制御する。ＧＰＵ２４は画像処理を行う。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００１７】
これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６やスピーカなどの出力装置へデータを出力する出力部３６、キーボード、マウス、撮像装置１２、マイクロホンなどの入力装置からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００１８】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６などに出力する。
【００１９】
図３は撮像装置１２と情報処理装置１０の構成を示している。図３に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵ、ＲＡＭ、各種プロセッサなどの構成で実現でき、ソフトウェア的にはデータ入力機能、データ保持機能、画像解析機能、描画機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２０】
撮像装置１２は第１カメラ１３ａ、第２カメラ１３ｂを含む。各カメラはそれぞれ、既知の幅を隔てた左右の位置から所定のフレームレートで被写体を撮影する。撮影して得られるステレオ画像は情報処理装置１０からの要求により一般的な手法で随時、情報処理装置１０へ送信される。情報処理装置１０は、撮像装置１２からステレオ画像を取得する画像取得部４２、ユーザからの指示入力を取得する入力情報取得部４４、撮影画像に基づき対象物の位置情報を生成する位置情報生成部４６、対象物の位置に基づき必要な処理を行い出力情報を生成する出力情報生成部５０、撮像装置１２から入力されたステレオ画像および位置情報生成部４６が取得した奥行き画像のデータを記憶する画像記憶部４８を含む。
【００２１】
入力情報取得部４４は、処理の開始や終了、撮像装置１２による撮影以外の手段によるユーザからの指示入力を受け付け、それに応じた処理要求信号をその他の機能ブロックに送信する。入力情報取得部４４は、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するＣＰＵなどの協働により実現する。
【００２２】
画像取得部４２は、入力情報取得部４４からの要求に従い撮像装置１２からステレオ画像等の画像データを取得し、画像記憶部４８に格納する。取得する画像は出力情報生成部５０が後段で実施する処理や出力する情報に応じて様々であってよい。例えば第１カメラ１３ａが撮影した画像のみを撮影時のフレームレートで取得し、それより低いレート、すなわち頻度で第１カメラ１３ａ、第２カメラ１３ｂが撮影したステレオ画像を取得するなどでよい。つまり第１カメラ１３ａが撮影した画像と第２カメラ１３ｂが撮影した画像の取得レートは独立に設定できるようにしてもよい。
【００２３】
位置情報生成部４６は、画像記憶部４８に格納されたステレオ画像のデータに基づき、被写体のうち特定部位の３次元空間での位置を検出する。位置情報生成部４６は奥行き画像取得部５２、マッチング処理部５４、座標点解析部５６を含む。奥行き画像取得部５２はステレオ画像を用いて、撮像装置１２の視野内に存在する被写体の奥行き方向の位置分布を表す奥行き画像を生成する。被写体の奥行き方向の位置分布は、ステレオ画像法など一般的な技術によって求められる。ここでステレオ画像法は、ステレオ画像の特徴点を対応づけ、それらの視差から被写体の奥行き方向の位置を算出する一般的な手法である。また奥行き画像は、各被写体の撮像装置１２からの奥行き方向の距離を、画像平面の２次元座標にマッピングし画素値として表した画像である。
【００２４】
したがって奥行き画像には、人など主たる被写体のほか、椅子や机など撮影対象の空間に存在する各種物体の奥行き方向の位置が、その形状を伴って表される。なお撮像装置１２に奥行き画像を生成する機能を設けてもよい。この場合、画像取得部４２が奥行き画像のデータを撮像装置１２から取得して画像記憶部４８に格納し、奥行き画像取得部５２がそれを読み出す。あるいは赤外線センサや赤外線カメラ、参照光照射型のカメラなどを別途設け、被写体に照射した赤外線、参照光の反射時間や赤外線画像を解析することにより、被写体の奥行き方向の位置分布を取得し、それに基づき奥行き画像を生成してもよい。いずれの場合も、奥行き画像取得部５２は、生成あるいは取得した奥行き画像をマッチング処理部５４および座標点解析部５６に供給する。あるいは画像記憶部４８に格納し、その識別情報をマッチング処理部５４および座標点解析部５６に通知する。
【００２５】
マッチング処理部５４および座標点解析部５６は、奥行き画像を利用し、被写体のうち後段の処理に必要な部位の３次元空間での位置を特定する。例えば頭部、手、足など動きのある部位の位置を所定のレートで特定することにより、ユーザの動きを検知でき、これによりゲームを進捗させたりＡＲを実現したりできる。
【００２６】
検出対象の部位によって形状変化や可動範囲などの特性は様々である。例えば頭部はユーザの向きや動きによらずその像の形状変化が小さい。手は形状が変化する可能性が高いが、頭部から推定される肩の位置に対し可動範囲が限定的である。足についても胴体の位置に対し可動範囲が限定的である。本実施形態ではそのような部位ごとの特性を考慮して複数段階で異なる検出手法を適用することにより、効率的かつ高精度な検出を行う。具体的には、マッチング処理部５４は、人の頭部の位置をテンプレート画像とのマッチングにより検出する。そのためマッチング処理部５４がアクセス可能なメモリなどに、頭部の形状およびサイズを表すマッチング用の基準テンプレート画像のデータを格納しておく。
【００２７】
座標点解析部５６は、マッチング処理部５４が検出した頭部の位置に基づき、手や足の可動範囲を推定する。そして奥行き画像で表される座標点のうち、当該可動範囲を考慮して設定した検出領域内に存在する座標点に基づき手先や足先の位置を特定する。そのため、形状および大きさを含む検出領域の設定規則、検出領域における対象物の有無を判定するため座標点の数に対し設定するしきい値、各検出領域において手先等のあるべき向きを表す基準ベクトルなどの情報を、座標点解析部５６がアクセス可能なメモリなどに格納しておく。
【００２８】
なおマッチング処理部５４および座標点解析部５６が位置を検出する対象は人の頭部や手足に限定されない。定性的にはマッチング処理部５４は形状変化が少ない物、座標点解析部５６は可動範囲や方向が推定できる物の検出に適している。また後者の検出は、前者の検出結果を利用して行うのが効率的であるが、処理順を限定するものではない。対象物や環境などによって、前者のみ、後者のみを検出してもよいし、両者を異なるレートで検出してもよい。
【００２９】
出力情報生成部５０は、位置情報生成部４６から入力された、対象物の位置に係る情報に基づき、画像記憶部４８から読み出した撮影画像にさらに描画処理を施すなど、使用目的に応じた処理を適宜行う。上述のとおりここで行う処理は特に限定されず、入力情報取得部４４が受け付けたユーザからの指示や実行するプログラムなどに応じて適宜切り替えてよい。処理の結果得られた画像のデータは、表示装置１６に出力され表示される。あるいはネットワークを介して別の装置へ送信してもよい。出力情報生成部５０はさらに、被写体の動きに応じた音声データを生成し、スピーカから出力するようにしてもよい。
【００３０】
次に、上記構成によって実現される情報処理装置の動作を説明する。図４は情報処理システム２によってなされる情報処理のうち、主に対象物の位置検出に係る処理の基本的な手順を示すフローチャートである。この例では、被写体を人とし、その頭部および手の位置を所定のレートで検出することにより、それらの動きを表示画像に反映させる。まずユーザが入力情報取得部４４に対し処理の開始を指示すると、画像取得部４２を介した撮影開始要求により、撮像装置１２は被写体の撮影を開始する（Ｓ１０）。情報処理装置１０の画像取得部４２は、そのようにして撮影された動画像のフレームデータを順次取得し、画像記憶部４８に格納する（Ｓ１２）。このデータには所定のレートでステレオ画像のデータが含まれる。
【００３１】
次に位置情報生成部４６の奥行き画像取得部５２は、画像記憶部４８に格納されたステレオ画像のデータを用いて、被写体の奥行き方向の距離の分布を画素値とした奥行き画像を生成する（Ｓ１４）。上述のとおり撮像装置１２が奥行き画像を生成する機能を含む場合は、画像記憶部４８に当該奥行き画像のデータが格納されるため、Ｓ３４で奥行き画像を生成する代わりに当該データを読み出す。次に位置情報生成部４６のマッチング処理部５４は、人間の頭部の形状を表すテンプレート画像を用いて奥行き画像とのマッチングを行うことにより、被写体の頭部の像、ひいては３次元空間における頭部の位置を検出する（Ｓ１６）。
【００３２】
次に位置情報生成部４６の座標点解析部５６は、頭部の位置に基づき推定できる手の可動範囲に基づき検出領域を決定し、当該検出領域に存在する奥行き画像の座標点に基づき手の位置を検出する（Ｓ１８）。より詳細には、まず検出領域内の座標点の数に基づき手の存在を検出し、さらにその位置における手先の向くべき方向に基づき手先の位置を検出する。肩や肘を基準とした場合、手はそれを中心とした球面上を可動範囲内で動くため、手先の向きはおよそ当該球面の法線ベクトルで表される。
【００３３】
そこでそのような特性を利用し、当該手先の向くべき方向を検出領域ごとに基準ベクトルとして設定する。そして実際の座標点の分布と比較することにより手先の位置を特定する。ここで「手先」とは拳か手のひらかに関わらず、手の先端部分をいう。手先の位置が判明すれば、手や腕などの位置も撮影画像や奥行き画像における像の連続性により特定できる。肩や肘を、足の付け根や膝に置き換えれば、足先も同様に検出できる。さらに肘や膝も、肩や足の付け根を基準として同様に検出できる。出力情報生成部５０は、頭部や手先の３次元空間での位置情報に基づき、使用目的に応じた画像加工処理や画像解析処理などを実施し、必要に応じて処理結果を表す表示画像を生成、出力する（Ｓ２０）。
【００３４】
ユーザが処理の終了を指示するまで、所定のレートでＳ１２〜Ｓ２０の処理を繰り返すことにより、対象物の動きを反映した動画像等を出力し続け（Ｓ２２のＮ）、処理の終了指示に応じて全ての処理を終了する（Ｓ２２のＹ）。なおＳ２０の表示画像出力処理は、Ｓ１２からＳ１８までの位置検出処理とは独立した周期で行ってよい。例えば表示画像は、撮像装置１２が撮影した動画のフレームレートと同等のレートで出力し、検出処理はそれより小さいレートで行ってもよい。またＳ１６における頭部検出処理とＳ１８の手検出処理の周期も異なっていてよい。
【００３５】
次にマッチング処理部５４が図４のフローチャート中、Ｓ１６で行う頭部検出処理について説明する。この処理は人の頭部のほか、位置、向き、動きに対し形状変化の小さい特性を有する対象物について適用できる。まず対象物の奥行き方向の位置とテンプレート画像のサイズの関係について説明する。ここで長さの単位は記載がない限りメートル等で揃えているものとする。図５はステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。第１カメラ１３ａ、第２カメラ１３ｂは距離Ｌを隔てた平行な光軸を有するように設置される。このようなステレオカメラに対し、被写体は奥行き方向に距離Ｚ離れた右端の矢印の位置に存在するとする。
【００３６】
各カメラが撮影した画像の１画素が表す実空間での幅Δｘは、距離Ｚに比例して次のように表される。
Δｘ＝Ｚ×ｗ／Ｗ  （１）
ここでＷはカメラの横方向の画素数、ｗは距離Ｚが１のときの実空間の横方向の視野範囲であり視角によって定まる。
【００３７】
距離Ｌだけ離れたカメラで撮影された同一の被写体は、その画像上でおよそ下記のような画素数上の視差Ｄ（画素）を有する。
Ｄ＝Ｌ／Δｘ＝Ｌ×（Ｗ／ｗ）×（１／Ｚ）＝Ｃ／Ｚ  （２）
ここでＣはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。距離Ｚが１のときの視差Ｄａｔ１（画素）を既知とすると、任意の視差Ｄ（画素）に対し奥行き方向の距離Ｚは次のように求められる。
Ｚ＝Ｄａｔ１／Ｄ  （３）
【００３８】
一方、マッチング処理部５４が読み出す基準テンプレート画像が、対象物を画素数上の幅ｐｔｍｐ（画素）で表しているとすると、任意の距離Ｚにいるときの対象物の画素数上の幅ｐ（画素）は、視差Ｄ（画素）と同様、奥行き方向の距離Ｚに反比例し、次のように表される。
ｐ＝ｐｔｍｐ ×（Ｚｔｍｐ／Ｚ）  （４）
ここでＺｔｍｐは、撮影画像中、基準テンプレートに合致するサイズで対象物が表されるときの当該対象物の奥行き方向の距離である。
【００３９】
基準テンプレート１画素が表す実空間での幅をΔｘｔｍｐ、距離Ｚが１における、カメラが撮影した画像の１画素が表す実空間での幅をΔｘａｔ１とすると、式（１）より、
Δｘｔｍｐ＝Ｚｔｍｐ ×ｗ／Ｗ      （５）
Δｘａｔ１＝ｗ／Ｗ               （６）
であるから、下式が得られる。
Ｚｔｍｐ ＝ Δｘｔｍｐ／Δｘａｔ１     （７）
【００４０】
したがって式（４）は
ｐ＝ｐｔｍｐ×Δｘｔｍｐ／Δｘａｔ１／Ｚ  （８）
となり、結果として、任意の距離Ｚにいるときの被写体の画像上のサイズに合わせるために基準テンプレート画像に乗算すべき倍率Ｍは次の式により求められる。
Ｍ＝Δｘｔｍｐ／Δｘａｔ１／Ｚ    （９）
【００４１】
Δｘａｔ１はカメラなどに依存する固定値であるため、準備する基準テンプレート画像に応じてΔｘｔｍｐを決定することによりサイズ調整を実現できる。例えば人の頭部の位置を特定する場合、頭部の幅を０．２ｍ程度とし、周囲のマージン領域を含め実際の幅０．３ｍを幅１６画素で表した基準テンプレート画像を準備した場合、Δｘｔｍｐ＝０．３／１６＝０．０１９ｍなどとなる。なお本実施の形態では上述のとおり奥行き画像と、サイズを調整したテンプレート画像とでマッチング処理を行うため、カメラが撮影した画像と奥行き画像の解像度が異なる場合は、奥行き画像の１画素が表す実空間の幅をΔｘａｔ１とする。
【００４２】
図６は撮影空間における奥行き方向の軸について説明するための図である。同図上段は撮影空間を上から見た模式図５６ａ、下段は横から見た模式図５６ｂである。第１カメラ１３ａ、第２カメラ１３ｂの視野内には被写体である人物５８および人物５９が存在している。
【００４３】
なお図５に示したように、第１カメラ１３ａ、第２カメラ１３ｂの光軸は平行で、縦方向のずれはないとする。実際にはずれが生じている場合があるが、そのような環境で撮影された画像は、一般的な手法によりずれのない状態に補正されているものとする。図中、点線は等視差面を表している。ここで等視差面とは、面上の全ての点において視差が等しい平面であり、ひいては（２）式より、カメラからの距離Ｚが等しく算出される面である。したがって奥行き方向の距離Ｚは、図示するように当該等視差面に対し垂直な軸（光軸）上での、カメラの撮影面（センサ面）からの距離によって定義される。
【００４４】
図７はマッチング処理部５４が行う、テンプレートマッチング処理の手順を模式的に示している。まず上述のとおり対象物の形状およびサイズを規定する基準テンプレート画像６０を準備しておく。同図の例では人の頭部を対象物とするため、基準テンプレート画像６０は縦長の楕円形を表す画像としている。また基準テンプレート画像６０のうち、対象物の形状を表す楕円形の領域を白（画素値１）、それ以外の領域を黒（画素値０）、とした２値画像としている。以後、このデータ形式に則り説明するが、基準テンプレート画像のデータ形式はこれに限らない。
【００４５】
一方、奥行き画像取得部５２は、撮像装置１２から取得した各時刻のステレオ画像に基づき奥行き画像６２を生成する。あるいは上述のとおり撮像装置１２から直接、奥行き画像６２を取得する。奥行き画像６２は画素値が大きいほど奥行き方向の距離Ｚが小さい、すなわちカメラから近いことを表す画像である。ただし奥行き画像のデータ形式をそれに限る主旨ではない。このような奥行き画像６２を画像として表示すると、カメラから近い被写体ほど輝度が大きくなる。
【００４６】
同図では画素値が大きい領域ほど網掛けの密度を小さくすることで画像表示上の輝度の差を表している。すなわち奥行き画像６２において、３つの被写体６４、６６、６８が視野内に存在しており、被写体６４、６６は比較的カメラに近い同様の距離に位置し、被写体６８はそれらより遠い距離に位置している。ここで被写体６４、６８の位置関係は、図６の人物５８、５９の位置関係に対応している。
【００４７】
マッチング処理部５４は、各被写体６４、６６、６８の奥行き方向の距離Ｚに応じて、式（９）から倍率Ｍを求めることにより、基準テンプレート画像６０を拡縮する。ただし当然、倍率Ｍが１であれば拡縮は行わない。例えば同図に示すように被写体６４の距離Ｚ６４、被写体６６の距離Ｚ６６がＺ６４≒Ｚ６６であり、それらから算出される倍率Ｍ６４≒Ｍ６６が１より大きければ、基準テンプレート画像６０を当該倍率で拡大する（Ｓ３０）。そしてその距離にある被写体６４、６６に対し、拡大したテンプレート画像７０を用いてテンプレートマッチングを行う（Ｓ３２、Ｓ３４）。
【００４８】
一方、被写体６８の距離Ｚ６８から算出した倍率Ｍ６８が１より小さければ、基準テンプレート画像６０を当該倍率で縮小する（Ｓ３６）。そしてその距離Ｚ６８にある被写体６８に対し、縮小したテンプレート画像７２を用いてテンプレートマッチングを行う（Ｓ３８）。
【００４９】
テンプレートマッチングの処理は次のように行う。すなわちテンプレート画像を奥行き画像上に配置してマッチング評価値を算出する、という処理を、テンプレート画像を微少量ずつ動かしながら繰り返す。これを被写体単位で実施し、いずれかの位置でしきい値以上の良好なマッチング評価値が得られる被写体を対象物と特定し、そのときのテンプレート画像の位置を対象物の位置とする。テンプレート画像の各位置におけるマッチング評価値の算出手順については一般的な手法を適用できる。例えば、双方の画像の画素値の差を表す指標を、テンプレート画像の領域内で合計しマッチング評価値としてもよい。
【００５０】
本実施の形態では、奥行き方向の距離Ｚの位置にいる被写体の像の領域と、その被写体に適用するテンプレート画像とが一意に対応するため、撮影画像全面に対しテンプレートマッチングを行う一般的な手法に比べ、テンプレート画像を移動させる領域が限定的となる。またテンプレート画像の各位置におけるマッチング評価値の算出処理を、テンプレート画像のサイズを変化させて繰り返す必要がない。図７の例では、被写体６４と被写体６６は同じ形状で大きさが異なる物体であるが、拡大したテンプレート画像７０を用いてマッチングを行えば、所望の対象物は被写体６４のみであることがマッチング評価値から判別できる。結果として所望の形状およびサイズの対象物の位置を効率的に検出することができる。
【００５１】
図８は基準テンプレート画像のサイズを調整し、その後にマッチング評価値を算出する具体的な手法を説明するための図である。基準テンプレート画像６０、サイズ調整後のテンプレート画像７０、７２、および奥行き画像６２は、図７で示した各画像と同様であるため同じ符号を付している。ただし図８の基準テンプレート画像６０は、格子状に区分けすることにより１つの区画で１つの画素を表している。また奥行き画像６２はわかりやすさのために被写体６４および６８の頭部の輪郭のみを実線で示している。
【００５２】
基準テンプレート画像６０の横方向の画素数ｐｗ（画素）および縦方向の画素数ｐｈ（画素）は同図の場合、ｐｗ＝ｐｈ＝８としている。ただしこれに限る主旨ではない。マッチング処理部５４は、まず奥行き画像６２の各画素をラスタ順等で走査し、画素値が所定範囲内にある画素を検出する。ここで所定範囲とは、被写体の奥行き方向の距離として有効な値と考えられる範囲であり、その上限および下限をあらかじめ設定しておく。ゲームなど位置情報の使用目的に応じて範囲を変化させてもよい。
【００５３】
同図ではそのように検出した画素の１つを、画素の座標（ｉ１，ｊ１）で表している。この画素は被写体６８の像の領域に含まれている。このような画素が検出されたら、当該画素の位置を中心としてテンプレート画像７２を配置する。ただしこの画素の画素値、すなわち奥行き方向の距離Ｚ６８に応じた倍率Ｍ６８（Ｍ６８＜１）で基準テンプレート画像６０を縮小するため、配置するテンプレート画像７２の横方向の幅は画素数に換算するとｐｗ×Ｍ６８（画素）、縦方向の幅はｐｈ×Ｍ６８（画素）となる。
【００５４】
そしてテンプレート画像７２の画素値と奥行き画像６２の画素値を同じ位置で比較する。同図に示すように被写体６８に対しては基準テンプレート画像６０を縮小するため、テンプレート画像７２の画素同士の間隔は奥行き画像６２の画素同士の間隔より小さくなる。すなわち比較対象の画素同士が一対一に対応しないことがあり得る。この場合、基本的にはテンプレート画像７２の画素に距離が近い奥行き画像６２の画素を「同じ位置」とみなす。結果的にテンプレート画像７２の複数の画素を奥行き画像６２の１つの画素と比較することもあり得る。
【００５５】
テンプレート画像７２における各画素の座標を（ｘ，ｙ）とすると、奥行き画像６２上において「同じ位置」とみなされる画素の座標（ｉ，ｊ）は例えば次のように求められる。
ｉ＝ｉ１＋（ｘ−ｐｗ／２）× Ｍ１  （１０）
ｊ＝ｊ１＋（ｙ−ｐｈ／２）× Ｍ１  （１１）
ここで右辺第２項は四捨五入や切り捨てなどによって整数とする。
【００５６】
被写体６４に対するマッチングも同様である。すなわち走査によって検出された画素の１つの座標（ｉ０，ｊ０）が被写体６４の像の領域内にあった場合、この画素の画素値は被写体６４の奥行き方向の距離Ｚ６４であるため、それに従い倍率Ｍ６４（Ｍ６４＞１）を算出する。そして基準テンプレート画像６０を倍率Ｍ６４で拡大したテンプレート画像７０を、当該画素が中心となるように配置する。ここでテンプレート画像７０の横方向の幅はｐｗ×Ｍ６４（画素）、縦方向の幅はｐｈ×Ｍ６４（画素）である。
【００５７】
そしてテンプレート画像７０の画素値と奥行き画像６２の画素値を同じ位置で比較する。この場合、基準テンプレート画像６０を拡大しているため、テンプレート画像７０の画素同士の間隔は奥行き画像６２の画素同士の間隔より大きくなるが、式（１０）、（１１）と同様にして、テンプレート画像７０の各画素と同じ位置にあるとみなされる奥行き画像６２の画素を決定できる。
【００５８】
このようにしてテンプレート画像の画素と奥行き画像の画素とを対応づけたら、双方の画素値を用いてマッチング評価値を算出する。マッチング評価値の算出手法は上述のとおり、一般的なマッチング処理で適用されているものを用いることができるが、本実施の形態では特に次のように算出する。まずテンプレート画像の各画素に対応する奥行き画像の画素の値、すなわち奥行き方向の距離Ｚを取得したら、その値が、テンプレート画像を配置するきっかけとなった画素、図８の例では座標（ｉ１，ｊ１）や（ｉ０，ｊ０）の画素の画素値であるＺ６８やＺ６４から所定の範囲内にあるか否かを判定する。
【００５９】
画素値が所定範囲内にあれば、奥行き画像において座標（ｉ１，ｊ１）や座標（ｉ０，ｊ０）で検出されたのと同一の被写体が該当画素まで連続していると推定できるためである。例えば頭部の位置を検出する場合、前後に１０〜３０ｃｍ程度の範囲内にあれば頭部の連続した面の一部であると判断できる。具体的な範囲は対象物の実際の形状に応じて決定する。
【００６０】
そしてマッチング評価値Ｖを次にように算出する。
Ｖ＝Σｕｎ×Ｂｎ      （１２）
ここでΣはテンプレート画像の全画素についての合計、ｕｎはテンプレート画像のｎ番目の画素に対応する奥行き画像の画素値が上記のとおり所定の範囲内にある場合に＋１、ない場合に−１の値をとる。Ｂｎはテンプレート画像におけるｎ番目の画素の画素値であり、上述のように対象物の形状の内部にあれば１、なければ０の値をとる。
【００６１】
このような算出手法により、奥行き方向の距離が所定範囲内にある、ひいては一体的な物体であり、かつテンプレート画像として準備した形状およびサイズに近い被写体ほど、あるテンプレート画像の位置において高い評価値Ｖが得られることになる。なおこの算出手法は一例であり、各画像のデータ形式等によって様々に応用できることは当業者には理解されるところである。
【００６２】
これまで説明した構成によるマッチング処理部５４の動作は次のとおりである。図９は図４のＳ１６において情報処理装置１０のマッチング処理部５４が頭部の位置を検出する処理手順を示すフローチャートである。まずマッチング処理部５４は、奥行き画像取得部５２が取得した奥行き画像をラスタ順などで走査し、所定範囲内に画素値を有する画素、すなわち有効な被写体の像を表す画素を検出する（Ｓ４０）。
【００６３】
該当する画素が検出されたら、マッチング処理部５４はその画素値、すなわち奥行き方向の距離に応じた倍率で基準テンプレート画像を拡縮させる（Ｓ４２）。そして図８に示したように当該画素を中心として奥行き画像上に当該テンプレート画像を配置し、各画素と奥行き画像の対応する画素とを用いて式１２のようにマッチング評価値を算出する（Ｓ４４）。Ｓ４０からＳ４４の処理を、奥行き画像の全ての画素を走査し終えるまで繰り返す（Ｓ４６のＮ）。これにより奥行き画像のうち被写体の像を構成する各画素に対しマッチング評価値を対応づけた、マッチング評価値分布を得ることができる。
【００６４】
マッチング処理部５４は、当該分布を画像平面上に表したデータ、あるいはそれに基づき対象物と推定される像の領域を表したデータ等を位置情報として出力する（Ｓ４６のＹ、Ｓ４８）。出力された位置情報は、座標点解析部５６における検出領域の設定等に利用される。さらに当該位置情報に基づき、出力情報生成部５０が頭部の領域を絞り込んだうえで顔認識処理、トラッキング処理など使用目的に応じた画像解析処理を実施し、表示画像の生成に利用してもよい。
【００６５】
図１０はＳ４８で出力される位置情報のデータ例を示している。マッチング処理部５４は上述のように、奥行き画像の画素に対しマッチング評価値を対応づけたマッチング評価値分布を生成する。そして当該分布において、マッチング評価値が所定のしきい値以上で極大となる点８２、８４を抽出する。さらに当該極大点８２、８４を中心にテンプレート画像を配置する。このテンプレート画像は、極大点８２、８４を中心としたマッチング評価時のサイズ調整と同じ倍率で基準テンプレート画像を拡縮したものである。
【００６６】
そして配置したテンプレート画像における対象物の像に対応する領域を、その他の領域と区別して表すことにより、極大点８２、８４のそれぞれに対し、所望の対象物の像と推定される領域８６、８８を表した画像８０が得られる。図１０の例は図７で示した奥行き画像６２から得られる、人間の頭部と推定される領域を他と異なる画素値で表した画像である。なお位置情報として出力する画像８０の解像度は特に限定されないが、テンプレート画像は拡大すると図８で示したように画素の間隔が広くなるため、画像８０の解像度に応じて適宜補間して領域８８を表してもよい。
【００６７】
次に座標点解析部５６が図４のフローチャート中、Ｓ１８で行う手の検出処理について説明する。図１１は検出処理において設定する検出領域について説明するための図である。まず撮影画像１０４に写る像１０６は、同図左上に示した軸を有する３次元空間（カメラ座標系）に存在する被写体１０２を、画像平面に投影したものである。撮影画像１０４が表す空間は、奥行き方向の距離が遠くなるほど大きくなる。ここで、被写体１０２が存在する３次元空間を奥行き方向の距離Ｚ１、Ｚ２、Ｚ３で分割したとすると、その分割面は図示するように、撮影画像１０４に平行な３つの面となる。
【００６８】
さらに撮影画像１０４の画像平面についても、図示するように、縦方向、横方向に領域分割したとすると、それらの分割によって３次元空間が錐台に分割されることになる。ここで被写体１０２が奥行き方向の距離Ｚ１とＺ２の間に存在する場合、撮影画像１０４における領域１０８に写る被写体の手は、３次元空間では錐台の領域１１０に存在することになる。奥行き画像の画素値は、撮影画像１０４の画像平面における被写体の奥行き方向の距離を表すため、画素の位置座標及び画素値からなる３次元の情報を領域１１０と比較することにより内外判定ができる。
【００６９】
このように、画像平面および奥行き方向がなす３次元空間の各軸を分割してなる領域を検出領域として設定し、奥行き画像中の像と比較することにより、対象物が当該検出領域に存在するか否かを判定でき、ひいては対象物の位置を検出できる。最も単純には、３次元空間を図示するように分割してなる全ての錐台の領域を検出領域とすれば、対象物がどの位置にあってもいずれかの検出領域で検出されることになる。
【００７０】
一方、本実施の形態では、上述のようにマッチング処理部５４によって被写体１０２の頭部の位置を特定するため、首や肩の位置が推定できる。したがって例えば手を検出する場合、当該肩を基準とした手の可動範囲に対応する領域のみに、１つまたは複数の検出領域を設定する。これにより、検出処理の効率を格段に向上させることができるとともに、手以外の物が検出結果に含まれる可能性を小さくでき、結果として検出精度も向上する。なお図１１で示した領域の分割面は一例に過ぎず、例えば検出領域ごとに分割面を異ならせてもよい。検出領域の一部が重なっていてもよい。また後述するように、検出領域を設定する座標系はカメラ座標系に限らず、検出領域の形状も様々であってよい。
【００７１】
図１２は、設定した検出領域に対象物が存在するか否かを判定する処理を説明するための図である。検出領域１１２は図１１で示したような錐台の形状を有する。一方、奥行き画像における各画素は、被写体の画像平面上での位置座標および奥行き方向の距離の情報、すなわちカメラ座標系の３次元空間における座標点を表している。実際の被写体の手が検出領域１１２に入ったとき、奥行き画像において手の像１１４を構成する画素が表す座標点は、検出領域１１２内に存在することになる。同図では各画素を黒い点で示している。
【００７２】
したがって、頭部から推定される手の可動範囲に設定した検出領域における座標点の有無によって、手がその位置にあるか否かを判定できる。実際には、一定数以上の座標点の集合によって手の像が表されるため、判定に際しては、座標点の数に対ししきい値を設ける。そしてしきい値以上の座標点が存在する検出領域に手が存在すると判定する。なお判定に用いる座標点の空間解像度は、奥行き画像の解像度と同じでもよいし異なっていてもよい。
【００７３】
図１３は、検出領域を設定する座標系と検出領域の形状を例示している。図１１に示したように撮影画像は錐台の視体積内の被写体を画像平面に投影したものであり、撮像装置から離れるほど広い範囲の情報が１画素に表れる。したがって、カメラ座標系において奥行き画像の画素が表す座標点（Ｘ，Ｙ，Ｚ）に対しＸ１≦Ｘ＜Ｘ２、Ｙ１≦Ｙ＜Ｙ２、Ｚ１≦Ｚ＜Ｚ２なる範囲を設定すると、検出領域１１２は同図（Ａ）に示すように錐台となる。また、撮像装置１２の光軸（Ｚ軸）が、図示するように実空間の水平面に対し傾きを有する場合、画像上の縦方向（Ｙ軸）、ひいては検出領域の縦方向は、実空間の鉛直方向とは異なることになる。
【００７４】
一方、検出領域を設定する座標系はカメラ座標系でなくてもよい。例えば撮像装置１２に加速度センサを設けることにより重力ベクトルから光軸の傾きを特定すれば、カメラ座標系と、実空間の縦横奥行きからなる３次元座標系、すなわちワールド座標系との関係が判明する。これにより、奥行き画像における画素が表す座標点を、ワールド座標系における座標点に変換することができ、ひいては同図（Ｂ）に示すように、ワールド座標系に対し検出領域１１５を設定することができる。同図の例では、変換後の座標点（Ｘ’，Ｙ’，Ｚ’）に対しＸ’１≦Ｘ’＜Ｘ’２、Ｙ’１≦Ｙ’＜Ｙ’２、Ｚ’１≦Ｚ’＜Ｚ’２なる範囲が設定されている。
【００７５】
多くの場合において人体は地面や床に対し垂直方向の軸を基準とするため、胴体や立っている足などを検出する場合は特に、ワールド座標系に対し検出領域を設定する方が処理効率や精度の面で有利であると考えられる。ただしこの場合、座標変換が必要となるため、検出対象、想定される動き、要求される精度、演算性能などに応じて、座標系を適応的に選択することが望ましい。
【００７６】
図１４は、ある検出領域１２０において手の存在が検出された場合に、手先の位置を特定する原理を説明するための図である。上述のとおり、手は肩や肘を中心とした球面上を移動する。例えば肘の曲げ角が小さいような動作であれば、腕は図の矢印に例示されるように、肩、すなわち上腕部の付け根を中心とした放射状の動きとなる。この場合、肩を基準点１２２とし、それに対する検出領域１２０の相対位置によって、手先の向くべき方向を決定できる。同図の場合、被写体は右手を右斜め上に挙げた結果、基準点１２２に対し右斜め上方向の検出領域１２０で手が検出される。このとき手先の向きは、基準点１２２から当該検出領域１２０へ向かうベクトル（矢印１２４）の方向にあると推定できる。
【００７７】
すなわち基準点１２２を中心とし、手の存在が検出された検出領域を通る球面のうち、当該検出領域の位置における法線ベクトルを、手の向くべき方向を示す基準ベクトルとして決定する。そして検出領域内の座標点と比較することにより手先の位置を特定する。基準点は、検出対象が手先の場合は肩や肘、肘の場合は肩、足先の場合は足の付け根や膝、膝の場合は足の付け根などである。肘が大きく曲がるような動作の場合は、まず肩を基準点として肘の先端部を検出し、そこを基準点として手先を検出するなど段階的に検出処理を進めてもよい。あるいは基準点から手先までの距離に応じて肘の曲げ角を推定し、それに応じて基準点を肩と肘で切り替えてもよい。足の場合も同様である。
【００７８】
図１５は基準ベクトルを用いて手先の位置を特定する手法を説明するための図である。図１２と同様、検出領域１１２に手が入ったことにより、その手の像１１４を構成する画素が表す座標点（白丸および黒丸）が当該検出領域１１２に存在している。これらの座標点のうち、基準ベクトル１２６の方向において基準点１２２から最も遠い座標点が手先の位置を表していると考えられる。そこで基準点１２２から各座標点への座標点ベクトルと、基準ベクトル１２６との内積を計算し、その内積値を比較する。
【００７９】
例えば手先付近にある座標点１３２へのベクトル１３４と手首寄りにある座標点１２８へのベクトル１３０を比較すると、基準ベクトル１２６との方向差が小さく、より長いベクトル１３４の方が内積値が大きくなる。この特性を利用し、検出領域１１２内の全ての座標点について内積値を計算し大きい順に座標点をソートしたうえ、上位の所定数の座標点を抽出すると、それらの座標点はおよそ手先近傍の像を表していることになる。したがって、抽出した座標点が表す位置座標の平均値をとることにより手先の位置座標とする。複数の座標点の平均値を採用することにより、座標点のノイズや誤差の影響を抑えることができる。なお座標点ベクトルの算出においては、座標点と基準点の座標系が一致するように適宜座標変換を行う。
【００８０】
これまで説明した構成による座標点解析部５６の動作は次のとおりである。図１６は図４のＳ１８において情報処理装置１０の座標点解析部５６が手の位置を検出する処理手順を示すフローチャートである。まず座標点解析部５６は、マッチング処理部５４が検出した頭部の位置に基づき検出領域を決定し、さらに当該検出領域の位置に手が存在すると判定する際の、座標点の数のしきい値を決定する（Ｓ５２）。例えば右手を検出する場合、奥行き画像において特定された頭部の像から首、胴体、とたどることにより右肩の箇所を特定し、そこを中心とし腕の長さを半径とする球面やその内部などに複数の検出領域を分布させる。ゲームの内容などによって動きが限定される場合は、検出領域の分布範囲をさらに限定してもよい。
【００８１】
なお図４のＳ２２におけるループにより、それ以前の時間ステップで既に手が検出されている場合は、その位置を中心に検出領域を決定してもよい。またそれまでの動きから手の位置を予測し検出領域の設定に反映させてもよい。存在を判定するために座標点の数に設定するしきい値は、検出領域の位置によって適応的に決定してよい。例えば撮像装置から遠くなるほど１つの座標点が表す空間が大きくなり、空間に対する座標点が分散する。したがって、ワールド座標系で同じサイズに検出領域を設定する場合などは、撮像装置から遠い検出領域ほどしきい値を小さくする。これにより、カメラからの距離によらず同程度の精度で存在を検出できる。
【００８２】
また室内の明るさや撮影条件などの撮影環境によって、奥行き値の情報取得精度や解像度が異なる場合がある。したがって当該撮影環境等、その時々の状況に応じてもしきい値を切り替えてよい。このため、環境を表す各種パラメータとしきい値との対応を表す情報をあらかじめ準備しておいてもよい。次に、奥行き画像の画素が表す３次元空間での座標点のうち、設定した検出領域内に存在する座標点の数をカウントする（Ｓ５４）。
【００８３】
座標点の数がしきい値以上の場合（Ｓ５６のＹ）、当該検出領域の位置に手があると判断し、その先端、つまり手先の位置を検出する処理を行う（Ｓ５８）。座標点の数がしきい値より小さい場合は、その位置に手がないとして処理を終了する（Ｓ５６のＮ）。Ｓ５２において複数の検出領域を設定した場合は、Ｓ５４からＳ５８の処理を検出領域ごとに行う。
【００８４】
図１７は図１６のＳ５８において座標点解析部５６が行う、手先の位置を検出する処理の手順を示すフローチャートである。まず先端を特定する対象となる領域を決定する（Ｓ６０）。図１５の説明では、手の存在を検出するために設定した検出領域１１２をそのまま用い、その中にある座標点について内積を計算し比較した。一方、存在を検出するために設定する検出領域と、先端を検出するために内積の比較対象とする座標点集合を定める領域とは、必ずしも同じでなくてもよい。以後の説明では前者を「存在検出領域」、後者を「先端検出領域」と呼ぶことがある。
【００８５】
図１８は、手の存在を検出するための存在検出領域と、先端の位置を検出するための先端検出領域とを異ならせる例を模式的に示している。この例では、存在検出領域１４０ａ、１４０ｂ、１４０ｃ、１４０ｄの４つの領域に手が渡っている。この場合、例えば存在検出領域１４０ｄのように、座標点の数がしきい値以上となる存在検出領域に手先が含まれていないことがあり得る。また複数の存在検出領域で座標点の数がしきい値以上になることも考えられる。そのため、隣接する複数の検出領域において連続して座標点の集合が存在する場合は、それらを包含するように先端検出領域を設定し直す。図示する例では、４つの存在検出領域１４０ａ、１４０ｂ、１４０ｃ、１４０ｄを統合し、１つの先端検出領域とすればよい。
【００８６】
逆に、存在検出領域を分割するなどしてその一部を先端検出領域としてもよい。例えば手の像を表す座標点の集合以外に、ノイズや誤差によって座標点が存在する場合がある。この場合、当該ノイズを含む領域を、先端検出領域から除外することにより、当該ノイズを先端として誤認識しないようにする。いずれの場合も、存在を検出した座標点集合（クラスタ）全体が入り、かつ集合から離れた余分な座標点が入らない領域を先端検出領域として適切に設定することにより検出精度が向上する。
【００８７】
例えば検出領域のサイズを微調整しながらそれに含まれる座標点の数を取得していき、数の変化に基づき適切なサイズの先端検出領域を決定してもよい。あるいは存在検出領域１４０ｄのように先端の位置が領域の端近傍にある場合に、当該存在検出領域１４０ｄに隣接する存在検出領域１４０ａ、１４０ｂ、１４０ｃを先端検出領域に含めるようにしてもよい。
【００８８】
図１７に戻り、次に座標点解析部５６は、設定した先端検出領域に対する基準ベクトルを図１４で説明したように決定し（Ｓ６２）、各座標点に対応するベクトルとの内積を計算する（Ｓ６４）。次に内積値の大きい順に座標点をソートし、上位の所定数の座標点を抽出する（Ｓ６６）。そして各座標点が表す位置座標の平均値を算出することにより、手先の位置とする（Ｓ６８）。
【００８９】
図１６のＳ５２や図１７のＳ６０では、カメラ座標系およびワールド座標系の双方に対し存在検出領域や先端検出領域をそれぞれ設定してもよい。またそれらの検出領域は、各座標系の座標軸を分割してなる錐台あるいは直方体の領域のみならず、検出対象の形状や可動範囲などに応じた任意の立体形状を有していてよい。図１９は複数の座標系に複数の形状を有する検出領域を設定した例を模式的に示している。同図において検出領域１５０は、カメラ座標系に対し設定された錐台形状を有する。検出領域１５２および１５４は、ワールド座標系に対し設定され、前者は球形状、後者は円柱形状を有する。
【００９０】
例えば人が直立している状態は鉛直方向を軸とする円柱あるいは四角柱に近いため、そのような検出領域とすることにより、存在の検出や先端の検出において、その他の部位や周辺環境の影響を排除しやすい。また腕全体を検出する場合は、肩を中心とした球形状に検出領域を設定することにより、その可動範囲を網羅することができる。このように、存在や先端を検出する対象、検出結果の使用目的等に応じて、検出領域の形状を、錐台、直方体、球、楕円体、柱体、錐体などから適切に選択することが望ましい。
【００９１】
異なる形状の検出領域を同時に複数の領域に設定し、それぞれに対し、対象物の存在や先端を検出してもよいし、まず、ある形状の検出領域において存在や先端を検出したあと、少なくとも一部の領域が重複するように別の形状の検出領域を設定して存在や先端を検出し直すことにより、検出効率や精度を向上させてもよい。図２０は異なる形状の検出領域を重複するように設定して段階的に検出を行う態様の例を模式的に示している。この例ではまず、カメラ座標系に対し設定した錐台の検出領域１１２によって、手１１４の存在を検出する。
【００９２】
当該検出領域１１２に存在する座標点の数がしきい値以上であったら、例えば当該錐台に内接する球形状の検出領域１６０を設定し、その中に存在する座標点の数をしきい値と比較する。錐台に対するしきい値と球形状に対するしきい値は同じでも異なっていてもよい。球形状の検出領域１６０内の座標点の数がしきい値以上であったら、その位置に手があることを最終的に判定する。あるいは当該球形状の検出領域１６０内の座標点に基づき先端を検出する。
【００９３】
このようにすることで、座標変換を必要とせず演算負荷の低い錐台の検出領域１１２をより多く設定して手が存在する可能性の高い領域を絞り込み、その部分にのみ、手のひらの形状や可動範囲に近い球形状の検出領域１６０を設定したうえ高精度に存在や先端を検出する、という構成を実現でき、処理効率と検出精度を両立できる。なお同図は錐台とそれに内接する球を例示したが、形状の組み合わせや位置関係は、検出対象の形状や動きの特性などによって適宜選択してよい。
【００９４】
これまでの説明では、中に存在する座標点に基づき存在や先端部を検出するために検出領域を設定した。これを応用し、中に存在する座標点を処理対象から除外するための領域を不感領域として設定してもよい。図２１は検出領域とともに不感領域を設定する態様を説明するための図である。図示するようにユーザ１７０の手が頭の近傍にある可能性を含め、手を検出する場合、そのための検出領域１７２は頭部の像を含むことがあり得る。
【００９５】
すると、同図右側に拡大して示すように、検出領域１７２には頭部の像１７６を表す座標点が含まれてしまうため、手がその位置になくても座標点の数がしきい値以上となれば手の存在として誤検出してしまう可能性がある。また図示するように手の像１７４を表す座標点が実際にあったとしても、頭部の像１７６を表す座標点によって先端の検出に誤差を生じさせる可能性もある。
【００９６】
そこで、頭部の像を含む所定範囲の領域に不感領域１７８を設定することにより、その中に存在する座標点は検出処理の対象から除外する。この場合、不感領域１７８は、マッチング処理部５４が検出した頭部の中心を中心とする楕円体などで設定する。頭部に限らず、体幹部や足など、検出対象以外の部位に対し不感領域を設定してもよい。設定に際しては、マッチング処理部５４による検出結果のみならず、座標点解析部５６自身が前の時間ステップで検出した結果を利用してもよい。いずれの場合も、検出領域について上述したのと同様、部位の形状に応じて不感領域の形状を適宜選択してよい。このようにすることで、広範囲に多くの検知領域を設定する場合や、検出対象の部位が他の部位と接近する可能性が高い場合などでも、検出誤差を抑えることができる。
【００９７】
不感領域は同じ被写体の部位以外に、カメラの視野に含まれる周辺の物に対し設定してもよい。図２２は床に対し不感領域を設定する例を模式的に示している。ユーザ１８２の足先を検出する場合、足の甲の可動範囲である検出領域１８０ａ、１８０ｂ、１８０ｃなどを設定する。ここで検出領域１８０ｃのように、足が床に接地している状態を検出するための検出領域では、常に床の像が含まれるため足がなくても存在を検出してしまうことが考えられる。また、実際に足が接地していても、足と床の区別がつかず足先の検出ができなくなってしまう。
【００９８】
そこで、床面以下の領域に対し不感領域１８０を設定することにより、足の存在や足先の検出を精度よく行えるようにする。この場合、マッチング処理部５４、あるいは座標点解析部５６は、撮像装置１２が撮影を開始した時点などにおいて、床面の位置を検出しておく。図２３はこのような態様において天井面や床面を検出する手法を説明するための図である。同図右側は撮影環境を横から見た模式図２５０であり、左側は当該撮影環境で撮影された画像２５２の模式図である。
【００９９】
このような撮影環境において、撮像装置１２が加速度センサを備えている場合、重力ベクトル２６６に基づき、撮影画像の平面に対する天井面２５４、床面２５６の面、すなわちワールド座標系における水平面が判明するため、原理的にはその高さを特定すればよいことになる。そこで、例えば図示するように、天井面２５４、床面２５６の存在を検出するための検出領域２７０、２７２を、ワールド座標系における水平面に敷き詰めるとともにそれと垂直な方向に積層させるように設定する。図中、矩形で表される各検出領域２７０、２７２は、四角形の平板状を想定しているが、その他の形状でもよい。
【０１００】
そして検出領域内の座標点の数に基づき床面および天井面の高さを特定する。最も単純には、各高さ（層）の検出領域内に存在する座標点を合計し、最も多い座標点が得られた高さを床面や天井面とする。あるいはさらに、重力ベクトル２６６から推定されるワールド座標系の水平面と実際の水平面に誤差が生じている場合を考慮し、想定水平面の角度を調整してもよい。図２４は検出領域の角度を調整し正しい水平面を検出する手法を説明するための図である。同図左側は想定する水平面と実際の床面２５６の角度がずれている場合を示している。
【０１０１】
この場合まず、検出領域のうち最も座標点の数が多い検出領域、あるいは上下の検出領域を比較し座標点の数が突出している検出領域を抽出し、少なくともその位置には床が存在すると推定する。同図においては検出領域２８０が抽出される。そして抽出した検出領域２８０の重心等を中心に、想定される水平面の角度を微調整しながら、検出領域２８０と同じ高さに設定した各検出領域内の座標点を数えていく。全ての検出領域に同程度の座標点が入ったときの検出領域２７２ｂが、実際の床面を表すことになる。そして当該検出領域２７２ｂを、実際の運用時に足先などを検出する際の不感領域として利用すればよい。
【０１０２】
上述は、座標点解析部５６が、検出領域内の座標点を利用して床面や天井面を検出する手法であったが、マッチング処理部５４がマッチング処理によって床面や天井面を検出することも考えられる。この場合、左右のステレオ画像同士をマッチングする。具体的には、ワールド座標系における想定される水平面に対し、検知面を設定する。ここで検知面とは、その面上に被写体があるか否かを判定するために３次元空間に任意に設定する面である。
【０１０３】
そして当該検知面を画像平面に投影した場合の領域を、ステレオ画像を構成する左右の撮影画像から切り出す。このとき、左右どちらかの切り出し領域を、他方の画像における切り出し領域より視差分だけ左あるいは右にずらす。床面や天井面の場合、面がワールド座標系における前後に分布しているため、手前側の像を表す画素ラインほど大きくずらす必要がある。すらし量は上述の式（２）を用いることができる。
【０１０４】
このようにして切り出した両画像を、特徴点などに基づきマッチングする。このとき特徴点として抽出されるのは、天井の照明器具、タイルなどの建材の連結部分が形成する格子模様、絨毯の模様などである。床面や天井面が、設定された検知面と一致していれば、ステレオ画像から視差を考慮して切り出した画像は原理的には全く同一のものとなる。一方、床面や天井面が検知面とずれているほど、両画像は差が大きくなる。したがって、複数の高さや角度で設定した検知面のうち、切り出した画像同士のマッチング評価値の合計が最も高いときの検知面を、床面や天井面として特定することができる。
【０１０５】
このように検知面を利用する場合も、初めに高さ方向に複数の平行な検知面を分布させてマッチングを行い、評価値の合計が高かった検知面のうち、評価値が高い部分を中心に検知面の角度を調整して再度マッチング処理を行う、という２段階の処理としてもよい。検出領域を利用する場合も検知面を利用する場合も、撮像装置１２に加速度センサを設け重力ベクトルを取得するようにすれば、角度については微調整ですむことになる。ただし加速度センサがない場合であっても、上述のように想定水平面の角度を調整すれば床面等を正確に検出できる。
【０１０６】
なお図２２の態様では、足先を検出するために床面以下の領域に不感領域１８０を設定したが、天井近傍にある対象物を検出する場合は、上述のように検出した天井面以上の領域を不感領域とする。同様の手法を垂直方向の面に応用して壁面を検出し、当該壁面に不感領域を設定してもよい。不感領域はこれら以外に、検出対象としているユーザ以外の人の体や、検出対象の手や足と逆側の手や足に対し設定してもよい。検出対象以外の他人の体は、検出した頭部の位置や頭部領域内部に対する顔認識処理などに基づき特定できる。同一人物の逆側の手や足は、前の時間ステップで検出した手先や足先からの、微少時間における可動範囲に基づき判別できる。さらに所定時間、座標点の時間変化がない領域を、家具などの物の像として抽出し、当該領域に不感領域を設定してもよい。
【０１０７】
このように不感領域を臨機応変に設定することにより、手が体、顔、家具に触れるなど、検出対象が他の物に近づくような状況であっても、検出領域の設定サイズによる検出精度への影響を抑えることができる。すなわちノイズ誤差が小さく先端形状が判明しやすい十分な大きさの検出領域を設定することにより、他の物が当該検出領域に入りやすくなっても、その影響を小さくすることができる。結果として状況によらず、対象物のみに着目してその存在や先端を、高精度かつ高感度に検出できる。これにより、例えば手や腕の大きな動きばかりでなく、手先の細かな動きをも検出し、それに応じた多様な情報処理を行える。
【０１０８】
以上述べた本実施の形態によれば、テンプレートマッチングにより検出した頭部など基準部位の位置に基づき、手や足など必要な部位の検出領域を設定する。そして奥行き画像の各画素が表す３次元座標を３次元空間に表したときの座標点のうち検出領域に入っている座標点の数に基づき、対象部位の存在を検出する。これにより、全空間に対し何らかの検出処理を行うのに比べ処理の負荷が軽く、かつ他の物やノイズの影響を受けにくい検出技術を実現できる。
【０１０９】
また、そのようにして存在を検出したら、手の場合は肩や肘、足の場合は足の付け根や膝など、人体の動きを考慮した基準点を設定し、当該基準点に対する検出領域までの位置応じて、対象部位の先端の向くべき方向を表す基準ベクトルを特定する。そして、基準点から検出領域内の座標点へのベクトルと基準ベクトルとの内積を比較することにより、対象部位の先端部を表す座標点を抽出し、それに基づき位置を特定する。これにより、対象部位が向く方向によらず、人体の動きという拘束条件を利用して、精度のよい先端部検出を行える。先端部の位置が判明すれば、奥行き画像あるいは撮影画像から、人体全体の状態や姿勢を特定することができるため、ゲームなど様々な目的に活用できる。
【０１１０】
存在検出領域や先端検出領域は、使用目的、対象部位の形状や動きなどに応じてその形状を自由に設定できるため、使用状況によらず、処理負荷を抑えながら高精度な検出を行える。また、検出領域と同様に不感領域を設定することにより、処理負荷を増大させることなく対象部位のみを正確に検出できる。これらのことから、人の動きを利用した精度の高いユーザインターフェースを提供できるとともに、ゲームやＡＲなどにおいて応答性のよい画像表示を行える。また、検出結果を撮像装置１２における撮影条件にフィードバックすれば、顔、手、足など処理において重要な部位に露出を合わせるなどした撮影画像が得られ、部屋の明るさなどの撮影環境によらずその後の処理の精度をさらに向上させることができる。
【０１１１】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１１２】
２  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １６  表示装置、  １３ａ  第１カメラ、  １３ｂ  第２カメラ、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  ４２  画像取得部、  ４４  入力情報取得部、  ４６  位置情報生成部、  ４８  画像記憶部、  ５０  出力情報生成部、  ５２  奥行き画像取得部、  ５４  マッチング処理部、  ５６  座標点解析部。
【図１】
2015153180.tif 000003
【図２】
2015153180.tif 000004
【図３】
2015153180.tif 000005
【図４】
2015153180.tif 000006
【図５】
2015153180.tif 000007
【図６】
2015153180.tif 000008
【図７】
2015153180.tif 000009
【図８】
2015153180.tif 000010
【図９】
2015153180.tif 000011
【図１０】
2015153180.tif 000012
【図１１】
2015153180.tif 000013
【図１２】
2015153180.tif 000014
【図１３】
2015153180.tif 000015
【図１４】
2015153180.tif 000016
【図１５】
2015153180.tif 000017
【図１６】
2015153180.tif 000018
【図１７】
2015153180.tif 000019
【図１８】
2015153180.tif 000020
【図１９】
2015153180.tif 000021
【図２０】
2015153180.tif 000022
【図２１】
2015153180.tif 000023
【図２２】
2015153180.tif 000024
【図２３】
2015153180.tif 000025
【図２４】
2015153180.tif 000026