【文献】
浜松慶多, 星野聖,“深度センサを用いたつまみ動作認識による仮想造形システム”,平成24年度電子情報通信学会東京支部学生会研究発表会,2013年,p.45,[令和元年11月26日検索], インターネット <URL: https://www.ieice.org/tokyo/gakusei/activity/kenkyuu-happyoukai/happyou-ronbun/18/pdf/45.pdf>,URL,https://www.ieice.org/tokyo/gakusei/activity/kenkyuu-happyoukai/happyou-ronbun/18/pdf/45.pdf
【文献】
福地健太郎ほか3名,“指をつまむジェスチャを認識するテーブルトップエンタテインメントシステム向け入力手法とその応用”,日本バーチャルリアリティ学会論文誌,日本,特定非営利活動法人日本バーチャルリアリティ学会,2010年 6月30日,第15巻, 第2号,pp.157〜164
【文献】
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,2006年10月15日,[令和元年11月26日検索], インターネット <URL: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/10/UIST-2006-TAFFI.pdf>,URL,https://www.microsoft.com/en-us/research/wp-content/uploads/2016/10/UIST-2006-TAFFI.pdf
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下、本発明を適用した実施形態について、図を適宜参照しながら詳細に説明する。なお、本発明は以下の実施形態に限定されるものではない。
【0016】
本発明は、以下に述べるようなつまみ動作における指先の形状と画像上の深度値の関係に着目する。人間が手でつまみ動作を行うために指を接触させた場合、
図1のように指によって囲まれた閉空間100が発生する。画像上でこのような閉空間を検出する時、つまみ方の違いや手指の姿勢の変化によって閉空間内に他の指や掌等が映りこむことがある。その場合、手領域と背景領域とを判別するために、撮像して得られた手領域と背景領域とを含む画像の2値化処理により得られる画像(以下、2値化画像という。)では、上記の閉空間を正確に検出することは難しい。
【0017】
そこで、本実施形態では、一例として画像の深度値を用いた検出処理について説明する。画像の深度値を基準にして手領域と背景領域とが含まれる領域を2値化した結果に基づいて得られる画像上での閉空間を
図2に示す。
図2における左側の列は、2つの手の姿勢(hand pose)を例示し、中央と右側の列は、例示した2つの手の姿勢をそれぞれ検出して得られた深度画像に、本実施形態による処理を適用した結果を示す。
【0018】
実施形態のジェスチャモデリングシステム1は、上記の問題を解消し、閉空間内の背景領域が手領域で遮蔽されている場合でも閉空間を検出する方法として、閉空間を深度上の窪みとして検出する。以下、その手法について述べる。ジェスチャモデリングシステム1は、閉空間が存在する画像の深度値に対して強度の平滑化を適用する。強度の平滑化とは、処理により得られる画像によって示される面の平滑性を増すようにする処理のことである。
閉空間が存在する画像の深度値に対して強度の平滑化を適用することにより、空間内の背景領域と手領域の細かな位置関係は無視され、閉空間は指周辺から閉空間の中央に向けてなだらかに深度が変化していくような凹状の窪みになる。
【0019】
図2における中央と右側の列に、上記の強度の平滑化を適用した画像を、判定閾値(thresholdA/thresholdB)が異なる条件で量子化(2値化)した結果を示す。中央の列の判定閾値(thresholdA)は、深度範囲が比較的狭くなるように決定されている。右側の列の判定閾値(thresholdB)は、深度範囲が比較的広くなるように決定されている。この画像の明るさは、深度を示し、明るいほど深度が浅く、暗いほど深度が深いことを示す。上記のように、判定閾値を調整することにより、指周辺から閉空間の中央に向けてなだらかに深度が変化していく凹状の窪みを識別可能な画像を得ることができる。
【0020】
この窪みは、2値化画像によって抽出される指で閉じられた内部領域とは違い、手指の形状や姿勢の変化による遮蔽の影響に対して堅牢で安定した画像として得ることができる特徴である。また、閉空間を2値化領域として検出する場合、指先が完全に接触した状態でなければ領域として検出ができなかった。これに対し、実施形態のジェスチャモデリングシステム1は、深度上の窪みとして検出することにより、窪みの発生が指先の接触の有無に依存しないため、つまみ形状の認識と指先の接触検出を独立して行うことができる。
【0021】
つまみ動作における手の姿勢を定義する上で、位置の入力として使用する指先以外の手指の形状と手首や腕の位置は排除すべき情報である。排除すべき情報を除いて、必要とされる情報を得るための方法として、指領域周辺の深度値を利用した重回帰分析を用いる。閉空間を形成する2本の指は輪の形状をしており、3次元空間上の平面で近似することで不必要な手指の情報等を排除し、一意の姿勢情報を安定して定義することができる。以上のことをふまえ、本発明では強度の平滑化を適用した深度画像を用いた手指の凹状領域検出によるつまみ動作の認識と、重回帰分析による指領域の平面近似を用いた指先の位置及び手指の姿勢を定義する。これにより、深度センサによって撮像された手指の画像からつまみ動作を認識し、3次元空間上での絶対的な指先の位置及び手指の姿勢と、指先の接触の有無を同時に認識することを実現する。また、本発明により、撮像されるのが右手と左手のどちらの手でも構わなくなる。さらには、検出対象が両手であったり、複数個の手であったりしても、これらを含むように撮像された画像から、これらを同時に認識できるようになる。それゆえ、一人のユーザが両手を使うジェスチャ造形システムや、複数人のユーザが一緒に共同作業できるジェスチャ造形システムが実現できるようになる。
【0022】
図25を参照して、実施形態のジェスチャモデリングシステム1について、より具体的な構成の一例について説明する。
図25は、実施形態のジェスチャモデリングシステムを示す構成図である。ジェスチャモデリングシステム1は、モニター11(表示装置)と、ジェスチャモデリング装置12とを備える。
モニター11は、各種情報を含む画像及びユーザの操作を検出した結果を示す画像を表示する。
【0023】
ジェスチャモデリング装置12は、CPUと、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)、HDD(Hard Disk Drive)の不揮発性の記憶装置と、RAM(Random Access Memory)レジスタ等の揮発性の記憶装置と、を含むコンピュータであり、実行するプログラムにより検出対象の深度画像に対する処理を実行する。ジェスチャモデリング装置12は、深度センサ13と、記憶部14と、認識部15と、制御部16と、処理部17とを備える。
【0024】
深度センサ13は、ユーザの手を撮像する。例えば、深度センサ13は、深度センサとして構成される。深度センサ13をTOF(Time Of Flight)方式の深度センサとして構成した場合、例えば、320×240ピクセルの画像サイズの深度画像を最大60[fps(frame per sec)]の速さで撮影可能である。深度センサ13は、検出した深度画像を実時間で記憶部14に順次書き込む。ジェスチャモデリングシステム1における演算装置への入力となる深度画像には、画素の位置情報が座標、奥行きが画素値で表現されている。
【0025】
記憶部14は、ROM、EEPROM、HDD等の不揮発性の記憶装置と、RAMレジスタ等の揮発性の記憶装置によって実現される。記憶部14は、ジェスチャモデリングシステム1を機能させるためのプログラム、深度センサ13による検出結果である深度画像、凹状領域及び凸状領域を抽出するためのテンプレート、及び、深度画像に基づいて生成される各種画像情報等を格納する。深度画像に基づいて生成される各種画像情報の詳細は後述する。
【0026】
認識部15は、深度センサ13により検出されたユーザの手の深度画像のデータを取得して、深度センサ13により検出された結果に基づいて、ユーザのつまみ動作を認識する。
【0027】
図26は、認識部15の一例を示す構成図である。認識部15は、フィルタリング部1501と、手領域抽出部1502と、抽象深度勾配画像生成部1503と、凹状領域検出部1504と、指先接触判定部1505と、平面近似部1506と、指先位置推定部1507と、手指姿勢推定部1508と、複数手指識別部1509と、手形状認識部1510と、入力情報構築部1520と、を備える。認識部15の各部の詳細については後述する。
【0028】
制御部16は、重回帰分析による指領域の平面近似を用いた指先の位置および/または手指の姿勢を定義することで利用者の操作を受け付ける。
【0029】
処理部17は、制御部16が受け付けた利用者の操作に基づいて、操作に対応付けられた所望の処理を実施する。例えば、処理部17は、深度センサ―13で検出されて、制御部16により定義された指先の位置および/または手指の姿勢の少なくとも一方の情報を用いて、モニター11に表示された操作物体に所定の処理を施すように構成してもよい。
【0030】
図3は、ジェスチャモデリングシステムの構成例を示す。
図4は、検出対象のつまみ動作中の手指を示す。
【0031】
本発明を適用したジェスチャモデリングシステム1では、例えば、
図3に示すように、モニター11の上部に固定された1台の深度センサ13を下向きに設置する。深度センサ13は、深度センサ13からの深度がその検出範囲にある手Hを、手Hの上方から撮像する。
【0032】
ジェスチャモデリングシステム1におけるジェスチャモデリング装置12は、
図4(a)および(b)に示すように手Hの手指を検出し、その結果から、
図4(a)および(b)に示すような、つまみ動作中の手指における指先の位置(P)、手の姿勢(D、N)、及び指先の接触の有無(ON/OFF)を、出力(Y)として得る。なお、指先の位置を示すPは、位置情報又はベクトルであり、手の姿勢を示すDとNは、ベクトルである。ジェスチャモデリングシステム1は、上記の指先の位置(P)、手の姿勢(D、N)、及び指先の接触の有無(ON/OFF)を、線形に加算する式(1)により出力(Y)を得るようにしてもよい。指先の位置(P)、手の姿勢(D、N)、及び指先の接触の有無(ON/OFF)の算出方法については、後述する。
【0033】
Y=(R,D,N)+(ON/OFF) ・・・(1)
【0034】
以下、本発明を適用したジェスチャモデリングシステム1における演算装置により実行される処理を説明する。
図27は、実施形態のジェスチャモデリングシステムによる認識処理の手順を示すフローチャートである。
ジェスチャモデリングシステム1は、フィルタリング処理(S10)、手領域の抽出と抽象深度勾配画像の生成を実施する処理(S20)、凹状領域の検出(S30)、指先接触の判定処理(S40)、重回帰分析による平面近似処理(S50)、指先位置と手指の姿勢を推定する処理(S60)、複数の手指の識別処理(S70)、手形状の認識(S80)、つまみ動作を利用した入力情報の構築(S90)等の各処理を順に実施する。以下、上記の各処理の一例について、順に説明する。
【0035】
1.フィルタリング
深度センサ13から直接取得できる画像の深度値には多量のノイズが発生しているので、ジェスチャモデリングシステム1は、事前処理として3種類のフィルタを重ねがけすることでノイズの除去と平滑化を行う。フィルタリングの適用前後の深度値の様子を
図5に示す。
【0036】
図28は、実施形態のフィルタリング処理の手順を示すフローチャートである。
ジェスチャモデリングシステム1のフィルタリング部1501は、一又は複数の手法のフィルタ処理を、一段又は複数段に分けて、深度センサ13から取得した画像(
図5(a))に適用して、その画像を平滑化して、
図5(b)に示すような連続した滑らかな面を示す画像を生成する。
【0037】
例えば、まず初めに、フィルタリング部1501は、深度センサ13から取得した画像(
図5(a))に対し2次元のメディアンフィルタを適用する(S11)。例えば、メディアンフィルタのマスクサイズを、5×5ピクセルにする。このメディアンフィルタは3次元空間上にある対象物を示す値に対する局所的な外れ値をとる画像特有のショットノイズに対して大きなノイズ低減効果があるものにする。
【0038】
次に、フィルタリング部1501は、式(2)で表されるような適応型移動平均フィルタを、S11のメディアンフィルタを適用した後の画像に適用してフィルタする(S12)。
【0039】
y[n]=αy[n−1]+(1−α)x[n] ・・・ (2)
【0040】
式(2)において、x[n]は入力深度値、y[n]は出力深度値、nはフレームの識別番号、αは0から1までの整数値(0≦α≦1)をとる係数である。フィルタリング部1501は、係数αを、画像に応じて、0から1までの範囲でフレーム毎に変動させてもよい。適応型移動平均フィルタでは、時間軸上のノイズを低減する。フィルタリング部1501は、時間軸上のノイズと見なせるような小さな変動を深度値が示す場合には、そのノイズの影響を低減するためにαの値を大きくして強い平滑化をかけ、画像の平滑化の程度を高める。フィルタリング部1501は、深度値が大きく変動した場合にはαの値を小さくして弱い平滑化をかけ、応答性を高めることで遅延を解消し、残像を抑える。例えば、フィルタリング部1501は上記の判定を、連続するフレーム間に生じた入力深度値x[n]の変化量に基づいて決定してもよい。フィルタリング部1501による適応型移動平均フィルタは、通常の移動平均と比較して保持する情報の段数が少なく、nフレームより1フレーム前のフレーム、すなわち(n−1)フレームの情報のみであるためメモリ効率が高く、計算コストも低い。
【0041】
最後に、ジェスチャモデリングシステム1におけるフィルタリング部1501は、S12の適応型移動平均フィルタ後の画像に対して、2次元のガウシアンフィルタを複数回、S12の適応型移動平均フィルタ後の画像に対して、適用してフィルタする(S13)。例えば、上記のガウシアンフィルタのマスクサイズを5×5ピクセルとし、そのフィルタを適用する回数を2回とする。これにより、フィルタリング部1501は、前述したメディアンフィルタと適応型移動平均フィルタのフィルタで除去しきれなかった面の細かな凹凸を、平滑化して連続した滑らかな面にする。
図5(b)は、その結果の画像の一例を示すものである。ガウシアンフィルタは、比較的大きなマスクサイズのフィルタであっても処理コストが比較的低いという特徴を有する。そのため、フィルタリング部1501は、ガウシアンフィルタを重ねがけしても、その処理コストがネックになることを抑制できる。
【0042】
2.手領域の抽出と抽象深度勾配画像の生成
図29は、実施形態の手領域の抽出処理の手順を示すフローチャートであり、
図30は、実施形態の勾配の算出処理の手順を示すフローチャートである。
つまみ動作の検出に移る前に、ジェスチャモデリングシステム1の手領域抽出部1502は、手領域のシルエット画像と以下で述べる強度の平滑化をかけた画像の深度勾配を計算する(S21)。手領域抽出部1502は、フィルタリング部1501によって1.のフィルタリングを施した画像(
図5(b))とは別に、上記のフィルタリングを施した画像にさらに2次元のガウシアンフィルタを複数回適用した、強度の平滑化画像である手領域のシルエット画像を生成する(S22)。例えば、手領域抽出部1502は、上記のガウシアンフィルタのマスクサイズを11×11ピクセルとし、そのフィルタを適用する回数を8回とする。手領域抽出部1502は、ガウシアンフィルタのマスクサイズを、前述のガウシアンフィルタのマスクサイズに比べ演算対象範囲が広くなるように決定することにより、より平滑化の程度を高めることができる。
【0043】
以後、便宜上の区別のために通常のフィルタリングを適用したものを深度画像(
図6(a))、通常のフィルタリング後に追加の平滑化を施したものを強度平滑化画像(
図6(b))と定義する。
次に、抽象深度勾配画像生成部1503は、この2種類の画像(
図6(a)、
図6(b))に対し、2次元のScharrフィルタなどを用いてx方向の勾配およびy方向の勾配をそれぞれ計算する(S23)。例えば、上記のScharrフィルタのマスクサイズを3×3ピクセルとする。抽象深度勾配画像生成部1503は、深度画像の方に対しては、2方向の勾配ベクトルの絶対値を勾配強度として計算する(S231)。そして、抽象深度勾配画像生成部1503は、画素の深度値および勾配強度がともに一定以内となる画素を2値化処理することで手領域のシルエット画像(強度平滑化画像)を作成する(S232、
図6(c))。次に、抽象深度勾配画像生成部1503は、強度平滑画像に対しては2方向のベクトルから画像上での勾配方向を計算する(S233)。
次に、勾配画像生成部1503は、上記の勾配強度と勾配方向を含む情報を格納した画像を生成し、生成した画像を抽象深度勾配画像として定義する(S24、
図6(d))。
【0044】
3.凹状領域の検出
図31は、実施形態の凹状領域の検出処理の手順を示すフローチャートである。
ジェスチャモデリングシステム1は、抽象深度勾配画像の勾配情報に基づいて、つまみ動作中の手領域に発生する凹状の窪みを抽出する。ジェスチャモデリングシステム1の凹状領域検出部1504は、抽象深度勾配画像に対し、
図7のようなテンプレートを用いてマッチングを行う(S31)。
図7に示すテンプレートは、その中心を最も凹んだ地点とし、中心から放射状に遠のくほど、中心より高さが単調に高くなる勾配をモデル化したものである。例えば、その勾配のモデルは、注目画素を中心とする周辺の画素が、放射状の勾配を有する面に位置することを示す。ジェスチャモデリングシステム1は、
図7に示すテンプレートを用いることにより、注目画素の周辺の複数の画素が放射状の勾配になっているかを判定する。例えば、注目画素の周辺の複数の画素は、同図に示すように中心から等距離にある8画素であってもよい。
【0045】
このテンプレートマッチングによって手領域上の凹状領域を抽出する手順に対応した画像を
図8に示す。凹状領域検出部1504は、
図8(a)に示す画像の全ての画素に対してマッチングを行った後、テンプレートに対する類似度の高い画素に対し複数の閾値で3値以上の階調を示す画像を得るように量子化する(S32)。
図8(b)は、その結果を示す一例である。
図8(b)中の灰色が類似画素、白色がさらに高い類似画素である。
次に、凹状領域検出部1504は、この領域に対しオープニング処理を施し(S33)、その後、灰色の類似画素が存在する領域をラベリング処理によって領域分けを行い、その領域中で白色の高い類似画素が存在する領域(高類似画素領域)のみを抽出する(S34)。
図8(c)は、その結果を示す一例である。
次に、凹状領域検出部1504は、抽出された画素(
図8(c))の中で最も面積の大きな領域を検出し、その領域にガウシアン平滑化を後、凸包で領域抽出したものをつまみ動作による凹状領域と判断して、凹状領域を抽出する(S35)。
図8(d)は、その結果を示す一例である。
図8(d)に示す、凹状領域は抽象深度勾配画像を元に検出されているので、つまみ動作において指同士が完全に接触する前の段階でも、凹状領域検出部1504は、つまみ動作における指同士の接触の検出が可能である。
【0046】
4.指先の接触判定
図32は、実施形態の指先の接触判定処理の手順を示すフローチャートである。
ジェスチャモデリングシステム1の指先接触判定部1505は、凹状領域を利用して、指先の接触状態からつまみ動作の有無を検出する。例えば、指先接触判定部1505は、3.凹状領域の抽出において検出した凹状領域に対し、ガウシアン平滑化を行い(S41)、ガウシアン平滑化を行った後、凸包によって凹状領域の輪郭線を抽出する(S42)。次に、指先接触判定部1505は、2.手領域の抽出と抽象深度勾配画像の生成において生成した手のシルエット領域に輪郭線を重ね合わせる(S43)。指先接触判定部1505は、輪郭線を形成する画素が全てシルエット領域上あるか否かを判定する(S44)。指先接触判定部1505は、輪郭線を形成する画素が全てシルエット領域上ある場合、指が閉じていると判定する(S45)。つまり、ジェスチャモデリングシステム1は、つまみ動作が発生していると判断する。逆に輪郭線が1画素でも手の領域外に存在する場合は、ジェスチャモデリングシステム1は、指が開いていて、つまみ動作が発生していないと判断する(S46)。
【0047】
5.重回帰分析による平面近似
図33は、実施形態の重回帰分析による平面近似処理の手順を示すフローチャートである。
手の姿勢を推定するために、ジェスチャモデリングシステム1の平面近似部1506は、3.凹状領域の抽出において述べた凹状領域(
図9(a))の輪郭線付近の手指の深度情報から手の指先付近の形状を3次元空間上の平面に近似する。例えば、平面近似部1506は、輪郭線の画素とその画素の周辺8近傍の画素のうち、手領域上の画素を近似のサンプリング点として抽出し(S51)、そのサンプリング点を以下の処理で使用する。この領域中の各画素は3次元座標を持った点群であり、最小二乗法を用いた重回帰分析によって点群を3次元空間上の平面103に近似することができる(
図9(b))。3次元空間上の平面は以下の式(3)により定義され、係数a、b、cはn個のサンプリング点(xi、yi、zi)を元に式(4)に基づいて定義される。
【0050】
平面近似部1506は、n個のサンプリング点(xi、yi、zi)を元に式(4)に基づいて係数a、b、cを決定し、式(3)に基づいて近似平面を算出する(S52)。
【0051】
6.指先位置及び手指の姿勢の推定
図34は、実施形態の指先位置及び手指の姿勢の推定処理の手順を示すフローチャートである。
ジェスチャモデリングシステム1は、5.重回帰分析による平面近似で求めた指領域周辺の近似平面103をもとに手指の3次元空間上の姿勢を定義する。3次元空間上の手の姿勢は近似平面103の法線ベクトルと近似平面103上の指先の位置によって一意に定められる。
【0052】
上記の3.凹状領域の検出において検出された凹状領域の輪郭周辺は、指の領域である。指先位置推定部1507は、近似平面である平面103上の凹状領域の輪郭周辺の指領域の中で、その幅が相対的に狭くなる位置を検出し、検出した位置を深度画像の凹状領域上の指先の位置として決定する(S61)。具体的には、手指姿勢推定部1508は、凹状領域の輪郭線画素に対して、2.手領域の抽出と抽象深度勾配画像の生成において生成した強度平滑化画像と深度画像の差分値を計算する(S611)。そして手指姿勢推定部1508は、輪郭線上で差分値の二乗和の重心を求める(S612)ことで深度画像上での指先位置を定義する。平滑化画像の深度差分値で指領域の幅が相対的に狭くなる部分を検出できるのは、領域の幅が狭い部分と広い部分では、平滑化によって受ける周辺画素の深度値の影響が異なり、強度平滑化後の深度値の変化量に大きな差が生まれるためである。
【0053】
次に、ジェスチャモデリングシステム1は、3次元空間上において指先位置と手の姿勢を算出する(S62)。例えば、手指姿勢推定部1508は、S61において決定した深度画像の凹状領域における指先位置を、5.重回帰分析による平面近似で算出した近似平面103上に射影して、その位置を3次元空間上での指先位置として決定する。手指姿勢推定部1508は、前述の
図9(a)と同様の凹状領域を含む画像(例えば、
図10(a))上での指先位置を近似平面103上に射影して、その位置を空間上での指先位置として算出し(S621)、同じようにして凹状領域の重心を近似平面103上に射影する(S622)。次に、手指姿勢推定部1508は、近似平面103上の指先位置と凸状領域の重心の2点から求められる3次元ベクトル104を、手領域に対する指先の方向ベクトルとして算出する(S623、
図10(b))。このベクトル104と近似平面103の法線ベクトルと3次元空間上で直交しているので、この2つを基底ベクトルとすることで空間上での手の姿勢は一意に定まる。このように、手指姿勢推定部1508は、3次元空間上における手の姿勢を推定して、3次元ベクトル104によってその姿勢を示す。
【0054】
7.複数の手指の識別
図35は、実施形態の複数の手指の識別処理の手順を示すフローチャートである。
画像上で複数手指が撮像されている場合、3.凹状領域の検出の結果によるような凹状領域を、つまみ動作が行われている手指の本数分だけを適切に抽出する必要がある。以下、複数の手指で同時につまみ動作が行われている状態を示す画像から、複数の手指のつまみ動作による凹状領域をそれぞれ抽出する方法について述べる。
【0055】
まず、ジェスチャモデリングシステム1の複数手指識別部1509は、事前に2.手領域の抽出と抽象深度勾配画像の生成における手領域画像に対してラベリング処理を行い、領域ごとにラベルを割り当てる(S71)。複数手指識別部1509は、3.凹状領域の検出により画像全体から凹状領域の候補となる領域(候補領域)を検出し(S72)、その検出の後、その各領域が帰属している手領域のラベルをひとつ定める。例えば、各領域が帰属している手領域のラベルは、候補領域と手領域が重複する画素を走査し、その候補領域中で最も重複した画素の多い手領域のラベルを選択することで決定される。
【0056】
複数手指識別部1509は、全ての候補領域について、それぞれが帰属する手領域を求めた後、手領域ごとに帰属されている候補領域中で面積最大の領域を抽出し(S73)、その領域を各手領域における凹状領域と定義する(
図11(a)〜(f))。また、複数手指識別部1509は、凹状領域が存在する手領域の数が、つまみ動作が行われている手の本数として算出する(S74)。
【0057】
8.指の抱え込みを含む手形状への対応
図36は、実施形態の指の抱え込みを含む手形状に対応する処理の手順を示すフローチャートである。
複数の凹状領域を同一の領域と見なすことで、人差し指と親指以外の指を手に抱え込んで動作を行う場合等でも、ジェスチャモデリングシステム1はつまみ動作の認識が行える。
この処理は組み込まれなくともつまみ動作の認識は可能であるが、組み込むことでより多くの形態のつまみ方に対応することができる。例えば、つまみ動作の多くの形態として、
図4(a)に示したような片手の中指、薬指、小指を握らずに軽く曲げた状態にして、親指と示指とによるつまみ動作、
図4(b)に示したような片手の中指、薬指、小指を握り、親指と示指とによるつまみ動作などが挙げられる。上記は例示に過ぎず、上記以外の動作を検出対象の動作に決定してもよい。
【0058】
この処理において、手形状認識部1510は、抽象深度勾配画像上で抽出される凸状領域を使用する。凸状領域とは、凹状領域抽出の場合と同様の手法により、凸状領域を抽出するためのテンプレートを用いてマッチングをすることで抽出される領域のことである。例えば、手形状認識部1510は、凸状領域を抽出するためのテンプレートを用いた、テンプレートマッチングを実施して(S81)、その結果に対する量子化処理を実施して(S82)、凸状領域を抽出する(S83)。そのテンプレートは、
図7に示すテンプレートに対し、重みづけの値の大小を逆にしたものであり、凹部から凸部に向かう矢印の方向を逆向きにしたものである。なお、凸状領域はデプスマップ上における手の稜線を意味する。
【0059】
複数の凹状領域が同一の領域に含まれる場合であれば、凹状領域の候補となる各領域の間に、デプスマップ上における手の稜線を示す凸状領域が存在することはない。凹状領域を統合すべきか否かは、凹状領域の候補となる各領域が、主要な凸状領域を跨ぐか跨がないかで判定される。具体的な手順を以下に示す。
【0060】
まず、手形状認識部1510は、マッチングと2値化によって抽出された凸状領域に対してラベリング処理を行い(S84)、前述の
図11(f)のような面積が最大の凸状領域のみを抽出する(S85)。この処理はつまみ動作中に輪を成した指における、その輪の稜線のみを抽出することを意図している。そして、現在のつまみ動作検出のアルゴリズムに沿って、凹状領域の候補から面積が最大の領域を抽出した後、手形状認識部1510は、面積が最大の領域の重心から各候補領域の重心へ線を引く(S86)。
最後に、手形状認識部1510は、線上の各画素のうち、上記の最大凸状領域と重複する画素があるかないかを判定する(S87)。重複画素がない(稜線を跨がない)場合、その候補領域は凹状領域と同一であると判定し、ラベリング番号を凹状領域と同じにして領域を統合する(S88、
図12)。重複画素がある(稜線を跨ぐ)場合、その候補領域は凹状領域と異なる同一であると判定し、別の凹状領域として扱う(S89)。
【0061】
9.つまみ動作を利用した入力情報の構築
つまみ動作を利用した入力情報の構築について説明する。
図37は、実施形態のつまみ動作を利用した入力情報の構築処理の手順を示すフローチャートである。
つまみ動作認識で抽出できる独立した入力制御量のひとつとして、指で囲まれた輪の大きさを例示して、その入力制御量を利用するための第1の手法について述べる。画像上での輪の大きさは、深度センサ13からの手Hの見え方が変化することによって、意図せずに変化してしまう。そこで、ジェスチャモデリングシステム1は、つまみ動作認識で定義される近似平面を利用することで、手Hの見え方の変化による影響を低減する。
【0062】
具体的には、ジェスチャモデリングシステム1の入力情報構築部1520は、凹状領域の輪郭線上の画素を、近似平面の座標に変換する(S91)。次に、入力情報構築部1520は、変換した座標の高さ成分を除去して2次元データに変換する(S92)。最後に、入力情報構築部1520は、輪郭線上の画素に対応する近似平面上の各点と近似平面の中心点との距離を求め(S93)、その平均値を輪の大きさとする(
図13)。
【0063】
もうひとつ、つまみ方の違いを識別し、異なる入力として利用する第2の手法を述べる。
図38は、実施形態のつまみ動作を利用した入力情報の構築処理の手順を示すフローチャートである。
この第2の手法を用いることで
図14に示すような通常のつまみ動作(
図14(a))と、
図15に示すような人差し指を立てたつまみ動作を識別できる。この違いは、指が接触した時の凹状領域の輪郭線105(
図14(b)、(c)および
図15(b)、(c))の状態によって判断する。
【0064】
具体的には、入力情報構築部1520は、凹状領域の輪郭線上の各画素に対して、隣り合う両隣の輪郭線画素との深度差を計算する(S191)。例えば、人差し指を立てている場合、人差し指と中指の根元付近に段差ができる。入力情報構築部1520は、その段差を、先ほどの深度差によって検出する。例えば、入力情報構築部1520は、先ほどの深度差が一定以上の値をとる画素が存在するか否かを判定する(S192)。
【0065】
入力情報構築部1520は、先ほどの深度差が一定以上値をとる画素が存在する場合、人差し指が立っていると認識する(S193、
図15(a))。一方、入力情報構築部1520は、先ほどの深度差が第1閾値以上の値をとる画素が存在しない場合、人差し指が親指に接触していると認識する(S194、
図14(a))。
【0066】
なお、S192の判定の際に、指先付近の画素が深度差のある画素として検出されることがある。これに対し、入力情報構築部1520は、6.指先位置及び手指の姿勢の推定において求めた平滑化差分の値が第2閾値以上の値をとる画素を除外することで、指先付近の画素が抽出されることを防ぐ。なお、第2閾値は、上記の第1閾値より大きな値にするとよい。
【0067】
以上の判定で、ジェスチャモデリングシステム1は、指先接触時に摘み動作の違いを識別できる。この識別によって、通常のつまみ形状の場合はAの動作、人差し指が立った状態の形状ではBの動作などの切り替えを、アプリケーション上で実現できる。
【0068】
次に、本発明における実施例として、3次元入力インターフェースを利用した3DCGモデリングソフトウェアの様子と仮想空間内で物体を操作している様子を以下に示す。
図16は、3次元入力インターフェースを利用した3DCGモデリングソフトウェアの様子と仮想空間内で物体を操作している様子を説明するための図である。モニター11には、3次元表示されたキャラクターが表示されている。ジェスチャモデリングシステム1は、ユーザの手Hの動きを検出して、このキャラクターの動作を制御する。
【0069】
図17は、3次元入力インターフェースを利用した3DCGモデリングソフトウェアの様子と仮想空間内で物体を操作している様子を説明するための図である。同図には、突出した部分と凹みを有する球体が表示されている。同図は、球体から突出した部分の先端を、球体に設けられた凹みに挿入するという操作を行う場合の表示画面を例示するものである。
【0070】
また、複数人のユーザが協調して一つの造形作業をする様子を以下に示す。
図18は、複数のユーザの協調作業を説明するための図である。ジェスチャモデリングシステム1は、各ユーザの手Hと、その手Hが示すつまみ動作とを検出する。ジェスチャモデリングシステム1によれば、8人程度のユーザの協調作業であるならば、処理速度を落とさずに、すなわち単位時間に処理するフレーム数を、リアルタイム処理に適した60[fps]を維持したままで実行できる。
【0071】
[評価]
(被験者実験)
本発明における入力インターフェースとしての有用性を評価するために、被験者による比較実験を行った。各被験者にはジェスチャモデリングシステム1を用いた本発明による入力方法と既存の入力デバイス(比較例)による入力方法の2種類の方法で同じ作業を行ってもらい、その作業時間を計測する。比較例となる入力デバイスには3Dconnexion社の3Dマウス(SpaceNavigator)を用いる。比較例の入力デバイスは3DCADや3Dモデリングソフトで使用されることがその利用方法として想定された専用デバイスであり、位置・姿勢の6自由度を同時に入力することができるものである。
【0072】
実験では、被験者の前に設けられたモニター11の画面上に表示された仮想空間上の物体を操作し、定められた位置・姿勢に、その物体を設置するという作業を、被験者に繰り返し行わせた。モニター11の画面上には
図19のような仮想の3次元空間が表示され、その仮想の3次元空間中に動作物体と半透明な目標物体とが表示されている。本発明による入力方法では、被験者は動作物体の方を、つまみ動作によるドラッグアンドドロップの操作で操作して、動作物体の位置および姿勢を目標物体に合わせる。比較例による3Dマウスによる入力方法ではスティック操作により、相対的に位置および姿勢を調整する操作を入力する。
【0073】
以上の本発明と比較例の2種類の方法で動作物体を操作した場合を比較する。動作物体を操作する場合、動作物体の位置と姿勢が目標物体の位置と姿勢に合うことで作業が完了され、次の目標物体が現れる。この物体合わせの作業を3回行い、その合計時間を計測する。これを1セットの試行とし、被験者には本発明と比較例の2種類の入力方法でそれぞれ30セットずつこの試行を行なってもらう。目標物体の位置および姿勢はランダムに出題されるが、30セットの試行で出題される90回分の目標物体は、2種類の入力方法で同じ問題が同じ順番で出題される。また、被験者間でも出題される問題は同じで、被験者は全員、本発明による入力方法での実験を先に行い、3Dマウスでの実験は後に行っている。この実験を20代の被験者10名(男性7名、女性3名)に対して行った。
【0074】
(実験結果)
サブジェクト(SubjectAからSubjectJ)として示す被験者10名による実験の結果を
図20および
図21に示す。
図20と
図21は、サブジェクト(被験者)ごとの平均パフォーマンス時間(performance time)を示す図である。双方の図に示すように、多くの被験者で3Dマウスによる入力方法(Mouse)よりも提案手法による入力方法(Pinch)の方が、平均作業時間が短くなることが確認された。2種類の入力における平均作業時間でt検定を行ったところ、入力方法の違いによる有意差(p<0.05)が認められ、本発明による入力方法によって作業時間が短縮できることが確認できた。
【0075】
全体の傾向としては、同一被験者では作業時間の平均は、3Dマウスによる入力方法よりも本発明による入力方法の方が短くなる傾向があり、作業時間の分散は、3Dマウスによる入力方法よりも本発明による入力方法の方が少なくなる傾向がある。なお、上記の傾向と異なる傾向を示す被験者も存在した。また、入力方法による作業時間の違いよりも、被験者間での作業時間の違いが大きく現れた。これは、今回の実験のような作業においては、入力方法の違いよりも作業内容への適応に個人差が大きく影響したためと思われる。
【0076】
(認識性能及び処理速度)
本発明において同時に認識可能である手の本数とその時の認識処理速度を計測した結果を
図22に示す。
図22は、手の本数(number of hands)と、処理速度(processing speed)との関係を示す図である。認識処理に使用したCPUはIntel社製Corei7-3770K (3.50GHz)である。計測の結果、一台の深度センサ13で最大25本の手指の動作を同時に認識できることが確認でき、その場合の処理速度は35[fps]であった。また、手指が1つの場合の最高処理速度は106[fps]であった。センサの撮像速度は60[fps]なので、
図22より、同時に認識される手指が9本までは認識速度を全く低下させることなく、つまみ動作を認識することができる。一台の深度センサ13で複数の手指の動作を同時に認識する処理の詳細は、前述の
図18を参照する。
【0077】
複数の手指の動作を同時に認識できるということは、単純に、一度に入力できる情報量が増えることにつながり、一台のデバイスでは実現できない複雑な入力操作を行えるようになり、インターフェースとしての有用性が高いものであることを意味する。また、複数人で同時に認識できるためユーザ間でのインタラクションシステムに応用することも容易になる。
図23(a)、(b)、(c)および(d)と、
図24(a)、(b)、(c)および(d)は、ジェスチャモデリングシステム1を使いジェスチャにより造形した3D形状の一例を示したものである。
【0078】
以上のように、本発明は、仮想的な3次元空間での入力操作を行うためのジェスチャインターフェースとして手指のつまみ動作に着目し、非接触のセンサによるつまみ動作の認識手法を提案した。
【0079】
従来の画像上でのつまみ動作検出には、指先位置を検出できないこと、位置と姿勢の認識が指先の接触時のみに限られること、手指の姿勢の変化に対して認識が不安定になること、空間上での絶対的な姿勢を検出できないこと等の問題が存在した。
【0080】
この問題を解消するために、本発明のジェスチャモデリングシステム1は、つまみ動作における指先の形状と画像上での深度値の関係性に着目し、強度の平滑化を適用した深度画像を用いた手指の凹状領域検出によるつまみ動作の認識と、重回帰分析による指領域の平面近似を用いて指先の位置及び手指の姿勢を定義する。これにより、ジェスチャモデリングシステム1は、3次元上での位置と姿勢情報が入力できるので、複雑な操作や専門知識がなくとも、現実世界で粘土細工や工作をするのと同じ感覚で簡単に3次元コンピュータグラフィックス(3DCG)等の作成ができる。
【0081】
また、ジェスチャモデリングシステム1は、つまみ動作の映像から指先の接触状態が取得できるので、マウスのクリックボタンのようなオン、オフのスイッチ入力が行なうことができる。これによって、ジェスチャモデリングシステム1は、マウスドラッグやマウスオーバー等の入力が実現でき、マウスで行なえる作業は全て手のジェスチャによって行なうことができる。
【0082】
さらに、ジェスチャモデリングシステム1は、複数の手指が映った映像から別々に手を認識し、同時に複数の手によるつまみ動作を認識することができる。これにより、ジェスチャモデリングシステム1は、両手を使った作業が可能なアプリケーションの構築や、複数人で使用するゲームアプリケーションへの利用が容易に行なえる。
【0083】
なお、上述したとおり、10名の被験者に仮想的な3次元空間上での物体操作による作業を、本発明による入力インターフェースと既存デバイスの2種類の方法で行わせる実験を行い、その作業時間を比較することで本発明を評価した。実験の結果、平均作業時間において入力方法の違いによる本発明の有意性が認められ、本発明によって作業時間が短縮できることを示した。また、本発明では9本の手指を60[fps]以上の処理速度で、最大25本の手指を30[fps]以上の処理速度で同時に認識できた。このことは、本発明によれば、一人のユーザが両手を使う手指ジェスチャ造形のみならず、複数人のユーザが一緒に共同作業できる手指ジェスチャ造形が実現できることを示唆している。
【0084】
さらに、ジェスチャモデリングシステム1によれば、以下の効果も奏する。
(1)深度センサ(デプスカメラ)1台で撮像された手指の映像から、3次元的な指先の位置・手指の姿勢、指先の接触によるオン、オフのトリガ入力を正確に取得できる。
(2)つまみ動作という、日常で慣れ親しんだ指先動作により、3次元物体操作やCGモデリング等のアプリケーションに利用することができる。
(3)1台のセンサで両手の動作を認識できることから、片手で物体を持ち、もう片手で道具を持って作業行なう等、現実世界と同等の感覚で作業ができる。
(4)1台の深度センサで複数の手を認識できることから、多人数で行なうインタラクティブなゲーム等のアプリケーションに利用することができる。
(5)指の輪のよる入力やつまみ方の違いの識別と複数手指の認識を組み合わせることで、多量の独立した入力情報を構築できるため、マウスやキーボード等の補助を一切必要とせずに様々なアプリケーションの操作が行なえる。
【0085】
以上、本発明の好ましい実施の形態について詳述したが、本発明は特定の実施の形態に限定されるものではなく、特許請求の範囲内に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。