(57)【特許請求の範囲】
【請求項１】
多関節物体の三次元形状を推定する情報処理装置であって、
前記多関節物体の画像データを取得する画像取得手段と、
前記画像データに対して前段処理を行う前段処理手段と、
前記前段処理の結果に対して信頼度を算出する信頼度算出手段と、
前記信頼度に基づいて前記三次元形状の推定条件を決定する推定条件決定手段と、
前記推定条件に基づいて前記三次元形状を推定する形状推定手段と、
を備え、
前記推定条件決定手段は、前記形状推定手段が詳細な三次元形状の推定処理又は概略的な三次元形状の推定処理の何れを行うかを前記推定条件として決定することを特徴とする情報処理装置。
【請求項２】
前記前段処理は、前記画像データを用いて前記多関節物体の関節の三次元位置を算出する処理であり、
前記信頼度算出手段は、前記関節の三次元位置の信頼度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記前段処理は、前記画像データとニューラルネットワーク技術とを用いて前記多関節物体の関節の三次元位置を算出する処理であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記画像データは距離画像のデータであり、
前記前段処理は、前記距離画像のデータの距離情報をニューラルネットワークに入力することにより前記多関節物体の関節の三次元位置を算出する処理であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記前段処理は、前記画像データから多関節領域を検出して当該多関節領域のシルエット画像を生成し、当該シルエット画像の画素値をニューラルネットワークに入力することにより前記多関節物体の関節の三次元位置を算出する処理であることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記前段処理は、前記ニューラルネットワークの出力層の各ノードに対応する多関節物体のパターンの尤もらしさに基づいて、前記多関節物体の関節の三次元位置を算出する処理であることを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記前段処理は、前記画像データから前記多関節物体の関節を検出する処理であり、
前記信頼度算出手段は、前記検出された結果の信頼度を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記信頼度算出手段は、前記検出された関節の数に基づいて前記信頼度を算出することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記信頼度算出手段は、前記検出された関節の位置関係の尤もらしさを前記信頼度として算出することを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記信頼度算出手段は、前記多関節物体の部位ごとに信頼度を算出し、
前記推定条件決定手段は、前記部位ごとに推定条件を決定することを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
前記画像データは、距離画像、可視画像、赤外画像のデータのうちの少なくともいずれか１つを含むことを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記多関節物体は手指であることを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
多関節物体の三次元形状を推定する情報処理装置であって、
前記多関節物体の画像データを取得する画像取得手段と、
前記画像データに対して、前記画像データから前記多関節物体の関節を検出する処理である前段処理を行う前段処理手段と、
前記前段処理により検出された関節の数に基づいて、前記前段処理の結果の信頼度を算出する信頼度算出手段と、
前記信頼度に基づいて前記三次元形状の推定条件を決定する推定条件決定手段と、
前記推定条件に基づいて前記三次元形状を推定する形状推定手段と、
を備えることを特徴とする情報処理装置。
【請求項１４】
多関節物体の三次元形状を推定する情報処理装置の制御方法であって、
画像取得手段が、前記多関節物体の画像データを取得する画像取得工程と、
前段処理手段が、前記画像データに対して前段処理を行う前段処理工程と、
信頼度算出手段が、前記前段処理の結果に対して信頼度を算出する信頼度算出工程と、
推定条件決定手段が、前記信頼度に基づいて前記三次元形状の推定条件を決定する推定条件決定工程と、
形状推定手段が、前記推定条件に基づいて前記三次元形状を推定する形状推定工程と、
を有し、
前記推定条件決定工程では、前記形状推定工程で詳細な三次元形状の推定処理又は概略的な三次元形状の推定処理の何れを行うかを前記推定条件として決定することを特徴とする情報処理装置の制御方法。
【請求項１５】
多関節物体の三次元形状を推定する情報処理装置の制御方法であって、
画像取得手段が、前記多関節物体の画像データを取得する画像取得工程と、
前段処理手段が、前記画像データに対して、前記画像データから前記多関節物体の関節を検出する処理である前段処理を行う前段処理工程と、
信頼度算出手段が、前記前段処理により検出された関節の数に基づいて、前記前段処理の結果の信頼度を算出する信頼度算出工程と、
推定条件決定手段が、前記信頼度に基づいて前記三次元形状の推定条件を決定する推定条件決定工程と、
形状推定手段が、前記推定条件に基づいて前記三次元形状を推定する形状推定工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１６】
コンピュータを、請求項１乃至１３の何れか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
実写風景を背景として、その上にコンピュータグラフィックス（以下、「ＣＧ」と記述）を重畳して提示し、体験者に対して、あたかもその場に仮想の物体が存在するかのような体験を行わせる複合現実感(Mixed Reality:MR)の技術がある。このＭＲ技術を用いて臨場感豊かな体験を実現するには、背景となる実写風景の上にただ単純にＣＧを重畳して表示するだけでは不十分であり、体験者とＣＧとのインタラクションが重要となる。具体的には、体験者がＣＧで描画される仮想物体に触ったり、仮想物体を操作すしたりする（しているように体感させる）インタラクションが重要となる。そして、このようなインタラクションを実現するためには、仮想物体を操作する体験者の手指の三次元形状の情報が必要となる。
【０００３】
特許文献１では、ステレオ画像から抽出した手指の輪郭線のマッチング処理によって、手指の三次元形状を推定することが開示されている。また、特許文献２では、事前に学習処理が行われたニューラルネットワークに手指関節の生体信号から抽出した特徴量を入力することで手指の三次元形状（関節間の角度）を推定することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５５７４８５２号公報
【特許文献２】特許第５２５２４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、手指の輪郭の三次元位置以外の部分の詳細な形状を推定することはできない。また、特許文献２に記載の技術では、輪郭以外の部分の詳細な三次元形状も推定することができるが、手指関節の生体信号に誤差が含まれるなど学習パターンと大きく異なる特徴量が入力されると、実際とは大きく異なる三次元形状が推定されてしまう場合がある。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、手指の三次元形状の推定精度を向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成する本発明に係る情報処理装置は、
多関節物体の三次元形状を推定する情報処理装置であって、
前記多関節物体の画像データを取得する画像取得手段と、
前記画像データに対して前段処理を行う前段処理手段と、
前記前段処理の結果に対して信頼度を算出する信頼度算出手段と、
前記信頼度に基づいて前記三次元形状の推定条件を決定する推定条件決定手段と、
前記推定条件に基づいて前記三次元形状を推定する形状推定手段と、
を備え、
前記推定条件決定手段は、前記形状推定手段が詳細な三次元形状の推定処理又は概略的な三次元形状の推定処理の何れを行うかを前記推定条件として決定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、手指の三次元形状の推定精度を向上させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る情報処理システムの構成例を示す図である。
【図２】本発明の一実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【図３】本発明の一実施形態に係る情報処理装置の機能構成例を示す図である。
【図４】第１の実施形態に係る情報処理装置が実施する処理の手順を示すフローチャートである。
【図５】第１の実施形態に係る手指の周辺領域の抽出処理を模式的に示す図である。
【図６】第１の実施形態に係る関節の三次元位置の算出処理の例を模式的に示す図である。
【図７】第１の実施形態に係る情報処理装置が実施する信頼度算出処理の例を示すフローチャートである。
【図８】第１の実施形態に係る情報処理装置が実施する詳細な三次元形状の推定処理を示すフローチャートである。
【図９】第１の実施形態に係る情報処理装置が実施する概略的な三次元形状の推定方法を模式的に示す図である。
【図１０】第１の実施形態に係る情報処理装置が実施する概略的な三次元形状の推定処理を示すフローチャートである。
【図１１】第２の実施形態に係る情報処理装置が実施する処理の手順を示すフローチャートである。
【図１２】第２の実施形態に係る情報処理装置が実施する信頼度算出処理の例を示すフローチャートである。
【図１３】第３の実施形態に係る情報処理装置が実施する関節の三次元位置の算出処理の例を模式的に示す図である。
【図１４】第４の実施形態に係る情報処理装置が実施する処理の手順を示すフローチャートである。
【図１５】第５の実施形態に係る手指の部位を模式的に示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態を説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
（第１の実施形態）
＜情報処理システムの構成＞
図１は、本実施形態に係る情報処理システムの構成例を示す図である。情報処理システムは、情報処理装置１００、ヘッドマウントディスプレイ１０１（以下、「ＨＭＤ」と記述）、距離センサ１０２を含んで構成される。ＨＭＤ１０１は、撮影部１０３、１０４と、表示部１０５、１０６とを備えており、撮影部１０３、１０４の撮影画像を表示部１０５、１０６に表示する。距離センサ１０２は、被写体までの距離を画素値として持つ距離画像を生成する。情報処理装置１００は、撮影部１０３、１０４による撮影画像と、距離センサ１０２による距離画像とを取得し、被写体に含まれる手指（多関節物体）の三次元形状を推定する。なお、本発明は、上記のシステム構成に限定されない。例えば、ＨＭＤ１０１は必須ではなく、撮影部１０３、１０４が手指を撮影するような構成であってもよい。
【００１２】
＜情報処理装置のハードウェア構成＞
図２は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す図である。情報処理装置１００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、インタフェース２０５、システムバス２０６を含んで構成され、ＨＭＤ１０１及び距離センサ１０２と接続されている。
【００１３】
ＣＰＵ２０１は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０３に格納されたプログラムを読み出して実行し、システムバス２０６を介して後述する各構成要素を統括的に制御する。これにより、後述する様々な処理が実行される。
【００１４】
ＨＤＤ２０４は、二次記憶装置としての役割を持つ。ＣＰＵ２０１は、ＨＤＤ２０４からのデータ読み出し、およびＨＤＤ２０４へのデータ書き込みが可能である。なお、二次記憶装置は、ＨＤＤの他、光ディスクドライブ等の記憶デバイスでもよい。インタフェース２０５は、ＨＭＤ１０１や距離センサ１０２などの外部装置とのデータのやり取りを行う。なお、情報処理装置１００の構成要素は上記以外にも存在するが、本発明の主眼ではないので、説明を省略する。
【００１５】
＜情報処理装置の機能構成＞
図３は、本実施形態に係る情報処理装置１００の機能構成の一例を示す図である。情報処理装置１００は、画像取得部３０１、前段処理部３０２、信頼度算出部、推定条件決定部３０４、形状推定部３０５を備えている。
【００１６】
画像取得部３０１は、距離センサ１０２から距離画像データを取得し、また、撮影部１０３、１０４からそれぞれ撮影画像データを取得する。前段処理部３０２は、距離画像中の手指領域を検出し、手指の周辺領域を抽出し、手指を構成する関節の三次元位置を算出する。信頼度算出部３０３は、距離画像を用いて、手指を構成する関節の三次元位置の信頼度を算出する。推定条件決定部３０４は、信頼度算出部３０３により算出された信頼度に基づいて、形状推定部３０５による推定条件を決定する。形状推定部３０５は、推定条件決定部３０４により決定された推定条件に基づいて、手指の三次元形状を推定する。
【００１７】
＜情報処理装置の処理＞
図４は、本実施形態に係る情報処理装置１００が実施する処理の手順を示すフローチャートである。ステップＳ４０１において、画像取得部３０１が、撮影部１０３、１０４からそれぞれ撮影画像を取得する。以下、撮影部１０３、１０４から取得した撮影画像をまとめて、「ステレオ画像」と記述することがある。ステップＳ４０２において、画像取得部３０１が、距離センサ１０２から距離画像を取得する。
【００１８】
ステップS４０３において、前段処理部３０２が、ステップＳ４０２において取得した距離画像中の手指領域を検出する。手指領域の検出には任意の方法を用いることできる。例えば、距離センサ１０２の前に手指をかざして利用することを想定し、距離画像の示す距離値が小さい領域を手指領域として検出することができる。また、ステップＳ４０１において取得したステレオ画像から、後述する概略的な三次元形状推定方法を用いて手指ポリゴンを推定し、その手指ポリゴンを距離画像に投影することで、距離画像中における手指領域を算出することもできる。ポリゴンの投影処理については、本発明の主眼ではないため、説明を省略する。
【００１９】
ステップS４０４において、前段処理部３０２が、ステップS４０３において検出した手指領域の情報を用いて、手指の周辺領域を抽出する。詳細は後述する。ステップS４０５において、前段処理部３０２が、ステップＳ４０２において取得した距離画像とステップS４０４において抽出した手指の周辺領域の情報とを用いて、手指を構成する関節の三次元位置を算出する。詳細は後述する。
【００２０】
ステップS４０６において、信頼度算出部３０３が、ステップＳ４０２において取得した距離画像を用いて、ステップＳ４０５において算出した関節の三次元位置の信頼度を算出する。詳細は後述する。
【００２１】
ステップS４０７において、推定条件決定部３０４が、ステップS４０６において算出した信頼度があらかじめ設定されたしきい値以上か否かを判定する。この判定の結果、信頼度がしきい値以上である場合は、ステップS４０８へ進む。一方、信頼度がしきい値より小さいと判定された場合、ステップS４０９へ進む。
【００２２】
ステップS４０８において、形状推定部３０５が、ステップＳ４０２において取得した距離画像を用いて、ステップS４０６において算出した関節の三次元位置から詳細な手指の三次元形状を推定する。詳細は後述する。ステップＳ４０９において、形状推定部３０５が、ステップS４０１において取得したステレオ画像から概略的な三次元形状を推定する。詳細は後述する。以上で図４の一連の処理が終了する。
【００２３】
＜手指の周辺領域の抽出処理＞
ここで、図５は、手指の周辺領域の抽出処理の一例を模式的に示す図である。手指の周辺領域の抽出処理では、図４のステップS４０３において検出した手指領域５０１の周辺領域５０２を抽出する。周辺領域５０２として例えば、手指領域５０１に外接する四角形領域を抽出することができる。なお、本発明における手指の周辺領域５０２の抽出処理はこれに限定されず、任意の抽出処理を行うことができる。例えば、手指領域５０１の重心を中心とする四角形領域を周辺領域５０２として抽出してもよい。また、手指の周辺領域は四角形である必要はなく、任意の形状でかまわない。
【００２４】
＜手指関節の三次元位置の算出方法＞
また、図６は、本実施形態に係る手指関節の三次元位置の算出方法を模式的に示す図である。本実施形態に係る前段処理部３０２は、公知のニューラルネットワーク技術を用いて手指関節６０１の三次元位置を算出する。
【００２５】
ニューラルネットワークの入力層の各ノードには、周辺領域５０２の各画素における距離画像が示す距離値を入力する。この際、入力層のノード数に合わせて、周辺領域５０２はリサイズする。出力層には、手指関節６０１の三次元位置が出力される。具体的には、各関節のx座標、y座標、z座標を並べた一次元ベクトルの各要素が、出力層の各ノードに出力される。ここで、関節数をnとすると、出力層のノード数はn×3となる。
【００２６】
なお、本実施形態におけるニューラルネットワークは上記のものに限定されない。例えば、ニューラルネットワークが関節間の角度を出力し、その角度から改めて、手指関節６０１の三次元位置を算出するようにしてもよい。また、図６に示すニューラルネットワークは中間層が１層となっているが、多層構造のニューラルネットワークを用いてもよい。
【００２７】
また、本実施形態におけるニューラルネットワークは、上記の入出力関係になるよう事前に学習処理が行われているものとする。ニューラルネットワークの学習方法は本発明の主眼ではないため、説明を省略する。
【００２８】
また、ニューラルネットワークの入出力データは、絶対座標値（現実空間のある点を原点とした時の座標値）でも、相対座標値（データ中のある要素を原点とした時の座標値）でも、どちらでもかまわない。ただし、入出力データが絶対的な値か相対的な値かは、事前の学習処理とステップＳ４０５における手指を構成する関節の三次元位置の算出処理とで統一する必要がある。
【００２９】
＜信頼度の算出処理＞
図７は、本実施形態に係る情報処理装置１００が実施する信頼度の算出処理の手順を示すフローチャートである。以下では、図７を参照して、本実施形態における信頼度の算出処理の手順を説明する。図７の処理はＳ４０６の処理の詳細である。
【００３０】
ステップS７０１において、信頼度算出部３０３が、ステップS４０５において三次元位置を算出した手指関節６０１から、厚みを持った手指の三次元形状を表す手指ポリゴンを生成する。手指ポリゴンの生成方法は任意であるが、例えば、各関節に対してあらかじめ決められた三次元図形（指であれば円柱、手の平であれば楕円柱など）を当てはめることで、手指ポリゴンを生成することができる。
【００３１】
ここで、各関節に対して当てはめる三次元図形の大きさは、実際の手指の長さや太さに基づいて決めることが望ましい。そのために、手指の長さや太さを外部から入力できるようにしてもよいし、画像取得部３０１が取得するステレオ画像や距離画像を用いてキャリブレーションするようにしてもよい。
【００３２】
ステップS７０２において、信頼度算出部３０３が、ステップS７０１において生成した手指ポリゴンを、距離画像に投影する。ステップS７０３において、信頼度算出部３０３が、ステップＳ４０２において取得した距離画像とステップＳ７０２において投影した手指ポリゴンの距離との差分を算出する。具体的には、距離画像の各画素について、その画素に投影される手指ポリゴンの距離と距離画像が持つ距離を表す画素値との差分を算出する。ここで、差分として任意の尺度を利用することができ、例えば、距離の二乗誤差平均を差分として算出することができる。
【００３３】
ステップＳ７０４において、信頼度算出部３０３が、ステップＳ７０３において算出した差分を信頼度に変換する。信頼度として、差分と負の相関を持つ任意の尺度を利用することができ、例えば、差分の逆数を信頼度として算出することができる。以上で図７の一連の処理が終了する。
【００３４】
＜詳細な三次元形状の推定処理＞
図８は、本実施形態に係る情報処理装置１００が実施する詳細な三次元形状の推定処理の手順を示すフローチャートである。図８の処理はＳ４０８の処理の詳細である。詳細な三次元形状の推定処理では、公知のモデルフィッティング処理によって手指ポリゴンを高精度化する。モデルフィッティング処理では、まず、信頼度算出部３０３の処理と同様に、手指ポリゴンを生成し、距離画像と手指ポリゴンの距離との差分を算出する。
【００３５】
そして、その差分が小さくなるように、後述するポリゴンパラメータを変更する。これらの処理を繰り返し行うことで、三次元形状を高精度化する。以下では、図８を参照して、詳細な三次元形状の推定処理の手順を説明する。なお、ステップＳ７０１〜Ｓ７０３の各処理は、図７を参照して説明したステップＳ７０１〜Ｓ７０３の各処理と同様であるため、説明を省略する。
【００３６】
ステップＳ８０１において、形状推定部３０５が、ステップＳ７０３において算出した差分があらかじめ設定されたしきい値以下か否かを判定する。ここで、しきい値として任意の値を用いることができるが、後述する概略的な三次元形状の推定処理では手指の厚み程度の誤差が発生することを考慮し、しきい値を手指の厚み程度（例えば、１ｃｍ）にすることが望ましい。このようなしきい値を設定することで、ステップＳ４０８で算出される手指の詳細な三次元形状が、ステップＳ４０９で算出される手指の概略的な三次元形状よりも高精度になるように調整できる。この判定の結果、差分がしきい値以下である場合は、詳細な三次元形状の推定処理を終了する。一方、差分がしきい値以下でない場合は、ステップＳ８０２へ進み、差分がしきい値以下になるまでステップＳ７０１〜Ｓ８０２の処理を繰り返す。
【００３７】
ステップＳ８０２において、形状推定部３０５が、ステップＳ７０３において算出した差分が小さくなるようにポリゴンパラメータを変更する。ここで、ポリゴンパラメータとは、関節の三次元位置、指の長さ、指の太さ、手のひらの大きさなどを指す。ポリゴンパラメータを変更する方法として公知の最適化手法を用いることができる。なお、本実施形態は詳細な三次元形状の推定にモデルフィッティング処理を用いる方法に限定されない。後述の概略的な三次元形状の推定処理と比べて、より厚みに関する精度（詳細度）の高い任意の方法を用いて、詳細な三次元形状を推定することができる。
【００３８】
以上で図８の一連の処理が終了する。
【００３９】
＜概略的な三次元形状の推定処理＞
図９は、本実施形態に係る情報処理装置１００が実施する概略的な三次元形状の推定方法を模式的に示す図である。また、図１０は、本実施形態に係る情報処理装置１００が実施する概略的な三次元形状の推定処理の手順を示すフローチャートである。図１０の処理はＳ４０９の処理の詳細である。以下では、図９と図１０を参照して、本実施形態における概略的な三次元形状の推定処理について説明する。
【００４０】
ステップS１００１において、形状推定部３０５が、ステップＳ４０１において取得した撮影画像９０１、９０２中の手指領域９０３、９０４を検出する。抽出処理には任意の方法を用いることができるが、例えば、手指の色をあらかじめ登録しておき、その色の画素を手指領域として検出することができる。
【００４１】
ステップS１００２において、形状推定部３０５が、ステップS１００１において検出した手指領域９０３、９０４の輪郭を構成する点（以下、「輪郭点」と呼ぶ）を抽出する。輪郭点の抽出方法として任意の方法を用いることができるが、例えば、手指領域９０３、９０４と、一定間隔で引かれた水平線（もしくは、エピポーラ線）との交点を、輪郭点として抽出することができる。
【００４２】
ステップS１００３において、形状推定部３０５が、ステップS１００２において抽出した輪郭点のマッチング処理によってステレオ画像の対応点を算出する。マッチング処理として任意の方法を用いることができるが、例えば、特許文献１に記載されているように、輪郭点の特徴に基づいたマッチング処理を利用することができる。
【００４３】
ステップS１００４において、形状推定部３０５が、ステップS１００３において算出した対応点に対して、公知の三角測量技術を適用することで、輪郭点の距離を算出する。三角測量技術については本発明の主眼ではないため、説明を省略する。
【００４４】
ステップS１００５において、形状推定部３０５が、ステップS１００２において検出した輪郭点を繋ぎ合わせることでポリゴン化する。ポリゴン化では、ステップS１００４において算出した輪郭点の距離を用い、（二次元ではなく）三次元ポリゴンを生成する。この三次元ポリゴンは、輪郭点を繋いだ厚みを持たないポリゴンである。そのため、実際の手指の詳細な形状は反映されない。しかし、輪郭付近の距離については高精度であり、かつ、輪郭以外の領域についても近似的な距離を持つことになる。また、前述の詳細な三次元形状の算出処理に比べてロバスト性が高い。以上で図１０の一連の処理が終了する。
【００４５】
なお、本発明において概略的な三次元形状を算出する方法は、上記の方法に限定されず、任意の方法で概略的な三次元形状を算出することができる。例えば、距離画像の表す距離値をポリゴン化することで概略的な三次元形状として利用してもよい。また、上記では、概略的な三次元形状として、厚みを持たないポリゴンを生成したが、本発明はこれに限定されない。前述のフィッティング処理よりも厚みに関して精度（詳細度）が低い任意の方法で、概略的な三次元形状を生成することができる。
【００４６】
以上述べたように、本実施形態では、まず、ニューラルネットワークを用いて手指関節６０１の三次元位置を算出し、その後、得られた三次元位置の信頼度を算出する。そして、信頼度に応じて厚み（詳細度）に関する推定条件を切り替える。具体的には、信頼度が高い場合は、モデルフィッティング処理により詳細な（厚みを考慮した）三次元形状を推定し、信頼度が低い場合は、輪郭線のマッチング処理により概略的な（厚みを考慮しない）三次元形状を推定する。
【００４７】
ここで、ニューラルネットワークとモデルフィッティング処理の組み合わせでは、手指の厚みを考慮した三次元形状を算出可能である。しかし、距離画像に誤差が含まれる場合などに、実際と大きく異なる三次元形状が算出されてしまう可能性がある（ロバスト性が低い）。一方、輪郭点のポリゴン化処理は、手指の厚みを考慮できないが、実際と大きく異なる三次元形状が算出される可能性は低い（ロバスト性が高い）。本実施形態では、上記２つの三次元形状推定方法を信頼度に応じて使い分けることで、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定できる。
【００４８】
なお、上記では、信頼度に応じて、２つの推定条件を切り替える例について説明したが、本発明はそれに限定されない。信頼度に応じて、２つ以上の任意の数の推定条件を切り替えることができる。また、上記では、先に信頼度を算出してから、推定条件を切り替える例について説明したが、本発明はそれに限定されない。先に両方の推定条件で推定を行ってから、信頼度に応じてどちらの推定結果を採用するかを決めてもかまわない。また、上記では、関節の三次元位置から信頼度を算出し、その信頼度に応じて推定条件を決定する例について説明したが、本発明はこれに限定されない。関節の三次元位置から直接、推定条件を決定してもかまわない。
【００４９】
本実施形態によれば、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定できるため、手指の三次元形状の推定精度を向上させることが可能となる。
【００５０】
（第２の実施形態）
次に、第２の実施形態を説明する。第１の実施形態では、ニューラルネットワークに距離情報を入力することで手指関節の三次元位置を算出する場合を例に挙げて説明した。これに対し、本実施形態では、ニューラルネットワークに手指領域を表すシルエット画像を入力することで手指関節の三次元位置を算出する場合を例に挙げて説明する。このように本実施形態と第１の実施形態は、ニューラルネットワークにシルエット画像を入力する点が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図１０に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００５１】
＜情報処理装置の処理＞
図１１は、本実施形態に係る情報処理装置１００が実施する処理の手順を示すフローチャートである。以下では、図１１を参照して、本実施形態の処理の手順を説明する。なお、ステップＳ４０１、Ｓ４０４、Ｓ４０９の各処理は、第１の実施形態で図４を参照して説明した処理と同様であるため、説明を省略する。
【００５２】
ステップＳ１１０１において、前段処理部３０２が、ステップＳ４０１において取得した撮影画像９０１、９０２中の手指領域９０３、９０４（多関節領域）を検出する。検出方法は、前述の、形状推定部３０５による検出方法と同様であるため、説明を省略する。
【００５３】
ステップＳ１１０２において、前段処理部３０２が、ステップＳ１１０１において検出した手指領域９０３、９０４からそれぞれ検出シルエット画像を生成する。検出シルエット画像とは、手指領域として検出された画素の画素値が１、検出されなかった画素の画素値が０となる画像である。
【００５４】
ステップＳ１１０３において、前段処理部３０２が、ステップＳ１１０２において生成した検出シルエット画像と、ステップS４０４において抽出した手指の周辺領域５０２の情報とを用いて、手指関節６０１の概略的な三次元位置（相対座標値）を算出する。詳細は後述する。
【００５５】
ステップS１１０４において、前段処理部３０２が、ステップS１１０３において生成した手指関節６０１の概略的な三次元位置を絶対座標値に変換する。変換方法は任意であるが、例えば、距離センサ１０２から手指領域９０３、９０４の重心における距離を取得し、その距離をオフセットとして加算することで絶対座標値に変換することができる。また、前述の概略的な三次元形状の推定方法によって厚みを持たない手指ポリゴンを生成し、手指領域９０３、９０４の重心における手指ポリゴンの距離をオフセットとして加算してもよい。
【００５６】
ステップS１１０５において、信頼度算出部３０３が、ステップＳ１１０２において生成した検出シルエット画像を用いて、ステップＳ１１０４において算出した関節の三次元位置の信頼度を算出する。詳細は後述する。
【００５７】
ステップＳ１１０６において、推定条件決定部３０４が、ステップＳ１１０５において算出した信頼度があらかじめ設定されたしきい値以上か否かを判定する。この判定の結果、信頼度がしきい値以上である場合は、ステップS１１０７へ進む。一方、信頼度がしきい値より小さいと判定された場合、ステップS４０９へ進む。
【００５８】
ステップＳ１１０７において、形状推定部３０５が、ステップＳ１１０２において生成した検出シルエット画像を用いて、ステップS１１０４において算出した関節の三次元位置から詳細な手指の三次元形状を推定する。詳細は後述する。
【００５９】
なお、本実施形態における手指関節６０１の三次元位置の算出処理では、ニューラルネットワークに検出シルエット画像を入力する。具体的には、入力層の各ノードに、検出シルエット画像の各画素の画素値を入力する。出力層については、第１の実施形態と同様であるため、説明を省略する。なお、本実施形態におけるニューラルネットワークは、検出シルエット画像を入力すると、手指関節の三次元位置を出力するように、事前に学習処理が行われているものとする。また、本実施形態におけるニューラルネットワークには、必ずしも手指領域９０３と９０４の両方を入力する必要はなく、片方だけを入力するようにしてもかまわない。
【００６０】
＜信頼度の算出処理＞
図１２は、本実施形態に係る情報処理装置１００が実施する信頼度の算出処理の手順を示すフローチャートである。以下では、図１２を参照して、本実施形態における信頼度の算出処理の手順を説明する。図１２の処理はＳ１１０５の処理の詳細である。なお、ステップＳ７０１の処理は、第１の実施形態と同様であるため、説明を省略する。
【００６１】
ステップS１２０１において、信頼度算出部３０３が、ステップS７０１において生成した手指ポリゴンを、撮影画像９０１、９０２に投影する。ステップＳ１２０２において、信頼度算出部３０３が、ステップＳ１２０１の投影結果からポリゴンシルエット画像を生成する。ポリゴンシルエット画像とは、手指ポリゴンが投影された画素の画素値が１、投影されなかった画素の画素値が０となる画像である。
【００６２】
ステップＳ１２０３において、信頼度算出部３０３が、ステップＳ１２０２で生成したポリゴンシルエット画像と、ステップＳ１１０２で生成した検出シルエット画像との差分を算出する。差分の算出方法は第１の実施形態と同様であるため、説明を省略する。
【００６３】
ステップＳ１２０４において、信頼度算出部３０３が、ステップＳ１２０３において算出した差分を信頼度に変換する。信頼度への変換方法は第１の実施形態と同様であるため、説明を省略する。
【００６４】
以上述べたように、本実施形態では、ニューラルネットワークに検出シルエット画像を入力することで手指関節６０１の三次元位置を算出し、その三次元位置の信頼度に応じて処理を切り替える。したがって、距離センサを使わずに、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定できる。よって、手指の三次元形状の推定精度を向上させることが可能となる。
【００６５】
（第３の実施形態）
第１、第２の実施形態では、ニューラルネットワークの出力層の各ノードが手指関節の座標値を出力する場合を例に挙げて説明した。第３の実施形態では、ニューラルネットワークの出力層の各ノードが、あらかじめ設定された手指パターンの尤もらしさを出力する場合を例に挙げて説明する。このように本実施形態と第１、第２の実施形態とは、ニューラルネットワークの各ノードが、あらかじめ設定された手指パターンの尤もらしさを出力する点が主として異なる。したがって、本実施形態の説明において、第１、第２の実施形態と同一の部分については、図１〜図１２に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００６６】
＜手指関節の三次元位置の算出方法＞
図１３は、本実施形態に係る手指関節６０１の三次元位置の算出方法を模式的に示す図である。本実施形態における前段処理部３０２は、ニューラルネットワーク技術を用いて、あらかじめ設定された手指パターン群１３０１から最も尤もらしい手指パターンを算出する。具体的には、出力層の各ノードが各手指パターンに対応しており、各手指パターンの尤もらしさを出力する。
【００６７】
そして、最も尤もらしさの大きいノードに対応する手指パターンを選択することで、手指関節６０１の三次元位置を算出する。なお、本実施形態におけるニューラルネットワークは、距離画像や検出シルエット画像を入力すると、手指の実際の形状に最も近い手指パターンに対応するノードの出力値が最も大きくなるように、あらかじめ学習処理が行われているものとする。
【００６８】
本実施形態における信頼度算出部３０３は、前段処理部３０２が出力した各手指パターンの尤もらしさから、手指関節６０１の三次元位置の信頼度を算出する。ここで、ニューラルネットワークが選択した手指パターンの尤もらしさと、他の手指パターンの尤もらしさとの差が大きいほど、ニューラルネットワークが選択した手指パターンは信頼できる。
【００６９】
そこで、手指パターン群１３０１の尤もらしさの平均値とニューラルネットワークが選択した手指パターンの尤もらしさとの差を、信頼度として算出する。なお、本実施形態における信頼度はこれに限定されない。例えば、ニューラルネットワークが選択した手指パターンの（つまり、最も値の大きい）尤もらしさと、二番目に値の大きい尤もらしさとの差を信頼度として算出してもよい。
【００７０】
以上述べたように、本実施形態では、ニューラルネットワークによって、あらかじめ設定された手指パターン群から最も尤もらしい手指パターンを算出し、その信頼度に応じて処理を切り替える。したがって、ジェスチャ認識などのように推定対象の手指パターンが限定されているケースにおいて、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定できる。よって、手指の三次元形状の推定精度を向上させることが可能となる。
【００７１】
（第４の実施形態）
第１〜第３の実施形態では、前段処理として手指関節の三次元位置を算出し、その三次元位置の信頼度に応じて処理を切り替える場合を例に挙げて説明した。第４の実施形態では、前段処理として撮影画像や距離画像から手指関節を検出し、その手指関節の検出結果の信頼度に応じて処理を切り替える場合を例に挙げて説明する。
【００７２】
このように本実施形態と第１〜第３の実施形態は、撮影画像や距離画像から手指関節を検出する点と、その手指関節の検出結果の信頼度に応じて処理を切り替える点が主として異なる。したがって、本実施形態の説明において、第１〜第３の実施形態と同一の部分については、図１〜図１３に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００７３】
＜情報処理装置の処理＞
図１４は、本実施形態に係る情報処理装置１００が実施する処理の手順を示すフローチャートである。以下では、図１４を参照して、本実施形態の処理の手順を説明する。なお、ステップＳ４０８、Ｓ４０９の処理は、第１〜第３の実施形態と同様であるため、説明を省略する。
【００７４】
ステップＳ１４０１において、画像取得部３０１が、画像を取得する。本実施形態では、撮影画像と距離画像の少なくともどちらか一方を取得し、その後の処理に利用する。以下では、撮影画像を取得して利用する例について説明するが、本発明はこれに限定されない。
【００７５】
ステップＳ１４０２において、前段処理部３０２が、ステップＳ１４０１において取得した画像から、手指関節６０１を検出する。手指関節の検出には任意の方法を用いることができるが、例えば、学習型の識別器を用いて手指の関節を検出することができる。
【００７６】
ステップＳ１４０３において、信頼度算出部３０３が、ステップＳ１４０２において検出した手指関節６０１の信頼度を算出する。例えば、あらかじめ設定された手指パターンの関節数の平均値と検出された関節数との差を、信頼度として算出することができる。なお、本発明はこれに限定されず、検出された関節数と相関のある任意の値を信頼度として利用してもよい。また、関節の位置関係の尤もらしさを信頼度として算出してもよい。以下では、検出された関節の数を信頼度として用いる例について説明するが、本発明はこれに限定されない。
【００７７】
ステップＳ１４０４において、推定条件決定部３０４が、ステップＳ１４０３において算出した信頼度があらかじめ設定されたしきい値以上か否かを判定する。この判定の結果、信頼度がしきい値以上である場合は、ステップS１４０５へ進む。一方、信頼度がしきい値より小さいと判定された場合、ステップS４０９へ進む。
【００７８】
ステップＳ１４０５において、形状推定部３０５が、ステップＳ１４０２において検出した手指関節６０１から、関節の三次元位置を算出する。本実施形態では、ニューラルネットワークの入力層に検出した手指関節６０１の二次元座標を入力する。ニューラルネットワークのその他の処理については第１〜第３の実施形態と同様であるため、説明を省略する。
【００７９】
以上述べたように、本実施形態では、前段処理として撮影画像や距離画像から手指関節６０１を検出し、その手指関節６０１の検出結果の信頼度に応じて、ニューラルネットワークによる関節の三次元位置の算出を行うか否かを切り替える。つまり、手指関節６０１の検出結果の信頼度が低い場合は、関節の三次元位置の算出を行うことなく、概略的な三次元形状の推定に切り替えることができる。
【００８０】
したがって、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定でき、かつ、処理を軽くすることもできる。よって、手指の三次元形状の推定精度を向上させることが可能となる。
【００８１】
（第５の実施形態）
次に、第５の実施形態を説明する。第１〜第４の実施形態では、前段処理の信頼度に応じて、手指全体の厚みに関する推定条件を切り替える場合を例に説明した。第５の実施形態では、手指の部位ごとに信頼度を算出し、その信頼度に応じて、手指の部位ごとに厚み（詳細度）に関する推定条件を切り替える場合を例に説明する。
【００８２】
このように本実施形態と第１〜第４の実施形態は、手指の部位ごとに信頼度を算出する点と、手指の部位ごとに厚み（詳細度）に関する推定条件を切り替える点が主として異なる。したがって、本実施形態の説明において、第１〜第４の実施形態と同一の部分については、図１〜図１４に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００８３】
＜手指の部位＞
図１５は、手指の部位を模式的に示す図である。本実施形態では、図１５に示すように、手指を部位１５０１〜１５１５に分割する。そして、部位ごとに信頼度を算出する。信頼度の算出方法は第１〜第４の実施形態と同様であるため、説明を省略する。その後、信頼度があらかじめ設定されたしきい値以上の部位については詳細な三次元形状を推定し、そうでない部位については概略的な三次元形状を推定する。
【００８４】
または、あらかじめ詳細な三次元形状と概略的な三次元形状の両方を推定しておき、信頼度がしきい値以上の部位については詳細な三次元形状を当てはめ、そうでない部位については概略的な三次元形状を当てはめるようにしてもよい。なお、部位の分割の方法は任意であり、図１５のような分割に限定されない。
【００８５】
以上述べたように、本実施形態では、手指の部位ごとに信頼度を算出し、その信頼度に応じて、手指の部位ごとに厚み（詳細度）に関する推定条件を切り替える。したがって、部位によって信頼度が異なる場合においても、実際とは大きく異なる三次元形状が推定されてしまうことを抑制しつつ、できるだけ詳細な手指の三次元形状を推定できる。よって、手指の三次元形状の推定精度を向上させることが可能となる。
【００８６】
[変形例]
以上の各実施形態では、ニューラルネットワークを用いて関節の三次元位置を算出する場合を例に挙げて説明した。しかしながら、算出方法はニューラルネットワークに限らず、本発明は任意の方法で関節の三次元位置を算出できる。例えば、距離画像を主成分分析することで、あらかじめ設定された手指パターン群から最も尤もらしい手指パターンを算出してもよい。その場合、画像取得部３０１が取得した距離画像を主成分分析した座標と、各手指パターンを投影してできる距離画像を主成分分析した座標との距離を尤もらしさと定義し、信頼度を算出する。
【００８７】
また、以上の各実施形態では、推定対象が手指である場合を例に挙げて説明した。しかしながら、推定対象は手指に限らず、本発明は任意の多関節物体について三次元形状を推定できる。例えば、推定対象が多関節生物の全身であってもかまわない。また、以上の各実施形態では、撮影画像が可視画像であるとして説明したが、本発明はこれに限定されない。例えば、撮影画像が赤外画像でもかまわない。
【００８８】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８９】
１００：情報処理装置、３０１：画像取得部、３０２：前段処理部、３０３：信頼度算出部、３０４：推定条件決定部、３０５：形状推定部
【図１】
0006723061.tif 000002
【図２】
0006723061.tif 000003
【図３】
0006723061.tif 000004
【図４】
0006723061.tif 000005
【図５】
0006723061.tif 000006
【図６】
0006723061.tif 000007
【図７】
0006723061.tif 000008
【図８】
0006723061.tif 000009
【図９】
0006723061.tif 000010
【図１０】
0006723061.tif 000011
【図１１】
0006723061.tif 000012
【図１２】
0006723061.tif 000013
【図１３】
0006723061.tif 000014
【図１４】
0006723061.tif 000015
【図１５】
0006723061.tif 000016