SPRESENSE x Neural Network Consoleを触ってみる　第1回〜SPRESENSの紹介と全体の構成〜

この記事は[Yahoo! JAPAN 18 新卒 Advent Calendar 2018](https://adventar.org/calendars/3388) 20日目の記事です。
前回はKatsuaki Takagiさんの「[Windows10でkubeflowを導入しようとした話](https://qiita.com/Clip-glass/items/1b62d5ffbefd82dfb099)」でした。


#記事の概要
Sonyが発売したボード「SPRESENSE」と「Neural Network Console」を合わせて使ってみます。

連載記事で4回お送りします。
第1回はSPRESENSの紹介と全体の流れについて書きます。

#自己紹介
18新卒のハッピー佐藤と申します。
普段は「電車遅延」や「ウォッチしている商品の出品時」などにPush通知やメール配信をするシステムの開発の仕事をしています。

オープンコラボレーションスペース「[LODGE](https://lodge.yahoo.co.jp)」で、社員にレーザーカッターやUVプリンターを教える「FABスペースインストラクター」もやっております。
ぜひLODGEにも遊びにきてください！

SPRESENSE USER GROUPを立ち上げましたので、ご興味がありましたらご参加ください。（会社・業務とは無関係です）
毎月もくもく会を行っています。
[Facebook](https://www.facebook.com/groups/2145058999069915/)
[Connpass](https://sug.connpass.com/)
![様子](http://drive.google.com/uc?export=view&id=1MeUauIzt8VY7j_7NPAZxXc4iyd1jPH-H)



#SPRESENSEの紹介
外観はこんな感じです。
フリスクサイズです。
![外観](https://static.developer.sony.com/images/image/v6/s3/uploads/2018/03/spresense_main_board_top.jpg?size=1200xAUTO&v=766364&jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb2N1cyI6eyJ4IjowLjUsInkiOjAuNX0sInNyYyI6Ii91cGxvYWRzLzIwMTgvMDMvc3ByZXNlbnNlX21haW5fYm9hcmRfdG9wLmpwZyIsImFsdF90ZXh0IjoiU3ByZXNlbnNlIE1haW4gQm9hcmQgVG9wIiwiaW1hZ2VfaWQiOjc2NjM2NCwic2VydmljZSI6ImF3cy1zMyIsImF3c19idWNrZXQiOiJzb255ZHctcHJvZC1zdGF0aWMtYXNzZXRzIiwid2hpdGVsaXN0U2l6ZXMiOlsiMTIwMHhBVVRPIiwiMTAweDY1IiwiMTAweEFVVE8iLCIxMTB4ODIiLCI3NTB4QVVUTyIsIjEwMDB4QVVUTyIsIjEyMDB4QVVUTyIsIjEyMDB4ODAwIiwiMTkyMHhBVVRPIiwiMTkyMHgxMDAwIiwiMjAweDE1MCIsIjIyNXgxNzAiLCIyMjV4QVVUTyIsIjIyOXgzMDAiLCIzNjh4QVVUTyIsIjQ1MHgzNDAiLCI1MDB4QVVUTyIsIjc1MHg1MDAiLCI3eDEwIiwiN3gxMiIsIjd4MTYiLCI3eDMiLCI3eDQiLCI3eDUiLCI3eDYiLCI3eDciLCI3eDgiLCI3eDkiXSwiaW1hZ2VWZXJzaW9uIjoidjYiLCJleHAiOjE5MDQ2ODgwMDAwMDB9.2Eqtmk2v7YugbvJZX1DobzL0uFGZyvlo1lqdTBsfC78)
写真は[公式ページ](https://developer.sony.com/ja/develop/spresense/)より 


とても魅力的なボードなのでメリットを伝えきれる自信がありませんが、まとめてみます！

##主な特徴

### ハイレゾが録音・再生できる！
192 kHz/24bit ハイレゾリューションオーディオコーデックを搭載しております！
8チャンネルマイク入力もあり、マイクアレイを組んだりミキサーを作ることも簡単にできます。

### 高精度GPS搭載！
準天頂衛星みちびきに対応しています。
内蔵のアンテナで公称2mほどの精度を持っています。
アンテナの外付けにも対応しており、公式のデベロッパーガイドが改造の[解説](https://developer.sony.com/ja/develop/spresense/developer-tools/hardware-documentation#_gnss%E7%94%A8%E5%A4%96%E9%83%A8%E3%82%A2%E3%83%B3%E3%83%86%E3%83%8A%E3%81%AE%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95)を行っています。

### ニューラルネットで推論ができる！
[Neural Network Console](https://dl.sony.com/ja/)で学習したモデルを組み込み、推論を行うことができます。
なんとARM Cortex-M4Fが6つ載ってます。
本連載はこの機能を使ってみることが主題です。


### 消費電力が低い！
こんなに高機能ですが乾電池2本で動きます。

### その他の特徴
* Arduino IDEのほか様々な開発環境が使える
* カメラモジュールを始め、拡張パーツが発売されている
* デザインが良い

#用意したもの
### SPRESENSE本体
インターネットや店頭で購入できます。
価格は6000円程です。
### エクステンションボード 
ヘッドフォンジャックなど拡張がされます。
開発に便利です。
### コンデンサマイク（[秋月](http://akizukidenshi.com/catalog/g/gP-08181/)で購入）
安いマイク(50円)を用意しました。
[付属の回路図](http://akizukidenshi.com/download/ds/spl/XCM6035-2022-354PR.PDF)を参考に実装しています。
![用意したもの](http://drive.google.com/uc?export=view&id=1yHPKiZRAuGtv1HyO46UFTbWz8PV3K5YQ)


#お題「ドライヤーの動作モードを音から推測する」
ドライヤーが温風で動いているか、冷風で動いているかを判別してみます。
最終目標は音から周囲で何が起きているのか判別する装置です。
まずはこのお題で聞き分けを行ってみます。

# 今後の予定
次のような流れで連載していく予定です。

**1. 学習用のデータを用意するスケッチを書く(第2回)**

　マイク入力をPCMで出力し、Neural Network Consoleで扱える形式のCSVをmicroSDに書き出すスケッチを書きます。
　放置しておくと自動で連番CSVを作り続けます。


**２. Neural Network Consoleで学習をする(第3回)**

　データをもとにNeural Network ConsoleのWindows版を用いて学習モデルを作ります。
　CNN（Convolutional Neural Network）を用いる予定です。
　この分野は詳しくないので、頑張ります。　

**３. SPRESENSEで推論する(第4回)**

　学習モデルはNNB(NNabla C Runtime file format)という形式で書き出されます。
　これを用いてSPRESENSEの上で推論をします。

# おわりに
波形を解析すれば判別できる課題ですが、今回はSPRESENSEでNeural Network Consoleを使ってみることを楽しみます。
詳しい方からみると至らぬ点もあると思いますが、優しい目で見守ってやってください。

###**次回もお楽しみに！**