From 716c7e3b8a7d76518a7496fa73981062fcfe780a Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Mon, 7 Nov 2022 17:21:51 -0800 Subject: [PATCH] Internal change PiperOrigin-RevId: 486805777 --- mediapipe/calculators/tensor/BUILD | 1 + .../image_to_tensor_converter_gl_buffer.cc | 5 ++--- .../tensor/image_to_tensor_utils_test.cc | 4 ++-- .../testdata/image_to_tensor/crop_empty.png | Bin 0 -> 319 bytes .../testdata/image_to_tensor/crop_rect1.png | Bin 0 -> 12621 bytes .../testdata/image_to_tensor/crop_rect2.png | Bin 0 -> 19521 bytes .../testdata/image_to_tensor/crop_rect3.png | Bin 0 -> 16995 bytes 7 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png create mode 100644 mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png create mode 100644 mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png create mode 100644 mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect3.png diff --git a/mediapipe/calculators/tensor/BUILD b/mediapipe/calculators/tensor/BUILD index 92e786b6d..1a2a6b342 100644 --- a/mediapipe/calculators/tensor/BUILD +++ b/mediapipe/calculators/tensor/BUILD @@ -1324,6 +1324,7 @@ cc_test( name = "image_to_tensor_utils_test", srcs = ["image_to_tensor_utils_test.cc"], deps = [ + ":image_to_tensor_calculator_cc_proto", ":image_to_tensor_utils", "//mediapipe/framework/formats:rect_cc_proto", "//mediapipe/framework/port:gtest_main", diff --git a/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc b/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc index 14de410ff..a551e7f8d 100644 --- a/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc +++ b/mediapipe/calculators/tensor/image_to_tensor_converter_gl_buffer.cc @@ -330,9 +330,8 @@ class GlProcessor : public ImageToTensorConverter { absl::Status ValidateTensorShape(const Tensor::Shape& output_shape) { RET_CHECK_EQ(output_shape.dims.size(), 4) << "Wrong output dims size: " << output_shape.dims.size(); - RET_CHECK_EQ(output_shape.dims[0], 1) - << "Handling batch dimension not equal to 1 is not implemented in this " - "converter."; + RET_CHECK_GE(output_shape.dims[0], 1) + << "The batch dimension needs to be greater or equal to 1."; RET_CHECK_EQ(output_shape.dims[3], 3) << "Wrong output channel: " << output_shape.dims[3]; return absl::OkStatus(); diff --git a/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc b/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc index 9ba7d0138..450bcba31 100644 --- a/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc +++ b/mediapipe/calculators/tensor/image_to_tensor_utils_test.cc @@ -172,7 +172,7 @@ constexpr char kValidIntProto[] = R"( output_tensor_height: 200 )"; -TEST(ValidateOptionOutputDims, ValidProtos) { +TEST(ValidateOptionOutputDims, ImageToTensorCalcOptions) { const auto float_options = mediapipe::ParseTextProtoOrDie( kValidFloatProto); @@ -202,7 +202,7 @@ TEST(ValidateOptionOutputDims, EmptyProto) { HasSubstr("Valid output tensor width is required"))); } -TEST(GetOutputTensorParams, SetValues) { +TEST(GetOutputTensorParams, ImageToTensorCalcOptionsSetValues) { // Test int range with ImageToTensorCalculatorOptions. const auto int_options = mediapipe::ParseTextProtoOrDie( diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..02d1fe884f7fd5778da85fbbddc1b443a7bc6a85 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1SEZ8zRh7^U}W=jaSW+oe0$K45h&QK@HW26 uu!gNjbLW&8FFn=ile|wZeG)Y6xy;V<85$cF<@^DL0fVQjpUXO@geCy&JcBX- literal 0 HcmV?d00001 diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect1.png new file mode 100644 index 0000000000000000000000000000000000000000..1238464d56bc4a86157f0a5a4df9dc35ea29b242 GIT binary patch literal 12621 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 TE&ubw1VB+%Ri;YHB=CO$sQ2S; literal 0 HcmV?d00001 diff --git a/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png b/mediapipe/calculators/tensor/testdata/image_to_tensor/crop_rect2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9dc58e56405b765e16ff7d73cbd481357907926 GIT binary patch literal 19521 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 B&>R2& literal 0 HcmV?d00001