産業グレードでファンレスのお手軽AI開発キット、工場などの現場で即運用可能:AI開発キット
「AI CORE Xスターターキット」は、購入して電源を入れるだけで即使えるなど、画像を用いたAIをお手軽に試せる開発キットだ。お手軽なだけでなく、AI開発キットとしての機能もかなり高度で、ディープラーニングの学習やプロトタイピングにとどまらず、PoC、そして最終製品に組み込むAIアプリケーションの開発も可能。ハードウェアが産業グレードかつファンレスなので、工場などの現場でそのままAIを試すこともできる。
V-net AAEONが提供する「AI CORE Xスターターキット」は、IntelのVPU(Vision Processing Unit)「Myriad X」と、高性能なコンピュータビジョンやディープラーニングを開発できる「OpenVINOツールキット」により、画像を用いたAI(人工知能)をお手軽に試せる開発キットである。
何がお手軽かといえば、購入して電源を入れるだけで即使える(ソフトウェアのインストールすら不要)という点であって、AI開発キットとしてできることそのものはかなり高度である。加えて、Myriad Xにより低消費電力ながら高い性能を発揮するため、ディープラーニングの学習やプロトタイピングにとどまらず、PoC(概念実証)、そして最終製品に組み込むAIアプリケーションの開発すら可能である。
産業グレード構成で完全ファンレスのハードウェア
ハードウェアは、AAEONの「UPS-GWS01」に、同じくAAEONの「AI Core X」モジュールを組み合わせたものだ。他にフルHDの映像を撮影できる500万画素のWebカメラも付属する。本体は産業グレードの構成で、筐体で放熱する構造になっており、完全にファンレスで動作する。ちなみに国内修理対応で1年保証もついている。ユーザーが用意する必要があるのは、モニター、キーボード(日本語キーボードを推奨)、マウス、イーサネットケーブル(1000BASE-T対応)くらいだ。
「AI CORE Xスターターキット」のハードウェアの外観。今回評価した機材は「Atom x7-E3950」搭載で、メモリ容量は4GB、ストレージ容量は64GB。なおWi-Fiは未搭載。(左)Powerスイッチはなし(右にあるのは電源オンのLED)。DisplayPortとHDMIのどちらでも使える。(右)筐体背面にもUSB 3.0端子の他、USB 3.0 OTG端子も用意されている(クリックで拡大)
使い方は簡単で、モニター、キーボード、マウス、イーサネットケーブル、Webカメラをつないだら、付属のACアダプターを電源に挿すだけである。すぐに、OSであるUbuntu 18.04のデスクトップが立ち上がるはずだ。筆者は表示画面サイズだけフルHDに切り替えた。これで準備は完了である。
(左)「AI CORE Xスターターキット」の電源を入れて最初に起動した時の表示画面。この画面でプログラムを書いてテストを行うこともできるが、さすがにちょっと狭い。(右)フルHDに変更した後の表示画面。エディタでプログラムを編集しながら実行して結果を確認するのであれば、この位あると便利。“Show application”(画面左下にある9つの点のアイコン)→“Settings”→“Display”→“Resolution”で簡単に変更できる(クリックで拡大)
AIアプリケーションを簡単に開発できる
AI CORE Xスターターキットについては、JellyWareがこのキットを使った具体的なアプリケーション開発を学習できるWebサイト(https://jellyware.jp/aicorex/)を開設している。ここからは、同Webサイトにある3つの学習コンテンツについて、AI CORE XスターターキットでどのようにAIを開発できるのかを説明したいと思う。
なお、全ての例で、サンプルコードを適当なエディタを使って記述し、~/workplaceの下に適当なファイル名で保存後、それをTerminalから実行する形になっている。例えば、サンプルコードの保存名が「test1.py」なら「python3 test1.py」で実行できる。また、エディタについては、Webサイトで推奨しているようにテキストエディタで良いかと思う。筆者は「emacs 25」を別途インストールして利用した。
(1)Inference Engineでランドマーク回帰
取得した顔画像に対して、両目、鼻、口の左右端の位置を推定して出力する、というアプリケーションである。サンプルコードを利用して、6枚の入力画像に対してそれぞれ出力されたランドマークの位置推定結果が以下の写真だ。左下の若い男性の右目の位置だけ少しずれている気もするが、おおむね正しく認識されている。
なお、このアプリケーションは1人分の顔画像にしか対応できないので、複数人の場合は次の「(2)Inference Engineで顔検出」と組み合わせる必要がある。
(2)Inference Engineで顔検出
画像全体から、複数人の顔の位置を抽出するアプリケーションである。入力画像から出力された、顔領域の認識結果が以下の写真だ。顔の向きや、背景などに左右されずにきちんと顔の位置が認識できている。ここから、(1)のランドマーク回帰を利用すれば顔の角度を推定することなども可能になるだろう。
(3)Model Optimizer活用の画像分類
(1)と(2)は、Intelが提供する学習済モデルを使った例だが、世の中にはそれ以外のディープラーニングの学習済みモデルが多数存在する。これをどうやってOpenVINOで扱うかというと、「Model Optimizer」と呼ばれるツールを使って、その学習済みモデルをOpenVINOで扱えるIR形式に変換してやる必要がある。
今回は「Caffe」を利用した分類ネットワークの1つで、特に軽量であることを特徴とした「SqueezeNet1.1」をOpenVINOで扱ってみることにする。
Model Optimizerによる変換手順や、それを呼び出すためのプログラムなどは、上記のWebサイトに詳細な説明がある。実際にやってみると、ペルシャ猫のサンプル画像で試してみると8割ほどの確率で分類できた。この入力画像だとフレームレートは約50fpsと非常に速い。
付属のUSBカメラで筆者の愛猫を撮影した画像だと、照明の関係で色の判断が難しいのかエジプシャンと誤認識(本当はただの茶白)したり、逆光のためにシルエットで認識を試みたのか「ノルウェジアンかジャーマンシェパード」(実際はただのキジトラ)となったりした。これは、照明が暗いことや、猫以外のものが多く映っていることなど、撮影環境に問題があるのであって、別にネットワークそのものに問題はない。ちなみに、この環境でも平均25fpsほどの処理速度を実現しており、消費電力は9.7W前後に収まっていた。
これら(1)〜(3)のAIアプリケーションを動作させるまでにかかった時間はそれぞれ30分未満だった。もちろん、最終製品に組み込むとなると、いろいろとプログラムの構造から見直す必要があるかもしれない。しかし、トレーニングやPoCの構築であれば、このAI CORE Xスターターキットを使うことで、高いと思われがちなAI開発のハードルを大幅に下げられると思う。
また、ハードウェアが小型かつ産業グレードでファンレスということを考えれば、開発したAIアプリケーションを組み込んだ状態で、工場などの現場にそのまま持って行って活用するという使い方にも適しているのではないだろうか。興味がある方はぜひお試しいただきたい。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:V-net AAEON株式会社
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2020年7月25日