質問: SPRESENSEで画像認識の機能を実装しており、Arduino IDEのサンプルスケッチnumber_recognition.inoにはNetPBM.h のモノクロ PBMファイルの画像ライブラリ使っています。 もしNeural Network Consoleで学習された3(RBG)x100x100ピクセル入力のクラス分類ネットワークをSPRESENSEに実装したいなら、dnnrt.inputVariable の inputはどうしたらいいですか。 どう考えても、カラー(JPG)画像のライブラリがないとできないようです。 ![画像の説明をここに入力](https://i.stack.imgur.com/hw2o6.jpg)
回答: DNN の画像認識に使う画像データは、JPGではなくRGBのRAWデータを使う必要があります。JPGは圧縮率や画像のささいな違いによって全く異なるデータ列になりますので認識用にも学習用にも使えません。 **1) SPRESENSEのカメラで取得したデータを認識用データとして使いたい場合** この場合、カメラ画像をRGBへ変換する必要がありますが、その処理は次のスライドの13~15ページが参考になると思います。 この例ではYUVからYのデータだけを抜いていますが、このルーチンでYUV->RGB変換をすればカラー画像の入力データとして使えます。 **2) SPRESENSEのカメラで取得したデータを学習用データとして使いたい場合** PNM(NetPBM)フォーマットは非常に簡単なので自作することが簡単にできます。 カメラで取得したデータをSDカードにPNMフォーマットで記録し、PC上でImageMagikなどを使ってPNGに変換すればNNCの学習用データとして活用できます。 以上、ご参考になれば。