(57)【要約】【課題】点群を削減したモデルフィッティングにおいてジッタの発生を軽減することができる情報処理装置を提供する。【解決手段】情報処理装置１００は、３次元操作空間を時系列に従って撮像した複数の撮像結果に基づいて、この空間に存在する物体（例えば、ユーザの手）を検出する物体検出部（１２３）、物体の表面を示す複数の３次元点群を第１点群として取得する点群取得部（１２４）を有する。また、第１点群の少なくとも一部に基づいて生成された複数の３次元点群である第２点群に対して、所定の３次元形状モデルのモデルフィッティングを行うモデルフィッティング部（１２５）、先行する撮像結果に基づいて３次元形状モデルのフィッティングが既に行われている場合、このフィッティングに用いた第２点群の少なくとも一部と、撮像結果から取得された第１点群の少なくとも一部と、に基づいて第２点群を生成する点群取得部（１２４）を有する。【選択図】図１
2018132319.tif 000002
【特許請求の範囲】
【請求項１】
所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段と、
前記物体の表面を示す複数の３次元点群を第１点群として取得する取得手段と、
前記第１点群の少なくとも一部に基づいて生成された複数の３次元点群である第２点群に対して、所定の３次元形状モデルの当てはめを行う当てはめ手段と、
先行して前記３次元形状モデルの当てはめが行われている場合、この当てはめに用いた第２点群の少なくとも一部と、前記撮像結果から取得された第１点群の少なくとも一部と、に基づいて前記第２点群を生成する生成手段と、を有することを特徴とする、
情報処理装置。
【請求項２】
前記物体は位置又は姿勢の少なくとも一方が時間の経過とともに変化し、
前記当てはめ手段は、前記物体の変化に応じて前記所定の３次元形状モデルの位置又は姿勢の少なくとも一方を調節して当てはめを行うことを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記生成手段は、前記先行して前記３次元形状モデルの当てはめが行われていない場合、前記第１点群に基づいて前記第２点群を生成することを特徴とする、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記複数の撮像結果には、ピクセル毎に撮像対象までの距離が反映された値が格納されている距離画像を含んでいることを特徴とする、
請求項１、２又は３に記載の情報処理装置。
【請求項５】
前記取得手段は、前記距離画像に基づいて前記第１点群を取得することを特徴とする、
請求項４に記載の情報処理装置。
【請求項６】
前記生成手段は、前記先行して前記３次元形状モデルの当てはめが行われていない場合、前記第１点群からランダムに選択した点群に基づいて前記第２点群を生成することを特徴とする、
請求項１又は２に記載の情報処理装置。
【請求項７】
前記生成手段は、先行する撮像結果に基づいて前記３次元形状モデルの当てはめが行われている場合、当該先行する撮像結果に基づいて生成された第２点群の少なくとも一部、又は、前記撮像結果から取得された第１点群の少なくとも一部と、当該先行する撮像結果に前記第１点群を投影した距離画像と、前記撮像結果に前記第１点群を投影した距離画像の差分と、に基づいて前記第２点群を生成することを特徴とする、
請求項１に記載の情報処理装置。
【請求項８】
前記生成手段は、前記先行する撮像結果と前記撮像結果に基づいて差分領域と共通領域を特定し、それぞれの領域から取得した第１点群に基づいて前記第２点群を生成することを特徴とする、
請求項７に記載の情報処理装置。
【請求項９】
前記生成手段は、前記先行する撮像結果に基づいて前記３次元形状モデルの当てはめが既に行われている場合、当該先行する撮像結果に基づいて生成された第２点群の少なくとも一部と、前記撮像結果から取得された第１点群の少なくとも一部と、当該先行する撮像結果に前記第１点群を投影した距離画像と前記撮像結果に前記第１点群を投影した距離画像の差分と、当該先行する撮像結果に基づいて行われた前記３次元形状モデルの当てはめ結果と、に基づいて前記第２点群を生成することを特徴とする、
請求項１に記載の情報処理装置。
【請求項１０】
前記３次元形状モデルの当てはめ結果は、先行する前記３次元形状モデルの当てはめにより得られたパラメータベクトルに基づいて移動又は変形させた所定の投影用モデルの少なくとも１つ以上の部位を距離画像座標系に投影したマスク画像であり、
前記生成手段は、前記マスク画像に基づいて前記第２点群又は前記第１点群を前記部位ごとに分割し、当該部位ごとに前記先行する撮像結果に基づいて生成された前記第２点群の一部、又は、前記撮像結果から取得された前記第１点群の一部に基づいて前記第２点群を生成することを特徴とする、
請求項９に記載の情報処理装置。
【請求項１１】
前記物体は手であり、前記所定の３次元形状モデルは当該手の３次元形状モデルであることを特徴とする、
請求項１乃至１０いずれか一項に記載の情報処理装置。
【請求項１２】
情報処理装置の制御方法であって、
所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する工程と、
前記物体の表面を示す複数の３次元点群を第１点群として取得する工程と、
前記第１点群の少なくとも一部に基づいて生成された複数の３次元点群である第２点群に対して、所定の３次元形状モデルの当てはめを行う工程と、
先行して前記３次元形状モデルの当てはめが行われている場合、この当てはめに用いた第２点群の少なくとも一部と、前記撮像結果から取得された第１点群の少なくとも一部と、に基づいて前記第２点群を生成する工程と、を有することを特徴とする、
情報処理装置の制御方法。
【請求項１３】
コンピュータを情報処理装置として動作させるためのコンピュータプログラムであって、
前記コンピュータを、
所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段、
前記物体の表面を示す複数の３次元点群を第１点群として取得する取得手段、
前記第１点群の少なくとも一部に基づいて生成された複数の３次元点群である第２点群に対して、所定の３次元形状モデルの当てはめを行う当てはめ手段、
先行して前記３次元形状モデルの当てはめが行われている場合、この当てはめに用いた第２点群の少なくとも一部と、前記撮像結果から取得された第１点群の少なくとも一部と、に基づいて前記第２点群を生成する生成手段、として機能させることを特徴とする、
コンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムをコンピュータが読み取り可能に記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元点群に３次元形状モデルを当てはめるモデルフィッティング技術に関する。
【背景技術】
【０００２】
ＭＲ（Mixed Reality：仮想現実）システムにおいては、手指に特別なデバイスを装着することなく手指を用いて直観的に仮想物体を操作することが求められる場合がある。
その場合には、例えば非接触型のセンサ等を用いて手指の関節や骨格の位置及び姿勢（以下、位置姿勢と称す）、あるいは手指の表面情報などをリアルタイムで推定する手指スケルトン推定を行うことになる。
手指スケルトン推定では、位置及び姿勢を固定した距離画像センサ（デプスセンサとも称す）１台から観測可能（撮像可能）な範囲の手指の表面を観測する。そして、距離画像センサを介して取得した３次元点群（以下、点群とも称す）に対して、手の３次元形状モデルを当てはめるモデルフィッティング技術が用いられることが多い。
【０００３】
ここで、リアルタイム性が求められる手指スケルトン推定では、距離画像センサが観測して取得した３次元点群を全て用いてモデルフィッティングを行う場合、計算量が多くなってしまいリアルタイム性が損なわれてしまう、という問題がある。
この問題に対して、例えば３次元点群に対してランダムサンプリングを行うことで計算量を減らしてモデルフィッティングを行う、つまり点群を削減したモデルフィッティング技術がある。また、特許文献１では、等間隔に３次元点群を間引くことで全体の計算量を減らすことができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３０５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、これらの先行技術を手指スケルトン推定に適用した場合、毎フレームごとに異なる３次元点群に対してモデルフィッティングを行うことになる。そのため、ジッタ（信号の時間的なズレや揺らぎなど）が多く発生してしまうという課題がある。
また、ジッタが多く発生する場合、仮想物体との接触判定の精度が低下してしまいユーザの直観的な操作が妨げられてしまう、という問題がある。
【０００６】
本発明は上記課題を鑑みたものであり、点群を削減したモデルフィッティングであってもジッタの発生を軽減することができる情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、所定の空間を時系列に従って撮像した複数の撮像結果に基づいて、当該空間に存在する物体を検出する検出手段と、前記物体の表面を示す複数の３次元点群を第１点群として取得する取得手段と、前記第１点群の少なくとも一部に基づいて生成された複数の３次元点群である第２点群に対して、所定の３次元形状モデルの当てはめを行う当てはめ手段と、先行して前記３次元形状モデルの当てはめが行われている場合、この当てはめに用いた第２点群の少なくとも一部と、前記撮像結果から取得された第１点群の少なくとも一部と、に基づいて前記第２点群を生成する生成手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、点群を削減したモデルフィッティングであってもジッタの発生を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る情報処理装置を含んで構成されるＭＲシステムＳの概要を説明するための図。
【図２】（ａ）、（ｂ）は、情報処理装置の機能構成の一例を説明するための図。
【図３】情報処理装置が行う制御処理の手順の一例を示すフローチャート。
【図４】手の３次元形状モデルの一例を説明するための図。
【図５】図３に示すステップＳ１０５の処理（第２点群取得処理）の詳細を説明するためのフローチャート。
【図６】第２点群に基づいて行われるモデルフィッティングの一例を説明するための図。
【図７】第２実施形態に係る情報処理装置の第２点群取得処理の詳細を説明するためのフローチャート。
【図８】第２点群に基づいて行われるモデルフィッティングの一例を説明するための図。
【図９】第３実施形態に係る情報処理装置の第２点群取得処理の詳細を説明するためのフローチャート。
【図１０】第２点群に基づいて行われるモデルフィッティングの一例を説明するための図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、以下で説明する実施形態は、本発明を具体的に実施した場合の一例を示すものであり、これに限るものではない。
【００１１】
［第１実施形態］
図１は、本実施形態に係る情報処理装置を含んで構成されるＭＲ（Mixed Reality：仮想現実）システムＳの概要を説明するための図である。ＭＲシステムを例に説明するが、本件は、ＭＲシステムへの適用に限らず、手指スケルトン推定をするシステムに適用可能である。
図１に示すＭＲシステムＳでは、ユーザが装着する一人称視点のステレオＲＧＢカメラ１１５と、情報処理装置１００が有する、撮像手段の一種である距離画像センサ１１６を含んで構成される。また、ＭＲシステムＳでは、これらの撮像結果に基づいて空間に存在する物体であるユーザの手１０１の位置又は姿勢少なくとも一方の状態を推定する。また、ユーザは、この推定結果に基づいて仮想物体１０３を手１０１で直接操作しているように認識することが可能になる。
【００１２】
ユーザは、自身の頭部１０２にＨＭＤ（ヘッドマウントディスプレイ）１１９を装着する。ＨＭＤ１１９は、ユーザの目線と同じ方向を撮像可能に配設されたステレオＲＧＢカメラ１１５を有する。なお、ＨＭＤ１１９は、情報処理装置１００との間で有線あるいは無線により各種情報の授受が可能に構成される。
【００１３】
情報処理装置１００は、ステレオＲＧＢカメラ１１５を介して、ユーザの目線から見た一人称視点のステレオＲＧＢ画像を撮像結果として取得する。情報処理装置１００は、取得したＲＧＢ画像に対してノイズ除去等の前処理を行った上で仮想物体１０３をレンダリング処理する。情報処理装置１００は、レンダリング処理後のステレオＲＧＢ画像を、ＨＭＤ１１９を介して、ユーザの目の前の表示画面にそれぞれ対応させて表示させる。このようにして、ユーザは、３次元操作空間上の仮想物体１０３を認識することが可能になる。
【００１４】
基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５は、ステレオＲＧＢカメラ１１５が取得したステレオＲＧＢ画像に基づいて、ステレオＲＧＢカメラ及びユーザの位置姿勢に係る情報を取得するために用いる。
なお、基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５は、所定の位置に固定して配置される。各ＭＲマーカは、例えば板の表面に一意な白黒のパターンが印刷されたものである。このように構成されたＭＲマーカであれば、容易にステレオＲＧＢ画像から検出することが可能になる。また、複数のＭＲマーカを用いるのはロバスト性を高めるためである。
【００１５】
なお、情報処理装置１００における空間全体を表す座標系（以下、世界座標系と称す）は、基準ＭＲマーカ１０４の中心を原点とする。また、この基準ＭＲマーカ１０４に対して所定の位置で固定された距離画像センサ１１６の撮像方向は、ｚ軸の正の方向（図１参照）となるように右手座標系において予めキャリブレーションされているものとする。
【００１６】
また、距離画像センサ１１６が取得した距離画像の各ピクセルには、距離画像センサ１１６の正面位置に垂直に置かれた仮想的な平面から撮像対象までの距離を反映した値（以下、距離値と称す）が格納されるものとする。
また、距離画像センサ１１６のカメラパラメータは予め測定されており、距離画像センサ１１６から取得された距離画像の各ピクセルを世界座標系における３次元点群に変換する変換行列についても予めキャリブレーションされているものとする。さらに、ステレオＲＧＢカメラ１１５のカメラパラメータと視差についても予め測定されているものとする。
【００１７】
また、情報処理装置１００では、ステレオＲＧＢカメラ１１５と距離画像センサ１１６の画角が交差する範囲が３次元操作空間であり、３次元操作空間内の手に対してのみ手指スケルトン推定が可能である。ユーザの頭部１０２の動きに合わせてステレオＲＧＢカメラ１１５の位置姿勢は時間の経過とともに変化するため、３次元操作空間も毎フレーム変化することになる。
【００１８】
なお、本実施形態では、ＨＭＤ１１９を装着した１人のユーザが右手を使って仮想物体を操作する場合を例に挙げて説明を進める。この他にも例えば、情報処理装置１００にユーザ判定部や右手左手判定部などの機能構成を追加するなどして、複数のユーザに対応可能に構成したり、両手に対応可能に構成することもできる。
【００１９】
図２は、情報処理装置１００の機能構成の一例を説明するための図である。
図２（ａ）は、情報処理装置１００のハードウェア構成の一例を示すブロック図である。
ＣＰＵ１１０は、バス１１３を介して接続する各デバイスを統括的に制御する。
ＲＡＭ１１１は、高速にアクセス可能なＣＰＵ１１０の主メモリ、ワークエリア等の一時記憶領域として用いられる。
ＲＯＭ１１２は、オペレーティングシステム（ＯＳ）、各処理プログラム、デバイスドライバ等の各種情報を記憶する。なお、ＯＳおよび各処理プログラム等は外部の記憶装置１１７に記憶されていてもよく、その場合は電源投入時に必要な情報がＲＡＭ１１１に適宜読み込まれる。
【００２０】
ディスプレイＩ／Ｆ１１８は、情報処理装置１００内部で生成される画像をＨＭＤ１１９が処理可能な信号に変換する。
入出力Ｉ／Ｆ１１４は、距離画像センサ１１６から距離画像を、ステレオＲＧＢカメラ１１５からステレオＲＧＢ画像を取得し、情報処理装置１００が処理可能な情報に変換するとともに、記憶装置１１７と情報処理装置１００間で相互にデータの変換を行う。
【００２１】
なお、本実施形態では、情報処理装置１００で投影するデジタルデータは記憶装置１１７に格納されているものとする。記憶装置１１７としては、ディスクデバイスやフラッシュメモリ、ネットワークやＵＳＢなどの各種の入出力Ｉ／Ｆ１１４を介して接続される各種記憶装置を使用することができる。
【００２２】
図２（ｂ）は、情報処理装置１００の機能構成の一例を示すブロック図である。情報処理装置１００は、距離画像取得部１２０、ステレオＲＧＢ画像取得部１２１、ユーザ位置取得部１２２、物体検出部１２３、点群取得部１２４、モデルフィッティング部１２５、表示部１２６、保持部１２７を含んで構成される。
これらの各機能部は、ＣＰＵ１１０が、ＲＯＭ１１２に格納されたプログラムをＲＡＭ１１１に展開し、後述する各フローチャートに従った処理を実行することで実現されている。
【００２３】
また例えば、ＣＰＵ１１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合、各機能部の処理に対応させた演算部や回路などを構成すればよい。また保持部１２７は、ＲＯＭ１１２、記憶装置１１７のいずれかに対応する機能部であり、仮想物体１０３のポリゴン情報やモデルフィッティングに用いられる３次元形状モデル情報等を保持する。この他にも、例えば手ぶり等の空間ジェスチャ動作を認識するジェスチャ認識部など、情報処理装置１００の使用目的やアプリケーションに応じた機能部を構成することができる。
【００２４】
［情報処理装置１００が行う制御処理］
図３は、情報処理装置１００が行う制御処理の手順の一例を示すフローチャートである。
以下、図３に示すフローチャートを用いて、情報処理装置１００が行う手指スケルトン推定処理を詳細について説明する。なお、図３に示す各処理は、主としてＣＰＵ１１０により実行される。
【００２５】
ＣＰＵ１１０は、ステレオＲＧＢ画像取得部１２１を介して、ステレオＲＧＢカメラ１１５が撮像するステレオＲＧＢ画像を一定時間毎に時系列に従って取得する（Ｓ１００）。ＣＰＵ１１０は、また、取得したステレオＲＧＢ画像に対してノイズ除去等の前処理を行い、処理後のステレオＲＧＢ画像をＲＡＭ１１１に保持する。
以下、時系列に従って取得された画像又は実行した処理それぞれには、番号あるいは時刻が情報として付与されるものとする。この番号あるいは時刻のことを、以後、フレームと称すことがある。
【００２６】
ＣＰＵ１１０は、ユーザ位置取得部１２２を介して、ＲＡＭ１１１に保持されたステレオＲＧＢ画像から基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５を検出する。
ＣＰＵ１１０は、また、ステレオＲＧＢ画像から検出した基準ＭＲマーカ１０４及び補助ＭＲマーカ１０５の形状に基づいて、世界座標系におけるＨＭＤ１１９の位置及び姿勢を表す情報（以下、位置姿勢情報と称す）を取得する（Ｓ１０１）。
【００２７】
なお、例えばステレオＲＧＢ画像からＭＲマーカが１つも検出されない場合、ＨＭＤ１１９の位置姿勢は不定となる。そのため、ＣＰＵ１１０は、ステップＳ１０１の処理以降の各処理を実施しない（スキップする）ように制御する。
また、本実施形態ではＭＲマーカが２種類である場合を例に挙げて説明をしているが、これに限らず１種類のみであっても、あるいは３種類以上用いるように構成してもよい。また、ＭＲマーカを用いることなく、例えば光学センサを用いるなどしてＨＭＤ１１９の位置姿勢に係る情報を取得するように構成してもよい。
【００２８】
ＣＰＵ１１０は、物体検出部１２３を介して、ＲＡＭ１１１に保持されたステレオＲＧＢ画像に基づいて、モデルフィッティングの対象である手（ユーザの手）が含まれる３次元領域（手領域）を検出する（Ｓ１０２）。具体的には、予め決定された色域のピクセルに対してこれらが隣接した集合である肌色領域を複数検出する。そして、ピクセル数最大の肌色領域をステレオＲＧＢ画像中の手領域として取得する。
【００２９】
ＣＰＵ１１０は、また、ステレオＲＧＢ画像中の手領域の重心を導出する。ＣＰＵ１１０は、ＨＭＤ１１９の位置姿勢情報とステレオＲＧＢカメラ１１５の視差情報に基づいて、手領域の重心の世界座標を取得する。ＣＰＵ１１０は、手領域の重心の世界座標を中心とする、予め決められた長さの各辺を持つ直方体を世界座標における手領域として取得する。
なお、世界座標における手領域の形状は球や任意の多角形であってもよい。また、例えばステレオＲＧＢ画像中に肌色領域が１つも存在しない場合、ＣＰＵ１１０は、ステップＳ１０２の処理以降の各処理をスキップするように制御する。
【００３０】
ＣＰＵ１１０は、距離画像取得部１２０を介して、距離画像センサ１１６が撮像する距離画像を一定時間毎に時系列に従って取得する（Ｓ１０３）。取得した距離画像は、入力距離画像としてＲＡＭ１１１に保持される。
なお、ＣＰＵ１１０は、距離画像を取得する間隔を、ステップＳ１００の処理におけるステレオＲＧＢ画像の取得間隔と同期するように制御する。
【００３１】
ＣＰＵ１１０は、点群取得部１２４を介して、距離画像センサ１１６のカメラパラメータと、予め測定された距離画像センサ１１６の座標系と、世界座標系の変換行列とに基づいて、距離画像の各ピクセルを世界座標系における点群（３次元点群）に変換する。なお、点群は手の表面上の点である。
【００３２】
ＣＰＵ１１０は、ステップＳ１０２の処理において取得した世界座標における手領域の範囲内の点群を第１点群として取得する（Ｓ１０４）。
なお、第１点群は観測（検出）された手領域の点群全てを指すものとする。
また、例えば世界座標における手領域に含まれる点群の数が予め決められた閾値未満である場合、ＣＰＵ１１０は、ユーザの手１０１が距離画像センサの撮像範囲外、即ち操作範囲外にあると判定する。この場合、ＣＰＵ１１０は、ステップＳ１０４の処理以降の各処理をスキップするように制御する。
【００３３】
ＣＰＵ１１０は、また、点群取得部１２４を介して、第１点群を投影した距離画像を手領域距離画像として取得する。手領域距離画像は、第１点群を距離画像座標系に投影した距離画像であり、第１点群が投影されないＵＶ座標（２次元テクスチャ座標）は無効な値（例えば０（ゼロ））で埋められているものとする。
なお、世界座標における手領域を距離画像の２次元領域に投影し、その内部にある距離画像の各ピクセルを世界座標における点群に変換することで、第１点群を取得するように構成してもよい。また、ステレオＲＧＢ画像に基づいて取得された世界座標中の手領域を用いることなく、距離画像および点群のみから第１点群を取得するように構成してもよい。
例えば、距離画像センサ１１６によって撮像された距離画像中の距離画像センサ１１６までの距離が最も近いピクセル集合を距離画像中の手領域とし、それらを世界座標系に変換することで第１点群を取得するように構成してもよい。
【００３４】
ＣＰＵ１１０は、点群取得部１２４を介して、第１点群からモデルフィッティング処理に用いる第２点群を取得する（Ｓ１０５）。なお、この処理の詳細については後述する。
【００３５】
ＣＰＵ１１０は、モデルフィッティング部１２５を介して、取得した第２点群に対して３次元形状モデルの当てはめ（モデルフィッティング）を実施する（Ｓ１０６）。具体的には、保持部１２７に保持されている、予め決められた手の３次元形状モデルを用いてモデルフィッティングを行う。
なお、本実施形態に係る情報処理装置１００では、例えば後述する図４に示す球の集合からなる手の３次元形状モデル６００を用いるものとする。また、手領域の点群と手の３次元形状モデルの誤差関数を最小化する最適化アルゴリズムとしてＰＳＯ（Particle Swarm Optimization：粒子群最適化）を用いるものとする。
以下、図４に示す手の３次元形状モデルについて説明する。
【００３６】
図４は、手の３次元形状モデルの一例を説明するための図である。
例えば、図４に示す手の３次元形状モデル６００は４８個の球の集合からなり、各球それぞれは中心位置、半径、一意なＩＤ、属するパーツ等の情報を有する。また、図４に示すように、球によっては互いに接触したり、あるいはめり込んだりしていることが見て取れる。
【００３７】
また、図４に示す手の３次元形状モデル６００では、各指の第１関節及び第２関節位置に相当する位置に１次元（掌に対して垂直方向に回転する）の関節を有する。
また、各指の根元に相当する位置に２次元（掌に対して水平方向と垂直方向にそれぞれ回転する）の関節を有する。さらに手首に相当する位置に６次元（世界座標におけるｘｙｚ位置及びオイラー角）の関節を有する。このように、手の３次元形状モデル６００全体の次元数は合計で２６次元となる。
【００３８】
また、手の３次元形状モデル６００は、掌、指の根元と第２関節の間、第２関節と第１関節の間、指先の順に手首から手先の方向に順序付けされたパーツ（球の集合）を含んで構成される。
手の３次元形状モデル６００の関節は、手首位置、指の根元関節、第２関節、第１関節の順に手首から手先の方向に向かって順序付けされている。各関節のパラメータ（位置又は角度）に従って各関節を移動・回転させた場合、各関節より手先に順序づけられているパーツが全て移動する。
例えば、手首位置を移動・回転すると全てのパーツが移動・回転し、指の根元関節を回転下とする。この場合、指の根元と第２関節の間、第２関節と第１関節の間、指先が回転する。つまり、全ての関節にパラメータを与えることで手の形状が一意に決定されることになる。
【００３９】
また、手の３次元形状モデル６００は、剛体である各パーツを移動・回転可能な関節で繋ぎ合わせたモデルである。なお、各関節が取り得るパラメータの範囲は、実際の人間の手が取り得る範囲に制限されているものとする。また、全ての関節のパラメータをパラメータベクトルと称すことがある。また、パラメータベクトルの次元数は２６次元である。
なお、図４に示す手の３次元形状モデル６００では５指と掌をモデル化しているが、これに限ることなく手首、下腕、上腕を含むようなモデルを用いてもよい。
【００４０】
ここで、情報処理装置１００における処理に用いられる誤差関数を下記式（１）、（２）に示す。誤差関数は、点群とモデルの誤差を表しており、その値が小さいほど良い。また、誤差関数は、第２点群の各点について、３次元形状モデル６００の表面とのユークリッド距離を求め、その和をとったものである。
【００４１】
2018132319.tif 000003
【００４２】
式（２）におけるｄｎは、ステップＳ１０５の処理において取得された第２点群に含まれる点である。式（２）に示すｆ（ｄ）は、ｄから３次元形状モデル６００の表面までの最短ユークリッド距離を全探索して求める関数である。ｓｉｃｅｎｔｅｒは、球ｓｉの中心の三次元座標、ｓｉｃｅｎｔｅｒは手の３次元形状モデル６００の球ｓｉの半径である。
なお、誤差関数は、例えばモデルの「めりこみ」、あるいは人間の手が取り得えない姿勢などに対してペナルティを与える項等と、式（１）の和をとってこれを誤差関数としてもよいし、また別の誤差関数を用いてもよい。
【００４３】
静止剛体へのオフラインモデルフィッティングでは、ＩＣＰ（Iterated Closest Point）がよく用いられる。しかし、本実施形態の説明においては、最適化アルゴリズムとしてＰＳＯ（Particle Swarm Optimization：粒子群最適化）を用いている。これは、ＰＳＯはＩＣＰと比べて、関節を有し時間的に形状が変化する手のモデルフィッティングにおいては速度、精度、ロバスト性などの面で適しているためのである。
また、ＰＳＯでは、パラメータベクトルを、速度を有する粒子として扱うことで多数の粒子同士の相互作用を模した更新を繰り返し行い最適化を行う。更新数は「世代」あるいは「世代数」などとも称される。各粒子の更新式を下記式（３）、（４）に示す。
【００４４】
2018132319.tif 000004
【００４５】
上記式のｘｋは、世代ｋのパラメータベクトル、ｖｋは対応する速度を表す。また、ｗ、ｃ１、ｃ２は所定の定数である。また、ｒ１、ｒ２は［０・・・１］の一様分布からサンプリングされる乱数である。また、Ｐｋは粒子が世代ｋまでで経験した中で最も誤差関数の値が良かったパラメータベクトルであり、Ｇｋは全ての粒子の中で世代ｋまでの中で最も誤差関数の値が小さかったパラメータベクトルである。
【００４６】
例えば、世代数０の初期値は、直近のフレーム（以後、前フレームとも称す）のモデルフィッティング処理の結果として得られたパラメータベクトルの各次元に対してガウスノイズを付与して生成する。また、先行するフレームにモデルフィッティング処理が行われていない初期フレームである場合、ユーザは手の各指を伸ばした所謂パーの姿勢で３次元操作空間に挿入することが多いというヒューリティックに基づいて初期値を生成する。
【００４７】
初期値の生成は、例えば図４に示す手の３次元形状モデル６００の重心と手領域の重心の世界座標が一致する位置、及び、各指を伸ばしたいわゆる「パー」の姿勢となるパラメータベクトルの各次元にガウスノイズを付与して生成する。
なお、他のヒューリスティックや機械学習を用いて生成したパラメータベクトルを初期値としてもよい。例えば、本実施形態における粒子数は１２８であり、世代２０を更新の終了条件とする。この場合、モデルフィッティングの結果、モデルフィッティングに用いられる第２点群にフィットするように手の３次元形状モデルの位置及び姿勢が調節されることになる。
【００４８】
また、手の３次元形状モデルとしては、球の数、球の位置、関節の定義等を変えてもよい。例えば、図４に示すような指を球と円柱で表わし、掌を楕円体で表わした近似モデル６０１、あるいはスキンメッシュモデル６０２などを用いてもよい。
また、手の３次元形状モデルにあわせて異なる誤差関数を用いてもよい。また、ＰＳＯの更新式やパラメータは本実施例と同一である必要はなく、ＰＳＯ以外のアルゴリズムを最適化アルゴリズムとして用いてもよい。
【００４９】
図３の説明に戻り、ＣＰＵ１１０は、表示部１２６を介して、モデルフィッティング部１２５を介して取得した、変形した手の３次元形状モデルの表面のポリゴンと仮想物体１０３の接触判定を行う。そして、ＣＰＵ１１０は、接触判定の結果に基づいて仮想物体１０３の状態を変化させた上でステレオＲＧＢ画像と仮想物体１０３をＨＭＤ１１９に表示する（Ｓ１０７）。
【００５０】
なお、本実施形態においては、手の３次元形状モデルの表面のポリゴンはＨＭＤ１１９に表示しないように制御されるが、これに限らず表示するように制御してもよい。また、接触判定や表示に用いられる手の３次元形状モデルは、モデルフィッティングに用いられる手の３次元形状モデル６００と異なるものであってもよい。
【００５１】
例えば、モデルフィッティング処理の結果として得られたパラメータベクトルに基づいて、近似モデル６０１、あるいはスキンメッシュモデル６０２を変形させる。変形後の近似モデル６０１やスキンメッシュモデル６０２の表面のポリゴンを仮想物体１０３との接触判定に用いたり、当該ポリゴンを表示したりしてもよい。
この場合、モデルフィッティングに使われる手の３次元形状モデルよりも精緻な手の３次元形状モデルを接触判定や表示に用いることで、リアルタイム性を維持しつつ、より適切な接触判定や表示を行うことが可能になる。
次に図５、図６を用いて、本実施例における第２点群取得処理を詳細に説明する。
【００５２】
図５は、ステップＳ１０５の処理（第２点群取得処理）の詳細を説明するためのフローチャートである。
また、図６は、図５に示す第２点群取得処理により取得された第２点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図５に示す各処理は、主としてＣＰＵ１１０により実行される。また、本実施形態の第２点群取得処理では、第１点群と前フレームにおいて取得された第２点群に基づいて、モデルフィッティング処理に用いる第２点群を取得するものとする。
【００５３】
ＣＰＵ１１０は、点群取得部１２４を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否かを判定する（Ｓ２００）。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し（Ｓ２００：Ｙｅｓ）、ステップＳ２０１の処理に移行する。また、そうでない場合（Ｓ２００：Ｎｏ）、ステップＳ２０２の処理へ移行する。
【００５４】
ＣＰＵ１１０は、点群取得部１２４を介して、手領域の第１点群からランダムにＮ個選択し、選択した第１点群を第２点群として取得する（Ｓ２０１）。なお、Ｎは予め決められた値であり、本実施形態ではＮ＝２５６とする。また、初期フレームである場合には前フレームの第２点群が存在しないことになる。そのため、第１点群にのみ基づいて第２点群を取得することになる。
【００５５】
ＣＰＵ１１０は、点群取得部１２４を介して、前フレームの第２点群と同じＵＶ値を有する点群の一部をランダムにｒ０Ｎ個選択し、これらを第２点群として取得する（Ｓ２０２）。
具体的には、前フレームで取得された第２点群をランダムに選択し、これらに対応する前フレームの距離画像中のＵＶ座標を取得する。そして、最新のフレーム（以後、現フレームとも称す）の距離画像において、ＵＶ座標とＵＶ座標のピクセル値を世界座標に変換することにより前フレームと同じＵＶ値を有する点群を特定して第２点群を取得する。
なお、ｒ０は予め決められた前フレームと同じ点群をとる割合であり、本実施形態ではｒ０＝０．８であるとする。この処理により前フレームと類似した点群に対するモデルフィッティングが行われるようになるため、ジッタの発生を軽減することができる。
【００５６】
また、このランダムな選択は、例えば前フレームの第２点群からランダムにｒ０Ｎ個選択するように構成してもよい。また、第２点群の生成は、例えば前フレームの第２点群と前記前フレームの第２点群と同じＵＶ値を有する第１点群を平均したものを第２点群として生成するように構成してもよい。
なお、図６ではステップＳ２０２の処理において取得された点群の距離画像中のＵＶ座標を、前フレーム手領域距離画像７０３及び現フレーム手領域距離画像７０４それぞれにおいて灰色で塗りつぶされた実線の円７００として示している。
【００５７】
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの第１点群の一部をランダムに（１−ｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ２０３）。この一連の処理により、新たな点群に対してもモデルフィッティング処理が実施されることになる。これにより、移動及び変形する手に対するロバスト性を高めることができる。
【００５８】
なお、図６ではステップＳ２０３の処理において取得された点群の距離画像中のＵＶ座標を、黒で塗りつぶされた円７０１として現フレーム手領域距離画像７０４に示している。また、灰色で塗りつぶされた破線の円７０２は、前フレームで選択されたが現フレームでは選択されなかった点群のＵＶ座標である。
つまり、灰色で塗りつぶされた実線の円７００は、前フレームで選択され、且つ、現フレームでも選択された点群のＵＶ座標である。黒で塗りつぶされた円７０１は、前フレームと現フレームに共通する領域から新たにランダムに選択された点群のＵＶ座標である。灰色で塗りつぶされた破線の円７０２は、前フレームで選択されたが現フレームで選択されなかった点群のＵＶ座標である。
【００５９】
このように、本実施形態に係る情報処理装置１００では、３次元点群に３次元形状モデルを当てはめるモデルフィッティングにおいて、３次元点群を削減したモデルフィッティングにおけるジッタの発生を軽減することができる。
【００６０】
［第２実施形態］
本実施形態では、第１点群、前フレームの第２点群に加えて、前フレームと現フレームの手領域距離画像の差分に基づいて第２点群を取得することができる情報処理装置について説明する。
なお、第１実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
【００６１】
第１実施形態に係る情報処理装置１００では、推定対象のユーザの手１０１の動きが微小であり、フレーム間の第１点群の変化が十分に小さいことを想定した構成である。
しかしながら、ステレオＲＧＢカメラ１１５及び距離画像センサ１１６の画像取得間隔が大きい場合、ユーザの手の動きが速い場合などフレーム間の第１点群の変化が大きくなることがある。そこで、本実施形態では、フレーム間の第１点群の変化が大きい場合であってもジッタの発生を軽減することができる情報処理装置について説明する。
なお、第１実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部１２４を介した第２点群取得処理が異なる。詳細は後述する。
【００６２】
図７は、本実施形態に係る情報処理装置の第２点群取得処理の詳細を説明するためのフローチャートである。
また、図８は、図７に示す第２点群取得処理により取得された第２点群に基づいて行われるモデルフィッティングの一例を説明するための図である。
なお、図７に示す各処理は、主としてＣＰＵ１１０により実行される。また、第２点群取得処理では、第１点群、前フレームにおいて取得された第２点群、前フレームと現フレームの手領域距離画像の差分に基づいて、モデルフィッティング処理に用いる第２点群を取得するものとする。
【００６３】
ＣＰＵ１１０は、点群取得部１２４を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否かを判定する（Ｓ３００）。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し（Ｓ３００：Ｙｅｓ）、ステップＳ３０１の処理に移行する。また、そうでない場合（Ｓ３００：Ｎｏ）、ステップＳ３０２の処理へ移行する。
【００６４】
ＣＰＵ１１０は、点群取得部１２４を介して、手領域の第１点群からランダムにＮ個選択し、選択した第１点群を第２点群として取得する（Ｓ３０１）。なお、Ｎは予め決められた値であり、本実施形態ではＮ＝２５６とする。また、初期フレームである場合には、前フレームの第２点群が存在しないことになる。そのため、第１点群にのみ基づいて第２点群を取得することになる。
なお、第１点群からランダムに選択する場合の他にも、例えば等間隔にＮ個選択して、選択した第１点群を第２点群として取得するように構成してもよい。
【００６５】
ＣＰＵ１１０は、点群取得部１２４を介して、手領域距離画像における差分領域と共通領域を取得する（Ｓ３０２）。
具体的には、ＣＰＵ１１０は、現フレームの手領域距離画像の各ピクセルから前フレームの手領域距離画像の各ピクセルを減算して手領域差分画像を取得する。
ＣＰＵ１１０は、取得した手領域差分画像において、予め決められた差分閾値を上回る絶対値を有するピクセルが、予め決められた差分面積閾値の値以上隣接して存在している領域を差分領域として取得する。
ＣＰＵ１１０は、また、手領域差分画像において、予め決められた共通閾値を下回る絶対値を持つピクセルが、予め決められた共通面積閾値の値以上隣接して存在する領域を共通領域として取得する。
【００６６】
このように閾値を設定することで、ノイズに対するロバスト性の向上を図ることができる。なお、差分領域は、ＵＶ方向、即ち手領域距離画像において過去に手が存在していなかった領域に新たに手領域が出現する場合と、Ｚ方向、即ち手領域距離画像において過去に手が存在していた領域のピクセル値が変化する場合の２パターンがある。
なお、ＵＶ方向の差分領域とＺ方向の差分領域は、片方出現する場合、両方が独立した領域として出現する場合、両方が連結した領域として出現する場合、あるいは両方とも出現しない場合がある。以下、この点について図８を用いて説明する。
【００６７】
図８（ａ）は、ＵＶ方向における差分領域の一例を示している。図８（ａ）に示す現フレーム手領域距離画像８０１は、前フレーム手領域距離画像７０３の状態から人差し指をＵＶ方向に動かした状態を示している。
また、現フレーム手領域距離画像８０１において実線で囲まれている領域の中でグレー色に塗られている部分が差分領域であり、白色に塗られている部分が共通領域である。また、破線の楕円でかこまれている人指し指の根元の領域８００のＺ値は変化しているが、差分閾値以下であり、且つ、共通閾値以下であるため共通領域となる。
【００６８】
図８（ｂ）は、Ｚ方向における差分領域の一例を示している。図８（ｂ）に示す現フレーム手領域距離画像８０３は、前フレーム手領域距離画像８０２の状態から人差し指をＺ方向に動かした状態を示している。図中グレー色に塗られている部分が差分領域であり、白色に塗られている部分が共通領域である。
【００６９】
図７の説明に戻り、ＣＰＵ１１０は、点群取得部１２４を介して、共通領域から前フレームの第２点群と同じＵＶ値を有する点群の一部をランダムにｒ０Ｎ個選択し、これらを第２点群として取得する（Ｓ３０３）。なお、ステップＳ３０３の処理では、その対象を共通領域に限定した上でステップＳ２０２の処理（図５参照）と同様の処理を行う。
【００７０】
ＣＰＵ１１０は、点群取得部１２４を介して、差分領域の大きさが予め決められた閾値以上であるか否かを判定する（Ｓ３０４）。閾値以上である場合（Ｓ３０４：Ｙｅｓ）、ステップＳ３０６の処理に移行する。また、そうでない場合（Ｓ３０４：Ｎｏ）、ステップＳ３０５の処理へ移行する。
【００７１】
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの第１点群の一部をランダムに（１−ｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ３０５）。ステップＳ３０５の処理では、手領域が大きく変形していないためステップＳ２０３の処理（図５参照）と同様の処理を行う。
【００７２】
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの差分領域からランダムにｒ１（１−ｒ０）Ｎ個選択して第２点群として取得する（Ｓ３０６）。
具体的には、差分領域におけるＵＶ値をランダムに選択し、選択したＵＶ値とピクセル値を世界座標に変換することで新たな第２点群を取得する。
なお、ｒ１は差分領域から新たに第２点群をランダムに取得する割合であり、本実施形態ではｒ１＝０．５とする。また、ステップＳ３０６の処理により、手が変形した領域である差分領域から第２点群が取得されることが保証されることになる。
また、図８（ａ）に示す現フレーム手領域距離画像８０１、図８（ｂ）に示す現フレーム手領域距離画像８０３において黒色に塗られた三角形は、ステップＳ３０６の処理において取得された点群を示している。
【００７３】
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの共通領域からランダムに（１−ｒ１）（１−ｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ３０７）。
具体的には、共通領域におけるＵＶ値をランダムに選択し、選択されたＵＶ値とピクセル値を世界座標に変換することで新たな第２点群を取得する。
【００７４】
なお、本実施形態では、差分領域と共通領域をそれぞれ一体として扱い第２点群を取得する場合について説明した。例えば、手の形状や動きによっては差分領域又は共通領域がそれぞれ複数の分割された領域として出現する場合がある。そのような場合、各領域から１つ以上の点群が第２点群として取得されるようにしてもよい。また、各領域の大きさ（ピクセル数）に応じて取得される第２点群の割合が変化するように構成してもよい。
【００７５】
また、本実施形態では、第１点群、前フレームの第２点群、前フレームと現フレームの手領域距離画像の差分に基づいて第２点群を取得しているが、必ずしもそうでなくともよい。例えば、第１点群と、前フレームと現フレームの手領域距離画像の差分に基づいて第２点群を取得するように構成してもよい。
【００７６】
［第３実施形態］
本実施形態では、第１点群、前フレームの第２点群に加えて、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて第２点群を取得することができる情報処理装置について説明する。
なお、第１、第２実施形態と同じ機能構成は、同一の符号を付すとともにその説明を省略する。
【００７７】
第２実施形態に係る情報処理装置では、手の部位を区別していなかったためランダムにとった第２点群が１つ以上の手の部位から十分に取得されずにジッタが大きくなってしまうことがある。そこで、本実施形態に係る情報処理装置では、１つ以上の手の部位のジッタの発生を軽減することができる情報処理装置について説明する。
なお、第１、第２実施形態に係る情報処理装置と本実施形態に係る情報処理装置とでは、点群取得部１２４を介した第２点群取得処理が異なる。詳細は後述する。
【００７８】
図９は、本実施形態に係る情報処理装置の第２点群取得処理の詳細を説明するためのフローチャートである。
また、図１０は、図９に示す第２点群取得処理により取得された第２点群に基づいて行われるモデルフィッティングの一例を説明するための図である。なお、図９に示す各処理は、主としてＣＰＵ１１０により実行される。
また、第２点群取得処理では、第１点群、前フレームにおいて取得された第２点群、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて、モデルフィッティング処理に用いる第２点群を取得するものとする。
【００７９】
ＣＰＵ１１０は、点群取得部１２４を介して、判定対象のフレームがモデルフィッティングの初期フレームであるか否か判定する（Ｓ４００）。前フレームにモデルフィッティング処理が行われていない場合、判定対象のフレームは初期フレームであると判定し（Ｓ４００：Ｙｅｓ）、ステップＳ４０１の処理に移行する。またそうでない場合（Ｓ４００：Ｎｏ）、ステップＳ４０２の処理へ移行する。
【００８０】
ＣＰＵ１１０は、点群取得部１２４を介して、手領域の第１点群からランダムにＮ個選択し、選択した第１点群を第２点群として取得する（Ｓ４０１）。なお、Ｎは予め決められた値であり、本実施形態ではＮ＝２５６とする。また、初期フレームである場合には、前フレームの第２点群が存在しないことになる。そのため、第１点群にのみ基づいて第２点群を取得することになる。
【００８１】
ＣＰＵ１１０は、点群取得部１２４を介して、前フレームの推定結果に基づいて第１点群及び前フレームの第２点群を部位に分割する（Ｓ４０２）。
具体的には、ＣＰＵ１１０は、前フレームにおいて推定したパラメータベクトルに基づいて近似モデル６０１（図４）を変形させる。なお、近似モデル６０１は投影用モデルとして用いられる。
【００８２】
ＣＰＵ１１０は、変形した近似モデル６０１を部位ごとに距離画像の座標に投影し、この部位ごとのマスク画像を取得する。なお、これらの部位は目的に応じて定義することができる。
例えば、図１０（ａ）、（ｂ）に示すモデル９０１は、各部位を５指（親指ａ、人差し指ｂ、中指ｃ、薬指ｄ、小指ｅ）と掌として定義して投影した場合の一例である。
また、図１０（ｂ）に示すモデル９０３は、５指のうち人差し指を人差し指上部ｂ０と人差し指下部ｂ１に分け射影した場合の一例である。
【００８３】
ＣＰＵ１１０は、距離画像座標中においてマスク処理を行い、第１点群と前フレームの第２点群を前記部位ごとに分割して部位ごとのマスク画像を取得する。
なお、点群を分割する際にモデルフィッティングに用いる手の３次元形状モデル６００（図４）を用いることも可能ではあるが、近似モデル６０１を用いることにより、より滑らかなマスク画像を取得することができる。
また、ＣＰＵ１１０は、点群取得部１２４を介して、ステップＳ４０３の処理からステップＳ４０８の処理を各部位ｉのそれぞれに対して一回ずつ行うものとする。
【００８４】
図９の説明に戻り、ＣＰＵ１１０は、点群取得部１２４を介して、手領域距離画像における差分領域と共通領域を取得する（Ｓ４０３）。ステップＳ４０３の処理では、対象を部位ｉに限定した上でステップＳ３０２の処理（図７参照）と同様の処理を行う。
【００８５】
ＣＰＵ１１０は、点群取得部１２４を介して、共通領域から前フレームの第２点群と同じＵＶ値を有する点群をランダムにｒｉｒ０Ｎ個選択し、これらを第２点群として取得する（Ｓ４０４）。
なお、ｒｉは部位ｉから第２点群を取得する予め決められた割合である。また、部位ｉのピクセル数に応じてｒｉの値を変えてもよい。
【００８６】
ＣＰＵ１１０は、点群取得部１２４を介して、差分領域の大きさが予め決められた閾値以上であるか否かを判定する（Ｓ４０５）。閾値以上である場合（Ｓ４０５：Ｙｅｓ）、ステップＳ４０７の処理へ移行する。また、そうでない場合（Ｓ４０５：Ｎｏ）、ステップＳ４０６の処理に移行する。
【００８７】
ＣＰＵ１１０は、点群取得部１２４を介して、部位ｉの第１点群からランダムに（１−ｒｉｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ４０６）。
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの差分領域からランダムにｒ１（１−ｒｉｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ４０７）。ステップＳ４０７の処理は、対象を部位ｉに限定した上でステップＳ３０６の処理（図７参照）と同様の処理を行う。
【００８８】
ＣＰＵ１１０は、点群取得部１２４を介して、現フレームの共通領域からランダムに（１−ｒ１）（１−ｒｉｒ０）Ｎ個選択し、これらを第２点群として取得する（Ｓ４０８）。ステップＳ４０８の処理は、対象を部位ｉに限定した上でステップＳ３０７の処理（図７参照）と同様の処理を行う。
【００８９】
ＣＰＵ１１０は、部位ｉの中で処理すべき部位が残っているか否かを判定する（Ｓ４０９）。残っていると判定した場合（Ｓ４０９：Ｎｏ）、ステップＳ４０４の後はステップＳ４０３に移行する。また、そうでない場合（Ｓ４０９：Ｙｅｓ）、つまり全ての部位に対してステップＳ４０３〜ステップＳ４０８までの処理が終了している場合、第２点群取得処理を終了する。
【００９０】
例えば、図１０（ａ）の示すモデル９０２は、全ての部位のｒｉが等しい場合の一例である。この場合、全ての部位から等しく第２点群が取得されており、全体的にジッタが軽減されることが見て取れる。
また、図１０（ｂ）に示すモデル９０４は、人差し指上部のｒｉが大きい場合の一例である。この場合、人差し指上部から多く第２点群が取得されており、特に人差し指上部のジッタが軽減され、例えば人差し指上部で仮想物体と接触判定を行うことが多い場合に特に有効であることが見て取れる。
【００９１】
また、本実施形態では、第１点群、前フレームの第２点群に加えて、前フレームと現フレームの手領域距離画像の差分、前フレームのモデルフィッティング結果に基づいて第２点群を取得しているが、必ずしもそうである必要はない。例えば、第１点群と前フレームのモデルフィッティング結果に基づいて第２点群を取得するように構成してもよい。
【００９２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがコンピュータプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９３】
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
【図１】
2018132319.tif 000005
【図２】
2018132319.tif 000006
【図３】
2018132319.tif 000007
【図４】
2018132319.tif 000008
【図５】
2018132319.tif 000009
【図６】
2018132319.tif 000010
【図７】
2018132319.tif 000011
【図８】
2018132319.tif 000012
【図９】
2018132319.tif 000013
【図１０】
2018132319.tif 000014