(57)【要約】      （修正有）【課題】対象物の姿勢推定を高精度に行うことができる情報処理装置を提供する。【解決手段】情報処理装置１００は、ユーザが装着するステレオＲＧＢカメラ１１５からユーザの手の画像を含むステレオＲＧＢ画像を取得する検出用情報取得部１２１と、ユーザに対峙してされた距離画像センサ１１６からユーザの手の画像を含む距離画像を取得する推定用情報取得部１２０と、ステレオＲＧＢ画像に基づいて、ステレオＲＧＢカメラ１１５の画角内の第１座標系における手の少なくとも一部が内包される領域である第１領域を検出する検出部１２３と、第１領域と距離画像センサ１１６の位置との関係に応じて、距離画像センサ１１６の画角内の第２座標系における手の少なくとも一部が内包される第２領域を取得する領域取得部１２４と、第２領域と距離画像との関係に応じて手の姿勢を推定する推定部１２５と、を備える。【選択図】図１
2018119833.tif 000002
【特許請求の範囲】
【請求項１】
所定の第１位置に配置された第１センサから対象物の画像を含む第１画像を取得する第１情報取得手段と、
前記第１位置とは異なる第２位置に配置された第２センサから前記対象物の画像を含む第２画像を取得する第２情報取得手段と、
前記第１画像に基づいて、前記第１センサの画角内の第１座標系における前記対象物の少なくとも一部が内包される領域である第１領域を検出する検出手段と、
前記第１領域と前記第２位置との関係に応じて、前記第２センサの画角内の第２座標系における前記対象物の少なくとも一部が内包される第２領域を取得する領域取得手段と、
前記第２領域と前記第２画像との関係に応じて前記対象物の姿勢を推定する推定手段と、を備えることを特徴とする、
情報処理装置。
【請求項２】
前記領域取得手段は、前記第１領域を、前記第１センサから前記対象物を向く方向に前記対象物の形状に基づいた量だけ拡張して前記第２座標系に変換することで、前記第２領域を取得することを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記検出手段は、直方体の前記第１領域を検出し、
前記領域取得手段は、前記第１領域を、前記第１センサから前記対象物を向く方向に前記対象物の形状に基づいた量だけ前記直方体の辺を拡張して前記第２座標系に変換することで、前記第２領域を取得することを特徴とする、
請求項２に記載の情報処理装置。
【請求項４】
前記第２センサは距離画像センサであることを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１センサは、視線がユーザの目線と同じになるように配置されることを特徴とする、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記対象物は、ユーザの手指であることを特徴とする、
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記領域取得手段は、第１センサの座標系における前記対象物の位置に基づいて前記ユーザの手指の種類を判定し、
前記推定手段は、判定結果に基づいて前記ユーザの手指の姿勢を推定することを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
前記領域取得手段は、前記第１領域と前記第１画像の右端との第１距離と、前記第１領域と前記第１画像の左端との第２距離とを比較し、前記第１距離が前記第２距離より小さければ手の種類を右手と判定し、前記第２距離が前記第１距離より小さければ手の種類を左手と判定することを特徴とする、
請求項７に記載の情報処理装置。
【請求項９】
前記第１センサは、ステレオカメラであることを特徴とする、
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記対象物は、ユーザの体であることを特徴とする、
請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項１１】
所定の第１位置に配置された第１センサと、
前記第１位置とは異なる第２位置に配置された第２センサと、
情報処理装置と、を備えており、
前記情報処理装置は、
前記第１センサから対象物の画像を含む第１画像を取得する第１情報取得手段と、
前記第２センサから前記対象物の画像を含む第２画像を取得する第２情報取得手段と、
前記第１画像に基づいて、前記第１センサの画角内の第１座標系における前記対象物の少なくとも一部が内包される領域である第１領域を検出する検出手段と、
前記第１領域と前記第２位置との関係に応じて、前記第２センサの画角内の第２座標系における前記対象物の少なくとも一部が内包される第２領域を取得する領域取得手段と、
前記第２領域と前記第２画像との関係に応じて前記対象物の姿勢を推定する推定手段と、を備えることを特徴とする、
システム。
【請求項１２】
所定の第１位置に配置された第１センサから対象物の画像を含む第１画像を取得する第１情報取得手段と、前記第１位置とは異なる第２位置に配置された第２センサから前記対象物の画像を含む第２画像を取得する第２情報取得手段と、を備える情報処理装置により実行される方法であって、
前記第１画像に基づいて、前記第１センサの画角内の第１座標系における前記対象物の少なくとも一部が内包される領域である第１領域を検出し、
前記第１領域と前記第２位置との関係に応じて、前記第２センサの画角内の第２座標系における前記対象物の少なくとも一部が内包される第２領域を取得して、
前記第２領域と前記第２画像との関係に基づいて前記対象物の姿勢を推定することを特徴とする、
推定方法。
【請求項１３】
所定の第１位置に配置された第１センサから対象物の画像を含む第１画像を取得する第１情報取得手段と、前記第１位置とは異なる第２位置に配置された第２センサから前記対象物の画像を含む第２画像を取得する第２情報取得手段と、を備えるコンピュータを、
前記第１画像に基づいて、前記第１センサの画角内の第１座標系における前記対象物の少なくとも一部が内包される領域である第１領域を検出する検出手段、
前記第１領域と前記第２位置との関係に応じて、前記第２センサの画角内の第２座標系における前記対象物の少なくとも一部が内包される第２領域を取得する領域取得手段、
前記第２領域と前記第２画像との関係に応じて前記対象物の姿勢を推定する推定手段、
として機能させることを特徴とするコンピュータプログラム。
【請求項１４】
請求項１３載のコンピュータプログラムを記憶するコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人体や手指等の対象物の姿勢推定を行い、推定した姿勢をユーザインタフェースに用いる情報処理装置に関する。
【背景技術】
【０００２】
人体や手指の姿勢推定は、直観的なユーザインタフェースを実現するための技術として有望視されている。例えば、ＭＲ（Mixed Reality）システムにおいて、特別なデバイスを装着することなく手指を用いて仮想物体を操作するユーザインタフェースがある。また、ゲームシステムにおいて、特別なデバイスを装着することなく人体を用いて直観的に仮想物体を操作するユーザインタフェースがある。このようなユーザインタフェースでは、非接触のセンサを用いて得られる情報（センサ情報）に基づいて、関節や骨格の連続的な位置姿勢をリアルタイムで推定するスケルトン推定がよく用いられる。手指に対するスケルトン推定（手指スケルトン推定）や人体に対するスケルトン推定（人体スケルトン推定）では、一か所に設置されたセンサによるセンサ情報を用いることが一般的である。
【０００３】
非特許文献１は、センサから対象物（手指）までの距離を表す距離画像と可視光画像であるＲＧＢ画像とから抽出した特徴量に対し、予め学習したカスケード型認識機を用いることでスケルトン推定を行う技術を開示する。距離画像を取得する距離画像センサ及びＲＧＢ画像を取得するＲＧＢカメラは、視線がユーザの視線とほぼ平行で且つ画角も概ね一致するように、ユーザの身体に固定される。以下、ユーザの身体にこのように固定された距離画像センサやＲＧＢカメラの視点を「一人称視点」と呼ぶ。センサ情報に対し全探索を行うとリアルタイム性が損なわれるため、手指スケルトン推定の前処理としてセンサ情報からユーザの手に対応する情報のみを抽出する手検出を併用する場合がある。
【０００４】
非特許文献２は、ユーザの正面に対峙して姿勢を固定した距離画像センサ及びＲＧＢカメラを用いてスケルトン推定を行う。以下、ユーザに対して正面から対峙して固定された距離画像センサやＲＧＢカメラの視点を「正面視点」と呼ぶ。ＲＧＢ画像及び距離画像と予め登録した肌色の範囲とのマッチングにより手検出を行い、検出した手領域中のＲＧＢ画像及び距離画像に対して３次元形状モデルを当てはめるモデルフィッティングを行うことで、手指スケルトン推定が行われる。
【０００５】
非特許文献３は、正面視点の距離画像センサを用いてスケルトン推定を行う。このスケルトン推定では、まず、距離画像センサに最も近い３次元点群の塊を検出するという方法で手検出が行われる。検出した手領域の距離画像に対して予め学習したＣＮＮ（Convolutional Neural Network、畳みこみニューラルネットワーク）を適用して手指関節の３次元位置を認識することで、手指スケルトン推定が行われる。
【０００６】
特許文献１は、異なる場所に設置された複数のカメラによる画像（センサ情報）を用いてスケルトン推定を行う。特許文献１は、多関節オブジェクトモデルのポーズを推定する技術を開示する。１以上のカメラによる撮像画像を用いて、独立に物体検出及びポーズ推定が行われる。この技術は、手指スケルトン推定や人体スケルトン推定に適用することが可能である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−２３８２２２号公報
【非特許文献】
【０００８】
【非特許文献１】G. Rogez et al. "3D hand pose detection in egocentric rgb-dimages", CDC4CV Workshop, 2014
【非特許文献２】I Oikonomidis et al. "Efficient model-based 3D tracking of handarticulations using Kinect",BMVC,2011
【非特許文献３】Markus Oberweger et al. "Hands Deep in Deep Learning for HandPose Estimation", CVWW2015
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、非特許文献１の技術は、一人称視点の画像を用いているために、ユーザの指が距離画像センサやカメラの画角から頻繁に隠れる可能性があり、指の推定精度が低い。非特許文献２の技術は、ユーザの手がセンサの画角内に存在する唯一の肌色物体であることが前提である。そのために、ユーザ自身の顔や他の人物の顔、手がセンサの画角内に侵入した場合、手検出が失敗し、それに伴い手指スケルトン推定の精度が大幅に低下する。非特許文献３の技術は、ユーザの手が距離画像センサに最も近い対象物であることが前提である。そのために、他の物体がユーザの手より距離画像センサに近い位置にある場合、手検出が失敗し、それに伴い手指スケルトン推定の精度が大幅に低下する。特許文献１では、複数の撮像画像に対して独立に物体検出とポーズ推定を行うため、ユーザの指が隠れて撮像画像に含まれない場合に手指スケルトン推定の精度が低くなる。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、手や指等の対象物の姿勢推定を高精度に行うことができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の情報処理装置は、所定の第１位置に配置された第１センサから対象物の画像を含む第１画像を取得する第１情報取得手段と、前記第１位置とは異なる第２位置に配置された第２センサから前記対象物の画像を含む第２画像を取得する第２情報取得手段と、前記第１画像に基づいて、前記第１センサの画角内の第１座標系における前記対象物の少なくとも一部が内包される領域である第１領域を検出する検出手段と、前記第１領域と前記第２位置との関係に応じて、前記第２センサの画角内の第２座標系における前記対象物の少なくとも一部が内包される第２領域を取得する領域取得手段と、前記第２領域と前記第２画像との関係に応じて前記対象物の姿勢を推定する推定手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、対象物の姿勢推定を高精度に行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】（ａ）〜（ｃ）はＭＲシステムの説明図。
【図２】（ａ）、（ｂ）は手指スケルトン推定処理を表すフローチャート。
【図３】手指スケルトン推定処理の説明図。
【図４】手指スケルトン推定処理の説明図。
【図５】手指スケルトン推定処理の説明図。
【図６】ＨＭＤ座標系の手領域を取得する処理を表すフローチャート。
【図７】（ａ）、（ｂ）は手指スケルトン推定処理を表すフローチャート。
【図８】手領域左右判定処理の説明図。
【図９】（ａ）〜（ｃ）は人体スケルトン推定システムの説明図。
【図１０】（ａ）、（ｂ）は人体スケルトン推定処理を表すフローチャート。
【図１１】人体スケルトン推定処理の説明図。
【図１２】（ａ）〜（ｃ）はＭＲシステムの説明図。
【図１３】手指スケルトン推定処理を表すフローチャート。
【図１４】手指スケルトン推定処理の説明図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。以下、他図を用いて同じものを説明する場合には同一の符号を付し、その説明を省略する。
【００１５】
＜第１実施形態＞
図１は、本実施形態の情報処理装置を用いたＭＲシステムの説明図である。図１（ａ）は、ＭＲシステムの外観の一例を示す。ＭＲシステムは、情報処理装置１００、ステレオＲＧＢカメラ１１５、距離画像センサ１１６、及びＨＭＤ（Head Mounted Display）１１９を備える。情報処理装置１００は、ステレオＲＧＢカメラ１１５及び距離画像センサ１１６により取得されたセンサ情報に基づいて、スケルトン推定の対象物であるユーザの手１０１の位置及び姿勢を推定する。情報処理装置１００は、推定結果に応じて、ＨＭＤ１１９により表示される仮想物体１０３の手１０１による直接操作を実現する。ステレオＲＧＢカメラ１１５は、可視光画像を撮像する可視光画像のステレオカメラであり、センサ情報としてステレオＲＧＢ画像を取得する。距離画像センサ１１６は、画角内の各画素までの距離情報を含む距離画像をセンサ情報として取得する。本実施形態では、情報処理装置１００と距離画像センサ１１６とが一体に構成され、ステレオＲＧＢカメラ１１５とＨＭＤ１１９とが一体に構成される。情報処理装置１００とＨＭＤ１１９とは、通信可能に接続される。
【００１６】
ＨＭＤ１１９はユーザの頭部１０２に装着されて使用される。ＨＭＤ１１９がユーザに装着された状態では、ステレオＲＧＢカメラ１１５の視線とユーザの目線とが同じになる。そのためにステレオＲＧＢカメラ１１５が撮像するステレオＲＧＢ画像は、一人称視点の画像となる。距離画像センサ１１６は、ユーザの正面に対峙して固定されており、正面視点の距離画像を取得する。そのために情報処理装置１００は、一人称視点のセンサ情報（ステレオＲＧＢ画像）及び正面視点のセンサ情報（距離画像）に基づいて、ユーザの手１０１の位置及び姿勢を推定することになる。
【００１７】
情報処理装置１００は、ステレオＲＧＢカメラ１１５から取得するユーザ目線の一人称視点のステレオＲＧＢ画像に対してノイズ除去等の前処理を行い、前処理後のステレオＲＧＢ画像に仮想物体１０３をレンダリングする。ステレオＲＧＢカメラ１１５は、所定時間間隔で連続してステレオＲＧＢ画像を取得して情報処理装置１００に送信する。情報処理装置１００は、仮想物体１０３がレンダリングされたステレオＲＧＢ画像をＨＭＤ１１９のディスプレイに表示する。ＨＭＤ１１９を装着するユーザは、視界に仮想物体１０３が表示された画像を視認することになる。
【００１８】
ステレオＲＧＢカメラ１１５の画角には、基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５が固定して配置される。基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５は、ステレオＲＧＢカメラ１１５で撮像されたステレオＲＧＢ画像から、ステレオＲＧＢカメラ１１５及びユーザの位置姿勢を取得するために用いられる。基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５は、例えば所定の白黒パターンが印刷された板であり、ステレオＲＧＢ画像から容易に検出可能である。複数のＭＲマーカ（基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５）を用いることで、ロバスト性が高まる。なお、本実施形態では２種類のＭＲマーカを用いるが、ＭＲマーカは、１種類のみであってもあるいは３種類以上であってもよい。
【００１９】
情報処理装置１００の世界座標系は、基準ＭＲマーカ１０４の中心を原点とし、距離画像センサ１１６の撮像方向がｚ軸の正の方向となる右手座標系に予めキャリブレーションされている。距離画像センサ１１６により取得される距離画像の各ピクセルは、距離画像センサ１１６の位置に垂直に置かれた仮想的な平面から撮像対象物までの距離を表す値（以下、「距離値」と称する。）が含まれる。距離値が測定不能、あるいは距離値が無効である場合には、距離値が「０」となる。また、距離画像センサ１１６のカメラパラメータは予め測定されており、距離画像の各ピクセルを世界座標系における３次元点群に変換する変換行列も予めキャリブレーションされている。ステレオＲＧＢカメラ１１５のカメラパラメータと視差も予め測定されている。
【００２０】
本実施形態では５種類の座標系が用いられる。一つ目は基準ＭＲマーカ１０４の中心を原点とする上記の３次元の世界座標系であり、図１（ａ）に点線の矢印として描かれている。二つ目は２次元の距離画像座標系である。三つ目は３次元の距離画像センサ座標系であり、図１（ａ）に二重線の矢印として描かれている。四つ目はステレオＲＧＢ画像のそれぞれのＲＧＢ画像について定義される２次元のＨＭＤ画像座標系である。五つ目はＨＭＤ１１９の左目を原点とした３次元のＨＭＤ座標系であり、図１（ａ）のＨＭＤ１１９中に実線の矢印として描かれている。世界座標系、距離画像座標系、距離画像センサ座標系、及びＨＭＤ座標系は相互に変換可能である。ＨＭＤ画像座標系は、奥行き情報を持たないために、ＨＭＤ座標系からの変換のみが可能である。
【００２１】
このＭＲシステムでは、ステレオＲＧＢカメラ１１５及び距離画像センサ１１６の各画角が交差する範囲が３次元の操作空間となる。情報処理装置１００は、この３次元の操作空間内の手１０１に対して、位置及び姿勢を含む手指スケルトン推定が可能である。ユーザの頭部１０２の動きに応じてステレオＲＧＢカメラ１１５の位置及び姿勢が変化するため、３次元操作空間も毎フレーム変化する。
【００２２】
図１（ｂ）は、ＭＲシステムに含まれる情報処理装置１００のハードウェア構成を例示する。情報処理装置１００は、ＣＰＵ（Central Processing Unit）１１０、ＲＡＭ（Random Access Memory）１１１、及びＲＯＭ（Read Only Memory）１１２を備えるコンピュータである。ＣＰＵ１１０、ＲＡＭ１１１、及びＲＯＭ１１２はバス１１３を介して接続される。バス１１３には、さらに、入出力Ｉ／Ｆ（インタフェース）１１４及びディスプレイＩ／Ｆ１１８が接続される。情報処理装置１００は、ステレオＲＧＢカメラ１１５、距離画像センサ１１６、及びＨＭＤ１１９の他に、外部装置である記憶装置１１７が接続される。
【００２３】
ＲＯＭ１１２は、オペレーティングシステム（ＯＳ）、各種処理プログラム、デバイスドライバ等を記憶する。ＣＰＵ１１０は、ＲＯＭ１１２から各種プログラムを読み込み、ＲＡＭ１１１を作業領域に用いて実行することで、ＭＲシステム全体の動作の制御を行う。なお、ＲＯＭ１１２に記憶される各種のコンピュータプログラムは、外部に設けられる記憶装置１１７に記憶されていてもよい。
【００２４】
ディスプレイＩ／Ｆ１１８は、情報処理装置１００で生成した画像をＨＭＤ１１９で処理可能な信号に変換して、ＨＭＤ１１９に送信する。入出力Ｉ／Ｆ１１４は、距離画像センサ１１６から距離画像を取得するとともに、ステレオＲＧＢカメラ１１５からステレオＲＧＢ画像を取得して、情報処理装置１００が処理可能なデータに変換する。また入出力Ｉ／Ｆ１１４は、記憶装置１１７との間で相互にデータの送受信を行う。本実施形態では、情報処理装置１００でＨＭＤ１１９に表示させる仮想物体１０３等を表すデジタルデータが、記憶装置１１７に格納されているものとする。記憶装置１１７には、例えばディスクデバイスやフラッシュメモリ、ネットワークやＵＳＢなどの各種の大容量記憶装置を使用することができる。
【００２５】
図１（ｃ）は、情報処理装置１００の機能ブロック図である。情報処理装置１００は、推定用情報取得部１２０、検出用情報取得部１２１、ユーザ位置取得部１２２、検出部１２３、領域取得部１２４、推定部１２５、表示部１２６、及び保持部１２７として機能する。本実施形態では、各機能は、ＣＰＵ１１０がコンピュータプログラムを実行することで実現される。なお、このようなソフトウェアによる機能実現の他に、各機能を演算装置等のハードウェアにより実現してもよい。保持部１２７は、ＲＯＭ１１２あるいは記憶装置１１７により実現され、仮想物体１０３のポリゴン情報やモデルフィッティングに用いられる３次元形状モデル情報等を保持する。この他、手ぶり等の空間ジェスチャ動作を認識するジェスチャ認識部等、情報処理装置１００の使用目的やアプリケーションに応じた機能部を構成することができる。各機能による具体的な処理について、以下に説明する。
【００２６】
（手指スケルトン推定）
図２は、情報処理装置１００による手指スケルトン推定処理を表すフローチャートである。図３、図４は、手指スケルトン推定処理の説明図である。
【００２７】
検出用情報取得部１２１は、ステレオＲＧＢカメラ１１５により撮像されたステレオＲＧＢ画像を一定時間間隔で時系列に取得して、ノイズ除去等の前処理を行った上で、ＲＡＭ１１１に随時保持する（Ｓ１００）。時系列に取得された画像または処理には、番号あるいは取得時刻が付与される。番号あるいは取得時刻により、時系列で取得したステレオＲＧＢ画像のフレームが識別される。
【００２８】
ユーザ位置取得部１２２は、ＲＡＭ１１１に保持されたステレオＲＧＢ画像から基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５を検出する。ユーザ位置取得部１２２は、検出した基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５のステレオＲＧＢ画像中の形状に基づいて、世界座標系におけるＨＭＤ１１９の位置姿勢を取得する（Ｓ１０１）。基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５が１つも検出されない場合、情報処理装置１００は、ＨＭＤ１１９の位置姿勢を不定と判断し、以降の処理をスキップする。なお、情報処理装置１００は、ＭＲマーカを用いずに、光学センサを用いる等の他の方法でＨＭＤ１１９の位置姿勢を取得してもよい。
【００２９】
検出部１２３は、ＲＡＭ１１１に保持されたステレオＲＧＢ画像から、ステレオＲＧＢカメラ１１５の左カメラによるＲＧＢ画像の肌色領域３００（図３参照）と、右カメラによるＲＧＢ画像の肌色領域３０１（図３参照）とを検出する（Ｓ１０２）。検出部１２３は、取得した肌色領域３００、３０１をＲＡＭ１１１に保持する。肌色領域３００、３０１は、隣接する肌色ピクセルの集合であり、予め登録していた肌色の範囲内の色のピクセルを検出及びクラスタリングすることで検出される。ユーザの手や腕、他のユーザの顔や手や腕、背景等が肌色領域として検出される。肌色領域３００、３０１は左右カメラの画角内にそれぞれ複数存在する場合もあるし、一つも存在しない場合もある。肌色領域が一つも存在しない場合、情報処理装置１００は、以降の処理をスキップする。
【００３０】
検出部１２３は、ＲＡＭ１１１に保持した肌色領域３００、３０１から肌色領域ポリゴンを検出して、ＲＡＭ１１１に保持する（Ｓ１０３）。検出部１２３は、ステレオマッチングに基づいて肌色領域３００、３０１の各々についてエッジの上の点のＨＭＤ座標を算出し、それらを繋いだ三角形パッチの集合を肌色領域ポリゴンとして検出する。
【００３１】
検出部１２３は、肌色領域ポリゴンからユーザの手指や腕を含む腕領域ポリゴン３０２（図３参照）を検出する（Ｓ１０４）。ユーザの腕領域ポリゴン３０２は、ＨＭＤ１１９に近い位置に存在しており、ＨＭＤ画像座標系に大きく写る。そこで検出部１２３は、予め決められたＨＭＤ座標系の範囲内（本実施形態ではＨＭＤ１１９までの距離が１［ｍ］以内）に存在し且つ所定の閾値より面積が大きい肌色領域ポリゴンのうち、面積上位の２つまでを腕領域ポリゴン３０２として検出する。この処理は、一人称視点ではユーザの手や腕がＨＭＤ１１９の近くにあるため大きく写り、他の肌色物体（他のユーザの顔や手や腕、肌色の背景）がＨＭＤ１１９から遠くにあるため小さく写るというヒューリスティックに基づいている。腕領域ポリゴン３０２が一つも存在しない場合、情報処理装置１００は、以降の処理をスキップする。また、検出部１２３は、腕領域ポリゴン３０２に対応するステレオＲＧＢ画像中の肌色領域を、腕領域としてＲＡＭ１１１に保持しておく。
【００３２】
領域取得部１２４は、腕領域とＨＭＤ１１９の位置との関係に応じて、ＨＭＤ座標系の手領域３０４を取得する（Ｓ１０５）。手領域３０４とは、手首より手先方向にある手指を含む領域であり、腕は含まない。この処理の詳細は後述する。
【００３３】
推定用情報取得部１２０は、距離画像センサ１１６により撮像された距離画像３０５（図３参照）を一定時間間隔で時系列に取得し、ＲＡＭ１１１に随時保持する（Ｓ１０６）。距離画像の取得間隔は、Ｓ１００の処理で取得するステレオＲＧＢ画像の取得間隔に同期する。
【００３４】
領域取得部１２４は、Ｓ１０５の処理で取得したＨＭＤ座標系の手領域３０４を距離画像センサ座標系に変換することで、距離画像センサ座標系の手領域３０６（図３参照）を取得する（Ｓ１０７）。領域取得部１２４は、手領域３０６のみがマスクされた距離画像である手領域距離画像３０７（図３参照）を取得する（Ｓ１０８）。領域取得部１２４は、距離画像３０５の各ピクセルを距離画像センサ座標系に変換し、距離画像センサ座標系の手領域３０６の外部のピクセルの距離値を、本来の距離値の代わりに無効を表現する「０」で埋めることで手領域距離画像３０７を取得する。
【００３５】
推定部１２５は、距離画像センサ座標系の手領域３０６と手領域距離画像３０７との関係に応じて、モデルフィッティング処理を行う（Ｓ１０９）。モデルフィッティング処理は、以下のように行われる。まず推定部１２５は、Ｓ１０８の処理で取得した手領域距離画像３０７から、距離値０以外のピクセルをＮ個ランダムサンプリングする。「Ｎ」は予め決められた値であり、本実施形態ではＮ＝２５６である。ランダムサンプリングにより、モデルフィッティングの計算量を削減することができる。次に推定部１２５は、ランダムサンプリングしたＮ個のピクセルの位置を距離画像センサ座標系に変換して、手領域点群を取得する。そして推定部１２５は、手領域点群に対して、保持部１２７に保持されている予め決められた手の３次元形状モデルのモデルフィッティングを行う。本実施形態のようにユーザの指の隠れが少ない正面視点の距離画像に基づく処理により、精度良くモデルフィッティングを行うことができる。本実施形態では、推定部１２５は、図４に示す球の集合からなる手の３次元形状モデル４００を用いる。また、推定部１２５は、手領域点群と手の３次元形状モデル４００との誤差関数を最小化する最適化アルゴリズムとして、ＰＳＯ（Particle Swarm Optimization、粒子群最適化）を用いる。
【００３６】
図４に示す通り、手の３次元形状モデル４００は、Ｍ個の球の集合からなる。各球は、中心位置、半径、一意なＩＤ、属するパーツ等の情報を持つ。本実施形態の手の３次元形状モデル４００は、Ｍ＝４８個の球の集合であるが、球の数を増減してもよい。球によっては互いに接触、あるいはめり込むことがある。手の３次元形状モデル４００は、各指の第１関節及び第２関節に相当する位置に１次元（掌に対して垂直方向に回転する）の関節を持つ。また、手の３次元形状モデル４００は、各指の根元に相当する位置に２次元（掌に対して水平方向と垂直方向にそれぞれ回転する）の関節を持つ。さらに手の３次元形状モデル４００は、手首に相当する位置に６次元（世界座標におけるｘｙｚ位置及びオイラー角）の関節を持つ。そのために手の３次元形状モデル４００全体の次元は、合計で２６である。
【００３７】
手の３次元形状モデル４００は、掌、指の根元と第２関節の間、第２関節と第１関節の間、指先の順に、手首から手先の方向に順序付けされたパーツ（球の集合）からなる。手の３次元形状モデル４００の関節は、手首位置、指の根元関節、第２関節、第１関節の順に手首から手先の方向に順序付けされている。各関節のパラメータ（位置または角度）に従って各関節を移動・回転することで、各関節より手先に順序づけられているパーツが全て移動する。例えば、手首位置が移動・回転すると全てのパーツが移動・回転し、指の根元関節が回転すると指の根元と第２関節の間、第２関節と第１関節の間、及び指先が回転する。全ての関節にパラメータを与えることで手の形状が一意に決まる。このように手の３次元形状モデル４００は、剛体である各パーツを移動・回転可能な関節で繋ぎ合わせたモデルである。各関節が取り得るパラメータの範囲は、実際の人間の手が取り得る範囲に制限される。以後、全ての関節のパラメータをパラメータベクトルと呼ぶ。上記の通り、パラメータベクトルの次元は２６である。なお、手の３次元形状モデル４００は５指と掌をモデル化しているが、手首、下腕、上腕を含むようなモデルであってもよい。
【００３８】
（式１）は、本実施形態における誤差関数である。誤差関数は、点群とモデルとの誤差を表し、小さいほどよい。誤差関数は、手領域点群の各点について、３次元形状モデル４００の表面とのユークリッド距離を求め、和をとるものである。
【００３９】
【数１】
2018119833.tif 000003
【００４０】
ｄｎは、手領域点群のある点である。（式２）に示すｆ（ｄ）は、ｄから３次元形状モデル４００の表面までの最短ユークリッド距離を全探索して求める関数である。ｓｉｃｅｎｔｅｒは、手の３次元形状モデル４００を構成する球ｓｉの中心の３次元座標である。ｓｉｃｅｎｔｅｒは、手の３次元形状モデル４００を構成する球ｓｉの半径である。なお、モデルのめりこみや、人間の手が取り得えない姿勢に対してペナルティを与える項等と（式１）の和をとって誤差関数としてもよく、別の誤差関数を用いてもよい。
【００４１】
静止剛体へのオフラインモデルフィッティングでは、ＩＣＰ（Iterated Closest Point）がよく用いられる。しかし、本実施形態では、最適化アルゴリズムとしてＰＳＯが用いられる。ＰＳＯは、ＩＣＰよりも、関節を持ち且つ時間的に形状が変化する手のモデルフィッティングに速度、精度、ロバスト性の面で適していることが知られている。ＰＳＯは、パラメータベクトルを、速度を持つ粒子として扱い、多数の粒子同士の相互作用を模した更新を繰り返し行うことで最適化を行う。更新数を世代あるいは世代数とも呼ぶ。各粒子の更新式は以下の（式３）、（式４）の通りである。
【００４２】
ｖｋ＋１＝ｗ（ｖｋ＋ｃ１ｒ１（Ｐｋ−ｘｋ）＋ｃ１ｒ１（Ｇｋ−ｘｋ））  …（式３）
ｘｋ＋１＝ｘｋ＋ｖｋ＋１  …（式４）
ｘｋは世代ｋのパラメータベクトルを表す。ｖｋは対応する速度を表す。ｗ、ｃ１、ｃ２は所定の定数である。ｒ１、ｒ２は［０…１］の一様分布からサンプリングされる乱数である。Ｐｋは粒子が世代ｋまでで経験した中で最も誤差関数の値が良好なパラメータベクトルである。Ｇｋは全ての粒子の中で世代ｋまでで最も誤差関数の値が良好なパラメータベクトルである。
【００４３】
世代数０の初期値は、直前のフレーム（以後、「前フレーム」と呼ぶ）のモデルフィッティングの結果得られたパラメータベクトルの各次元にガウスノイズを付与して生成される。先行するフレームにモデルフィッティングが行われていない初期フレームの場合、ユーザが手の各指を開いた所謂パーの姿勢で３次元操作空間に手を挿入することが多いというヒューリティックに基づいて、初期値が生成される。具体的には、手の３次元形状モデル４００の重心と手領域の重心との世界座標が一致する位置、及び各指を開いた所謂パーの姿勢をとるパラメータベクトルの各次元にガウスノイズを付与することで、初期値が生成される。なお、他のヒューリスティックや機械学習を用いて生成したパラメータベクトルを初期値としてもよい。
【００４４】
本実施形態における粒子数は「１２８」であり、世代２０を更新の終了条件とする。終了条件を満たすまでに得られたパラメータベクトルの中で誤差関数（式１）の値を最小にするものが、モデルフィッティング結果として出力される。モデルフィッティング結果として、手領域点群にフィットした手の３次元形状モデル４００の位置及び姿勢に対応するパラメータベクトルが得られる。
【００４５】
推定部１２５は、操作領域に挿入される手の左右が予め決められている場合、対応する手の３次元形状モデルに対してモデルフィッティングを行えばよい。操作領域に挿入される手の左右が不明である場合、推定部１２５は、左右の手の各３次元形状モデルに対してそれぞれモデルフィッティングを行い、最終的に最も誤差関数（式１）の値が小さいパラメータベクトル及び手の３次元形状モデルを選択すればよい。また、操作領域に挿入される手の左右が不明である場合、推定部１２５は、各関節が取り得るパラメータの範囲を緩めた左右両方に対応可能な手の３次元形状モデルに対してモデルフィッティングを行ってもよい。
【００４６】
なお、手の３次元形状モデルは、球の数、球の位置、関節の定義等を変えてもよく、また指を球と円柱で掌を楕円体で近似したモデル４０１やスキンメッシュモデル４０２を用いてもよい。また、手の３次元形状モデルにあわせて異なる誤差関数を用いてもよい。また、ＰＳＯの更新式やパラメータは本実施例と同一である必要はなく、ＰＳＯ以外のアルゴリズムを最適化アルゴリズムとして用いてもよい。
【００４７】
表示部１２６は、推定部１２５によるモデルフィッティングの結果得られる変形した手の３次元形状モデルに応じて仮想物体１０３の状態を変化させ、該仮想物体１０３とステレオＲＧＢ画像とをＨＭＤ１１９に表示させる（Ｓ１１０）。この際、表示部１２６は、変形した手の３次元形状モデルの表面のポリゴンと仮想物体１０３との接触判定を行う。表示部１２６は、接触判定結果に基づいて仮想物体１０３の状態を変化させる。
【００４８】
なお、本実施形態では接触判定に用いる３次元形状モデルの表面のポリゴンをＨＭＤ１１９に表示しないが、表示してもよい。また、接触判定や表示に用いられる手の３次元形状モデルは、モデルフィッティングに用いられる手の３次元形状モデル４００と異なっていてもよい。例えば、モデルフィッティングの結果得られたパラメータベクトルに基づいて、指を球と円柱で掌を楕円体で近似したモデル４０１や、スキンメッシュモデル４０２を変形させ、表面のポリゴンを仮想物体１０３との接触判定に用いたり、表示したりしてもよい。モデルフィッティングに使われる手の３次元形状モデルよりも精緻な手の３次元形状モデルを接触判定や表示に用いることで、リアルタイム性を維持しつつ、違和感が少ない接触判定や表示が可能になる。
【００４９】
図２（ｂ）は、領域取得部１２４によるＳ１０５のＨＭＤ座標系の手領域３０４を取得する処理を表すフローチャートである。
【００５０】
領域取得部１２４は、ＨＭＤ座標系である腕領域ポリゴン３０２をＨＭＤ画像座標系に投影する（Ｓ２００）。本実施形態では右カメラのＨＭＤ画像座標系に投影するが、左カメラのＨＭＤ画像座標系に投影してもよい。これにより、腕領域ポリゴン３０２のマスク画像と、腕領域ポリゴン３０２の点のＨＭＤ画像座標とが得られる。
【００５１】
領域取得部１２４は、ＨＭＤ画像座標系の掌基準点３０３（図３参照）を取得する（Ｓ２０１）。領域取得部１２４は、まず、腕領域ポリゴン３０２のマスク画像に対し距離変換（distance transform）を行い、各ピクセルについてマスク画像の輪郭までの最少距離を求める。次いで領域取得部１２４は、マスク画像の各ピクセルについて画像端までの最小距離を求める。領域取得部１２４は、輪郭までの最少距離と画像端までの最小距離との積が最大になるピクセルを、掌基準点３０３として取得する。この処理は、掌基準点３０３は幅があり且つ画像端から遠いというヒューリスティックに基づいて行われる。
【００５２】
領域取得部１２４は、ＨＭＤ座標系の掌基準点３０３を取得する（Ｓ２０２）。Ｓ２０１の処理で取得したＨＭＤ画像座標系の掌基準点３０３は奥行き値を持たないために、ＨＭＤ座標系に変換することができない。そこで領域取得部１２４は、まずＨＭＤ画像座標系において、Ｓ２０１の処理で取得した掌基準点３０３とＳ２００の処理で取得した腕領域ポリゴンの各点について距離計算を行う。領域取得部１２４は、距離が小さい順に掌基準点取得用の腕領域ポリゴンの点を、予め決められた数（本実施形態では「２０」）だけ取得する。領域取得部１２４は、掌基準点取得用の腕領域ポリゴンの点のＨＭＤ座標系の重心を、ＨＭＤ座標系の掌基準点３０３として取得する。
【００５３】
領域取得部１２４は、ＨＭＤ座標系の掌基準点３０３に基づいて、手領域のトラッキングを行う（Ｓ２０３）。領域取得部１２４は、前フレームの掌基準点と現フレームの掌基準点との距離を取得し、近いもの同士を対応づけて同一のＩＤを割り当てる。前フレームに手領域が存在しない、あるいは前フレームの掌基準点との最小距離が予め決められた閾値（本実施形態では１００［ｍｍ］）より大きい場合、領域取得部１２４は、初めて出現した手であるとみなして、新しいＩＤを割り当てる。トラッキングの結果は、Ｓ１０９の処理におけるモデルフィッティングの初期値生成や、Ｓ１１０の処理における表示制御等に用いられる。
【００５４】
領域取得部１２４は、ＨＭＤ座標系における掌基準点付近の腕領域ポリゴンが内包される直方体の領域を取得する（Ｓ２０４）。領域取得部１２４は、掌基準点を中心として、予め決められた範囲内の腕領域ポリゴンの点について、ｘｙｚの最大値と最小値とを算出し、直方体として取得する。予め決められた範囲は、本実施形態では、ｘ：［−１００ｍｍ〜＋１００ｍｍ］、ｙ：［−９０ｍｍ〜＋１３０ｍｍ］、ｚ：［−１００ｍｍ〜＋２０ｍｍ］である。
【００５５】
本実施形態の情報処理装置１００は、ユーザの手や腕が大きく写り且つ他の肌色物体が写りにくい一人称視点のステレオＲＧＢ画像に基づいて手領域を取得する。そして情報処理装置１００は、取得した手領域を正面視点の距離画像座標系に変換した上で、指先の隠れが少ない正面視点の距離画像に基づいてモデルフィッティングを行っている。以上のように手や腕のような対象物の検出に用いるセンサと、推定に用いるセンサとを別の位置に配置することで、高精度の手指スケルトン推定を行うことが可能となる。
【００５６】
本実施形態では、情報処理装置１００は、モデルフィッティングにより手指スケルトン推定を行っているが、別の方法、例えばＣＮＮ（畳みこみニューラルネットワーク）によって手指スケルトン推定を行ってもよい。また、本実施形態では距離画像センサ１１６を正面視点に配置しているが、距離画像センサ１１６は、一人称視点で隠れやすい指先を撮像できる位置であればどこに配置してもよい。例えば、ユーザの側面、ユーザの上方、ユーザの下方等に距離画像センサ１１６を配置することができる。さらに、本実施形態では一人称視点としてステレオＲＧＢカメラ１１５をユーザの頭部１０２に装着しているが、ステレオＲＧＢカメラ１１５は、一人称視点であればどこに配置されてもよい。例えば、ステレオＲＧＢカメラ１１５は、ユーザの正面側の腹部や胸部に配置されてもよい。
【００５７】
（手指スケルトン推定処理の変形例）
以上の説明では、掌基準点付近の手領域ポリゴンの最大値及び最小値からＨＭＤ座標系の手領域を取得する。しかしながら、ユーザの手の形状によっては上記の方法で取得したＨＭＤ座標系の手領域を距離画像センサ座標系に変換する際に、ユーザの手の一部が手領域に含まれず、手指スケルトン推定の精度が低下することがある。例えば、ユーザが手をＨＭＤ１１９の画角に挿入するときに手先を距離画像センサ１１６に向けることがある。この場合、ＨＭＤ１１９から指先が隠れてしまい、Ｓ２０４の処理で取得した直方体の領域をＳ１０７の処理で距離画像センサ座標系に変換すると、指先が手領域の外に位置することになる。そのためにＳ１０８の処理で指先が欠けた手領域距離画像が取得され、Ｓ１０９の処理では指先が欠けた点群に対してモデルフィッティングが行われることになる。その結果、手指スケルトン推定の指先の精度が低下する。そこで、ＨＭＤ１１９の画角から指先が隠れている場合においても手指スケルトン推定の精度を向上させるために、以下のような処理を行う。
【００５８】
この場合、領域取得部１２４は、ＨＭＤ座標系の手領域取得処理を以下のように行う。図５は、手指スケルトン推定処理の説明図である。図６は、Ｓ１０５の領域取得部１２４によるＨＭＤ座標系の手領域３０４を取得する処理を表すフローチャートである。情報処理装置１００は、図２（ａ）のフローチャートによって手指スケルトン推定処理を実行し、Ｓ１０５の処理を図６のフローチャートによって実行する。
【００５９】
図６のフローチャートは、図２（ｂ）のフローチャートの最後にＳ３００の処理を追加したものである。Ｓ２００〜Ｓ２０４の処理は図２（ｂ）と同一であるが、図５に示すように、領域取得部１２４は、左カメラの肌色領域５００と右カメラの肌色領域５０１に対応して、腕領域ポリゴン５０２及びＨＭＤ画像座標系の掌基準点５０３を取得する。
【００６０】
領域取得部１２４は、Ｓ２０４の処理で取得した直方体を、ＨＭＤ座標系の−ｚ方向（ステレオＲＧＢカメラ１１５から手１０１に向く方向）に予め決められた長さ（本実施形態では１００［ｍｍ］）だけ拡張し、ＨＭＤ座標系の手領域５０４として取得する。拡張する量は、手１０１の形状に基づいて決められる。図５では、ＨＭＤ座標系の手領域５０４において、Ｓ２０４の処理で取得した直方体を点線で、Ｓ３００の処理で拡張した領域を二重線で示している。このようにＨＭＤ視点で死角となりうる手先方向について余裕を持たせることにより、領域取得部１２４は、指先がすべて内包されたＨＭＤ座標系の手領域５０４を取得することができる。ただし、ＨＭＤ視点で死角となりうる手先方向について余裕を持たせる方法としては別の方法を用いてもよい。例えば、ｚ方向についてはＳ２０４の処理で最小値を算出せず、予め決められた余裕を持たせた範囲を手領域としてもよい。
【００６１】
Ｓ３００の処理で取得したＨＭＤ座標系の手領域５０４をＳ１０７の処理で距離画像センサ座標系に変換しても、指先が手領域５０６に内包される。そのために情報処理装置１００は、Ｓ１０８の処理により精度良く手領域距離画像５０７を取得することができ、Ｓ１０９の処理によるモデルフィッティング処理も精度良く行うことができる。以上のように、一人称視点で死角となりうる手先方向について手領域の余裕を持たせることで、一人称視点で指先が隠れている場合においても精度良くスケルトン推定が可能となる。
【００６２】
＜第２実施形態＞
第２実施形態では、ＨＭＤ画像座標系の手の位置に基づいて手の種類判定（左右判定）を行い、対応する左右いずれかの手の３次元形状モデルのみを用いてモデルフィッティングを行う。手の左右判定を行うことで、操作領域に挿入される手の左右が不明である場合に計算量が増加することを防止して、リアルタイム性が維持される。
【００６３】
点群と手の３次元形状モデルの距離計算を繰り返し行う必要があるモデルフィッティングは、手指スケルトン推定の計算量がボトルネックとなる。操作領域に挿入される手の左右が予め決められており、決められた手の３次元形状モデルに対してモデルフィッティングを行う場合と比べ、左右両方の手の３次元形状モデルに対してそれぞれモデルフィッティングを行う場合の計算量は２倍になる。また、各関節が取り得るパラメータの範囲を緩めた左右両方に対応可能な手の３次元形状モデルに対してモデルフィッティングを行っても計算量の増加は抑えられない。探索するパラメータ空間が広いため、予め決められた手の３次元形状モデルに対してモデルフィッティングを行う場合と同等の精度を維持するためには、多くの計算量が必要となるためである。
【００６４】
そこで第２実施形態では、操作領域に挿入される手の左右が不明であっても、手指スケルトン推定のリアルタイム性を維持することを目的とする。第２実施形態における、システムの外観及び情報処理装置１００のハードウェア構成は、第１実施形態と同様である。情報処理装置１００の機能構成は、領域取得部１２４及び推定部１２５を除いて第１実施形態と同様であるため、異なる点のみを説明する。第２実施形態の領域取得部１２４は第１実施形態の機能に加えて手領域左右判定を行い、推定部１２５は手領域左右判定の結果に基づいてモデルフィッティング処理を行う。詳細は後述する。
【００６５】
図７は、情報処理装置１００による手指スケルトン推定処理を表すフローチャートである。情報処理装置１００は、図７（ａ）のフローチャートによって手指スケルトン推定処理を実行する。図７（ａ）のフローチャートは、図２（ａ）のフローチャートのＳ１０５の処理とＳ１０６の処理との間にＳ４００の処理が行われ且つＳ１０９の処理がＳ４０１の処理に置き換えられている。図７（ｂ）のフローチャートは、領域取得部１２４による手領域左右判定の処理であるＳ４００の処理を表す。図２と同じ処理については説明を省略する。
【００６６】
推定部１２５は、Ｓ４００の手領域左右判定処理の結果に基づいてモデルフィッティング処理を行う（Ｓ４０１）。このモデルフィッティング処理はＳ１０９の処理と略同一であるが、手領域が右と判定された場合には右手の３次元形状モデル、手領域が左と判定された場合には左の３次元形状モデルを用いてモデルフィッティングを行う。片手の３次元形状モデルのみを用いることで、計算量が大幅に削減されてリアルタイム性が維持される。
【００６７】
図７（ｂ）により、手領域左右判定処理を詳細に説明する。
【００６８】
領域取得部１２４は、Ｓ２０３の処理による手領域のトラッキング結果に基づいて、手領域が現フレームで初めて現れたかどうかの判定を行う（Ｓ５００）。手領域が現フレームで初めて現れたものではない場合（Ｓ５００：N）、領域取得部１２４は、前フレームの手領域左右判定と同じ判定を行い（Ｓ５０１）、手領域左右判定処理を終了する。
【００６９】
手領域が現フレームで初めて現れたものである場合（Ｓ５００：Y）、領域取得部１２４は、手領域に対応する、Ｓ１０４の処理で取得された腕領域のＨＭＤ画像座標系におけるバウンディングボックスを取得する（Ｓ５０２）。本実施形態では、領域取得部１２４は、ステレオＲＧＢカメラ１１５の右カメラのＲＧＢ画像におけるバウンディングボックスを取得するが、左カメラのＲＧＢ画像を用いてバウンディングボックスを取得してもよい。
【００７０】
領域取得部１２４は、ステレオＲＧＢカメラ１１５の右カメラのＲＧＢ画像の左右端と、バウンディングボックスとの最小距離を取得する（Ｓ５０３）。領域取得部１２４は、ＲＧＢ画像の左端とバウンディングボックスとの距離と、ＲＧＢ画像の右端とバウンディングボックスとの距離と、を比較する（Ｓ５０４）。ＲＧＢ画像の右端とバウンディングボックスとの距離の方が小さい場合（Ｓ５０４：Y）、領域取得部１２４は、手領域を右手であると判定して（Ｓ５０５）、手領域左右判定処理を終了する。ＲＧＢ画像の左端とバウンディングボックスとの距離の方が小さい場合（Ｓ５０４：N）、領域取得部１２４は、手領域を左手であると判定して（Ｓ５０６）、手領域左右判定処理を終了する。
【００７１】
図８は、手領域左右判定処理の説明図である。図８では、ＲＧＢ画像の左端とバウンディングボックス８００との距離８０１と、ＲＧＢ画像の右端とバウンディングボックス８００との距離８０２と、では、ＲＧＢ画像の右端とバウンディングボックス８００との距離８０２のほうが小さい。そのために図８の例では、領域取得部１２４は、手領域が右手であると判定する。
【００７２】
なお、本実施形態ではステレオＲＧＢカメラ１１５の画角内に右手は右から、左手は左から入ってくるというヒューリスティックを用いているが、別のヒューリスティックや機械学習を用いてもよい。本実施形態では、一人称視点の情報を用いて手の左右を容易に判定し、判定結果を活用することで正面視点の情報に基づくモデルフィッティングの計算量を削減する。そして、操作領域に挿入される手の左右が不明である場合においても手指スケルトン推定のリアルタイム性を維持することができる。
【００７３】
＜第３実施形態＞
図９は、本実施形態の情報処理装置を用いた人体スケルトン推定システムの説明図である。図９（ａ）は、人体スケルトン推定システムの外観の一例を示す。人体スケルトン推定システムは、情報処理装置９００、検出用距離画像センサ９１５、及び推定用距離画像センサ９１６、９１７を備える。情報処理装置９００は、検出用距離画像センサ９１５、及び推定用距離画像センサ９１６、９１７により取得されるセンサ情報に基づいてユーザ９０１の位置及び姿勢を推定する。情報処理装置９００は、検出用距離画像センサ９１５及び推定用距離画像センサ９１６、９１７と通信可能に接続される。
【００７４】
情報処理装置９００の世界座標系は、固定した基準マーカ９０２の中心を原点とした右手座標系に予めキャリブレーションされている。検出用距離画像センサ９１５及び推定用距離画像センサ９１６、９１７の世界座標系における位置姿勢、またこれらの距離画像センサから取得された距離画像の各ピクセルを、世界座標系における３次元点群に変換する変換行列も予めキャリブレーションされている。
【００７５】
本実施形態では３種類の座標系が用いられる。一つ目は基準マーカ９０２の中心を原点とする３次元の世界座標系であり、図９（ａ）の点線の矢印として描かれている。二つ目は２次元の距離画像座標系である。三つ目は３次元の距離画像センサ座標系であり、図９（ａ）に二重線の矢印として描かれている。距離画像座標系及び距離画像センサ座標系は、検出用距離画像センサ９１５及び推定用距離画像センサ９１６、９１７についてそれぞれ独立に定義される。世界座標系、距離画像座標系、及び距離画像センサ座標系は、相互に変換可能である。
【００７６】
情報処理装置９００は、検出用距離画像センサ９１５と推定用距離画像センサ９１６、９１７との画角が交差する範囲を３次元の操作空間として、この操作空間内のユーザの姿勢を推定する。図９（ｂ）は、情報処理装置９００のハードウェア構成を例示する。情報処理装置９００は、ＣＰＵ９１０、ＲＡＭ９１１、及びＲＯＭ９１２を備えるコンピュータである。ＣＰＵ９１０、ＲＡＭ９１１、及びＲＯＭ９１２はバス９１３を介して接続される。バス９１３には、さらに、入出力Ｉ／Ｆ９１４が接続される。情報処理装置９００は、検出用距離画像センサ９１５及び推定用距離画像センサ９１６、９１７の他に、外部装置である記憶装置９１８が接続される。
【００７７】
ＲＯＭ９１２は、オペレーティングシステム、各種処理プログラム、デバイスドライバ等を記憶する。ＣＰＵ９１０は、ＲＯＭ９１２から各種のコンピュータプログラムを読み込み、ＲＡＭ９１１を作業領域に用いて実行することで、システム全体の動作の制御を行う。なお、ＲＯＭ９１２に記憶される各種のコンピュータプログラムは、外部に設けられる記憶装置９１８に記憶されていてもよい。入出力Ｉ／Ｆ９１４は、検出用距離画像センサ９１５及び推定用距離画像センサ９１６、９１７から距離画像を取得し、情報処理装置９００が処理可能な信号に変換する。また入出力Ｉ／Ｆ９１４は、記憶装置９１８と情報処理装置９００と間で相互にデータの送受信を行う。本実施形態では、人体スケルトン推定システムに用いるデジタルデータが、記憶装置９１８に格納されているものとする。記憶装置９１８には、例えばディスクデバイスやフラッシュメモリ、ネットワークやＵＳＢなどの各種の大容量記憶装置を使用することができる。
【００７８】
図９（ｃ）は、情報処理装置９００の機能ブロック図である。情報処理装置９００は、推定用情報取得部９２０、検出用情報取得部９２１、検出部９２２、領域取得部９２３、推定部９２４、及び保持部９２５として機能する。本実施形態では、各機能は、ＣＰＵ９１０がコンピュータプログラムを実行することで実現される。なお、このようなソフトウェアによる機能実現の他に、各機能を演算装置等のハードウェアにより実現してもよい。保持部９２５は、ＲＯＭ９１２あるいは記憶装置９１８により実現され、モデルフィッティングに用いられる３次元形状モデル情報等を保持する。この他、空間ジェスチャ動作を認識するジェスチャ認識部等、情報処理装置９００の使用目的やアプリケーションに応じた機能部を構成することができる。各機能による具体的な処理について、以下に説明する。
【００７９】
（人体スケルトン推定処理）
図１０は、情報処理装置９００による人体スケルトン推定処理を表すフローチャートである。図１１は、人体スケルトン推定処理の説明図である。
【００８０】
検出用情報取得部９２１は、検出用距離画像センサ９１５により撮像された検出用距離画像１１００を一定時間間隔で時系列に取得して、ノイズ除去等の前処理を行った上でＲＡＭ９１１に随時保持する（Ｓ６００）。
【００８１】
検出部９２２は、ＲＡＭ９１１に保持された検出用距離画像１１００から検出用距離画像座標系の人体領域を取得する（Ｓ６０１）。検出部９２２は、例えば予め取得された背景画像との背景差分と動体検知とに基づいて人体領域を取得するが、別の方法を用いてもよい。また、本実施形態では人体領域として直方体を取得するが、別の形状であってもよい。領域取得部９２３は、検出用距離画像座標系の人体領域と検出用距離画像センサ９１５の位置との関係に応じて、世界座標系の人体領域を取得する（Ｓ６０２）。この処理の詳細は後述する。
【００８２】
推定用情報取得部９２０は、推定用距離画像センサ９１６、９１７のそれぞれから推定用距離画像１１０１、１１０２を一定時間間隔で時系列に取得して、ノイズ除去等の前処理を行った上でＲＡＭ９１１に随時保持する（Ｓ６０３）。推定用距離画像１１０１、１１０２の取得間隔は、Ｓ６００の処理で取得する検出用距離画像１１００の取得間隔に同期する。領域取得部９２３は、Ｓ６０２の処理で取得した世界座標系の人体領域を、推定用距離画像センサ９１６、９１７の距離画像センサ座標系に変換することで、推定用距離画像センサ座標系の人体領域を取得する（Ｓ６０４）。
【００８３】
推定部９２４は、推定用距離画像センサ座標系の人体領域に存在する推定用距離画像の各ピクセルを、世界座標系に変換することで、人体点群を取得する（Ｓ６０５）。推定部９２４は、検出用距離画像センサ座標系の人体領域に存在する検出用距離画像の各ピクセルを、世界座標系に変換して人体点群に追加してもよい。人体点群は、推定用距離画像センサ９１６の推定用距離画像１１０１における人体領域１１０４や推定用距離画像センサ９１７の推定用距離画像１１０２における人体領域１１０５のように、検出用距離画像１１００で死角になる部分を含む。
【００８４】
推定部９２４は、人体領域と人体点群との関係に応じて、モデルフィッティング処理を行う（Ｓ６０６）。モデルフィッティング処理は、以下のように行われる。まず推定部９２４は、Ｓ６０５の処理で取得した人体点群から、Ｎ個ランダムサンプリングして、サンプリング人体点群として取得する。「Ｎ」は予め決められた値であり、本実施形態ではＮ＝２５６である。ランダムサンプリングにより、モデルフィッティングの計算量を削減することができる。次に推定部９２４は、サンプリング人体点群に対して、保持部９２５に保持されている予め決められた人体の３次元形状モデルのモデルフィッティングを行う。本実施形態では、第１実施形態と同様に、図１１に示す球の集合からなる人体の３次元形状モデル１１０６を用いてモデルフィッティングを行う。推定部９２４は、サンプリング人体点群と人体の３次元形状モデル１１０６との誤差関数を最小化する最適化アルゴリズムとしてＰＳＯを用いる。
【００８５】
人体の３次元形状モデル１１０６は、第１実施形態と同様に、Ｍ個の球の集合からなり、各球は中心位置、半径、一意なＩＤ、属するパーツ等の情報を持つ。本実施形態の人体の３次元形状モデル１１０６は、Ｍ＝３０個の球の集合であるが、球の数を増減してもよい。球によっては互いに接触、あるいはめり込むことがある。人体の３次元形状モデル１１０６は、肘と膝に相当する位置に１次元の関節を持つ。また、人体の３次元形状モデル１１０６は、頭、腕、足の根元、及び腰に相当する位置に２次元の関節を持つ。さらに人体の３次元形状モデル１１０６は、臀部に相当する位置に６次元（世界座標におけるｘｙｚ位置及びオイラー角）の関節を持つ。そのために人体の３次元形状モデル１１０６全体の次元は、合計で２２である。
【００８６】
人体の３次元形状モデル１１０６は、臀部から先端の方向に順序付けされたパーツ（球の集合）からなり、同様に関節も臀部から先端の方向に順序付けされている。各関節のパラメータ（位置または角度）に従って各関節を移動・回転することで、各関節より先端に順序づけられているパーツが全て移動する。全ての関節にパラメータを与えることで人体の形状が一意に決まる。各関節が取り得るパラメータの範囲は、実際の人体が取り得る範囲に制限される。以後、全ての関節のパラメータをパラメータベクトルと呼ぶ。パラメータベクトルの次元は２２である。
【００８７】
本実施形態における誤差関数及び最適化アルゴリズムとそれらのパラメータは、初期フレームの扱いを除いて第１実施形態と同じであるため、重複する部分に関しては説明を省略する。初期フレームである場合、ユーザは直立した姿勢で３次元操作空間に侵入することが多いというヒューリティックに基づいて初期値が生成される。具体的には、初期値は、人体の３次元形状モデル１１０６の重心と世界座標における人体領域の重心とが一致する位置及び直立姿勢をとるパラメータベクトルの各次元に、ガウスノイズを付与して生成される。なお、別のヒューリスティックや機械学習を用いて初期値が生成されてもよい。
【００８８】
図１０（ｂ）は、領域取得部１２４によるＳ６０２の世界座標系の人体領域を取得する処理を表すフローチャートである。
【００８９】
領域取得部９２３は、検出用距離画像座標系の人体領域を検出用距離画像センサ座標系に変換することで、検出用距離画像センサ座標系の人体領域を取得する（Ｓ７００）。領域取得部９２３は、検出用距離画像センサ座標系の人体領域を、検出用距離画像センサ座標系の＋ｚ方向に予め決められた長さだけ拡張して、検出用距離画像センサ座標系の拡張人体領域１１０３として取得する（Ｓ７０１）。本実施形態では、人体領域が１０００［ｍｍ］だけ拡張される。図１１は、検出用距離画像１１００の拡張人体領域１１０３において、Ｓ７００の処理で取得した人体領域を点線で、Ｓ７０１の処理で拡張した領域を二重線で描いている。このように検出用距離画像センサ９１５の視点で死角となりうる奥行き方向について余裕を持たせることで、領域取得部９２３は、ユーザ９０１（人体）が正しく内包された検出用距離画像センサ座標系の拡張人体領域１１０３を取得することができる。領域取得部９２３は、拡張人体領域１１０３を、世界座標系に変換することで世界座標系の人体領域を取得し（Ｓ７０２）、世界座標系の人体領域取得処理を終了する。
【００９０】
本実施形態の人体スケルトン推定システムは、検出用距離画像センサ９１５と推定用距離画像センサ９１６、９１７とを異なる位置に配置し、さらに世界座標系における人体領域を正しく取得することで、精度良く人体スケルトン推定を行うことができる。なお、本実施形態では推定用距離画像センサ９１６と推定用距離画像センサ９１７とが向かい合わせで配置されているが、これに限らず、検出用距離画像センサ９１５の死角をカバーする位置であればどこに配置されてもよい。また、本実施形態では２台の推定用距離画像センサ９１６、９１７を用いているが、１台以上であれば何台でもよく、またステレオＲＧＢカメラ等の距離計測可能な別の種類のセンサであってもよい。さらに、本実施形態は、検出用距離画像センサ９１５に代えてＲＧＢカメラ等の別の種類のセンサを用いてもよい。
【００９１】
＜第４実施形態＞
図１２は、本実施形態の情報処理装置を用いたＭＲシステムの説明図である。図１２（ａ）は、ＭＲシステムの外観の一例を示す。ＭＲシステムは、情報処理装置１２００、一人称視点のＲＧＢカメラ１２１５、正面視点のＲＧＢカメラ１２１６、ＨＭＤ１２１９、及び光学センサ１２３０を備える。情報処理装置１２００は、ＲＧＢカメラ１２１５、１２１６により取得されるセンサ情報（ＲＧＢ画像）に基づいてユーザの手１０１の位置及び姿勢を推定する。ＲＧＢカメラ１２１５、１２１６は、可視光画像を撮像する可視光画像の撮像装置であり、センサ情報としてＲＧＢ画像を取得する。本実施形態では、情報処理装置１２００とＲＧＢカメラ１２１６とが一体に構成され、ＲＧＢカメラ１２１５とＨＭＤ２１１９とが一体に構成される。情報処理装置１２００は、ＨＭＤ１２１９及び光学センサ１２３０と通信可能に接続される。
【００９２】
ＨＭＤ１２１９はユーザの頭部１０２に装着されて使用される。ＨＭＤ１２１９がユーザに装着された状態では、ＲＧＢカメラ１２１５の視線とユーザの目線とが同じになる。そのためにＲＧＢカメラ１２１５が撮像するＲＧＢ画像は、一人称視点の画像となる。情報処理装置１２００の世界座標系における正面視点のＲＧＢカメラ１２１６の位置姿勢は、予めキャリブレーションされている。光学センサ１２３０は、ＨＭＤ１２１９に設けられる光学マーカ１２３１を検出して、検出結果を情報処理装置１２００に入力する。
【００９３】
情報処理装置１２００は、一人称視点のＲＧＢカメラ１２１５と正面視点のＲＧＢカメラ１２１６との画角が交差する範囲を３次元の操作空間として、この操作空間内の手１０１に対してのみ手指スケルトン推定が可能である。ユーザの頭部１０２の動きに合わせて一人称視点のＲＧＢカメラ１２１５の位置姿勢が変化するため、３次元操作空間は毎フレーム変化する。
【００９４】
図１２（ｂ）は、ＭＲシステムに含まれる情報処理装置１２００のハードウェア構成を例示する。情報処理装置１２００は、ＣＰＵ１２１０、ＲＡＭ１２１１、及びＲＯＭ１２１２を備えるコンピュータである。ＣＰＵ１２１０、ＲＡＭ１２１１、及びＲＯＭ１２１２はバス１２１３を介して接続される。バス１２１３には、さらに、入出力Ｉ／Ｆ１２１４及びディスプレイＩ／Ｆ１２１８が接続される。情報処理装置１２００は、ＲＧＢカメラ１２１５、１２１６、及びＨＭＤ１２１９の他に、外部装置である記憶装置１２１７が接続される。
【００９５】
ＲＯＭ１２１２は、オペレーティングシステム、各種処理プログラム、デバイスドライバ等を記憶する。ＣＰＵ１２１０は、ＲＯＭ１２１２から各種のコンピュータプログラムを読み込み、ＲＡＭ１２１１を作業領域に用いて実行することで、ＭＲシステム全体の動作の制御を行う。なお、ＲＯＭ１２１２に記憶される各種のコンピュータプログラムは、外部に設けられる記憶装置１２１７に記憶されていてもよい。
【００９６】
ディスプレイＩ／Ｆ１２１８は、情報処理装置１２００で生成した画像をＨＭＤ１２１９で処理可能な信号に変換して、ＨＭＤ１２１９に送信する。入出力Ｉ／Ｆ１２１４は、一人称視点のＲＧＢカメラ１２１５及び正面視点のＲＧＢカメラ１２１６のそれぞれからＲＧＢ画像を取得して、情報処理装置１２００が処理可能なデータに変換する。また入出力Ｉ／Ｆ１２１４は、記憶装置１２１７との間で相互にデータの送受信を行う。本実施形態では、情報処理装置１２００でＨＭＤ１２１９に表示させる画像を表すデジタルデータが、記憶装置１２１７に格納されているものとする。記憶装置１２１７には、例えばディスクデバイスやフラッシュメモリ、ネットワークやＵＳＢなどの各種の大容量記憶装置を使用することができる。
【００９７】
図１２（ｃ）は、情報処理装置１２００の機能ブロック図である。情報処理装置１２００は、推定用情報取得部１２２０、検出用情報取得部１２２１、ユーザ位置取得部１２２２、検出部１２２３、領域取得部１２２４、推定部１２２５、表示部１２２６、及び保持部１２２７として機能する。本実施形態では、各機能は、ＣＰＵ１２１０がコンピュータプログラムを実行することで実現される。なお、このようなソフトウェアによる機能実現の他に、各機能を演算装置等のハードウェアにより実現してもよい。保持部１２２７は、ＲＯＭ１２１２あるいは記憶装置１２１７により実現され、モデルフィッティングに用いられる３次元形状モデル情報等を保持する。この他、手ぶり等の空間ジェスチャ動作を認識するジェスチャ認識部等、情報処理装置１２００の使用目的やアプリケーションに応じた機能部を構成することができる。各機能による具体的な処理について、以下に説明する。
【００９８】
（手指スケルトン推定処理）
図１３は、情報処理装置１２００による手指スケルトン推定処理を表すフローチャートである。図１４は、手指スケルトン推定処理の説明図である。
【００９９】
検出用情報取得部１２２１は、一人称視点のＲＧＢカメラ１２１５によって撮像されたＲＧＢ画像を、一定時間間隔で時系列に取得し、ノイズ除去等の前処理を行った上でＲＡＭ１２１１に随時保持する（Ｓ８００）。ユーザ位置取得部１２２２は、光学センサ１２３０が検出した光学マーカ１２３１に基づいて、世界座標系におけるＨＭＤ１２１９の位置姿勢を取得する（Ｓ８０１）。光学マーカ１２３１が検出されない場合、ＨＭＤ１２１９の位置姿勢が不定となるために、情報処理装置１２００は、以降の処理をスキップする。
【０１００】
検出部１２２３は、ＲＡＭ１２１１に保持されたＲＧＢ画像中において肌色領域１３０１を取得し、ＲＡＭ１２１１に保持する（Ｓ８０２）。肌色領域１３０１が検出されない場合、情報処理装置１２００は、以降のステップをスキップする。領域取得部１２２４は、肌色領域１３０１から手領域１３０３を取得する（Ｓ８０３）。本実施形態では、予め学習したカスケード型識別器を用いて正方形の手領域を取得するが、別の方法を用いてもよい。
【０１０１】
推定用情報取得部１２２０は、正面視点のＲＧＢカメラ１２１６によって撮像された正面視点のＲＧＢ画像１３０２を、一定時間間隔で時系列に取得してＲＡＭ１２１１に随時保持する（Ｓ８０４）。ＲＧＢ画像の取得間隔は、Ｓ８００で取得した一人称視点のＲＧＢ画像の取得間隔に同期する。領域取得部１２２４は、正面視点のＲＧＢ画像１３０２においてユーザの手が存在可能な領域１３０４を、一人称視点のＲＧＢ画像中の手領域１３０３を、正面視点のＲＧＢ画像１３０２に投影することで取得する（Ｓ８０５）。
【０１０２】
推定部１２２５は、正面視点のＲＧＢ画像１３０２においてユーザの手が存在可能な領域１３０４の内部に限定してモデルフィッティング処理を行う（Ｓ８０６）。本実施形態のようにユーザの指の隠れが少ない正面視点のＲＧＢ画像に基づいてユーザの手が存在可能な領域１３０４に探索領域を絞ることで、精度良くモデルフィッティングを行うことが可能になる。本実施形態では、推定部１２２５は、図４に示す手の３次元形状モデル４００を用いてモデルフィッティング処理を行う。手モデルの変形と最適化アルゴリズムについては第１実施形態と同様であるため説明を省略する。ただし、手モデルのパラメータベクトルはユーザの手が存在可能な領域１３０４に制約される。
【０１０３】
本実施形態で用いる評価関数を（式５）に示す。（式５）において、Inputは正面視点のＲＧＢ画像１３０２を表し、Renderは正面視点のＲＧＢカメラ１２１６の視点でレンダリングした手モデルの画像を表す。uは正面視点のＲＧＢ画像１３０２中の所定の座標を表す。Input(u)は正面視点のＲＧＢ画像１３０２の位置uの画素値（ＲＧＢの３チャンネル）を表す。Render(u)は正面視点のＲＧＢカメラ１２１６の視点でレンダリングした手モデルの画像の位置uの画素値（ＲＧＢの３チャンネル）を表わす。（式５）はレンダリングした手モデルの画素値と入力である正面視点のＲＧＢ画像１３０２について、ＲＧＢ各チャンネルのピクセル単位の差の絶対値の和をとったものである。
【０１０４】
【数２】
2018119833.tif 000004
【０１０５】
表示部１２２６は、Ｓ８０６の処理で得られた手の３次元形状モデルの表面のポリゴンや、仮想物体、ＵＩ部品等をＨＭＤ１２１９に表示する（Ｓ８０７）。以上の処理により、情報処理装置１２００は、手指スケルトン処理により推定した手の位置、姿勢、及び動きに応じて仮想物体やＵＩ部品を表示することができる。ユーザは、ＨＭＤ１２１９により表示された仮想物体やＵＩ部品を手で実際に操作する感覚で、ＭＲシステムを用いた操作を行うことができる。
【０１０６】
本実施形態では、情報処理装置１２００は、ユーザの手や腕が大きく写りかつ他の肌色物体が写りにくい一人称視点のＲＧＢ画像に基づいて手領域を取得する。そして、情報処理装置１２００は、手領域を正面視点のＲＧＢ画像座標系に投影した上で指先の隠れが少ない正面視点のＲＧＢ画像に基づいてモデルフィッティングを行っている。検出に用いるセンサと推定に用いるセンサとを別の位置に設置することで、それらのセンサが３次元情報を取得できないＲＧＢカメラであっても、精度良く手指スケルトン推定を行うことができる。なお、本実施形態ではＲＧＢカメラを用いたが、色情報を取得できるセンサであれば、例えばＹＵＶカメラ等であってもよい。
【０１０７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018119833.tif 000005
【図２】
2018119833.tif 000006
【図３】
2018119833.tif 000007
【図４】
2018119833.tif 000008
【図５】
2018119833.tif 000009
【図６】
2018119833.tif 000010
【図７】
2018119833.tif 000011
【図８】
2018119833.tif 000012
【図９】
2018119833.tif 000013
【図１０】
2018119833.tif 000014
【図１１】
2018119833.tif 000015
【図１２】
2018119833.tif 000016
【図１３】
2018119833.tif 000017
【図１４】
2018119833.tif 000018