From b36b0bb3e84298c66d5d0578b5965c6b6607bfc3 Mon Sep 17 00:00:00 2001 From: kinaryml Date: Thu, 16 Mar 2023 12:51:19 -0700 Subject: [PATCH] Updated API and tests --- .../test/vision/face_landmarker_test.py | 28 ++++++------------- .../tasks/python/vision/face_landmarker.py | 6 ++-- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/mediapipe/tasks/python/test/vision/face_landmarker_test.py b/mediapipe/tasks/python/test/vision/face_landmarker_test.py index 34d1e0b0..0a1d8705 100644 --- a/mediapipe/tasks/python/test/vision/face_landmarker_test.py +++ b/mediapipe/tasks/python/test/vision/face_landmarker_test.py @@ -89,9 +89,9 @@ def _get_expected_face_blendshapes(file_path: str): def _make_expected_facial_transformation_matrixes(): matrix = np.array([[0.9995292, -0.005092691, 0.030254554, -0.37340546], - [0.0072318087, 0.99744856, -0.07102106, 22.212194], - [-0.029815676, 0.07120642, 0.9970159, -64.76358], - [0, 0, 0, 1]]) + [0.0072318087, 0.99744856, -0.07102106, 22.212194], + [-0.029815676, 0.07120642, 0.9970159, -64.76358], + [0, 0, 0, 1]]) facial_transformation_matrixes_results = [] facial_transformation_matrixes_results.append(matrix) return facial_transformation_matrixes_results @@ -145,10 +145,10 @@ class FaceLandmarkerTest(parameterized.TestCase): expected_matrix_list[i].shape[0]) self.assertEqual(rename_me.shape[1], expected_matrix_list[i].shape[1]) - self.assertAlmostEqual( - rename_me.all(), - expected_matrix_list[i].all(), - delta=_FACIAL_TRANSFORMATION_MATRIX_DIFF_MARGIN) + self.assertSequenceAlmostEqual( + rename_me.flatten(), + expected_matrix_list[i].flatten(), + delta=_FACIAL_TRANSFORMATION_MATRIX_DIFF_MARGIN) def test_create_from_file_succeeds_with_valid_model_path(self): # Creates with default option and valid model file successfully. @@ -441,12 +441,7 @@ class FaceLandmarkerTest(parameterized.TestCase): (_FACE_LANDMARKER_WITH_BLENDSHAPES_BUNDLE_ASSET_FILE, _get_expected_face_landmarks( _PORTRAIT_EXPECTED_FACE_LANDMARKS_WITH_ATTENTION), - _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), None), - (_FACE_LANDMARKER_WITH_BLENDSHAPES_BUNDLE_ASSET_FILE, - _get_expected_face_landmarks( - _PORTRAIT_EXPECTED_FACE_LANDMARKS_WITH_ATTENTION), - _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), - _make_expected_facial_transformation_matrixes())) + _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), None)) def test_detect_for_video( self, model_name, expected_face_landmarks, expected_face_blendshapes, expected_facial_transformation_matrixes): @@ -519,12 +514,7 @@ class FaceLandmarkerTest(parameterized.TestCase): (_PORTRAIT_IMAGE, _FACE_LANDMARKER_WITH_BLENDSHAPES_BUNDLE_ASSET_FILE, _get_expected_face_landmarks( _PORTRAIT_EXPECTED_FACE_LANDMARKS_WITH_ATTENTION), - _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), None), - (_PORTRAIT_IMAGE, _FACE_LANDMARKER_WITH_BLENDSHAPES_BUNDLE_ASSET_FILE, - _get_expected_face_landmarks( - _PORTRAIT_EXPECTED_FACE_LANDMARKS_WITH_ATTENTION), - _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), - _make_expected_facial_transformation_matrixes())) + _get_expected_face_blendshapes(_PORTRAIT_EXPECTED_BLENDSHAPES), None)) def test_detect_async_calls( self, image_path, model_name, expected_face_landmarks, expected_face_blendshapes, expected_facial_transformation_matrixes): diff --git a/mediapipe/tasks/python/vision/face_landmarker.py b/mediapipe/tasks/python/vision/face_landmarker.py index 7d53b820..b8854d29 100644 --- a/mediapipe/tasks/python/vision/face_landmarker.py +++ b/mediapipe/tasks/python/vision/face_landmarker.py @@ -171,9 +171,9 @@ def _build_landmarker_result( if proto.pose_transform_matrix: matrix_data = matrix_data_pb2.MatrixData() matrix_data.MergeFrom(proto.pose_transform_matrix) - order = 'C' if matrix_data.layout == _LayoutEnum.ROW_MAJOR else 'F' - data = np.array(matrix_data.packed_data, order=order) - matrix = data.reshape((matrix_data.rows, matrix_data.cols)) + matrix = np.array(matrix_data.packed_data) + matrix = matrix.reshape((matrix_data.rows, matrix_data.cols)) + matrix = matrix if matrix_data.layout == _LayoutEnum.ROW_MAJOR else matrix.T facial_transformation_matrixes_results.append(matrix) return FaceLandmarkerResult(face_landmarks_results, face_blendshapes_results,