fixed interpolation points
This commit is contained in:
parent
e1b867c420
commit
13874094f8
|
@ -82,7 +82,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
lindera = new Lindera(plugin);
|
lindera = new Lindera(plugin);
|
||||||
List<String> cameras = lindera.getAvailableCameras();
|
List<String> cameras = lindera.getAvailableCameras();
|
||||||
// FRONT or BACK
|
// FRONT or BACK
|
||||||
lindera.setCamera("FRONT");
|
lindera.setCamera("BACK");
|
||||||
lindera.setCameraRotation(CameraRotation.AUTOMATIC);
|
lindera.setCameraRotation(CameraRotation.AUTOMATIC);
|
||||||
|
|
||||||
lindera.fpsHelper.onFpsUpdate = new Consumer<Double>() {
|
lindera.fpsHelper.onFpsUpdate = new Consumer<Double>() {
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class Lindera {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void landmarksToBodyJoints(ImmutableList<LandmarkProto.Landmark> landmarks , BodyJoints bodyJoints){
|
private void landmarksToBodyJoints(ImmutableList<LandmarkProto.Landmark> landmarks , BodyJoints bodyJoints){
|
||||||
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.NOSE), bodyJoints.neckNose);
|
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.NECK), bodyJoints.neckNose);
|
||||||
|
|
||||||
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.LEFT_EYE_INNER), bodyJoints.leftEyeInner);
|
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.LEFT_EYE_INNER), bodyJoints.leftEyeInner);
|
||||||
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.LEFT_EYE), bodyJoints.leftEye);
|
landmarkToXYZPointWithConfidence(landmarks.get(PoseTrackingResult.LEFT_EYE), bodyJoints.leftEye);
|
||||||
|
|
|
@ -80,6 +80,7 @@ public class PoseTrackingResult extends ImageSolutionResult {
|
||||||
public static final int SPINE = 34;
|
public static final int SPINE = 34;
|
||||||
public static final int THORAX = 35;
|
public static final int THORAX = 35;
|
||||||
public static final int HEAD_TOP = 36;
|
public static final int HEAD_TOP = 36;
|
||||||
|
public static final int NECK = 37;
|
||||||
|
|
||||||
|
|
||||||
PoseTrackingResult(
|
PoseTrackingResult(
|
||||||
|
@ -148,6 +149,12 @@ public class PoseTrackingResult extends ImageSolutionResult {
|
||||||
// 2 times the distance b/w nose and eyes
|
// 2 times the distance b/w nose and eyes
|
||||||
return getJointBetweenPoints(midlower, midupper, 2.5f);
|
return getJointBetweenPoints(midlower, midupper, 2.5f);
|
||||||
}
|
}
|
||||||
|
LandmarkProto.Landmark getNeck(ImmutableList<LandmarkProto.Landmark> landmarks){
|
||||||
|
LandmarkProto.Landmark midLips = getJointBetweenPoints(landmarks.get(LEFT_EAR), landmarks.get(RIGHT_EAR), 0.5f);
|
||||||
|
LandmarkProto.Landmark midShoulders= getJointBetweenPoints(landmarks.get(LEFT_SHOULDER),landmarks.get(RIGHT_SHOULDER),0.5f);
|
||||||
|
return getJointBetweenPoints(midShoulders,midLips,0.6f);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ImmutableList<LandmarkProto.Landmark> getAdditionalLandmarksByInterpolation(ImmutableList<LandmarkProto.Landmark> originalLandmarks) {
|
ImmutableList<LandmarkProto.Landmark> getAdditionalLandmarksByInterpolation(ImmutableList<LandmarkProto.Landmark> originalLandmarks) {
|
||||||
|
|
||||||
|
@ -155,13 +162,14 @@ public class PoseTrackingResult extends ImageSolutionResult {
|
||||||
List<LandmarkProto.Landmark> landmarks = new ArrayList<>(originalLandmarks);
|
List<LandmarkProto.Landmark> landmarks = new ArrayList<>(originalLandmarks);
|
||||||
// pelvis
|
// pelvis
|
||||||
landmarks.add(getPelvis(originalLandmarks));
|
landmarks.add(getPelvis(originalLandmarks));
|
||||||
// spine assuming it is 2/3rd of distance b/w shoulders and pelvis
|
// spine
|
||||||
landmarks.add(getSpinePoint(originalLandmarks, 2 / 3f));
|
landmarks.add(getSpinePoint(originalLandmarks, 0.45f));
|
||||||
// thorax assuming it is b/w shoulders
|
// thorax assuming it is slightly above shoulders
|
||||||
landmarks.add(getJointBetweenPoints(landmarks.get(LEFT_SHOULDER),landmarks.get(RIGHT_SHOULDER),0.5f));
|
landmarks.add(getSpinePoint(originalLandmarks,-0.1f));
|
||||||
// head top
|
// head top
|
||||||
landmarks.add(getHeadTop(originalLandmarks));
|
landmarks.add(getHeadTop(originalLandmarks));
|
||||||
|
// neck
|
||||||
|
landmarks.add(getNeck(originalLandmarks));
|
||||||
|
|
||||||
return ImmutableList.copyOf(landmarks);
|
return ImmutableList.copyOf(landmarks);
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class PoseTrackingResultGlRenderer implements ResultGlRenderer<PoseTracki
|
||||||
GLES20.glUniform1f(pointSizeHandle, KEYPOINT_SIZE);
|
GLES20.glUniform1f(pointSizeHandle, KEYPOINT_SIZE);
|
||||||
ImmutableList<LandmarkProto.Landmark> originalLandmarks = result.multiPoseLandmarks();
|
ImmutableList<LandmarkProto.Landmark> originalLandmarks = result.multiPoseLandmarks();
|
||||||
List<LandmarkProto.Landmark> landmarks = originalLandmarks.stream().filter((landmark -> {
|
List<LandmarkProto.Landmark> landmarks = originalLandmarks.stream().filter((landmark -> {
|
||||||
return landmark.getVisibility() > 0.25 || landmark.getPresence()>0.25;
|
return landmark.getVisibility() > 0.35 || landmark.getPresence()>0.35;
|
||||||
})).collect(Collectors.toList());
|
})).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user