From: Priya Kohli Date: Mon, 21 Sep 2020 11:34:10 +0000 (+0530) Subject: [ITC][media-vision][ACR-1599][Add mv_inference_pose_get_label() and change mv_inferen... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cd5fba4965fa91ce8c712ff25f08bf68783b7249;p=test%2Ftct%2Fnative%2Fapi.git [ITC][media-vision][ACR-1599][Add mv_inference_pose_get_label() and change mv_inference_pose_landmark_detected_cb()] Change-Id: I4f07be8833b6f9fad85961c6746228aa52356257 Signed-off-by: Priya Kohli --- diff --git a/src/itc/media-vision/ITs-media-vision-inference.c b/src/itc/media-vision/ITs-media-vision-inference.c index 373261bdd..ae3d7318c 100644 --- a/src/itc/media-vision/ITs-media-vision-inference.c +++ b/src/itc/media-vision/ITs-media-vision-inference.c @@ -25,6 +25,7 @@ bool g_bIsGetPoseLandmark; int g_nNumberOfLandmarks; int g_nNumberOfPoses; float g_PoseCompareScore; +int g_nLabel; #define IC_MODEL_FILENAME "ic_tflite_model.tflite" #define IC_LABEL_FILENAME "ic_label.txt" @@ -606,10 +607,10 @@ static bool SupportedInferenceCB( /** * @function PoseLandmarkDetectedCB * @description Callback Function - * @parameter mv_source_h source, mv_inference_pose_result_h locations, int label, void *user_data + * @parameter mv_source_h source, mv_inference_pose_result_h locations, void *user_data * @return NA */ -static void PoseLandmarkDetectedCB(mv_source_h source, mv_inference_pose_result_h locations, int label, void *user_data) +static void PoseLandmarkDetectedCB(mv_source_h source, mv_inference_pose_result_h locations, void *user_data) { #if DEBUG FPRINTF("[Line : %d][%s] Inside PoseLandmarkDetectedCB callback \\n", __LINE__, API_NAMESPACE); @@ -620,10 +621,10 @@ static void PoseLandmarkDetectedCB(mv_source_h source, mv_inference_pose_result_ /** * @function GetPoseLandmarkDetectedResultCB * @description Callback Function - * @parameter mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data + * @parameter mv_source_h source, mv_inference_pose_result_h result, void *user_data * @return NA */ -static void GetPoseLandmarkDetectedResultCB(mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data) +static void GetPoseLandmarkDetectedResultCB(mv_source_h source, mv_inference_pose_result_h result, void *user_data) { #if DEBUG FPRINTF("[Line : %d][%s] Inside GetPoseLandmarkDetectedResultCB callback \\n", __LINE__, API_NAMESPACE); @@ -635,10 +636,10 @@ static void GetPoseLandmarkDetectedResultCB(mv_source_h source, mv_inference_pos /** * @function GetNumberOfLandmarksCB * @description Callback Function - * @parameter mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data + * @parameter mv_source_h source, mv_inference_pose_result_h result, void *user_data * @return NA */ -static void GetNumberOfLandmarksCB(mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data) +static void GetNumberOfLandmarksCB(mv_source_h source, mv_inference_pose_result_h result, void *user_data) { #if DEBUG FPRINTF("[Line : %d][%s] Inside GetNumberOfLandmarksCB callback \\n", __LINE__, API_NAMESPACE); @@ -651,10 +652,10 @@ static void GetNumberOfLandmarksCB(mv_source_h source, mv_inference_pose_result_ /** * @function GetLandmarkCB * @description Callback Function - * @parameter mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data + * @parameter mv_source_h source, mv_inference_pose_result_h result, void *user_data * @return NA */ -static void GetLandmarkCB(mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data) +static void GetLandmarkCB(mv_source_h source, mv_inference_pose_result_h result, void *user_data) { #if DEBUG FPRINTF("[Line : %d][%s] Inside GetLandmarkCB callback \\n", __LINE__, API_NAMESPACE); @@ -705,13 +706,35 @@ static void GetLandmarkCB(mv_source_h source, mv_inference_pose_result_h result, } } +/** + * @function GetPoseCB + * @description Callback Function + * @parameter mv_source_h source, mv_inference_pose_result_h result, void *user_data + * @return NA + */ +static void GetPoseCB(mv_source_h source, mv_inference_pose_result_h result, void *user_data) +{ +#if DEBUG + FPRINTF("[Line : %d][%s] Inside GetPoseCB callback \\n", __LINE__, API_NAMESPACE); +#endif + g_CallBackHit = true; + g_nRetVal = mv_inference_pose_get_number_of_poses(result, &g_nNumberOfPoses); + if (g_nRetVal != MEDIA_VISION_ERROR_NONE) + return; + + if (g_nNumberOfPoses <= 0) + return; + + g_nRetVal = mv_inference_pose_get_label(result, 0, &g_nLabel); +} + /** * @function PoseCompareCB * @description Callback Function - * @parameter mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data + * @parameter mv_source_h source, mv_inference_pose_result_h result, void *user_data * @return NA */ -static void PoseCompareCB(mv_source_h source, mv_inference_pose_result_h result, int label, void *user_data) +static void PoseCompareCB(mv_source_h source, mv_inference_pose_result_h result, void *user_data) { #if DEBUG FPRINTF("[Line : %d][%s] Inside PoseCompareCB callback \\n", __LINE__, API_NAMESPACE); @@ -1400,6 +1423,61 @@ int ITc_mediavision_mv_inference_get_landmark_p(void) return 0; } +/** + * @testcase ITc_mediavision_mv_inference_pose_get_label_p + * @author SRID(priya.kohli) + * @reviewer SRID(shobhit.v) + * @type auto + * @since_tizen 6.0 + * @description Gets a label of a pose + * @scenario Gets a label of a pose + * @apicovered mv_inference_pose_get_label + * @passcase If mv_inference_pose_get_label and Precondition API's returns MEDIA_VISION_ERROR_NONE + * @failcase If Precondition API or Target API Fails + * @precondition NA + * @postcondition NA + * */ +//& type: auto +//& purpose: To get label of a pose. +int ITc_mediavision_mv_inference_pose_get_label_p(void) +{ + START_TEST_INFERENCE; + int nRet = -1; + char pszImageFileName[PATHLEN]; + + nRet = SetPoseLandmarkDetectionEngineConfig(gEngineConfigHandle); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, nRet, "SetPoseLandmarkDetectionEngineConfig", MediaVisionGetError(nRet)); + + nRet = mv_inference_configure(gInferenceHandle, gEngineConfigHandle); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, nRet, "mv_inference_configure", MediaVisionGetError(nRet)); + + nRet = mv_inference_prepare(gInferenceHandle); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, nRet, "mv_inference_prepare", MediaVisionGetError(nRet)); + + snprintf(pszImageFileName, PATHLEN, "%s/images/%s", gInferenceExampleDir, "poseLandmark.jpg"); + nRet = LoadImageToMediaSOurce(pszImageFileName, gSourceHandle); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, nRet, "LoadImageToMediaSOurce", MediaVisionGetError(nRet)); + + g_CallBackHit = false; + + nRet = mv_inference_pose_landmark_detect(gSourceHandle, gInferenceHandle, NULL, GetPoseCB, NULL); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, nRet, "mv_inference_pose_landmark_detect", MediaVisionGetError(nRet)); + PRINT_RESULT(true, g_CallBackHit, "mv_inference_pose_landmark_detect", MediaVisionGetError(nRet)); + PRINT_RESULT(MEDIA_VISION_ERROR_NONE, g_nRetVal, "mv_inference_pose_landmark_detect", MediaVisionGetError(nRet)); + if(g_nNumberOfPoses <= 0) + { + FPRINTF("[Line : %d][%s] Invalid value of g_nNumberOfPoses, g_nNumberOfPoses = %d \\n", __LINE__, API_NAMESPACE, g_nNumberOfPoses); + return 1; + } + if(g_nLabel >= 0) + { + FPRINTF("[Line : %d][%s] Invalid value of g_nLabel, g_nLabel = %d \\n", __LINE__, API_NAMESPACE, g_nLabel); + return 1; + } + + return 0; +} + /** * @testcase ITc_mediavision_mv_pose_create_destroy_p * @author SRID(priya.kohli) diff --git a/src/itc/media-vision/res/inference/models/pld_mocap_mapping.txt b/src/itc/media-vision/res/inference/models/pld_mocap_mapping.txt index c6b27f67e..07ce1a209 100644 --- a/src/itc/media-vision/res/inference/models/pld_mocap_mapping.txt +++ b/src/itc/media-vision/res/inference/models/pld_mocap_mapping.txt @@ -1,15 +1,15 @@ -Hips,9 -Neck,1 -Head,0 -LeftUpArm,6 -LeftLowArm,7 -LeftHand,8 -RightUpArm,3 -RightLowArm,4 -RightHand,5 -LeftUpLeg,13 -LeftLowLeg,14 -LeftFoot,15 -RightUpLeg,10 -RightLowLeg,11 -RightFoot,12 +Hips,10 +Neck,2 +Head,1 +LeftUpArm,7 +LeftLowArm,8 +LeftHand,9 +RightUpArm,4 +RightLowArm,5 +RightHand,6 +LeftUpLeg,14 +LeftLowLeg,15 +LeftFoot,16 +RightUpLeg,11 +RightLowLeg,12 +RightFoot,13 diff --git a/src/itc/media-vision/tct-media-vision-native_mobile.h b/src/itc/media-vision/tct-media-vision-native_mobile.h index 6ca4c32f8..a46cb1802 100755 --- a/src/itc/media-vision/tct-media-vision-native_mobile.h +++ b/src/itc/media-vision/tct-media-vision-native_mobile.h @@ -84,6 +84,7 @@ extern int ITc_mediavision_mv_inference_pose_landmark_detect_p(void); extern int ITc_mediavision_mv_inference_get_number_of_poses_p(void); extern int ITc_mediavision_mv_inference_get_number_of_landmarks_p(void); extern int ITc_mediavision_mv_inference_get_landmark_p(void); +extern int ITc_mediavision_mv_inference_pose_get_label_p(void); extern int ITc_mediavision_mv_pose_create_destroy_p(void); extern int ITc_mediavision_mv_pose_set_from_file_p(void); extern int ITc_mediavision_mv_pose_compare_p(void); @@ -124,7 +125,7 @@ testcase tc_array[] = { {"ITc_mv_surveillance_get_event_trigger_type_p",ITc_mv_surveillance_get_event_trigger_type_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, {"ITc_mv_surveillance_set_get_event_trigger_roi_p",ITc_mv_surveillance_set_get_event_trigger_roi_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, {"ITc_mv_surveillance_push_source_p",ITc_mv_surveillance_push_source_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, -{"ITc_mv_surveillance_subscribe_unsubscribe_event_get_result_value_p",ITc_mv_surveillance_subscribe_unsubscribe_event_get_result_value_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, + {"ITc_mv_surveillance_subscribe_unsubscribe_event_get_result_value_p",ITc_mv_surveillance_subscribe_unsubscribe_event_get_result_value_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, {"ITc_mv_surveillance_foreach_supported_event_type_p",ITc_mv_surveillance_foreach_supported_event_type_p,ITs_media_vision_surveillance_startup,ITs_media_vision_surveillance_cleanup}, {"ITc_mv_barcode_generate_source_p",ITc_mv_barcode_generate_source_p,ITs_media_vision_barcode_startup,ITs_media_vision_barcode_cleanup}, {"ITc_mv_barcode_generate_image_p",ITc_mv_barcode_generate_image_p,ITs_media_vision_barcode_startup,ITs_media_vision_barcode_cleanup}, @@ -142,6 +143,7 @@ testcase tc_array[] = { {"ITc_mediavision_mv_inference_get_number_of_poses_p",ITc_mediavision_mv_inference_get_number_of_poses_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_number_of_landmarks_p",ITc_mediavision_mv_inference_get_number_of_landmarks_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_landmark_p",ITc_mediavision_mv_inference_get_landmark_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, + {"ITc_mediavision_mv_inference_pose_get_label_p",ITc_mediavision_mv_inference_pose_get_label_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_create_destroy_p",ITc_mediavision_mv_pose_create_destroy_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_set_from_file_p",ITc_mediavision_mv_pose_set_from_file_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_compare_p",ITc_mediavision_mv_pose_compare_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, diff --git a/src/itc/media-vision/tct-media-vision-native_tizeniot.h b/src/itc/media-vision/tct-media-vision-native_tizeniot.h index c3efdf49f..ea40c564e 100755 --- a/src/itc/media-vision/tct-media-vision-native_tizeniot.h +++ b/src/itc/media-vision/tct-media-vision-native_tizeniot.h @@ -84,6 +84,7 @@ extern int ITc_mediavision_mv_inference_pose_landmark_detect_p(void); extern int ITc_mediavision_mv_inference_get_number_of_poses_p(void); extern int ITc_mediavision_mv_inference_get_number_of_landmarks_p(void); extern int ITc_mediavision_mv_inference_get_landmark_p(void); +extern int ITc_mediavision_mv_inference_pose_get_label_p(void); extern int ITc_mediavision_mv_pose_create_destroy_p(void); extern int ITc_mediavision_mv_pose_set_from_file_p(void); extern int ITc_mediavision_mv_pose_compare_p(void); @@ -142,6 +143,7 @@ testcase tc_array[] = { {"ITc_mediavision_mv_inference_get_number_of_poses_p",ITc_mediavision_mv_inference_get_number_of_poses_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_number_of_landmarks_p",ITc_mediavision_mv_inference_get_number_of_landmarks_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_landmark_p",ITc_mediavision_mv_inference_get_landmark_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, + {"ITc_mediavision_mv_inference_pose_get_label_p",ITc_mediavision_mv_inference_pose_get_label_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_create_destroy_p",ITc_mediavision_mv_pose_create_destroy_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_set_from_file_p",ITc_mediavision_mv_pose_set_from_file_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_compare_p",ITc_mediavision_mv_pose_compare_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, diff --git a/src/itc/media-vision/tct-media-vision-native_tv.h b/src/itc/media-vision/tct-media-vision-native_tv.h index 6ca4c32f8..72f2f0818 100755 --- a/src/itc/media-vision/tct-media-vision-native_tv.h +++ b/src/itc/media-vision/tct-media-vision-native_tv.h @@ -84,6 +84,7 @@ extern int ITc_mediavision_mv_inference_pose_landmark_detect_p(void); extern int ITc_mediavision_mv_inference_get_number_of_poses_p(void); extern int ITc_mediavision_mv_inference_get_number_of_landmarks_p(void); extern int ITc_mediavision_mv_inference_get_landmark_p(void); +extern int ITc_mediavision_mv_inference_pose_get_label_p(void); extern int ITc_mediavision_mv_pose_create_destroy_p(void); extern int ITc_mediavision_mv_pose_set_from_file_p(void); extern int ITc_mediavision_mv_pose_compare_p(void); @@ -142,6 +143,7 @@ testcase tc_array[] = { {"ITc_mediavision_mv_inference_get_number_of_poses_p",ITc_mediavision_mv_inference_get_number_of_poses_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_number_of_landmarks_p",ITc_mediavision_mv_inference_get_number_of_landmarks_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_landmark_p",ITc_mediavision_mv_inference_get_landmark_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, + {"ITc_mediavision_mv_inference_pose_get_label_p",ITc_mediavision_mv_inference_pose_get_label_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_create_destroy_p",ITc_mediavision_mv_pose_create_destroy_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_set_from_file_p",ITc_mediavision_mv_pose_set_from_file_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_compare_p",ITc_mediavision_mv_pose_compare_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, diff --git a/src/itc/media-vision/tct-media-vision-native_wearable.h b/src/itc/media-vision/tct-media-vision-native_wearable.h index c3efdf49f..ea40c564e 100755 --- a/src/itc/media-vision/tct-media-vision-native_wearable.h +++ b/src/itc/media-vision/tct-media-vision-native_wearable.h @@ -84,6 +84,7 @@ extern int ITc_mediavision_mv_inference_pose_landmark_detect_p(void); extern int ITc_mediavision_mv_inference_get_number_of_poses_p(void); extern int ITc_mediavision_mv_inference_get_number_of_landmarks_p(void); extern int ITc_mediavision_mv_inference_get_landmark_p(void); +extern int ITc_mediavision_mv_inference_pose_get_label_p(void); extern int ITc_mediavision_mv_pose_create_destroy_p(void); extern int ITc_mediavision_mv_pose_set_from_file_p(void); extern int ITc_mediavision_mv_pose_compare_p(void); @@ -142,6 +143,7 @@ testcase tc_array[] = { {"ITc_mediavision_mv_inference_get_number_of_poses_p",ITc_mediavision_mv_inference_get_number_of_poses_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_number_of_landmarks_p",ITc_mediavision_mv_inference_get_number_of_landmarks_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_inference_get_landmark_p",ITc_mediavision_mv_inference_get_landmark_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, + {"ITc_mediavision_mv_inference_pose_get_label_p",ITc_mediavision_mv_inference_pose_get_label_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_create_destroy_p",ITc_mediavision_mv_pose_create_destroy_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_set_from_file_p",ITc_mediavision_mv_pose_set_from_file_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup}, {"ITc_mediavision_mv_pose_compare_p",ITc_mediavision_mv_pose_compare_p,ITs_media_vision_inference_startup,ITs_media_vision_inference_cleanup},