diff --git a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/BUILD b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/BUILD index 3bd9f445f..748ab157d 100644 --- a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/BUILD +++ b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/BUILD @@ -20,6 +20,7 @@ android_binary( name = "posetracking-lindera", srcs = glob(["**/*.java"]), custom_package = "com.google.mediapipe.examples.posetracking_lindera", + dex_shards = 10, manifest = "AndroidManifest.xml", manifest_values = { "applicationId": "com.google.mediapipe.examples.posetracking_lindera", diff --git a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/ComputerVisionPluginImpl.java b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/ComputerVisionPluginImpl.java index cb5af4132..6ae829d53 100644 --- a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/ComputerVisionPluginImpl.java +++ b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/ComputerVisionPluginImpl.java @@ -88,7 +88,6 @@ public class ComputerVisionPluginImpl implements ComputerVisionPlugin { } } - bodyJointsString = bodyJointsString.concat(interpolateJoints(bodyJoints)); // remove the last equal sign bodyJointsString = bodyJointsString.substring(0,bodyJointsString.length()-1); @@ -106,68 +105,11 @@ public class ComputerVisionPluginImpl implements ComputerVisionPlugin { } - String interpolateJoints(BodyJoints bodyJoints){ - - Map pts = new HashMap<>(); - pts.put("PE", getPelvis(bodyJoints)); - pts.put("NN",bodyJoints.nose); - // Assuming Thorax is 1/3 of distance between shoulders and pelvis - XYZPointWithConfidence thorax = getSpinePoint(bodyJoints,1/3f); - // Assuming spine/middle back is 2/3 of distance between shoulders and pelvis - XYZPointWithConfidence spine = getSpinePoint(bodyJoints,2/3f); - pts.put("TH",thorax); - pts.put("SP",spine); - pts.put("HT",getHeadTop(bodyJoints)); - final String[] bodyJointsString = {""}; - pts.forEach((key,data)->{ - bodyJointsString[0] = bodyJointsString[0].concat(String.format(key+":%f,%f,%f=",data.x,data.y,data.z)); - - }); - - return bodyJointsString[0]; - } - XYZPointWithConfidence getPelvis(BodyJoints bodyJoints){ - return getMiddleJoint(bodyJoints.leftHip,bodyJoints.rightHip); - - } - - XYZPointWithConfidence getJointBetweenPoints(XYZPointWithConfidence pt1,XYZPointWithConfidence pt2,float distance){ - XYZPointWithConfidence midpt = new XYZPointWithConfidence(); - midpt.x = pt1.x + (pt2.x-pt1.x)*distance; - midpt.y = pt1.y + (pt2.y-pt1.y)*distance; - midpt.z = pt1.z + (pt2.z-pt1.z)*distance; - - - midpt.presence = min(pt1.presence,pt2.presence); - midpt.confidence = min(pt1.confidence,pt2.confidence); - return midpt; - } - XYZPointWithConfidence getMiddleJoint(XYZPointWithConfidence pt1,XYZPointWithConfidence pt2) { - XYZPointWithConfidence midpt = new XYZPointWithConfidence(); - midpt.x = (pt1.x + pt2.x)/2; - midpt.y = (pt1.y + pt2.y)/2; - midpt.z = (pt1.z + pt2.z)/2; - - midpt.presence = min(pt1.presence,pt2.presence); - midpt.confidence = min(pt1.confidence,pt2.confidence); - return midpt; - } - XYZPointWithConfidence getSpinePoint(BodyJoints bodyJoints, float distanceFromShoulders){ - XYZPointWithConfidence midShoulder = getMiddleJoint(bodyJoints.leftShoulder, bodyJoints.rightShoulder); - XYZPointWithConfidence pelvis = getPelvis(bodyJoints); - return getJointBetweenPoints(midShoulder,pelvis,distanceFromShoulders); - } - - XYZPointWithConfidence getHeadTop(BodyJoints bodyJoints){ - XYZPointWithConfidence middleEye = getMiddleJoint(bodyJoints.leftEye,bodyJoints.rightEye); - return getJointBetweenPoints(middleEye,bodyJoints.nose,2); - } - @Override diff --git a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/MainActivity.java b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/MainActivity.java index a39a50013..3cd14ab9a 100644 --- a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/MainActivity.java +++ b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/java/com/google/mediapipe/examples/posetracking_lindera/MainActivity.java @@ -83,7 +83,7 @@ public class MainActivity extends AppCompatActivity { findViewById(R.id.button_set_model).setVisibility(View.GONE); findViewById(R.id.button_toggle_landmarks).setVisibility(View.GONE); - findViewById(R.id.button_start_capture).setVisibility(View.GONE); + findViewById(R.id.button_capture_logging).setVisibility(View.GONE); setupLiveDemoUiComponents(); plugin = new ComputerVisionPluginImpl(); @@ -116,7 +116,7 @@ public class MainActivity extends AppCompatActivity { Button startDetectionButton = findViewById(R.id.button_start_detection); Button toggleLandmarks = findViewById(R.id.button_toggle_landmarks); Button modelComplexity = findViewById(R.id.button_set_model); - Button startCapture = findViewById(R.id.button_start_capture); + Button startCapture = findViewById(R.id.button_capture_logging); FrameLayout frameLayout = findViewById(R.id.preview_display_layout); startDetectionButton.setOnClickListener( @@ -129,7 +129,7 @@ public class MainActivity extends AppCompatActivity { startDetectionButton.setVisibility(View.GONE); findViewById(R.id.button_set_model).setVisibility(View.VISIBLE); findViewById(R.id.button_toggle_landmarks).setVisibility(View.VISIBLE); - findViewById(R.id.button_start_capture).setVisibility(View.VISIBLE); + findViewById(R.id.button_capture_logging).setVisibility(View.VISIBLE); updateLandmarkButtonText(); updateModelComplexityButtonText(); diff --git a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/res/layout/activity_main.xml b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/res/layout/activity_main.xml index 84418b5b3..ba95a5142 100644 --- a/mediapipe/examples/android/solutions/posetracking-lindera/src/main/res/layout/activity_main.xml +++ b/mediapipe/examples/android/solutions/posetracking-lindera/src/main/res/layout/activity_main.xml @@ -1,5 +1,6 @@ + android:gravity="center" + android:orientation="horizontal">