Firebase無しでGoogle ML Kitを試す

未来環境ラボの中口です。衝撃です。衝撃。去る5月11日に、毎年様々な技術が発表されるGoogleのイベント、Google I/O 2018にて、Google ML Kitが発表されました。何が衝撃かって、その簡単さです。ML KitはGoogleが提供する機械学習フレームワーク(TensorFlow)や機械学習クラウドサービスをAndroid端末で使うためのSDKで、非常に簡単に機械学習アプリを作ることができます。

本来はFirebaseというクラウドサービスと連携して使うことが想定されていますが、オフラインのみでも動作します。早速サンプルを動作させてみましょう。

Android Studioのインストール

Android用のSDKなので、Android Studioが必要です。最新版をダウンロード、インストールして下さい。

GitHubからサンプルをクローン

Android Studioを起動し、起動画面で[Check out project from Version Control] → [GitHub]を選んで下さい。

サンプルのURLは下記です。

Clone後は様々なサンプルプロジェクトが見えている状態で、他のプロジェクトがビルドに失敗することもあるので、ML Kitだけにしましょう。[File]→[Open]と選択して、quickstart-androidディレクトリ内の、mlkitディレクトリを開いて下さい。

google-services.jsonの作成

mlkitをビルドするには、google-services.jsonというファイルが必要です。mlkitはGoogle Firebaseというサービスの利用を前提としていて、プロジェクトをビルドする際にもFirebaseから取得した設定ファイルがあるか、その内容が正しいかが検証されます。ただし端末上で動作する機能を利用するだけの場合は、下記のファイルを用意すればOKです。mlkitプロジェクトのappディレクトリ内に、google-services.jsonという名前でファイルを作成し、下記内容をペーストして保存して下さい。

{
  "project_info": {
    "project_number": "",
    "firebase_url": "",
    "project_id": "",
    "storage_bucket": ""
  },
  "client": [{
      "client_info": {
        "mobilesdk_app_id": "1:1:android:1",
        "android_client_info": {
          "package_name": "com.google.firebase.samples.apps.mlkit"
        }
      },
      "oauth_client": [],
      "api_key": [{
          "current_key": ""
      }],
      "services": {}
  }],
  "configuration_version": "1"
}

起動!

ではアプリを起動しましょう。PCにスマホを接続し、IDEの上の方にある、緑色の再生ボタンを押して下さい。起動すると、次のような画面が表示されます。

上のLivePreviewActivityが、カメラ映像をリアルタイムで識別するデモです。これを選びます。すると認識画面が表示されます。画面下部の、フォルダのようなアイコンをタップすると、背面カメラか前面カメラ化を切り替えられます。その横の文字列をタップすると、認識モードを切り替えられます。Face Detectionにすると、顔認識が試せます。

うまく動作しています。(写真はフレッシュマンキャンプ2018の記事から)

Google ML Kitは非常に手軽に試せるSDKです。モデルの差し替えや、Googleのクラウドサービスを使うこともできるので、いろいろと遊べそうです。

comments

MacでMovidius : 手軽に使えるディープラーニングスティック

未来環境ラボの中口です。ディープラーニングしてますか?

GoogleやFacebookなど,一部の先進的な企業で導入されだしたディープラーニングも,最近ではライブラリや学習済みモデルが無料で公開され,徐々に一般の開発者にも手が届くものになってきています。昨年度のKCG Awardsでもディープラーニングを使った学生作品が発表され,大きな話題となりました。

どんどん身近な存在になっているディープラーニングですが,実践するにはまだまだ性能の高いコンピュータが必要です。そんな中,昨年夏にIntelがUSBで接続できるディープラーニングスティック,Movidius Nural Computing Stickを発表しました。日本でもすぐに市販され,当初すぐ売り切れたようですが,今はAmazonで1万円ほどで買えます。ディープラーニングに特化したチップが載っていて,PCやRaspberry Piに指すだけで手軽に使えるとあって,今非常に注目されています。

