あの「Intel Movidius Myriad VPU」を採用!!
リアルタイム画像認識を実践!! UP square + AI Coreでディープラーニング推論
基本的なサンプルで動作確認
NCSDKが正常にインストールされているか確かめるには、NCSDKに含まれているTensorFlowのInception v3を使った画像認識・分類のサンプルを試してみるといい。Inception v3は学習済みモデルが提供されており、NCSDKのインストール時に学習済みモデルのダウンロードとコンパイルが実行済みとなっている。
次のようにコマンドを入力してみよう。
$ cd ~/ncsdk/examples/tensorflow/inception_v3
$ python3 run.py
特にエラーなく画面写真のように表示されれば成功で、NCSDKのインストールに問題ないことが分かる。
このサンプルでは、次の画面写真のようなエレクトリックギターが写っている静止画を読み込み、そのオブジェクトをInception v3を使って機械学習による認識を行っている。
いよいよ実践、Webカメラを使った画像認識を実行してみる
続いて同じくInception v3を使ったリアルタイム画像解析を行ってみよう。AI Coreの威力により動画に対してもおおむねリアルタイムで画像解析を行なえる。
そのために、Intelが用意してくれているアプリケーションセット「Neural Compute Application Zoo」(NC App Zoo)を利用する。
インストールの方法は先のNCSDKとほとんど同じだ。ホームディレクトリーにgitを使ってクローンを作成する。
$ cd
$ git clone -b ncsdk2 https://github.com/movidius/ncappzoo.git && cd ncappzoo && make
インストールにはかなりの時間がかかる。光回線でも1時間以上はかかるだろう。コマンドの実行が終わるまでしばらく待ってほしい。
インストール後、~/ncappzoo/apps/の下にさまざまに活用、改変、再利用できるMovidiusを利用したアプリケーションが格納されている。今回はその中から、カメラから取り込んだ動画をリアルタイムで画像解析するlive-image-classifierを使ってみた。
実行にはWebカメラが必要なので、UP SquareのUSBポートにWebカメラを取り付けておく。live-image-classifierは、モデルとしてAlexNetなどが選択できるよう作成されているが、今回は先に利用したInception v3を使って実行する例を紹介しておく。
次のようにコマンドを実行しよう。
$ cd ~/ncappzoo/apps/live-image-classifier
$ python3 live-image-classifier.py --graph ../../tensorflow/inception/model/v3/graph --labels ../../tensorflow/inception/model/v3/label.txt --mean 127.5 --scale 0.00789 --dim 299 299 --colormode="RGB"
画面上にカメラの画像がポップアップするはずだ。カメラを動かして何かを写してみてほしい。写ったものがInception v3で認識できるものであれば、端末上にその名前が出力されるはずだ。
UP Square+AI Coreでは約1/3秒(300ms)前後で認識できていた。10cm四方程度のコンピューターでおおむねリアルタイムといえる画像認識ができている様子を見ると、なかなか感動する。これもAI Coreのパワーがあってこそだろう。
以上、本稿では出来合いのコードと学習済みモデルを利用した例に留めるが、AI Coreが搭載しているNCSDKのAPIなどについては公式サイトを参照するといいだろう。
本稿でインストールしたNCSDK付属サンプルおよびNC App ZooのコードとAPIのマニュアルを参照すればAI Coreの活用法はさほど困難なく理解できるはずだ。また、前述のようにネット上ではNCSDK v1のコードが主流だが、NCSDK v1と同v2の違いや移行方法も公式サイトにある。ぜひチェックしてUP Square+AI Coreを活用していただきたい。
(提供:V-net AAEON)
週刊アスキーの最新情報を購読しよう