これまで、裏(?)でUnlimited Handのセンサーから指の状態を取得することを試みてきましたが、うまくいかなかったので、はやりの機械学習を取り込んでいい感じに判断してもらおうとした試みです。

使用する機械学習のフレームワークはTensorFlow(※)になります。Android - Unlimited HandをBluetoothで接続し、Unlimited Handからの情報をリアルタイムでAndroidに組み込んが推論ロジックにより指の状態を感知することが最終目標です。
※ TensorFlow: Google社が公開している機械学習のフレームワーク

全体の流れとしては、以下のような感じを予定しています。
  1. TensorFlowのインストール(Linux on Windows)
  2. MNISTをベースにした学習コード
  3. Androidに学習結果を取り込む+センサー値から指の状態を推測させる
今回はその1ということで、上記の「TensorFlowのインストール(Linux on Windows)」になります。
  1. Linux on Windowsを有効にする
  2. コントロールパネルから「プログラムと機能」を選択


    「プログラムと機能」の左端にあるリンク「Windowsの機能の有効化または無効化」を選択


    「Windowsの機能の有効化または無効化」で「Windows Subsystem for Linux(Beta)」を見つけ出し、チェックを入れてOKボタンを選択


    Windowsキー + Rキーを押下することで「ファイル名を指定して実行」が表示されるので、「名前(O):」欄に"bash"と入力して、OKボタンを選択
    こうするとBashが起動されて、Linuxコマンドを実行できるようになります。ちなみにWindows上のフォルダは"/mnt/[ドライブ]"(例: Cドライブ = /mnt/c/)にマウントされます。


  3. TensorFlowをインストール
  4. 今回はPythonからTensorFlowを使用するだけに絞ります。
    ※ AndroidからTensorFlowを使用した学習(学習結果を使用した推論はGoogleが公開しているライブラリを組み込むことで環境がなくても可能)がやりたい場合はBazelを使用した環境が必要になりますが、「Linux on Windows」上では動作しませんでした。

    インストール手順は「Installing TensorFlow on Ubuntu」に従います。
    特にvirtualenvを使用した「Installing with virtualenv」がおすすめです。
    1. インストールに必要なプログラムをapt-getでインストール
    2. sudo apt-get install python-pip python-dev python-virtualenv

    3. Python向け仮想環境(virtualenv)を作成。
    4. virtualenv --system-site-packages targetDirectory --python=[使用したPythonのバイナリ]
      自分がインストールしたときは後述するPython 3.4向けのWheelファイル以外インストールが成功しなかったので、virtualenvもPython 3.4で構築しました
    5. Python向け仮想環境を有効にする
    6. source [virtualenv実行時に"--system-site-packages"で指定したディレクトリへのパス]/bin/activate
    7. pipからTensorFlowをインストール
    8. Python 2.7を使用する場合:pip install --upgrade tensorflow
      Python 3.Xを使用する場合:pip3 install --upgrade tensorflow
      自分はここで失敗したので、Wheelファイルを直接指定することにしました。
      Python 2.7を使用する場合:pip install --upgrade [WheelファイルのURL]
      Python 3.Xを使用する場合:pip3 install --upgrade [WheelファイルのURL]
      上記の"WheelファイルのURL"はこちらから自分の環境にあったWheelファイルのURLを取得して指定してください。
      自分はWheelファイルを使用しても、Python 3.4向けの仮想環境以外インストールできませんでした。
    9. 動作を確認してみる
    10. インストールが成功したら、Python向け仮想環境が有効な状態で、以下のように試してエラーが発生しないことを確認してみてください。
      $ python
      >>> import tensorflow as tf
      
次回はTensorFlowでサンプルとして用意されているMNISTを改造して作成したセンサー値から指の状態を推論するための学習方法について記載します。
ただし、機械学習の勉強も兼ねているので、成功しない可能性が高いですorz

コメントの投稿