今回はこのMovidiusを,Macから使ってみましょう。

VirtualBoxのインストール

Macから,と言いつつ,いきなりVirtualBoxをインストールします。Movidiusの公式SDKはUbuntu Linuxにしか対応していないので,まずはUbuntuをMac上にインストールします。

ダウンロードページから,最新のVirtualBox(現時点で5.2.8)をダウンロードし,インストールして下さい。Extension Packも忘れずにインストールしておきます。

VMの作成とUbuntuのインストール

まず,Ubuntu 16.04のディスクイメージを入手します。Ubuntu Japanese Teamのダウンロードページから,isoファイルをダウンロードして下さい。

次にVirtualBoxを起動しましょう。起動すると,次のような画面が表示されます。

[新規]を押して,LinuxタイプのVMを作成しましょう。

メモリは2048MBに,ハードディスクは可変サイズにして40GBにしておきましょう(余裕があればより多く確保しても問題ありません)。名前は後でわかりやすいものにしておきましょう。

作成後起動すると,利用するディスクを尋ねられるので,ダウンロードしておいたUbuntuのisoファイルを指定します。

いくつかオプションを選択するとインストールが始まるので,しばし待ちます。

インストールが終わると再起動を求められますが,再起動しても立ち上がってこないので,一旦終了(Power off)します。

Movidiusの仮想マシンへの登録

いよいよMovidiusをMacに接続します。接続は簡単で,開封してUSB端子に挿すだけ。

次にVirtualBoxの仮想マシンの設定画面を開き,ポートのUSB設定で,USB 3.0 (xHCI) コントローラを選択します(Extension Packを入れていないと選択できないので注意)。次にUSB デバイスフィルターの右側の,プラスがついたアイコンをクリックし,Movidiusを選択します。うまく認識されていないと表示されないので,その場合は差しなおしてみて下さい。

OKを押し,仮想マシンを起動して,Guest Additionsをインストールしておきます。

インストールが終わったら,同じDeviceメニューの[Shared Clipboard]から[Bidirectional]も選んで起きましょう。VMをまたいでコピー&ペーストできるようになるので非常に便利です。一旦再起動してターミナルを開き,いよいよMovidius SDKのインストールです。

Movidius SDKのインストール

ターミナルを開いて,次のコマンドを実行します。

sudo apt install git
git clone https://github.com/movidius/ncsdk.git
cd ncsdk
make install

インストールが開始されるので,しばし待ちます。

おわりました。 

次にサンプルを実行してみましょう(この時点ではまだ成功しません)。

make examples

ソースやらモデルやらがダウンロードされ,サンプルの実行が行われます。

が,赤字の2行目のところ,エラーが出て正常に実行できていません。どうもMovidiusが見つからないようです。再びVM設定に行き,USB デバイスフィルターの右側,緑のプラスのついたアイコンをクリックしてみると,何やら謎のデバイスが。

  • Movidius VSC Loopback Device

詳細は不明ですが,Movidiusは状態によって2つの名前を持っているようです。これも追加しておきます。

設定後,sudo rebootと打ち込んでVMを再起動して,起動後に右下のUSBデバイスからMovidiusを選択して下さい(名前が戻ってる・・)。

そしてこの状態からターミナルでmake examplesすると,全てのサンプルが実行できます。

個別にサンプルを実行することも可能です。例えば,次のコマンドを実行してみると,

cd examples/caffe/GoogLeNet/
./run.py

次のような画像が,

無事ギターと判別されるのがわかります。

(当初アコースティックギターの画像を載せていましたが,ソースはエレキギターを参照していましたので修正しました。)

おわりに

だいぶ長くなってしまいましたが,Movidius Neural Stickの使い方を一からざっくり解説しました。1万円程度と決して安くはないデバイスですが,手軽に使えるので,アイデア次第でいろんな応用が可能です。今は学習済みモデルもたくさん公開されているので,いろいろ組み合わせて遊んでみてはいかがでしょうか。

 

 

comments