(57)【要約】【課題】距離画像上で指先を識別することが困難な場合でも、指先の位置を検出可能な入力装置を提供する。【解決手段】入力装置は、ユーザの手の所定の指の長さを記憶する記憶部（６）と、ユーザの手を撮影することで、各画素が、手のその画素に写った部分までの距離に応じた値を持つ距離画像を生成する距離画像生成部（４）と、距離画像から手が写った領域を検出する手領域検出部（１１）と、所定の指のうちの手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置とを求める指位置特定部（１４）と、その指の手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置から定まるその指の長手方向に沿ってその指の付け根の実空間での位置からその指の長さだけ離れた位置をその指の指先の位置として算出する指先位置算出部（１５）を有する。【選択図】図５
2016091457.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの手の所定の指の指先の位置に応じた入力信号を生成する入力装置であって、
前記所定の指の長さを記憶する記憶部と、
前記手を撮影することで、各画素が、前記手の当該画素に写った部分までの距離に応じた値を持つ距離画像を生成する距離画像生成部と、
前記距離画像から前記手が写った領域を検出する手領域検出部と、
前記所定の指のうちの前記手領域に含まれる部分の実空間での位置と前記所定の指の付け根の実空間での位置とを求める指位置特定部と、
前記部分の実空間での位置と前記所定の指の付け根の実空間での位置から定まる前記所定の指の長手方向に沿って前記所定の指の付け根の実空間での位置から前記指の長さだけ離れた位置を前記所定の指の指先の位置として算出する指先位置算出部と、
を有する入力装置。
【請求項２】
前記指位置特定部は、前記所定の指の前記部分の実空間での位置として、前記部分の先端の実空間での位置を求め、
前記指先位置算出部は、前記指の付け根の実空間での位置から前記先端の実空間での位置へ向かう方向を前記長手方向とする、請求項１に記載の入力装置。
【請求項３】
前記指位置特定部は、前記距離画像生成部から前記先端の実空間での位置までの距離と前記距離画像生成部から基準物体までの距離である基準距離との差が第１の閾値未満か否かを判定し、
前記指先位置算出部は前記差が前記第１の閾値未満の場合に前記指先の位置を算出し、一方、前記差が前記第１の閾値以上の場合に前記指先の位置を算出しない、請求項２に記載の入力装置。
【請求項４】
前記距離画像生成部から前記指先の位置までの距離と前記基準距離の差が第２の閾値以下である場合、前記指が前記基準物体に接触していると判定して前記指先の位置に応じた前記入力信号を生成する接触判定部をさらに有する、請求項２または３に記載の入力装置。
【請求項５】
所定の指を含むユーザの手を撮影することで、各画素が、前記手の当該画素に写った部分までの距離に応じた値を持つ距離画像を生成し、
前記距離画像から前記手が写った手領域を検出し、
前記所定の指のうちの前記手領域に含まれる部分の実空間での位置と前記所定の指の付け根の実空間での位置とを求め、
前記部分の実空間での位置と前記所定の指の付け根の実空間での位置から定まる前記所定の指の長手方向に沿って前記所定の指の付け根の実空間での位置から記憶部に記憶された前記所定の指の長さだけ離れた位置を前記所定の指の指先の位置として算出する、
指先位置検出方法。
【請求項６】
所定の指を含むユーザの手を撮影することで生成された、各画素が、前記手の当該画素に写った部分までの距離に応じた値を持つ距離画像から前記手が写った手領域を検出し、
前記所定の指のうちの前記手領域に含まれる部分の実空間での位置と前記所定の指の付け根の実空間での位置とを求め、
前記部分の実空間での位置と前記所定の指の付け根の実空間での位置から定まる前記所定の指の長手方向に沿って前記所定の指の付け根の実空間での位置から記憶部に記憶された前記所定の指の長さだけ離れた位置を前記所定の指の指先の位置として算出する、
ことをコンピュータに実行させるための指先位置検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、手までの距離を表す距離画像を解析した結果に応じた入力信号を生成する入力装置、及び、そのような入力装置で利用される指先位置検出方法及び指先位置検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
従来より、ユーザが所望の情報を入力するための入力装置として、複数のキーを有するキーボードが用いられている。キーボードは、ユーザが所望の情報を入力するための利便性に優れるものの、ユーザが操作可能なサイズの複数のキーを有するために、ある程度の大きさを持たざるを得ない。例えば、いわゆるQWERTY型のキー配置を持つキーボードは、個々のアルファベットに対応する26個のキーを少なくとも持つ。
【０００３】
一方、人間の動作を認識することで所望の情報を入力できるユーザインターフェースが研究されている。例えば、特許文献１に開示された入力システムは、入力画像から手の形状を認識することで、どの指が伸びているかを認識し、その認識結果に基づいて指示などが入力される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３４６１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
また、各画素が、その画素に写っている被写体までの距離に応じた画素値を持つ距離画像を生成する距離画像カメラが知られている。距離画像カメラを用いて被写体を撮影することにより生成された距離画像を解析することで、その距離画像に写っている被写体の実空間における位置及び形状を特定することが可能となる。
しかしながら、撮影環境などによっては、手を撮影した距離画像において、指先を識別することが困難なことがある。このような場合、指先の位置が正確に分からないため、入力装置には、ユーザが所望する情報と異なる情報が入力されてしまうおそれがある。
【０００６】
そこで本明細書は、距離画像上で指先を識別することが困難な場合でも、指先の位置を検出可能な入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、ユーザの手の所定の指の指先の位置に応じた入力信号を生成する入力装置が提供される。この入力装置は、ユーザの手の所定の指の長さを記憶する記憶部と、ユーザの手を撮影することで、各画素が、手のその画素に写った部分までの距離に応じた値を持つ距離画像を生成する距離画像生成部と、距離画像から手が写った領域を検出する手領域検出部と、所定の指のうちの手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置とを求める指位置特定部と、その指の手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置から定まるその指の長手方向に沿ってその指の付け根の実空間での位置からその指の長さだけ離れた位置をその指の指先の位置として算出する指先位置算出部とを有する。
【０００８】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【０００９】
本明細書に開示された入力装置は、距離画像上で指先を識別することが困難な場合でも、指先の位置を検出できる。
【図面の簡単な説明】
【００１０】
【図１】距離画像カメラが距離画像上で表すことができる距離の範囲を説明する図である。
【図２】（ａ）は、距離画像カメラにより得られた、テーブルと離れている手の距離画像を示す図である。（ｂ）は、人差し指とテーブル面が接触したときの距離画像を示す図である。
【図３】入力装置の概略斜視図である。
【図４】図３に示された入力装置のハードウェア構成図である。
【図５】制御部の機能ブロック図である。
【図６】指の長さを検出する処理の説明図である。
【図７】指長さ測定処理の動作フローチャートである。
【図８】指長さ測定処理の動作フローチャートである。
【図９】画像上での仮指先位置と推定される実際の指先位置の関係を示す図である。
【図１０】側面から見た、仮指先位置と実際の指先位置の関係を示す図である。
【図１１】指先位置検出処理の動作フローチャートである。
【発明を実施するための形態】
【００１１】
以下、図を参照しつつ、入力装置について説明する。この入力装置は、距離画像カメラを用いてユーザの手を撮影して得られる距離画像から、ユーザの指先がテーブルなどに触れたときの位置を検出し、その位置に応じた入力信号を生成する。
【００１２】
図１は、距離画像カメラが距離画像上で表すことができる距離の範囲を説明する図である。距離画像カメラ１００は、所定の距離範囲１１０内にいる被写体である、ユーザの手１２０について、その手１２０までの距離に応じた画素値を持つ距離画像を生成する。例えば、手１２０までの距離が遠いほど、距離画像上の対応する画素の値は大きくなる（すなわち、距離が遠いほど、その画素は白くなる）。
【００１３】
ここで、例えば、ユーザが操作入力を行う際に指先でタッチする面として、手１２０よりも距離画像カメラ１００から遠い位置に、テーブル１３０が配置されているとする。この場合、距離画像上では、テーブル１３０が写っている画素と、手１２０が写っている画素とは、互いに異なる画素値を持つ。
【００１４】
図２（ａ）は、距離画像カメラにより得られた、テーブルと離れている手の距離画像を示す図である。距離画像２００では、距離画像カメラから相対的に遠くに位置するテーブル２０１は、相対的に白く表されており、一方、距離画像カメラから相対的に近くに位置する手２０２は、相対的に黒く表されている。このように、テーブル２０１と手２０２とが離れていれば、距離画像２００上で、手２０２が写っている領域に含まれる画素の値とその周囲のテーブル２０１が写っている領域に含まれる画素の値の差が大きくなる。そのため、距離画像２００上で、指先の位置も正確に識別可能となっている。
【００１５】
一方、例えば、ユーザが操作入力を行うために手をテーブルに近づけた場合、距離画像カメラから手までの距離と、距離画像カメラからテーブルまでの距離の差は小さくなる。そのため、距離画像において、テーブルが写っている画素の画素値と、手が写っている画素の画素値の差は小さくなる。
【００１６】
図２（ｂ）は、人差し指とテーブル面が接触したときの距離画像を示す図である。距離画像２１０では、距離画像カメラから人差し指の指先までの距離と、距離画像カメラからテーブル２０１までの距離の差が小さいために、手２０２のうち、人さし指２０２ａの指先は、距離画像２１０では識別困難となっている。
【００１７】
そこで、本実施形態による入力装置は、予め、ユーザが入力操作に利用する指（例えば、人さし指）を背景から離した状態で距離画像カメラで撮影して得られる距離画像に基づいて、その指の付け根から指先までの長さを求めて、記憶部に記憶しておく。そして入力装置は、例えば、操作入力を検出する際、距離画像上で指の付け根とその指が識別できる部分からもとめたその指の長手方向に沿って、指の付け根から予め記憶した指の長さだけ離れた位置を指先位置とする。
【００１８】
図３は、入力装置の概略斜視図である。図４は、図３に示された入力装置のハードウェア構成図である。
入力装置１は、投影装置２と、ミラー３と、距離画像カメラ４と、通信部５と、記憶部６と、制御部７とを有する。入力装置１が有するこれらの各部は、側面から見て縦方向にコの字型をした筐体１０に収容される。なお、以下では、説明の便宜上、ユーザに面する側の面を正面と呼ぶ。
【００１９】
投影装置２は、例えば、液晶プロジェクターであり、筐体１０の正面側に、表示面を上方へ向けて配置される。投影装置２は、制御部７から受け取った映像信号に従って映像をその表示面に表示することで、映像を投影する。投影装置２から投影された映像は、正面側へ突出した筐体１０の天頂部１０ａの下側に設けられたミラー３により反射されて、例えば、筐体１０が置かれたテーブル面などに投影される。
【００２０】
距離画像カメラ４は、距離画像生成部の一例であり、天頂部に、投影装置２から投影された映像が写る範囲を撮影範囲に含むように下方を向けて配置される。なお、距離画像カメラ４は、距離画像上で距離を画素値で表せる距離範囲内に、筐体１０が載置されたテーブルの面が含まれるように配置されることが好ましい。そして距離画像カメラ４は、所定の撮影周期（例えば、30msec〜100msec）でその撮影範囲が写った距離画像を生成する。そして距離画像カメラ４は、距離画像を生成する度に、その距離画像を制御部７へ出力する。
【００２１】
通信部５は、入力装置１を他の機器と接続するためのインターフェース及びその制御回路を有する。そして通信部５は、例えば、他の機器から受け取った映像信号を制御部７へ渡す。あるいは、通信部５は、制御部７から受け取った、ユーザの入力に応じた入力信号を他の機器へ出力する。
【００２２】
記憶部６は、例えば、揮発性又は不揮発性の半導体メモリ回路を有する。そして記憶部６は、投影装置２により投影される映像を表す映像信号、ユーザの操作入力を検出するために利用される各種の情報、例えば、距離画像からユーザの指先位置を検出するために利用される情報を記憶する。
【００２３】
制御部７は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部７は、投影装置２、距離画像カメラ４、通信部５及び記憶部６と信号線を介して接続されており、入力装置１全体を制御する。
また制御部７は、距離画像カメラ４から受け取った距離画像を解析することにより、ユーザの指先位置を検出する。そして制御部７は、その指先位置に基づいて、ユーザによる入力を検出し、その入力に応じた入力信号を生成する。
【００２４】
以下、制御部７により実行される、指先位置検出処理を含む入力処理に関する構成要素の詳細について説明する。
図５は、制御部７の機能ブロック図である。制御部７は、手領域検出部１１と、指長さ測定部１２と、登録部１３と、仮接触判定部１４と、指先位置算出部１５と、接触判定部１６とを有する。
制御部７が有するこれらの各部は、例えば、制御部７が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装されてもよい。なお、これらの各部は、それぞれ、別個の回路として、制御部７とは別個に入力装置１に実装されてもよく、あるいはこれらの各部の機能を実現する一つの集積回路として、制御部７とは別個に入力装置１に実装されてもよい。
【００２５】
指長さ測定部１２及び登録部１３は、ユーザの所定の指の長さと、距離画像カメラ４の撮影範囲内にユーザが入力操作を実行する際にタッチする対象となる物体のみが含まれるときの距離画像である基準画像を登録する登録処理において使用される。一方、仮接触判定部１４、指先位置算出部１５及び接触判定部１６は、入力処理において使用される。また、手領域検出部１１は、登録処理と入力処理の両方で使用される。
【００２６】
（登録処理）
先ず、登録処理に関連する各部について説明する。
制御部７は、最初に、距離画像カメラ４から、その撮影範囲内にユーザが入力操作を実行する際にタッチする対象となる物体のみが含まれるときの距離画像を取得する。そしてその距離画像を登録部１３にわたす。登録部１３は、その距離画像を基準画像として記憶部６に記憶する。なお、ユーザが入力操作を実行する際にタッチする対象となる物体は、例えば、入力装置１が載置されたテーブルである。以下では、説明の便宜上、ユーザが入力操作を実行する際にタッチする対象となる物体を基準物体と呼ぶ。
基準画像の各画素は、その画素に対応する基準物体の位置と距離画像カメラ４間の距離に応じた画素値を持つ。
【００２７】
次に、制御部７は、基準物体よりも距離画像カメラ４に近く、基準物体から離れた位置でかつ撮影範囲内にユーザの手が配置された状態でユーザの手を撮影して得られた距離画像を距離画像カメラ４から取得する。その際、ユーザの手は、入力操作の際に基準物体に触れる指だけを伸ばし、他の指を折り曲げた状態であることが好ましい。そして制御部７は、その距離画像を手領域検出部１１にわたす。
【００２８】
手領域検出部１１は、距離画像上で手が写っている領域である手領域を検出する。そのために、手領域検出部１１は、距離画像の各画素の画素値と基準画像の対応する画素の画素値との差分絶対値を算出する。そして手領域検出部１１は、各画素が、その差分絶対値を画素値とする差分画像を求める。
【００２９】
手は基準物体よりも距離画像カメラ４に近いので、手が写っている画素の画素値と、基準画像の対応する画素の画素値の差は比較的大きな値となる。一方、手が写っていない画素の画素値は、基準画像の対応する画素の画素値と同一となる。そこで、手領域検出部１１は、差分画像の各画素について、その画素値を所定の２値化閾値と比較することで、画素値が２値化閾値以上となる画素と２値化閾値未満となる画素とで異なる値を持つ２値画像を生成する。したがって、２値化画像において、差分画像の画素値が２値化閾値以上となる画素に対応する画素の集合が手領域となる。なお、所定の２値化閾値は、予め定めされた値であってもよく、あるいは、差分画像の画素値の統計量から求められる値、例えば、差分画像の画素値の平均値あるいは中央値であってもよい。
手領域検出部１１は、手領域を表す２値画像を指長さ測定部１２へわたす。
【００３０】
指長さ測定部１２は、手領域から、入力操作の際に基準物体に触れる指の長さを測定する。
【００３１】
図６は、指の長さを検出する処理の説明図である。図６に示されるように、距離画像から生成された、手領域を表す２値画像の水平方向にx軸が設定され、垂直方向にy軸が設定される。また、２値画像の左端をx=0とし、右端に近づくにつれてxの値は増加するものとする。そして２値画像の上端をy=0とし、下端に近づくにつれてyの値は増加するものとする。この例では、ユーザの手は、２値画像上で人差し指を伸ばした状態で写っており、人差し指の先端が上方を向いている。本実施形態では、指長さ測定部１２は、手領域６０１の輪郭上の画素である複数の輪郭点Pi(xi,yi)(i=0,1,...,m)を、左下方の輪郭点P0(x0,y0)から順に追跡して指先に位置する輪郭点を特定する。その後、指長さ測定部１２は、指の付け根に相当する輪郭点を特定することで、指の付け根の位置を求める。そして指長さ測定部１２は、２値画像上の指先の位置に相当する実空間上の位置と２値画像上の指の付け根に相当する実空間上の位置との間の距離Lを、その指の長さとする。
【００３２】
指長さ測定部１２は、手領域に含まれる画素のうち、隣接する何れかの画素が、２値画像上で手領域を除いた領域である背景領域に含まれる画素を輪郭点として検出する。そして指長さ測定部１２は、２値画像の左下端のコーナーに最も近い輪郭点をP0(x0,y0)とする。そして指長さ測定部１２は、P0(x0,y0)に隣接する輪郭点をP1(x1,y1)とする。同様に、指長さ測定部１２は、輪郭点Pi(xi,yi)に隣接する輪郭点をP(i+1)(xi+1,yi+1)に設定する。
【００３３】
次に、指長さ測定部１２は、指先に位置する輪郭点を特定する。そのために、指長さ測定部１２は、輪郭点P0(x0,y0)から順に、互いに隣接する二つの輪郭点Pi(xi,yi)とP(i+1)(xi+1,yi+1)とを結ぶ線の水平方向及び垂直方向の増分(ax,ay)を求める。ただし、ax=(xi+1-xi)、ay=(yi+1-yi)である。本実施形態では、指長さ測定部１２は、手領域の輪郭の最も左下端に近い輪郭点から順に増分(ax,ay)を求めているので、指先に近づいている間、ax>0、かつ、ay<0となる。そして２値画像上で指先は最も上方に位置しているので、指先よりも右側の輪郭点については、ax>0、かつ、ay>0となる。そこで、指長さ測定部１２は、輪郭点P0(x0,y0)からの距離Ctが最初に所定の閾値Th1以上となり、かつ、ax>0、かつ、ay>0となったときの輪郭点Pi(xi,yi)を、指先に位置する輪郭点とする。なお、閾値Th1は、２値画像上での想定される指の長さの最小値に相当する画素数に設定される。
【００３４】
次に、指長さ測定部１２は、指の付け根の位置に相当する、指の左側の輪郭点と指の右側の輪郭点を検出する。本実施形態では、指長さ測定部１２は、指の輪郭の傾きの変化が大きくなる位置を指の付け根の位置の輪郭点とする。そのために、指長さ測定部１２は、指先に位置する輪郭点をPT(xt,yt)とする。そして指長さ測定部１２は、指の付け根の位置に相当する、指の左側の輪郭点を検出するために、輪郭点PT(xt,yt)からP0(x0,y0)まで順に、互いに隣接する二つの輪郭点Pn(xｎ,yｎ)とP(n-1)(xｎ-1,yｎ-1)とを結ぶ線の傾きA(n)を求める。なお、傾きA(n)は、次式で算出される。
A(n)=|ay/ax|=|{yｎ-1-yｎ}/{xｎ-1-xｎ}|                              （１）
【００３５】
指長さ測定部１２は、傾きA(n)と傾きA(n-1)の差の絶対値|A(n-1)-A(n)|を閾値Th2と比較する。そして指長さ測定部１２は、その差の絶対値|A(n-1)-A(n)|が最初に閾値Th2以上となるときの輪郭点P(n-1)(xｎ-1,yｎ-1)を、指の付け根の位置に相当する、指の左側の輪郭点PL(xL,yL)とする。なお、閾値Th2は、例えば、0.7に設定される。
【００３６】
同様に、指長さ測定部１２は、指の付け根の位置に相当する、指の右側の輪郭点を検出するために、輪郭点PT(xt,yt)からPm(xm,ym)まで順に、互いに隣接する二つの輪郭点Pn(xｎ,yｎ)とP(n+1)(xｎ+1,yｎ+1)とを結ぶ線の傾きA'(n)を求める。なお、傾きA'(n)は、次式で算出される。
A'(n)=|ay/ax|=|{yｎ+1-yｎ}/{xｎ+1-xｎ}|                            （２）
指長さ測定部１２は、傾きA'(n)と傾きA'(n+1)の差の絶対値|A'(n+1)-A'(n)|を閾値Th2と比較する。そして指長さ測定部１２は、その差の絶対値|A'(n+1)-A'(n)|が最初に閾値Th2以上となるときの輪郭点P(n+1)(xｎ+1,yｎ+1)を、指の付け根の位置に相当する、指の右側の輪郭点PR(xR,yR)とする。
【００３７】
指長さ測定部１２は、指の付け根の位置に相当する、指の左側の輪郭点PL(xL,yL)と指の右側の輪郭点PR(xR,yR)間の中点を、指の付け根位置PB(xB,yB)とする。そして指長さ測定部１２は、指の付け根位置PB(xB,yB)に相当する実空間での位置と指先の輪郭点PT(xt,yt)に相当する実空間での位置との間の距離を、指の長さLとする。
【００３８】
本実施形態では、距離画像から生成された２値画像上で指先の輪郭点PT(xt,yt)及び指の付け根位置PB(xB,yB)が求められている。そのため、距離画像上のPT(xt,yt)、PB(xB,yB)の座標に相当する画素の値から、距離画像カメラ４からPT(xt,yt)、PB(xB,yB)に対応する実空間での位置までの距離が求められる。また、距離画像上の各画素の座標は、距離画像カメラ４からの方向と一意に対応している。そのため、距離画像カメラ４からPT(xt,yt)、PB(xB,yB)に対応する実空間での位置までの距離と、距離画像上でのPT(xt,yt)及びPB(xB,yB)の座標から、PT(xt,yt)及びPB(xB,yB)に対応する実空間での位置が求められる。
指長さ測定部１２は、指の長さLを登録部１３にわたす。
【００３９】
図７及び図８は、指長さ測定処理の動作フローチャートである。
手領域検出部１１は、距離画像生成部４から取得した距離画像から、その距離画像にユーザの手が写っている領域である手領域を検出する（ステップＳ１０１）。指長さ測定部１２は、手領域の輪郭点Pi(xi,yi)(i=0,1,...,m)を検出する（ステップＳ１０２）。
【００４０】
指長さ測定部１２は、輪郭点の位置を表す指標i及び距離Ctを0にリセットする（ステップＳ１０３）。その後、指長さ測定部１２は、隣接する二つの輪郭点Pi(xi,yi)とP(i+1)(xi+1,yi+1)を選択し、その二つの輪郭点を結ぶ線の水平方向及び垂直方向の増分(ax,ay)を求める（ステップＳ１０４）。そして指長さ測定部１２は、ax>0、かつ、ay<0か否か判定する（ステップＳ１０５）。ax≦0またはay≧0であれば（ステップＳ１０５−Ｙｅｓ）、指長さ測定部１２は、Ctが閾値Th1以上か否か判定する（ステップＳ１０６）。
【００４１】
Ctが閾値Th1以上であれば（ステップＳ１０６−Ｙｅｓ）、指長さ測定部１２は、ax>0、かつ、ay>0か否か判定する（ステップＳ１０７）。ax>0、かつ、ay>0であれば、指長さ測定部１２は、輪郭点Pi(xi,yi)を指先位置PT(xt,yt)と特定する（ステップＳ１０８）。
【００４２】
一方、ステップＳ１０５にて、ax>0、かつ、ay<0である場合（ステップＳ１０５−Ｎｏ）、指長さ測定部１２は、Ctに1加算する（ステップＳ１０９）。また、ステップＳ１０６にてCtが閾値Th1未満である場合（ステップＳ１０６−Ｎｏ）、あるいは、ステップＳ１０７にてax≦0またはay≦0である場合（ステップＳ１０７−Ｎｏ）、指長さ測定部１２は、Ctを0にリセットする（ステップＳ１１０）。
【００４３】
ステップＳ１０９またはＳ１１０の後、指長さ測定部１２は、全ての輪郭点を選択したか否か判定する（ステップＳ１１１）。全ての輪郭点が選択されていれば（ステップＳ１１１−Ｙｅｓ）、指長さ測定部１２は、指の長さを算出せずに指長さ測定処理を終了する。この場合には、再度ユーザの手を撮影して得られた距離画像に基づいて、指長さ測定処理が行われることが好ましい。
【００４４】
一方、選択されていない輪郭点が残っていれば（ステップＳ１１１−Ｎｏ）、指長さ測定部１２は、iを1加算する（ステップＳ１１２）。その後、指長さ測定部１２は、ステップＳ１０４以降の処理を繰り返す。
【００４５】
図８に示されるように、ステップＳ１０８にて指先位置が特定された後、指長さ測定部１２は指の付け根の位置に相当する左右の輪郭点を特定する。そのために、指長さ測定部１２は、輪郭点の位置を表す指標nを指先位置に相当する輪郭点の番号tにリセットする（ステップＳ１１３）。そして、指長さ測定部１２は、隣接する二つの輪郭点Pn(xn,yn)とP(n-1)(xn-1,yn-1)を選択し、その二つの輪郭点を結ぶ線の傾きA(n)を求める（ステップＳ１１４）。さらに、指長さ測定部１２は、隣接する二つの輪郭点P(n-1)(xn-1,yn-1)とP(n-2)(xn-2,yn-2)を選択し、その二つの輪郭点を結ぶ線の傾きA(n-1)を求める（ステップＳ１１５）。そして指長さ測定部１２は、傾きA(n-1)とA(n)の差の絶対値|A(n-1)-A(n)|が閾値Th2以上となるか否か判定する（ステップＳ１１６）。
【００４６】
|A(n-1)-A(n)|が閾値Th2未満であれば（ステップＳ１１６−Ｎｏ）、指長さ測定部１２は、nが2か否か判定する（ステップＳ１１７）。nが2であれば（ステップＳ１１７−Ｙｅｓ）、左下端の輪郭点が既に選択されているので、指長さ測定部１２は、指の付け根に相当する輪郭点を特定せずに指長さ測定処理を終了する。この場合には、再度ユーザの手を撮影して得られた距離画像に基づいて、指長さ測定処理が行われることが好ましい。一方、nが2よりも大きければ（ステップＳ１１７−Ｎｏ）、指長さ測定部１２は、nから1を減じる（ステップＳ１１８）。その後、指長さ測定部１２は、ステップＳ１１４以降の処理を繰り返す。
【００４７】
また、ステップＳ１１６にて、|A(n-1)-A(n)|が閾値Th2以上であれば（ステップＳ１１６−Ｙｅｓ）、指長さ測定部１２は、輪郭点P(n-1)(xn-1,yn-1)を、指の付け根の左側に位置する輪郭点PL(xL,yL)とする（ステップＳ１１９）。
【００４８】
指の付け根の左側に位置する輪郭点PL(xL,yL)が求められると、今度は指の付け根の右側に位置する輪郭点PR(xR,yR)を求めるために、指長さ測定部１２は、輪郭点の位置を表す指標nを指先位置に相当する輪郭点の番号tにリセットする（ステップＳ１２０）。そして、指長さ測定部１２は、隣接する二つの輪郭点Pn(xn,yn)とP(n+1)(xn+1,yn+1)を選択し、その二つの輪郭点を結ぶ線の傾きA'(n)を求める（ステップＳ１２１）。さらに、指長さ測定部１２は、隣接する二つの輪郭点P(n+1)(xn+1,yn+1)とP(n+2)(xn+2,yn+2)を選択し、その二つの輪郭点を結ぶ線の傾きA'(n+1)を求める（ステップＳ１２２）。そして指長さ測定部１２は、傾きA'(n+1)とA'(n)の差の絶対値|A'(n+1)-A'(n)|が閾値Th2以上となるか否か判定する（ステップＳ１２３）。
【００４９】
|A'(n+1)-A'(n)|が閾値Th2未満であれば（ステップＳ１２３−Ｎｏ）、指長さ測定部１２は、nが(m-2)か否か判定する（ステップＳ１２４）。nが(m-2)であれば（ステップＳ１２４−Ｙｅｓ）、右下端の輪郭点が既に選択されているので、指長さ測定部１２は、指の付け根の右側に相当する輪郭点を特定せずに指長さ測定処理を終了する。この場合には、再度ユーザの手を撮影して得られた距離画像に基づいて、指長さ測定処理が行われることが好ましい。一方、nが(m-2)よりも小さければ（ステップＳ１２４−Ｎｏ）、指長さ測定部１２は、nに1を加算する（ステップＳ１２５）。その後、指長さ測定部１２は、ステップＳ１２１以降の処理を繰り返す。
【００５０】
また、ステップＳ１２３にて、|A'(n+1)-A'(n)|が閾値Th2以上であれば（ステップＳ１２３−Ｙｅｓ）、指長さ測定部１２は、輪郭点P(n+1)(xn+1,yn+1)を、指の付け根の右側に位置する輪郭点PR(xR,yR)とする（ステップＳ１２６）。
【００５１】
その後、指長さ測定部１２は、輪郭点PL(xL,yL)と輪郭点PR(xR,yR)の中点を指の付け根PB(xB,yB)とする（ステップＳ１２７）。そして指長さ測定部１２は、指先位置PT(xt,yt)に対応する実空間の位置と指の付け根PB(xB,yB)に対応する実空間の位置間の距離を指の長さLとして算出する（ステップＳ１２８）。そして指長さ測定部１２は、指長さ測定処理を終了する。
【００５２】
登録部１３は、指長さ測定部１２から受け取った指の長さLを記憶部６に記憶する。その際、例えば、通信部５を介して制御部７がユーザの識別情報を受け取っている場合、登録部１３は、指の長さLを、そのユーザの識別情報と対応付けて記憶部６に記憶してもよい。同様に、通信部５を介して制御部７が長さを測定した指の種類を表す情報（例えば、人差し指、中指など）を受け取っている場合、登録部１３は、指の長さLを、その指の種類を表す情報と対応付けて記憶部６に記憶してもよい。
【００５３】
（入力処理）
次に、入力処理に関連する各部について説明する。
手領域検出部１１は、登録処理と同様に、距離画像から手領域を表す２値画像を生成する。そして手領域検出部１１は、その２値画像を仮接触判定部１４へ渡す。
【００５４】
仮接触判定部１４は、指位置特定部の一例であり、入力操作に利用する指のうちの手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置とを求める。入力処理の実行時においては、ユーザは、入力操作に利用する指を基準物体に近づけるので、その指の指先は距離画像上で識別できなくなっている可能性がある。そこで仮接触判定部１４は、指長さ測定部１２と同様の処理を行って、手領域に含まれる、入力操作に利用する指の部分の先端の輪郭点PT(xt,yt)及びその指の付け根PB(xB,yB)を特定する。特定された輪郭点PT(xt,yt)は、その指の距離画像上で識別可能な部分の先端であるので、以下では、輪郭点PT(xt,yt)を仮の指先位置とする。
【００５５】
図９は、２値画像上での仮の指先位置と推定される実際の指先位置の関係を示す図である。一般に、ユーザが入力装置１を用いて入力操作を行う場合、ユーザは、指の付け根よりも指先を基準物体に近づける。そのため、距離画像において、指の先端近傍は識別できなくなっていても、指の付け根側は識別可能となっている可能性が高い。そのため、２値画像９００に示されるように、手領域９０１には、点線で示される、指の一部が含まれないものの、指の付け根に近い部分が含まれている。そして仮の指先位置PT(xt,yt)は、実際の指先位置P(x,y)よりも指の付け根の近いところで検出される。
【００５６】
仮接触判定部１４は、距離画像上の仮の指先位置PT(xt,yt)及び指の付け根PB(xB,yB)に相当する画素の値から、それぞれ、仮の指先位置PT(xt,yt)及び指の付け根PB(xB,yB)に相当する実空間での位置をもとめる。そして仮接触判定部１４は、基準物体から仮の指先位置PT(xt,yt)の実空間での位置までの距離を、仮の指先の高さとして求める。ユーザが入力操作を行おうとしている場合には、指先を基準物体に近づけているので、仮の指先の高さも小さくなると想定される。したがって、仮の指先の高さが所定の閾値αよりも小さい場合、指先が基準物体に接触した可能性が有る、すなわち、ユーザが入力操作を行った可能性が有る。そこで仮接触判定部１４は、仮の指先の高さが所定の閾値αよりも小さい場合、指先位置算出部１５に仮の指先位置PT(xt,yt)及び指の付け根PB(xB,yB)の実空間での位置を通知する。なお、閾値αは、例えば、距離画像カメラ４の測定精度に応じて設定される。閾値αは、例えば、距離画像上で離れた位置にある二つの物体を識別することが困難となる距離の最小値に設定される。例えば、基準物体と手の距離を変えながら、距離画像カメラ４で手を撮影して得られた複数の距離画像から、手が識別できる基準物体と手との距離の最小値が求められ、その最小値が閾値αに設定される。
【００５７】
一方、仮の指先の高さが所定の閾値α以上である場合、ユーザは入力操作を行っていないと想定される。そこでこの場合には、仮接触判定部１４は、仮の指先位置PT(xt,yt)及び指の付け根PB(xB,yB)をリセットする。そして仮接触判定部１４は、次に距離画像が取得されたときに、上記の処理を実行する。
【００５８】
指先位置算出部１５は、入力操作に利用する指の手領域に含まれる部分の実空間での位置とその指の付け根の実空間での位置から定まるその指の長手方向に沿って、その指の付け根の実空間での位置から指の長さLだけ離れた位置を指先の位置Pとして算出する。
本実施形態では、指先位置算出部１５は、指の付け根の実空間での位置から仮の指先位置の実空間での位置へ向かう方向を指の長手方向とする。
【００５９】
図１０は、側面から見た、仮の指先位置と実際の指先位置の関係を示す図である。図１０において、実空間における高さ方向の軸、すなわち、基準物体から距離画像カメラ４へ向かう方向の軸をZ軸とする。ただし、距離画像カメラ４の位置をZ=0とする。また実空間において、Z軸と直交し、かつ、距離画像上のx軸、y軸に対応する軸を、それぞれ、X軸、Y軸とする。Z軸方向に沿って、閾値αよりも基準物体１０００に近い領域は、指先が検出できない領域となり、一方、閾値αよりも基準物体１０００から離れた領域は、指先が検出可能な領域となる。したがって、指１００１において、基準物体１０００との距離が閾値αとなる位置が仮の指先位置PTとして検出される。ここで、ユーザが指先だけを曲げて基準物体に接触することは、通常困難である。そこで、指１００１が真っ直ぐに伸ばされているとすれば、実際の指先の位置Pは、指の長手方向を表す、指の付け根PBと仮の指先位置PTとを結ぶ線１００２の延長線上にあり、かつ、指の付け根PBから仮の指先位置PTへ向かって指の長さLだけ離れた位置となる。
したがって、実空間での実際の指先の位置P(PX,PY,PZ)は次式で算出される。
【数１】
2016091457.tif 000003
ここでM(YZ)は、仮の指先位置PTから実際の指先Pまでの実空間のYZ平面における長さであり、M(XY)は、仮の指先位置PTから実際の指先Pまでの実空間のXY平面における長さである。また、(X1,Y1,Z1)は、それぞれ、実空間における、仮の指先位置PTのX軸座標、Y軸座標、Z軸座標である。また、(X2,Y2,Z2)は、それぞれ、実空間における、指の付け根PBのX軸座標、Y軸座標、Z軸座標である。またθxyは、実空間のXY平面における、X軸と指の付け根から仮の指先位置とを結ぶ線間の角度を表す。同様に、θyzは、実空間のYZ平面における、Y軸と指の付け根から仮の指先位置とを結ぶ線間の角度を表す。
【００６０】
指先位置算出部１５は、推定した、実空間での実際の指先の位置P(PX,PY,PZ)を接触判定部１６へ通知する。
【００６１】
接触判定部１６は、推定した、実空間での実際の指先の位置のZ軸方向の座標PZ（すなわち、距離画像カメラ４から指先の位置までの距離）と、接触判定閾値Dとを比較する。接触判定閾値Dは、距離画像カメラ４から基準物体までの距離とすることができる。そして接触判定部１６は、PZが距離D以上である場合、指先が基準物体に接触したと判定する。なお、接触判定閾値Dは、測定誤差に相当するマージンβ（例えば、数mm〜1cm）を距離画像カメラ４から基準物体までの距離から減じた値としてもよい。
【００６２】
接触判定部１６は、指先が基準物体に接触したと判定した場合、指先位置のXY平面における座標(PX,PY)に応じた入力信号を生成し、その入力信号を通信部５を介して他の機器へ出力する。
【００６３】
図１１は、指先位置検出処理を含む入力処理の動作フローチャートである。制御部７は、距離画像生成部４から距離画像を取得する度に、以下の動作フローチャートに従って入力処理を実行する。また、以下の動作フローチャートにおいて、ステップＳ２０１〜Ｓ２０４までが、指先位置検出処理に相当する。
【００６４】
手領域検出部１１は、距離画像生成部４から取得した距離画像から、その距離画像にユーザの手が写っている領域である手領域を検出する（ステップＳ２０１）。
【００６５】
仮接触判定部１４は、手領域から、入力操作に利用されるユーザの指の付け根PBと仮の指先位置PTを検出し、付け根PB及び仮の指先位置PTの実空間での位置を求める（ステップＳ２０２）。そして仮接触判定部１４は、基準物体から仮の指先位置PTまでの高さが所定の閾値α未満か否か判定する（ステップＳ２０３）。
【００６６】
基準物体から仮の指先位置PTまでの高さが所定の閾値α以上である場合（ステップＳ２０３−Ｎｏ）、仮接触判定部１４は、ユーザの指は基準物体に接触していないと判定する。そして制御部７は、入力処理を終了する。
一方、基準物体から仮の指先位置PTまでの高さが所定の閾値α未満である場合（ステップＳ２０３−Ｙｅｓ）、指先位置算出部１５は、実空間での指先の位置を求める。具体的には、指先位置算出部１５は、指の付け根PBから仮の指先位置PTへ向かう方向に沿って、指の付け根PBから、記憶部６に記憶されている、その指の長さLだけ離れた位置を指先の位置とする（ステップＳ２０４）。
【００６７】
接触判定部１６は、距離画像カメラ４から指先までの距離PZが接触判定閾値D以上か否か判定する（ステップＳ２０５）。距離PZが接触判定閾値D未満である場合（ステップＳ２０５−Ｎｏ）、接触判定部１６は、ユーザの指は基準物体に接触していないと判定する。そして制御部７は、入力処理を終了する。
一方、距離PZが接触判定閾値D以上である場合（ステップＳ２０５−Ｙｅｓ）、接触判定部１６は、その指先の位置にてユーザの指が基準物体に接触したと判定する。そして接触判定部１６は、その指先の位置の実空間における座標に応じた入力信号を生成し、その入力信号を出力する（ステップＳ２０６）。そして制御部７は、入力処理を終了する。
【００６８】
以上に説明してきたように、この入力装置は、ユーザの指を撮影して得られた距離画像において、ユーザの指を識別することが困難な場合でも、指先の位置を検出できる。
【００６９】
変形例によれば、仮接触判定部は、入力操作に利用する指の長手方向を決めるための基準点として、仮の指先位置の代わりに、手領域に含まれる、その指の部分のうちの他の点を求めてもよい。例えば、仮接触判定部は、指の付け根PBの左右の輪郭点PL、PRから、それぞれ、その指の輪郭に沿って所定距離離れた位置の輪郭点PL2、PR2を特定し、その二つの輪郭点PL2とPR2の中点を、指の長手方向を決めるための基準点として求めてもよい。
【００７０】
他の変形例によれば、入力装置は、デスクトップ型あるいはディスプレイ一体型のコンピュータに実装されてもよい。この場合には、例えば、距離画像カメラは、コンピュータが有するディスプレイの上部に、下方を向けて取り付けられる。そしてそのコンピュータは、そのコンピュータが載置されたテーブルに触れたユーザの指の指先位置を、上記の実施形態または変形例に従って検出する。そしてそのコンピュータは、例えば、ユーザの指先位置に対応するディスプレイ上の位置にカーソルを表示して、ユーザが、自身の入力を確かめられるようにする。
【００７１】
さらに、上記の各実施形態またはその変形例による入力装置の制御部による各機能をコンピュータに実現させるコンピュータプログラムは、磁気記録媒体あるいは光記録媒体といった、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
【００７２】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００７３】
１    入力装置
２    投影装置
３    ミラー
４    距離画像生成部
５    通信部
６    記憶部
７    制御部
１０    筐体
１１    手領域検出部
１２    指長さ測定部
１３    登録部
１４    仮接触判定部
１５    指先位置算出部
１６    接触判定部
【図１】
2016091457.tif 000004
【図３】
2016091457.tif 000005
【図４】
2016091457.tif 000006
【図５】
2016091457.tif 000007
【図６】
2016091457.tif 000008
【図７】
2016091457.tif 000009
【図８】
2016091457.tif 000010
【図９】
2016091457.tif 000011
【図１０】
2016091457.tif 000012
【図１１】
2016091457.tif 000013
【図２】
2016091457.tif 000014