平成30年12月25日(水) にソニーシティ大崎で行われたで行われた
「ソニーのSPRESENSEで低消費電力で動く人工知能を体験してみようハンズオン」
に参加してきました。この講習会はSPRESENSEで、低消費電力で動く人工知能を体験してみようということで、Neural Network ConsoleでAIのプログラミングの仕方から、そのプログラムをSPRENSENSEで動かすところまで体験してきました。
仕様機器
SPRESENSE
拡張ボード CXD5602PWBMAIN1
カメラボード CXD5602PWBCAM1
モニターAdafruit 2.2TFT Display
sdカード
Neural Network Console
SPRESENSEについて
SPRESENSE™は、ソニーが開発したスマートセンシングプロセッサー(CXD5602)が搭載されたIoT向けボードコンピュータです。低消費電力というのが特徴で、低消費電力でありながらGPS受信機能と、ウォークマンの開発で培ったハイレゾリューション・オーディオコーデックを搭載しています。さらに、Spresense は、メインボード上に、Add-on ボードと呼ばれる小さな基板が接続できるようになっています。”Bluetooth” や “Wi-Fi” などの通信モジュール、様々なセンサーモジュールの Add-on ボードを活用することにすることによって、IoTアプリケーションの幅は大きく広がっていくようになっています。
Neural Network Consoleについて
Neural Network Console(NNC)はソニーが開発した、プログラミングなしにディープラーニングを実装できるツールです。
対応OSはWindows8.1以降、クラウド版であればMacでも使用でき、多少の制限はありますが基本的には無償で利用できます。
ドラッグ&ドロップでネットワークを作成でき、入力層や中間層、出力層、活性化関数などネットワークを構成する要素はブロックで表現されていて、このブロックをつなげることにより簡単にネットワークを作成できました。
このような感じで、SPRESENSEとNNCの説明が行われ、次にディープラーニングについての説明が行われました。
ディープラーニングについては詳しい書籍やサイトがたくさんあるのでここで言及することは避けます。
ハンズオン
ハンズオンでは、SPRESENSEのカメラを使用して、じゃんけんの判定をさせるということを行いました。
まずNNCを利用して、じゃんけんの手の形を学習させます。学習したデータはnnbファイルという形で出力され、nnbデータの中身はネットワーク情報と学習したパラメータになっています。
このnnbデータをSPRESENSEのSDカードに書き込み、SPRESENSEから読み込むことで、学習結果をロードする。
SPRESENSEのカメラのPreviewコールバックでイメージを取得し輝度の抽出とリサイズをして、認識用のイメージを作成する。
このイメージを比較することにより、じゃんけんの手の形(グー、チョキ、パー)を判定させました。
結果
MacとSPRESENSEとの接続ケーブルの相性があるようでSDカードへのnnbファイルの書き込みに少々手間取りましたが、じゃんけんの判別ができました。
感想
じゃんけんの判別では少しだけ遅延を感じましたが、NNCを使用して学習したデータをSPRESENSEで利用することによって、ほぼノンコーディングで判定ができる可能性を感じました。
ArduinoIDEだけではなくて、ビジュアルスタジオ、Python、Javaと開発環境も充実し、拡張ボードを利用すると機能的にも、もりもりになるので、IoTの試作用にはこれから重宝しそうです。
参考文献等
足立 悠著 ソニー開発のNeural Network Console入門 株式会社リックテレコム 2018年