「Edge ImpulseでSpresense用の物体検出モデル作成(その1)」に引き続き、Edge ImpulseでSpresenseのカメラ画像を使ったAIモデルを作成します。ここでは物体検出を行うために、物体検出モデルを作成して、作成した物体検出モデルをArduino用としてDeployします。
Impulse design
Edge Impulseの左側メニューから「Impulse design」の「Create impulse」を選択し、次のデータを設定して「Save Impulse」ボタンをクリックします。
- Image dataで「Image w」と「Image h」をそれぞれ「160」、「Resize mode」を「Fit shortest」に設定する
- Imageを選択して「Add」ボタンを押す
- Object Detection (Images)を選択して「Add」ボタンを押す
Edge Impulseの左側メニューから「Impulse design」の「Image 」を選択し、「Generat features」タブを選択し、「Generat features」ボタンをクリックします。「Feature explorer」により学習データのクラスタ状態を確認します。
Edge Impulseの左側メニューから「Impulse design」の「Obuject detection」を選択し、「Start training」ボタンをクリックすると学習が開始されます。終了すると次のように「Confusion matrix」が表示され学習結果が表示されます。
Model testing
Edge Impulseの左側メニューから「Model testing」を選択し、学習状況をtest学習データを使用して確認します。次のように正確度とその分布が表示されます。
Deployment
Edge Impulseの左側メニューから「Impulse design」の「Deployment」を選択し、次のように「arduino」を選択して「Build」ボタンをクリックします。
Arduino libraryとして学習モデルが作成され、次のようにスケッチ例を含むzip形式のファイルとしてダウンロードされます。
Arduino IDEでzip形式のArduino librarを展開すると、ライブラリ「tomosoft-project-1_inferencing」がフォルダ「libraries」に作成されます。
G:\DOCUMENT\ARDUINO\LIBRARIES\TOMOSOFT-PROJECT-1_INFERENCING
│ library.properties
│ neda
│
├─examples
│ ├─nano_ble33_sense_accelerometer
│ │ nano_ble33_sense_accelerometer.ino
│ │
│ ├─nano_ble33_sense_accelerometer_continuous
│ │ nano_ble33_sense_accelerometer_continuous.ino
│ │
│ ├─nano_ble33_sense_camera
│ │ nano_ble33_sense_camera.ino
│ │
│ ├─nano_ble33_sense_microphone
│ │ nano_ble33_sense_microphone.ino
│ │
│ ├─nano_ble33_sense_microphone_continuous
│ │ nano_ble33_sense_microphone_continuous.ino
│ │
│ ├─nicla_sense_inference
│ │ nicla_sense_inference.ino
│ │
│ ├─nicla_vision_fusion
│ │ nicla_vision_fusion.ino
│ │
│ ├─nicla_vision_microphone
│ │ nicla_vision_microphone.ino
│ │
│ ├─nicla_vision_microphone_continuous
│ │ nicla_vision_microphone_continuous.ino
│ │
│ ├─portenta_h7_camera
│ │ portenta_h7_camera.ino
│ │
│ ├─portenta_h7_microphone
│ │ portenta_h7_microphone.ino
│ │
│ ├─portenta_h7_microphone_continuous
│ │ portenta_h7_microphone_continuous.ino
│ │
│ └─static_buffer
│ static_buffer.ino
│
└─src
│ tomosoft-project-1_inferencing.h
│
├─edge-impulse-sdk
│ │ .gitignore
│ │ sources.txt
│ │
│ ├─anomaly
│ │ anomaly.h
│ │
│ ├─classifier
│ │ │ ei_aligned_malloc.h
│ │ │ ei_classifier_config.h
│ │ │ ei_classifier_smooth.h
・・・・
│ │
│ └─third_party
│ ├─flatbuffers
│ │ │ LICENSE.txt
│ │ │
│ │ └─include
│ │ └─flatbuffers
│ │ base.h
│ │ flatbuffers.h
│ │ flexbuffers.h
│ │ stl_emulation.h
│ │ util.h
│ │
│ ├─gemmlowp
│ │ │ LICENSE
│ │ │
│ │ ├─fixedpoint
│ │ │ fixedpoint.h
│ │ │ fixedpoint_neon.h
│ │ │ fixedpoint_sse.h
│ │ │
│ │ └─internal
│ │ detect_platform.h
│ │
│ └─ruy
│ └─ruy
│ └─profiler
│ instrumentation.h
│
├─model-parameters
│ dsp_blocks.h
│ model_metadata.h
│ model_variables.h
│
└─tflite-model
trained_model_compiled.cpp
trained_model_compiled.h






