Automated Aerobics Trainer
Purpose of document
The purpose of this article is to introduce the idea of Automated Aerobics Trainer to the reader. This is to develop the plan for the system that how the workflow will be done.
Definitions, Acronyms, and Abbreviations
Name/Term
| Description
|
Kinect
| Microsoft Kinect Sensor for Windows.
|
MoCap Dataset
| Motion Capture Dataset.
|
Dataset
| Dataset of exercises that is publicly available.
|
Introduction
Maintenance of a healthy life depends upon regular exercise. However, many exercisers perform improper exercises during their workouts and as a result they don’t exploit maximum benefit from exercise and also creates increasing risk of injury. These injuries limit a person to move and perform his daily activities. Identification of proper form of exercise is hence very necessary.
The need of building a system, by which a person just repeats exercises and the system analysis exercise, must be considered. Given input from a Microsoft Kinect camera, our objective is to predict which aspects of exercise can be improved most. With this aim, we are developing a system that will overcome these problems.
Our system performs following steps:
- Pre Processing on dataset.
- Extracting features from the practicing of person.
- Constructing model from learned features.
- Comparing the practical movements of person with the learned model.
Literature Review
This section describes the Automated Aerobics Trainer and components of this system. It uses Microsoft Kinect Camera, Motion Capture Dataset also known as MoCap.
Microsoft Kinect Camera is a device that is used to capture the motion of object. It is a widely used device and used in gaming as well. In this system it will be used to track the motion of the user who is performing the exercise. It will provide the movement and position of joints in 3D space.
Motion Capture Dataset, MoCap provide information of actors who performed exercise and their motion in 2 separate files. One is Acclaim Skeleton File .asf, that contains information of actor and Acclaim Motion Capture file .amc, that file contains motion information. Matlab parser combines the .amc and .asf file to form a complete motion.
Project Vision
Problem Statement
While performing exercise at home, people usually have high risk of injury because of inappropriate movement of our body. Benefits utilization from exercise is also very low when exerciser performs incorrect exercise. These problems may be overcome by hiring instructor, but it comes with its own constraints. In hiring instructor price, quality of instructor and time management are very crucial factor to be considered.
In case of recovering from injuries, people usually have to perform exercises. Patient are shown exercise once because of limited time therapist have, so in this case if there is ambiguity in understanding, this ambiguity may lead to a greater risk.
The need of building a system, by which a person just repeats sample exercises and the system analysis exercise, must be considered. Given input from a Microsoft Kinect camera, our objective is to predict which aspects of exercise can be improved most. With this aim, we proposed this system.
Business Opportunity
This system will provide facilities in multiple domains. It can target anyone who is an exercise performer, whether it’s an individual person or a training institute. Automated Aerobics Trainer is a complete fitness package for a home user. Our system also provides assistance to the physical trainer at gym for improving exercise or at medical center for identifying the incorrect flow to exercise, by looking at the error suggested by the system.
Objectives
Our first and primary objective will be replacing instructor or a physical therapist completely for a home user. Because home based care is very effective and convenient for people. It is also a cost-efficient. We will mainly focus on accuracy of our system, so it could be more reliable and accurate for user. If user performs an incorrect exercise, our system will be capable of guiding the user in real time environment.
Scope
Physical exercise helps restore movement and function when someone is affected by injury, illness or disability. Trainer or instructors help people affected by injury, illness or disability through movement and exercise. They maintain health for people of all ages, helping people to manage pain and prevent disease. Whatever the injury, illness or pain it is, first preference of people is always treatment at home because it is most cost-effective and high quality care. Our proposed system will not only provide home based care but also cost-effective means of recovery. We will mainly focus on replacing the instructor and providing an accurate system that will help person to perform his physical exercise in a correct way.
Constraints
We have following constraint on our system
- Our system analysis a single person.
- Kinect camera is necessary for our system.
- Accuracy depends upon dataset.
- Injuries cannot be identified.
Stakeholder Description
Our system has following stakeholders
- User: Person who will be performing exercises.
- Instructors: Want to observe the movements of athletes.
- Subjects: Performing exercise to record their skeletal information’s and motions for dataset.
- Physiotherapist: Observe movements of patients with injuries.
Stakeholder Summary
This section will provide a brief overview on stakeholders and users of the system.
Varieties of parties are interested in this project. Everyone is playing their roles at different stages, from development stage of dataset to the deployment stage of this project in various fields. It begins from organizations like CMU Carnegie Mullen University and many other institutes, which developed dataset known as MoCap. Instructors, Physiotherapist and Athletes need this system in operational form to perform the actions, observe and make recommendations to athletes.
Key High Level Goals and Problems of Stakeholders
Our system will be a practical solution for motion quantification that allows the user to evaluate performance during in-home exercising. It goes beyond the state-of-the-art by monitoring multiple joints and calculating the error while performing exercise.
Our goal is to provide user a real time environment where he can perform exercise and without getting instructor help, he should be able to see analysis on his exercise. For improvement in his performed exercise, our system will recommend user to perform incorrect action again.
System Requirement Specification
The purpose of this system requirement specification is to describe features of this product. Technologies that is necessary for the working of the Automated Aerobics Trainer. Environments in which the developed system will provide accurate results and the sequence in which program will provide services to athletes in order to increase the benefits of the exercise.
This is a desktop-based system, which will use MoCap dataset and train the model for given exercises. Later any user will come and perform the exercise in front of Kinect camera. System will examine the exercise and display the accuracy of the performed exercise.
Features
Automated Aerobics Trainer works in following steps:
- Displays results of exercise.
- Performs comparisons with the trained model.
- Trains the model based on MoCap.
- Captures skeletal motion of the user performing exercise in front of camera.
Model Training
Description and Priority
Program will add MoCap dataset to train the model. This dataset is developed under a controlled environment. It will classify the different kind of motions. This will be one time process for training dataset.
Stimulus/ Response Sequences
- User starts the program.
- Opens the model training tab.
- Selects the skeletal information
- Selects the motion information
- Starts training the model.
Functional Requirements:
REQ-1: Skeletal information is available i.e. .amc files.
REQ-2: Motion information is available .i.e .asf files.
Pre-Processing
Description and Priority
Before analyzing the exercise and training the model, motion will normalized using translation and motion techniques. It will bring skeleton to standard point in the frame.
Stimulus/ Response Sequences
- System reads MOCAP dataset or motion from the Kinect camera.
- Performs the translation.
- Performs the rotations.
- Now motion will be available for further comparisons.
Functional Requirements:
REQ-1: Skeletal information is available i.e. .amc files.
REQ-2: Motion information is available i.e. .asf files.
REQ-3: Microsoft Kinect Camera is working for capturing movement of user.
Error Measurement
Description and Priority
System will perform analysis on the motion of the user captured from the camera and calculate the errors by doing the comparisons with the trained model and display the errors that occurred during the exercise.
Stimulus/ Response Sequences
- User selects to perform exercise.
- Microsoft Kinect Camera starts capturing the motion information.
- Start performing the exercise.
- System performs normalization on the captured information.
- System performs analysis on normalized motions.
- System measures the errors.
Functional Requirements:
REQ-1: Trained model of exercises.
REQ-2: Kinect camera captures the motion.
REQ-3: Pre-Processing module working.
Live Suggestion
Description and Priority
If the user is performing the incorrect motion system will identify the points where user is performing incorrect motion by highlighting those points.
Stimulus/ Response Sequences
- User selects perform exercise.
- Start performing the exercise.
- System starts examining the exercise.
- System highlights the points where user is incorrect.
Functional Requirements:
REQ-1: Trained model of exercises.
REQ-2: Kinect camera captures the motion.
REQ-3: Pre-Processing module working.
ALERT
Description and Priority
If the user is performing the incorrect motion system will alert beep and beep stops when the motion is correct again.
Stimulus/ Response Sequences
- User selects perform exercise.
- Start performing the exercise.
- System starts examining the exercise.
- If the user perform incorrect exercise system starts beep.
- After user performs the correct exercise beep stops.
Functional Requirements:
REQ-1: Trained model of exercises.
REQ-2: Kinect camera captures the motion.
REQ-3: Pre-Processing module working.
REQ-4: Sound device is connected.
Workout Report
Report will be generated after completion of workout.
Stimulus/ Response Sequences
- User selects perform exercise.
- Start performing the exercise.
- System starts examining the exercise.
- Analyses the overall workout
- Show results accuracy in form of percentage.
Functional Requirements:
REQ-1: Trained model of exercises.
REQ-2: Kinect camera captures the motion.
REQ-3: Pre-Processing module working.
Functional Requirements
Robustness
The system needs to be robust enough generate a realistic and accurate environment based on the locations of the Kinect camera and performer. The system should also be able to dynamically accommodate all position and lightning issues so that a clear and accurate input is obtained for the calculation of errors.
Reliability
The system should able to continuously run for a long duration of time and should not suffer from system slowdowns or crashes caused from memory leaks and arbitrary actions. System should be reliable in all type of interrupt e.g. another person is entering the Kinect area.
Portability
The software should be able to run on any Microsoft windows based platform. To set up and tear down the entire system, displays need to be set in place and user not disturb while performing exercise. The atmosphere is just like instructor is observing the performer. Kinect need to be connected to the computer. Ideal set up/tear down time should be approximately two minutes.
Ease of Use
Someone with little to none technical experience in the operations of electronics should be able to setup and use this system by following a simple set of instructions or some video tutorials.
Ease of Learning
The learning curve for this software should be short since the software should perform the corresponding tasks based on natural human motions.
Use Case Diagram
High Level Use Cases
Initiate Session
Use case ID:
| 1
|
Use case Name:
| Initiate Session
|
Actor:
| User
|
Type:
| Primary
|
Description:
| System should be initiated before use.
|
Choose Excercise
Use case ID:
| 2
|
Use case Name:
| Choose Exercise
|
Actor:
| User
|
Type:
| Primary
|
Description:
| Person can choose any exercise from the given list.
|
Animate Excercise
Use case ID:
| 3
|
Use case Name:
| Animate Exercise
|
Actor:
| User
|
Type:
| Primary
|
Description:
| Person can view how to perform the selected exercise.
|
Suggest About Excercise
Use case ID:
| 4
|
Use case Name:
| Suggest about Exercise
|
Actor:
| System
|
Type:
| Primary
|
Description:
| After person has performed exercise, he can get the suggestion from the system about his exercise.
|
View Report
Use case ID:
| 5
|
Use case Name:
| View Report
|
Actor:
| User
|
Type:
| Primary
|
Description:
| After performing exercise, Person can view the error in his exercise in form of percentage, or by highlighting wrong steps.
|
Train Data for Excercise
Use case ID:
| 6
|
Use case Name:
| Train Data for Exercise
|
Actor:
| System
|
Type:
| Primary
|
Description:
| System needs to be trained for performing analysis on exercises.
|
Detect Skeleton
Use case ID:
| 7
|
Use case Name:
| Detect Skeleton
|
Actor:
| System
|
Type:
| Secondary
|
Description:
| When person comes in front of camera, system must detect its skeleton
|
Normalize 2D Features
Use case ID:
| 8
|
Use case Name:
| Normalize 2D Features
|
Actor:
| System
|
Type:
| Primary
|
Description:
| Perform translation and rotations on images received from Kinect camera.
|
Extract 2D Features
Use case ID:
| 9
|
Use case Name:
| Extract 2D Features
|
Actor:
| System
|
Type:
| Primary
|
Description:
| After normalization of frames, features must be extracted
|
Normalize 3D Features
Use case ID:
| 10
|
Use case Name:
| Normalize 3D Features
|
Actor:
| System
|
Type:
| Primary
|
Description:
| Normalize 3D features of MoCap using translation and rotation.
|
Extract 3D Features
Use case ID:
| 11
|
Use case Name:
| Extract 3D Features
|
Actor:
| System
|
Type:
| Primary
|
Description:
| Extract 3D features from a normalized MoCap Data.
|
Extended Use Cases
Initiate Session
Use case ID
| 1
|
Use case Name
| Initiate Session
|
Actor:
| User
|
Description:
| System should be initiated before use
|
Trigger:
| Event will be initiated by the User
|
Pre-condition:
| Person has system
|
Post-condition:
| Person initiate session
|
Normal Flow:
| 1. User stand in front of Kinect camera
|
2. Kinect detects user
| |
3. System allow person to perform exercise
| |
Alternative Flow:
| 2a. Kinect doesnot detect user. Use case ends
|
Frequency of use:
| High
|
Special requirements:
| Kinect camera is connected
|
Choose Excercise
Use case ID
| 2
|
Use case Name
| Choose Exercise
|
Actor:
| User
|
Description:
| Person can choose any exercise from the given list.
|
Trigger:
| Event will be trigger by the User
|
Pre-condition:
| Person must have access to system
|
Post-condition:
| Selected exercise is displayed
|
Normal Flow:
| 1. User click on menu button
|
2. User select view exercise tab
| |
3. User selects required exercise from list
| |
4. System selects the required exercise
| |
Alternative Flow:
| 3a. List of exercise is not displayed by system
|
3b. System tries to fetch exercise list from database
| |
Frequency of use:
| Normal
|
Special requirements:
| None
|
Animate Exercise
Use case ID
| 3
|
Use case Name
| Animate Exercise
|
Actor:
| User
|
Description:
| Person can view, how to perform the selected exercise
|
Trigger:
| Event will be trigger by User.
|
Pre-condition:
| Exercise is selected
|
Post-condition:
| System shows how to perform exercise
|
Normal Flow:
| 1. User clicks on Animate exercise
|
2. System animate exercise
| |
Alternative Flow:
| 2a. System doesnot animate exercise.
|
2b. System goes back to menu
| |
Frequency of use:
| Normal
|
Special requirements:
| None
|
Suggest About Exercise
Use case ID
| 4
|
Use case Name
| Suggest about Exercise
|
Actor:
| System.
|
Description:
| After person has performed exercise, he can get the suggestion from the system about his exercise
|
Trigger:
| Event will be triggered by the User.
|
Pre-condition:
| Exercise is performed
|
Post-condition:
| Person gets suggestion about his exercise
|
Normal Flow:
| 1. User clicks on get suggestion button
|
2.System perform analysis on exercise
| |
3. System displays suggestion for exercise
| |
Alternative Flow:
| 2a. Exercise is not performed by user
|
2b. System ask to repeat exercise
| |
Frequency of use:
| Normal
|
Special requirements:
| None
|
View Report
Use case ID
| 5
|
Use case Name
| View Report
|
Actor:
| User
|
Description:
| After performing exercise, Person can view the error in his exercise in form of percentage, or by highlighting wrong steps
|
Trigger:
| Event will be triggered by the User.
|
Pre-condition:
| Exercise is performed
|
Post-condition:
| Error is displayed on screen
|
Normal Flow:
| 1.User perform exercise
|
2. System analysis the exercise
| |
3. System let user to view error in two forms
| |
4. User selects to view error in form of percentage or wronged performed steps
| |
Alternative Flow:
| 2a. System doesnot perform analysis on exercise
|
2b. System ask to perform exercise again
| |
Frequency of use:
| High
|
Special requirements:
| Model is trained
|
Train Data For Exercise
Use case ID
| 6
|
Use case Name
| Train Data for Exercise
|
Actor:
| System
|
Description:
| System needs to be trained for performing analysis on exercises.
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| System has dataset for training
|
Post-condition:
| System is trained for performing analysis on exercise
|
Normal Flow:
| 1. Programmer writes the algorithm
|
2. Dataset is trained on algorithm
| |
3. System is ready to perform analysis on performed exercise.
| |
Alternative Flow:
| 2a. Model is not trained.
|
2b. System displays error
| |
2c. System is not ready to perform analysis
| |
Frequency of use:
| High
|
Special requirements:
| None
|
Detect Skeleton
Use case ID
| 7
|
Use case Name
| Detect Skeleton
|
Actor:
| System
|
Description:
| When person comes in front of camera, system must detect its skeleton
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| Kinect camera is present
|
Post-condition:
| Skeleton is detected
|
Normal Flow:
| 1. User stand in front of Kinect camera
|
2. Kinect detects the person
| |
3. System makes its skeleton
| |
Alternative Flow:
| 3a. System doesnot draw skeleton. Use case ends.
|
Frequency of use:
| High
|
Special requirements:
| User must be present in front of Kinect camera
|
Normalize 2D Features
Use case ID
| 8
|
Use case Name
| Normalize 2D Features
|
Actor:
| System
|
Description:
| Perform translation and rotations on images received from Kinect camera.
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| Kinect camera is present
|
Post-condition:
| Normalized features.
|
Normal Flow:
| 1. System will capture motion using Kinect camera.
|
2. System performs normalization.
| |
3. System performs translation.
| |
Alternative Flow:
| 1a. System doesnot capture motion
|
2b. Check Kinect Camera and recapture
| |
Frequency of use:
| High
|
Special requirements:
| None
|
Extract 2D Features
Use case ID
| 9
|
Use case Name
| Extract 2D Features
|
Actor:
| System
|
Description:
| Extract 2D features from normalized data.
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| Normalized data is available.
|
Post-condition:
| Extracted features of motion.
|
Normal Flow:
| 1. Normalized 2D data available.
|
2. Extract features of motion from normalized data.
| |
Alternative Flow:
| 1a. No normalized data available. Use Case ends.
|
Frequency of use:
| High
|
Special requirements:
| Normalized data must be available.
|
Normalize 3D Features
Use case ID
| 10
|
Use case Name
| Normalize 3D Features
|
Actor:
| System
|
Description:
| Normalize 3D features of MoCap using translation and rotation.
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| MoCap is available.
|
Post-condition:
| Normalized 3D features.
|
Normal Flow:
| 1. System will use MoCap data.
|
2. System performs rotation.
| |
3. System performs translation.
| |
Alternative Flow:
| 1a. System doesnot get MoCap data.
|
1b. System doesnot perform normalization.
| |
Frequency of use:
| Low
|
Special requirements:
| MoCap is available.
|
Extract 3D Features
Use case ID
| 11
|
Use case Name
| Extract 3D Features
|
Actor:
| System
|
Description:
| Extract 3D features of motion from a MoCap.
|
Trigger:
| Event will be triggered by the System.
|
Pre-condition:
| Normalized data is available.
|
Post-condition:
| Extracted features of motion.
|
Normal Flow:
| 1. Normalized 2D data available.
|
2. Extract features of motion from normalized data.
| |
Alternative Flow:
| 1a. No normalized data available. Use Case ends.
|
Frequency of use:
| Low
|
Special requirements:
| Normalized data must be available.
|
Activity Diagram
Domain Model
Class Diagram
Operation Contracts
InitiateSession();
Contract ID:
| OC-1
|
---|---|
Operation:
| InitiateSession();
|
Type:
| Class
|
Cross Reference:
| Use Case: Initiate Session
|
Pre-Condition:
| Person has system
|
Post-Condition:
| Access is granted to person
|
ChoseExercise();
Contract ID:
| OC-2
|
---|---|
Operation:
| ChoseExercise();
|
Type:
| Class
|
Cross-Reference:
| Use Case: Choose Exercise
|
Pre-Condition:
| Person must have access to system
|
Post-Condition:
| Selected exercise is displayed
|
AnimateExercise();
Contract ID:
| OC-3
|
---|---|
Operation:
| AnimateExercise();
|
Type:
| Class
|
Cross-Reference:
| Use Case: Animate exercise
|
Pre-Condition:
| Exercise is selected
|
Post-Condition:
| System shows how to perform exercise
|
SuggestExercise();
Contract ID:
| OC-4
|
---|---|
Operation:
| SuggestExercise();
|
Type:
| Class
|
Cross-Reference:
| Use Case: Suggest about Exercise
|
Pre-Condition:
| Exercise is performed
|
Post-Condition:
| Person gets suggestion about his exercise
|
ViewReport();
Contract ID:
| OC-5
|
---|---|
Operation:
| ViewReport();
|
Type:
| Class
|
Cross-Reference:
| Use Case: View Report
|
Pre-Condition:
| Exercise is performed
|
Post-Condition:
| Error is displayed on screen
|
Sequence Diagram
Initiate Session
Perform Exercise
Choose Exercise
View Report
Suggest for Exercise
Normalize 2D Feature
Extract 2D Feature
Detect Skeleton
Normalize 3D Feature
Extract 3D Feature
System Sequence Diagram
Architecture Diagram
References
[1] http://resources.mpi-inf.mpg.de/HDM05/
[2] http://MoCap.cs.cmu.edu/search.php?maincat=4&subcat=9
[3] Vo Tran Trong Nghia. “Time Validating the Accuracy of Physiotherapy Exercises.” Department of Computer Science and Information Engineering, National Central University, Taiwan. 2017 IEEE International Conference on Consumer Electronics.
Comments
No comments yet.