Swap left and right hand labels.

PiperOrigin-RevId: 557625660
This commit is contained in:
MediaPipe Team 2023-08-16 15:47:19 -07:00 committed by Copybara-Service
parent 13bb65db96
commit ed0c8d8d8b
23 changed files with 289 additions and 290 deletions

View File

@ -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>();

View File

@ -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;

View File

@ -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();

View File

@ -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

View File

@ -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);
} }

View File

@ -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(

View File

@ -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])),

View File

@ -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(

View File

@ -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 =

View File

@ -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",

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -1,8 +1,8 @@
classifications { classifications {
classification { classification {
score: 1.0 score: 1.0
label: "Left" label: "Right"
display_name: "Left" display_name: "Right"
} }
} }

View File

@ -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(