本記事はこちらの記事の続きです。
独自のデータセット作成について解説します。
データセットの作成
学習用データの計測
- ArduinoのシリアルモニタでrでリセットしてからSPRESENSEを振り、pで軌跡がシリアルモニタに表示される。
- rでリセットして、SPRESENSEを振り、sを押すとデータがcsv形式で保存される。
- 100回ほど上記を繰り返し同じ振り方(例えば8の字)をしてデータを蓄積する。
- lで次のラベルに移る(ファイル名のラベル項が変わる)
- 異なる振り方(例えば丸)を再び100回ほど繰り返す。
- データ収集を終えたら、SDカードからcsvを取り出す。
杖軌跡の通過箇所を1,非通過箇所を0とし、28行、28列のcsvで保存します。
SDカードをパソコンで読み込んでも良いですが、Spresense拡張ボードに実装されているマイクロusbコネクタへ接続するとUSB機器として認識しデータへアクセスすることができ便利です。
データは4桁の数値で構成され、最上位桁がラベル、下位3桁が通し番号です。
アノテーション
- 同じフォルダに
train.csv
とvalid.csv
を作成する。 - ファイルはx,yの2列で構成し、xに計測したcsvファイル名、yにラベル(=csvの最上位桁)を書き、学習するデータとラベルの組み合わせを定義する
csvはexcelやnumbers、googleスプレッドシートなどお好きなソフトで作成してください。
Neural Network Consoleのインストール
- SonyのNeural Network Console Windowsアプリ(以降、NNC)をこちらからダウンロード&インストールする。
NNCで学習の準備
- NNCを起動し、新規プロジェクトを作成、データセット>データセットを開く>データセットを開く をクリック
- 先ほど作成したtrain.csvとvalid.csvを読み込む
NNの作成
- CNN(Convolution Neural Network)を作成する
- プロジェクト>新しいプロジェクトを開く で新しいプロジェクトを作成し、左側メニューから関数をドラッグ&ドロップして以下のように並べる。
- AffineのOutShapeはラベル数となるように設定する。(4つのラベルに分ける場合は4)
この記事とほぼ同じニューラルネットワークで構成・実現していることがお分かりいただけるかと思います。
詳しい内容はこちらをご覧ください。
NNCで学習
- 編集>実行(右上の青いボタン)で学習を実行します。
- 学習が始まると学習曲線が描かれ学習の様子を確認できる
- TrainingCompleted.が表示され、学習が完了したら評価を実行(右上の青ボタン)
- 学習済のモデルでvalidation用のデータセットを使った評価が実行される
- 評価が完了したら混同行列のラジオボタンをクリックし、Accuracyを確認する。
Accuracyの値が低い場合はCNNの設定や学習用のデータ数不足、カテゴリの分類ミスなどが考えられますので見直ししてみてください。
投稿者の人気記事
-
Fooping
さんが
2024/09/13
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する