RESEARCH

研究の動機
・小学生時代ミニ四駆にはまってた。
・中学生時代、某ロボットアニメにはまってた。
・ロボコン見てた。
・エンジニアとか、どんな仕事かよく知らずに憧れてた。
・理系かな?

 上述のような経緯を持つ私は、工学部ならどこでもロボットさわれるよな?作れるよな?的な考えで、岐阜大学工学部に入りました。応用情報学科にしたのは、応用情報学科のホームページにロボットがいたからです。
 まず、大学に入ってびっくりしたのが、プログラムなる存在です。プログラムって何?C言語?え、もしかしてみんな知ってるの?
 かなり、焦りました。半田ごて片手にいろいろ作ると思ってました(まぁ、後々実験の授業がありましたが)。
 そんなこんなありますが、授業をこなしていく中で見出したのが、自分は人工知能が作りたい、ロボットに何かを理解させたい、ということだったのです。 
研究内容
[ジェスチャ認識]
機械とのインターフェース手段の一つとして、ジェスチャー認識を提案したいです。
機械がジェスチャを理解するようになれば、より人間に近づく、人間と密にコミュニケーションをとれる存在になっていくと思います。
2008.5くらい〜: 「こっち来い」,「あっち行け」ジェスチャの研究に従事?
2009.8くらい〜: 「こっち来い」,「あっち行け」ジェスチャの出力方法とかも(例:PC操作)
                       あと、 もっとほかのジェスチャとかも。認識の勉強してちょくちょく色んなジェスチャ増やしていければと
2010.5くらい〜:インタフェースっぽいこと
 
[日常動作の指摘]
日常動作、特に「手」の動きについてちょっと考えます。
「手」:脳が外界と関わるための入出力インタフェース手段
大脳皮質の運動野と感覚野における「手」の神経支配に関わる部分は、ほかの部分と比較にならないほど大きく、「手」は繊細な動きが可能で鋭い感覚を持つ器官
→いろんな表現(ジェスチャ),いろんなタスク(仕事・ヨーヨーetc.)
→日常的に最も使われるもの
→もっとも脳状態(信号伝達)が表現されるもの
→そんな「手」の日常的な動作における左右の利用頻度・利用領域とか調べて両方の手の利用を促せば、有効なリハビリ・作業の効率向上とかにつながるんじゃない?
→そんな「手」を日常的に指摘するようなシステム作りたいな
→ライフログ=常に(カメラが)見てる→必要な時に必要な情報(人の行動)を取り出せるようなシステムとかも面白そう
2010.9〜:本格始動(?)

【研究進捗状況】
指示的手振り動作「こっち来い」、「あっち行け」ジェスチャの認識
インタフェースシステム

指示的手振り動作「こっち来い」、「あっち行け」ジェスチャの認識

§1.どんなジェスチャで攻めるか
 日常的なジェスチャ、っていうと何があるか。
ジェスチャ(Gesture):1.身振り。手振り。手真似。「〜を交えた会話」
              2.思わせぶりな態度。誠実さに欠ける形ばかりの態度。みせかけ。「〜ばかりでやる気がない」
                                                                                    (広辞苑より)

 会話の時とかにも、手って何かしら動いて感情の表現を手助けしてくれている。手は口ほどに物を言うという言葉もあったりなかったり。アイコンタクトしかり、ノンバーバルな表現って、自分のことを相手が理解してくれる感がある。じゃ、これを使ってロボットとコミュニケーションとろうぜ、という話で・・・。
                         
     バイバイ           お手上げ               あれ
 ジェスチャには、こんなのがあります(「日米ジェスチャー辞典」なる面白い本に色々とのってます。また紹介できれば)。 
 で、色々あるなかで「こっち来い」、「あっち行け」ジェスチャなる、似た手振り動作だけど反対の意味を表してるものを攻めることに。
*「こっち来い」、「あっち行け」ジェスチャの特徴
 1.似た動きだけど、人はちゃんと「こっち来い」と呼んでいるのか、「あっち行け」と追い払っているのかわかる。何故?違いが見つかったら面白いじゃん。
 2.自分の使ってるロボットは車両型。指示的な「こっち来い」「あっち行け」で動かせたらいいな、的な。
 3.個性がある
 個性があるっていうのは、それを内包しようと研究しがいが出てくるんじゃないか。
 まぁそんなわけで、何気ないけど奥深い(?)、「こっち来い」、「あっち行け」ジェスチャについて研究していく事となりました。
                    
 *目標はこんな感じでコミュニケーションが取れれば!?


