Top Banner
-Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1
31

-Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

Dec 18, 2015

Download

Documents

Reynard Ross
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

1

-Baljeet Aulakh -Arnold Csok

-Jared Shepherd-Amandeep Singh

EEC 490 Spring 2012

Kinect Fitness Trainer

Page 2: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

2

Project OverviewRecognition of Body Movements and

ExercisesEverything is Voice ControlledAbility to Calculate Velocity And

Acceleration Write Statistics of Movements to an

Output File User Interface Implementation

Page 3: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

3

Requirements

Hardware: Kinect + Laptop(2.66Hz above)

Software: Kinect SDK + Microsoft Speech Platform + C# 2010

Environment: Quite Room(voice) + Only one thing moving at a time

Page 4: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

4

User Interface

Page 5: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

5

Step by Step

Voice Recognition Detection Algorithms Velocity and Acceleration Ability to Write Statistics to an

Output file Documentation and Website

Page 6: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

6

Voice Recognition

Allow User To Control Kinect By Voice

Ease of Access to the Program

As Simple as- Start && Stop

Say Which Exercise to Count

Page 7: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

7

How Voice Recognition Work

Initialize the Audio Source from the Sensors

Initialize Speech Recognition by Speech Recognizer

Create a Speech Recognition Engine with Exercise Names

Listen to User SpeechRespond to User Speech

Page 8: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

8

Problem With Voice RecognitionThe First Release of Language Pack

Doesn't Have a Reliable Confidence Model

Kinect Tries To Match Every Audio Source It Picks Up

Problem with Matching the Right Exercise Because of This

Page 9: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

9

Possible Solutions For Voice Recognition

Test Confidence Interval for Best Accuracy

Use Fitness Trainer in a Quiet Environment

Introduce Noise Cancelation Use of Headset/BluetoothWait for a More Reliable Language Pack

Page 10: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

10

Detection Algorithms

Resources Recognition algorithms List of Recognized Body Movements An Example Velocity and Acceleration

Page 11: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

11

20 Joint Skeleton SystemProvided By Microsoft Research Kinect

Page 12: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

12

Resources 20 Joint Skeleton System Each joint gives x, y and z valuesVector Math to find the angleTimer functionalityVoice recognition functionalityFlag Variables in programming.Counters to store the repetition.

Page 13: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

13

Recognition algorithms

Simple cases:• Displacement of the Joints• Displacement in the X, Y, Z Direction Moderate cases:• Calculating Angles Between Joints• Setting Threshold For Some Angles Complex cases:• Set a Step by Step Routine using all of the

above to detect a motion

Page 14: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

14

Recognized Exercises

The Following Exercises Are Recognized:

1. Squats

2. Upper Left Punch

3. Upper Right Punch

4. Right Punch

5. Left Punch

6. Right Arm Curl

7. Left Arm Curl

Page 15: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

15

Recognized Exercises: Continued

8. Left Kick

9. Right Kick

10. Bowling

11. Hip Abduction

12. Lateral Weight Shift

13. Hamstring Stretch

Counter For All Of These Exercises

Page 16: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

16

An example: Bowling motion

Page 17: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

17

Bowling final position

Page 18: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

JOINT STATISTICS

Each exercise has the average acceleration and velocity of all joints calculated.

The statistics are time stamped and saved into a text file.

Page 19: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

Two points

Distance between them

Time to travel between them

AVERAGE VELOCITY

Page 20: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

AVERAGE VELOCITY

Initial and final position of the joint

The distance formula

A Stopwatch

Page 21: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

INITIAL AND FINAL POSITION

Save reference position(point) of skeleton for use in all calculations in defaultPosition[20].

getDisplayPosition(data.Joints[JointID.HipCenter]);

getDisplayPosition(data.Joints[JointID.Spine]);

The order is very important

Page 22: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

DISTANCE FORMULAJoints lie on a Cartesian plane

However there is a caveat; The position is measured in pixels

Pixels Are Converted Into Centimeters with the conversion factor of 72 DPIx2 = (x2 * 2.54) / (72);

Page 23: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

TEXT FILE

For every joint returned from the array generated from GetValues

foreach (JointID joint in Enum.GetValues(typeof(JointID)))

JointID Joint = (JointID)i;When int is typecasted to JointID it returns the

name of the joint at that position, NOT A STRING

Page 24: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

24

Display / Interface

The display on the bottom of the screen shows what exercise is being done by the user

The state: Start / StopExercise counterExercise to be detected Exercise that was detected

Page 25: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

25

Known Limitations

1. Blocked by an object

2. Overlapping joints

3. Distance from the Kinect Throws Off X, Y, Z coordinates

4. Two People In Front Of Kinect

5. Joints Move During Angle Calculation

These Limitations Make The Accuracy of the Exercise Recognition Difficult

E.g. Crossed arms...

Page 26: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

26

Future ApproachesFix Voice Recognition problemHave a new accurate Skeleton SystemBe able to record and replay exercisesMore complex body motionsIntroduce more exercisesFind solutions to the Limitations for

example a solution to the overlapping joints and blocking objects.

Page 27: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

27

Conclusion

Learned about Kinect programming Use with windows Use of Kinect in different areas other

than gaming Learned and getting used to C#

Page 28: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

28

Website And Facebook Page

Link To Our Webpage:

“http://www.baljeetaulakh.com” Link To Our Facebook Page:

“https://www.facebook.com/pages/Kinect-Fitness-Trainer/236918233072748”

Page 29: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

29

Questions?????

OR

Suggestions?

Page 30: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

30

End of Slides

Page 31: -Baljeet Aulakh -Arnold Csok -Jared Shepherd -Amandeep Singh EEC 490 Spring 2012 Kinect Fitness Trainer 1.

31

Fun Time!!!!!

Demonstration!!!!!