未来環境ラボの中口です。ディープラーニングしてますか?
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万円程度と決して安くはないデバイスですが,手軽に使えるので,アイデア次第でいろんな応用が可能です。今は学習済みモデルもたくさん公開されているので,いろいろ組み合わせて遊んでみてはいかがでしょうか。