From c9670669b210c64b192ea3e9a947a9a4476f6141 Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Mon, 26 Sep 2022 22:26:36 +0500 Subject: [PATCH] added smooth landmarks support --- .../apps/posetrackingsolutiongpu/MainActivity.java | 1 + .../graphs/pose_tracking/pose_tracking_gpu_image.pbtxt | 1 + .../mediapipe/solutions/posetracking/PoseTracking.java | 1 + .../solutions/posetracking/PoseTrackingOptions.java | 8 +++++++- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java index d2a6002b6..1612c9f21 100644 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java +++ b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java @@ -275,6 +275,7 @@ public class MainActivity extends AppCompatActivity { .setStaticImageMode(false) .setLandmarkVisibility(true) .setModelComplexity(0) + .setSmoothLandmarks(true) .build()); poseTracking.setErrorListener( (message, e) -> Log.e(TAG, "MediaPipe Face Detection error:" + message)); diff --git a/mediapipe/graphs/pose_tracking/pose_tracking_gpu_image.pbtxt b/mediapipe/graphs/pose_tracking/pose_tracking_gpu_image.pbtxt index a606b8fe9..a7687c17c 100644 --- a/mediapipe/graphs/pose_tracking/pose_tracking_gpu_image.pbtxt +++ b/mediapipe/graphs/pose_tracking/pose_tracking_gpu_image.pbtxt @@ -63,6 +63,7 @@ node { calculator: "PoseLandmarkGpu" input_side_packet: "ENABLE_SEGMENTATION:enable_segmentation" input_side_packet: "MODEL_COMPLEXITY:model_complexity" + input_side_packet: "SMOOTH_LANDMARKS:smooth_landmarks" input_stream: "IMAGE:throttled_input_video" output_stream: "LANDMARKS:pose_landmarks" output_stream: "SEGMENTATION_MASK:segmentation_mask" diff --git a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTracking.java b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTracking.java index 02dc69604..a9cd64518 100644 --- a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTracking.java +++ b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTracking.java @@ -128,6 +128,7 @@ public class PoseTracking extends ImageSolutionBase { Map inputSidePackets = new HashMap<>(); // inputSidePackets.put("enable_segmentation", packetCreator.createBool(false)); inputSidePackets.put("model_complexity",packetCreator.createInt32(options.modelComplexity())); + inputSidePackets.put("smooth_landmarks",packetCreator.createBool(options.smoothLandmarks())); start(inputSidePackets); } diff --git a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingOptions.java b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingOptions.java index 7c5931bb0..f5ec60bab 100644 --- a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingOptions.java +++ b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingOptions.java @@ -41,6 +41,8 @@ public abstract class PoseTrackingOptions { public abstract boolean landmarkVisibility(); + public abstract boolean smoothLandmarks(); + public static Builder builder() { return new AutoValue_PoseTrackingOptions.Builder().withDefaultValues(); } @@ -49,7 +51,10 @@ public abstract class PoseTrackingOptions { @AutoValue.Builder public abstract static class Builder { public Builder withDefaultValues() { - return setStaticImageMode(false).setModelComplexity(0).setMinDetectionConfidence(0.5f); + return setStaticImageMode(false) + .setModelComplexity(0) + .setMinDetectionConfidence(0.5f) + .setSmoothLandmarks(true); } public abstract Builder setStaticImageMode(boolean value); @@ -60,6 +65,7 @@ public abstract class PoseTrackingOptions { public abstract Builder setLandmarkVisibility(boolean value); + public abstract Builder setSmoothLandmarks(boolean value); public abstract PoseTrackingOptions build(); } }