Swap left and right hand labels.
PiperOrigin-RevId: 557625660
This commit is contained in:
		
							parent
							
								
									13bb65db96
								
							
						
					
					
						commit
						ed0c8d8d8b
					
				| 
						 | 
					@ -34,15 +34,15 @@ namespace api2 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace {
 | 
					namespace {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using ::mediapipe::tasks::vision::gesture_recognizer::GetLeftHandScore;
 | 
					using ::mediapipe::tasks::vision::gesture_recognizer::GetRightHandScore;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr char kHandednessTag[] = "HANDEDNESS";
 | 
					constexpr char kHandednessTag[] = "HANDEDNESS";
 | 
				
			||||||
constexpr char kHandednessMatrixTag[] = "HANDEDNESS_MATRIX";
 | 
					constexpr char kHandednessMatrixTag[] = "HANDEDNESS_MATRIX";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
absl::StatusOr<std::unique_ptr<Matrix>> HandednessToMatrix(
 | 
					absl::StatusOr<std::unique_ptr<Matrix>> HandednessToMatrix(
 | 
				
			||||||
    const mediapipe::ClassificationList& classification_list) {
 | 
					    const mediapipe::ClassificationList& classification_list) {
 | 
				
			||||||
  // Feature value is the probability that the hand is a left hand.
 | 
					  // Feature value is the probability that the hand is a right hand.
 | 
				
			||||||
  ASSIGN_OR_RETURN(float score, GetLeftHandScore(classification_list));
 | 
					  ASSIGN_OR_RETURN(float score, GetRightHandScore(classification_list));
 | 
				
			||||||
  auto matrix = Matrix(1, 1);
 | 
					  auto matrix = Matrix(1, 1);
 | 
				
			||||||
  matrix(0, 0) = score;
 | 
					  matrix(0, 0) = score;
 | 
				
			||||||
  auto result = std::make_unique<Matrix>();
 | 
					  auto result = std::make_unique<Matrix>();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,10 +38,10 @@ mediapipe::ClassificationList ClassificationForHandedness(float handedness) {
 | 
				
			||||||
  mediapipe::ClassificationList result;
 | 
					  mediapipe::ClassificationList result;
 | 
				
			||||||
  auto* h = result.add_classification();
 | 
					  auto* h = result.add_classification();
 | 
				
			||||||
  if (handedness < 0.5f) {
 | 
					  if (handedness < 0.5f) {
 | 
				
			||||||
    h->set_label("Right");
 | 
					    h->set_label("Left");
 | 
				
			||||||
    h->set_score(1.0f - handedness);
 | 
					    h->set_score(1.0f - handedness);
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    h->set_label("Left");
 | 
					    h->set_label("Right");
 | 
				
			||||||
    h->set_score(handedness);
 | 
					    h->set_score(handedness);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return result;
 | 
					  return result;
 | 
				
			||||||
| 
						 | 
					@ -84,8 +84,8 @@ TEST_P(HandednessToMatrixCalculatorTest, OutputsCorrectResult) {
 | 
				
			||||||
INSTANTIATE_TEST_CASE_P(
 | 
					INSTANTIATE_TEST_CASE_P(
 | 
				
			||||||
    HandednessToMatrixCalculatorTests, HandednessToMatrixCalculatorTest,
 | 
					    HandednessToMatrixCalculatorTests, HandednessToMatrixCalculatorTest,
 | 
				
			||||||
    testing::ValuesIn<HandednessToMatrixCalculatorTestCase>(
 | 
					    testing::ValuesIn<HandednessToMatrixCalculatorTestCase>(
 | 
				
			||||||
        {{/* test_name= */ "TestWithRightHand", /* handedness= */ 0.01f},
 | 
					        {{/* test_name= */ "TestWithLeftHand", /* handedness= */ 0.01f},
 | 
				
			||||||
         {/* test_name= */ "TestWithLeftHand", /* handedness= */ 0.99f}}),
 | 
					         {/* test_name= */ "TestWithRightHand", /* handedness= */ 0.99f}}),
 | 
				
			||||||
    [](const testing::TestParamInfo<
 | 
					    [](const testing::TestParamInfo<
 | 
				
			||||||
        HandednessToMatrixCalculatorTest::ParamType>& info) {
 | 
					        HandednessToMatrixCalculatorTest::ParamType>& info) {
 | 
				
			||||||
      return info.param.test_name;
 | 
					      return info.param.test_name;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ bool IsRightHand(const Classification& c) {
 | 
				
			||||||
  return absl::EqualsIgnoreCase(c.label(), "Right");
 | 
					  return absl::EqualsIgnoreCase(c.label(), "Right");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
absl::StatusOr<float> GetLeftHandScore(
 | 
					absl::StatusOr<float> GetRightHandScore(
 | 
				
			||||||
    const ClassificationList& classification_list) {
 | 
					    const ClassificationList& classification_list) {
 | 
				
			||||||
  auto classifications = classification_list.classification();
 | 
					  auto classifications = classification_list.classification();
 | 
				
			||||||
  auto iter_max =
 | 
					  auto iter_max =
 | 
				
			||||||
| 
						 | 
					@ -50,9 +50,9 @@ absl::StatusOr<float> GetLeftHandScore(
 | 
				
			||||||
  RET_CHECK_GE(h.score(), 0.5f);
 | 
					  RET_CHECK_GE(h.score(), 0.5f);
 | 
				
			||||||
  RET_CHECK_LE(h.score(), 1.0f);
 | 
					  RET_CHECK_LE(h.score(), 1.0f);
 | 
				
			||||||
  if (IsLeftHand(h)) {
 | 
					  if (IsLeftHand(h)) {
 | 
				
			||||||
    return h.score();
 | 
					 | 
				
			||||||
  } else if (IsRightHand(h)) {
 | 
					 | 
				
			||||||
    return 1.0f - h.score();
 | 
					    return 1.0f - h.score();
 | 
				
			||||||
 | 
					  } else if (IsRightHand(h)) {
 | 
				
			||||||
 | 
					    return h.score();
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    // Unrecognized handedness label.
 | 
					    // Unrecognized handedness label.
 | 
				
			||||||
    RET_CHECK_FAIL() << "Unrecognized handedness: " << h.label();
 | 
					    RET_CHECK_FAIL() << "Unrecognized handedness: " << h.label();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ bool IsLeftHand(const mediapipe::Classification& c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool IsRightHand(const mediapipe::Classification& c);
 | 
					bool IsRightHand(const mediapipe::Classification& c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
absl::StatusOr<float> GetLeftHandScore(
 | 
					absl::StatusOr<float> GetRightHandScore(
 | 
				
			||||||
    const mediapipe::ClassificationList& classification_list);
 | 
					    const mediapipe::ClassificationList& classification_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}  // namespace gesture_recognizer
 | 
					}  // namespace gesture_recognizer
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,49 +26,49 @@ namespace vision {
 | 
				
			||||||
namespace gesture_recognizer {
 | 
					namespace gesture_recognizer {
 | 
				
			||||||
namespace {
 | 
					namespace {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(GetLeftHandScore, SingleLeftHandClassification) {
 | 
					TEST(GetRightHandScore, SingleRightHandClassification) {
 | 
				
			||||||
  ClassificationList classifications;
 | 
					 | 
				
			||||||
  auto& c = *classifications.add_classification();
 | 
					 | 
				
			||||||
  c.set_label("Left");
 | 
					 | 
				
			||||||
  c.set_score(0.6f);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(float score, GetLeftHandScore(classifications));
 | 
					 | 
				
			||||||
  EXPECT_FLOAT_EQ(score, 0.6f);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TEST(GetLeftHandScore, SingleRightHandClassification) {
 | 
					 | 
				
			||||||
  ClassificationList classifications;
 | 
					  ClassificationList classifications;
 | 
				
			||||||
  auto& c = *classifications.add_classification();
 | 
					  auto& c = *classifications.add_classification();
 | 
				
			||||||
  c.set_label("Right");
 | 
					  c.set_label("Right");
 | 
				
			||||||
 | 
					  c.set_score(0.6f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  MP_ASSERT_OK_AND_ASSIGN(float score, GetRightHandScore(classifications));
 | 
				
			||||||
 | 
					  EXPECT_FLOAT_EQ(score, 0.6f);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TEST(GetRightHandScore, SingleLeftHandClassification) {
 | 
				
			||||||
 | 
					  ClassificationList classifications;
 | 
				
			||||||
 | 
					  auto& c = *classifications.add_classification();
 | 
				
			||||||
 | 
					  c.set_label("Left");
 | 
				
			||||||
  c.set_score(0.9f);
 | 
					  c.set_score(0.9f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(float score, GetLeftHandScore(classifications));
 | 
					  MP_ASSERT_OK_AND_ASSIGN(float score, GetRightHandScore(classifications));
 | 
				
			||||||
  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
					  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(GetLeftHandScore, LeftAndRightHandClassification) {
 | 
					TEST(GetRightHandScore, LeftAndRightHandClassification) {
 | 
				
			||||||
  ClassificationList classifications;
 | 
					  ClassificationList classifications;
 | 
				
			||||||
  auto& right = *classifications.add_classification();
 | 
					  auto& right = *classifications.add_classification();
 | 
				
			||||||
  right.set_label("Right");
 | 
					  right.set_label("Left");
 | 
				
			||||||
  right.set_score(0.9f);
 | 
					  right.set_score(0.9f);
 | 
				
			||||||
  auto& left = *classifications.add_classification();
 | 
					  auto& left = *classifications.add_classification();
 | 
				
			||||||
  left.set_label("Left");
 | 
					  left.set_label("Right");
 | 
				
			||||||
  left.set_score(0.1f);
 | 
					  left.set_score(0.1f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(float score, GetLeftHandScore(classifications));
 | 
					  MP_ASSERT_OK_AND_ASSIGN(float score, GetRightHandScore(classifications));
 | 
				
			||||||
  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
					  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(GetLeftHandScore, LeftAndRightLowerCaseHandClassification) {
 | 
					TEST(GetRightHandScore, LeftAndRightLowerCaseHandClassification) {
 | 
				
			||||||
  ClassificationList classifications;
 | 
					  ClassificationList classifications;
 | 
				
			||||||
  auto& right = *classifications.add_classification();
 | 
					  auto& right = *classifications.add_classification();
 | 
				
			||||||
  right.set_label("right");
 | 
					  right.set_label("Left");
 | 
				
			||||||
  right.set_score(0.9f);
 | 
					  right.set_score(0.9f);
 | 
				
			||||||
  auto& left = *classifications.add_classification();
 | 
					  auto& left = *classifications.add_classification();
 | 
				
			||||||
  left.set_label("left");
 | 
					  left.set_label("Right");
 | 
				
			||||||
  left.set_score(0.1f);
 | 
					  left.set_score(0.1f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(float score, GetLeftHandScore(classifications));
 | 
					  MP_ASSERT_OK_AND_ASSIGN(float score, GetRightHandScore(classifications));
 | 
				
			||||||
  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
					  EXPECT_FLOAT_EQ(score, 0.1f);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,8 +76,8 @@ using ::testing::proto::Partially;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr char kTestDataDirectory[] = "/mediapipe/tasks/testdata/vision/";
 | 
					constexpr char kTestDataDirectory[] = "/mediapipe/tasks/testdata/vision/";
 | 
				
			||||||
constexpr char kPalmDetectionModel[] = "palm_detection_full.tflite";
 | 
					constexpr char kPalmDetectionModel[] = "palm_detection_full.tflite";
 | 
				
			||||||
constexpr char kTestRightHandsImage[] = "right_hands.jpg";
 | 
					constexpr char kTestLeftHandsImage[] = "left_hands.jpg";
 | 
				
			||||||
constexpr char kTestRightHandsRotatedImage[] = "right_hands_rotated.jpg";
 | 
					constexpr char kTestLeftHandsRotatedImage[] = "left_hands_rotated.jpg";
 | 
				
			||||||
constexpr char kTestModelResourcesTag[] = "test_model_resources";
 | 
					constexpr char kTestModelResourcesTag[] = "test_model_resources";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr char kOneHandResultFile[] = "hand_detector_result_one_hand.pbtxt";
 | 
					constexpr char kOneHandResultFile[] = "hand_detector_result_one_hand.pbtxt";
 | 
				
			||||||
| 
						 | 
					@ -207,21 +207,21 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
    HandDetectionTest, HandDetectionTest,
 | 
					    HandDetectionTest, HandDetectionTest,
 | 
				
			||||||
    Values(TestParams{.test_name = "DetectOneHand",
 | 
					    Values(TestParams{.test_name = "DetectOneHand",
 | 
				
			||||||
                      .hand_detection_model_name = kPalmDetectionModel,
 | 
					                      .hand_detection_model_name = kPalmDetectionModel,
 | 
				
			||||||
                      .test_image_name = kTestRightHandsImage,
 | 
					                      .test_image_name = kTestLeftHandsImage,
 | 
				
			||||||
                      .rotation = 0,
 | 
					                      .rotation = 0,
 | 
				
			||||||
                      .num_hands = 1,
 | 
					                      .num_hands = 1,
 | 
				
			||||||
                      .expected_result =
 | 
					                      .expected_result =
 | 
				
			||||||
                          GetExpectedHandDetectorResult(kOneHandResultFile)},
 | 
					                          GetExpectedHandDetectorResult(kOneHandResultFile)},
 | 
				
			||||||
           TestParams{.test_name = "DetectTwoHands",
 | 
					           TestParams{.test_name = "DetectTwoHands",
 | 
				
			||||||
                      .hand_detection_model_name = kPalmDetectionModel,
 | 
					                      .hand_detection_model_name = kPalmDetectionModel,
 | 
				
			||||||
                      .test_image_name = kTestRightHandsImage,
 | 
					                      .test_image_name = kTestLeftHandsImage,
 | 
				
			||||||
                      .rotation = 0,
 | 
					                      .rotation = 0,
 | 
				
			||||||
                      .num_hands = 2,
 | 
					                      .num_hands = 2,
 | 
				
			||||||
                      .expected_result =
 | 
					                      .expected_result =
 | 
				
			||||||
                          GetExpectedHandDetectorResult(kTwoHandsResultFile)},
 | 
					                          GetExpectedHandDetectorResult(kTwoHandsResultFile)},
 | 
				
			||||||
           TestParams{.test_name = "DetectOneHandWithRotation",
 | 
					           TestParams{.test_name = "DetectOneHandWithRotation",
 | 
				
			||||||
                      .hand_detection_model_name = kPalmDetectionModel,
 | 
					                      .hand_detection_model_name = kPalmDetectionModel,
 | 
				
			||||||
                      .test_image_name = kTestRightHandsRotatedImage,
 | 
					                      .test_image_name = kTestLeftHandsRotatedImage,
 | 
				
			||||||
                      .rotation = M_PI / 2.0f,
 | 
					                      .rotation = M_PI / 2.0f,
 | 
				
			||||||
                      .num_hands = 1,
 | 
					                      .num_hands = 1,
 | 
				
			||||||
                      .expected_result = GetExpectedHandDetectorResult(
 | 
					                      .expected_result = GetExpectedHandDetectorResult(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,8 +69,8 @@ using ::testing::proto::Partially;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr char kTestDataDirectory[] = "/mediapipe/tasks/testdata/vision/";
 | 
					constexpr char kTestDataDirectory[] = "/mediapipe/tasks/testdata/vision/";
 | 
				
			||||||
constexpr char kHandLandmarkerModelBundle[] = "hand_landmarker.task";
 | 
					constexpr char kHandLandmarkerModelBundle[] = "hand_landmarker.task";
 | 
				
			||||||
constexpr char kLeftHandsImage[] = "left_hands.jpg";
 | 
					constexpr char kRightHandsImage[] = "right_hands.jpg";
 | 
				
			||||||
constexpr char kLeftHandsRotatedImage[] = "left_hands_rotated.jpg";
 | 
					constexpr char kRightHandsRotatedImage[] = "right_hands_rotated.jpg";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr char kImageTag[] = "IMAGE";
 | 
					constexpr char kImageTag[] = "IMAGE";
 | 
				
			||||||
constexpr char kImageName[] = "image_in";
 | 
					constexpr char kImageName[] = "image_in";
 | 
				
			||||||
| 
						 | 
					@ -86,15 +86,15 @@ constexpr char kHandednessTag[] = "HANDEDNESS";
 | 
				
			||||||
constexpr char kHandednessName[] = "handedness";
 | 
					constexpr char kHandednessName[] = "handedness";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Expected hand landmarks positions, in text proto format.
 | 
					// Expected hand landmarks positions, in text proto format.
 | 
				
			||||||
constexpr char kExpectedLeftUpHandLandmarksFilename[] =
 | 
					constexpr char kExpectedRightUpHandLandmarksFilename[] =
 | 
				
			||||||
    "expected_left_up_hand_landmarks.prototxt";
 | 
					    "expected_right_up_hand_landmarks.prototxt";
 | 
				
			||||||
constexpr char kExpectedLeftDownHandLandmarksFilename[] =
 | 
					constexpr char kExpectedRightDownHandLandmarksFilename[] =
 | 
				
			||||||
    "expected_left_down_hand_landmarks.prototxt";
 | 
					    "expected_right_down_hand_landmarks.prototxt";
 | 
				
			||||||
// Same but for the rotated image.
 | 
					// Same but for the rotated image.
 | 
				
			||||||
constexpr char kExpectedLeftUpHandRotatedLandmarksFilename[] =
 | 
					constexpr char kExpectedRightUpHandRotatedLandmarksFilename[] =
 | 
				
			||||||
    "expected_left_up_hand_rotated_landmarks.prototxt";
 | 
					    "expected_right_up_hand_rotated_landmarks.prototxt";
 | 
				
			||||||
constexpr char kExpectedLeftDownHandRotatedLandmarksFilename[] =
 | 
					constexpr char kExpectedRightDownHandRotatedLandmarksFilename[] =
 | 
				
			||||||
    "expected_left_down_hand_rotated_landmarks.prototxt";
 | 
					    "expected_right_down_hand_rotated_landmarks.prototxt";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
constexpr float kFullModelFractionDiff = 0.03;  // percentage
 | 
					constexpr float kFullModelFractionDiff = 0.03;  // percentage
 | 
				
			||||||
constexpr float kAbsMargin = 0.03;
 | 
					constexpr float kAbsMargin = 0.03;
 | 
				
			||||||
| 
						 | 
					@ -141,8 +141,8 @@ class HandLandmarkerTest : public tflite::testing::Test {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST_F(HandLandmarkerTest, Succeeds) {
 | 
					TEST_F(HandLandmarkerTest, Succeeds) {
 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(
 | 
					  MP_ASSERT_OK_AND_ASSIGN(
 | 
				
			||||||
      Image image,
 | 
					      Image image, DecodeImageFromFile(
 | 
				
			||||||
      DecodeImageFromFile(JoinPath("./", kTestDataDirectory, kLeftHandsImage)));
 | 
					                       JoinPath("./", kTestDataDirectory, kRightHandsImage)));
 | 
				
			||||||
  NormalizedRect input_norm_rect;
 | 
					  NormalizedRect input_norm_rect;
 | 
				
			||||||
  input_norm_rect.set_x_center(0.5);
 | 
					  input_norm_rect.set_x_center(0.5);
 | 
				
			||||||
  input_norm_rect.set_y_center(0.5);
 | 
					  input_norm_rect.set_y_center(0.5);
 | 
				
			||||||
| 
						 | 
					@ -157,8 +157,8 @@ TEST_F(HandLandmarkerTest, Succeeds) {
 | 
				
			||||||
                              .Get<std::vector<NormalizedLandmarkList>>();
 | 
					                              .Get<std::vector<NormalizedLandmarkList>>();
 | 
				
			||||||
  ASSERT_EQ(landmarks.size(), kMaxNumHands);
 | 
					  ASSERT_EQ(landmarks.size(), kMaxNumHands);
 | 
				
			||||||
  std::vector<NormalizedLandmarkList> expected_landmarks = {
 | 
					  std::vector<NormalizedLandmarkList> expected_landmarks = {
 | 
				
			||||||
      GetExpectedLandmarkList(kExpectedLeftUpHandLandmarksFilename),
 | 
					      GetExpectedLandmarkList(kExpectedRightUpHandLandmarksFilename),
 | 
				
			||||||
      GetExpectedLandmarkList(kExpectedLeftDownHandLandmarksFilename)};
 | 
					      GetExpectedLandmarkList(kExpectedRightDownHandLandmarksFilename)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EXPECT_THAT(landmarks[0],
 | 
					  EXPECT_THAT(landmarks[0],
 | 
				
			||||||
              Approximately(Partially(EqualsProto(expected_landmarks[0])),
 | 
					              Approximately(Partially(EqualsProto(expected_landmarks[0])),
 | 
				
			||||||
| 
						 | 
					@ -173,7 +173,7 @@ TEST_F(HandLandmarkerTest, Succeeds) {
 | 
				
			||||||
TEST_F(HandLandmarkerTest, SucceedsWithRotation) {
 | 
					TEST_F(HandLandmarkerTest, SucceedsWithRotation) {
 | 
				
			||||||
  MP_ASSERT_OK_AND_ASSIGN(
 | 
					  MP_ASSERT_OK_AND_ASSIGN(
 | 
				
			||||||
      Image image, DecodeImageFromFile(JoinPath("./", kTestDataDirectory,
 | 
					      Image image, DecodeImageFromFile(JoinPath("./", kTestDataDirectory,
 | 
				
			||||||
                                                kLeftHandsRotatedImage)));
 | 
					                                                kRightHandsRotatedImage)));
 | 
				
			||||||
  NormalizedRect input_norm_rect;
 | 
					  NormalizedRect input_norm_rect;
 | 
				
			||||||
  input_norm_rect.set_x_center(0.5);
 | 
					  input_norm_rect.set_x_center(0.5);
 | 
				
			||||||
  input_norm_rect.set_y_center(0.5);
 | 
					  input_norm_rect.set_y_center(0.5);
 | 
				
			||||||
| 
						 | 
					@ -189,8 +189,8 @@ TEST_F(HandLandmarkerTest, SucceedsWithRotation) {
 | 
				
			||||||
                              .Get<std::vector<NormalizedLandmarkList>>();
 | 
					                              .Get<std::vector<NormalizedLandmarkList>>();
 | 
				
			||||||
  ASSERT_EQ(landmarks.size(), kMaxNumHands);
 | 
					  ASSERT_EQ(landmarks.size(), kMaxNumHands);
 | 
				
			||||||
  std::vector<NormalizedLandmarkList> expected_landmarks = {
 | 
					  std::vector<NormalizedLandmarkList> expected_landmarks = {
 | 
				
			||||||
      GetExpectedLandmarkList(kExpectedLeftUpHandRotatedLandmarksFilename),
 | 
					      GetExpectedLandmarkList(kExpectedRightUpHandRotatedLandmarksFilename),
 | 
				
			||||||
      GetExpectedLandmarkList(kExpectedLeftDownHandRotatedLandmarksFilename)};
 | 
					      GetExpectedLandmarkList(kExpectedRightDownHandRotatedLandmarksFilename)};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EXPECT_THAT(landmarks[0],
 | 
					  EXPECT_THAT(landmarks[0],
 | 
				
			||||||
              Approximately(Partially(EqualsProto(expected_landmarks[0])),
 | 
					              Approximately(Partially(EqualsProto(expected_landmarks[0])),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,8 +142,8 @@ void ConfigureTensorsToHandednessCalculator(
 | 
				
			||||||
  LabelMapItem right_hand = LabelMapItem();
 | 
					  LabelMapItem right_hand = LabelMapItem();
 | 
				
			||||||
  right_hand.set_name("Right");
 | 
					  right_hand.set_name("Right");
 | 
				
			||||||
  right_hand.set_display_name("Right");
 | 
					  right_hand.set_display_name("Right");
 | 
				
			||||||
  (*options->mutable_label_items())[0] = std::move(left_hand);
 | 
					  (*options->mutable_label_items())[0] = std::move(right_hand);
 | 
				
			||||||
  (*options->mutable_label_items())[1] = std::move(right_hand);
 | 
					  (*options->mutable_label_items())[1] = std::move(left_hand);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ConfigureHandRectTransformationCalculator(
 | 
					void ConfigureHandRectTransformationCalculator(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -342,7 +342,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerLiteModelRightUpHand",
 | 
					            .test_name = "HandLandmarkerLiteModelRightUpHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerLiteModel,
 | 
					            .input_model_name = kHandLandmarkerLiteModel,
 | 
				
			||||||
            .test_image_name = kRightHandsImage,
 | 
					            .test_image_name = kRightHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
					            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedRightUpHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedRightUpHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -352,7 +352,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerLiteModelRightDownHand",
 | 
					            .test_name = "HandLandmarkerLiteModelRightDownHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerLiteModel,
 | 
					            .input_model_name = kHandLandmarkerLiteModel,
 | 
				
			||||||
            .test_image_name = kRightHandsImage,
 | 
					            .test_image_name = kRightHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
					            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks = GetExpectedLandmarkList(
 | 
					            .expected_landmarks = GetExpectedLandmarkList(
 | 
				
			||||||
                kExpectedRightDownHandLandmarksFilename),
 | 
					                kExpectedRightDownHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -362,7 +362,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerFullModelRightUpHand",
 | 
					            .test_name = "HandLandmarkerFullModelRightUpHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerFullModel,
 | 
					            .input_model_name = kHandLandmarkerFullModel,
 | 
				
			||||||
            .test_image_name = kRightHandsImage,
 | 
					            .test_image_name = kRightHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
					            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedRightUpHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedRightUpHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -372,7 +372,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerFullModelRightDownHand",
 | 
					            .test_name = "HandLandmarkerFullModelRightDownHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerFullModel,
 | 
					            .input_model_name = kHandLandmarkerFullModel,
 | 
				
			||||||
            .test_image_name = kRightHandsImage,
 | 
					            .test_image_name = kRightHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
					            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks = GetExpectedLandmarkList(
 | 
					            .expected_landmarks = GetExpectedLandmarkList(
 | 
				
			||||||
                kExpectedRightDownHandLandmarksFilename),
 | 
					                kExpectedRightDownHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -382,7 +382,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerLiteModelLeftUpHand",
 | 
					            .test_name = "HandLandmarkerLiteModelLeftUpHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerLiteModel,
 | 
					            .input_model_name = kHandLandmarkerLiteModel,
 | 
				
			||||||
            .test_image_name = kLeftHandsImage,
 | 
					            .test_image_name = kLeftHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
					            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedLeftUpHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedLeftUpHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -392,7 +392,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerLiteModelLeftDownHand",
 | 
					            .test_name = "HandLandmarkerLiteModelLeftDownHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerLiteModel,
 | 
					            .input_model_name = kHandLandmarkerLiteModel,
 | 
				
			||||||
            .test_image_name = kLeftHandsImage,
 | 
					            .test_image_name = kLeftHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
					            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedLeftDownHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedLeftDownHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -402,7 +402,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerFullModelLeftUpHand",
 | 
					            .test_name = "HandLandmarkerFullModelLeftUpHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerFullModel,
 | 
					            .input_model_name = kHandLandmarkerFullModel,
 | 
				
			||||||
            .test_image_name = kLeftHandsImage,
 | 
					            .test_image_name = kLeftHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
					            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedLeftUpHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedLeftUpHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -412,7 +412,7 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_name = "HandLandmarkerFullModelLeftDownHand",
 | 
					            .test_name = "HandLandmarkerFullModelLeftDownHand",
 | 
				
			||||||
            .input_model_name = kHandLandmarkerFullModel,
 | 
					            .input_model_name = kHandLandmarkerFullModel,
 | 
				
			||||||
            .test_image_name = kLeftHandsImage,
 | 
					            .test_image_name = kLeftHandsImage,
 | 
				
			||||||
            .hand_rect = MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
					            .hand_rect = MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
            .expected_presence = true,
 | 
					            .expected_presence = true,
 | 
				
			||||||
            .expected_landmarks =
 | 
					            .expected_landmarks =
 | 
				
			||||||
                GetExpectedLandmarkList(kExpectedLeftDownHandLandmarksFilename),
 | 
					                GetExpectedLandmarkList(kExpectedLeftDownHandLandmarksFilename),
 | 
				
			||||||
| 
						 | 
					@ -431,8 +431,8 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_image_name = kRightHandsImage,
 | 
					            .test_image_name = kRightHandsImage,
 | 
				
			||||||
            .hand_rects =
 | 
					            .hand_rects =
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
					                    MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
                    MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
					                    MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            .expected_presences = {true, true},
 | 
					            .expected_presences = {true, true},
 | 
				
			||||||
            .expected_landmark_lists =
 | 
					            .expected_landmark_lists =
 | 
				
			||||||
| 
						 | 
					@ -449,8 +449,8 @@ INSTANTIATE_TEST_SUITE_P(
 | 
				
			||||||
            .test_image_name = kLeftHandsImage,
 | 
					            .test_image_name = kLeftHandsImage,
 | 
				
			||||||
            .hand_rects =
 | 
					            .hand_rects =
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    MakeHandRect(0.75, 0.5, 0.5, 1.0, 0),
 | 
					                    MakeHandRect(0.25, 0.5, 0.5, 1.0, 0),
 | 
				
			||||||
                    MakeHandRect(0.25, 0.5, 0.5, 1.0, M_PI),
 | 
					                    MakeHandRect(0.75, 0.5, 0.5, 1.0, M_PI),
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
            .expected_presences = {true, true},
 | 
					            .expected_presences = {true, true},
 | 
				
			||||||
            .expected_landmark_lists =
 | 
					            .expected_landmark_lists =
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								mediapipe/tasks/testdata/vision/BUILD
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								mediapipe/tasks/testdata/vision/BUILD
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -107,7 +107,6 @@ exports_files(
 | 
				
			||||||
        "expected_left_down_hand_landmarks.prototxt",
 | 
					        "expected_left_down_hand_landmarks.prototxt",
 | 
				
			||||||
        "expected_left_down_hand_rotated_landmarks.prototxt",
 | 
					        "expected_left_down_hand_rotated_landmarks.prototxt",
 | 
				
			||||||
        "expected_left_up_hand_landmarks.prototxt",
 | 
					        "expected_left_up_hand_landmarks.prototxt",
 | 
				
			||||||
        "expected_left_up_hand_rotated_landmarks.prototxt",
 | 
					 | 
				
			||||||
        "expected_right_down_hand_landmarks.prototxt",
 | 
					        "expected_right_down_hand_landmarks.prototxt",
 | 
				
			||||||
        "expected_right_up_hand_landmarks.prototxt",
 | 
					        "expected_right_up_hand_landmarks.prototxt",
 | 
				
			||||||
        "face_geometry_expected_out.pbtxt",
 | 
					        "face_geometry_expected_out.pbtxt",
 | 
				
			||||||
| 
						 | 
					@ -214,12 +213,12 @@ filegroup(
 | 
				
			||||||
    name = "test_protos",
 | 
					    name = "test_protos",
 | 
				
			||||||
    srcs = [
 | 
					    srcs = [
 | 
				
			||||||
        "expected_left_down_hand_landmarks.prototxt",
 | 
					        "expected_left_down_hand_landmarks.prototxt",
 | 
				
			||||||
        "expected_left_down_hand_rotated_landmarks.prototxt",
 | 
					 | 
				
			||||||
        "expected_left_up_hand_landmarks.prototxt",
 | 
					        "expected_left_up_hand_landmarks.prototxt",
 | 
				
			||||||
        "expected_left_up_hand_rotated_landmarks.prototxt",
 | 
					 | 
				
			||||||
        "expected_pose_landmarks.prototxt",
 | 
					        "expected_pose_landmarks.prototxt",
 | 
				
			||||||
        "expected_right_down_hand_landmarks.prototxt",
 | 
					        "expected_right_down_hand_landmarks.prototxt",
 | 
				
			||||||
 | 
					        "expected_right_down_hand_rotated_landmarks.prototxt",
 | 
				
			||||||
        "expected_right_up_hand_landmarks.prototxt",
 | 
					        "expected_right_up_hand_landmarks.prototxt",
 | 
				
			||||||
 | 
					        "expected_right_up_hand_rotated_landmarks.prototxt",
 | 
				
			||||||
        "face_geometry_expected_out.pbtxt",
 | 
					        "face_geometry_expected_out.pbtxt",
 | 
				
			||||||
        "fist_landmarks.pbtxt",
 | 
					        "fist_landmarks.pbtxt",
 | 
				
			||||||
        "hand_detector_result_one_hand.pbtxt",
 | 
					        "hand_detector_result_one_hand.pbtxt",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,84 +1,84 @@
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.19942205
 | 
					  x: 0.8055556
 | 
				
			||||||
  y: 0.09026158
 | 
					  y: 0.08900524
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.29673815
 | 
					  x: 0.7
 | 
				
			||||||
  y: 0.1236096
 | 
					  y: 0.13089006
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.35452557
 | 
					  x: 0.6375
 | 
				
			||||||
  y: 0.24131873
 | 
					  y: 0.2460733
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.39504135
 | 
					  x: 0.59583336
 | 
				
			||||||
  y: 0.3613678
 | 
					  y: 0.38219896
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.4381017
 | 
					  x: 0.55138886
 | 
				
			||||||
  y: 0.44257507
 | 
					  y: 0.4764398
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.30564976
 | 
					  x: 0.70416665
 | 
				
			||||||
  y: 0.43276948
 | 
					  y: 0.43717277
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.33376893
 | 
					  x: 0.6652778
 | 
				
			||||||
  y: 0.6287609
 | 
					  y: 0.64136124
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.34690586
 | 
					  x: 0.6513889
 | 
				
			||||||
  y: 0.7581718
 | 
					  y: 0.7643979
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.3569131
 | 
					  x: 0.64444447
 | 
				
			||||||
  y: 0.85597074
 | 
					  y: 0.8638743
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.24617499
 | 
					  x: 0.7569444
 | 
				
			||||||
  y: 0.4616468
 | 
					  y: 0.4712042
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25602233
 | 
					  x: 0.7416667
 | 
				
			||||||
  y: 0.6825256
 | 
					  y: 0.6937173
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25772986
 | 
					  x: 0.74027777
 | 
				
			||||||
  y: 0.8347353
 | 
					  y: 0.83507854
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25762093
 | 
					  x: 0.74444443
 | 
				
			||||||
  y: 0.949471
 | 
					  y: 0.9424084
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.18984047
 | 
					  x: 0.80694443
 | 
				
			||||||
  y: 0.45083284
 | 
					  y: 0.45026177
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.18280011
 | 
					  x: 0.81527776
 | 
				
			||||||
  y: 0.65619284
 | 
					  y: 0.65968585
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.17377229
 | 
					  x: 0.82361114
 | 
				
			||||||
  y: 0.7914928
 | 
					  y: 0.79581153
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.16702436
 | 
					  x: 0.83194447
 | 
				
			||||||
  y: 0.89128083
 | 
					  y: 0.90575916
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.14224908
 | 
					  x: 0.8541667
 | 
				
			||||||
  y: 0.41272494
 | 
					  y: 0.43979058
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.119362295
 | 
					  x: 0.87222224
 | 
				
			||||||
  y: 0.5680165
 | 
					  y: 0.5837696
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.102372244
 | 
					  x: 0.88611114
 | 
				
			||||||
  y: 0.67237973
 | 
					  y: 0.6753927
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.08747025
 | 
					  x: 0.9
 | 
				
			||||||
  y: 0.7554076
 | 
					  y: 0.7539267
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,84 +1,84 @@
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7977909
 | 
					  x: 0.19166666
 | 
				
			||||||
  y: 0.90771425
 | 
					  y: 0.89790577
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7005595
 | 
					  x: 0.29305556
 | 
				
			||||||
  y: 0.87075
 | 
					  y: 0.8638743
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6439954
 | 
					  x: 0.35694444
 | 
				
			||||||
  y: 0.7551088
 | 
					  y: 0.7486911
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.60334325
 | 
					  x: 0.40138888
 | 
				
			||||||
  y: 0.6363517
 | 
					  y: 0.62041885
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.5600122
 | 
					  x: 0.44722223
 | 
				
			||||||
  y: 0.55537516
 | 
					  y: 0.5314136
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6928512
 | 
					  x: 0.30416667
 | 
				
			||||||
  y: 0.56547815
 | 
					  y: 0.565445
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.66476023
 | 
					  x: 0.33055556
 | 
				
			||||||
  y: 0.3680001
 | 
					  y: 0.36125654
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6514839
 | 
					  x: 0.34583333
 | 
				
			||||||
  y: 0.23800957
 | 
					  y: 0.2356021
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6416936
 | 
					  x: 0.3513889
 | 
				
			||||||
  y: 0.13911664
 | 
					  y: 0.13350785
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.75269383
 | 
					  x: 0.24583334
 | 
				
			||||||
  y: 0.53802305
 | 
					  y: 0.5340314
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7422081
 | 
					  x: 0.25555557
 | 
				
			||||||
  y: 0.31609806
 | 
					  y: 0.30104712
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.74030703
 | 
					  x: 0.25972223
 | 
				
			||||||
  y: 0.16485286
 | 
					  y: 0.15706806
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7408123
 | 
					  x: 0.25694445
 | 
				
			||||||
  y: 0.050073862
 | 
					  y: 0.04973822
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.80908364
 | 
					  x: 0.19166666
 | 
				
			||||||
  y: 0.548252
 | 
					  y: 0.5445026
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.8152498
 | 
					  x: 0.18194444
 | 
				
			||||||
  y: 0.34377483
 | 
					  y: 0.33246073
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.82466483
 | 
					  x: 0.17222223
 | 
				
			||||||
  y: 0.20964715
 | 
					  y: 0.20157067
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.832543
 | 
					  x: 0.1625
 | 
				
			||||||
  y: 0.10994735
 | 
					  y: 0.09424084
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.85659754
 | 
					  x: 0.14722222
 | 
				
			||||||
  y: 0.5847515
 | 
					  y: 0.58115184
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.8787856
 | 
					  x: 0.12777779
 | 
				
			||||||
  y: 0.42845485
 | 
					  y: 0.41623038
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.89572114
 | 
					  x: 0.10972222
 | 
				
			||||||
  y: 0.32542163
 | 
					  y: 0.32460734
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.9110377
 | 
					  x: 0.094444446
 | 
				
			||||||
  y: 0.24356759
 | 
					  y: 0.2434555
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,84 +1,84 @@
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.8055556
 | 
					  x: 0.19942205
 | 
				
			||||||
  y: 0.08900524
 | 
					  y: 0.09026158
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7
 | 
					  x: 0.29673815
 | 
				
			||||||
  y: 0.13089006
 | 
					  y: 0.1236096
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6375
 | 
					  x: 0.35452557
 | 
				
			||||||
  y: 0.2460733
 | 
					  y: 0.24131873
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.59583336
 | 
					  x: 0.39504135
 | 
				
			||||||
  y: 0.38219896
 | 
					  y: 0.3613678
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.55138886
 | 
					  x: 0.4381017
 | 
				
			||||||
  y: 0.4764398
 | 
					  y: 0.44257507
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.70416665
 | 
					  x: 0.30564976
 | 
				
			||||||
  y: 0.43717277
 | 
					  y: 0.43276948
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6652778
 | 
					  x: 0.33376893
 | 
				
			||||||
  y: 0.64136124
 | 
					  y: 0.6287609
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.6513889
 | 
					  x: 0.34690586
 | 
				
			||||||
  y: 0.7643979
 | 
					  y: 0.7581718
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.64444447
 | 
					  x: 0.3569131
 | 
				
			||||||
  y: 0.8638743
 | 
					  y: 0.85597074
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7569444
 | 
					  x: 0.24617499
 | 
				
			||||||
  y: 0.4712042
 | 
					  y: 0.4616468
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.7416667
 | 
					  x: 0.25602233
 | 
				
			||||||
  y: 0.6937173
 | 
					  y: 0.6825256
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.74027777
 | 
					  x: 0.25772986
 | 
				
			||||||
  y: 0.83507854
 | 
					  y: 0.8347353
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.74444443
 | 
					  x: 0.25762093
 | 
				
			||||||
  y: 0.9424084
 | 
					  y: 0.949471
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.80694443
 | 
					  x: 0.18984047
 | 
				
			||||||
  y: 0.45026177
 | 
					  y: 0.45083284
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.81527776
 | 
					  x: 0.18280011
 | 
				
			||||||
  y: 0.65968585
 | 
					  y: 0.65619284
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.82361114
 | 
					  x: 0.17377229
 | 
				
			||||||
  y: 0.79581153
 | 
					  y: 0.7914928
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.83194447
 | 
					  x: 0.16702436
 | 
				
			||||||
  y: 0.90575916
 | 
					  y: 0.89128083
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.8541667
 | 
					  x: 0.14224908
 | 
				
			||||||
  y: 0.43979058
 | 
					  y: 0.41272494
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.87222224
 | 
					  x: 0.119362295
 | 
				
			||||||
  y: 0.5837696
 | 
					  y: 0.5680165
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.88611114
 | 
					  x: 0.102372244
 | 
				
			||||||
  y: 0.6753927
 | 
					  y: 0.67237973
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.9
 | 
					  x: 0.08747025
 | 
				
			||||||
  y: 0.7539267
 | 
					  y: 0.7554076
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,84 +1,84 @@
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.19166666
 | 
					  x: 0.7977909
 | 
				
			||||||
  y: 0.89790577
 | 
					  y: 0.90771425
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.29305556
 | 
					  x: 0.7005595
 | 
				
			||||||
  y: 0.8638743
 | 
					  y: 0.87075
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.35694444
 | 
					  x: 0.6439954
 | 
				
			||||||
  y: 0.7486911
 | 
					  y: 0.7551088
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.40138888
 | 
					  x: 0.60334325
 | 
				
			||||||
  y: 0.62041885
 | 
					  y: 0.6363517
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.44722223
 | 
					  x: 0.5600122
 | 
				
			||||||
  y: 0.5314136
 | 
					  y: 0.55537516
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.30416667
 | 
					  x: 0.6928512
 | 
				
			||||||
  y: 0.565445
 | 
					  y: 0.56547815
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.33055556
 | 
					  x: 0.66476023
 | 
				
			||||||
  y: 0.36125654
 | 
					  y: 0.3680001
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.34583333
 | 
					  x: 0.6514839
 | 
				
			||||||
  y: 0.2356021
 | 
					  y: 0.23800957
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.3513889
 | 
					  x: 0.6416936
 | 
				
			||||||
  y: 0.13350785
 | 
					  y: 0.13911664
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.24583334
 | 
					  x: 0.75269383
 | 
				
			||||||
  y: 0.5340314
 | 
					  y: 0.53802305
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25555557
 | 
					  x: 0.7422081
 | 
				
			||||||
  y: 0.30104712
 | 
					  y: 0.31609806
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25972223
 | 
					  x: 0.74030703
 | 
				
			||||||
  y: 0.15706806
 | 
					  y: 0.16485286
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.25694445
 | 
					  x: 0.7408123
 | 
				
			||||||
  y: 0.04973822
 | 
					  y: 0.050073862
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.19166666
 | 
					  x: 0.80908364
 | 
				
			||||||
  y: 0.5445026
 | 
					  y: 0.548252
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.18194444
 | 
					  x: 0.8152498
 | 
				
			||||||
  y: 0.33246073
 | 
					  y: 0.34377483
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.17222223
 | 
					  x: 0.82466483
 | 
				
			||||||
  y: 0.20157067
 | 
					  y: 0.20964715
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.1625
 | 
					  x: 0.832543
 | 
				
			||||||
  y: 0.09424084
 | 
					  y: 0.10994735
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.14722222
 | 
					  x: 0.85659754
 | 
				
			||||||
  y: 0.58115184
 | 
					  y: 0.5847515
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.12777779
 | 
					  x: 0.8787856
 | 
				
			||||||
  y: 0.41623038
 | 
					  y: 0.42845485
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.10972222
 | 
					  x: 0.89572114
 | 
				
			||||||
  y: 0.32460734
 | 
					  y: 0.32542163
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
landmark {
 | 
					landmark {
 | 
				
			||||||
  x: 0.094444446
 | 
					  x: 0.9110377
 | 
				
			||||||
  y: 0.2434555
 | 
					  y: 0.24356759
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,8 @@
 | 
				
			||||||
classifications {
 | 
					classifications {
 | 
				
			||||||
  classification {
 | 
					  classification {
 | 
				
			||||||
    score: 1.0
 | 
					    score: 1.0
 | 
				
			||||||
    label: "Left"
 | 
					    label: "Right"
 | 
				
			||||||
    display_name: "Left"
 | 
					    display_name: "Right"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										80
									
								
								third_party/external_files.bzl
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								third_party/external_files.bzl
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -306,26 +306,14 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_expected_left_down_hand_landmarks_prototxt",
 | 
					        name = "com_google_mediapipe_expected_left_down_hand_landmarks_prototxt",
 | 
				
			||||||
        sha256 = "ae9cb01035f18b0023fc12256c048666da76b41b327cec09c2d2820054b1295f",
 | 
					        sha256 = "f281b745175aaa7f458def6cf4c89521fb56302dd61a05642b3b4a4f237ffaa3",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_down_hand_landmarks.prototxt?generation=1661875720230540"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_down_hand_landmarks.prototxt?generation=1692121979089068"],
 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    http_file(
 | 
					 | 
				
			||||||
        name = "com_google_mediapipe_expected_left_down_hand_rotated_landmarks_prototxt",
 | 
					 | 
				
			||||||
        sha256 = "c4dfdcc2e4cd366eb5f8ad227be94049eb593e3a528564611094687912463687",
 | 
					 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_down_hand_rotated_landmarks.prototxt?generation=1666629474155924"],
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_expected_left_up_hand_landmarks_prototxt",
 | 
					        name = "com_google_mediapipe_expected_left_up_hand_landmarks_prototxt",
 | 
				
			||||||
        sha256 = "1353ba617c4f048083618587cd23a8a22115f634521c153d4e1bd1ebd4f49dd7",
 | 
					        sha256 = "174cf5f7c3ab547f0affb666ee7be933b0758c60fbfe7b7e93795c5082555592",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_up_hand_landmarks.prototxt?generation=1661875726008879"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_up_hand_landmarks.prototxt?generation=1692121981605963"],
 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    http_file(
 | 
					 | 
				
			||||||
        name = "com_google_mediapipe_expected_left_up_hand_rotated_landmarks_prototxt",
 | 
					 | 
				
			||||||
        sha256 = "7fb2d33cf69d2da50952a45bad0c0618f30859e608958fee95948a6e0de63ccb",
 | 
					 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_left_up_hand_rotated_landmarks.prototxt?generation=1666629476401757"],
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -336,14 +324,26 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_expected_right_down_hand_landmarks_prototxt",
 | 
					        name = "com_google_mediapipe_expected_right_down_hand_landmarks_prototxt",
 | 
				
			||||||
        sha256 = "f281b745175aaa7f458def6cf4c89521fb56302dd61a05642b3b4a4f237ffaa3",
 | 
					        sha256 = "ae9cb01035f18b0023fc12256c048666da76b41b327cec09c2d2820054b1295f",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_down_hand_landmarks.prototxt?generation=1661875730821226"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_down_hand_landmarks.prototxt?generation=1692121986324450"],
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http_file(
 | 
				
			||||||
 | 
					        name = "com_google_mediapipe_expected_right_down_hand_rotated_landmarks_prototxt",
 | 
				
			||||||
 | 
					        sha256 = "c4dfdcc2e4cd366eb5f8ad227be94049eb593e3a528564611094687912463687",
 | 
				
			||||||
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_down_hand_rotated_landmarks.prototxt?generation=1692121989028161"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_expected_right_up_hand_landmarks_prototxt",
 | 
					        name = "com_google_mediapipe_expected_right_up_hand_landmarks_prototxt",
 | 
				
			||||||
        sha256 = "174cf5f7c3ab547f0affb666ee7be933b0758c60fbfe7b7e93795c5082555592",
 | 
					        sha256 = "1353ba617c4f048083618587cd23a8a22115f634521c153d4e1bd1ebd4f49dd7",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_up_hand_landmarks.prototxt?generation=1661875733440313"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_up_hand_landmarks.prototxt?generation=1692121991596258"],
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http_file(
 | 
				
			||||||
 | 
					        name = "com_google_mediapipe_expected_right_up_hand_rotated_landmarks_prototxt",
 | 
				
			||||||
 | 
					        sha256 = "7fb2d33cf69d2da50952a45bad0c0618f30859e608958fee95948a6e0de63ccb",
 | 
				
			||||||
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/expected_right_up_hand_rotated_landmarks.prototxt?generation=1692121994043161"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -450,8 +450,8 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_fist_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_fist_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "76d6489e6163211ce5e9080e51983165bb9b24ff50146cc7487bd629f011c598",
 | 
					        sha256 = "4b0ad2b00d5f2d140450f9f168af0f7422ecf6b630b7d64a213bcf6f04fb078b",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/fist_landmarks.pbtxt?generation=1666999360561864"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/fist_landmarks.pbtxt?generation=1692121997451835"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -636,14 +636,14 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_left_hands_jpg",
 | 
					        name = "com_google_mediapipe_left_hands_jpg",
 | 
				
			||||||
        sha256 = "4b5134daa4cb60465535239535f9f74c2842aba3aa5fd30bf04ef5678f93d87f",
 | 
					        sha256 = "240c082e80128ff1ca8a83ce645e2ba4d8bc30f0967b7991cf5fa375bab489e1",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/left_hands.jpg?generation=1661875796949017"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/left_hands.jpg?generation=1692122001487742"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_left_hands_rotated_jpg",
 | 
					        name = "com_google_mediapipe_left_hands_rotated_jpg",
 | 
				
			||||||
        sha256 = "8609c6202bca43a99bbf23fa8e687e49fa525e89481152e4c0987f46d60d7931",
 | 
					        sha256 = "b3bdf692f0d54b86c8b67e6d1286dd0078fbe6e9dfcd507b187e3bd8b398c0f9",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/left_hands_rotated.jpg?generation=1666037068103465"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/left_hands_rotated.jpg?generation=1692122004272021"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -948,8 +948,8 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_pointing_up_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_pointing_up_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "a3cd7f088a9e997dbb8f00d91dbf3faaacbdb262c8f2fde3c07a9d0656488065",
 | 
					        sha256 = "6bfcd360c0caa82559396d387ac30e1d59efab3b3d96b5512f4f018d0abae7c4",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/pointing_up_landmarks.pbtxt?generation=1665174976408451"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/pointing_up_landmarks.pbtxt?generation=1692122010006268"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -960,8 +960,8 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_pointing_up_rotated_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_pointing_up_rotated_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "5ec37218d8b613436f5c10121dc689bf9ee69af0656a6ccf8c2e3e8b652e2ad6",
 | 
					        sha256 = "cc58cbe1ead8c5051e643d2b90b77d00843cab2f1227af3489513d2b02359dd1",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/pointing_up_rotated_landmarks.pbtxt?generation=1666629486774022"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/pointing_up_rotated_landmarks.pbtxt?generation=1692122012510778"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -1122,14 +1122,14 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_right_hands_jpg",
 | 
					        name = "com_google_mediapipe_right_hands_jpg",
 | 
				
			||||||
        sha256 = "240c082e80128ff1ca8a83ce645e2ba4d8bc30f0967b7991cf5fa375bab489e1",
 | 
					        sha256 = "4b5134daa4cb60465535239535f9f74c2842aba3aa5fd30bf04ef5678f93d87f",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/right_hands.jpg?generation=1661875908672404"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/right_hands.jpg?generation=1692122016203904"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_right_hands_rotated_jpg",
 | 
					        name = "com_google_mediapipe_right_hands_rotated_jpg",
 | 
				
			||||||
        sha256 = "b3bdf692f0d54b86c8b67e6d1286dd0078fbe6e9dfcd507b187e3bd8b398c0f9",
 | 
					        sha256 = "8609c6202bca43a99bbf23fa8e687e49fa525e89481152e4c0987f46d60d7931",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/right_hands_rotated.jpg?generation=1666037076873345"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/right_hands_rotated.jpg?generation=1692122018668162"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -1320,14 +1320,14 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_thumb_up_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_thumb_up_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "b129ae0536be4e25d6cdee74aabe9dedf1bcfe87430a40b68be4079db3a4d926",
 | 
					        sha256 = "feddaa81e188b9bceae12a96766f71e8ff3b2b316b4a31d64054d8a329e6015e",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/thumb_up_landmarks.pbtxt?generation=1665174979747784"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/thumb_up_landmarks.pbtxt?generation=1692122022310696"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_thumb_up_rotated_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_thumb_up_rotated_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "6645bbd98ea7f90b3e1ba297e16ea5280847fc5bf5400726d98c282f6c597257",
 | 
					        sha256 = "f0e90db82890ad2e0304af5e6e88b2e64f3774eec4d43e56b634a296553b7196",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/thumb_up_rotated_landmarks.pbtxt?generation=1666629489421733"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/thumb_up_rotated_landmarks.pbtxt?generation=1692122024789637"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					@ -1362,8 +1362,8 @@ def external_files():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
        name = "com_google_mediapipe_victory_landmarks_pbtxt",
 | 
					        name = "com_google_mediapipe_victory_landmarks_pbtxt",
 | 
				
			||||||
        sha256 = "b25ab4f222674489f543afb6454396ecbc1437a7ae6213dbf0553029ae939ab0",
 | 
					        sha256 = "73fb59741872bc66b79982d4c9765a4128d6308cc5d919100615080c0f4c0c55",
 | 
				
			||||||
        urls = ["https://storage.googleapis.com/mediapipe-assets/victory_landmarks.pbtxt?generation=1666999366036622"],
 | 
					        urls = ["https://storage.googleapis.com/mediapipe-assets/victory_landmarks.pbtxt?generation=1692122027459905"],
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    http_file(
 | 
					    http_file(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user