§2.「こっち来い」ジェスチャと「あっち行け」ジェスチャの違い
 正面から見ると・・・。
a) 「こっち来い」ジェスチャ(正面方向)動画     b) 「あっち行け」ジェスチャ(正面方向)動画   
 わかります。でも、何が違うの?と言われたら困る。返答は、「何となく」、「フィーリング」といったものではないか?
                                                                   (もっとも、この段階で「ここが違うじゃん!」と言われたら自分が困ります)
 いつまでも眺めていては研究できない。いつまでも眺めていても何も得られない。さて、どうするか。
 ↓こうしました
a)「こっち来い」ジェスチャ(横方向)動画         b) 「あっち行け」ジェスチャ(横方向)動画  
 このように横方向から見ることで、3次元的な手の動きが観測されます。
で、こんな感じ↓にモーションキャプチャで手振り動作をを解析します。
a) 撮影動画     b) 解析動画 
 何人かの手振り動作を調べた結果
 ・「こっち来い」,「あっち行け」は手首の周期運動(1振り約0.5s)⇔周波数解析で手振り周波数成分のパワーを見れば周期運動の検出できるんじゃない?
 ・振り方に個性がある(縦振りや斜め振り、振る回数)
 ・「こっち来い」ジェスチャでは、女性は肘を曲げる傾向があるような、ないような。
                     男性は肘を伸ばす傾向があるような、ないような。
 *手首の角速度の時間変化に違いがある。
  「こっち来い」ジェスチャでは、「来い!」と手を下に振る時が速い
  「あっち行け」ジェスチャでは、「行け!」と手を上に払う時が速い
                              ⇒基本周波と2次高調波の位相の違いで判別できるんじゃない?
 以上、認識の大前提「こっち来い」、「あっち行け」ジェスチャの違いが見つかりました。(これが見つからなければ研究はここで打ち切りだったのでは・・・?)

§3.周波数解析による指示内容の判別
 「こっち来い」、「あっち行け」ジェスチャの違いが、速度変化の違いとして発見されました。
簡単に変化の違いをモデルにしてしまうと
       
                     (変化モデルA)                                                   (変化モデルB)     
この2つのモデルの違いが「こっち来い」、「あっち行け」ジェスチャの違い(見る人が見れば、すぐに「あぁ、位相が違うんじゃん」というところ)。
周波数成分に分解して、どんな周波数の波形がどんな大きさで入って、上の波形ができているのかを下図で示します

                                  (変化モデルA)                                                                (変化モデルB)
 波形の歪み方の違い(山が右に寄ったり、左に寄ったり)は、その波形を構成している基本周波に対して2次高調波がどのような位置(位相)で加算されるか、という、2波長間の位相差で表すことができる。
と、いうことで「こっち来い」、「あっち行け」ジェスチャの判別に用いることとします。
 周波数解析で周期的な特徴を使っているので差分のような2点の変化ではなく、全体の変化を捉えられます。人っていい加減(手ブレがあったり)だから有効。

§4.正面への拡張(?)
 手首の角速度変化に違いがあることが分かった。でも、ジェスチャは相手の正面を向いて行うもの。手首角度が正面方向から観測される特徴とどう対応しているか。
そういった考えのもとこんな感じに
                                   
 こんな感じに横方向でしか観測できない手首角度といった特徴を正面方向画像に対応させました(とりあえず今は面積Sを手首角度に対応した特徴として用います)。
当たり前?でも、手首角度意識しないと、面積はただの面積。そんなただの面積に手首角度の概念を入れているので拡張なる言葉を使わせてもらいました。

§5.手領域の楕円近似特徴の利用
 上のセクションにて、面積を手振り動作の特徴としていたけど、「縦振り」、「ひねったりしなくて横幅一定」っていう仮定で成り立つような特徴。実際は・・・


