第１章はじめに
11
第４章　実験および考察24 4.1実験システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24隠れ指の各関節角度誤差による評価及び考察. . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 4.2.1グー姿勢に対する隠れ指の各関節角度誤差 . . . . . . . . . . . . . . . . . . . . 25 4.2.2チョキの姿勢に対する隠れ指の各関節角度誤差. . . . . . . . . . . . . . . . . . 27 4.2.3物体(ボール)を把持した姿勢に対する隠れ指の各関節角度誤差. . . .  28 4.2.4提案手法の妥当性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29第５章　むすび30謝辞31参考文献32
近年，バーチャルリアリティ(Virtual Reality：以下VR)に関する研究が多くの企業で積極的に行われており，エンターテインメント分野をはじめとした様々な分野で商品化が進められている．VRとは，現実の本質を有するものであり，「それがそこにないにもかかわらず，観察する者にそこにあると感じさせるもの」[1]である．本質とは何を目的としているかによって，違ってくるものであり，現実世界を構成するすべての要素のうち，その目的にとって重要な要素だけを抽出したものがVRであるといえる. VR技術を利用する利点として，現実と同様の環境をより低いコストで構築できることや現実で行うには危険が伴う行為を安全かつ繰り返し行えることなどが挙げられる．これらの利点より，VR技術を用いた教育・訓練シミュレータ[2][3]が多く開発されている．これらのシミュレータに用いるインターフェースは巨大かつ開発費用が高額であることが多いため、このような規模のシステムを一般家庭の場へ普及させることは難しい．VR技術を用いたシステムに利用されるインターフェースには，ヘッドマウントディスプレイ，ロボットアーム,データグローブ、タッチパネル、３次元マウスなどが挙げられる．この中で，ヘッドマウントディスプレイに関しては，SONY株式会社の「Play Station VR」[4]やOculus VR社の「Oculus Rift」[5]などの一般家庭向けのものがまもなく発売される予定であり，今後一般の人がVR技術を目にしたり体験したりする機会が徐々に増えてくるのではないかと考えられる.当研究室ではVRシステムを一般家庭へ普及させることを目指し，小型かつ安価に構築できるVRシステム用のインターフェースの開発を行っている．本研究では，現実世界における人間の物体操作は手を用いて行うことが多いことを考慮し，仮想空間上での人間のハンドモデルを用いた操作を可能とするインターフェースである、データグロープに着目する.データグローブとは，手指の各関節角度を測定することで手の姿勢を取得するための手袋状のインターフェースである．手の姿勢を取得する際にはいくつかの手法があり，代表的なものとして、ベンドセンサによって各関節各度を計測するデータグロープがある．このデータグローブでは、基本的に１つのセンサで１つの曲げ角を計測しているため、正確な手の姿勢を取得するためには，多くのセンサを取り付ける必要があり，センサが多くなるほど高価なインターフェースとなってしまう．当研究室では，１つのセンサで指全体の曲げ角を計測するセンサ数の少ないデータグローブの汎用的な利用を目指した姿勢推定手法の提案を行っている[6].一方で，ビジョンベースデータグロープの研究も行っている．これは，カメラ画像から手の姿勢推定を行うもので、物理的なグローブを一切必要としないものや、カラーマーカなどを備えたグローブを使用するものがある．代表的な手法は，「データベースを構築し，パターンマッチングを行う手法」と「特徴量やマーカから指先の等の検出し，手の姿勢を推定する手法」の２つである。パターンマッチングの手法では，事前に構築した手の姿勢のデータベースを用いることで、手の姿勢の推定を行う．この手法の利点は，手の指先が自身の手や指で隠れてしまうセルフオクルージョンの問題を解消できることである．しかし，この手法を用いて正確な手の姿勢を推定するためには，膨大な量の手の姿勢のデータベースを構築する必要があり，その数ある手の姿勢のデータと入力画像とのマッチングを行うことから、正確な推定を行おうとするほど処理時間が長くなってしまう．この問題を解決するための研究が多くされており，例えば，藤本ら[7]は，輪郭形状の凹凸情報を利用し，木構造のデータベースを構築することで，探索時間を減らしている．一方，富田ら[8]は，データベースの探索に手指の縦横比率等の形状比率を加えて，画像特徴量と組み合わせることで，高い推定精度と処理速度を実現した．また，Wangら[9]は，シルエット情報や輪郭情報ではなく，独自のマルチカラーグロープを用いることで入力画像とのマッチングを行っている．しかしながら，これらの手法をを用いるには，利用するユーザに合ったデータベースを構築する必要があるため，一般家庭への普及を考慮した場合，データベースの構築がネックになると考えられる．特徴量やマーカから指先などの検出を行う手法では，特徴点から各関節間の関係性を用いて，手の姿勢を推定する手法が主流である．例として，Pamplonaら[10]は，各指先に付けたARToolKitマーカ(以下ARマーカ)より、各指先位置を取得し、逆運動学(Inverse KInematic：IK)を解くことで手の姿勢の推定を行っている．また，藤木ら[11]はカメラを2台用いて、手に取り付けた6つの色マーカの位置をステレオ視で計測し、逆運動学を解いて手の姿勢を推定している．これらの手法では，あらかじめユーザの手形状の情報(ハンドモデル)用意することで、手の姿勢の推定を行うため、パターンマッチングを行う手法と異なり，ユーザごとのデータベースを構築する必要はない．この点より，一般家庭向けのデータグローブに適していると考えられる.当研究室では現在までに，後者の考え方を基本に手笑側からのカメラ画像における手の三次元座標と方向，及び各指先の二次元座標が分かっているという前提条件のもとで，手指の各関節角度を推定する手法を提案している．実験では指先に付けた色マーカを基に指先の二次元座標を検知し、ARマーカにより手の三次元座標と方向を取得している[12]. その上で、手指の拘束条件により指先の三次元位置を推定し，逆運動学を解くことで手の姿勢の推定を行う[13]. ここで，指先が他の指に隠れてしまい検知できないセルフオクルージョンが発生することが考えられる．その場合には，指先が隠れる前の手の動作が継続していると仮定して，その動作の時系列変化を多項式で表現することで，現時刻の手の姿勢を推定する．しかしこの手法では，対象者の正面にカメラを設置して手笑側の手のカメラ画像を用いて，手の姿勢を推定することを前提としているため，手背側からの撮影を想定しておらず,手背画像を用いた姿勢推定を考慮していない．近年では，タブレット機器やスマートフォン等のモバイル端末が広く普及しており，端末の背面カメラで他方の手と前景を一緒に撮影することで，画面内において仮想的な操作を行うインターフェースも期待できる．当研究室では，手背画像を用いた手の姿勢を推定する手法も提案している．手背画像において，手のすべての指先が検知できている場合，手掌画像の場合と同様に各指の合計関節角度は逆運動学により求めることができる．しかし，指先が手や他の指に隠れてしまう状況が多く存在する．本手法では，まず手背画像において親指の指先が検知できているか判定し，検知できている場合は逆運動学により親指の合計関節角度を求める．もし，親指の指先が隠れてしまっている場合，親指の合計関節角度を要素とした手背画像における手の面積，手の凸包輪郭線長及び手の縦横比による三次元のテーブルを参照することで親指の合計関節角度を推定している．そして，求めた親指の合計関節角度と手の面積及び手の凸包輪郭線長を用いて、親指以外の４本の指の屈曲度合いを表す合計屈曲率を要素とした三次元のテーブルを参照することで手の姿勢推定を行っている．この手法を用いて，手首の傾きが無い状態でのテーブルを作成し、実験を行った.本研究では，手背画像において手首を回転させた場合でも手の姿勢を推定できる手法を提案する．任意の手首方向に対応するには，例えば１度間隔でテーブルを作ることも考えられる．しかし，予備実験によりこのテープルは個人毎で異なることが分かっており、将来的に個人の手に合わせて汎用テープルを簡易的にカスタマイズすることも検討したい．その場合，カスタマイズするテーブル教も少ない方が良いと考えられる．そこで，本研究では比較的大きい間隔で手首の回転角度ごとのテーブルを作成し，その間は線形補間により対応することで，より汎用的な手首の回転に対応した手の姿勢推定の手法を提案する．以下，第２章では，これまでに提案している手首の回転を考慮していない手背画像によるビジョンベースデータグロープについて述べる．第３章では，手首の回転を考慮した，手背画像による手の姿勢推定を可能とする提案手法について述べる．第４章では提案手法を用いた実験とその結果，第５章ではまとめを述べる．
本章では，これまでに提案している手背画像によるビジョンベースデータグロープについて説明する．手背側から手を撮影する場合，手掌側からの撮影とは異なり，カメラ側から隠れる方向へ各指が屈曲し，指先が他の指だけではなく，手自体に隠れてしまう状況が多く存在するなどの問題がある．このような問題をを解決するために，文献[14]では手背画像における手の面積，手の凸包輪郭線長，親指のIP，MP，CM関節(後述)角度の合計値(以下親指の合計関節角度)及び手の縦横比の情報を取得し利用することで隠れ指の推定を行う手法を提案している．本手法では，事前にいくつかの手動作に関して，手の面積，手の凸包輪郭線長、親指以外の４本の指の合計屈曲率(以下合計屈曲率)のサンプルデータを取得しておく．ここで合計屈曲率とは，各指の屈曲・伸展度合を0%～100%で表し，その４本の指の合計値を0pt〜400ptとポイントで表したものである．取得したサンプルデータをもとに，合計屈曲率を要素として持つ，手の面積及び手の凸包輪郭線長によるテーブルを親指の合計関節角度ごとに作成することで，合計屈曲率推定用の三次元のテーブルを準備しておく．手の姿勢推定をする際には，最初に手背画像において親指の指先が検知できているかを判定し，検知できている場合は逆運動学により親指の合計関節角度を求める．一方で，親指の指先が隠れてしまっている場合は，合計屈曲率推定用テープルと同様に事前に準備してある，親指の合計関節角度を要素とした手背画像における手の面積，手の凸包輪郭線長及び手の縦横比による三次元の親指の合計関節角度推定用テープルを参照することで親指の合計関節角度を推定する．そして，求めた親指の合計関節角度と手の面積及び手の凸包輪郭線長を基に合計屈曲率推定用テープルを参照することで，合計屈曲率を得る．得た合計屈曲率を基に各指の屈曲度合いを定め，隠れ指の姿勢を推定する.
2.1 可視指の逆運動学による関節角度推定
カメラ画像において指先が検知され，その二次元座標が分かっている場合には，その指の各関節角度を逆運動学を解くことで求める．本節では，逆運動学を解く際に利用する手指の拘束条件及び逆運動学による指の各関節角度の推定手法を述べる．ここで，本来手は非剛体の物体であるが，他物体との接触を考慮せず姿勢推定を優先するため，手を各関節点で剛体同士を接続した骨格モデル(図2.1)とそれに付随する簡素なスキンモデルで表す．骨格モデルの指関節には，母指のIP関節とMP関節はそれぞれ１自由度，CM関節は２自由度の計4自由度，その他の指のDIP関節とPIP関節はそれぞれ1自由度，MP関節は2自由度の計4自由度と設定する．本研究では，各関節の名称を表2.1のように表記する．

