「SensiML Analytics Studioによる機械学習」で機械学習した動作認識モデルをQuickLogic Featherに組み込み、Quickfeather development kit上のaccelerometerを平行移動・上下移動をさせて、動作の認識ができることを確認します。
- 「SensiML Analytics Studioによる機械学習」でダウンロードした動作認識モデルのフォルダ「knowledgepack_project」を「Quickfeather Simple Streaming Interface AI Application Project」のフォルダ「qf_ssi_ai_app\knowledgepack」の内容と置き換えます。
- 次のマクロで認識モードに変更します。
- 次のようにプログラムを変更し、認識した動作に従って、停止は「緑」、上下は「青」、水平移動は「赤」でLEDを点灯させます。
- 変更したプログラムをコンパイルして実行すると、つぎのメッセージがシリアル端末に表示されます。「”Classification”:」に認識した動作のID番号が表示され、対応する色のLEDが表示されます。
sensor_ssss.h
… /* Settings for the sensor processing modes, Enable only one of these mode */ #define SENSOR_SSSS_RECOG_ENABLED 1 /* Enable SensiML recognition */ #define SENSOR_SSSS_LIVESTREAM_ENABLED 0 /* Enable live-streaming for data collection */ …
sml_output.c
… kb_get_feature_vector(model, sensor_ssss_ai_fv_arr, &sensor_ssss_ai_fv_len); //**tomo switch((int)classification){ case 1: HAL_GPIO_Write(GPIO_5, 0); //green LED HAL_GPIO_Write(GPIO_4, 0); //blue LED HAL_GPIO_Write(GPIO_6, 1); //red LED break; case 2: HAL_GPIO_Write(GPIO_6, 0); //red LED HAL_GPIO_Write(GPIO_4, 0); //blue LED HAL_GPIO_Write(GPIO_5, 1); //green LED break; case 3: HAL_GPIO_Write(GPIO_5, 0); //green LED HAL_GPIO_Write(GPIO_6, 0); //red LED HAL_GPIO_Write(GPIO_4, 1); //blue LED break; default: break; } count = snprintf(sensor_ssss_ai_result_buf, buflen, …
{"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[101,1]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[107,1]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[165,2]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[135,1]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[118,2]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[105,2]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[145,0]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[172,4]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[123,1]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[169,3]} {"ModelNumber":0,"Classification":1,"FeatureLength":2,"FeatureVector":[148,2]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[65,0]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[5,2]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[75,7]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[137,77]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[152,146]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[87,177]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[38,125]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[83,88]} {"ModelNumber":0,"Classification":3,"FeatureLength":2,"FeatureVector":[163,105]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[41,6]} {"ModelNumber":0,"Classification":2,"FeatureLength":2,"FeatureVector":[1,1