diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/testsuites/machine_learning/inference/inference_test_suite.c | 147 |
1 files changed, 101 insertions, 46 deletions
diff --git a/test/testsuites/machine_learning/inference/inference_test_suite.c b/test/testsuites/machine_learning/inference/inference_test_suite.c index 6f59ae91..188524d1 100644 --- a/test/testsuites/machine_learning/inference/inference_test_suite.c +++ b/test/testsuites/machine_learning/inference/inference_test_suite.c @@ -51,14 +51,20 @@ "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v1_label.txt" #define IC_TFLITE_WEIGHT_MOBILENET_V1_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v1_224x224.tflite" +#define IC_TFLITE_META_MOBILENET_V1_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v1_224x224.json" #define IC_LABEL_MOBILENET_V2_224_PATH\ "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v2_label.txt" #define IC_TFLITE_WEIGHT_MOBILENET_V2_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v2_224x224.tflite" +#define IC_TFLITE_META_MOBILENET_V2_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_mobilenet_v2_224x224.json" #define IC_LABEL_DENSENET_224_PATH\ "/usr/share/capi-media-vision/models/IC/tflite/ic_densenet_label.txt" #define IC_TFLITE_WEIGHT_DENSENET_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_densenet_224x224.tflite" +#define IC_TFLITE_META_DENSENET_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_densenet_224x224.json" #define IC_LABEL_INCEPTION_RESENET_299_PATH\ "/usr/share/capi-media-vision/models/IC/tflite/ic_densenet_label.txt" #define IC_TFLITE_WEIGHT_INCEPTION_RESENET_299_PATH \ @@ -75,10 +81,14 @@ "/usr/share/capi-media-vision/models/IC/tflite/ic_nasnet_label.txt" #define IC_TFLITE_WEIGHT_NASNET_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_nasnet_224x224.tflite" +#define IC_TFLITE_META_NASNET_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_nasnet_224x224.json" #define IC_LABEL_MNASNET_224_PATH\ "/usr/share/capi-media-vision/models/IC/tflite/ic_mnasnet_label.txt" #define IC_TFLITE_WEIGHT_MNASNET_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_mnasnet_224x224.tflite" +#define IC_TFLITE_META_MNASNET_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_mnasnet_224x224.json" #define IC_LABEL_RESNET_V2_299_PATH\ "/usr/share/capi-media-vision/models/IC/tflite/ic_resnet_v2_label.txt" #define IC_TFLITE_WEIGHT_RESNET_V2_299_PATH \ @@ -87,6 +97,8 @@ "/usr/share/capi-media-vision/models/IC/tflite/ic_squeezenet_label.txt" #define IC_TFLITE_WEIGHT_SQUEEZENET_224_PATH \ "/usr/share/capi-media-vision/models/IC/tflite/ic_squeezenet_224x224.tflite" +#define IC_TFLITE_META_SQUEEZENET_224_PATH \ + "/usr/share/capi-media-vision/models/IC/tflite/ic_squeezenet_224x224.json" #define IC_VIVANTE_LABEL_PATH \ "/usr/share/capi-media-vision/models/IC/vivante/ic_label.txt" @@ -122,14 +134,20 @@ "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v1_ssd_postop_label.txt" #define OD_TFLITE_WEIGHT_MOBILENET_V1_SSD_300_PATH \ "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v1_ssd_postop_300x300.tflite" +#define OD_TFLITE_META_MOBILENET_V1_SSD_300_PATH \ + "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v1_ssd_postop_300x300.json" #define OD_LABEL_MOBILENET_V2_SSD_320_PATH \ "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v2_ssd_label.txt" #define OD_TFLITE_WEIGHT_MOBILENET_V2_SSD_320_PATH \ "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v2_ssd_320x320.tflite" +#define OD_TFLITE_META_MOBILENET_V2_SSD_320_PATH \ + "/usr/share/capi-media-vision/models/OD/tflite/od_mobilenet_v2_ssd_320x320.json" #define OD_LABEL_QUANT_EFFICIENT_PATH \ "/usr/share/capi-media-vision/models/OD/tflite/od_efficientdet_label.txt" #define OD_TFLITE_WEIGHT_QUANT_EFFICIENT_PATH \ "/usr/share/capi-media-vision/models/OD/tflite/od_efficientdet.tflite" +#define OD_TFLITE_META_QUANT_EFFICIENT_PATH \ + "/usr/share/capi-media-vision/models/OD/tflite/od_efficientdet.json" //Face Detection #define FD_TFLITE_WEIGHT_PATH \ @@ -147,10 +165,14 @@ "/usr/share/capi-media-vision/models/FD/tflite/fd_mobilenet_v1_ssd_postop_label.txt" #define FD_TFLITE_WEIGHT_MOBILENET_V1_SSD_300_PATH \ "/usr/share/capi-media-vision/models/FD/tflite/fd_mobilenet_v1_ssd_postop_300x300.tflite" +#define FD_TFLITE_META_MOBILENET_V1_SSD_300_PATH \ + "/usr/share/capi-media-vision/models/FD/tflite/fd_mobilenet_v1_ssd_postop_300x300.json" #define FD_LABEL_BLAZEFACE_128_PATH \ "/usr/share/capi-media-vision/models/FD/tflite/fd_blazeface_front_label.txt" #define FD_TFLITE_WEIGHT_BLAZEFACE_128_PATH \ "/usr/share/capi-media-vision/models/FD/tflite/fd_blazeface_front_128x128.tflite" +#define FD_TFLITE_META_BLAZEFACE_128_PATH \ + "/usr/share/capi-media-vision/models/FD/tflite/fd_blazeface_front_128x128.json" //Facial LandmarkDetection #define FLD_TFLITE_WEIGHT_PATH \ @@ -166,8 +188,12 @@ */ #define FLD_TFLITE_WIEGHT_TWEAKCNN_128_PATH \ "/usr/share/capi-media-vision/models/FLD/tflite/fld_tweakcnn_128x128.tflite" +#define FLD_TFLITE_META_TWEAKCNN_128_PATH \ + "/usr/share/capi-media-vision/models/FLD/tflite/fld_tweakcnn_128x128.json" #define FLD_TFLITE_WIEGHT_MEDIAPIPE_192_PATH \ "/usr/share/capi-media-vision/models/FLD/tflite/fld_mediapipe_192x192.tflite" +#define FLD_TFLITE_META_MEDIAPIPE_192_PATH \ + "/usr/share/capi-media-vision/models/FLD/tflite/fld_mediapipe_192x192.json" //Pose Detection #define PLD_TFLITE_WEIGHT_PATH \ @@ -184,9 +210,13 @@ */ #define PLD_TFLITE_WEIGHT_CPM_192_PATH \ "/usr/share/capi-media-vision/models/PLD/tflite/pld_cpm_192x192.tflite" +#define PLD_TFLITE_META_CPM_192_PATH \ + "/usr/share/capi-media-vision/models/PLD/tflite/pld_cpm_192x192.json" #define PLD_TFLITE_WEIGHT_MOBILENET_V1_POSENET_257_PATH \ "/usr/share/capi-media-vision/models/PLD/tflite/pld_mobilenet_v1_posenet_multi_257x257.tflite" +#define PLD_TFLITE_META_MOBILENET_V1_POSENET_257_PATH \ + "/usr/share/capi-media-vision/models/PLD/tflite/pld_mobilenet_v1_posenet_multi_257x257.json" #define PLD_LABEL_MOBILENET_V1_POSENET_257_PATH \ "/usr/share/capi-media-vision/models/PLD/tflite/pld_mobilenet_v1_posenet_multi_label.txt" @@ -963,16 +993,16 @@ int perform_image_classification() "ARMNN(cpu + Mobilenet)", "ONE(cpu + Mobilenet_Q)", "Vivante(NPU + Inceptionv3)", - "Hosted: TFLite(cpu + Mobilenet V1)", - "Hosted: TFLite(cpu + Mobilenet V2)", - "Hosted: TFLite(cpu + Densenet)", - "Hosted: TFLite(cpu + Inception Resnet)", - "Hosted: TFLite(cpu + Inception V3)", - "Hosted: TFLite(cpu + Inception V4)", - "Hosted: TFLite(cpu + Nasnet)", - "Hosted: TFLite(cpu + Mnasnet)", - "Hosted: TFLite(cpu + Resnet)", - "Hosted: TFLite(cpu + Squeezenet)", + "Hosted[o]: TFLite(cpu + Mobilenet V1)", + "Hosted[o]: TFLite(cpu + Mobilenet V2)", + "Hosted[o]: TFLite(cpu + Densenet)", + "Hosted[x]: TFLite(cpu + Inception Resnet)", + "Hosted[x]: TFLite(cpu + Inception V3)", + "Hosted[x]: TFLite(cpu + Inception V4)", + "Hosted[o]: TFLite(cpu + Nasnet)", + "Hosted[o]: TFLite(cpu + Mnasnet)", + "Hosted[x]: TFLite(cpu + Resnet)", + "Hosted[o]: TFLite(cpu + Squeezenet)", }; int sel_opt = show_menu_linear("Select Action:", names, ARRAY_SIZE(names)); @@ -1002,52 +1032,62 @@ int perform_image_classification() case 6: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_MOBILENET_V1_224_PATH, - IC_LABEL_MOBILENET_V1_224_PATH); + IC_LABEL_MOBILENET_V1_224_PATH, + IC_TFLITE_META_MOBILENET_V1_224_PATH); } break; case 7: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_MOBILENET_V2_224_PATH, - IC_LABEL_MOBILENET_V2_224_PATH); + IC_LABEL_MOBILENET_V2_224_PATH, + IC_TFLITE_META_MOBILENET_V2_224_PATH); } break; case 8: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_DENSENET_224_PATH, - IC_LABEL_DENSENET_224_PATH); + IC_LABEL_DENSENET_224_PATH, + IC_TFLITE_META_DENSENET_224_PATH); } break; case 9: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_INCEPTION_RESENET_299_PATH, - IC_LABEL_INCEPTION_RESENET_299_PATH); + IC_LABEL_INCEPTION_RESENET_299_PATH, + NULL); } break; case 10: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_INCEPTION_V3_299_PATH, - IC_LABEL_INCEPTION_V3_299_PATH); + IC_LABEL_INCEPTION_V3_299_PATH, + NULL); } break; case 11: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_INCEPTION_V4_299_PATH, - IC_LABEL_INCEPTION_V4_299_PATH); + IC_LABEL_INCEPTION_V4_299_PATH, + NULL); } break; case 12: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_NASNET_224_PATH, - IC_LABEL_NASNET_224_PATH); + IC_LABEL_NASNET_224_PATH, + IC_TFLITE_META_NASNET_224_PATH); } break; case 13: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_MNASNET_224_PATH, - IC_LABEL_MNASNET_224_PATH); + IC_LABEL_MNASNET_224_PATH, + IC_TFLITE_META_MOBILENET_V2_224_PATH); } break; case 14: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_RESNET_V2_299_PATH, - IC_LABEL_RESNET_V2_299_PATH); + IC_LABEL_RESNET_V2_299_PATH, + NULL); } break; case 15: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, IC_TFLITE_WEIGHT_SQUEEZENET_224_PATH, - IC_LABEL_SQUEEZENET_224_PATH); + IC_LABEL_SQUEEZENET_224_PATH, + IC_TFLITE_META_SQUEEZENET_224_PATH); } break; } if (err != MEDIA_VISION_ERROR_NONE) { @@ -1192,9 +1232,9 @@ int perform_object_detection() "TFLITE(CPU) + MobileNetV1+SSD", "OPENCV(CPU) + MobileNetV1+SSD", "ARMNN(CPU) + MobileNetV1+SSD", - "Hosted: TFLite(cpu + MobilenetV1+SSD)", - "Hosted: TFLite(cpu + MobilenetV2+SSD)", - "Hosted: TFLite(Quant + EfficientDet)", + "Hosted[o]: TFLite(cpu + MobilenetV1+SSD)", + "Hosted[o]: TFLite(cpu + MobilenetV2+SSD)", + "Hosted[o]: TFLite(Quant + EfficientDet)", }; int sel_opt = show_menu_linear("Select Action:", names, ARRAY_SIZE(names)); @@ -1218,17 +1258,20 @@ int perform_object_detection() case 4: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, OD_TFLITE_WEIGHT_MOBILENET_V1_SSD_300_PATH, - OD_LABEL_MOBILENET_V1_SSD_300_PATH); + OD_LABEL_MOBILENET_V1_SSD_300_PATH, + OD_TFLITE_META_MOBILENET_V1_SSD_300_PATH); } break; case 5: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, OD_TFLITE_WEIGHT_MOBILENET_V2_SSD_320_PATH, - OD_LABEL_MOBILENET_V2_SSD_320_PATH); + OD_LABEL_MOBILENET_V2_SSD_320_PATH, + OD_TFLITE_META_MOBILENET_V2_SSD_320_PATH); } break; case 6: { err = engine_config_user_hosted_tflite_cpu( engine_cfg, OD_TFLITE_WEIGHT_QUANT_EFFICIENT_PATH, - OD_LABEL_QUANT_EFFICIENT_PATH); + OD_LABEL_QUANT_EFFICIENT_PATH, + OD_TFLITE_META_QUANT_EFFICIENT_PATH); } break; } if (err != MEDIA_VISION_ERROR_NONE) { @@ -1355,8 +1398,8 @@ int perform_face_detection() "TFLite(CPU) + MobileNetV1 + SSD", "OPENCV(CPU) + Resnet10 + SSD", "ARMNN(CPU) + MobileNetV1 + SSD", - "Hosted: TFLite(cpu + MobilenetV1+SSD)", - "Hosted: TFLite(cpu + BlazeFace)", + "Hosted[o]: TFLite(cpu + MobilenetV1+SSD)", + "Hosted[o]: TFLite(cpu + BlazeFace)", }; int sel_opt = show_menu_linear("Select Action:", names, ARRAY_SIZE(names)); @@ -1379,11 +1422,13 @@ int perform_face_detection() } break; case 4: { err = engine_config_hosted_tflite_cpu( - engine_cfg, FD_TFLITE_WEIGHT_MOBILENET_V1_SSD_300_PATH); + engine_cfg, FD_TFLITE_WEIGHT_MOBILENET_V1_SSD_300_PATH, + FD_TFLITE_META_MOBILENET_V1_SSD_300_PATH); } break; case 5: { err = engine_config_hosted_tflite_cpu( - engine_cfg, FD_TFLITE_WEIGHT_BLAZEFACE_128_PATH); + engine_cfg, FD_TFLITE_WEIGHT_BLAZEFACE_128_PATH, + FD_TFLITE_META_BLAZEFACE_128_PATH); } break; } if (err != MEDIA_VISION_ERROR_NONE) { @@ -1406,7 +1451,7 @@ int perform_tflite_TweakCNN(mv_engine_config_h handle) const char *outputNodeName[] = { "OUTPUT_TENSOR_NAME" }; RET_IF_FAIL( - engine_config_hosted_tflite_cpu(handle, FLD_TFLITE_WEIGHT_PATH)); + engine_config_hosted_tflite_cpu(handle, FLD_TFLITE_WEIGHT_PATH, NULL)); RET_IF_FAIL(mv_engine_config_set_int_attribute( handle, MV_INFERENCE_INPUT_DATA_TYPE, MV_INFERENCE_DATA_FLOAT32)); RET_IF_FAIL(mv_engine_config_set_double_attribute( @@ -1467,8 +1512,8 @@ int perform_facial_landmark_detection() const char *names[] = { "Tflite(CPU) + TweakCNN", "OPENCV(CPU) + TweakCNN", - "Hosted: TFLite(TweakCNN)", - "Hosted: TFLite(MediaPipe)", + "Hosted[o]: TFLite(TweakCNN)", + "Hosted[o]: TFLite(MediaPipe)", }; int sel_opt = show_menu_linear("Select Action:", names, ARRAY_SIZE(names)); @@ -1488,11 +1533,13 @@ int perform_facial_landmark_detection() } break; case 3: { err = engine_config_hosted_tflite_cpu( - engine_cfg, FLD_TFLITE_WIEGHT_TWEAKCNN_128_PATH); + engine_cfg, FLD_TFLITE_WIEGHT_TWEAKCNN_128_PATH, + FLD_TFLITE_META_TWEAKCNN_128_PATH); } break; case 4: { err = engine_config_hosted_tflite_cpu( - engine_cfg, FLD_TFLITE_WIEGHT_MEDIAPIPE_192_PATH); + engine_cfg, FLD_TFLITE_WIEGHT_MEDIAPIPE_192_PATH, + FLD_TFLITE_META_MEDIAPIPE_192_PATH); } break; } if (err != MEDIA_VISION_ERROR_NONE) { @@ -1510,7 +1557,8 @@ clean_facial_landmark_engine: } int engine_config_hosted_tflite_cpu(mv_engine_config_h handle, - const char *tf_weight) + const char *tf_weight, + const char *meta_file) { RET_IF_FAIL(mv_engine_config_set_string_attribute( handle, MV_INFERENCE_MODEL_WEIGHT_FILE_PATH, tf_weight)); @@ -1518,14 +1566,18 @@ int engine_config_hosted_tflite_cpu(mv_engine_config_h handle, handle, MV_INFERENCE_BACKEND_TYPE, MV_INFERENCE_BACKEND_TFLITE)); RET_IF_FAIL(mv_engine_config_set_int_attribute( handle, MV_INFERENCE_TARGET_TYPE, MV_INFERENCE_TARGET_CPU)); + if (meta_file != NULL) + RET_IF_FAIL(mv_engine_config_set_string_attribute( + handle, MV_INFERENCE_MODEL_META_FILE_PATH, meta_file)); return MEDIA_VISION_ERROR_NONE; } int engine_config_user_hosted_tflite_cpu(mv_engine_config_h handle, const char *tf_weight, - const char *user_file) + const char *user_file, + const char *meta_file) { - RET_IF_FAIL(engine_config_hosted_tflite_cpu(handle, tf_weight)); + RET_IF_FAIL(engine_config_hosted_tflite_cpu(handle, tf_weight, meta_file)); RET_IF_FAIL(mv_engine_config_set_string_attribute( handle, MV_INFERENCE_MODEL_USER_FILE_PATH, user_file)); return MEDIA_VISION_ERROR_NONE; @@ -1537,7 +1589,7 @@ int perform_armnn_cpm_config(mv_engine_config_h handle) const char *outputNodeName[] = { "Convolutional_Pose_Machine/stage_5_out" }; RET_IF_FAIL( - engine_config_hosted_tflite_cpu(handle, PLD_TFLITE_WEIGHT_PATH)); + engine_config_hosted_tflite_cpu(handle, PLD_TFLITE_WEIGHT_PATH, NULL)); RET_IF_FAIL(mv_engine_config_set_int_attribute( handle, MV_INFERENCE_INPUT_DATA_TYPE, MV_INFERENCE_DATA_FLOAT32)); RET_IF_FAIL(mv_engine_config_set_string_attribute( @@ -1567,9 +1619,9 @@ int perform_pose_landmark_detection() mv_engine_config_h engine_cfg = NULL; const char *names[] = { "TFLITE(CPU) + CPM", - "Hosted: TFLITE(CPU) + CPM", - "Hosted: TFLITE(CPU) + MOBILENET_V1_POSENET", - "Hosted: TFLITE(CPU) + INT8_MOVENET", + "Hosted[o]: TFLITE(CPU) + CPM", + "Hosted[o]: TFLITE(CPU) + MOBILENET_V1_POSENET", + "Hosted[x]: TFLITE(CPU) + INT8_MOVENET", }; int sel_opt = show_menu_linear("Select Action:", names, ARRAY_SIZE(names)); @@ -1589,16 +1641,19 @@ int perform_pose_landmark_detection() err = perform_armnn_cpm_config(engine_cfg); } break; case 2: { - err = engine_config_hosted_tflite_cpu(engine_cfg, - PLD_TFLITE_WEIGHT_CPM_192_PATH); + err = engine_config_hosted_tflite_cpu( + engine_cfg, PLD_TFLITE_WEIGHT_CPM_192_PATH, + PLD_TFLITE_META_CPM_192_PATH); } break; case 3: { err = engine_config_hosted_tflite_cpu( - engine_cfg, PLD_TFLITE_WEIGHT_MOBILENET_V1_POSENET_257_PATH); + engine_cfg, PLD_TFLITE_WEIGHT_MOBILENET_V1_POSENET_257_PATH, + PLD_TFLITE_META_MOBILENET_V1_POSENET_257_PATH); } break; case 4: { err = engine_config_hosted_tflite_cpu( - engine_cfg, PLD_TFLITE_WEIGHT_INT8_MOVENET_PATH); + engine_cfg, PLD_TFLITE_WEIGHT_INT8_MOVENET_PATH, + NULL); } break; } if (err != MEDIA_VISION_ERROR_NONE) { |