public final class PoseDetector
- Object
- PoseDetector
ImplementsAutoCloseable, VisionAnalyzer<Pose>
Locates body joints, for rep counting, form feedback, or gesture input.
Counting arm raises from the live camera:
VisionCameraView<Pose> view =
new VisionCameraView<Pose>(new PoseDetector());
view.setListener(new VisionPipelineListener<Pose>() {
private boolean wasUp;
public void result(Pose pose, VisionImage source) {
Pose.Landmark wrist = pose.getLandmark(PoseLandmarks.RIGHT_WRIST);
Pose.Landmark shoulder =
pose.getLandmark(PoseLandmarks.RIGHT_SHOULDER);
if (wrist == null || shoulder == null
|| wrist.getConfidence() < 0.6f) {
return;
}
// Y grows downwards, so the wrist being "above" the shoulder is a
// smaller Y.
boolean up = wrist.getPosition().getY()
< shoulder.getPosition().getY();
if (up && !wasUp) {
reps++;
repLabel.setText(String.valueOf(reps));
}
wasUp = up;
}
public void error(Throwable error) {
Log.e(error);
}
});
Backends detect different subsets of the skeleton, so look joints up by
name with Pose.getLandmark(String) and handle null rather
than indexing a fixed array. PoseLandmarks holds the names.
Constructors
public PoseDetector() | Creates an analyzer using the platform default backend and options. |
public PoseDetector(VisionOptions options) | Creates a reusable analyzer with explicit backend and result options. |
Methods
public final synchronized boolean isSupported() | Tests the exact feature/backend pair configured for this analyzer. |
public final synchronized AsyncResource<Pose> process(VisionImage image) | Starts one analysis using the retained native backend. |
public final synchronized void close() | Idempotently releases the retained native backend. |
Inherited methods
Constructor details
PoseDetector
public PoseDetector()Creates an analyzer using the platform default backend and options.
See also
PoseDetector
public PoseDetector(VisionOptions options)Creates a reusable analyzer with explicit backend and result options.
Parameters
optionsVisionOptions- configuration captured by this analyzer;
nulluses defaults
Method details
isSupported
public final synchronized boolean isSupported()Tests the exact feature/backend pair configured for this analyzer.
Returns
whether this analyzer’s feature/backend is available and open
process
public final synchronized AsyncResource<Pose> process(VisionImage image)Starts one analysis using the retained native backend.
Parameters
imageVisionImage- immutable encoded or raw input
Returns
asynchronous typed result
close
public final synchronized void close()Idempotently releases the retained native backend.