Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

49 Commits

Repository files navigation

quickpose-android-sdk

Swift Package Manager

QuickPose provides developer-oriented cutting edge ML features of MediaPipe and BlazePose, with easy integration and production ready code, which dramatically improves the speed of implementation of pose estimation, skeleton tracking and fitness counting features into mobile applications.

See our Features below or checkout our full documentation on our website docs.quickpose.ai/docs/MobileSDK

Range Of Motion ExampleLeg Raises Counter Example
health-shoulder-right-romfitness-leg-raises

Register an SDK Key

Get your free SDK key on https://dev.quickpose.ai, usage limits may apply. SDK Keys are linked to your bundle ID, please check Key before distributing to the Play Store.

How it works

QuickPose process a video frame and makes it easy for developers to perform complex AI features to the image, such as overlaying markings to the output image to highlight the user's pose.

+----------++-------------++-----------------+
| | | | | OverlayView |
| Camera |--------->| QuickPose |--------->| + |
| | | | | Results |
+----------++-------------++-----------------+

Features

FeatureExampleSupported
Joint PositionsMediaPipe Landmarksv0.1

Overlays

Whole Body

Upper Body

Lower Body

Shoulder

Left Arm

Right Arm

Left Leg

Right Leg

Whole Body Overlayv0.1

Health - Range Of Motion

Left Shoulder

Right Shoulder

Left Hip

Right Hip

Left Knee

Right Knee

Back

Neck

health-shoulder-right-romv0.1

Fitness - Exercise Detection & Counter

Squat

Sumo Squat

Jumping Jack

Push Up

Plank

Cobra Wings

Left Leg Lunge

Right Leg Lunge

SitUps

CobraWings

Plank

Leg Raises

Glute Bridge

Overhead Dumbbell Press

vUps

Lateral Raises

Front Raises

Hip Abduction Standing Left

Hip Abduction Standing Right

Side Lunges Left

Side Lunges Right

Biceps Curls

fitness-pushupv0.3

Meta Features

FeatureExampleSupported
Stacked Feature Stylingshoulder-conditional-image
Bike Side View Video by Tariq Ali
v0.1
Conditional Stylingknee-conditional-imagev0.1

Min Version Requirements

  • Android SDK 26

16kb Page Size Support

  • You'll need minimum quickpose-core 0.17 and quickpose-mp 0.6

Installing the SDK

In your app's build.gradle, copy the quickpose dependencies

dependencies {
// recommended for starting quickpose
implementation ("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'")
// CameraX core library
val camerax_version = ("1.4.1")
implementation("androidx.camera:camera-core:$camerax_version")
implementation("androidx.camera:camera-camera2:$camerax_version")
implementation("androidx.camera:camera-lifecycle:$camerax_version")
implementation("androidx.camera:camera-view:$camerax_version")
implementation("com.google.flogger:flogger:latest.release")
implementation("com.google.flogger:flogger-system-backend:latest.release")
implementation("com.google.guava:guava:27.0.1-android")
implementation("com.google.protobuf:protobuf-javalite:3.19.1")
implementation("com.microsoft.onnxruntime:onnxruntime-android:latest.release")
implementation("ai.quickpose:quickpose-mp:0.4")
implementation("ai.quickpose:quickpose-core:0.18")
}

Getting Started

See code examples below or download our Sample Apps.

Step 1: Download/Clone Repo

Step 2: Open Basic Demo

Step 3: Build to your device

Step 4: Run

Step 5: Explore the features and returned results

quickPose.start(
arrayOf(
Feature.Overlay(group =Landmarks.Group.Arm(Side.LEFT))
),
onFrame = { status, overlay, features, feedback, landmarks ->println("$status, $features")
}
) 

Proguard

To enable proguard/r8 minifying, add these to your proguard rules:

-keep public interface com.google.mediapipe.framework.* {
public *;
}
-keep public class com.google.mediapipe.framework.Packet {
public static *** create(***);
public long getNativeHandle();
public void release();
}
-keep public class com.google.mediapipe.framework.PacketCreator {
*** releaseWithSyncToken(...);
}
-keep public class com.google.mediapipe.framework.MediaPipeException {
<init>(int, byte[]);
}
-keep class com.google.mediapipe.framework.ProtoUtil$SerializedMessage { *; }
-keep public class * extends com.google.protobuf.GeneratedMessageLite { *; }
-keepclassmembers class com.google.common.flogger.** { *; }
-keep class ai.onnxruntime.** { *; }
-keep class ai.quickpose.core.Status$* { *; }

Documentation

Checkout our full documentation at https://docs.quickpose.ai/docs/MobileSDK

About

No description, website, or topics provided.

Resources

Stars

10 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages