(57)【特許請求の範囲】
【請求項１】
カメラで撮影した被写体の３次元空間における位置を検出する情報処理装置であって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する奥行き画像取得部と、
重力ベクトルの軸を含む３次元空間に、前記奥行き画像の画素を逆射影することにより座標点を発生させ、前記重力ベクトルを基準として前記３次元空間に生成した、所定厚さの複数のスライス空間のそれぞれに属する前記座標点の数を評価することにより、重力ベクトルと所定角度をなす被写体の面を表す座標点集合を検出して、当該面の位置を特定する空間構造特定部と、
前記被写体の面の位置に基づき所定の対象物の位置情報を生成し出力する対象物抽出部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記空間構造特定部は、重力ベクトルと前記所定角度をなす複数の面で前記３次元空間を分割してなる前記スライス空間のうち、前記被写体の面を表す座標点集合が属するスライス空間を検出することにより、当該面の位置を特定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記空間構造特定部は、各スライス空間に属する座標点を、カメラからの距離に応じた重み付けを行ったうえで合計した値で評価することにより、前記被写体の面を表す座標点集合が属するスライス空間を検出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記空間構造特定部は、前記合計した値が所定のしきい値を超えたスライス空間を、前記被写体の面を表す座標点集合が属するスライス空間として検出し、当該しきい値を、当該面のテクスチャに応じて切り替えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記空間構造特定部は、
重力ベクトルの軸を中心とした複数の回転角で、当該重力ベクトルと平行な前記スライス空間を生成し、各スライス空間に属する座標点のうち、水平方向に最も離れた座標点の距離に基づき、前記被写体の面のうち重力ベクトルと平行かつ、平行に向かい合う２つの面の法線ベクトルを特定し、
さらに当該法線ベクトルと垂直な複数の面で前記３次元空間を分割することにより、前記スライス空間を生成し、各スライス空間に属する座標点の数に基づき、前記２つの面を表す座標点集合が属するスライス空間を検出することにより、当該２つの面の位置を特定することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記空間構造特定部は、検出した前記座標点集合から複数回抽出した座標点の組み合わせにより形成される複数の面の法線ベクトルの平均を、前記被写体の面の法線ベクトルとすることを特徴とする請求項１から５のいずれかに記載の情報処理装置。
【請求項７】
前記空間構造特定部は、前記カメラに内蔵された加速度センサからの出力信号に基づき、画像平面に対する重力ベクトルの方向を取得することを特徴とする請求項１から６のいずれかに記載の情報処理装置。
【請求項８】
前記空間構造特定部は、表示装置に表示させた撮影画像に対する重力ベクトルの方向を指定するユーザからの入力に基づき、画像平面に対する重力ベクトルの方向を取得することを特徴とする請求項１から６のいずれかに記載の情報処理装置。
【請求項９】
前記空間構造特定部は、ユーザが物を落下させた様子を撮影した動画像を前記カメラから取得し、カメラの視野における物の落下方向に基づき、画像平面に対する重力ベクトルの方向を取得することを特徴とする請求項１から６のいずれかに記載の情報処理装置。
【請求項１０】
前記対象物抽出部は、前記被写体の面を表す座標点を除外することにより、当該面に接する対象物の位置情報を生成することを特徴とする請求項１から９のいずれかに記載の情報処理装置。
【請求項１１】
情報処理装置が、カメラで撮影した被写体の３次元空間における位置を検出する情報処理方法であって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得しメモリに格納するステップと、
重力ベクトルの軸を含む３次元空間に、前記メモリより読み出した前記奥行き画像の画素を逆射影することにより座標点を発生させ、前記重力ベクトルを基準として前記３次元空間に生成した、所定厚さの複数のスライス空間のそれぞれに属する前記座標点の数を評価することにより、重力ベクトルと所定角度をなす被写体の面を表す座標点集合を検出して、当該面の位置を特定するステップと、
前記被写体の面の位置に基づき所定の対象物の位置情報を生成し出力するステップと、
を含むことを特徴とする情報処理方法。
【請求項１２】
カメラで撮影した被写体の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する機能と、
重力ベクトルの軸を含む３次元空間に、前記奥行き画像の画素を逆射影することにより座標点を発生させ、前記重力ベクトルを基準として前記３次元空間に生成した、所定厚さの複数のスライス空間のそれぞれに属する前記座標点の数を評価することにより、重力ベクトルと所定角度をなす被写体の面を表す座標点集合を検出して、当該面の位置を特定する機能と、
前記被写体の面の位置に基づき所定の対象物の位置情報を生成し出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１３】
カメラで撮影した被写体の３次元空間における位置を検出する機能をコンピュータに実現させるコンピュータプログラムであって、
前記カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する機能と、
重力ベクトルの軸を含む３次元空間に、前記奥行き画像の画素を逆射影することにより座標点を発生させ、前記重力ベクトルを基準として前記３次元空間に生成した、所定厚さの複数のスライス空間のそれぞれに属する前記座標点の数を評価することにより、重力ベクトルと所定角度をなす被写体の面を表す座標点集合を検出して、当該面の位置を特定する機能と、
前記被写体の面の位置に基づき所定の対象物の位置情報を生成し出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像に基づいた処理を行う情報処理装置、および当該装置が行う情報処理方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやゲーム機などにカメラを搭載し、ユーザの姿を撮像して様々な形で利用することが一般的に行われるようになってきた。例えばテレビ電話、ビデオチャットなど、ユーザの画像を、ネットワークを介してそのまま相手に伝送するものや、画像解析によってユーザの動きを認識してゲームや情報処理の入力情報とするものなどが実用化されている（例えば特許文献１参照）。近年ではさらに、奥行き方向を含む３次元空間における対象物の動きを精度よく検出することにより、より臨場感のあるゲームや画像表現を実現できるようになってきた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多様な物が存在する空間を撮影し、その画像から所望の対象物のみを判別したり動きを追跡したりするには様々な課題が存在する。例えばステレオ画像法や赤外線反射を用いた一般的な位置検出技術では、撮影画像中の像を離散的な点の集合でとらえ、それらの３次元空間での位置を取得する。そのため物がどのような向きに、どのような位置関係で存在するか、といった幾何的、構造的な情報を正確に取得するのが困難な場合がある。結果として、床や壁に接した人の動きに応じて情報処理を行ったり、コンピュータグラフィックスで描画した３次元オブジェクトが、実写した床やテーブルに存在するように画像加工する仮想現実（AR）を実現したりするのに十分な精度が得られないことがある。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、３次元空間における対象物の位置検出を高精度に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、カメラで撮影した被写体の３次元空間における位置を検出する情報処理装置であって、カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得する奥行き画像取得部と、奥行き画像の画素を３次元空間に逆射影してなる座標点の、重力ベクトルの方向を基準とした分布に基づき、被写体表面のうち重力ベクトルと所定角度をなす面を表す座標点集合を検出することにより、当該面の位置を特定する空間構造特定部と、面の位置に基づき所定の対象物の位置情報を生成し出力する対象物抽出部と、を備えたことを特徴とする。
【０００７】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、カメラで撮影した被写体の３次元空間における位置を検出する情報処理方法であって、カメラからの奥行き方向における被写体の距離を画素値として画像平面上に表した奥行き画像を取得しメモリに格納するステップと、メモリより読み出した奥行き画像の画素を３次元空間に逆射影してなる座標点の、重力ベクトルの方向を基準とした分布に基づき、被写体表面のうち重力ベクトルと所定角度をなす面を表す座標点集合を検出することにより、当該面の位置を特定するステップと、面の位置に基づき所定の対象物の位置情報を生成し出力するステップと、を含むことを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、撮影画像中の対象物の位置や動きに基づく情報処理を高精度に実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図３】本実施の形態における撮像装置と情報処理装置の機能ブロックの構成を示す図である。
【図４】本実施の形態における情報処理システムによってなされる情報処理の基本的な手順を示すフローチャートである。
【図５】本実施の形態で用いる、ステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。
【図６】本実施の形態で用いる、奥行き画像における画素とワールド座標系における座標点の関係を模式的に示す図である。
【図７】本実施の形態において座標点が定義されるワールド座標系と実際の撮影空間との関係を説明するための図である。
【図８】本実施の形態において実際にプロットした座標点の様子を例示する図である。
【図９】本実施の形態における空間構造特定部の詳細な機能ブロック構成を示す図である。
【図１０】本実施の形態におけるスライス空間評価部が、座標点をプロットした３次元空間を分割してスライス空間を生成する様子を模式的に示す図である。
【図１１】本実施の形態におけるスライス空間評価部が水平物を含むスライス空間を抽出する手法を説明するための図である。
【図１２】本実施の形態において実際の座標点の分布とそれに対し付与されたスコアの分布を例示する図である。
【図１３】本実施の形態においてカメラがおよそ垂直下向きにある状態における撮影画像と座標点の分布を示す図である。
【図１４】本実施の形態においてカメラが水平物の方向を向いているときのスコアの分布例を示す図である。
【図１５】本実施の形態において重力ベクトルの計測誤差により生じる位置ずれの例を示す図である。
【図１６】座標点の分布を用いて水平物を詳細に特定する手法を説明するための図である。
【図１７】図４のＳ１６において位置情報生成部の空間構造特定部が行う水平物の特定手順を示すフローチャートである。
【図１８】本実施の形態において３次元空間における壁の角度を特定する手法を説明するための図である。
【図１９】本実施の形態において壁の向きを特定するためにスライス空間に付与したスコアの変化例を示す図である。
【図２０】本実施の形態において壁の向きを特定したあと、その位置を特定する手法を説明するための図である。
【図２１】本実施の形態において足を対象物とした場合に対象物分離部が足の位置情報を床から分離する様子を例示する図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム２は、ユーザ１などの対象物を撮影する２つのカメラを搭載した撮像装置１２、撮影した画像に基づき、ユーザの要求に応じた情報処理を行う情報処理装置１０、情報処理装置１０が処理した結果得られた画像データを出力する表示装置１６を含む。情報処理装置１０はインターネットなどのネットワークと接続可能としてもよい。
【００１２】
情報処理装置１０と、撮像装置１２、表示装置１６とは、有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。撮像装置１２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置１２は必ずしも表示装置１６の上に設置されていなくてもよい。さらに被写体の数や種類は限定されない。
【００１３】
撮像装置１２は、それぞれがＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えた２つのデジタルビデオカメラを既知の間隔で左右に配置した構成を有する。２つのデジタルビデオカメラはそれぞれ、同一空間に存在する被写体を左右の位置から所定のフレームレートで撮影する。以後、このように撮影されたフレームの対を「ステレオ画像」とも呼ぶ。
【００１４】
情報処理装置１０は、画像平面およびカメラからの奥行き方向を含む３次元空間における被写体の位置を検出する。検出結果は、被写体の位置や動きを入力情報として用いる後段の処理に利用する。例えば被写体であるユーザ１の手や足の動きに反応する仮想オブジェクトを撮影画像上に描画するようなＡＲ（拡張現実）を実現するのに用いる。あるいはユーザ１の動きをトラッキングしてゲームの画像に反映させたり情報処理のコマンド入力に変換したりしてもよい。このように本実施の形態で得られる被写体の位置に係る情報の使用目的は特に限定されない。
【００１５】
表示装置１６は、情報処理装置１０が行った処理の結果を、必要に応じて画像として表示する。表示装置１６は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、例えば液晶テレビ、プラズマテレビ、ＰＣディスプレイ等である。上述のとおり情報処理装置１０が最終的に実行する処理内容や表示すべき画像はその使用目的によって特に限定されるものではないため、以後は情報処理装置１０が行う、被写体の位置検出処理に主眼を置き説明する。
【００１６】
図２は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。ＣＰＵ２２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、情報処理装置１０内部の構成要素における処理や信号伝送を制御する。ＧＰＵ２４は画像処理を行う。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００１７】
これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインタフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６やスピーカなどの出力装置へデータを出力する出力部３６、キーボード、マウス、撮像装置１２、マイクロホンなどの入力装置からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００１８】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、図示しないフレームバッファに表示画像を格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６などに出力する。
【００１９】
図３は撮像装置１２と情報処理装置１０の機能ブロックの構成を示している。図３および後述する図９に示す各機能ブロックは、ハードウェア的には、図２に示したＣＰＵ、ＧＰＵ、ＲＡＭ、各種プロセッサなどの構成で実現でき、ソフトウェア的にはデータ入力機能、データ保持機能、画像解析機能、描画機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２０】
撮像装置１２は第１カメラ１３ａ、第２カメラ１３ｂを含む。各カメラはそれぞれ、既知の幅を隔てた左右の位置から所定のフレームレートで被写体を撮影する。撮影して得られるステレオ画像は情報処理装置１０からの要求により一般的な手法で随時、情報処理装置１０へ送信される。撮像装置１２はさらに、重力加速度を計測する加速度センサ４１を含む。加速度センサ４１から出力される情報により、実空間の鉛直方向に対する撮像装置１２の傾き、ひいては撮影画像が表す像と実空間での水平面との角度の関係を特定する。
【００２１】
情報処理装置１０は、撮像装置１２からステレオ画像を取得する画像取得部４２、ユーザからの指示入力を取得する入力情報取得部４４、撮影画像に基づき対象物の位置情報を生成する位置情報生成部４６、対象物の位置に基づき必要な処理を行い出力情報を生成する出力情報生成部５０、撮像装置１２から入力されたステレオ画像および、位置情報生成部４６が取得した奥行き画像などの各種中間データを記憶する画像データ記憶部４８を含む。
【００２２】
入力情報取得部４４は、処理の開始や終了、撮像装置１２による撮影以外の手段によるユーザからの指示入力を受け付け、それに応じた処理要求信号をその他の機能ブロックに送信する。入力情報取得部４４は、ボタン、キーボード、マウス、トラックボール、タッチパネルなど一般的な入力装置と、当該入力装置になされた操作内容を解釈して処理要求信号を生成するＣＰＵ２２などの協働により実現する。
【００２３】
画像取得部４２は、入力情報取得部４４からの要求に従い撮像装置１２からステレオ画像等の画像データを取得し、画像データ記憶部４８に格納する。取得する画像は出力情報生成部５０が後段で実施する処理や出力する情報に応じて様々であってよい。例えば第１カメラ１３ａが撮影した画像のみを撮影時のフレームレートで取得し、それより低いレートすなわち頻度で第１カメラ１３ａ、第２カメラ１３ｂが撮影したステレオ画像を取得するなどでよい。つまり第１カメラ１３ａが撮影した画像と第２カメラ１３ｂが撮影した画像の取得レートは独立に設定できるようにしてもよい。
【００２４】
画像取得部４２はさらに、ステレオ画像のデータとともに、加速度センサ４１による重力加速度の計測結果を取得し、画像データ記憶部４８に格納する。画像取得部４２は、図２で示した入力部３８、入出力インターフェース２８、およびＣＰＵ２２などの協働により実現する。
【００２５】
位置情報生成部４６は図２で示したＣＰＵ２２、ＧＰＵ２４などにより実現し、画像データ記憶部４８に格納されたステレオ画像のデータに基づき、被写体の３次元空間での位置を検出する。位置情報生成部４６は、奥行き画像取得部５２、空間構造特定部５４、対象物抽出部５６を含む。奥行き画像取得部５２は、ステレオ画像を用いて、撮像装置１２の視野内に存在する被写体の奥行き方向の位置分布を表す奥行き画像を生成する。被写体の奥行き方向の位置分布は、ステレオ画像法など一般的な技術によって求められる。ここでステレオ画像法は、ステレオ画像を構成する左右の画像上で同一の被写体が写っている位置を特定し、その視差から当該被写体の撮像装置１２からの距離を算出する一般的な手法である。
【００２６】
また奥行き画像は、各被写体の撮像装置１２からの奥行き方向の距離を、撮影画像平面上の画素値として表した画像である。したがって奥行き画像には、人など主たる被写体のほか、床、テーブル、壁、天井、家具など撮影対象の空間に存在する各種物体の奥行き方向の位置が、その像の形状を伴って表される。なお撮像装置１２に奥行き画像を生成する機能を設けてもよい。この場合、画像取得部４２が奥行き画像のデータを撮像装置１２から取得して画像データ記憶部４８に格納し、奥行き画像取得部５２がそれを読み出す。
【００２７】
なお被写体の奥行き方向の位置を検出する手法はステレオ画像法に限らない。例えば撮像装置１２に、赤外線センサや参照光照射型のカメラなどを設け、被写体に照射した赤外線や参照光の反射時間等を解析することにより被写体の奥行き方向の位置分布を取得し、それに基づき奥行き画像を生成してもよい。いずれの場合も、奥行き画像取得部５２は、生成あるいは取得した奥行き画像を空間構造特定部５４に供給する。あるいは画像データ記憶部４８に格納し、そのデータの識別情報を空間構造特定部５４に通知する。
【００２８】
空間構造特定部５４は、被写体のうち床、テーブル上面、天井など、実空間で水平面を構成する物を、奥行き画像が表す情報を用いて特定する。具体的には、奥行き画像の各画素を、画素値が表す３次元の位置情報に基づき、仮想の３次元空間に座標点としてプロットする。この際、撮像装置１２の加速度センサ４１が計測した重力の方向に基づき、３次元空間の水平面を実際の水平面と一致させる。そして当該３次元空間における座標点の重力ベクトル方向の分布に基づき、水平をなす物体の表面を構成する座標点を抽出し、撮像装置１２の視野における当該水平な表面の位置および傾きを特定する。以下、水平をなす物体の表面を「水平物」と呼び、重力の方向に垂直な２次元の空間を表す「水平面」と区別する。
【００２９】
撮影画像において床やテーブル上面などの水平物の像がどこに存在するかは、ＡＲを実現する際、描画する３次元オブジェクトを現実世界と融合させるのに重要な情報である。つまり３次元オブジェクトが歩いたり飛来したりする場所が実際の水平物と一致しているほど、実際にそこにいるかのような臨場感のある画像となる。また人の足や手などの動きに応じた情報処理を行う態様においても、それらの情報は有用である。つまり、像が連続しており区別しづらい、床とその上にある足、テーブルとその上に乗せた手、などを、床やテーブルの位置情報を用いて分離することにより、人の動きのみを正確に追跡できるようになる。空間構造特定部５４の処理については後に詳述する。
【００３０】
対象物抽出部５６は、情報処理の目的に応じた対象物の位置情報を抽出する。上記の例で、テーブル上に飛来する３次元オブジェクトを描画する場合は、空間構造特定部５４が特定した情報のうち、テーブル上面の位置情報を抽出する。床に立つユーザの足の動きから、仮想のボールを蹴ったり仮想世界を歩いたりする画像を表示する場合は、床面から分離した足のみの位置情報を抽出する。上述のように、奥行き画像において連続した像として得られる足と床のうち、床を表す画素を除外することにより、足先の微妙な動きも認識できるようになる。このように、対象物抽出部５６が抽出する対象は、空間構造特定部５４が特定した水平物のいずれかでもよいし、当該水平物を除外した後に残された物でもよい。抽出した位置情報は、画像データ記憶部４８に格納するか、出力情報生成部５０に直接、供給する。
【００３１】
出力情報生成部５０は、図２で示したＣＰＵ２２、ＧＰＵ２４などにより実現し、位置情報生成部４６が生成した、対象物の位置に係る情報に基づき、画像データ記憶部４８から読み出した撮影画像にさらに描画処理を施すなど、使用目的に応じた処理を適宜行う。上述のとおりここで行う処理は特に限定されず、入力情報取得部４４が受け付けたユーザからの指示や実行するプログラムなどに応じて適宜切り替えてよい。処理の結果得られた画像のデータは、表示装置１６に出力され表示される。あるいはネットワークを介して別の装置へ送信してもよい。出力情報生成部５０はさらに、被写体の動きに応じた音声データを生成し、スピーカから出力するようにしてもよい。
【００３２】
次に、上記構成によって実現される情報処理システムの動作を説明する。図４は情報処理システム２によってなされる情報処理の基本的な手順を示すフローチャートである。まずユーザが、情報処理装置１０の入力情報取得部４４に対し処理の開始を指示すると、画像取得部４２を介した撮影開始要求により、撮像装置１２は被写体の撮影を開始する（Ｓ１０）。情報処理装置１０の画像取得部４２は、そのようにして撮影された動画像のフレームデータを順次取得し、画像データ記憶部４８に格納する（Ｓ１２）。このデータには所定のレートでステレオ画像のデータ、および重力ベクトルの方向に係るデータが含まれる。
【００３３】
次に位置情報生成部４６の奥行き画像取得部５２は、画像データ記憶部４８に格納されたステレオ画像のデータを用いて、被写体の奥行き方向の位置分布を画素値とした奥行き画像を生成する（Ｓ１４）。上述のとおり撮像装置１２が奥行き画像を生成する機能を含む場合は、画像データ記憶部４８に当該奥行き画像のデータが格納されるため、Ｓ１４で奥行き画像を生成する代わりに当該データを読み出す。次に位置情報生成部４６の空間構造特定部５４は、奥行き画像により表される座標点のうち水平物を構成する座標点を特定することにより、床やテーブル等、実際の水平物の位置情報を取得する（Ｓ１６）。なお床、テーブル、天井などの水平物は、実空間での水平面を定義するとともに、被写空間の大まかな構造を決定づけるものであるため、図４のフローチャートではそれらの位置情報を「空間構造情報」と表記している。
【００３４】
次に位置情報生成部４６の対象物抽出部５６は、Ｓ１６の処理で得られた水平物の位置情報に基づき、表示画像の生成に必要な対象物の位置情報を取得する（Ｓ１８）。上述のとおり対象物は、床やテーブル等、水平物そのものでもよいし、床やテーブル等を分離して得られる、手や足など人の体の一部でもよい。出力情報生成部５０は、対象物の３次元空間での位置情報に基づき、使用目的に応じた画像加工処理や画像解析処理などを実施し、必要に応じて処理結果を表す表示画像を生成、出力する（Ｓ２０）。
【００３５】
ユーザが処理の終了を指示するまで、所定のレートでＳ１２〜Ｓ２０の処理を繰り返すことにより、対象物の位置や動きに対応する動画像等を出力し続け（Ｓ２２のＮ）、処理の終了指示に応じて全ての処理を終了する（Ｓ２２のＹ）。なおＳ２０の表示画像出力処理は、Ｓ１２からＳ１８までの位置検出処理とは独立した周期で行ってよい。例えば表示画像は、撮像装置１２が撮影した動画のフレームレートと同等のレートで出力し、位置検出処理はそれより小さいレートで行ってもよい。またＳ１６における空間構造情報の取得処理とＳ１８の対象物の位置情報取得処理の周期も異なっていてよい。例えば撮像装置１２が固定であり、水平物も動かないことが明らかな状況においては、Ｓ１６の処理は初期に一度のみ行うなどでもよい。
【００３６】
次に奥行き画像取得部５２が生成する奥行き画像について説明する。ここで長さの単位は記載がない限りメートル等で揃えているものとする。図５はステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。第１カメラ１３ａ、第２カメラ１３ｂは距離Ｌを隔てた平行な光軸を有するように設置される。このようなステレオカメラに対し、被写体は奥行き方向に距離Ｚ離れた右端の矢印の位置に存在するとする。
【００３７】
各カメラが撮影した画像の１画素が表す実空間での幅Δｘは、距離Ｚに比例して次のように表される。
Δｘ＝Ｚ×ｗ／Ｗ  （１）
ここでＷはカメラの横方向の画素数、ｗは距離Ｚが１のときの実空間の横方向の視野範囲であり視角によって定まる。
【００３８】
距離Ｌだけ離れた２つのカメラで撮影された同一の被写体は、その画像上でおよそ下記のような画素数上の視差Ｄ（画素）を有する。
Ｄ＝Ｌ／Δｘ＝Ｌ×（Ｗ／ｗ）×（１／Ｚ）＝Ｃ／Ｚ  （２）
ここでＣはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。
【００３９】
ステレオ画像を構成する左右の撮影画像のうち、数画素単位の所定サイズの領域ごとにブロックマッチングを行うなどして視差Ｄを求めれば、式（２）により、その像に対応する被写体の奥行き方向の位置Ｚが当該微少領域ごとに得られる。すなわち奥行き画像は、左右いずれかの撮影画像において位置座標（Ｘ，Ｙ）に像が表れる被写体の奥行き方向の位置Ｚを、当該位置座標の画素値として表した画像として取得される。
【００４０】
本実施の形態では、この奥行き画像が有する位置情報を３次元空間における座標点として表し、それを用いて水平物の位置を特定する。そのため奥行き画像を、カメラの視野に基づき３次元のワールド座標系へ逆射影変換する。図６は奥行き画像における画素とワールド座標系における座標点の関係を模式的に示している。
【００４１】
ここで奥行き画像８０は第１カメラ１３ａの視野に対し作成されたとする。図示するように第１カメラ１３ａの光軸との交差する奥行き画像８０の中心を原点としたときの位置座標（Ｘ，Ｙ）の画素値がＺであるとすると、その画素が表す像のワールド座標系での位置、すなわち第１カメラ１３ａからの距離がＺの平面８２上での位置座標は、（（Ｚ／Ｚ０）Ｘ，（Ｚ／Ｚ０）Ｙ）となる。このようにして奥行き画像における各画素が表す情報（Ｘ，Ｙ，Ｚ）は、３次元のワールド座標系における座標点に変換できる。
【００４２】
ここでＺ０はカメラの視野（Field of View）によって定まる定数であり、第１カメラ１３ａ固有の値に合わせることにより、ワールド座標系を実空間と一致させることができる。ただし上述した座標変換による（（Ｚ／Ｚ０）Ｘ，（Ｚ／Ｚ０）Ｙ，Ｚ）の３次元空間は、そのままでは実空間における水平面との対応が規定されない。すなわちカメラの向きが変化しても座標点の分布は影響を受けない。
【００４３】
図７は座標点が定義されるワールド座標系と実際の撮影空間との関係を説明するための図であり、撮影空間を右側から見た様子を示している。同図の例では、撮像装置１２は人などの被写体を撮影しているが、その光軸は水平面より下を向いている。この場合、カメラからの距離Ｚも図示するように下向きの軸を有するため、実空間の水平面と一致しない。このようなことは、撮像装置１２の設置状況に依存して発生するほか、ユーザがカメラを把持して自由な方向から被写体を撮影する態様においては定常的に発生し得る。
【００４４】
そこで本実施の形態では、別途、重力ベクトル（図中、「ｇ」と表記）の方向を取得することにより、座標点を重力ベクトルｇとそれに垂直な平面がなす３次元空間に対しプロットする。具体的には、撮像装置１２の加速度センサ４１からの出力値に基づき、奥行き画像が表す（Ｘ，Ｙ，Ｚ）の軸と重力ベクトルｇとがなす角度を特定し、上述の座標変換後の位置座標をさらに座標変換すればよい。そして重力ベクトルｇの軸方向に、それと垂直な平面、すなわち水平面における座標点の分布を探索していくことにより、水平物を形成する座標点を抽出する。
【００４５】
図８はこのようにして実際にプロットした座標点の様子を例示している。同図左側は第１カメラ１３ａによる撮影画像８４である。当該撮影画像８４と第２カメラ１３ｂによる撮影画像とを用いステレオ画像法などにより奥行き画像を生成し、その画素を３次元空間に逆射影してなる座標点の分布を略右斜め前から見た状態が画像８６である。図示するように画像８６に示された座標点は、撮影画像８４に写る被写体の表面を表す点集合を構成する。このうち床やテーブル上面など水平物を構成する座標点を、３次元空間を水平方向に分割したときの分布に基づき特定、抽出する。
【００４６】
図９は空間構造特定部５４の詳細な機能ブロック構成を示している。空間構造特定部５４は、重力方向取得部６０、スライス空間評価部６２、および平面特定部６４を含む。重力方向取得部６０は、撮像装置１２のセンサ面と重力ベクトルｇの方向とがなす角度を取得する。角度のデータは、撮像装置１２から送信されステレオ画像のデータと対応づけて画像データ記憶部４８に格納されているものを読み出す。ただし角度の取得方法はこれに限らない。
【００４７】
例えば重力方向取得部６０は、撮像装置１２による撮影画像をリアルタイムに表示装置１６に表示させたうえ、重力ベクトルの正しい向きを指定するための矢印を重畳して表示する。ユーザは撮影画像を見ながら入力装置を操作し、実際の重力ベクトルと合致するように、すなわち実空間での下向きを示すように撮影画像上の矢印の方向を変化させ確定させる。重力方向取得部６０は確定された矢印の方向に基づき画像平面と重力ベクトルの角度を取得する。あるいは撮像装置１２の前でユーザに物を落下させたところを動画撮影し、重力方向取得部６０が当該動画を画像解析することにより、画像中、物が落下していく方向を重力ベクトルの方向としてもよい。
【００４８】
取得した角度の情報は、スライス空間評価部６２に通知する。スライス空間評価部６２は、上述のように奥行き画像を用いて座標点をプロットした３次元空間を、重力ベクトルの軸と垂直な平面、すなわち実空間における水平面を断面として所定の間隔で分割し、複数の分割空間（以後、「スライス空間」と呼ぶ）を生成する。分割面の間隔が小さいほど、スライス空間は面に近くなる。したがって定性的には、そのような薄い空間内に多くの座標点が存在するとき、当該座標点集合は水平物を表しているといえる。スライス空間評価部６２は、そのような観点で複数のスライス空間を座標点の数等に基づき評価し、水平物を含むスライス空間を抽出する。
【００４９】
平面特定部６４は、スライス空間評価部６２が抽出したスライス空間に属する座標点集合を用いて、当該座標点集合が形成する水平物の位置および向きを正確に特定する。スライス空間は、重力方向取得部６０が取得した重力ベクトルの軸に垂直に空間を分割したものであるため、原理的には水平物とスライス空間の断面は平行である。一方、重力ベクトルの取得手法によらず、その角度には多少なりとも誤差が含まれることが考えられる。そのためスライス空間評価部６２は、スライス空間の厚みを最適化することで、スライス空間の分割面に微小な傾き誤差があっても１つのスライス空間に水平物を構成する座標点集合が入るようにする。そして平面特定部６４は、抽出されたスライス空間に属する座標点集合に基づき、正しい水平物の位置と角度を決定する。
【００５０】
図１０は、スライス空間評価部６２が、座標点をプロットした３次元空間を分割してスライス空間を生成する様子を模式的に示している。同図において奥行き画像１０６は、テーブルと人の像を、カメラからの距離Ｚを画素値として表している。奥行き画像１０６の各画素を、上述した逆射影変換により３次元空間にプロットすることにより座標点集合１０８が得られる。このとき上述のとおり、重力ベクトルｇとそれに平行な平面によって構成される３次元空間に対し、各座標点の位置座標を取得する。
【００５１】
このような３次元空間を重力ベクトルｇに垂直な複数の面１１０ａ〜１１０ｈで分割する。これによりスライス空間Ａ０〜Ａ６が生成される。スライス空間を過度に薄くすると、重力ベクトルｇの角度誤差や座標点の位置座標の誤差に起因し、一つの水平物を構成する座標点集合が別のスライス空間に分割されてしまう可能性がある。一方、過度に厚くすると、水平物を含むスライス空間に、それ以外の物の座標点が含まれる可能性が大きくなる。したがって座標点の総数、重力ベクトルｇや座標点の位置座標の誤差範囲、求められる位置特定精度、画像の使用目的などに応じて、スライス空間の厚さを最適化しておく。
【００５２】
なお図１０では座標点およびスライス空間を模式的に示しているが、実際には座標点の数は数万個のオーダーであり、それに対し数百個単位のスライス空間を生成する。また分割する空間の上限（面１１０ｈ）および下限（面１１０ａ）は、例えば、重力ベクトルｇの軸方向で上端および下端にある座標点の位置とする。あるいは全座標点の平均位置を導出し、当該位置から上下方向に実距離で１メートルなど所定距離に設定してもよい。後者の場合、座標点の位置座標に異常値があっても分割空間の無為な広がりを抑えることができる。
【００５３】
図１１は、スライス空間評価部６２が水平物を含むスライス空間を抽出する手法を説明するための図である。同図左側が、図１０で示したような３次元空間における座標点を水平方向から見た分布例１１０である。スライス空間評価部６２は、各スライス空間Ａ０〜Ａ６に属する座標点を数えたうえ、それに基づきスライス空間に所定の規則でスコアを付与する。同図右側の棒グラフは、各スライス空間Ａ０〜Ａ６に付与されたスコアの例を示している。
【００５４】
最も単純には、座標点の数をそのままスコアとする。あるいはカメラから近い座標点ほど高い係数で重み付けをしたうえでその合計をスコアとする。これは、カメラから近い座標点ほどその位置が正確に特定されていることを考慮した計算方法である。すなわちステレオ画像法においては、撮影画像は画素単位でデータを持つため、視差Ｄも画素単位で得られる。図５を再び参照すると、視差は実空間においてΔｘ単位で得られるため、奥行き方向の距離が得られる間隔Δｚは次のようになる。
Δｚ＝Δｘ×Ｚ／Ｌ＝Ｚ２×（ｗ／Ｗ）×（１／Ｌ）      （３）
すなわちカメラからの距離Ｚの分解能は、距離Ｚの２乗に比例して低下する。したがって重み係数を１／Ｚ２とし、次の式でスコアを計算する。
【００５５】
【数１】
0006009502.tif 000002
【００５６】
ここでＳｉはｉ番目のスライス空間のスコア、Ｎｉは当該スライス空間に属する座標点の数、Ｚｎは当該座標点のうちｎ番目の座標点のカメラからの距離Ｚの値である。このようにすることで、位置の誤差が小さい座標点ほどスコアへの寄与が大きくなり、ひいては水平物の検出精度をより向上させることができる。ただし重み付けはこれに限らず、１画素が表す実空間での幅Δｘが距離Ｚに比例することから重み付け係数を１／Ｚとしてもよいし、撮影環境によっては、座標点のＸ座標、Ｙ座標をさらに利用してもよい。また赤外線センサなどステレオ画像法以外の手法で奥行き画像を取得する場合は、用いるセンサの精度特性に応じてスコアの計算方法を適宜決定してよい。
【００５７】
そしてスライス空間評価部６２は、そのように付与したスコアに対しあらかじめ設定されたしきい値Ｔｈ１を用いてしきい値判定を行い、しきい値Ｔｈ１を越えるスコアが得られたスライス空間を抽出する。図１１の例では、スライス空間Ａ３が抽出される。しきい値Ｔｈ１は座標点の総数などに応じて典型的な値を設定しておくほか、屋内／屋外などの撮影環境、想定される照度などに応じて最適値を準備しておき、実際の状況に応じて適応的に選択してもよい。
【００５８】
例えば床のテクスチャと照度の典型的な組み合わせに対し、いくつかのしきい値を準備しておき、ユーザが、実際の床のテクスチャと照度に近い組み合わせを選択することにより一のしきい値を決定してもよい。同じ部屋で同様の照明でゲームをする場合などは、同一のしきい値を用いることができるため、初期設定で決定したあとは、その値を採用してもよい。
【００５９】
床を検出する場合、図１１のスライス空間Ａ０からＡ６の方向、すなわち分割空間の下限から重力ベクトルｇと逆方向にスライス空間のしきい値判定を行っていき、最初にしきい値を超えたスライス空間を検出する。床を検出すれば、それ以外の水平物はその上に存在することが保証されているため、さらに上に探索していき、しきい値を超えるスライス空間を検出する。このとき用いるしきい値は、床を検出するために設定したしきい値と同じでもよいし異なっていてもよい。
【００６０】
定性的には物の表面のテクスチャによって、座標点の位置に含まれる誤差の大きさが異なるため、例えば実際にある物の材質等をユーザが選択し、それに応じたしきい値を設定することにより、検出精度をより高くすることができる。天井が視野に含まれる場合は、床面を含むスライス空間を検出するのと逆の方向、すなわち図１１のスライス空間Ａ６からＡ０のように、重力ベクトルｇと同方向にスライス空間のしきい値判定を行っていき、最初にしきい値を超えたスライス空間を検出してもよい。このように対象物によって探索方向を定めることにより、処理効率を向上させることができるとともに、検出した水平物が何であるかを位置に応じて推定することができる。
【００６１】
図１２は実際の座標点の分布とそれに対し付与されたスコアの分布を例示している。同図において黒い微小な四角は３次元空間にプロットされた座標点を表し、点線の楕円で囲まれた領域１２０には、３次元空間の対応する位置にあるスライス空間のスコアを棒グラフで示している。上述のように重力ベクトルと逆方向（図の下から上）に、各スコアをしきい値判定する。このときまず、床に対し設定されたしきい値Ｔｈ１でしきい値判定することで、矢印１２２の位置でスライス空間が検出される。次に、テーブルに対し設定されたしきい値Ｔｈ１’でしきい値判定を継続することにより、矢印１２４の位置でスライス空間が検出される。この結果、矢印１２２の位置に床があり、矢印１２４の位置にテーブルの上面があることを推定できる。
【００６２】
本実施の形態は、重力ベクトルｇの角度を取得することにより実空間での水平面を常時認識できているため、撮像装置１２のカメラの向きがどのようであっても、同様の手法で水平物を含むスライス空間を抽出できる。その極端な例として、カメラが垂直上向き、あるいは垂直下向きにある場合を考える。図１３はカメラがおよそ垂直下向きにある状態における撮影画像と座標点の分布を示している。
【００６３】
この例ではカメラは床の方向を向いているため、撮影画像１３０における大部分が床の模様を表している。このような場合、奥行き画像の大部分は同じ画素値を有するため、それを３次元空間における座標点としてプロットすると、画像１３２のように、重力ベクトルｇの軸に対し一つの位置に座標点が集中することになる。このことは、カメラを床に向けた場合に限らず、あまり物の置かれていないテーブルの上面や天井に向けた場合も同様となる。このような場合、スコアも、あるスライス空間で突出して高くなる。
【００６４】
図１４はこのように、カメラが水平物の方向を向いているときのスコアの分布例を示している。同図の例では、スライス空間Ａ３が当該水平物を含むとしており、その結果、スライス空間Ａ３のスコアが突出している。ここで上述のようにしきい値判定をする場合、画像のノイズや座標点の位置の誤差の関係で偶然、しきい値Ｔｈ１を越えるスコアを有するスライス空間（図１４の例ではスライス空間Ａ１）が出現し、スライス空間Ａ３より早く検出されると、それを床などとして決定してしまう恐れがある。
【００６５】
スコア全体を見た場合、座標点の集中の度合いから、スライス空間Ａ３が水平物を含む確度が高いことは明らかであるが、上述のように方向を定めてしきい値判定をした場合、スライス空間Ａ１が先に検出されることにより床の位置を誤検出したり、スライス空間Ａ１、Ａ３の双方に水平物が含まれるとしてしまったりすることが考えられる。このような場合を含め、水平物を含むスライス空間をより高精度に検出するため、第２のしきい値Ｔｈ２によるしきい値判定を導入してもよい。
【００６６】
この場合、まずスコアが第１のしきい値Ｔｈ１を越えるスライス空間を、全てのスライス空間を探索することにより検出する。同図の場合、スライス空間Ａ１およびＡ３が検出される。次に第２のしきい値Ｔｈ２を用いたしきい値判定を、第１のしきい値Ｔｈ１を越えたスライス空間Ａ１、Ａ３に対して実施する。第２のしきい値Ｔｈ２は、このような極端なスコアを有するスライス空間を検出する目的で設定するため、座標点の総数の８０％程度など、高い値を設定する。
【００６７】
そしてしきい値Ｔｈ２より大きいスコアを有するスライス空間がある場合は、それを水平物を含むスライス空間とし、それ以外の抽出結果を廃棄する。同図の場合、スライス空間Ａ３が最終的に検出される。もしスライス空間Ａ３のようにスコアが突出するスライス空間がなければ、カメラは垂直上向きや下向きではなく、図１２で示したように座標点が３次元空間全体に分布していることを意味する。したがって第１のしきい値Ｔｈ１を用いたしきい値判定で抽出した複数のスライス空間にそれぞれ水平物が存在すると結論づけることができる。
【００６８】
平面特定部６４は、このようにして抽出したスライス空間内の座標点の分布をさらに解析することにより、実際の水平物を高精度に特定する。上述のとおりスライス空間は、別途特定した重力ベクトルｇに垂直な断面を有するため、その断面はおよそ実空間での水平面と一致する。しかしそれに含まれる僅かな角度誤差であっても、水平物の面積が広いほど、その端での上下方向の位置ずれが大きくなる。結果としてＡＲを実現する場合などに、抽出したスライス空間を基準にすると、描画した３次元オブジェクトと実物の像に不自然な位置ずれが生じてしまう可能性がある。
【００６９】
図１５は実際に生じる位置ずれの例を示している。画像１３６は、白い点で表された座標点の３次元空間での分布をおよそ水平方向から見た状態を表している。ここでスライス空間評価部６２が、点線で囲まれたスライス空間１３８を抽出したとする。一方、実際に水平物を表すと考えられる座標点集合は、抽出されたスライス空間１３８近傍に連続した帯１４０として分布するものの、スライス空間１３８とは微妙に傾きが異なる。結果として、画像１３６の左端では看過できない程度の位置ずれが生じている。
【００７０】
したがって平面特定部６４は、座標点の分布に基づき水平面の傾きを補正することにより、真の水平物を特定する。図１６は座標点の分布を用いて水平物を詳細に特定する手法を説明するための図である。まず平面特定部６４は、スライス空間評価部６２が抽出したスライス空間Ａに属する座標点集合１４２を抽出する。さらにそのうち３つの座標点の組み合わせをランダムに抽出し、それぞれの組み合わせによって形成される三角形Ｔ（ｒ）の法線ベクトルｎ（ｒ）を算出する。ここでｒは組み合わせの識別番号であり、組み合わせの抽出数をＲとしたとき０≦ｉ≦Ｒ−１なる自然数である。そして次の式により、個々の法線ベクトルｎ（ｒ）を平均したベクトルｎａｖｅを、水平物の法線ベクトルとする。
【００７１】
【数２】
0006009502.tif 000003
【００７２】
なお平均に組み入れる法線ベクトルｎ（ｒ）は、所定のしきい値以上の面積を有する三角形Ｔ（ｒ）の値のみとすることにより誤差を小さくできる。また法線ベクトルｎ（ｒ）と重力ベクトルｇの軸がなす鋭角が所定のしきい値を越える場合は、当該法線ベクトルｎ（ｒ）を無効とする。これによりノイズによる異常値や、水平物以外の物を表す座標点の影響を除外することができる。組み合わせの抽出数は、対象のスライス空間に属する座標点の数に応じて決定し、例えば当該座標点の数の半数程度とする。水平物の位置（高さ）は、抽出したスライス空間Ａの厚さを２等分する位置Ｌｅｖとしてもよいし、それに属する座標点集合の平均位置としてもよい。このようにして法線ベクトルと位置を決定することにより、水平物の平面を高精度に定義でき、ＡＲなど後段の処理を精密に実施できる。
【００７３】
図１７は、図４のフローチャート中、Ｓ１６において位置情報生成部４６の空間構造特定部５４が行う水平物の特定手順を示すフローチャートである。まず重力方向取得部６０が、重力ベクトルｇの方向を取得する（Ｓ３０）。次にスライス空間評価部６２は、奥行き画像を逆射影変換することにより座標点を３次元空間にプロットし、当該空間を重力ベクトルと垂直な平面で所定数のスライス空間に分割する（Ｓ３２）。そして各スライス空間に属する座標点に基づき、所定の規則でスライス空間にスコアを付与する（Ｓ３４）。
【００７４】
次にスライス空間評価部６２は、スライス空間を所定の方向にしきい値判定していくことにより、しきい値を超えるスコアを有するスライス空間を抽出する（Ｓ３６）。しきい値は上述のように、想定される対象物のテクスチャ等に応じて切り替えてよい。また第１のしきい値Ｔｈ１と第２のしきい値Ｔｈ２により２段階で抽出を行うことにより、カメラが垂直上向きや下向きの状態にあることを座標点の集中の度合いから検出し、その場合はカメラが向いている水平物のみを抽出できるようにしてもよい。
【００７５】
次に平面特定部６４は、Ｓ３６で抽出したスライス空間ごとに、それに含まれる座標点の組み合わせで形成される複数の面の法線ベクトルの平均を水平物の法線ベクトルとし、スライス空間の中心または座標点の平均位置を水平物の位置とすることで、水平物の面を詳細に特定する（Ｓ３８）。Ｓ３６で抽出した全てのスライス空間について特定処理が終わるまでＳ３８の処理を繰り返し（Ｓ４０のＮ）。全てのスライス空間に対し水平物が特定できたら処理を終了する（Ｓ４０のＹ）。
【００７６】
これまで述べた例は、被写体のうち床、テーブル、天井など水平面を構成する物の位置を特定する手法であったが、これを応用して、壁の位置を特定してもよい。水平物は、常に重力ベクトルｇと垂直の関係にあるため、微小の補正量を除けばその法線ベクトルは重力ベクトルｇから確定できる。一方、壁の向きは部屋の構造などによって自由に設けられるため、その法線ベクトルは、重力ベクトルｇと垂直であるという拘束条件を除いて不確定となる。そのため壁の位置を特定するためには、まずその向きを特定する必要がある。
【００７７】
次に述べる手法は、撮像装置１２の周囲３６０°に対し奥行き方向の位置が得られている場合を想定している。例えば撮像装置１２を重力ベクトルｇの軸周りに一周させながら各方位に対し奥行き画像を生成していき、それを共通の３次元空間に逆射影変換することにより、全方位に対する座標点を得る。このとき魚眼レンズのように画角の広いカメラを利用することにより、一度に広範囲の情報を得ることができ効率がよい。あるいは多視点カメラなど、一度に３６０°の方位に対し奥行き方向の距離を取得することが可能な装置を利用してもよい。
【００７８】
図１８は３次元空間における壁の角度を特定する手法を説明するための図である。図１８において示した黒丸、白丸は、撮像装置１２の周囲の３次元空間にプロットされた座標点の分布を、重力ベクトルｇと同一の視線、すなわち鉛直下向きに見た様子を示している。ここで撮像装置１２は白抜きの四角で示した位置１６０にある。また矩形１６２の４辺が特定対象の壁であるとする。当然、壁の位置には座標点が分布する。このような環境において壁の角度を特定するため、スライス空間評価部６２は、重力ベクトルｇと平行、あるいは先に求めた水平物と垂直で、所定の厚さを有するスライス空間を、撮像装置１２の位置１６０を中心に微小角度ずつ変化させて所定個数、配置する。
【００７９】
図中、符号ａ１、ａ２、・・・、ａｎ、・・・が付された細長い矩形が、様々な角度におけるスライス空間を表している。ただし図示したスライス空間はその一部であり、実際には所定の基準方向Ｓとのなす角度θが０≦θ＜１８０°となる範囲で均等に配置する。なお角度θの刻み幅はスライス空間の厚さ、要求される位置特定精度、座標点の数などに応じて決定する。図１７で示した処理手順により床などの水平物が正確に特定できていれば、スライス空間ａ１、ａ２、・・・、ａｎ、・・・は真の垂直面に設定することができる。
【００８０】
そしてスライス空間ａ１、ａ２、・・・、ａｎのそれぞれについて、それに属する座標点を抽出してスコアを付与する。ただしこの場合は、矩形１６２で示される部屋の壁の向きを特定するため、スコアの算出手法は水平面の位置を検出する場合とは異なる。具体的には、図示するような矩形の部屋の場合、向かい合う壁の最短距離を表す線分は、両者と垂直に交わる直線上にあることを利用する。
【００８１】
図１８の例で、スライス空間ａ１が壁と垂直に交わっているとすると、当該スライス空間ａ１において最も離れた２つの座標点（白丸で示した座標点Ｐ１、Ｐ２）は、スライス空間ａ２などその周囲の角度に配置されたスライス空間において最も離れた２つの座標点よりその距離が小さい。同様に、スライス空間ａｎが壁と垂直に交わっているとすると、当該スライス空間ａｎにおいて最も離れた２つの座標点（白丸で示した座標点Ｐ３、Ｐ４）も、その周囲の角度に配置されたスライス空間において最も離れた２つの座標点よりその距離が小さい。
【００８２】
このように、内部に属する座標点のうち最も離れた２つの座標点の距離が周囲より小さいスライス空間は、壁とおよそ垂直に交わっていると考えられるため、当該スライス空間を抽出すれば壁の法線ベクトルを特定できる。そこで各スライス空間に属する座標点のうち鉛直方向から見て最も離れた２つの座標点の距離をｄとしたとき１／ｄを当該スライス空間のスコアとする。ただし本実施の形態をこれに限る趣旨ではなく、１／ｄ２をスコア値としてもよい。また２点の座標点の距離に限らず、スライス空間に属する座標点のうち水平方向で両端近傍にある所定数の座標点の平均位置の距離をスコア算出に用いる距離ｄとしてもよい。
【００８３】
図１９は壁の向きを特定するためにスライス空間に付与したスコアの変化例を示している。同図縦軸に示すように、スライス空間ａ１、ａ２、・・・、ａｎ、・・・は、基準方向Ｓとのなす角度θで定義される。上記の通り、各スライス空間に属する座標点のうち最も離れた２点間の距離ｄの逆数をスコアとした場合、壁に垂直な角度のスライス空間でスコアが極大となる。同図の例では、スライス空間ａ１およびａｎで極大となっている。これらのスライス空間の角度θを取得すれば、上述の原理により、その角度が壁の法線ベクトルと一致することになる。
【００８４】
このようにして法線ベクトルを得たら、当該法線ベクトルと垂直な平面が壁となるため、その位置を特定する。この処理は、重力ベクトルｇに垂直な面を水平面として水平物を特定した上述の処理と同様に実現できる。図２０は図１８で表した座標点の分布に対し壁の向きを特定したあと、その位置を特定する手法を説明するための図である。この図では、図１８、１９の例で抽出されたスライス空間ａ１、ａｎのうち、スライス空間ａｎの方向θｎに法線ベクトルｎを有する、向かい合う壁の位置を特定している。
【００８５】
まず水平物を特定する場合と同様、法線ベクトルｎと垂直な面で空間を分割することにより、所定数のスライス空間Ａ１〜Ａ８を生成する。ただしこの場合、壁の方向を特定するための処理において、壁上の座標点と想定される２つの座標点（白丸で示した座標点Ｐ３、Ｐ４）を抽出しているため、法線ベクトルｎの軸方向で当該座標点の位置の近傍のみにスライス空間を生成することにより処理効率を上げられる。同図の場合、座標点Ｐ３の近傍にスライス空間Ａ１〜Ａ４を、座標点Ｐ４の近傍にスライス空間Ａ５〜Ａ８を生成している。
【００８６】
そして属する座標点の数に基づき、所定の規則でスライス空間にスコアを付与し、しきい値を越えるスコアを有するスライス空間を抽出する。このときも床面などの特定と同様に、壁のテクスチャや照度などの条件に応じてしきい値を切り替えることが望ましい。さらに、図１６を参照して説明したように、抽出したスライス空間に属する座標点の組み合わせにより形成される複数の面の法線ベクトルを平均することにより、壁の法線ベクトルを正確に求める。壁の位置は抽出したスライス空間の厚さを２等分する位置、あるいはそれに属する座標点集合の平均位置とする。これにより、水平物のみならず壁の面を高精度に特定することができる。
【００８７】
図２１は、足を対象物とした場合に対象物抽出部５６が足の位置情報を床から分離する様子を例示している。同図左側の画像１８０は、床に立つ人の足部分の撮影画像から得られる座標点の分布を正面から見た様子を示している。この画像１８０において、足先は領域１８２に存在するが、床と連続しているため明確な位置がわからない。同図右側の画像１８４は、本実施の形態によって床面を特定し、その部分の座標点を除外したものである。このように床面部分の情報を除外することにより、領域１８６において足先の像が明確に表れ、ひいてはその位置情報が正確に得られる。結果として足先の細かい動きを高精度に追跡できる。
【００８８】
以上述べた本実施の形態によれば、被写体の３次元空間での位置情報を表す奥行き画像を、カメラの視野と対応する３次元空間に逆射影変換して座標点を分布させる。そして当該３次元空間を、別途取得した重力ベクトルの方向と垂直な平面で分割して複数のスライス空間を生成し、それらに属する座標点の分布に基づき、水平面を構成する物の位置を特定する。これにより、単なる点の羅列である座標点分布に、床、テーブル、天井など面を構成している、という情報を与えることができる。またカメラを自由に動かしてもそれらの面を特定しつづけられる。結果として、ＡＲにおける３次元オブジェクトをそれらの位置に合わせて描画したり、人の体をそれらの物から分離して動きを正確に追跡したりすることができる。
【００８９】
スライス空間の厚さを計算条件や撮影条件によって最適化することにより、重力ベクトルの計測誤差や被写体の位置座標の算出誤差があっても、１つのスライス空間で１つの水平物をおよそ包含でき、簡易な評価により水平物に対応するスライス空間を抽出できる。そのようにして抽出したスライス空間に属する座標点に再度着目し、それらが形成する水平面を最終的な検出結果とすることにより、上記のような誤差があっても厳密に水平物を特定できる。また奥行き画像の取得方法やその解像度、あるいは撮影条件が変化しても、しきい値を調整するのみで同様の処理手順を適用できる。さらに、生成技術が十分に確立している奥行き画像を利用するため、導入障壁が低く応答性への影響も最小限に抑えられる。
【００９０】
さらにスライス空間の抽出に際し、２つのしきい値を用いて２段階で判定を行うことにより、カメラの正面に水平物がありそれのみを検出すべき状況を検知し、最も確からしい水平物を特定することができる。また水平面に垂直なスライス空間を配置し、それに対して評価を行うことにより、水平物のみならず部屋の壁の角度や位置も特定する。この際、まず撮像装置１２を中心として複数の角度でスライス空間を配置し、各スライス空間において水平方向に最も離れた座標点の距離の近さに基づき、壁の法線方向のスライス空間を抽出する。次に当該法線方向と垂直なスライス空間を配置し、それらに属する座標点の分布に基づき壁の位置を特定する。これにより、水平物のみならず壁の位置に合わせて３次元オブジェクトを描画したり、壁近傍の人の体のみを壁から分離して動きを正確に追跡したりすることができる。
【００９１】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９２】
例えば本実施の形態では、重力ベクトルの方向に垂直な面で３次元空間を分割することにより、実世界に多く存在する水平な面を検出した。一方、分割面は重力ベクトルに垂直でなくてもよい。つまり重力ベクトルと所定角度の傾きを有する面で３次元空間を分割しスライス空間を生成すれば、本実施の形態と同様の処理手順により、当該傾きを有する平面物体を容易に検出することができる。
【符号の説明】
【００９３】
２  情報処理システム、  １０  情報処理装置、  １２  撮像装置、  １６  表示装置、  １３ａ  第１カメラ、  １３ｂ  第２カメラ、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  ４２  画像取得部、  ４４  入力情報取得部、  ４６  位置情報生成部、  ４８  画像データ記憶部、  ５０  出力情報生成部、  ５２  奥行き画像取得部、  ５４  空間構造特定部、  ５６  対象物抽出部。
【図１】
0006009502.tif 000004
【図２】
0006009502.tif 000005
【図３】
0006009502.tif 000006
【図４】
0006009502.tif 000007
【図５】
0006009502.tif 000008
【図６】
0006009502.tif 000009
【図７】
0006009502.tif 000010
【図９】
0006009502.tif 000011
【図１０】
0006009502.tif 000012
【図１１】
0006009502.tif 000013
【図１４】
0006009502.tif 000014
【図１６】
0006009502.tif 000015
【図１７】
0006009502.tif 000016
【図１８】
0006009502.tif 000017
【図１９】
0006009502.tif 000018
【図２０】
0006009502.tif 000019
【図８】
0006009502.tif 000020
【図１２】
0006009502.tif 000021
【図１３】
0006009502.tif 000022
【図１５】
0006009502.tif 000023
【図２１】
0006009502.tif 000024