Giter VIP home page Giter VIP logo

quickpose / quickpose-ios-sdk Goto Github PK

View Code? Open in Web Editor NEW
204.0 8.0 7.0 424.19 MB

Quickly add MediaPipe Pose Estimation and Detection to your iOS app. Enable powerful features in your app powered by the body or hand.

Home Page: https://docs.quickpose.ai/docs/MobileSDK

License: Apache License 2.0

Swift 68.77% Objective-C 28.21% C 1.01% Ruby 2.02%
ai blazepose ios mediapipe pose-detection pose-estimation swift hand-detection full-body-tracking human-activity-recognition

quickpose-ios-sdk's Introduction

quickpose-ios-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 Example Leg Raises Counter Example
health-shoulder-right-rom fitness-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 App 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.

+----------+          +-------------+          +-----------------+
|          |          |             |          |  Overlay Image  |
|  Camera  |--------->|  QuickPose  |--------->|        +        |
|          |          |             |          |     Results     |
+----------+          +-------------+          +-----------------+

Features

Feature Example Supported
Joint Positions MediaPipe Landmarks v0.1

Overlays

Whole Body

Upper Body

Lower Body

Shoulder

Left Arm

Right Arm

Left Leg

Right Leg

Whole Body Overlay v0.1

Health - Range Of Motion

Left Shoulder

Right Shoulder

Left Hip

Right Hip

Left Knee

Right Knee

Back

Neck

health-shoulder-right-rom v0.3

Distance Independent Measuring Line beta

Measurement relative to body height

Measurement in CM (using body height as input)

feature-scale-independent-ruler v1.1.0

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-pushup v0.8 - v1.1.0

Input

Raised Finger Detection & Count

finger-counter-left v0.5

Input

Thumbs Up Detection, Thumbs up and down detection

thumbs-up v0.6

Meta Features

Feature Example Supported
Stacked Feature Styling shoulder-conditional-image
Bike Side View Video by Tariq Ali
v0.4
Conditional Styling knee-conditional-image v0.4

Fitness - Feedback

Body Position

Named Leg or Arm not visible

fitness-body-feedback v0.8
Orientation Switching landscape v1.0.0

Supported Platforms

iOS Device Silicon Mac (M1, M2, etc) iOS Simulator x86_64 iOS Simulator arm64
✅ Runs ✅ Runs ⚙ Compiles ⚙ Known Issue

Requirements

  • iOS 14.0+
  • Xcode 10.0+

Installing the SDK

Swift Package Manager

Step 1: Click on Xcode project file

Step 2: Click on Swift Packages and click on the plus to add a package

Step 3: Enter the following repository url https://github.com/quickpose/quickpose-ios-sdk.git and click next

Import Package

Step 4: Choose all modules and click add package.

Module Description
QuickPoseCore Core SDK (required)
QuickPoseMP Mediapipe Library (required)
QuickPoseCamera Utility Class for Integration (optional, recommended)
QuickPoseSwiftUI Utility Classes for SwiftUI Integration (optional, recommended)

CocoaPods

Step 1: Open your project's Podfile

Step 2: Add your pod file dependencies:

pod 'QuickPoseCore', :git => 'https://github.com/quickpose/quickpose-ios-sdk.git'
pod 'QuickPoseCamera', :git => 'https://github.com/quickpose/quickpose-ios-sdk.git'
pod 'QuickPoseSwiftUI', :git => 'https://github.com/quickpose/quickpose-ios-sdk.git'
Module Description
QuickPoseCore Includes Core SDK and Mediapipe Library (required)
QuickPoseCamera Utility Class for Integration (optional, recommended)
QuickPoseSwiftUI Utility Classes for SwiftUI Integration (optional, recommended)

Step 3: Run pod update from the command line

Getting Started

See code examples below or download our Sample Apps.

Getting Started with Newer Macs M1/M2

Step 1: Download/Clone Repo

Step 2: Open Basic Demo

Step 3: Choose Build Target "My Mac (Designed For iPad/iPhone)"

Step 4: Run

Getting Started With Mac Picture

Step 5: Explore the features and returned results

quickPose.start(features: [.overlay(.upperBody)], onFrame: { status, image, features, feedback, landmarks in
    if case .success(_) = status {
        overlayImage = image
    }
})

Getting Started with Older Intel Macs

Step 1: Download/Clone Repo

Step 2: Open Basic Demo

Step 3: Choose Build Target as your physical device

Step 5: You will need to change the bundleid and register with apple if you haven't already.

Step 5: Run