こんな感じ。「こっち来い」、「あっち行け」って、特に教えられて行うようなジェスチャではなく、日常的なジェスチャである手振り動作では個性が存在。同じ表現の手振り動作であっても、人によって手振り方向が違ったりする。でも、手首を支点とした手振り動作であることには違いがなく、「こっち」「あっち」は手振り速度の変化タイミングの違いで表現。
そんなわけで
           
           入力画像           手領域の楕円近似
手振り方向の特徴を、手領域を楕円近似して得られる楕円特徴(軸・傾き)から求めることで、個性による手振り方向の違いに対処。
で、
                           
図の緑線で示される手振り方向に対応した特徴として、楕円長軸長=手振り方向の大きさを示す「手振りベクトル」が求められる。
「こっち来い」;下方向に手を振るときが早い→急に「手振りベクトル」が大きくなって、ゆっくり「手振りベクトル」が小さくなる
「あっち行け」;上方向に手を振るとき早い→ゆっくり「手振りベクトル」が大きくなって、急に「手振りベクトル」が小さくなる

§6.手振り動作認識アルゴリズム
1)肌色情報から手領域を抽出(←ここが1,2を争う不安要素。でも、そんな不安を解決する技術が研究室にあったりします。)
2)手領域から手振り特徴抽出(楕円近似、手振りベクトル取得)
3)サンプリング(約1.5秒)⇒周波数解析
4)周波数成分の大きさ(手振りをしているなら、特定の周波数(手振り周波数)の成分がそれ以外の周波数成分よりも大きくなる)、を用いて手振り検出
5)手振り検出されたら、基本周波と2次高調波の位相から「こっち来い」、「あっち行け」ジェスチャを判別
 今のところ、手振り3回分の1.5秒でサンプリング。でも、実際手振りって1,2回くらいしない(相手が動かなければひたすらやり続けるか、諦めるか・・・)。でも、サンプル減らしたら周波数解析の意味が・・・。まだまだ今後の課題で。

§7.結果
 現段階(2009.12)では、こんな感じです。
認識動画   
*恣意的感が否めませんが、そこらへんも今後の課題です。

インタフェースシステム

「こっち来い」、「あっち行け」という手振り動作を認識して動くロボットシステムを構築しました。
この指示的な手振り動作の認識手法は、同様な動きから、その速度変化の違いを周波数成分から認識できることを示している。そこで、「こっち来い」、「あっち行け」のように方向性を示す手振り動作である「ページめくり」、「ページはらい」というページ繰り動作の認識に適応し、PCインタフェースシステムとして構築した。

§1.ページ繰り動作
 ページ繰り動作は、手を1振りする間の振り方(速度変化のタイミング)の違いによって「次のページへ進む」、「前のページに戻る」といった反対の指示内容を表現する手振り動作です。
まぁ、タッチパネルで指をスッと動かして画面をスライドさせるのを、カメラ使って非接触にやってやろう、ということです。
手振りによるパワーポイントのスライド操作例

§2.ついでに指の本数も

 ちょっとした要請で、指の本数でチャンネルが変えられるようにっていうものがあり、現状こんな感じになってます。(背景や指の出し方を見てわかるように、できるようにできてる感じです)
  

§3.実装にあたって
 「指の本数、手振り動作とか認識できる〜」、と言っていますが、これをやっている背景を見てもらうとわかるとおり単純背景です。色で手を取り出して、認識処理につなげてます。
と、いうことは手が取り出せないと始まらないわけです(もっと違う特徴考えていかないとなぁ・・・)。
さて、本研究室では近赤外領域における肌という素材の反射特性を使って肌領域の抽出を行う近赤外肌検出法の研究がされています。この手法は、目に見えない2種類の近赤外光(870nmと970nm)を照射して、その2波長間における肌の反射特性の違い(肌は870nmの光の方が970nmより反射しやすい=各々の波長の光を照射したときに得られる2枚の照射画像において、肌領域の輝度値は870nmの方が970nmのときより高くなる)から、2枚の照射画像間の差分をとることで、その性質を検出=肌という素材を抽出します。
                      
                  870nmImage                    970nmImage                         Result

§4.PCインタフェースシステム
 と、いうことで下のようなもの作ってみました。
         
    指の本数で画面が切り替わる                           手振り中                 手振りの方向性で画面がスライド
指の本数でチャンネル切り替え
手振り動作で画面をスライド