From b09cc090d464c02ee48d0837543b452a303a0e26 Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Mon, 8 Jun 2020 09:33:26 -0700 Subject: [PATCH] Project import generated by Copybara. GitOrigin-RevId: 4143ead7dd769b489c313bb9e8856002736f5ecd --- .../android_archive_library.md | 6 +++--- docs/images/mobile/assets_location.png | Bin 57650 -> 29659 bytes .../util/rect_projection_calculator.cc | 7 +++++++ mediapipe/gpu/gl_scaler_calculator.cc | 18 ++++++++++++++++-- mediapipe/gpu/gl_scaler_calculator.proto | 5 +++++ 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/docs/getting_started/android_archive_library.md b/docs/getting_started/android_archive_library.md index 0b2c6181..feeabfd3 100644 --- a/docs/getting_started/android_archive_library.md +++ b/docs/getting_started/android_archive_library.md @@ -91,8 +91,8 @@ each project. [the label map](https://github.com/google/mediapipe/blob/master/mediapipe/models/face_detection_front_labelmap.txt). ```bash - bazel build -c opt mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu:binary_graph - cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu/facedetectiongpu.binarypb /path/to/your/app/src/main/assets/ + bazel build -c opt mediapipe/mediapipe/graphs/face_detection:mobile_gpu_binary_graph + cp bazel-bin/mediapipe/graphs/face_detection/mobile_gpu.binarypb /path/to/your/app/src/main/assets/ cp mediapipe/models/face_detection_front.tflite /path/to/your/app/src/main/assets/ cp mediapipe/models/face_detection_front_labelmap.txt /path/to/your/app/src/main/assets/ ``` @@ -130,7 +130,7 @@ each project. implementation 'com.google.code.findbugs:jsr305:3.0.2' implementation 'com.google.guava:guava:27.0.1-android' implementation 'com.google.guava:guava:27.0.1-android' - implementation 'com.google.protobuf:protobuf-java:3.11.4'' + implementation 'com.google.protobuf:protobuf-java:3.11.4' // CameraX core library def camerax_version = "1.0.0-alpha06" implementation "androidx.camera:camera-core:$camerax_version" diff --git a/docs/images/mobile/assets_location.png b/docs/images/mobile/assets_location.png index 573b77f0462fe4ecc3117e4163877b306868556f..9d8ab0469c4ddc22a998fc15f26665164c220a12 100644 GIT binary patch literal 29659 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 tip|ApfKn_+|%|g80Yi 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 diff --git a/mediapipe/calculators/util/rect_projection_calculator.cc b/mediapipe/calculators/util/rect_projection_calculator.cc index a9f7018c..0b0ec946 100644 --- a/mediapipe/calculators/util/rect_projection_calculator.cc +++ b/mediapipe/calculators/util/rect_projection_calculator.cc @@ -48,6 +48,7 @@ constexpr char kNormReferenceRectTag[] = "NORM_REFERENCE_RECT"; class RectProjectionCalculator : public CalculatorBase { public: static ::mediapipe::Status GetContract(CalculatorContract* cc); + ::mediapipe::Status Open(CalculatorContext* cc) override; ::mediapipe::Status Process(CalculatorContext* cc) override; }; REGISTER_CALCULATOR(RectProjectionCalculator); @@ -60,6 +61,12 @@ REGISTER_CALCULATOR(RectProjectionCalculator); return ::mediapipe::OkStatus(); } +::mediapipe::Status RectProjectionCalculator::Open(CalculatorContext* cc) { + cc->SetOffset(TimestampDiff(0)); + + return ::mediapipe::OkStatus(); +} + ::mediapipe::Status RectProjectionCalculator::Process(CalculatorContext* cc) { if (cc->Inputs().Tag(kNormRectTag).IsEmpty()) { return ::mediapipe::OkStatus(); diff --git a/mediapipe/gpu/gl_scaler_calculator.cc b/mediapipe/gpu/gl_scaler_calculator.cc index d28cd4cf..8729f4d8 100644 --- a/mediapipe/gpu/gl_scaler_calculator.cc +++ b/mediapipe/gpu/gl_scaler_calculator.cc @@ -83,6 +83,7 @@ class GlScalerCalculator : public CalculatorBase { GlCalculatorHelper helper_; int dst_width_ = 0; int dst_height_ = 0; + float dst_scale_ = -1.f; FrameRotation rotation_; std::unique_ptr rgb_renderer_; std::unique_ptr yuv_renderer_; @@ -142,6 +143,9 @@ REGISTER_CALCULATOR(GlScalerCalculator); if (options.has_output_height()) { dst_height_ = options.output_height(); } + if (options.has_output_scale()) { + dst_scale_ = options.output_scale(); + } if (options.has_rotation()) { rotation_ccw = options.rotation(); } @@ -283,8 +287,18 @@ void GlScalerCalculator::GetOutputDimensions(int src_width, int src_height, if (dst_width_ > 0 && dst_height_ > 0) { *dst_width = dst_width_; *dst_height = dst_height_; - } else if (rotation_ == FrameRotation::k90 || - rotation_ == FrameRotation::k270) { + return; + } + if (dst_scale_ > 0) { + // Scales the destination size, but just uses src size as a temporary for + // calculations. + src_width = static_cast(src_width * dst_scale_); + src_height = static_cast(src_height * dst_scale_); + // Round to nearest multiply of 4 for better memory alignment. + src_width = ((src_width + 2) >> 2) << 2; + src_height = ((src_height + 2) >> 2) << 2; + } + if (rotation_ == FrameRotation::k90 || rotation_ == FrameRotation::k270) { *dst_width = src_height; *dst_height = src_width; } else { diff --git a/mediapipe/gpu/gl_scaler_calculator.proto b/mediapipe/gpu/gl_scaler_calculator.proto index 9a04313c..99c0d439 100644 --- a/mediapipe/gpu/gl_scaler_calculator.proto +++ b/mediapipe/gpu/gl_scaler_calculator.proto @@ -19,6 +19,7 @@ package mediapipe; import "mediapipe/framework/calculator.proto"; import "mediapipe/gpu/scale_mode.proto"; +// Next id: 8. message GlScalerCalculatorOptions { extend CalculatorOptions { optional GlScalerCalculatorOptions ext = 166373014; @@ -27,6 +28,10 @@ message GlScalerCalculatorOptions { // Output dimensions. optional int32 output_width = 1; optional int32 output_height = 2; + // A scale factor for output size, while keeping aspect ratio. It has lower + // priority than the above two fields. That is, it is effective only when the + // above two fields are unset. + optional float output_scale = 7 [default = 1.0]; // Counterclockwise rotation in degrees. Must be a multiple of 90. optional int32 rotation = 3; // Flip the output texture vertically. This is applied after rotation.