(57)【要約】【課題】仮想物体の操作を、手指の動作により、より直感的に行えるようにする。【解決手段】  本発明の手指動作検出装置は、手指の形状及び高さの情報を有する画像を取得する画像取得部４１と、画像から手指の所定動作に対応する手指の第１の形状、又は、手指の所定動作以外の動作に対応する手指の第２の形状を検出する手指形状検出部４４と、手指形状検出部４４で検出された第１の形状の情報又は第２の形状の情報に基づいて、手指の３次元空間上の位置及び手指の姿勢の少なくとも一方の情報と、手指形状検出部４４の検出結果に対応する情報とを検出する手指動作検出部４６とを備える。【選択図】図２
2015114762.tif 000002
【特許請求の範囲】
【請求項１】
手指の形状及び高さの情報を有する画像を取得する画像取得部と、
前記画像取得部によって取得された前記画像から、前記手指の所定動作に対応する前記手指の第１の形状、又は、前記手指の所定動作以外の動作に対応する前記手指の第２の形状を検出する手指形状検出部と、
前記手指形状検出部で検出された前記第１の形状の情報又は第２の形状の情報に基づいて、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報と、前記手指形状検出部の検出結果に対応する情報とを検出する手指動作検出部とを備えた
手指動作検出装置。
【請求項２】
前記手指の所定動作は、前記手指のつまみ動作である
請求項１に記載の手指動作検出装置。
【請求項３】
前記画像取得部で取得された前記画像内において、つまみ動作に関与する２本の指により形成される手指領域に囲まれた内部領域を抽出する内部領域抽出部をさらに備え、
前記手指形状検出部は、前記内部領域抽出部で前記内部領域が検出された場合の前記画像内の手指の形状を前記第１の形状として検出し、前記内部領域抽出部で前記内部領域が検出されなかった場合の前記画像内の手指の形状を前記第２の形状として検出する
請求項２に記載の手指動作検出装置。
【請求項４】
前記手指領域に含まれる複数の画素の情報に基づいて、前記手指領域の近似平面を抽出し、該近似平面内において、前記画像内の手指形状に関する少なくとも一つの特徴点を抽出する特徴点抽出部をさらに備え、
前記手指動作検出部は、前記特徴点抽出部により抽出された前記近似平面内の前記少なくとも一つの特徴点の情報に基づいて、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報を検出する
請求項３に記載の手指動作検出装置。
【請求項５】
つまみ動作時には、前記特徴点抽出部は、前記画像内における、つまみ動作に関与する２本の指の指先同士の接触点が前記近似平面に投影された点を、第１の特徴点として抽出し、前記手指動作検出部は、前記第１の特徴点を前記手指の３次元空間上の位置として検出し、
非つまみ動作には、前記特徴点抽出部は、前記画像内における、前記２本の指の指先間の中間点が前記近似平面に投影された点を、第２の特徴点として抽出し、前記手指動作検出部は、前記第２の特徴点を前記手指の３次元空間上の位置として検出する
請求項４に記載の手指動作検出装置。
【請求項６】
前記特徴点抽出部は、前記内部領域に対応する凸包領域を生成し、該凸包領域の重心が前記近似平面に投影された点を、第３の特徴点として抽出し、
前記手指動作検出部は、前記特徴点抽出部により抽出された、前記第１の特徴点又は第２の特徴点の情報、前記第３の特徴点の情報、及び、前記近似平面に関する情報に基づいて、前記手指の姿勢を検出する
請求項５に記載の手指動作検出装置。
【請求項７】
前記内部領域抽出部は、前記画像を構成する各画素において、隣接する画素との深度の差を算出して、前記算出した深度の差をその画素の勾配値とし、前記勾配値を所定の閾値を用いて２値化することにより前記手指の輪郭部分に対応する勾配領域を抽出し、該勾配領域の情報に基づいて、前記内部領域を抽出する
請求項３〜６のいずれか一項に記載の手指動作検出装置。
【請求項８】
前記内部領域抽出部は、前記内部領域が抽出されなかった場合には、前記画像内において、前記手指の複数の指先の位置を検出し、該複数の指先の位置から、前記２本の指先の位置を特定し、該特定された前記２本の指先の位置及び前記勾配領域の情報に基づいて、前記内部領域に対応する擬似内部領域を抽出する
請求項７に記載の手指動作検出装置。
【請求項９】
前記特徴点抽出部は、前記画像において、前記内部領域に対応する凸包領域を生成し、該凸包領域を所定の比率で膨張させて膨張凸包領域を生成し、該膨張凸包領域から該膨張凸包領域内の該凸包領域と重なる領域を除去した差分領域を生成し、該差分領域から該差分領域内の前記勾配領域と重なる領域を除去して前記手指領域を抽出する
請求項７又は８に記載の手指動作検出装置。
【請求項１０】
手指の形状及び高さの情報を有する画像を取得する処理と、
前記取得された前記画像から、前記手指の所定動作に対応する前記手指の第１の形状、又は、前記手指の所定動作以外の動作に対応する前記手指の第２の形状を検出する処理と、
前記検出された前記第１の形状の情報又は第２の形状の情報に基づいて、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報と、前記検出結果に対応する情報とを検出する処理とを含む
手指動作検出方法。
【請求項１１】
手指の形状及び高さの情報を有する画像を取得する処理と、
前記取得された前記画像から、前記手指の所定動作に対応する前記手指の第１の形状、又は、前記手指の所定動作以外の動作に対応する前記手指の第２の形状を検出する処理と、
前記検出された前記第１の形状の情報又は第２の形状の情報に基づいて、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報と、前記検出結果に対応する情報とを検出する処理とを、情報処理装置に実装して実行させる
手指動作検出プログラム。
【請求項１２】
手指の形状及び高さの情報を有する画像を取得する画像取得部と、
前記画像取得部によって取得された前記画像から、前記手指の所定動作に対応する前記手指の第１の形状、又は、前記手指の所定動作以外の動作に対応する前記手指の第２の形状を検出する手指形状検出部と、
前記手指形状検出部で検出された前記第１の形状の情報又は第２の形状の情報に基づいて、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報と、前記手指形状検出部の検出結果に対応する情報とを検出する手指動作検出部と、
処理対象となる仮想物体を表示するディスプレイ装置と、
前記手指動作検出部で検出された、前記手指の３次元空間上の位置及び前記手指の姿勢の少なくとも一方の情報と、前記手指形状検出部の検出結果に対応する情報とを用いて、前記ディスプレイ装置に表示された前記仮想物体に所定の処理を施す仮想物体処理部とを備えた
仮想物体処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手指動作検出装置、手指動作検出方法、手指動作検出プログラム、及び仮想物体処理システムに関する。
【背景技術】
【０００２】
従来、３ＤＣＡＤ（three-dimensional Computer Aided Design）や３ＤＣＧ（Computer Graphics）ソフトウェア等のツールを用いて、情報処理装置上で仮想的な３次元物体を生成したり、生成した仮想３次元物体を操作したりする技術が存在する。これらのツールでは、一般的に、入力インターフェースとしてマウスと呼ばれるポインティングデバイスが使用されている。ところが、マウスは２次元の平面上を移動するものであるため、仮想３次元物体を操作する場合にも、その操作は２次元上で行う必要がある。したがって、仮想３次元物体を直感的に操作したい場合においては、マウスは最適な入力インターフェースであるとは言い難い。
【０００３】
また近年、例えば３Ｄディスプレイ技術の一般化や安価な３Ｄプリンタの登場など、出力装置への３Ｄ技術の適用が普及しており、直感的に使える３次元空間操作用の入力インターフェースへの需要が高まっている。このような３次元空間操作用の入力インターフェースでは、直感性を損なわないためにも、人間が現実世界で行うような動きを、特別な入力装置を介することなく入力できることが望ましい。
【０００４】
非特許文献１及び非特許文献２には、例えば親指と人差し指等の、少なくとも２本の指の指先同士を接触させる「つまみ動作」を認識し、その認識結果を操作入力として用いる入力インターフェースが記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Andrew D. Wilson, “Robust Computer Vision-Based Detection of Pinching for One and Two-Handed Gesture Input”, UIST ’06, Proceeding of the 19th annual ACM symposium on User interface software and technology, ACM, ACM Press, pp.255-258, 2006
【非特許文献２】福地健太郎, 佐藤俊樹, 間宮暖子, 小池英樹,“指をつまむジェスチャを認識するテーブルトップエンタテインメントシステム向け入力手法とその応用”, 日本バーチャルリアリティ学会論文誌, Vol.15, No.2, pp.157-164,2010
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１及び非特許文献２には、つまみ動作により入力を行える入力インターフェースを用いて、仮想３次元物体を操作する技術が提案されているが、この分野では、現実空間における実際の手指動作による操作感により近い操作感で、仮想３次元物体に対して所定の処理を行える技術の開発が望まれていた。
【０００７】
本発明は、仮想３次元物体に対する操作を、現実空間における実際の手指動作による操作感により近い操作感で行えるようにし、仮想３次元物体に対する操作をより直感的に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の手指動作検出装置は、画像取得部と、手指形状検出部と、手指動作検出部とを備える構成とし、各部の構成及び機能を次のようにする。画像取得部は、手指の形状及び高さの情報を有する画像を取得する。手指形状検出部は、画像取得部によって取得された画像から、手指の所定動作に対応する手指の第１の形状、又は、手指の所定動作以外の動作に対応する手指の第２の形状を検出する。手指動作検出部は、手指形状検出部で検出された第１の形状の情報又は第２の形状の情報に基づいて、手指の３次元空間上の位置及び手指の姿勢の少なくとも一方の情報と、手指形状検出部の検出結果に対応する情報とを検出する。
【０００９】
また、本発明の手指動作検出方法は、まず、手指の形状及び高さの情報を有する画像を取得する。次いで、取得された画像から、手指の所定動作に対応する手指の第１の形状、又は、手指の所定動作以外の動作に対応する手指の第２の形状を検出する。次いで、検出された第１の形状の情報又は第２の形状の情報に基づいて、手指の３次元空間上の位置及び手指の姿勢の少なくとも一方の情報と、手指形状検出部の検出結果に対応する情報とを検出する。
【００１０】
また、本発明の手指動作検出プログラムは、上記本発明の手指動作検出方法の各処理を、情報処理装置に実装して実行させるための手指動作検出プログラムである。
【００１１】
また、本発明の仮想３次元物体処理システムは、画像取得部と、手指形状検出部と、手指動作検出部と、ディスプレイ装置と、仮想物体処理部とを備える構成とし、各部の構成及び機能を次のようにする。画像取得部は、手指の形状及び高さの情報を有する画像を取得する。手指形状検出部は、画像取得部によって取得された画像から、手指の所定動作に対応する手指の第１の形状、又は、手指の所定動作以外の動作に対応する手指の第２の形状を検出する。手指動作検出部は、手指形状検出部で検出された第１の形状の情報又は第２の形状の情報に基づいて、手指の３次元空間上の位置及び手指の姿勢の少なくとも一方の情報と、手指形状検出部の検出結果に対応する情報とを検出する。ディスプレイ装置は、処理対象となる仮想物体を表示する。仮想物体処理部は、手指動作検出部で検出された、手指の３次元空間上の位置及び手指の姿勢の少なくとも一方の情報と、手指形状検出部の検出結果に対応する情報とを用いて、ディスプレイ装置に表示された仮想物体に所定の処理を施す。
【発明の効果】
【００１２】
本発明によれば、仮想物体に対して所定の処理を施す操作を、手指の動作によってより直感的に行えるようになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態における仮想３次元物体処理システム１のハードウェア構成図である。
【図２】本発明の一実施形態における仮想３次元物体処理システム１の機能構成図である。
【図３】本発明の一実施形態におけるつまみ動作時の指先の位置及び手指の姿勢と、それらを規定する座標系との関係を示す説明図である。
【図４】本発明の一実施形態におけるフィルタ処理を説明するための図である。
【図５】本発明の一実施形態における勾配領域の抽出例を示す図である。
【図６】本発明の一実施形態における勾配領域の抽出に使用する閾値の調整例を示す図である。
【図７】本発明の一実施形態における内部領域の抽出処理を説明するための図である。
【図８】本発明の一実施形態における内部領域の抽出結果の各種例を示す図である。
【図９】本発明の一実施形態における特徴点抽出部による勾配領域、内部領域、凸包領域及び膨張凸包領域の抽出処理を説明するための図である。
【図１０】本発明の一実施形態における特徴点抽出部による手指領域の抽出処理を説明するための図である。
【図１１】本発明の一実施形態における特徴点抽出部による凸包領域の重心の抽出処理を説明するための図である。
【図１２】本発明の一実施形態における特徴点抽出部による手首領域の重心の抽出処理を説明するための図である。
【図１３】本発明の一実施形態における特徴点抽出部による凸包領域の重心及び手首領域の重心の抽出結果の例を示す図である。
【図１４】本発明の一実施形態における特徴点抽出部による指先の接触位置及び手指の姿勢を示す第１の姿勢ベクトルの抽出処理を説明するための図である。
【図１５】本発明の一実施形態におけるパラメータ算出部によって算出される第１の姿勢ベクトル及び第２の姿勢ベクトルの例を示す図である。
【図１６】本発明の一実施形態における非つまみ動作時の注目画素の孤立度評価処理を説明するための図である。
【図１７】本発明の一実施形態における非つまみ動作時の孤立度の算出結果の各種例を示す図である。
【図１８】本発明の一実施形態における距離画像及び孤立度画像の例を示す図である。
【図１９】本発明の一実施形態における非つまみ動作時の指先位置の抽出処理例を示す図である。
【図２０】本発明の一実施形態における非つまみ動作時の擬似内部領域の抽出処理を示す図である。
【図２１】本発明の一実施形態における非つまみ動作時の親指の位置の特定方法を説明するための図である。
【図２２】本発明の一実施形態における非つまみ動作時の親指の位置の特定方法を説明するための図である。
【図２３】本発明の一実施形態における特徴点抽出部が特徴点の算出時に用いる各種画像と、算出される各種特徴点との対応関係を示す図である。
【図２４】本発明の一実施形態における仮想３次元物体制御パラメータの取得手法を示すフローチャートである。
【図２５】本発明の一実施形態における仮想３次元物体処理システムの具体的な外観構成例を示す図である。
【図２６】本発明の一実施形態における深度センサの撮影範囲及びジェスチャの認識範囲を示す図である。
【図２７】本発明の一実施形態における手指の位置及び姿勢と仮想３次元物体の位置及び姿勢との対応を示す図である。
【図２８】本発明の一実施形態における仮想３次元物体制御部が備える処理機能の例を示す図である。
【図２９】本発明の一実施形態における仮想３次元物体処理手法の例を示すフローチャートである。
【図３０】本発明の一実施形態における仮想３次元物体の造形物の例を示す図である。
【図３１】本発明の一実施形態における各種姿勢ベクトルと、変形例における各種姿勢ベクトルとを比較した図である。
【図３２】本発明の一実施形態及び変形例における第１の姿勢ベクトル及び第２の姿勢ベクトルで表される手指の姿勢の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明に係る実施形態について説明する。本発明の一実施形態に係る仮想３次元物体処理システムは、現実空間上における手指の動作を認識及び解析して得た各種制御パラメータを用いて、仮想空間上の３次元物体を制御するものである。
【００１５】
＜ハードウェア構成＞
図１は、一実施形態に係る仮想３次元物体処理システム１のハードウェア構成図である。仮想３次元物体処理システム１は、例えば、ＣＰＵ（Central Processing Unit）１０と、ドライブ装置１１と、補助記憶装置１３と、メモリ装置１４と、インターフェース装置２０と、入力装置２１と、ディスプレイ装置２２と、画像入力インターフェース２３と、深度センサ３０とを備える。これらの構成要素は、バスやシリアル回線等を介して互いに接続される。
【００１６】
ＣＰＵ１０は、例えば、プログラムカウンタ、命令デコーダ、各種演算器、ＬＳＵ（Load Store Unit）、汎用レジスタ等を有する演算処理装置で構成される。
【００１７】
ドライブ装置１１は、その内部に装着された記憶媒体１２からプログラムやデータなどを読み込む装置である。なお、本実施形態では、記憶媒体１２は、例えば、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ＵＳＢ（Universal Serial Bus）メモリ等の可搬型の記憶媒体である。また、補助記憶装置１３は、例えば、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどで構成される。
【００１８】
本実施形態において、プログラムが記録された記憶媒体１２がドライブ装置１１に装着された場合には、該プログラムは、記憶媒体１２からドライブ装置１１を介して補助記憶装置１３にインストールされる。なお、プログラムのインストール手法は、この例に限定されない。例えば、インターフェース装置２０が、ネットワークを介して他のコンピュータからプログラムをダウンロードし、該ダウンロードしたプログラムを補助記憶装置１３にインストールしてもよい。なお、ネットワークは、インターネット、ＬＡＮ（Local Area Network）、無線ネットワーク等で構成される。また、例えば、プログラムが、仮想３次元物体処理システム１の出荷時に、補助記憶装置１３や図示しないＲＯＭ（Read Only Memory）等に予め格納（実装）されていてもよい。
【００１９】
上述のようにしてインストールされた各種プログラム、又は、予め格納された各種プログラムをＣＰＵ１０が実行することにより、本実施形態の仮想３次元物体処理システム１における後述の各種機能（各種処理）が実現される。
【００２０】
メモリ装置１４は、例えば、ＲＡＭ（Random Access Memory）やＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）などの記憶装置で構成される。インターフェース装置２０は、上述した各種ネットワーク等に接続され、該ネットワークを介して、外部の各種装置に対して所定のデータやプログラムなどの入出力動作を行う。
【００２１】
入力装置２１は、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等の各種入力操作装置で構成される。ディスプレイ装置２２は、例えば、ＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）等の表示装置で構成される。なお、仮想３次元物体処理システム１は、ディスプレイ装置２２以外では、例えば、プリンタ、スピーカ等の各種出力装置を備えていてもよい。
【００２２】
画像入力インターフェース２３は、深度センサ３０に接続される。そして、画像入力インターフェース２３は、深度センサ３０から入力された距離画像を、メモリ装置１４や補助記憶装置１３に出力する。
【００２３】
深度センサ３０は、物体の距離画像を撮影するセンサカメラである。距離画像とは、物体の深度情報（高さの情報）を２次元上に画像化した画像である。深度の計測方式としては、例えば、ＴＯＦ（Time-Of-Flight）方式を用いることができる。ＴＯＦ方式とは、センサから照射した赤外線が物体表面に反射されてセンサに戻ってくるまでの時間の長さから、センサから物体までの距離、すなわち物体の深度を算出する方式である。なお、深度の計測方式としては、ＴＯＦ方式に限定されるものではなく、例えば、パターン照射方式等の他の方式を用いてもよい。深度センサ３０は、撮影した物体の距離画像を、画像入力インターフェース２３に出力する。
【００２４】
深度センサ３０には、例えば、SoftKinetic社のDepthSense（登録商標）325等を使用することができる。DepthSense325は、３２０×２４０ピクセルの深度解像度を有し、最大６０ｆｐｓ（frames per second）で距離画像の撮影を行えるセンサカメラである。
【００２５】
＜機能構成＞
図２は、本実施形態の仮想３次元物体処理システム１の機能構成図である。仮想３次元物体処理システム１は、ＣＰＵ１０がプログラムを実行することにより機能する機能ブロックとして、手指動作検出装置部４０と、仮想物体操作部５０（仮想物体処理部）とを備える。手指動作検出装置部４０は、画像取得部４１と、フィルタ処理部４２と、内部領域抽出部４３と、つまみ動作検出部４４（手指形状検出部）と、特徴点抽出部４５と、パラメータ算出部４６（手指動作検出部）とを含む。これらの各機能ブロックは、例えばメモリ装置１４に対して各種情報（データ）を入出力する。そして、メモリ装置１４は、各機能ブロックから出力された各種情報を記憶する。
【００２６】
これらの機能ブロックは、ソフトウェアで構成することができる。この場合、各機能ブロックは、互いに明確に分離したプログラムによって実現されるブロックであってもよいし、例えば、サブルーチンや関数などのように、他のプログラムによって呼び出されるプログラムにより実現されるブロックであってもよい。また、これらの機能ブロックの一部又は全てが、例えば、ＬＳＩ（Large Scale Integrated circuit）、ＩＣ（Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等のハードウェアで構成されていてもよい。
【００２７】
＜仮想３次元物体処理手法＞
［仮想３次元物体処理手法の概要］
次に、本実施形態における仮想３次元物体処理手法の内容を説明する。
【００２８】
本実施形態における仮想３次元物体処理手法では、まず、手指動作検出装置部４０が、手指によるつまみ動作を検出し、該検出により得られた情報に基づいて、仮想３次元物体操作制御用の各種制御パラメータを検出する。続いて、仮想物体操作部５０が、手指動作検出装置部４０により検出された各種制御パラメータに基づいて、仮想３次元物体に所定の処理を施す。なお、本実施形態における「つまみ動作」とは、例えば親指と人差し指等の、少なくとも２本の指の指先同士を接触させる動作を指す。
【００２９】
［手指動作検出手法の概要］
本実施形態の手指動作検出手法では、まず、深度センサ３０で得られた手指の深度分布情報を含む距離画像から、手指によるつまみ動作を検出する。次に、つまみ動作を行っている手指の指先の３次元空間上の位置、及び、つまみ動作を行っている手指の姿勢を推定する。この指先の３次元空間上の位置、及び、つまみ動作を行っている手指の姿勢の情報は、仮想３次元物体操作制御用のパラメータとして使用される。
【００３０】
また、本実施形態の手指動作検出取得手法では、つまみ動作の検出情報を用いて、つまみ動作によって指先同士が接触している状態と、つまみ動作が行われておらず指先同士が接触していない状態とを検出する。そして、この２つの状態間の遷移を検出して、検出した結果をトリガ入力パラメータとする。トリガ入力パラメータとは、仮想空間上の仮想物体に対して所定の作用を与える（所定の処理を施す）か否かを決定するためのパラメータである。
【００３１】
本実施形態の手指動作検出手法の具体的な内容を説明する前に、ここで、前述した「指先の３次元空間上の位置」と「手指の姿勢」の定義を簡単に説明する。本実施形態では、つまみ動作を行っている手指における指先の位置として、空間座標系（カメラ座標系）における、指先同士の接触位置を採用する。
【００３２】
指先の接触位置及び手指の姿勢を規定する空間座標系を、図３に示す。図３に示した座標系において四角錐で囲まれた領域は、深度センサ３０（図１参照）の撮影範囲である。四角錐の頂点は深度センサ３０の焦点位置に対応する。図３中の略四角形の平面Ｐａは、つまみ動作を行っている人差し指及び親指により形成される手指領域Ａｓ（図３中の斜線のハッチング領域）の近似平面である。本実施形態では、近似平面Ｐａ上における、指先同士（図３に示した例では親指及び人差し指）の接触位置に対応する特徴点Ｐ（以下、「接触点Ｐ」（第１の特徴点）という）を、「指先の３次元空間上の位置」と規定する。
【００３３】
また、本実施形態では、近似平面Ｐａにおいて、つまみ動作により手指領域Ａｓの内側に形成される内部領域の凸包領域Ａｃの重心に対応する特徴点Ｏ（以下、「重心Ｏ」（第３の特徴点）という）から、指先の接触点Ｐに向かう方向の３次元ベクトルを「第１の姿勢ベクトルＶｄ」として抽出する。さらに、接触点Ｐにおける近似平面Ｐａの法線ベクトル（近似平面に関する情報）を「第２の姿勢ベクトルＶｎ」として抽出する。そして、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎを、手指の姿勢を示すパラメータとして採用する。上述した各種パラメータの算出方法については後述する。
【００３４】
［手指動作検出手法の詳細］
次に、本実施形態の手指動作検出手法の具体的な内容について説明する。本実施形態の手指動作検出手法は、図２に示した手指動作検出装置部４０を構成する各部によって実行される。よって、手指動作検出装置部４０の各部で行われる処理を順に説明することにより、手指動作検出手法の具体的な内容を説明する。
【００３５】
（画像取得部の処理）
画像取得部４１は、深度センサ３０（図１参照）から出力された深度情報を含む距離画像を取得する。深度センサ３０から出力される深度情報には、深度センサ３０によって撮影された手指の形状に対応する深度分布情報が含まれる。
【００３６】
（フィルタ処理部の処理）
フィルタ処理部４２は、深度センサ３０から出力された距離画像に所定のフィルタ処理を施して、距離画像に含まれるノイズを除去する。本実施形態では、フィルタ処理部４２は、メディアンフィルタ及びガウシアンフィルタの２つのフィルタを使ってフィルタ処理を行う。メディアンフィルタは、距離画像において局所的に存在するショットノイズを除去する目的で使用し、ガウシアンフィルタは、距離画像全体を平滑化する目的で使用する。このフィルタ処理では、メディアンフィルタ及びガウシアンフィルタが、この順に使用される。
【００３７】
図４Ａは、フィルタ処理前の距離画像における深度情報の分布を示す図であり、図４Ｂは、フィルタ処理後の距離画像における深度情報の分布を示す図である。図４Ａ及び図４Ｂから明らかなように、このフィルタ処理部４２のフィルタ処理により、深度情報に含まれるノイズが除去され、手指の領域がより認識されやすくなっていることが分かる。
【００３８】
なお、フィルタ処理部４２で使用するフィルタは、上記例に限定されない。ショットノイズの除去を目的とするフィルタとしては、メディアンフィルタに限定されず、同様の効果が得られるフィルタであれば、任意のフィルタを用いることができる。また、画像全体の平滑化を目的とするフィルタとしては、ガウシアンフィルタに限定されず、平滑化を行えるフィルタであれば、任意のフィルタ（例えば、ブラーフィルタ、バイラテラルフィルタ等）を用いることができる。また、本実施形態では、必ずしも２種類のフィルタを用いる必要はなく、少なくとも平滑化を目的とするフィルタを用いればよい。
【００３９】
（内部領域抽出部の処理）
内部領域抽出部４３は、フィルタ処理部４２によってフィルタ処理が施された距離画像から、つまみ動作により生成される内部領域Ａｉ（後述の図７参照）を抽出する。内部領域抽出部４３は、内部領域Ａｉの抽出を行う際に、まず、距離画像から手指の輪郭に対応する領域を抽出する処理を行う。手指の輪郭に対応する領域の抽出は、距離画像を構成する各画素における、隣接画素に対する深度の勾配情報（深度の差に関する情報）を用いて行う。
【００４０】
距離画像の各画素における勾配情報は、例えばＳｃｈａｒｒフィルタを用いることにより取得できる。なお、勾配情報の取得に用いるフィルタとしては、Ｓｃｈａｒｒフィルタに限定されず、勾配情報を取得可能なフィルタであれば、任意のフィルタを用いることができ、例えば、Ｓｏｂｅｌフィルタ、Ｐｒｅｗｉｔフィルタ、Ｒｏｂｅｒｔｓフィルタ等のフィルタを用いることができる。
【００４１】
内部領域抽出部４３は、まず、例えば３×３画素のサイズを有するＳｃｈａｒｒフィルタを用いて、距離画像の各画素におけるｘ方向及びｙ方向の勾配を検出する。そして、内部領域抽出部４３は、ｘ方向及びｙ方向において得られた各勾配の２乗和の平方根を算出し、該算出した値を対象画素の勾配値ｇｒａｄとする。勾配値ｇｒａｄは、以下の式（１）で示すことができる。なお、式（１）中の「ｇｒａｄｘ」はｘ方向の勾配であり、「ｇｒａｄｙ」はｙ方向の勾配である。
【００４２】
【数１】
2015114762.tif 000003
【００４３】
距離画像全体において勾配値ｇｒａｄの値が大きい画素のみを抽出することで、手の輪郭に対応する領域である「勾配領域」を抽出することができる。この勾配領域の抽出は、例えば、各画素の勾配値ｇｒａｄを、所定の閾値を用いて２値化することにより行うことができる。
【００４４】
図５Ａは、ｘ方向の勾配ｇｒａｄｘの値の分布を示す画像であり、図５Ｂは、ｙ方向の勾配ｇｒａｄｙの値の分布を示す画像である。図５Ｃは、勾配値ｇｒａｄの値の分布を示す画像であり、図５Ｄは、勾配領域Ａｇとして抽出された領域を示す画像である。内部領域抽出部４３が勾配値ｇｒａｄの２値化を行う際に用いる閾値として適切な値を設定することにより、図５Ｄに示すように、手の輪郭に対応する領域に、所定の幅を有する白い線状領域が抽出され、この領域が勾配領域Ａｇとなる。
【００４５】
勾配領域Ａｇとして抽出される線状領域の幅（大きさ）は、勾配値ｇｒａｄの閾値を変えることにより変化させることができる。図６Ａ〜図６Ｆに、閾値を変化させた場合における、勾配領域Ａｇとして抽出される線状領域の幅（大きさ）の変化例を示す。図６Ａは、手指の原画像であり、図６Ｂ〜図６Ｆは、勾配領域Ａｇを抽出した後の各種画像である。
【００４６】
図６Ｂに示した画像は、最も小さい勾配値ｇｒａｄの閾値を用いて勾配領域Ａｇを抽出した画像であり、図６Ｆに示した画像は、最も大きな閾値を用いて勾配領域Ａｇを抽出した画像である。また、図６Ｂから図６Ｆに向かって、勾配値ｇｒａｄの閾値が大きくなる。図６Ｂ〜図６Ｆに示されるように、閾値を小さくするほど抽出される勾配領域Ａｇの面積は大きくなり、閾値を大きくするほど抽出される勾配領域Ａｇの面積は小さくなる。
【００４７】
内部領域抽出部４３は、上述のようにして抽出された勾配領域Ａｇから内部領域Ａｉを抽出する。内部領域Ａｉは、手指のつまみ動作によって形成される。図７Ａは、つまみ動作が行われていない状態において抽出される勾配領域Ａｇを示し、図７Ｂは、つまみ動作が行われた状態において抽出される勾配領域Ａｇを示す。図７Ｂに示すようにつまみ動作が行われた場合は、勾配領域Ａｇが、手の外側の輪郭部分に対応する大きな面積を有する領域と、親指及び人差し指によって周囲を囲われた内側の輪郭部分に対応する面積の小さい領域とに分離される。内部領域抽出部４３は、図７Ｃに示すように、つまみ動作により発生したこの面積の小さい領域を、内部領域Ａｉ（斜線ハッチング部分参照）として抽出する。図７Ｄは、図７Ｃの画像から内部領域Ａｉのみを抽出した画像である。
【００４８】
（つまみ動作検出部）
つまみ動作検出部４４は、内部領域抽出部４３が抽出した内部領域Ａｉの面積の時間方向における増減の情報、及び増減の連続性の情報に基づいて、つまみ動作の有無を検出する。つまみ動作検出部４４は、内部領域Ａｉ内の画素数をカウントする処理を毎フレーム行い、カウントされた画素数を、現フレームと前フレームとで比較する処理を行う。つまみ動作検出部４４は、内部領域Ａｉとしてカウントされた画素数が、前フレームのそれに対して一定数以上増えている場合には、つまみ動作が行われたと判断する。そして、つまみ動作検出部４４は、つまみ動作検出時の手指の形状を、第１の形状として検出する。
【００４９】
逆に、内部領域Ａｉとしてカウントされた画素数が、前フレームのそれに対して一定数以上減った場合には、つまみ動作検出部４４は、つまみ動作が解除されたと判断する。また、現フレームで最大の内部領域Ａｉとしてカウントされた画素数が一定値以下である場合、例えば、勾配領域Ａｇ中に、つまみ動作以外の要因により分離された小さな面積の勾配領域が存在する場合には、つまみ動作検出部４４は、つまみ動作は行われていないと判断する。そして、つまみ動作検出部４４は、つまみ動作が解除された場合の手指の形状、又はつまみ動作が行われていない手指の形状を、第２の形状として検出する。
【００５０】
図８Ａ〜図８Ｃは、つまみ動作が行われた状態において抽出された内部領域Ａｉの例を示す図である。図８Ａ〜図８Ｃにおいて、内部領域Ａｉは斜線でハッチングされた部分である。上述した手法を用いて、内部領域抽出部４３が内部領域Ａｉを抽出することにより、図８Ａに示すように、親指と人差し指とにより形成される内部領域Ａｉの面が、深度センサ３０のＸＹ平面（不図示）に対して略平行である場合だけでなく、図８Ｂに示すように斜めに傾いている場合や、図８Ｃに示すように内部領域Ａｉがループ状の領域で表されない場合であっても、つまみ動作検出部４４は、つまみ動作の有無を適切に判定することができる。
【００５１】
（特徴点抽出部及びパラメータ算出部の処理＜つまみ動作検出時＞）
特徴点抽出部４５は、指先の接触点Ｐの３次元空間上の位置及び手指の姿勢を検出するために必要な、手指の特徴点を抽出する。手指の特徴点は、内部領域Ａｉ周辺の手指領域Ａｓを構成する複数の画素からなる点群を平面に近似することにより生成された、近似平面Ｐａ上の点として取得される。
【００５２】
特徴点抽出部４５は、手指領域Ａｓの近似平面Ｐａを算出する際、最初に、距離画像から手指領域Ａｓを抽出する処理を行う。手指領域Ａｓとして抽出したい領域は、つまみ動作によって接触した指先同士を含む手指の領域、すなわち、つまみ動作に関与する２本の指により形成される手指領域であり、この領域は、内部領域Ａｉの外周周辺に存在する。
【００５３】
特徴点抽出部４５は、手指領域Ａｓの抽出を行う際、まず、内部領域Ａｉの全領域を包含する凸包領域Ａｃを抽出する。図９Ａは、手指の輪郭に相当する勾配領域Ａｇを示す図であり、図９Ｂは、図９Ａに示した画像から内部領域Ａｉのみを抽出した図である。図９Ｃは、内部領域Ａｉを包含する凸包領域Ａｃを示す図である。図９Ｂに示す例では、内部領域Ａｉとしては、つまみ動作によって接触した親指と人差し指との内側の領域、並びに、接触している親指及び人差し指の向こう側（奥側）に位置する手の腹の輪郭部分に相当する領域が抽出されている。それゆえ、図９Ｂに示した内部領域Ａｉは、略三角形の辺に沿って延在したループ状の勾配領域と、該三角形の２つの角部からそれぞれ外側に伸びる２本の線状の勾配領域とで構成される。特徴点抽出部４５は、この内部領域Ａｉに対応する凸包を求めることにより、図９Ｃに示すような、内部領域Ａｉのすべての領域を包含する凸包領域Ａｃを生成する。
【００５４】
続いて、特徴点抽出部４５は、凸包領域Ａｃに所定の膨張処理を施して、膨張凸包領域Ａｅを生成する。図９Ｄに、膨張凸包領域Ａｅを示す。膨張処理とは、凸包領域Ａｃの形状を保ったまま、凸包領域Ａｃの面積を所定の割合だけ外側の方向に拡大させる処理である。この膨張処理は、内部領域Ａｉの周辺に存在する手指の領域を抽出する目的で行う。この膨張処理では、手指の外側の輪郭部分に対応する勾配領域Ａｇの一部（図９Ａ参照）と、膨張凸包領域Ａｅの外周部の一部（図９Ｄ参照）とが重なるように、凸包領域Ａｃの膨張比率が設定される。
【００５５】
続いて、特徴点抽出部４５は、膨張凸包領域Ａｅから凸包領域Ａｃを差し引くことにより、差分領域Ａｄを求める。図１０Ａは、差分領域Ａｄを示す図である。特徴点抽出部４５は、この差分領域Ａｄから、勾配領域Ａｇと重複する部分をさらに差し引くことにより、手指領域Ａｓを求める。なお、差分領域Ａｄ及び勾配領域Ａｇとの論理積を求めることによっても、手指領域Ａｓを求めることができる。図１０Ｂに、手指領域Ａｓ（斜線のハッチング部分）を示す。
【００５６】
図９Ｄに示した膨張凸包領域Ａｅは、距離画像内の指の太さ、及び／又は膨張処理時の膨張の比率によっては、膨張凸包領域Ａｅの外周部が、勾配領域Ａｇの外側の領域にまで達する場合もある。上述のように、膨張凸包領域Ａｅから、凸包領域Ａｃだけでなく勾配領域Ａｇも減算することにより、膨張凸包領域Ａｅとして手指の外側の領域にまで達する領域が抽出されてしまった場合にも、実際の手指に対応する部分のみを手指領域Ａｓとして抽出することが可能となる。
【００５７】
図１０Ｃは、図９Ａに示した勾配領域Ａｇと、図９Ｂに示した内部領域Ａｉと、図１０Ｂに示した手指領域Ａｓとを、すべて重ねて示した図である。上述した手順に従って特徴点抽出部４５が手指領域Ａｓを算出することにより、図１０Ｃに示したように、手指領域Ａｓとして、内部領域Ａｉを囲う位置に存在する、親指及び人差し指により構成される手指の領域が抽出される。
【００５８】
特徴点抽出部４５は、手指領域Ａｓを抽出した後、手指領域Ａｓを空間座標系の平面に近似する処理を行う。手指領域Ａｓを構成する各画素は、それぞれ３次元座標を持つ。したがって、手指領域Ａｓを構成するすべての画素の３次元座標に対して、最小二乗法を用いた重回帰分析を行うことにより、点群（画素の群）からなる手指領域Ａｓを、平面に近似することができる。手指領域Ａｓを近似した平面である近似平面Ｐａは、以下の式（２）で表すことができる。なお、下記式（２）中の「ａ」及び「ｂ」は近似平面Ｐａの法線ベクトルに関する係数であり、「ｃ」は定数である。
【００５９】
【数２】
2015114762.tif 000004
【００６０】
特徴点抽出部４５は、続いて、手指の姿勢を求めるために必要となる手指の特徴点を距離画像上から抽出し、抽出した各特徴点を近似平面Ｐａ上に投影することにより、近似平面Ｐａにおける各特徴点の３次元座標を求める。手指の特徴点として、特徴点抽出部４５は、まず距離画像における凸包領域Ａｃの重心Ｏ′を算出する。図１１Ａは、勾配領域Ａｇに凸包領域Ａｃを重ねて示した図であり、図１１Ｂは、凸包領域Ａｃ及びその重心Ｏ′を示す図である。
【００６１】
図１１Ｃは、重心Ｏ′を近似平面Ｐａに投影した状態を示す図である。重心Ｏ′を近似平面Ｐａに投影した点が、上述した近似平面Ｐａ上における重心Ｏとなる。図１１Ｃ中の四角錐で囲まれた範囲は、深度センサ３０の撮影範囲である。四角錐の頂点が深度センサ３０の焦点と対応しており、この位置を原点（（ｘ，ｙ，ｚ）＝（０，０，０））として３次元空間が形成される。手指領域Ａｓを近似した近似平面Ｐａも、この３次元空間上に位置するものであるため、近似平面Ｐａ上の特徴点の一つである重心Ｏの座標も、四角錐の頂点を原点とする３次元の座標によって表現される。
【００６２】
続いて、特徴点抽出部４５は、手首領域を構成する点群を抽出する。手首領域を構成する点群を抽出する際、特徴点抽出部４５は、まず、距離画像において勾配領域Ａｇに属さない領域であり、かつ深度が所定の値以内である領域を、手領域Ａｆとして抽出する。図１２Ａは、特徴点抽出部４５によって抽出された手領域Ａｆを示す図である。図１２Ａでは、白抜きの領域が手領域Ａｆであり、斜線のハッチング領域が勾配領域Ａｇである。
【００６３】
続いて、特徴点抽出部４５は、３次元空間上に、重心Ｏを中心とした手指を覆うような所定半径の球Ｂｌを定義する。なお、球Ｂｌの半径は、重心Ｏから手首領域付近までの距離に設定される。図１２Ｂに、重心Ｏと、手領域Ａｆ及び球Ｂｌとの関係を示す。特徴点抽出部４５は、手領域Ａｆと、球Ｂｌの境界（表面）との交差領域（点群）を、手首領域Ａｗとして抽出する。
【００６４】
さらに、特徴点抽出部４５は、手首領域Ａｗを構成する画素群を距離画像上から抽出し、該抽出された手首領域Ａｗの重心Ｎ′を求め、求めた重心Ｎ′を近似平面Ｐａに投影する。この処理を行うことにより、近似平面Ｐａにおける特徴点の一つである、手首の重心Ｎが求まる。図１２Ｃは、距離画像における手首領域Ａｗを示す図であり、図１２Ｄは、距離画像から抽出された手首領域Ａｗの重心Ｎ′を示す図である。図１３は、近似平面Ｐａ上の特徴点である、重心Ｏ及び手首の重心Ｎを示す図である。なお、ここでは手首領域Ａｗの重心Ｎ′をいったん距離画像から抽出された２次元画像上で算出し、該算出した重心Ｎ′を近似平面Ｐａ（３次元座標上）に投影して重心Ｎを求める例を説明したが、本発明はこれに限定されない。手首の重心Ｎを、直接３次元座標上で求めるようにしてもよい。
【００６５】
続いて、特徴点抽出部４５は、図１４に示すように、近似平面Ｐａにおいて重心Ｏと重心Ｎとを結ぶ線分ＯＮを対角線とする正方形Ｑを求め、その正方形Ｑを構成する４つの頂点のうち、重心Ｏ及び重心Ｎ以外の頂点であり、かつ手の甲側の頂点を、基準点Ｄとして抽出する。図１４は、重心Ｏ、重心Ｎ及び基準点Ｄの位置関係を簡略的に示した図である。
【００６６】
特徴点抽出部４５は、さらに、距離画像上において内部領域Ａｉを構成している画素であり、かつ、基準点Ｄから最も遠い位置に存在する点を算出し、その点を近似平面Ｐａ上に投影した点を、指先の接触点Ｐとして抽出する。図１４には、基準点Ｄを中心とし、指先の接触点Ｐを通る円Ｃを破線によって示している。
【００６７】
パラメータ算出部４６は、特徴点抽出部４５で抽出された各特徴点の情報を用いて、仮想物体の操作制御に必要な各種制御パラメータを算出する。本実施形態では、パラメータ算出部４６は、各種制御パラメータとして、つまみ動作における指先の接触位置の３次元座標、手指の姿勢を示す姿勢ベクトル、及びつまみ動作が行われたか否かを示すパラメータ（トリガ入力パラメータ）を算出する。
【００６８】
パラメータ算出部４６は、指先の接触位置の３次元座標として、特徴点抽出部４５が算出した指先の接触点Ｐ（図１４参照）の３次元座標を求める。手指の姿勢を示す姿勢ベクトルとしては、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎを求める。第１の姿勢ベクトルＶｄとは、近似平面Ｐａの面内方向のベクトルであり、図１４に示すように、指先の接触点Ｐにおいて重心Ｏから接触点Ｐに向かう方向（線分Ｌｎ１の延在方向）の３次元ベクトルである。第２の姿勢ベクトルＶｎとは、近似平面Ｐａの法線ベクトルである。
【００６９】
図１５に、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎの算出例を示す。本実施形態では、第１の姿勢ベクトルＶｄによって、近似平面Ｐａの面内方向における手指の回転方向及び回転量が表される。また、第２の姿勢ベクトルＶｎによって、基準となる平面に対する近似平面Ｐａ（手指）の傾き方向及び傾き量が表される。基準となる平面とは、例えば、カメラ座標系におけるＸＹ平面である。パラメータ算出部４６によって算出された第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎにより、近似平面Ｐａに近似された手指領域Ａｓの３次元空間における姿勢が取得される。
【００７０】
上述した特徴点抽出部４５での処理を、つまみ動作検出部４４によってつまみ動作が検出されている間中、距離画像が入力される度に（毎フレーム）行うことにより、近似平面Ｐａが実際の手指の動きに追従して生成される。その結果、つまみ動作が検出されている間は、パラメータ算出部４６によって、指先の接触点Ｐ、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎが、ほぼリアルタイムで取得される。
【００７１】
また、パラメータ算出部４６は、つまみ動作検出部４４によってつまみ動作が検出された時には、トリガをオンにするトリガ入力パラメータを出力し、つまみ動作が検出されなかった時には、トリガをオフにするトリガ入力パラメータを出力する。トリガをオンにするトリガ入力パラメータとは、例えば、マウスを入力インターフェースとして使用した場合における、クリック、ドラッグアンドドロップ操作の検出時に出力されるパラメータに対応するパラメータである。トリガをオフにするトリガ入力パラメータとは、これらのマウスの操作が解除された際に出力されるパラメータに対応するパラメータである。本実施形態では、トリガを、つまみ動作による仮想３次元物体への操作の有効／無効を切り替えるためのフラグとして使用する。また、パラメータ算出部４６は、トリガ入力パラメータ以外に、上述のようにして算出した指先の接触点Ｐの３次元位置と、手指の姿勢を示す第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎとを、制御パラメータとして出力する。
【００７２】
指先の接触点Ｐの位置ベクトルをｐ、第１の姿勢ベクトルＶｄをｄ、第２の姿勢ベクトルＶｎをｎと置くと、これらのベクトルは３次元ベクトルであるため、以下の式（３）〜（５）によって表すことができる。
ｐ＝（ｐｘ，ｐｙ，ｐｚ）…（３）
ｄ＝（ｄｘ，ｄｙ，ｄｚ）…（４）
ｎ＝（ｎｘ，ｎｙ，ｎｚ）…（５）
【００７３】
また、上記式（５）におけるｎｘ，ｎｙ，ｎｚは、以下の式（６）〜（８）によって表すことができる。
【００７４】
【数３】
2015114762.tif 000005
【００７５】
【数４】
2015114762.tif 000006
【００７６】
【数５】
2015114762.tif 000007
【００７７】
なお、本実施形態では、３次元空間における指先の接触位置及び手指の姿勢を示すパラメータとして、上記３つの３次元ベクトルを取得する例を挙げたが、本発明はこれに限定されない。求めた３次元ベクトルをオイラー角、クオータニオン等の別のパラメータに変換してもよいし、３次元ベクトルを求めずに、直接これらのパラメータを算出するようにしてもよい。
【００７８】
（特徴点抽出部及びパラメータ算出部の処理＜つまみ動作非検出時＞）
次に、つまみ動作非検出時における特徴点抽出処理及びパラメータ算出処理について、図１６〜図２２を参照して説明する。つまみ動作非検出時には、手指によって閉領域が形成されないため、内部領域抽出部４３により内部領域Ａｉが抽出されない。したがって、特徴点抽出部４５は、距離画像から検出された手指の形状の情報に基づいて、内部領域Ａｉに相当する擬似内部領域Ａｉ′を抽出し、この擬似内部領域Ａｉ′の情報を用いて手指の位置及び姿勢を検出する。
【００７９】
特徴点抽出部４５は、擬似内部領域Ａｉ′を求めるために、まず、距離画像より手の指先の領域を抽出する。距離画像上における手の指先の領域は、手領域内の端点あるいは極値点にあたる領域である。そのような領域に位置する画素は、周辺の画素との深度差が大きくなっていると考えられる。そこで、特徴点抽出部４５は、以下に示す手順によって距離画像上の各画素とその周辺の画素との深度差を評価し、その評価値に基づいて指先の領域を抽出する。
【００８０】
特徴点抽出部４５は、深度差の評価値の算出する際、まず、距離画像において所定の注目画素Ｐｉを抽出する。注目画素Ｐｉの抽出は、距離画像を構成するすべての画素を対象として行う。続いて、特徴点抽出部４５は、注目画素Ｐｉを起点とし、該起点から放射状に伸びた３２種類の方向（方位）を設定する。なお、３２種類の方向は、注目画素Ｐｉを中心とする回転方向において、略等間隔の角度で配置される。そして、各方向上に存在する画素のうち、注目画素Ｐｉから所定の距離の範囲内に存在する画素を、注目画素Ｐｉとの深度差の評価値の算出に用いる画素（以下、「比較画素」という）と定める。特徴点抽出部４５は、３２の方向のそれぞれにおいて、注目画素Ｐｉの深度と、該方向上に位置する各比較画素の深度とを比較する処理を行う。
【００８１】
図１６Ａは、注目画素Ｐｉを中心とする３２の方向のうちの、第１の方向に存在する比較画素を示した図であり、図１６Ｂは、時計回りの方向で第１の方向の隣に設定された第２の方向に存在する比較画素を示した図である。図１６Ｃは、時計回りの方向で第２の方向の隣に設定された第３の方向に存在する比較画素を示した図であり、図１６Ｄは、時計回りの方向で第３の方向の隣に設定された第４の方向に存在する比較画素を示した図である。図１６Ａ〜図１６Ｄにおいて、比較画素は、斜線のハッチングされた四角印及び黒塗りの四角印で示される。特徴点抽出部４５は、図１６Ａ〜図１６Ｄに示すように、深度の比較処理を行う方向を時計回り方向に一つずつ順にずらしながら、３２のすべての方向において、注目画素Ｐｉ及び比較画素間の深度差を評価する。
【００８２】
なお、図１６Ｂ〜図１６Ｄに示した第２〜第４の方向においては、比較画素の配置形態が階段状になり、直線にはならない。これらの方向においては、評価用に使用する比較画素として、注目画素Ｐｉと、注目画素Ｐｉから所定の距離離れた比較画素との間に引かれた仮想直線（不図示）になるべく近い位置に配置された画素が、選択されることが好ましい。なお、仮想直線になるべく近い位置に配置された画素が比較画素として選択される方法であれば、画素の選択方法はどのような方法であってもよい。
【００８３】
特徴点抽出部４５は、一つの方向の線分内に存在する複数の比較画素の中に、注目画素Ｐｉとの深度差が一定の範囲以上である比較画素が一つでも存在する場合には、注目画素Ｐｉは、その方向に対して孤立しているとみなす。一方、一つの方向の線分内に存在するすべての比較画素と注目画素Ｐｉとの深度差が一定の範囲以内である場合には、注目画素Ｐｉの深度とその方向上に存在する比較画素の深度とが、なだらかに連続しているとみなす。特徴点抽出部４５は、この評価の結果を、周囲の画素に対する注目画素Ｐｉの孤立度を示す３２段階の指数を用いて定量化する。より具体的には、特徴点抽出部４５は、３２方向のうちの、注目画素Ｐｉが孤立しているとみなされる方向の数を、注目画素Ｐｉの「孤立度」とする。
【００８４】
図１７Ａは、特定の一本の指が空間上に単独で存在する場合の画像例を示し、図１７Ｂは、図１７Ａに示した指先上に設定された注目画素Ｐｉの孤立度の評価例を示す。図１７Ｂにおいて、注目画素Ｐｉが周囲の比較画素に対して孤立していると判断された領域は破線で示し、注目画素Ｐｉの深度と周囲の比較画素の深度とがなだらかに連続していると判断された領域は、実線で示す。図１７Ｂに示す例では、破線の領域を含む線分の数、すなわち、注目画素Ｐｉが周囲の比較画素に対して孤立していると判断された方向の数は“２９”であるため、特徴点抽出部４５は、図１７Ａ及び１７Ｂに示した注目画素Ｐｉにおける孤立度を“２９”と設定する。
【００８５】
図１７Ｃは、特定の一本の指が掌の方向に折れ曲がっている場合の画像例を示し、図１７Ｄは、図１７Ｃに示した指先上に設定された注目画素Ｐｉの孤立度の評価の例を示す。図１７Ｄに示す例では破線の領域を含む線分の数が３２本であるため、特徴点抽出部４５は、図１７Ｃ及び１７Ｄに示した注目画素Ｐｉにおける孤立度を“３２”と設定する。
【００８６】
図１７Ｅは、手を開いた状態における左手の親指の根本部分に注目画素Ｐｉが設定された場合の画像例を示し、図１７Ｆは、図１７Ｅに示した注目画素Ｐｉの孤立度の評価例を示す。図１７Ｆに示す例では、破線の領域を含む線分の数が２０本であるため、特徴点抽出部４５は、図１７Ｅ及び１７Ｆに示した注目画素Ｐｉにおける孤立度を“２０”と設定する。
【００８７】
なお、本実施形態では、特徴点抽出部４５が孤立度の評価を行う際に設定する方向の数を３２としたが、方向の数は３２に限定されない。特徴点抽出部４５が孤立度の評価を行う際に設定する方向の数は、距離画像の解像度、仮想３次元物体処理システム１の処理性能等に応じて、適宜最適な数に設定可能である。また、孤立度の評価対象とする比較画素の抽出範囲も、距離画像の解像度、仮想３次元物体処理システム１の処理性能等に応じて、適宜最適な範囲に設定可能である。
【００８８】
次に、特徴点抽出部４５は、距離画像上の各画素において算出された孤立度の情報を用いて、指先の領域を抽出する。指先の領域は、距離画像上で孤立度が高い画素が密集している領域であると考えられる。図１８Ａは、右手を撮影した距離画像であり、深度の浅い領域が濃い色によって示され、深度の深い領域が薄い色によって示される。図１８Ｂは、図１８Ａに示した距離画像に基づいて特徴点抽出部４５が算出した孤立度を色の濃淡によって示した孤立度画像である。孤立度画像において、孤立度の高い領域は濃い色によって示され、孤立度の低い領域は淡い色によって示される。
【００８９】
図１８Ａに示した距離画像によれば、右手の中指、薬指、小指の深度が、人差し指及び親指のそれに対して浅い（深度センサ３０に近い位置に配置されている）ことが分かる。一方、図１８Ｂに示した孤立度画像においては、右手を構成する５本の指の指先にあたる領域がすべて濃い色によって示されており、孤立度画像においては、指先の領域をすべて抽出できていることが分かる。
【００９０】
特徴点抽出部４５は、図１８Ｂにおいて濃い色で示した、孤立度の高い画素が密集している領域であり、かつ、勾配領域Ａｇにも属している画素の領域を抽出し、さらにその領域の重心を算出することによって、指先の位置を抽出する。
【００９１】
図１９Ａは、図１８Ｂに示した孤立度画像において、孤立度の高い画素が密集している領域のみを抽出して示した図である。図１９Ｂは、図１８Ａに示した距離画像から勾配領域Ａｇを抽出して示した画像（勾配領域画像）を示した図である。図１９Ｃは、図１９Ａに示した画像と図１９Ｂに示した画像との論理積をとることにより得られた画像である。すなわち、図１９Ｃには、孤立度の高い画素が密集している領域であり、かつ、勾配領域Ａｇにも属している画素の領域が示される。図１９Ｃに示す例では、右手の５本の指先に対応する５つの領域が抽出されている。
【００９２】
図１９Ｄは、図１９Ｃに示した画像（指先の領域として５つの領域が抽出されている画像）上に、それぞれの抽出領域における重心の位置を重ねて示した図である。図１９Ｄにおいて、重心の位置は斜線でハッチングされた丸印で示される。図１９Ｄに示されるように、孤立度の高い画素が密集している領域であり、かつ勾配領域Ａｇにも属する領域における重心の位置は、手指の指先の位置と対応している。
【００９３】
特徴点抽出部４５は、続いて、検出した指先（重心）の位置の中から親指の先端に対応する位置を抽出し、親指の位置から最も近い指の指先の位置と、親指の指先の位置とを、線分で結ぶ。そして、特徴点抽出部４５は、その線分を基準にして勾配領域Ａｇから内部領域Ａｉに相当する領域を分離することにより、擬似内部領域Ａｉ′を抽出する。
【００９４】
図２０Ａは、親指と人差し指とが接触していない状態の右手から抽出された勾配領域Ａｇを示す勾配領域画像であり、図２０Ｂは、図２０Ａに示した勾配領域画像から抽出された擬似内部領域Ａｉ′を示す図である。図２０Ｂには、親指の指先位置Ｔｔと、親指の指先位置Ｔｔから一番近い指先である人差し指の指先位置Ｔｉとを結ぶ線分Ｌｎ２が示されている。図２０Ｂに示すように、本実施形態では、線分Ｌｎ２により分離された２つの勾配領域Ａｇのうち、手のひら側の面積の小さい勾配領域Ａｇと線分Ｌｎ２とにより、擬似内部領域Ａｉ′が構成される。つまみ動作時における指先の接触点に相当する仮想接触点Ｐ′には、例えば、線分Ｌｎ２の中点が設定される。
【００９５】
なお、検出した指先の位置の中から、親指の先端にあたる位置を抽出する方法としては、例えば以下の方法を採用することができる。図２１Ａは、孤立度画像から抽出した、孤立度の高い画素が集まっている領域（高孤立度領域Ａｈ）、及び、孤立度の低い画素が集まっている領域（低孤立度領域Ａｌ）を示した画像である。図２１Ａに示すように、高孤立度領域Ａｈとしては、指の領域に相当する領域が抽出され、低孤立度領域Ａｌとしては、手の腹に相当する領域が抽出されていることが分かる。
【００９６】
特徴点抽出部４５は、まず、高孤立度領域Ａｈ及び低孤立度領域Ａｌのそれぞれにおいて、重心を求める処理を行う。図２１Ａに黒丸で示した点Ｍが高孤立度領域Ａｈの重心であり、白抜きの二重丸で示した点Ｌが低孤立度領域Ａｌの重心である。
【００９７】
特徴点抽出部４５は、続いて、図２１Ｂに示すように、重心Ｍ及び重心Ｌを線分Ｌｎ３で結ぶ。また、重心Ｌを起点とする線分であり、かつ線分Ｌｎ３に対して垂直の角度を成す所定の長さの線分Ｌｎ４を生成する。特徴点抽出部４５は、さらに、線分Ｌｎ４の重心Ｌ側とは反対側の端点Ｋを求め、この端点Ｋと距離画像上最も近い位置に存在する指先位置を、親指の指先位置Ｔｔとして抽出する。なお、親指の指先位置Ｔｔの検出方法は、上記方法に限定されず、どのような方法であってもよい。その後、特徴点抽出部４５は、親指の指先位置Ｔｔに最も近い指先位置を、人差し指の指先位置Ｔｉとして抽出する。
【００９８】
親指の指先位置Ｔｔと人差し指の指先位置Ｔｉとを抽出した後は、特徴点抽出部４５は、親指の指先位置Ｔｔと人差し指の指先位置Ｔｉとを結ぶ線分Ｌｎ２の中点を、つまみ動作時における指先の接触点に相当する仮想接触点Ｐ′に設定する。
【００９９】
上記手法を用いることにより、図２２Ａ及び図２２Ｂに示すように、親指及び人差し指にあたる指の位置が孤立度画像上で判別しにくい場合にも、特徴点抽出部４５は、擬似内部領域Ａｉ′を抽出するための線分Ｌｎ２を求めることができる。すなわち、つまみ動作が行われておらず、指先同士が接触していない状態であっても、特徴点抽出部４５は、指先の接触点Ｐに相当する仮想接触点Ｐ′及び擬似内部領域Ａｉ′を抽出することができる。
【０１００】
パラメータ算出部４６は、上述したつまみ動作検出時における手指動作検出手法と同様の手法により、特徴点抽出部４５で抽出された各種特徴点の情報を用いて、指先の擬似的な接触位置の３次元空間上の位置と、手指の姿勢と、トリガをオン又はオフさせるトリガ入力パラメータとを算出する。
【０１０１】
具体的には、上述したつまみ動作時の処理と同様にして、特徴点抽出部４５が、擬似内部領域Ａｉ′に基づいて手指領域Ａｓに相当する領域を抽出し、近似平面Ｐａ及びその近似平面Ｐａ上の各種特徴点を算出する。そして、パラメータ算出部４６は、算出した各種特徴点に基づいて、指先の擬似的な接触位置、第１の姿勢ベクトル及び第２の姿勢ベクトルを求める。なお、指先の擬似的な接触位置は、仮想接触点Ｐ′を近似平面Ｐａに投影した特徴点（第２の特徴点）とする。
【０１０２】
ここで、特徴点抽出部４５が各種特徴点を算出する際に用いる、距離画像、勾配領域画像、孤立度画像等の各種画像と、算出される特徴点との対応関係について、図２３を参照して説明する。図９Ａ、図１９Ｂ等に示した勾配領域画像、図１２Ａに示した、手領域Ａｆが示された画像である手領域画像、及び、図１８Ｂに示した孤立度画像は、すべて深度センサ３０により取得された距離画像から生成される。
【０１０３】
手指の指先の位置は、勾配領域画像及び孤立度画像の情報を用いて算出される。図７Ｄ、図９Ｂ等に示した内部領域Ａｉが示された画像である、内部領域画像は、指先の位置の情報（非つまみ動作時）及び勾配領域画像の情報を用いて生成される。図９Ｃ、図１１Ｂ等に示した凸包領域Ａｃが示された画像である、凸包領域画像は、内部領域画像から生成される。図１０Ｂ等に示した手指領域Ａｓは、勾配領域画像、内部領域画像及び凸包領域画像の情報を用いて算出される。
【０１０４】
近似平面Ｐａ上の特徴点となる重心Ｏ（図１４参照）は、凸包領域画像より得ることができ、手首の重心Ｎは、手指領域画像及び重心Ｏの情報に基づいて算出される。基準点Ｄは、重心Ｏ及び重心Ｎの情報を用いて算出され、指先の接触点Ｐは、内部領域画像及び基準点Ｄの情報を用いて算出される。すなわち、特徴点抽出部４５は、距離画像から生成した各種画像及び／又は各種画像を用いて算出された各種特徴点の情報に基づいて、指先の接触位置及び姿勢を算出するために必要な各種特徴点を抽出する。
【０１０５】
（手指動作検出処理のフローチャート）
次に、本実施形態の仮想３次元物体処理システム１により手指動作検出を行う際の処理手順を、図２４を参照しながら説明する。図２４は、本実施形態の仮想３次元物体処理システム１によって実行される手指動作検出手法の処理手順を示すフローチャートである。
【０１０６】
まず、仮想３次元物体処理システム１の画像取得部４１が、深度センサ３０により撮影された距離画像を取得する（ステップＳ１）。次に、フィルタ処理部４２が、距離画像にフィルタ処理を施す（ステップＳ２）。より具体的には、フィルタ処理部４２は、まず、メディアンフィルタを用いて距離画像に局所的に存在するショットノイズを除去し、続いて、ガウシアンフィルタを用いて距離画像全体を平滑化する。次に、内部領域抽出部４３は、フィルタ処理部４２によってフィルタ処理が施された距離画像から、手指によって周囲を囲われた内部領域Ａｉを抽出する（ステップＳ３）。より詳細には、内部領域抽出部４３は、距離画像のｘ方向及びｙ方向における画素の勾配情報を用いて、手の輪郭の領域に相当する勾配領域Ａｇを抽出する（勾配領域画像を生成する）。そして、内部領域抽出部４３は、図７Ａ〜図７Ｄを用いて説明した内部領域Ａｉの抽出手順に従い、勾配領域Ａｇが表された勾配領域画像から内部領域Ａｉを抽出する。なお、ステップＳ３において内部領域Ａｉが抽出されなかった場合には、内部領域抽出部４３は、図１６〜図２２を用いて説明した擬似内部領域Ａｉ′の抽出手順に従い、勾配領域画像及び指先の位置に基づいて、擬似内部領域Ａｉ′を抽出する。
【０１０７】
続いて、内部領域抽出部４３による内部領域Ａｉの抽出結果に基づいて、特徴点抽出部４５が各種特徴点を抽出するとともに、つまみ動作検出部４４が、つまみ動作を検出する（ステップＳ４）。そして、パラメータ算出部４６が、パラメータとして、つまみ動作における指先の接触点Ｐの位置ベクトルと、手指の姿勢を示す第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎと、トリガをオン又はオフさせるトリガ入力パラメータとを算出して出力する（ステップＳ５）。
【０１０８】
（仮想物体操作部の処理）
次に、仮想物体操作部５０（図２参照）の処理について説明する。仮想物体操作部５０は、手指動作検出装置部４０から出力された各種制御パラメータに基づいて、ディスプレイ装置２２上において仮想３次元物体を生成したり、造形したり、操作したりする処理を行う。これらの処理は、手指動作検出装置部４０で算出された手指の位置及び姿勢を、ディスプレイ装置２２に表示される仮想空間上において、仮想３次元物体に対して所定の処理を施すツールの位置及び姿勢に置き換えることによって行われる。また、手指を使った実際のオン／オフ動作と、仮想空間上の仮想３次元物体に対するツール処理のオン／オフ操作との連動又は非連動は、トリガのオン／オフ（トリガ入力パラメータ）に基づいて切り替えられる。
【０１０９】
本実施形態では、上述のようにして手指動作検出処理を行う。なお、本実施形態では、上述した手指動作検出処理を、対応する手指動作検出プログラムを仮想３次元物体処理システム１に実装し、手指動作検出プログラムをＣＰＵ１０で実行することにより実現してもよい。
【０１１０】
上述した本実施形態の仮想３次元物体処理システム１は、手指の形状の情報及び姿勢の情報に基づいて、仮想空間上の仮想３次元物体に対して所定の処理を施すツールの位置及び姿勢を決定するための各種制御パラメータを算出する。それゆえ、本実施形態では、ユーザは、現実空間において手指の位置や姿勢を変えるという直感的かつ３次元的な操作によって、仮想３次元物体を操作することができる。このような操作には、専門的な知識や熟練を必要としないので、子供から高齢者に渡るあらゆる世代のユーザが、容易に仮想３次元物体を操作することができる。
【０１１１】
また、本実施形態の仮想３次元物体処理システム１では、手指の所定動作の有無に関する情報（トリガ入力パラメータ、つまみ動作検出部４４の検出結果に対応する情報）に基づいて、仮想３次元物体に対して所定の処理を施すツールのオン／オフ動作が制御される。具体的には、指先同士を接触させる動作によって、仮想３次元物体の操作ツールのトリガがオンされ、接触させていた指先同士を離す動作によって、仮想３次元物体の操作ツールのトリガがオフされる。したがって、ユーザは、マウス等のトリガ入力用の特別な入力インターフェースを用いることなく、仮想３次元物体の操作時に手指のジェスチャによって、容易にツールのオン／オフ制御（トリガ入力）を行うことができる。
【０１１２】
本実施形態の仮想３次元物体処理システム１では、ユーザは、手指の位置や姿勢を変えることによって行う仮想３次元物体の操作ツールの操作と、つまみ動作によって行う操作ツールのオン／オフ操作とを、ほぼ同時に、かつそれぞれ独立して行うことができる。つまり、手指を回転させたり手指の形状を大きく変化させたりすることなく、造形を行っている手指の姿勢及び位置をほぼ維持したまま、指先同士の接触／非接触によってツールのオン／オフを制御することができる。また、本実施形態の仮想３次元物体処理システム１によれば、より自由度の高いインターフェースを提供することができる。
【０１１３】
また、本実施形態の仮想３次元物体処理システム１では、つまみ動作によって指先同士が接触しているか否かを、距離画像において内部領域Ａｉが抽出できたか否かによって判定する。距離画像において内部領域Ａｉが形成されている状態か否かの区別は、比較的明確に行うことができるので、トリガ入力のオン及びオフ間の切り替えも、ユーザの意図したタイミングで正確に行うことが可能となる。
【０１１４】
また、指先同士を接触させたり離したりする動作は、小さな物体や細長い棒などを摘んだり離したりする動作等と同様の動作であり、日常的な場面でよく行われる動作である。したがって、ユーザは不自然なジェスチャを行う必要なく、慣れ親しんだ動作によって、仮想３次元物体に対して所定の処理を行うことができる。
【０１１５】
また、本実施形態の仮想３次元物体処理システム１では、深度センサ３０で取得された距離画像から抽出した手指領域Ａｓの３次元座標情報を用いて、現実空間上の手指の位置と姿勢とを推定する。これらの３次元座標情報は、手指のわずかな動作に対しても変化する。よって、従来用いられていた、楕円近似により求めた内部領域を用いて手指の位置及び姿勢を検出する手法や、内部領域の重心の情報のみを用いて手指の位置を検出する手法と比較して、手指の位置及び姿勢の検出精度が非常に高くなる。したがって、深度センサ３０のように出力値の分散が比較的大きい撮像装置を用いる場合であっても、手指による動作の認識を正確に行うことができる。
【０１１６】
また、本実施形態の仮想３次元物体処理システム１では、つまみ動作の検出時には、つまみ動作に関与する手指領域Ａｓの近似平面Ｐａ内の特徴点の一つである重心Ｏと、指先の接触点Ｐとを通る線分Ｌｎ１の延在方向で、かつ、重心Ｏから接触点Ｐに向かう方向のベクトルを、手指の第１の姿勢ベクトルＶｄとして抽出する（図１４参照）。また、非つまみ動作時にも、つまみ動作時と同様に、手指の第１の姿勢ベクトルＶｄを抽出する。また、本実施形態では、接触点Ｐ（又は仮想接触点）の３次元座標を、指先の位置として抽出する。それゆえ、これらのパラメータが反映された仮想空間における仮想３次元物体の位置及び姿勢を、現実空間における指先の細かな動きに追従させて変化させることができる。
【０１１７】
また、本実施形態では、手指の第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎによって、仮想３次元空間における手指の姿勢を推定している。したがって、つまみ動作におけるつまみ方や、つまみ動作を行っている手指の姿勢が様々に変化した場合にも、正確に手指の位置及び姿勢を検出できる。
【０１１８】
また、本実施形態の仮想３次元物体処理システム１では、例えば深度センサ３０の焦点位置を原点とする３次元空間における絶対座標を入力値とするので、マウス等の２次元座標を入力値とするインターフェースを使用した場合のように、入力座標の変換等の中間的な処理を行う必要がなくなる。したがって、本実施形態の仮想３次元物体処理システム１によれば、仮想３次元物体の形状や姿勢等をより微細に、かつユーザの意図により忠実な形で変化させることが可能となる。
【０１１９】
また、本実施形態の仮想３次元物体処理システム１では、上述のように３次元空間における絶対座標を入力値とするので、マウス等の２次元座標を入力値とするインターフェースを使用した場合のように、造形操作を仮想３次元物体の表面から開始させる必要がなくなる。つまり、本実施形態の仮想３次元物体処理システム１によれば、ユーザは、仮想３次元物体の配置された位置に限定されない３次元空間上の任意の位置から、造形操作を開始することができる。
【０１２０】
［仮想３次元物体処理システムの適用例］
続いて、上記実施形態の仮想３次元物体処理システム１を仮想造形システムに適用した例について、図２５〜図３０を参照して説明する。図２５は、仮想３次元物体処理システム１の外観を示す図である。なお、図２５には、説明を簡略化するため、仮想３次元物体処理システム１を構成する深度センサ３０とディスプレイ装置２２とを示し、他の構成部の図示を省略する。深度センサ３０は、ユーザの手指を撮影することができるように、手指によるつまみ動作が行われる空間の上方に、不図示のレンズを下向きにして配置される。ディスプレイ装置２２は、ユーザと対向する位置に配置される。また、ディスプレイ装置２２は、ディスプレイ装置２２とユーザとの間に、深度センサ３０の手指の撮影領域（つまみ動作が行われる空間）が配置されるような位置に設けられる。図２５には、深度センサ３０の位置をパイプで固定した例を示したが、この固定方法に限定されるものではなく、他の方法で固定するようにしてもよい。
【０１２１】
ディスプレイ装置２２の表示画面には、立方体状の仮想的なオブジェクトＶｏ１（仮想３次元物体）と、オブジェクトＶｏ１を造形する棒状の（円柱形状の）仮想的なツールＶｏ２とが表示されている。図２５に示すシステムの例では、つまみ動作の有無及び手指の位置や姿勢の変化に応じて、ツールＶｏ２の位置及び姿勢を変化させるとともに、オブジェクトＶｏ１に対して、ツールＶｏ２による所定の処理（造形）を実施することができる。
【０１２２】
ツールＶｏ２の形状は棒状に限定されるものではなく、球状やブラシ形状、その他の形状であってもよい。また、ツールＶｏ２の数は、一つに限定されるものではなく、複数のツールが用意されていてもよい。例えば、オブジェクトＶｏ１を削るツール、オブジェクトＶｏ１に他のオブジェクトを取り付ける（結合させる）ツール、オブジェクトＶｏ１を回転又は移動させるツールなど、様々なツールを用意してもよい。
【０１２３】
図２６は、深度センサ３０の撮影領域Ｒｓ、及びつまみ動作の認識可能範囲を示した図である。深度センサ３０は、ディスプレイ装置２２が配置された平面Ｆｓから上方に５８０ｍｍ離れた位置に配置される。深度センサ３０の撮影領域Ｒｓは、平面Ｆｓ上における横５２０ｍｍ×縦４００ｍｍの撮影範囲を底面とし、高さを５８０ｍｍとする略四角錐状の形状を有する。この撮影領域Ｒｓ内において、つまみ動作等のジェスチャが認識される領域は、平面Ｆｓから高さ８０ｍｍの位置から、高さ２７０ｍｍの位置に渡る領域（四角錐台状の領域）である。なお、深度センサ３０の撮影領域Ｒｓ、及びつまみ動作の認識可能範囲は、図２６に示す例に限定されるものではなく、例えば、深度センサ３０の性能（画角）や用途等に応じて、適宜設定することができる。
【０１２４】
図２７Ａ及び図２７Ｂは、手指動作検出装置部４０で検出された手指の位置及び姿勢と、仮想空間上のツールＶｏ２の位置及び姿勢との対応関係を示す図である。図２７Ａに、手指動作検出装置部４０で検出された手指の位置及び姿勢を示し、図２７Ｂに、ツールＶｏ２の仮想空間上における位置及び姿勢を示す。図２７Ｂには、ツールＶｏ２が、オブジェクトＶｏ１を回転させるスパナである場合を例示する。なお、図２７Ａ及び図２７Ｂにおいては、説明を簡略化するため、Ｘ−Ｙ座標系で表現できるパラメータのみを示す。
【０１２５】
いま、図２７Ａに示すように、指先の接触点ＰのＸ軸方向の座標がｘ１であり、Ｙ軸方向の座標がｙ１であり、Ｚ軸方向の座標がｚ１（図示略）であるとする。そして、この例では、図２７Ｂに示すように、スパナ（ツールＶｏ２）の、手によって把持されるグリップの根本の部分を、仮想空間における（ｘ１，ｙ１，ｚ１）の位置に配置する。さらに、スパナ（ツールＶｏ２）の姿勢が、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎによって規定される手指の姿勢と同一の姿勢に設定される。本実施形態では、このようにして、現実空間における手指の位置及び姿勢と、仮想空間におけるツールＶｏ２（スパナ）の位置及び姿勢とを対応付ける。それゆえ、ユーザは、つまみ動作を行う際の手指の位置や姿勢を変化させるだけで、ツールＶｏ２の位置及び姿勢を容易に変えることができる。
【０１２６】
図２８は、仮想物体操作部５０の内部構成、並びに、仮想物体操作部５０を構成する各部と、入力装置２１、手指動作検出装置部４０及びメモリ装置１４との間における情報のフローを示す説明図である。仮想物体操作部５０は、トリガ判定部５１と、ボクセル操作部５２と、ポリゴン生成部５３と、描画処理部５４とを含む。
【０１２７】
メモリ装置１４内には、入力装置２１、手指動作検出装置部４０、及び仮想物体操作部５０から出力された各種データが書き込まれる。メモリ装置１４に書き込まれた各種データは、仮想物体操作部５０の各部によって読み出される。メモリ装置１４には、トリガＤ１、ボクセルデータＤ２、ツールの種類・大きさ情報Ｄ３、ツールの位置・姿勢情報Ｄ４、及びオブジェクトの位置・姿勢情報Ｄ５等の各種データが格納される。
【０１２８】
トリガＤ１は、オン及びオフに対応する２値データで表されるフラグであり、このフラグは、手指動作検出装置部４０から出力されるトリガ入力パラメータによって随時更新される。手指動作検出装置部４０は、上述したように、手指のつまみ動作を検出した時には、トリガをオンにするトリガ入力パラメータを出力し、手指のつまみ動作が解除された時には、トリガをオフにするトリガ入力パラメータを出力する。
【０１２９】
ボクセルデータＤ２は、オブジェクトＶｏ１及びツールＶｏ２の仮想空間上における体積や形状を定義するデータである。ボクセルとは、３次元の仮想空間を立体格子状に小さく区切った場合の、区切られた一つのブロック領域を示し、各ボクセルは、一定のスカラー値／ベクトル値を有する。ボクセルデータＤ２は、仮想物体操作部５０のボクセル操作部５２によってメモリ装置１４に書き込まれる。
【０１３０】
ツールの種類・大きさ情報Ｄ３は、ユーザによって選択されたツールＶｏ２の種類及び／又は大きさを示す情報である。ツールの種類・大きさの情報Ｄ３は、キーボードやマウス等より構成される入力装置２１に対して行われるユーザの操作に基づいて、変更される。
【０１３１】
ツールの位置・姿勢情報Ｄ４は、現実空間上の手指の位置を示す３次元座標と、手指の姿勢を示す第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎとを含む。これらの情報（制御パラメータ）は、手指動作検出装置部４０によってメモリ装置１４に書き込まれる。オブジェクトの位置・姿勢情報Ｄ５は、オブジェクトＶｏ１の仮想空間上の位置と姿勢とを示す。オブジェクトの位置・姿勢情報Ｄ５は、仮想物体操作部５０のボクセル操作部５２によってメモリ装置１４に書き込まれる。
【０１３２】
続いて、同じく図２８を参照して、仮想物体操作部５０を構成する各部の処理について説明する。トリガ判定部５１は、メモリ装置１４内に格納されたトリガＤ１を参照して、トリガ入力がオンであるか否かを判定する。そして、トリガ判定部５１は、トリガ入力のオンを検出した場合には、その情報をボクセル操作部５２に出力し、トリガ入力のオフを検出した場合には、その情報をポリゴン生成部５３に出力する。
【０１３３】
ボクセル操作部５２は、ボクセルの生成操作、又は消滅操作を行う。ボクセル操作部５２によるこれらの操作は、トリガ入力がオンになっており、かつ、ツールＶｏ２がオブジェクトＶｏ１に接触しているときに行われる。ツールＶｏ２がオブジェクトＶｏ１に接触しているか否かの判定は、メモリ装置１４内に格納されたツールの種類・大きさ情報Ｄ３と、ツールの位置・姿勢情報Ｄ４と、オブジェクトの位置・姿勢情報Ｄ５との内容に基づいて行われる。
【０１３４】
例えば、いま、ツールの種類・大きさ情報Ｄ３が、ツールＶｏ２として、オブジェクトＶｏ１のボクセルを消滅させる棒状のツールが選択されていることを示す情報である場合を考える。この場合、ボクセル操作部５２は、ツールＶｏ２の先端部分と接触する位置にあるボクセルを消滅させる。なお、トリガがオンであっても、所定のツールＶｏ２の仮想空間上における位置がオブジェクトＶｏ１から離れている場合には、ボクセル操作部５２はボクセル操作を行わない。
【０１３５】
ツールＶｏ２の位置及び姿勢を規定するツールの位置・姿勢情報Ｄ４は、手指動作検出装置部４０による手指動作検出処理によって、随時書き替えられる。このため、例えばツールＶｏ２によって消滅されるボクセルの位置も、ユーザの手指の位置及び／又は姿勢の変化に応じて、その都度変化する。ボクセル操作部５２は、操作したボクセルの情報を、ボクセルデータＤ２としてメモリ装置１４内に書き込む。
【０１３６】
また、ツールＶｏ２として、例えばオブジェクトＶｏ１の位置や姿勢を変化させるツールが選択されている場合には、ボクセル操作部５２は、ボクセルを消滅又は追加する処理は行わずに、ボクセルの集合体であるオブジェクトＶｏ１の位置・姿勢のみを変化させる。この場合は、ボクセル操作部５２は、移動させたボクセルの位置・姿勢の情報を、オブジェクトの位置・姿勢情報Ｄ５としてメモリ装置１４内に書き込む。
【０１３７】
ポリゴン生成部５３は、メモリ装置１４から読み出したボクセルデータＤ２からポリゴンデータを生成する。ポリゴンデータ生成処理は、例えば、マーチング・キューブズ法等のアルゴリズムを用いて行われる。マーチング・キューブズ法は、ボクセルデータの可視化方法として一般的な方法であり、詳細には、ボクセル集合の局所的な配置からボクセル集合を覆う面素を推定し、ボクセルの表面を多角形ポリゴンで近似することにより、物体の状面を構成する方法である。
【０１３８】
描画処理部５４は、ポリゴン生成部５３でポリゴンデータに変換されたオブジェクトＶｏ１及びツールＶｏ２を、仮想空間上に３ＤＣＧとして描画する。オブジェクトＶｏ１の仮想空間上での位置及び姿勢は、メモリ装置１４から読み出したオブジェクトの位置・姿勢情報Ｄ５に基づいて決定される。ツールＶｏ２の仮想空間上での位置及び姿勢は、メモリ装置１４から読み出したツールの種類・大きさ情報Ｄ３と、ツールの位置・姿勢情報Ｄ４とに基づいて決定される。３ＤＣＧの描画は、例えば、オープンソースとして公開されている、ＯｐｅｎＧＬ（登録商標）等のグラフィックＡＰＩ（Application Programming Interface）を用いて行うことができる。
【０１３９】
［仮想３次元物体処理手法の詳細］
次に、上記実施形態の仮想３次元物体処理システム１（仮想造形システム）により仮想３次元物体の造形処理を行う際の処理手順を、図２９を参照しながら説明する。図２９は、上記実施形態の仮想３次元物体処理システム１（仮想造形システム）によって実行される仮想３次元物体の造形処理手法の処理手順を示すフローチャートである。
【０１４０】
まず、仮想３次元物体処理システム１の手指動作検出装置部４０が、つまみ動作における指先の位置と、手指の姿勢と、トリガ入力のオン／オフ情報（トリガ入力パラメータ）とを取得する（ステップＳ１１）。そして、仮想物体操作部５０は、入力装置２１に対する操作入力があるかどうかを判断して（ステップＳ１２）、操作入力があった場合には、操作内容に基づいて、ツールＶｏ２の種類の変更、及び／又はツールＶｏ２の設定を行う（ステップＳ１３）。操作入力がなかった場合には、仮想物体操作部５０は、ステップＳ１４の処理を行う。
【０１４１】
ステップＳ１４では、仮想物体操作部５０は、トリガ入力がオンであるか否かの判断を行い、トリガ入力がオンであると判断した場合には、続いて、仮想空間におけるツールＶｏ２の位置とオブジェクトＶｏ１の位置との間の距離が、所定の距離以内であるかを判断する（ステップＳ１５）。仮想空間におけるツールＶｏ２の位置とオブジェクトＶｏ１の位置との間の距離が、所定距離以内である場合、すなわち、ツールＶｏ２がオブジェクトＶｏ１に接触していると判断できる距離である場合には、ボクセル操作部５２がボクセル操作を行う（ステップＳ１６）。トリガ入力がオフである場合には、仮想物体操作部５０は、ステップＳ１７の処理を行う。
【０１４２】
ステップＳ１７では、ポリゴン生成部５３がボクセルデータＤ２からポリゴンデータを生成する。続いて、描画処理部５４が、ポリゴンデータに変換されたオブジェクトＶｏ１及びツールＶｏ２を、仮想空間上に３ＤＣＧとして描画する（ステップＳ１８）。
【０１４３】
図３０は、上記実施形態の仮想３次元物体処理システム１（仮想造形システム）により造形されたオブジェクトＶｏ１の例を示す図である。図３０Ａは、恐竜のようなオブジェクトＶｏ１の造形例であり、図３０Ｂは、角及び羽根を有する悪魔のようなオブジェクトＶｏ１の造形例である。上記実施形態の仮想３次元物体処理システム１によれば、図３０Ａ及び図３０Ｂに示したような複雑な形状のオブジェクトも、つまみ動作によって容易に造形することが可能である。
【０１４４】
上記実施形態では、つまみ動作を行っている指先の接触点Ｐの現実空間における位置を、仮想空間におけるツールＶｏ２の位置に変換する。さらに、第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎによって表される手指の姿勢を、仮想空間のツールＶｏ２の姿勢に変換する。それゆえ、上記実施形態では、仮想空間におけるツールＶｏ２の位置及び姿勢を、現実空間におけるつまみ動作時の指先の位置及び姿勢と、ほぼ一致させることができる。すなわち、つまみ動作時の指先の細かな動きも、仮想空間におけるツールＶｏ２の動作に正確に反映させることができる。したがって、上記実施形態における仮想３次元物体処理システム１では、ツールＶｏ２の位置や姿勢をわずかに変更させたり、オブジェクトＶｏ１の自由曲面を造形したりする操作も、ユーザは、意図したとおりに自在に行うことができる。
【０１４５】
＜各種変形例＞
本発明に係る手指動作検出装置、手指動作検出方法、手指動作検出プログラム、及び仮想物体処理システムは、上記実施形態で説明した例に限定されない。特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の変形例も本発明に含まれる。例えば、次のような各種変形例及び応用例も本発明に含まれる。
【０１４６】
上記実施形態では、図３１Ａに示すように、近似平面Ｐａ内において、特徴点の重心Ｏから指先の接触点Ｐに向かう方向のベクトルを第１の姿勢ベクトルＶｄとする例を説明したが、本発明はこれに限定されない。例えば、図３１Ｂに示すように、近似平面Ｐａ内において、特徴点の一つである手首の重心Ｎから重心Ｏに向かう方向のベクトルを、第１の姿勢ベクトルＶｄ′としてもよい。
【０１４７】
図３１Ａに示した第１の姿勢ベクトルＶｄ及び第２の姿勢ベクトルＶｎを用いることによって、例えば、図３２Ａに示すように、道具を指先によって摘んだ状態で細かい操作を行う場合の手指の姿勢を適切に推定することが可能となる。また、図３１Ｂに示した第１の姿勢ベクトルＶｄ′及び第２の姿勢ベクトルＶｎを用いれば、図３２Ｂに示すように、道具の取っ手部分を手指によってしっかり握りながら安定的に操作を行う場合の手指の姿勢を、適切に推定することが可能となる。
【０１４８】
上記実施形態では、仮想３次元物体を操作するための制御パラメータとして、手指の位置及び姿勢と、トリガ入力パラメータとを用いたが、本発明はこれに限定されない。手指の位置及び姿勢の一方の制御パラメータのみを用いるようにしてもよい。
【０１４９】
また、上記実施形態では、つまみ動作として、親指及び人差し指の２本の指の指先同士を接触させる動作を例に挙げたが、つまみ動作は、この動作に限定されない。つまみ動作は、親指と人差し指以外の指（中指等）とを接触させる動作であってもよいし、親指の指先とその他のすべての指の指先とを接触させる動作や、親指以外の他の２本の指の指先同士を接触させる動作（例えば、人差し指と中指とを接触させる動作）であってもよい。
【０１５０】
また、上記実施形態では、トリガ入力のオン／オフを、つまみ動作を行う指先の接触／非接触によって切り替える例を挙げたが、本発明はこれに限定されない。例えば、手指の特定の指を動かす等の動作（内部領域Ａｉ又は擬似内部領域Ａｉ′が形成されないような動作）を、トリガ入力検出用の動作としてもよい。
【０１５１】
また、上記実施形態では、近似平面Ｐａ内において、特徴点の一つである重心Ｏから指先の接触点Ｐに向かう方向のベクトルを、第１の姿勢ベクトルＶｄとする例を説明したが、本発明はこれに限定されない。例えば、近似平面Ｐａ内において、重心Ｏ以外の特徴点から指先の接触点Ｐ又はそれに準ずる特徴点に向かう方向のベクトルを、第１の姿勢ベクトルＶｄとしてもよい。
【０１５２】
また、上記実施形態では、つまみ動作によって仮想空間上のツールＶｏ２の位置及び姿勢を変化させることにより、オブジェクトＶｏ１に対して所定の処理を施す例を挙げたが、本発明はこれに限定されない。例えば、オブジェクトＶｏ１の位置及び姿勢を変化させるツールが選択された場合には、手指の位置及び姿勢に基づいて、オブジェクトＶｏ１の位置及び姿勢を直接操作するようにしてもよい。
【０１５３】
また、上記実施形態では、操作対象となる仮想物体が３次元状の仮想物体である例を説明したが、上述した本発明の仮想物体処理（操作）技術は、２次元状及び１次元状の仮想物体に対しても同様に適用可能であり、同様の効果が得られる。
【０１５４】
上記実施形態では、本発明の手指動作検出技術を、仮想３次元物体の操作に適用する例を説明したが、本発明はこれに限定されない。例えば、本発明の手指動作検出技術を、ロボットアームの操作にも同様に適用可能である。
【符号の説明】
【０１５５】
１…仮想３次元物体処理システム、１０…ＣＰＵ、１１…ドライブ装置、１２…記憶媒体、１３…補助記憶装置、１４…メモリ装置、２０…インターフェース装置、２１…入力装置、２２…ディスプレイ装置、２３…画像入力インターフェース、３０…深度センサ、４０…手指動作検出装置部、４１…画像取得部、４２…フィルタ処理部、４３…内部領域抽出部、４４…動作検出部、４５…特徴点抽出部、４６…パラメータ算出部、５０…仮想物体操作部、５１…トリガ判定部、５２…ボクセル操作部、５３…ポリゴン生成部、５４…描画処理部
【図１】
2015114762.tif 000008
【図２】
2015114762.tif 000009
【図１４】
2015114762.tif 000010
【図１６】
2015114762.tif 000011
【図１７】
2015114762.tif 000012
【図２３】
2015114762.tif 000013
【図２４】
2015114762.tif 000014
【図２５】
2015114762.tif 000015
【図２６】
2015114762.tif 000016
【図２７】
2015114762.tif 000017
【図２８】
2015114762.tif 000018
【図２９】
2015114762.tif 000019
【図３２】
2015114762.tif 000020
【図３】
2015114762.tif 000021
【図４】
2015114762.tif 000022
【図５】
2015114762.tif 000023
【図６】
2015114762.tif 000024
【図７】
2015114762.tif 000025
【図８】
2015114762.tif 000026
【図９】
2015114762.tif 000027
【図１０】
2015114762.tif 000028
【図１１】
2015114762.tif 000029
【図１２】
2015114762.tif 000030
【図１３】
2015114762.tif 000031
【図１５】
2015114762.tif 000032
【図１８】
2015114762.tif 000033
【図１９】
2015114762.tif 000034
【図２０】
2015114762.tif 000035
【図２１】
2015114762.tif 000036
【図２２】
2015114762.tif 000037
【図３０】
2015114762.tif 000038
【図３１】
2015114762.tif 000039