(57)【要約】【課題】撮像装置から被写体までの距離を算出する情報処理装置を提供する。【解決手段】情報処理装置は、ユーザの手を撮像する撮像部１０１と、撮像部１０１で撮像した手の画像から、手の特徴となる特徴点を抽出する特徴点抽出部１０６と、抽出した複数の特徴点のうちの２点間の画像上の距離を算出する測定部１０３と、撮像部１０１と手とが所定の距離にあるときの２点間の画像上の距離である基準長を記憶する記憶部１０５と、測定部１０３で算出した２点間の画像上の距離、記憶部１０５に記憶された基準長、及び前記所定の距離から、撮像部１０１と手との距離を算出する距離算出部１０９と、を備える。【選択図】図２
2015015517.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮像する撮像手段と、
前記撮像手段で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段と、
抽出した複数の前記特徴点のうちの２点間の画像上の距離を算出する測定手段と、
前記撮像手段と前記被写体とが所定の距離にあるときの前記２点間の画像上の距離である基準長を記憶する記憶手段と、
前記測定手段で算出した前記２点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離算出する距離算出手段と、を備えることを特徴とする、
情報処理装置。
【請求項２】
前記被写体の複数の姿勢の各々の３次元モデルを記憶する第２の記憶手段と、
前記被写体の画像と前記３次元モデルとのマッチングにより、前記被写体の姿勢を認識する姿勢認識手段と、を備え、
前記記憶手段は、前記複数の姿勢の各々に対応する、前記撮像手段と前記被写体とが前記所定の距離にあるときの前記基準長を記憶し、
前記距離算出手段は、前記測定手段で算出した前記２点間の画像上の距離、前記姿勢認識手段で認識した前記被写体の姿勢に対応する基準長、及び前記撮像手段と前記被写体との前記所定の距離から、前記撮像手段と前記被写体との前記距離を算出することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記撮像手段と前記被写体とが所定の距離にあるときの所定の２点間の画像上の距離である前記基準長を算出するとともに、前記所定の２点の座標を前記複数の姿勢毎に定められた演算処理を行うことで姿勢毎の新たな２点の座標を算出し、算出した姿勢毎の新たな２点の座標により、前記複数の姿勢の各々に対応する前記基準長を算出する基準長算出手段を備えることを特徴とする、
請求項２記載の情報処理装置。
【請求項４】
前記測定手段は、複数の前記特徴点のうち第１の方向に並ぶ２点間の画像上の距離及び第２の方向に並ぶ２点間の画像上の距離を算出し、
前記記憶手段は、前記撮像手段と前記被写体とが所定の距離にあるときの、前記第１の方向に並ぶ２点間の画像上の距離である第１の基準長及び前記第２の方向に並ぶ２点間の画像上の距離である第２の基準長を記憶し、
前記距離算出手段は、前記測定手段で算出した前記第１の方向に並ぶ２点間の画像上の距離及び前記第２の方向に並ぶ２点間の画像上の距離、前記記憶手段に記憶された前記第１の基準長及び前記第２の基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項１〜３のいずれか１項記載の情報処理装置
【請求項５】
前記距離算出手段は、
前記第１の基準長と前記第２の基準長の比率及び前記第１の方向に並ぶ２点間の画像上の距離及び前記第２の方向に並ぶ２点間の画像上の距離の比率を比較し、比較の結果に応じて、前記第１の方向に並ぶ２点間の画像上の距離、前記第１の基準長、及び前記所定の距離により、又は前記第２の方向に並ぶ２点間の画像上の距離、前記第２の基準長、及び前記所定の距離により、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項４記載の情報処理装置。
【請求項６】
前記距離算出手段は、前記特徴点抽出手段が前記第１の方向に並ぶ２点又は前記第２の方向に並ぶ２点のいずれかの特徴点しか抽出できなかった場合、抽出できた２点間の画像上の距離、該２点の並ぶ方向の基準長、及び前記所定の距離により、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項４記載の情報処理装置。
【請求項７】
前記撮像手段は、焦点距離を変化させることで前記被写体の画像を拡大して撮像可能であり、
前記特徴点抽出手段は、前記特徴点を抽出可能な最大の前記被写体の画像から当該特徴点を抽出し、
前記記憶手段は、前記撮像手段と前記被写体とが所定の距離にあるときの画像を撮像したときの焦点距離を記憶し、
前記距離算出手段は、前記測定手段で算出した前記２点間の画像上の距離、前記記憶手段に記憶された前記基準長、前記記憶手段に記憶された前記焦点距離、前記所定の距離、及び前記特徴点を抽出可能な最大の前記被写体の画像を撮像したときの焦点距離から、前記撮像手段と前記被写体との距離を算出する距離算出手段と、を備えることを特徴とする、
請求項１〜３のいずれか１項記載の情報処理装置。
【請求項８】
被写体を撮像する撮像装置を備えた情報処理装置により実行される方法であって、
前記撮像装置で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出するステップと、
抽出した複数の前記特徴点のうちの２点間の画像上の距離を算出するステップと、
前記撮像装置と前記被写体とが所定の距離にあるときの前記２点間の画像上の距離である基準長を所定の記憶手段に記憶するステップと、
前記２点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像装置と前記被写体との距離を算出するステップと、を含むことを特徴とする、
距離算出方法。
【請求項９】
被写体を撮像する撮像装置を備えたコンピュータに、
前記撮像装置で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段、
抽出した複数の前記特徴点のうちの２点間の画像上の距離を算出する測定手段、
前記撮像装置と前記被写体とが所定の距離にあるときの前記２点間の画像上の距離である基準長を記憶する記憶手段、
前記測定手段で算出した前記２点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像装置と前記被写体との距離を算出する距離算出手段、
を形成するためのコンピュータプログラム。
【請求項１０】
請求項９記載のコンピュータプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ等の撮像装置から被写体までの距離を算出する技術に関する。
【背景技術】
【０００２】
ユーザの動きにより機器の操作を可能としたシステムがある。つまりユーザの動きが入力インタフェースとなる。ユーザの動きを入力インタフェースとして用いる場合、システムは、ユーザの各部（ここでは「手」）の空間内の位置を正しく計測する必要がある。カメラを用いる場合、手の平面的な動きを計測することは比較的容易である。しかし、奥行き方向であるカメラから被写体（手）までの距離の計測は容易ではない。距離計測のために距離画像センサを用いることが可能であるが、この場合、システム全体の小型化が困難になる。複数のカメラを用いて距離計測を行うことも可能であるが、各カメラの特性のバラツキにより、正確な計測が困難である。
【０００３】
特許文献１〜３には、従来の被写体（物体）までの距離を計測する技術が開示される。特許文献１では、カメラの光軸に対して垂直な面内で物体を移動させ、その移動距離、物体の画像の大きさ、基準となる面までの距離、及びカメラの画角に基づいて物体までの距離を測定する。特許文献２、３では、カメラで撮影した画像のサイズと実際のサイズとから物体までの距離を測定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１４５３２５号公報
【特許文献２】特開２００５−１８９０８７号公報
【特許文献３】特開２００７−１０８０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、被写体までの距離を計測可能であるが、被写体を一定速度で移動させなければならず、ユーザの手の動きの検出に適用することは困難である。特許文献２、３の技術は、被写体の姿勢が考慮されておらず、ユーザの手の動きの検出に適用することは困難である。また、特許文献２、３の技術では、ユーザの手の動きの検出に用いる場合、距離が一定であっても手の姿勢や位置の変化によりカメラで撮像する手の大きさが変化するために、正確な距離の測定ができない。
【０００６】
本発明は、上記の問題を解決するために、カメラ等の撮像装置からユーザの手のような被写体までの距離を算出する技術を提供することを主たる課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の情報処理装置は、被写体を撮像する撮像手段と、前記撮像手段で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段と、抽出した複数の前記特徴点のうちの２点間の画像上の距離を算出する測定手段と、前記撮像手段と前記被写体とが所定の距離にあるときの前記２点間の画像上の距離である基準長を記憶する記憶手段と、前記測定手段で算出した前記２点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離を算出する距離算出手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、効率よく撮像手段から被写体までの距離を算出することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成図。
【図２】機能ブロック図。
【図３】（ａ）は特徴点の例示図、（ｂ）は特定箇所の長さの説明図。
【図４】（ａ）は手が基準点にあるときの特定箇所の長さの説明図、（ｂ）は手が基準点よりも撮像部に接近したときの特定箇所の長さの説明図。
【図５】前処理のフローチャート。
【図６】距離算出処理のフローチャート。
【図７】姿勢モデルデータの説明図。
【図８】前処理のフローチャート。
【図９】（ａ）、（ｂ）はモデルデータ毎の基準長を表すテーブル。
【図１０】距離算出処理のフローチャート。
【図１１】基準長の読出処理のフローチャート。
【図１２】空間内の手の位置と画像平面上の手の画像の位置の関係を表す図。
【図１３】（ａ）〜（ｃ）は回転行列の説明図。
【図１４】画像上の座標に基づいて各軸周りに回転させたときの計算例示図。
【図１５】前処理のフローチャート。
【図１６】距離算出処理のフローチャート。
【図１７】手の姿勢を認識できなかった場合の処理のフローチャート。
【図１８】（ａ）〜（ｄ）は特徴点を抽出できない場合の例示図。
【図１９】（ａ）〜（ｄ）は焦点距離ｆと画像の大きさの関係を表す図。
【図２０】距離算出処理のフローチャート。
【図２１】焦点距離の調整処理のフローチャート。
【発明を実施するための形態】
【００１０】
＜第１実施形態＞
図１は、本実施形態の情報処理装置のハードウェア構成図である。
情報処理装置は、ＣＰＵ（Central Processing Unit）２０１、ＲＡＭ（Random Access Memory）２０２、ＲＯＭ（Read Only Memory）２０３、及び撮像装置としてのカメラ２０４を備える。ＣＰＵ２０１，ＲＡＭ２０２、ＲＯＭ２０３、及びカメラ２０４は、各々がシステムバス２０５に接続されており、システムバス２０５を介して通信可能になっている。ＣＰＵ２０１は、ＲＯＭ２０３に格納されたコンピュータプログラムを読み込み、ＲＡＭ２０２をワークエリアとして実行することで、情報処理装置の動作や各種処理を制御する。
【００１１】
図２は、ＣＰＵ２０１がＲＯＭ２０３に格納されたコンピュータプログラムを読み込んで実行することにより、情報処理装置内に実現される機能の機能ブロック図である。情報処理装置内には、撮像部１０１、認識部１０２、測定部１０３、制御部１０４、及び記憶部１０５が形成される。認識部１０２は、特徴点抽出部１０６及び姿勢認識部１０７を備える。制御部１０４は、基準長算出部１０８及び距離算出部１０９を備える。なお、コンピュータプログラムは、ＲＯＭ２０３以外に、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００１２】
撮像部１０１は、カメラ２０４により実現される。撮像部１０１は、被写体（ユーザ）の所定部位（手）を撮像する。撮像部１０１は、撮像した画像を認識部１０２、測定部１０３、及び制御部１０４に送る。
【００１３】
認識部１０２、測定部１０３、及び制御部１０４は、ＣＰＵ２０１により実現される。認識部１０２は、特徴点抽出部１０６により、撮像部１０１で撮像した画像から、被写体の特徴となる点（特徴点）を抽出する。姿勢認識部１０７は、撮像部１０１で撮像した被写体（ユーザの手）の姿勢を認識する。
【００１４】
特徴点は、例えばユーザの手の関節等である。図３（ａ）は、本実施形態の特徴点の例示図である。特徴点抽出部１０６は、ユーザの掌の画像に対して、特徴点Ａ〜Ｄを抽出する。特徴点Ａ〜Ｄは、ユーザの手の甲が正面を向いた状態で定義される。特徴点抽出部１０６は、既知の技術により特徴点を抽出する。例えば、特徴点抽出部１０６は、姿勢認識部１０７により認識した被写体（ユーザの手）の姿勢と３次元モデルとのマッチングを行うことで特徴点を抽出する。姿勢認識部１０７による被写体の姿勢の認識には、例えば手の画像の輪郭を抽出して、複数の「手」の姿勢の各々の３次元モデルとマッチングする等の既知の技術を用いることができる。
【００１５】
測定部１０３は、撮像部１０１で撮像した被写体の画像上の所定の部分の長さを測定する。本実施形態では、測定部１０３は、ユーザの手の画像の所定の２点間の画像上の距離（特定箇所の長さ）を測定する。図３（ｂ）は、本実施形態の特定箇所の長さの説明図である。図３（ｂ）において、特定箇所の長さは、手の姿勢や形状の変化による影響が少ない長さである。図３（ｂ）では、撮像した掌の縦方向（第１の方向）に並ぶ特徴点Ｃ、Ｄ間の距離（長さ）を特定箇所の長さｈ、及び横方向（第２の方向）に並ぶ特徴点Ａ、Ｂ間の距離（長さ）を特定箇所の長さｗと定める。
【００１６】
制御部１０４は、基準長算出部１０８により、姿勢認識部１０７で認識した被写体の姿勢に対応する、基準点における所定部位（手）の特定箇所の長さを算出する。「基準点」については後述する。距離算出部１０９は、撮像部１０１と被写体（ユーザの手）との距離を算出する。基準長算出部１０８及び距離算出部１０９による処理の詳細については後述する。
【００１７】
記憶部１０５は、ＲＡＭ２０２により実現される。記憶部１０５には、後述する「前処理」時や被写体（ユーザの手）の動作時に測定した測定データ１１０が記憶される。また、記憶部１０５には、姿勢認識部１０７において用いる３次元モデルのデータベースとなる姿勢モデルデータ１１１が記憶される。本実施形態では、姿勢モデルデータ１１１は、ユーザの手が取り得る様々な姿勢を表すモデルデータである。姿勢モデルデータ１１１の詳細については後述する。
【００１８】
図４（ａ）は、手が基準点にあるときの手の画像の特定箇所の長さｈo、ｗoを説明する図である。基準点は、撮像部１０１から所定の距離にあり、移動した手の画像の特定箇所の長さｈ、ｗと比較する際の基準となる、特定箇所の長さｈo、ｗoを得るための位置である。以下、基準となる特定箇所の長さｈo、ｗoを「基準長ｈo、ｗo」という。基準点から撮像部１０１までの距離ｄoは、基準点を含む平面の基準点から撮像部１０１の真下までの距離ｘo及び該平面から撮像部１０１までの高さｙoにより、以下の式で表される。
ｄo＝√(ｘo＾２＋ｙo＾２)  …  （１）
【００１９】
図４（ｂ）は、手を基準点よりも撮像部１０１に接近させたときの手の特定箇所の長さｈ、ｗを説明する図である。手の位置が基準点よりも撮像部１０１に近いために、特定箇所の長さｈ、ｗが、基準長ｈo、ｗoよりも長くなる。
【００２０】
図５は、「前処理」のフローチャートである。前処理は、撮像部１０１による撮像中に、手が基準点に置かれたときに開始される。前処理により基準長ｈo、ｗoが記憶部１０５に記憶される。
【００２１】
撮像部１０１により撮像された手の画像は、認識部１０２に入力される。認識部１０２では、姿勢認識部１０７が撮像部１０１から取得した手の画像から姿勢を認識する。特徴点抽出部１０６は、手の画像の姿勢の認識結果に応じて、手の画像から特徴点を抽出する（Ｓ５０１）。図３（ａ）の例では、特徴点Ａ〜Ｄを抽出する。
【００２２】
制御部１０４の基準長算出部１０８は、特徴点抽出部１０６で抽出された特徴点Ａ〜Ｄにより、基準長ｈo、ｗoを算出する。基準長算出部１０８は、算出した基準長ｈo、ｗoを測定データ１１０として記憶部１０５に記憶する（Ｓ５０２）。
【００２３】
図６は、手を実際に動かしたとき（動作時）の撮像部１０１（カメラ２０４）と被写体（ユーザ）との距離を算出する距離算出処理のフローチャートである。
【００２４】
認識部１０２及び測定部１０３は、撮像部１０１で撮像した手の画像から特定箇所の長さｈ、ｗを算出する（Ｓ６０１）。特定箇所の長さｈ、ｗの算出は、図５と同様の処理により行われるが、基準長算出部１０８による処理を測定部１０３が行うことになる。特定箇所の長さｈ、ｗの算出後、制御部１０４は、距離算出部１０９により、手と撮像部１０１との距離ｄを算出する（Ｓ６０２）。一般に、撮像部１０１で撮像した画像の大きさは、被写体と撮像部１０１との距離に反比例する。そのために、手の特定箇所の長さｈに対して、手と撮像部１０１との距離ｄは以下の式で表される。
ｄ＝ｄo・ｈo／ｈ  …  （２）
【００２５】
特定箇所の長さｗに対しても同様の式となる。他にも特定箇所の長さを算出している場合には、すべての特定箇所の長さに対して同様の式が得られる。複数の特定箇所の長さを算出している場合には、その平均値が手と撮像部１０１との距離ｄとなる。例えば、以下の式で表される。
ｄ＝１／２・｛ｄo・（ｈo／ｈ＋ｗo／ｗ）｝  …  （３）
【００２６】
手の姿勢を考慮しなければ、以上の処理により撮像部１０１と被写体（ユーザの手）との距離ｄが算出される。しかしながら、実際は、距離ｄが一定であっても、手の姿勢や位置が変わることで、撮像部１０１で撮像される手の画像の大きさや形状が変化する。このような手の画像の大きさや形状の変化に対応するために、姿勢モデルデータ１１１を用いる。図７は、姿勢モデルデータ１１１の説明図である。姿勢モデルデータ１１１は、手が取り得る様々な姿勢を表すモデルデータである。各モデルデータは、指の関節の座標や特徴パラメータ等である。本実施形態では、図７に示すようにモデル１〜モデル１１の１１個のモデルに関しての姿勢モデルデータ１１１が記憶部１０５に記憶される。
【００２７】
図８は、このような姿勢モデルデータ１１１を用いた場合の前処理のフローチャートである。図６の場合と同様に、前処理は、撮像部１０１による撮像中に、手が基準点に置かれたときに開始される。
【００２８】
撮像部１０１により撮像された手の画像は、認識部１０２に入力される。認識部１０２では、姿勢認識部１０７が撮像部１０１から取得した画像から手の姿勢を認識する。姿勢認識部１０７は、姿勢モデルデータ１１１を用いることで、認識した姿勢がモデル１〜１１のいずれの姿勢であるかを判別する。例えば、姿勢認識部１０７は、手の画像から得られる手の輪郭と、姿勢モデルデータ１１１とのマッチングにより、認識した姿勢がモデル１〜１１のいずれの姿勢であるかを判別する（Ｓ８０１）。モデル１〜１１のいずれの姿勢でもない場合、姿勢認識部１０７は、いずれかの姿勢にマッチングするまでステップＳ８０１の処理を繰り返す（Ｓ８０１：N）。
【００２９】
モデル１〜１１のいずれかの姿勢にマッチングした場合（Ｓ８０１：Y）、認識部１０２及び制御部１０４は、図５と同様の処理により、撮像部１０１で撮像した手の画像から基準長ｈo、ｗoを算出する（Ｓ８０２）。既に基準長ｈo、ｗoを算出済みの姿勢を再度認識した場合には、この処理を行う必要はないが、再度、基準長ｈo、ｗoを算出して平均値の算出に用いてもよい。算出結果は、記憶部１０５に、図９（ａ）に示すようなモデルデータ毎の基準長ｈo、ｗoを表すテーブルとして記憶される。この際、同時に、撮像部１０１の焦点距離も記憶する。
【００３０】
認識部１０２及び制御部１０４は、姿勢モデルデータ１１１の全モデルデータ、或いはその中で利用すると定めたモデルデータに関する基準長ｈo、ｗoの算出が終了すると、前処理を終了する（Ｓ８０３：Y）。基準長ｈo、ｗoの算出が終了すると、図９（ｂ）に示すテーブルが記憶部１０５に記憶される。
【００３１】
図１０は、手を実際に動かしたとき（動作時）の距離算出処理のフローチャートである。
【００３２】
撮像部１０１で撮像した手の画像により、姿勢認識部１０７は、現在の手の姿勢を認識する（Ｓ９０１）。手の姿勢の認識は、図８のステップＳ８０１の処理と同様である。測定部１０３は、現在の姿勢に対応する基準長を、記憶部１０５に記憶された図９（ｂ）のテーブルから読み出す（Ｓ９０２）。図１１は、基準長の読出処理のフローチャートである。
【００３３】
測定部１０３は、モデルを１つ選択する（Ｓ１１０１）。例えば、図７のモデル１〜１１のいずれか１つを選択する。ここではモデル１から順に１つずつ選択する。測定部１０３は、選択したモデルがステップＳ９０１による姿勢認識結果に一致するか否かを判別する（Ｓ１１０２）。一致する場合（Ｓ１１０２：Y）、測定部１０３は、当該モデルの基準長ｈo、ｗoを、図９（ｂ）のテーブルから読み込む（Ｓ１１０３）。読み込んだ基準長ｈo、ｗoを、現在の姿勢に対応する基準長ｈmo、ｗmoとする。例えば、一致するモデルが「２」の場合、「ｈmo＝０．００４１６４」、「ｗmo＝０．０３６」となる。
【００３４】
一致しない場合（Ｓ１１０２：N）、測定部１０３は、全モデル（図７のモデル１〜１１）を選択したか否かを判別する（Ｓ１１０４）。全モデルを選択した場合（Ｓ１１０４：Y）、測定部１０３は、エラーが発生していると判断してエラー処理を行い、処理を終了する（Ｓ１１０５）。未選択のモデルがある場合（Ｓ１１０４：N）、測定部１０３は、ステップＳ１１０１の処理に戻り、次のモデルを選択して処理を繰り返す。
【００３５】
以上のような処理により、測定部１０３は、現在の手の姿勢に対応する基準長ｈmo、ｗmoをテーブルから読み出す。
【００３６】
基準長ｈmo、ｗmoの読み出し後に、認識部１０２及び測定部１０３は、図６のステップＳ６０１と同様の処理により、撮像部１０１で撮像した手の画像から特定箇所の長さｈ、ｗを算出する（Ｓ９０３）。特定箇所の長さｈ、ｗの算出後、距離算出部１０９は、手と撮像部１０１との距離ｄを算出する（Ｓ９０４）。上述の通り、画像の大きさは距離に反比例するので、距離算出部１０９は、これを利用して手と撮像部１０１の距離ｄを算出する。ここでは基準長ｈo、ｗoに代わり、現在の姿勢に対応付けられた基準長ｈmo、ｗmoを用いて、以下の式により算出する。
ｄ＝１／２・｛ｄo・（ｈmo／ｈ＋ｗmo／ｗ）｝  …  （４）
【００３７】
このように、本実施形態では、前処理時に、予め、基準点における被写体の所定部位（ユーザの手）がとり得る様々な姿勢による基準長ｈo、ｗoを測定する。動作時には、現在の姿勢と同じ姿勢の基準点における基準長ｈmo、ｗmoを利用することで、所定部位の姿勢や位置のずれに対応して、正確な所定部位と撮像部１０１との距離ｄを算出することができる。
【００３８】
＜第１実施形態の変形例１＞
前処理時には、ユーザがモデルデータの数だけ姿勢を変えて基準長を算出する必要があるため、ユーザの負担となる。このようなユーザの負担を低減するために、基準長算出部１０８により、１つの姿勢について基準長ｈmo、ｗmoを算出しておき、他の姿勢については、該１つの姿勢の基準長ｈmo、ｗmoから算出してもよい。
【００３９】
図１２は、空間内の手の位置と、画像平面上の手の画像の位置の関係を表す図である。手の特徴点Ａ、Ｂ、Ｃ、Ｄは、例えば図３（ａ）に示すように定義される。図１２において、点Ｏは撮像部１０１のレンズ中心を示し、Ｚ軸はレンズの光軸方向を指す。点Ｑ（Ｘ，Ｙ，Ｚ）は空間中の基準点における手の座標である。画像平面は、点Ｏから前方にレンズの焦点距離ｆoにあり、画像平面のｘ軸、ｙ軸は、レンズの光軸に垂直である。点Ｑ（Ｘ，Ｙ，Ｚ）の画像平面への射影は、直線ＯＱと画像平面との交点ｑ（ｘ，ｙ）であり、手のＺ座標の値が焦点距離ｆoに対して充分に大きい場合に次式が成り立つことが知られている。
Ｘ＝ｘ・ｆ／ｚ  …  （５）
Ｙ＝ｙ・ｆ／ｚ  …  （６）
【００４０】
撮像部１０１にて撮像した画像から特徴点Ａ、Ｂ、Ｃ、Ｄのそれぞれの画像平面上の平面座標（ｘ座標、ｙ座標）が得られる。レンズの焦点距離ｆoと基準点のＺ座標は既知なので、これにより特徴点Ａ、Ｂ、Ｃ、Ｄのそれぞれの基準点における空間座標（Ｘ座標、Ｙ座標）が算出できる。このようにして得られた空間座標Ａ、Ｂ、Ｃ、Ｄに対してモデル毎（姿勢毎）に定められた演算処理を行うことで、モデル毎に空間座標を求める。例えば、モデル毎に定められた回転角分回転させて、回転後のモデルごとの空間座標を求める。各軸周りの回転行列は、図１３に示す通りである。図１３（ａ）はＸ軸周りの回転、図１３（ｂ）はＹ軸周りの回転、図１３（ｃ）はＺ軸周りの回転に関する計算式である。これ以外の回転行列は、これら３つの各軸周りの回転行列の積によって求められる。
【００４１】
（５）、（６）式により、回転後の空間座標を画像平面上の平面座標に変換することで各姿勢モデルの平面座標が得られる。特徴点Ａの平面座標を（ｘa，ｙa）、特徴点Ｂの平面座標を（ｘb，ｙb）、特徴点Ｃの平面座標を（ｘc，ｙc）、特徴点Ｄの平面座標を（ｘd，ｙd）とすると、その姿勢における基準点での基準長ｈmo、ｗmoは以下の式で表される。
ｈmo＝√｛（ｙb−ｙa）＾２＋（ｙc−ｙd）＾２｝  …  （７）
ｗmo＝√｛（ｘb−ｘa）＾２＋（ｘc−ｘd）＾２｝  …  （８）
【００４２】
焦点距離ｆo＝０．０３、Ｚ＝１００のときに、撮像部１０１にて撮像した画像から読み取れる座標に基づいて各軸周りに回転させたときの計算例を、図１４に示す。なお、距離算出処理は図１０と同様である。これによりユーザが実際に様々な姿勢をとらなくても、計算により各モデルの姿勢のときのデータを算出することができる。
【００４３】
＜第１実施形態の変形例２＞
特定箇所の長さｈ、ｗは、その両方を距離ｄの算出に用いているが、これは、いずれか一方のみであってもよい。
【００４４】
図１５は、特定箇所の長さｈ、ｗのいずれか一方のみを用いる場合の前処理のフローチャートである。前処理は、撮像部１０１による撮像中に、手が基準点に置かれたときに開始される。
【００４５】
撮像部１０１により撮像された手の画像は、認識部１０２に入力される。認識部１０２では、姿勢認識部１０７が基準点における手の姿勢を認識して、認識結果が姿勢モデルデータ１１１のいずれのモデルに当たるかを判別する。手の姿勢の認識処理は、図８のステップＳ８０１と同様である。姿勢認識部１０７は、この処理により手が正面を向いた姿勢（図７のモデル１）であるか否かを判別する（Ｓ１５０１）。姿勢認識部１０７は、手が正面を向いた姿勢になるまで、この処理を繰り返す（Ｓ１５０１：N）。
【００４６】
姿勢認識部１０７が、手が正面を向いた姿勢であると判別すると（Ｓ１５０１：Y）、認識部１０２及び制御部１０４は、基準長ｈo、ｗoを算出する（Ｓ１５０２）。基準長ｈo、ｗoの算出方法は、図５の処理と同様である。基準長ｈo、ｗoの算出後、測定部１０３は、基準長ｈo、ｗoの比率ｒo＝ｈo／ｗoを算出する。測定部１０３は、算出した比率ｒoを測定データ１１０として記憶部１０５に記憶する。前処理は、以上のように行われる。
【００４７】
図１６は、手を実際に動かしたとき（動作時）の距離算出処理のフローチャートである。
認識部１０２及び測定部１０３は、特定箇所の長さｈ、ｗを算出する（Ｓ１６０１）。特定箇所の長さｈ、ｗの算出方法は、図１０のＳ９０１〜Ｓ９０３の処理と同様である。特定箇所の長さｈ、ｗの算出後、測定部１０３は、特定箇所の長さｈ、ｗの比率ｒ＝ｈ／ｗを算出する（Ｓ１６０２）。比率ｒの算出後、制御部１０４の距離算出部１０９は、比率ｒと測定データ１１０として記憶した比率ｒoとを比較する（Ｓ１６０３）。
【００４８】
比較の結果、比率ｒが比率ｒoより大きい場合（Ｓ１６０３：Y）、距離算出部１０９は、基準点における基準長ｈoと現在の特定箇所の長さｈとから、以下の式により撮像部１０１と手との距離ｄを算出する。
ｄ＝ｄo・ｈo／ｈ  …（９）
【００４９】
比較の結果、比率ｒが比率ｒo以下の場合（Ｓ１６０３：N）、距離算出部１０９は、基準点における基準長ｈoと現在の特定箇所の長さｈとから、以下の式により撮像部１０１と手との距離ｄを算出する。
ｄ＝ｄo・ｗo／ｗ  …（１０）
【００５０】
このように、特定箇所の長さｈ、ｗのいずれか一方を用いて撮像部１０１と手との距離ｄを算出することで、計算量を削減することができ、処理の負荷を低減して高速な処理が実現できる。
【００５１】
以上説明したように、手の姿勢が変化した場合でも１つの撮像部１０１により、撮像部１０１と手との距離を算出することができ、装置全体の小型化を図ることができる。
【００５２】
［第２実施形態］
第１実施形態では、動作時の手の姿勢や特徴点を抽出して撮像部１０１と手との距離ｄを算出しているが、手の姿勢や特徴点は、撮像した画像から必ず認識できるとは限らない。第２実施形態では、手の姿勢や特徴点が認識できない場合の処理を説明する。第２実施形態においても、第１実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第１実施形態と同様であり、説明を省略する。
【００５３】
図１７は、動作時に手の姿勢を認識できなかった場合の処理のフローチャートである。
認識部１０２の特徴点抽出部１０６は、撮像部１０１から取得した手の画像から、手の特徴点を抽出する（Ｓ１７０１）。上述の通り、特徴点の抽出には既知の技術を用いる。認識部１０２は、特徴点抽出部１０６が、図３（ａ）の特徴点Ａ、Ｂ又は特徴点Ｃ、Ｄを抽出したか否かを判別する（Ｓ１７０２）。特徴点Ａ、Ｂ又は特徴点Ｃ、Ｄを抽出できなかった場合（Ｓ１７０２：N）、認識部１０２は、エラー処理を行い処理を終了する（Ｓ１７０４）。
【００５４】
特徴点Ａ、Ｂを抽出した場合（Ｓ１７０２：Y、Ｓ１７０３：A&B）、制御部１０４の距離算出部１０９は、基準長ｗo及び特定箇所の長さｗを利用して、撮像部１０１と手との距離ｄを算出する（Ｓ１７０５）。図１８は、特徴点を抽出できない場合の画像の例示図である。図１８（ａ）、（ｃ）は、特徴点Ａ、Ｂ、Ｄが抽出される場合の手の画像の例示図である。図１８（ａ）、（ｃ）では、撮像部１０１に対する掌の向きや撮像範囲外への手の移動等により、特徴点Ｃが抽出できなくなっている。撮像部１０１と手との距離ｄは、特徴点Ａ、Ｂから求められる特定箇所の長さｗにより、以下の式で算出される。
ｄ＝ｄo・ｗo／ｗ  …（１１）
【００５５】
特徴点Ｃ、Ｄを抽出した場合（Ｓ１７０２：Y、Ｓ１７０３：C&D）、制御部１０４の距離算出部１０９は、基準長ｈo及び特定箇所の長さｈを利用して、撮像部１０１と手の距離ｄを算出する（Ｓ１７０６）。図１８（ｂ）、（ｄ）は、特徴点Ａ、Ｃ、Ｄが抽出される場合の手の画像の例示図である。図１８（ｂ）、（ｄ）では、撮像部１０１に対する掌の向きや撮像範囲外への手の移動等により、特徴点Ｂが抽出できなくなっている。撮像部１０１と手との距離ｄは、特徴点Ｃ、Ｄから求められる特定箇所の長さｈにより、以下の式で算出される。
ｄ＝ｄo・ｈo／ｈ  …（１２）
【００５６】
このように、第２実施形態では、手の画像から認識した特徴点が少なく、手の姿勢を認識できない場合でも、認識できた特徴点により撮像部１０１と手との距離ｄを算出可能である。
【００５７】
［第３実施形態］
第１実施形態では、撮像部１０１のレンズの焦点距離ｆが常に固定されている場合を説明した。第３実施形態では、手の位置を固定したまま、レンズの焦点距離ｆを変化させる。焦点距離ｆを変化させることで、被写体（ユーザの手）の画像を拡大して撮像可能であり、特徴点の座標を正確に取得することができる。第３実施形態においても、第１実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第１実施形態と同様であり、説明を省略する。なお、前処理時のレンズの焦点距離を「ｆo」とする。
【００５８】
画像が小さい場合には特徴点の座標値の読み出しの際に誤差が生じやすい。図１９は、焦点距離ｆと画像の大きさの関係を表す図である。図１９の例では、図１９（ｂ）よりも図１９（ｃ）、図１９（ｃ）よりも図１９（ｄ）の方が、平面画像上における手の画像が小さくなる。そのために、図１９（ｂ）が最も特徴点Ａ〜Ｄの座標値の誤差が小さく、図１９（ｄ）が最も特徴点Ａ〜Ｄの座標値の誤差が大きくなる。測定部１０３が算出する画像上の特定箇所の長さｈ、ｗは、座標値の誤差がそのまま影響するために、正確な座標値の取得が必要である。
【００５９】
第３実施形態では、特徴点の座標値を読み取る際に、手の画像が大きくなるように光学系（レンズ）を移動させることで焦点距離ｆを調整する。これにより、特徴点の座標値の誤差をできるだけ小さくする。
【００６０】
図２０は、手を実際に動かしたとき（動作時）の距離算出処理のフローチャートである。図２０は、第１実施形態の図１０のフローチャートに、ステップＳ２００１及びステップＳ２００２の処理を追加しており、他の処理は同じである。
【００６１】
図１０と同様に、手の姿勢を認識し、基準長ｈmo、ｗmoを記憶部１０５から読み出した後、情報処理装置は、撮像部１０１のレンズの焦点距離ｆを調整する（Ｓ２００１）。なお、記憶部１０５には、基準長ｈmo、ｗmoを算出したときの焦点距離ｆoが記憶されている。測定部１０３は、基準長ｈmo、ｗmoとともに、焦点距離ｆoも読み出す。図２１は、焦点距離ｆの調整処理のフローチャートである。
【００６２】
認識部１０２の特徴点抽出部１０６は、撮像部１０１で撮像した手の画像から特徴点Ａ〜Ｄを抽出してその座標を取得し、測定データとして記憶部１０５に一時保持する。特徴点の抽出は、第１、第２実施形態と同様である（Ｓ２１０１）。測定部１０３は、特徴点Ａ、Ｂ間の距離（特定箇所の長さｗ）と特徴点Ｃ、Ｄ間の距離（特定箇所の長さｈ）の和をＬmaxとして記憶部１０５に一時保持する。また、現在の焦点距離ｆが記憶部１０５に一時保持される（Ｓ２１０２）。
【００６３】
撮像部１０１は、レンズの焦点距離ｆの調整（光学系の移動）が可能であるか否かを確認する。例えば、焦点距離ｆを現在より長くできるかを確認する（Ｓ２１０３）。可能である場合（Ｓ２１０３：Y）、撮像部１０１は、焦点距離ｆを「ｆｄ」だけ長くする。焦点距離は「ｆ＋ｆｄ」になる。ここで、「ｆｄ」は所定値であり、例えば、特徴点Ａ、Ｂ間の長さと特徴点Ｃ、Ｄ間の長さに基づいて算出される（Ｓ２１０４）。測定部１０３は、撮像部１０１が焦点距離ｆ＋ｆｄで撮像した手の画像を取得して、この画像内に特徴点Ａ〜Ｄがあるか否かを確認する（Ｓ２１０５）。特徴点Ａ〜Ｄのうち１つでも画像から外れている場合（Ｓ２１０５：N）、測定部１０３は、ステップＳ２１０１で一時保持した特徴点Ａ〜Ｄの座標と焦点距離ｆとを対応づけて、測定データ１１０として記憶部１０５に記憶する（Ｓ２１０９）。
【００６４】
特徴点Ａ〜Ｄが画像内にある場合（Ｓ２１０５：Y）、特徴点抽出部１０６は、撮像部１０１が焦点距離ｆ＋ｆｄで撮像した手の画像から特徴点Ａ〜Ｄの座標を取得する。測定部１０３は、特徴点Ａ、Ｂ間の距離と特徴点Ｃ、Ｄ間の距離の和をＬを算出する（Ｓ２１０６）。
【００６５】
測定部１０３は、ステップＳ２１０２で記憶部１０５に一時保持したＬmaxと、ステップＳ２１０６で算出したＬとを比較する（Ｓ２１０７）。ＬmaxよりもＬが大きい場合（Ｓ２１０７：Y）、測定部１０３は、ＬmaxをＬに更新する。また、特徴点Ａ〜Ｄの座標及び焦点距離も、ステップＳ２１０１で一時保持したものからステップＳ２１０６で取得したものに更新する（Ｓ２１０８）。その後、ステップＳ２１０３に戻り、ステップＳ２１０３移行の処理を繰り返す。
【００６６】
ＬmaxよりもＬが小さい場合（Ｓ２１０７：N）、測定部１０３は、その時点で一時保持している特徴点Ａ〜Ｄの座標と焦点距離ｆを対応づけて、測定データ１１０として記憶部１０５に記憶する（Ｓ２１０９）。
【００６７】
焦点距離ｆを現在より大きくできない場合（Ｓ２１０３：N）、測定部１０３は、ステップＳ２１０１で一時保持した特徴点Ａ〜Ｄの座標と焦点距離ｆを対応づけて、測定データ１１０として記憶部１０５に記憶する（Ｓ２１０９）。
【００６８】
以上の処理により、焦点距離の調整処理が終了する。焦点距離の調整処理により、手の画像を、特徴点Ａ〜Ｄの座標が抽出可能な最大の画像にまで拡大して、特徴点Ａ〜Ｄの座標を取得することができる。焦点距離の調整が終了すると、認識部１０２及び測定部１０３は、焦点距離調整後の特徴点Ａ〜Ｄの座標に基づいて特定箇所の長さｈ、ｗを算出する（Ｓ９０３）。制御部１０４の距離算出部１０９は、記憶部１０５から測定データ１１０を読み込み、撮像部１０１と手との距離ｄを算出する（Ｓ２００２）。基準点における焦点距離と動作時の焦点距離とが異なるために、第１実施形態とは処理に差が生じる。撮像部１０１と手との距離ｄは、基準点における焦点距離ｆo、基準長ｈmo、ｗmo、及び現在の焦点距離ｆから、以下の式により算出される。
ｄ＝１／２・｛ｄo・（ｈmo／ｈ＋ｗmo／ｗ）・ｆo／ｆ｝  …  （１３）
ｆo：基準点算出時の焦点距離、ｆ：現在の焦点距離
【００６９】
なお、基準点における基準長ｈmo、ｗmoを測定する際にステップＳ２００１の焦点距離の調整処理を行ってもよい。この場合、例えば図８のフローチャートで示す処理を行う場合は、ステップＳ８０１の後（ステップＳ８０３の前）にステップＳ２００１を行い、測定した基準長ｈo、ｗoと対応づけてそのときの焦点距離ｆoを記憶部１０５に保持しておけばよい。
【００７０】
以上説明したように、本実施形態によれば、手と撮像部１０１の距離を測定する際に光学系を利用して測定誤差の影響を少なくすることができる。
【図１】
2015015517.tif 000003
【図２】
2015015517.tif 000004
【図３】
2015015517.tif 000005
【図４】
2015015517.tif 000006
【図５】
2015015517.tif 000007
【図６】
2015015517.tif 000008
【図７】
2015015517.tif 000009
【図８】
2015015517.tif 000010
【図９】
2015015517.tif 000011
【図１０】
2015015517.tif 000012
【図１１】
2015015517.tif 000013
【図１２】
2015015517.tif 000014
【図１３】
2015015517.tif 000015
【図１４】
2015015517.tif 000016
【図１５】
2015015517.tif 000017
【図１６】
2015015517.tif 000018
【図１７】
2015015517.tif 000019
【図１８】
2015015517.tif 000020
【図１９】
2015015517.tif 000021
【図２０】
2015015517.tif 000022
【図２１】
2015015517.tif 000023