2.1.1　手指の拘束条件
人間の手には構造上の様々な拘束があり，拘束条件として知られている．本研究ではこの拘束条件をハンドモデルに組み込み，手の姿勢推定に利用する．指の各関節にはそれぞれ可動範囲がある(文献[15]参考). これを参考に、各指の各関節の可動範囲を知識と経験に基づいて設定する．設定した各関節に対応する可動範囲を表2.2に示す．手は様々な動作を行うが，その中でも代表的な手動作に物をつかむ，握るなどの「把持動作」がある．本研究では基本的にユーザーが把持動作を行おうとしていると想定して手の姿勢推定を行う．把持動作を行う際の各指関節角度を取得すると，各指関節同士には以下のような依存関係がみられる．ここで母指以外の指を指す(i = 1 ～ 4)とし，i = 1は示指を表し，i = 4は小指を表す.また，母指を指0とする．指iにおける各指関節角度には次のような依存関係が存在する． ●  DIP関節とPIP関節の関節角度には比例の相関関係がある[16]  (図2.2の左の図). ●  PIP関節とMP関節(屈曲・伸展)の関節角度にはS字型の相関関係がある[17] (図2.2の右の図).また，母指にも他の四指と同様な以下のような依存関係が見られる． ● IP関節とMP関節の関節角度には比例の相関関係がある(図2.3の左の図). ●  MP関節とCM関節(挙側内転・外転)の関節角度には逆S字型の相関関係がある(図2.3の右の図).指iのMP関節は屈曲するほど内転・外転の可動範囲の中心に向かっていき，かつ可動範囲が狭くなる性質が見られる[17]. したがって，式2.1のように，MP関節(内転・外転)の可動範囲を改めて設定する．ここで，θ i3は指iのMP関節(屈曲・伸展)を表し，θ i4は指iのMP関節(内転・外転)を表す. −(25 − 0.5 * (θ i3 − 60.0))度≤ θ i4 ≤ (25 − 0.5 * (θ i3 − 60.0))度  (θ i3 ≥ 60度) (2.1) −25度≤ θ i 4 ≤ 25度(θ i 3 < 60度)
表2.2:設定した各指関節角度の可動範囲図2.2: 指iにおける各関節間の依存関係(左「DIP関節とPIP関節」右「PIP関節とMP
2.1.2 逆運動学による手の姿勢推定
本研究の実験システムでは指先の位置の特徴点を得るため各指先に一つずつ色の異なる色マーカを取り付けて使用する(図2.4). また，手の甲の位置・姿勢を計測し手の6自由度を得るためのARマーカを適切な位置に取り付ける．指先の各色マーカの対象領域を一つの指先に対応させることで、カメラ画像中での指先の位置を判断する．色マーカから取得したカメラ画像における指先の二次元位置とARマーカから取得した手の三次元位置及び方向,そして第2.1.1項で述べた指関節間の依存関係を用いて順運動学を解くことで，指先の三次元位置を推定する．推定した指先の三次元位置から，逆運動学の計算アルゴリズムの１つであるCyclic-Coordinate Descent(CCD)法[18]を解くことで，各指の各関節角度を求め，手の姿勢の推定を行う．CCD法は，反復計算によって，最適化問題を解く手法であり，反復1回あたりの計算量が少ないため，リアルタイムの時系列データで手の姿勢を推定する本手法に適していると考えられる.次に，CCD法の計算手順について図2.5を用いて説明する．本研究では，指先ｅをエンドエフェクタとし，目標位置gをゴールとする．CCD法により，エンドエフェクタをゴール付近まで移動させる際の計算手順を以下に示す. 1.先端の関節cから指先eへのベクトルEとcから目標位置gへのベクトルGを算出する. 2.手順１で求めたベクトルを正規化し，ＥからGへの回転角を算出する. 3.関節cに手順2で求めた回転角を加える．このとき関節の拘束条件に当てはめ，関節の可動範囲と新しく得られた関節角を比較し，可動範囲を越えているならば関節角の値を可動範囲の上限(あるいは下限)となるように変更する. 4.新しく得られた関節角における指先の位置を算出し，指先と目標位置との距離が前のものよりも大きくなる場合は前の関節角の値に戻す. 5.関節ｃの親である関節ｂにおいて手順１から手順４の計算を関節ｂに置き換え繰り返す.以上の手順をルートである関節aまで繰り返す. 6.指先と目標位置との距離が閾値以下になるか，設定された反復回数を越えるまで手順1から手順５の計算を繰り返す. CCD法では，一度に関節が大きく移動するのを防ぐため，damping (粘性減衰)を付け加えることができる.ここで，指iの順運動学FK i (θ i ,θ i )には，指iのDIP関節角度θ i 1とPIP関節角度θ i2の相関関係for, (θ i2)が含まれている．また，母指の順運動学FK 0 (θ 04,θ 03,θ 02)には，母指のIP関節角度θ 01とMP関節角度θ 02の相関関係ƒ 001 (θ 02 )が含まれている．このfon (θ i2)とfon (θ o2)を逆運動学でも考慮するために，damping (粘性減衰)を用いる．具体的には，DIP関節とIP関節はターゲットとゴールの最小化を行わず，PIP関節角度θ ⁄ 2とMP関節角度θο₂を求める際に，ƒθ₁₁(θ₁₂)とƒθο₁ (θο₂)を用いてDIP関節角度θ₁₁とIP関節角度θ o1を求める．二つの指関節角度を同時に更新するため，eがGを越えて移動しないようにPIP関節とMP関節のdamping係数を適切に設定しておく．これにより，ƒө,, (θ i2)とfool (θ02)の関係を保ちながら手の姿勢推定を行うことが可能となる.
親指合計関節角度の推定法
2.2
隠れ指の姿勢推定を行う際，最初に親指の指先が検知できているかどうかを判定する．親指の指先が検知できている場合は，逆運動学を解くことで親指の合計関節角度を求めることができる．しかし，親指の指先が他の指や手によって隠れてしまい，逆運動学による親指の合計関節角度の推定が行えない状況が多く存在する．そこで手背画像における手の面積，手の凸包輪郭線長及び手の縦横比による三次元のテーブルを参照することで，親指の合計関節角度を求める手法を提案している．本節では，隠れ指の推定において手の面積，手の凸包輪郭線長及び手の縦横比の値を利用することの妥当性の説明，及びそれら三つの値を利用した親指の指先が検知できていない場合の親指の合計関節角度の推定手法に関して述べる.
2.2.1手の面積
いくつかの手の姿勢を手背側から撮影し、カメラ画像における手の面積の変化を調査したところ表2.3のような結果が得られた．表2.3が示すとおり，カメラ画像における手の面積は手の姿勢による値の違いが見られたため、隠れ指の姿勢推定に手の面積情報を利用する.ただし，手の面積はカメラからの距離によって取得する値が変わり，具体的に述べるとカメラからの距離の二乗に反比例する．そのため，手の面積にカメラから手の位置までの距離の二乗を掛けた値を手の面積とすることで，値の変動を抑える．
表2.3:いくつかの手の姿勢に対する手の面積の一例
2.2.2
凸包輪郭線長に関しても，いくつかの手の姿勢を手背側から撮影し，値の変化を調査したところ表2.4のような結果が得られた．手の面積と同様に，カメラ画像における，手の姿勢による値の違いが見られたため、凸包輪郭線長も隠れ指の姿勢推定に利用する．なお、凸包輪郭線長を用いる理由として，単なる輪郭線では図2.6のように，類似の姿勢であっても指の開きで値が大きく変動してしまうためである．ただし，凸包輪郭線長にはカメラから手の位置までの距離を掛けて利用することで，手の面積と同様にカメラ距離の変動による凸包輪郭線長の値の変動を抑えている．図2.7にカメラ画像から取得する凸輪郭線長を示す．
表2.4:いくつかの手の姿勢に対する凸包輪郭線長の一例
2.2.3 手の縦横比
文献[14]の手法では，親指の指先が検知できていない場合，親指の合計関節角度を推定するために手の縦横比を利用する．本手法における縦横比は，手の方向の三次元の軸を基に定義を行う．図2.8のy軸方向を縦とし，x軸方向を横とする．この定義に基づき，手の縦の長さ，及び手の横の長さについても定義する．まず，カメラ画像における，ARマーカの座標系のx軸およびy軸を，それぞれ二次元の直線の式で表現する．カメラ画像における手の縦の長さをhmax，横の長さをwmaxとし，x軸及びy軸を基にそれぞれの長さの求め方を定義する．ARマーカのx軸を表す直線で分割された，手の2つの領域において，それぞれ最も直線から遠い点を求め，直線とその点の距離をh1，h2とする．文献[14]では，式2.2に示すように，h1とh2を加算したものを，カメラ画像における手の縦の長さhmaxとする.同様に，2.10のように，ARマーカのy軸を表す直線で分割された，手の2つの領域において，それぞれ最も直線から遠い点を求め，直線とその点の距離をw1，w2とする．手の縦の長さと同様，式2.3に示すように，w1とw2を加算したものを，カメラ画像における手の横の長さwmaxとする．そして，式2.4に示す通り縦横比aspectを決定する．
Umax = w1 + w2
aspect =

2.2.4 親指の挙動に対する手の縦横比,手の面積,手の凸包輪郭線長の変化
親指の挙動，すなわち親指の合計関節角度に対しての，手の縦横比，手の面積，手の凸包輪郭線長の変化を調査した結果，以下の表2.5のような結果が得られた．この調査では，親指が隠れていて，かつ親指以外の４本の指を固定した状態で親指の合計関節角度が約100度,約150度，約200度の三つの姿勢における，手の紙横比，手の面積，手の凸包輪郭線長の値を取得している．表2.5より，親指の挙動に応じて，それぞれの値が変動していることが確認できる．そのためこれら三つの値に着目することで，指先が隠れた親指の合計関節角度を求めることが可能であると考えられる.

2.2.5 縦横比ごとのテーブルを用いた親指の合計関節角度の推定
手の縦横比，手の面積，手の凸包輪郭線長による三次元のテーブルを参照することで親指の合計関節角度を求める．そのため事前に，図2.11のような，親指の合計関節角度を要素とする，手の縦横比，手の面積及び手の凸包輪郭線長の三次元のテープルを作成する．図2.11のような三次元のテープルを作成するために，縦横比の値ごとに手の面積と手の凸包輪郭線長の二次元のテーブルを作成する．本来であれば手の縦横比ごとのテーブルを多数作成するのが理想であるが，膨大な数のテープルを作成するのは現実的ではないため，まず手の縦横比α, (α+β), (α+2β)...のように離散的にテーブルを作成する.そして現フレームの手の縦横比をR Nとし, α ≤ R N < (α + β)の場合, αのテープルと(α + β)のテープルを同時に参照し、二つのテーブルから二つの親指の合計関節角度を取得する．それぞれのテーブルにおいて親指の合計関節角度を参照する際に，加重平均を行うことでより細かな値を求める. R Nがαと(α + β)のどちらにどの程度近いかを考慮して，二つの親指の合計関節角度に対して加重平均を行うことで，離散的な複数のテーブルを連続的なテーブルとして扱う．隠れ指の姿勢推定の際は，現フレームの手の疑横比，手の面積及び手の凸包輪郭線長の値を用いて，図2.11のような三次元のテープルを参照することで親指の合計関節角度を推定する．
2.3 親指合計関節角度基づく隠れ指の姿勢推定法
文献[19]では，親指の合計関節角度と手の面積及び手の凸包輪郭線長による三次元のテーブルを参照することで合計屈曲率を求める手法を提案している．本節では，隠れ指の推定において，親指の合計関節角度を利用することの妥当性の説明，親指の合計関節角度に基づく合計屈曲率の推定及び得られた合計屈曲率による隠れ指の姿勢推定法に関して述べる.
2.3.1 親指挙動に対する手の面積と凸包輪郭線長の関係
本手法では、親指の合計関節角度を利用するため、親指の合計関節角度の変化に対するカメラ画像における手の面積と凸包輪郭線長の変化量に注目する．親指を屈曲させた場合に，カメラ画像における手の面積と凸包輪郭線長がどのように変化するかを調査したところ，図2.12，図2.13のような結果が得られた．図2.12，図2.13は，横軸が親指の合計関節角度，縦軸が親指以外の他の４本の指を固定し，親指を屈曲させていない状態から親指だけを屈曲させた場合の手の面積及び凸包輪郭線長の減少量を示す. 図2.12, 図2.13において分散があるものの，この図に近い結果が得られた．ここで，親指の合計関節角度は，親指が屈曲するにつれて増加する．図2.12，図2.13より，親指の合計関節角度が増加するほど，カメラ画像における手の面積と凸包輪郭線長は減少する関係性があることが分かる．また親指の合計関節角度に対して，カメラ画像における手の面積と凸包輪郭線長の減少量は一意に決まることが分かる．減少量が一意に決まるならば，親指の合計関節角度，手の面積及び手の凸包輪郭線長による合計屈曲率を要素としたの三次元のテーブルを作成し，参照することで，隐れ指の姿勢推定が可能となると考えられる.
2.3.2 親指の合計関節角度ごとの分布表を用いた合計屈曲率の取得
文献[19]の手法では親指の合計関節角度，手の面積，手の凸包輪郭線長による三次元のテーブルを参照することで合計屈曲率を求める．そのため事前に，図2.14のような，合計屈曲率を要素とする，親指の合計関節角度，手の面積及び手の凸包輪郭線長の三次元のテープルを作成する．図2.14のような三次元のテーブルを作成するために，親指の合計関節角度の値ごとに手の面積と手の凸包輪郭線長の二次元のテーブルを作成する．ここで，親指の合計関節角度ごとのテーブルを，例えば，１度，２度，３度と連続で作成するのが理想であるが，現実的ではない．そのため，親指の合計関節角度α度，(α＋β)度，(α＋2β)度のように離散的にテープルを作成しておく．現フレームの親指の合計関節角度をT N度とし, α ≤ T N < (α + β)の場合，α度のテーブルと(α + β)度のテーブルを同時に参照し，二つのテーブルから二つの合計屈曲率を取得する.そして, T N度がα度と(α + β )度のどちらかにどれだけ近いかで，二つの合計屈曲率に対して加重平均を行うことで，離散的だったテーブルを連続的なものとして扱う．隠れ指の姿勢推定の際は，現フレームの親指の合計関節角度，手の面積及び手の凸包輪郭線長の値を用いて，図2.14のような三次元のテープルを参照することで合計屈曲率を推定する.
2.3.3 合計屈曲率に基づく隠れ指の姿勢推定
第2.3.2項で得られた合計屈曲率を用いて，現フレームでの隐れ指の姿勢推定を行う．合計屈曲率は，現フレームの指全ての屈曲度合いを示す．したがって，得られた合計屈曲率の値から，指先が検出されている指の屈曲率を減算する．なお，実際には表2.2に基づいて指の可動範囲を決めている．指のDIP，PIP，MP関節の可動限界の合計値は270度であるため，270度を100％として，指先が検出されている指の屈曲率を決めている．指先が検知されている指の屈曲率を減算した値が，隠れ指の合計屈曲率である．それを，隠れ指の本数で割り，隠れ指に均等に割り振ることで，各隠れ指の屈曲率とする．この屈曲率に基づき隠れ指の姿勢を推定する.
第２章の手法では，手首を動かさないことを前提に，手首を固定した状態でテープルを作成していた．そのため，手首を動かした場合，すなわち手全体の向きを変えた場合には姿勢推定を行えない．そこで本研究では，手首の回転角度ごとのテーブルを比較的大きな間隔で作成し、そのテーブル間を線形補間を行うことで、手首の回転を考慮した手背画像による隠れ指の姿勢推定を行う.
3.1 提案手法の概要
手首の回転を考慮した推定を行うには，手首の傾きに対して小さい間隔でテープルを作ることも考えられるが，推定用のテーブルは操作者ごとに作成する必要があり，操作者を変更する際にはできるだけユーザの負担を少なくしたいため，作成するテーブルの数は最小限に抑えたい．そこで，手は平面に近い形状をしていることから，手首の回転による手の面積及び凸包輪郭線長の変化の仕方に何らかの規則性があるのではないかと考えた．その規則性に基づき，手首の回転に応じて手の面積及び凸包輪郭線長に補正をかけ，従来の手首の傾きがない状態におけるテープルを参照することで，新しくテープルを作成せずに手首の回転を考慮した隠れ指の姿勢推定を行えるのではないかと考え，検証を行った．しかし，手首の回転による手の面積及び手の凸包輪郭線長の変化の仕方には，規則性を見つけ出すことはできなかった．一方で，手首の傾きに対応するためにテープルを１度間隔といった小さい間隔で作成するのではなく、15度、30度と比較的大きい間隔でテーブルを作成し、テーブル間は線形補間を行うことで，離散的なテープルを連続的なものとして扱えないかと考えた．そこで，線形補間を行うことにより生じる誤差がどの程度のものなのかを検証を行ったところ,その誤差は実験システムにおいて許容できる範囲のものであった．したがって，本研究では推定用のテーブルを大きい間隔で作成し，テーブル間は線形補間を行うことで手の姿勢推定を行う手法を提案する.手の三次元空間における傾きは図3.1のように，yaw，roll，pitchにわけられる．x軸を基準とした回転をpitch，y軸を基準とした回転をroll，z軸を基準とした回転をyawとしている．これら三つのうち手の面積及び手の凸包輪郭線長に影響を及ぼすのは，roll，pitchの二つであるため，本研究では，roll及びpitchの値に注目する．
3.2 手首の回転による手の面積及び手の凸包輪郭線長の変化
手首の回転によって，手の面積及び手の凸包輪郭線長が三角関数的な変化をすることを期待して，いくつかの姿勢に対して手首の回転による手の面積及びと凸包輪郭線長の変化を調査した．調査は，親指の合計関節角度を50度で固定したグー，チョキ，パーのような姿勢に対して行った．roll方向は-60度から60度の範囲を1度間隔でデータを取得し，pitch方向は、-50度から50度の範囲を1度間隔でデータを取得した．ただし，roll方向の回転の際は，pitchは0度で固定し，pitch方向の回転を行う際は，rollを0度に固定した状態でそれぞれ調査を行った．調査によって得られたデータをグラフ化したものが図3.2～3.5である．図3.2, 図3.3は，それぞれroll方向の回転による手の面積及び手の凸包輪郭線長の変化を示しており，図3.4，図3.5は，それぞれpitch方向の回転による手の面積及び手の凸包輪郭線長の変化を示している．グラフにおける縦軸は，手の面積もしくは手の凸包輪郭線長の値を表しており，横軸はrollもしくはpitchの回転角度を表している．グラフを考察した結果,手の姿勢及び回転方向による値の変化の仕方には違いがあることが分かったが，規則性を見つけ出すことができなかった．これは，手には厚みはあり，手の姿勢によっては手首の回転によりカメラ画像中において見えてなかった部分が見えるようになる状況が多く存在すためであると考えられる.
3.3 線形補間を行うことで生じる誤差
手首の回転を考慮した隠れ指の推定を行うには，roll及びpitchの値ごとに多数のテープルを作成することで対応できるが，一般家庭での普及を考慮すると，作成するテープル教はできる限り少ないほうが好ましい．そこで，比較的大きい間隔，具体的には30度間隔で離散的にテープルを作成し，テープル間は線形補間を行うことで，そのテープルを連続的なものとして扱い，隠れ指の姿勢を推定できないかと考え，線形補間を行うことにより生じる誤差が許容できるものであるかを検証した．ここで予備実験により，操作者は同じ姿勢を表現しているつもりでも，同じ姿勢を完全に再現することは困難であり，それにより手の面積及び手の凸包輪郭線長の値にずれが生じることが分かった．この値のずれがどの程度のものであるのかを調査するために，手の傾きがない状態で親指の合計関節角度を50度に固定したグー，チョキ，パーの姿勢において，それぞれ50回ずつ手の面積及び手の凸包輪郭線長の値を取得する．50回の平均値を求め，その平均値を手の面積及び手の凸包輪郭線長の真値とする．この真値と各試行における値との差を誤差とし，50回の試行での各姿勢における面積と凸包輪郭線長の誤差の平均値を表3.1に示す．これらの誤差は人間が操作する限り生じてしまうので，許容できる誤差であると考えられる．したがって，間隔の大きなテーブルにおいて線形補問を行うことにより生じる誤差が人の複数回試行における誤差の値よりも小さい値であれば，許容してもよいと考えられる．続いて，親指の合計関節角度を50度に固定したグー，チョキ，パーの姿勢において，roll方向に-60度から60度まで1度間隔で手の面積及び手の凸包輪郭線長の値を取得する場合と，roll方向に-60度，-30度，0度，30度， 60度の30度間隔で手の面積及び手の凸包輪郭線長の値を取得した上で線形補間を行うことで1度間隔の値を求める場合との誤差を調査した．調査によって得られたデータをグラフ化したものが図3.6～3.9である．グラフを考察した結果，視覚的には1度間隔で値を取得した場合と30度間隔で値を取得し線形補間を行った場合の間に大きな違いは無いと感じた．また，-60度から60度までの線形補間を行うことで生じる誤差の平均を表3.2に示す．表3.1と比較すると，全体的に数値は小さいため，線形補間を行うことで生じる誤差は許容できると考えられる．したがって，本研究では手首の回転に対して，30度間隔でテープルを作成し，そのテーブル間は線形補間を行うことで，隠れ指の姿勢推定を行う．

3.4
手首の回転角度ごとのテーブルを用いた隠れ指の姿勢推定
手首の回転を考慮した隠れ指の姿勢推定を行うために，比較的大きい間隔で離散的な推定用のテーブルを作成し，テーブル間は線形補間を行うことで連続的なものとして扱う．そのため，事前に図3.10のようにroll及びpitchの座標系において，30度間隔で図2.14のような親指の合計関節角度を要素とした三次元のテーブルと図2.14のような合計屈曲率を要素とした三次元のテーブルを作成しておく．隐れ指の姿勢推定を行う際は，最初に現在のフレームにおけるroll及びpitchの値より，図3.10の座標系において距離の近い2つの点を決定し，その点におけるテーブルを隠れ指の姿勢推定に用いる．例として， (roll，pitch) = (40, 15)であれば， (30,  0)と(30,  30)の点におけるテーブルを利用する．次に，親指の指先が検知できているかを判定して，検知できている場合は逆運動学により親指の合計関節角度を求める．一方で，親指の指先が隠れてしまっている場合は，手の縦横比，手の面積及び手の凸包輪郭線長を用いることで，2つの点における親指の合計関節角度推定用のテーブルそれぞれで，親指の合計関節角度を求める．得られた２つの親指の合計関節角度に対して線形補間を行うことで，合計屈曲率を求める際に利用する親指の合計関節角度を求める．そして，得られた親指の合計関節角度，手の面積及び手の凸包輪郭線長を用いることで、2つの点における合計屈曲率推定用のテーブルそれぞれで，合計屈曲率を求める．得られた２つの合計屈曲率に対して線形補間を行うことで，隠れ指の姿勢推定に用いる合計屈曲率を求める．そして，得られた合計屈曲率に基づき隠れ指の姿勢推定を行う．図3.10:  roll-pitch座標系における手首の回転角度ごとのテーブル
第３章で述べた提案手法に基づき，実験システムを構築し，評価実験を行うことで，提案手法の妥当性を検証する．実験では，いくつかの手の姿勢における，各関節角度に注目し，推定した値と真値との誤差を調べることで評価を行う.
4.1 実験システム
実験システムはCPU : Pentium(R) Dual-Core CPU E5200 2.50GHzのPC上にC++により実装した．またBUFFALO社製のUSBカメラBSW20K04を使用し画像サイズを640 × 480 pixel (最大30fps)で撮影し，ノイズ除去を320 × 240 pixelにリサイズした画像で行いノイズ除去後再び640 × 480 pixelにリサイズした画像を使用した．カメラで撮影された手背画像より各関節角度を推定した上で，推定角度に基づいてCGの手を表示する．実際に行った実験の様子を図4.1に示す.図4.1:実験の様子
4.2 隠れ指の各関節角度誤差による評価及び考察
本実験では，各関節角度に注目し，推定値と真値の誤差を求めることで評価を行う．真値の取得には，全ての関節角度を取得することができるセンサ付きデータグロープ(Immersion社製のCyberTouch)を用いる．本提案システムによるビジョンベースデータグロープより取得した各姿勢に対する隠れ指の各関節角度と真値を比較する．本実験では，pich =20，roll = -40における，図4.2に示す姿勢について値の比較を行う．
4.2.1 ゲー姿勢に対する隠れ指の各関節角度誤差
グーの姿勢に対する，隠れ指の各関節角度誤差を表4.1〜表4.5に示す．また，表4.6にグーの姿勢での各隠れ指ごとの平均関節角度誤差およびグーの姿勢での隠れ指全体での平均関節角度誤差を示す．ここで，親指以外の隐れ指の推定関節角度が同じになっている．これは，グーの姿勢において親指以外の４本の指の指先がが隠れており，推定によって得られた合計屈曲率を各隠れ指に均等に割り振っているためである．グーの姿勢での各隠れ指の平均関節角度誤差は，16.74度と小さいものとなった．これは，関節角度を推定するために利用した図2.2に示す依存関係が，把特動作を想定して求められているためであると考えられる．つまり，「手を握る」という動作を想定して推定を行っているため，グーの姿勢のように指を大きく屈曲させる姿勢では，高い推定結果が得られたと考えられる．
表4.1:グーの姿勢での親指の各関節角度の誤差
表4.2:グーの姿勢での示指の各関節角度の誤差表4.3:グーの姿勢での中指の各関節角度の誤差表4.4:グーの姿勢での環指の各関節角度の誤差表4.5:グーの姿勢での小指の各関節角度の誤差表4.6:各隠れ指の平均関節角度誤差および姿勢全体での平均関節角度誤差
4.2.2 チョキの姿勢に対する隠れ指の各関節角度誤差
チョキの姿勢に対する，隠れ指の各関節角度誤差を表4.7〜表4.9に示す．また，表4.10にチョキの姿勢での各隠れ指ごとの平均関節角度誤差およびチョキの姿勢での隠れ指全体での平均関節角度誤差を示す.チョキの姿勢では各隠れ指の平均関節角度誤差は，20.35度となった．比較的誤差は小さいが，グーの姿勢と比べると誤差が増加したのは，チョキの姿勢においての隠れ指である環指と小指の姿勢が，把持動作と同じように大きく屈曲した姿勢である一方で，親指は必ずしもグーの姿勢ほど大きく屈曲するとは限らないためであると考えられる.
表4.7:チョキの姿勢での親指の各関節角度の誤差表4.8:チョキの姿勢での環指の各関節角度の誤差
表4.9:チョキの姿勢での小指の各関節角度の誤差
表4.10:各隠れ指の平均関節角度誤差および姿勢全体での平均関節角度誤差
4.2.3 物体(ボール)を把持した姿勢に対する隠れ指の各関節角度誤差
物体(ボール)を把持した姿勢に対する，隠れ指の各関節角度誤差を表4.11〜表4.15に示す．また，表4.16に物体を把持した姿勢での各隐れ指ごとの平均関節角度誤差およびグーの姿勢での隠れ指全体での平均関節角度誤差を示す．物体を把持した姿勢における各隠れ指の平均関節角度誤差は26.76度と他の姿勢と比較すると大きいことが分かった．また，全体的に真値と比べて，推定関節角度が大きい値になっており，より手を屈曲した姿勢が推定されている．これは前述のように，隠れ指の姿勢推定に利用した図2.2，図2.3の依存関係が，把持動作を基準にしているため，グーの姿勢のように大きく屈曲した姿勢が推定されてしまうことが原因であると考えられる．物体(ボール)を把持した姿勢のように，半開きのような姿勢では誤差が大きくなることが予想される.
表4.11:物体を把持した姿勢での親指の各関節角度の誤差
表4.12:物体を把持した姿勢での示指の各関節角度の誤差
表4.13:物体を把持した姿勢での中指の各関節角度の誤差
表4.15:物体を把持した姿勢での小指の各関節角度の誤差

4.2.4 提案手法の妥当性
従来研究である文献[14]における同様の実験結果と比較を行った結果，各姿勢における平均関節角度誤差の値はほとんど変わらなかったため，線形補間を行うことにより生じる誤差は推定精度にさほど影響を与えないことが分かった．したがって，本研究の手首の回転を考虚した隠れ指の推定法は，妥当であると考えられる.
本研究では，手首の回転を考慮した隠れ指の姿勢推定手法を提案した．提案手法では，比較的大きい間隔で手首の回転角度ごとのテーブルを作成し，そのテーブル間は線形補間を行うことで任意の手首方向に対応したシステムを構築した．この手法を用いて評価実験を行った結果，おおむね正しい姿勢が推定できていることが確認できた.今後の課題として，より汎用的な実験システムの構築が考えられる．本研究で提案している手法は，操作者が変わる場合は推定精度を保つためにサンプルデータを取り直しテーブルを作り直す作業が必要であり，実験システムの構築に必要な作業量は非常に多い．このような問題を解決するために，今まで手動で行っていた作業は，できる限りプログラムを用いて自動化で行えるようにすることが考えられる．また，一般家庭での普及を考慮して，将来的には誰の手に対しても対応できる汎用的なテーブルを用意しておき，操作者が変わる場合は，プログラム中の手の大きさや指の長さの値を変更するなどの簡易的なカスタマイズだけで済むようなシステムの構築を目指したい.