Step 6: Explore the features and returned results

quickPose.start(features: [.overlay(.upperBody)], onFrame: { status, image, features,  feedback, landmarks in
    if case .success(_) = status {
        overlayImage = image
    }
})

SwiftUI Example

import SwiftUI
import QuickPoseCore
import QuickPoseSwiftUI

....

struct QuickPoseBasicView: View {
    
    private var quickPose = QuickPose(sdkKey: "YOUR SDK KEY HERE") // register for your free key at https://dev.quickpose.ai
    @State private var overlayImage: UIImage?
    
    var body: some View {
        GeometryReader { geometry in
            ZStack(alignment: .top) {
                QuickPoseCameraView(useFrontCamera: true, delegate: quickPose)
                QuickPoseOverlayView(overlayImage: $overlayImage)
            }
            .frame(width: geometry.size.width)
            .edgesIgnoringSafeArea(.all)
            .onAppear {
                quickPose.start(features: [.overlay(.userLeftArm)], onFrame: { status, image, features,  feedback, landmarks in
                    if case .success(_) = status {
                        overlayImage = image
                    }
                })
            }.onDisappear {
                quickPose.stop()
            }
            
        }
    }
}

Documentation

Checkout our full documentation at https://docs.quickpose.ai/docs/MobileSDK including more SwiftUI and UIKit examples.

Troubleshooting

No Such Module

Xcode reports error no such module QuickPoseCore or no such module QuickPoseSwiftUI

This happens when the linker cannot find the provided XCFrameworks. These needs to be added to your build Target.

xcode troubleshooting no such module error

xcode troubleshooting no such module guide

Cannot find type 'QuickPoseCaptureAVAssetOutputSampleBufferDelegate' in scope

Xcode reports error Cannot find type 'QuickPoseCaptureAVAssetOutputSampleBufferDelegate' in scope

This happens as our builds are not compatible with the arm64 simulator. To fix run as My Mac (Designed for iPhone)

xcode troubleshooting cannot find type

quickpose-ios-sdk's People

Contributors

dvolkhonskiy avatar filipljubicic avatar pablonosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickpose-ios-sdk's Issues

[Q] How to use this package with cocoapods

I am looking to integrate this SDK with react native. But react native currently uses Cocoapods.
Adding this as a package ie File -> Add Packages and then adding repo link does not work.

The app runs but I get following error and screen is blank:

objc[19346]: Class AppDelegate is implemented in both /Users/name/Library/Developer/Xcode/DerivedData/App-fkvazkoxdzkftrfgowaowxxijvqj/Build/Products/Debug-iphonesimulator/QuickPoseMP.framework/QuickPoseMP (0x117cb3e88) and /Users/name/Library/Developer/CoreSimulator/Devices/91A0E37E-3950-4B27-91AE-ABE2376094C9/data/Containers/Bundle/Application/9BC68EDF-7E2C-4278-AAAF-078D0385AB61/App.app/App (0x10fcb5510). One of the two will be used. Which one is undefined.

I guess that is because swift packages can not be used with cocoapods?

Quickpose Landmark Demo

I have the following error: Value of type 'QuickPose.Landmarks' has no member 'isFrontCamera' related to : flippedHorizontally: landmarks.isFrontCamera) at 2 places

and also Pattern with associated values does not match enum case 'success' related to this line : .success(_, _) = status, let landmarks = landmarks {

Unsigned Framework

Thanks for your excellent works!

I am trying to build a demo following the instructions in a YouTube video. However, when I built the project following his guidance in 4:49, I got a building failed error message. One of the error messages in my Xcode is "The Framework “QuickPoseCore.xcframework” is unsigned. Xcode will be unable to verify if the author changes.".
There is no response for selecting the "Accept Unsigned" button.

Could anyone please help me on this matter?

Thanks!

SDK key issue

I have register for my SDK key and its active.

I have download the basic demo and enter the proper Bundle ID below my team name.
I assume that I dont have to place the key inside the program ins Xcode, is that correct?

The program run and says that my SDK key is invalid. I have restart Xcode, clean the cache and rebuild the program couple of time with the same result.

[Documentation] Distance Independent Measuring

In the ReadMe you have an example of Distance Independent Measuring, but I could not find anything in the docs or the sample apps. Could you give us an example? It would be great to be able to measure arm- torso- and leg-length with a quick video (after you've set the persons size) if that's possible.

How to Add New Exercise?

Thanks for the great product. Is it possible to add new exercise by myself? Any documentation that I can refer to?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.