[ITC][media-vision][ACR-1599][Add mv_inference_pose_get_label() and change mv_inferen... 47/244547/3
authorPriya Kohli <priya.kohli@samsung.com>
Mon, 21 Sep 2020 11:34:10 +0000 (17:04 +0530)
committershobhit verma <shobhit.v@samsung.com>
Tue, 22 Sep 2020 07:00:04 +0000 (07:00 +0000)
Change-Id: I4f07be8833b6f9fad85961c6746228aa52356257
Signed-off-by: Priya Kohli <priya.kohli@samsung.com>
src/itc/media-vision/ITs-media-vision-inference.c
src/itc/media-vision/res/inference/models/pld_mocap_mapping.txt
src/itc/media-vision/tct-media-vision-native_mobile.h
src/itc/media-vision/tct-media-vision-native_tizeniot.h
src/itc/media-vision/tct-media-vision-native_tv.h
src/itc/media-vision/tct-media-vision-native_wearable.h

index 373261bdd4f189000efddc9d1564f54608dc344e..ae3d7318ca22bcf587330fc900603d2747c03e82 100644 (file)
@@ -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)
index c6b27f67e3e634b0314da95445343da419ca883a..07ce1a209582b4bd2c5cdfc20a65fe7ac6126bbd 100644 (file)
@@ -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
index 6ca4c32f802f6d49c1e202e3dfa018bb6d4176e2..a46cb18020f9035a6602698026a267f99399ac14 100755 (executable)
@@ -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},
index c3efdf49f5b539f499b271d014dfc03d7cdd7159..ea40c564ecf853296ca7911119a75d88749783f4 100755 (executable)
@@ -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},
index 6ca4c32f802f6d49c1e202e3dfa018bb6d4176e2..72f2f0818f7112b0ea3f78363fe5a6dd1a7d5579 100755 (executable)
@@ -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},
index c3efdf49f5b539f499b271d014dfc03d7cdd7159..ea40c564ecf853296ca7911119a75d88749783f4 100755 (executable)
@@ -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},