Deep Learningによるハンドサイン画像認識デモ 解説 (第二回)

「ビッグデータEXPO東京 2015春」に展示しました「Deep Learningを利用したハンドサイン画像認識のデモ」について、全三回に分けて解説します。
 今回は第二回です。デモアプリケーションについて解説です。

by NagasawaKazuki 2015/04/27



はじめに

ISPは、2015年3月12日(木)、13日(金)にザ・プリンスパークタワー東京で開催された「ビッグデータEXPO 東京」に出展しました。
ブースでは「Deep Learningを利用したハンドサイン画像認識のデモ」と「Deep Learningスターターキット」を展示し、多くの方に来訪していただきました。
本連載では、ブースで展示していました「Deep Learningを利用したハンドサイン画像認識のデモ」について、技術的な内容を含めて全三回に分けて解説します。

本記事は連載の第二回目となっています。
[第一回]Deep Learningとは、デモ概要、ハードウェア構成
[第二回]デモアプリケーション (本記事)
[第三回]ハンドサイン画像の学習、当日の様子

デモアプリケーション

デモアプリケーションのスクリーンショットは以下のようになっています。

screen1

一画面に表示されていますが、アプリケーションとしては画面左 (カメラ画像とグラフ) の『ハンドサイン画像認識アプリケーション』と画面右の『キャラクタ表示アプリケーション』に分かれています。

ハンドサイン画像認識アプリケーション

『ハンドサイン画像認識アプリケーション』はPython + OpenCV + Caffe で実装されています。ブース上部に取り付けられたWebカメラからの映像 (動画ではなく、連続的な静止画) をDeep Learningの学習結果に基づいてリアルタイムで認識し、画面への表示や、画面下のグラフへの反映を行います。上記画面では、指2本のハンドサインを認識し、カメラ画像上への結果表示とグラフへの反映がされています。
認識結果に基づいてグラフの棒が伸び、高い値となったハンドサインに対応したコマンドを『キャラクタ表示アプリケーション』に送信します。

※ OpenCV:オープンソースのコンピュータビジョン向けミドルウェア。
※ Caffe:Berkeley Vision and Learning Center 開発のDeep Learningフレームワーク。

キャラクタ表示アプリケーション

『キャラクタ表示アプリケーション』はUnityで実装されています。Unityの公式キャラクタが『ハンドサイン画像認識アプリケーション』からのコマンドに反応して特定のポーズを取ります。上記画面では、指2本のハンドサインのコマンドに反応して、キャラクタがスマイルポーズをしています。
こちらのアプリケーションはハンドサイン認識と直接関係なかったのですが、結果的に来場者の注目を集めることができました。

実装ポイント

アプリケーションの繋ぎこみ

今回のデモアプリケーションはPythonで実装された『ハンドサイン画像認識アプリケーション』とUnityで実装された『キャラクタ表示アプリケーション』に分かれていて、Python側アプリケーションからUnity側アプリケーションにイベントを送信する必要がありました。
今回のデモでは、

  • Python側 … ミドルウェア「xaut」を利用し、特定のアプリケーションにキーボードイベントを送信できるようにする。
  • Unity側 … キーボードイベントを受け付け、特定のキーでキャラクタが動作させる。

ようにして、結果的にハンドサインでキャラクタを操作させることができる形としました。

インタラクティブな反応

デモアプリケーション作成当初、キャラクタへのコマンド送信は次のルールとしていました。

  1. 画像認識結果で「背景」以外が認識されたらグラフへの反映開始。
  2. 認識結果に応じてグラフの棒が伸びる。
  3. 手が離され、認識結果で「背景」が認識されたら、グラフの一番高い値のコマンドを送信。
  4. コマンド送信後、グラフをリセットして(1)に戻る。

しかし、上記ではコマンド送信に時間がかかり、デモ自体に時間がかかってしまうことから次の様に変更しました。

  • 手が離されなくても、グラフの棒が最大値になったらコマンド送信。

これにより、以前より『キャラクタを操作している感じ』が出るようになり、デモの操作性が良くなりました。

まとめ

本記事では、ビッグデータEXPOにて展示したデモのアプリケーションについて解説しました。
Deep Learningのデモとしては、画面左の『ハンドサイン画像認識アプリケーション』だけだったのですが、その結果を『キャラクタ表示アプリケーション』で反応させることで周りの注目を得る事ができ、デモとしては大成功でした。

次回は第三回、最終回です。デモアプリケーションの核となっている、ハンドサイン画像の学習について解説します。

Deep Learningによるハンドサイン画像認識デモ 解説 (第三回)



今回のデモアプリケーションでは、キャラクターとして「ユニティちゃん」を使用しています。

このコンテンツは、『ユニティちゃんライセンス』で提供されています。