Oosd Final Report
Oosd Final Report
Slot : L27-L28
Table of Contents
1. Introduction 3
1.1 Abstract………………………………………………………………………………………….... 3
1.2 Aim……………………………………………………………………………………………….. 3
1.3 Objective………………………………………………………………………………………….. 3
1.4 Purpose...…………………………………………………………………………………………. 4
1.5 Scope…………………………………………………………………………………………….... 4
2. Past work………………………………………………………………………………………... 4
3. Problem statement…………………………………………………………………………….... 4
4. Process models…………………………………………………………………………………... 5
4.1 Project Description for choosing the Model…………………………………………………….... 5
4.2 Choosing the Model ……………………….……………………………………………………... 5
4.3 Why not other models…………………………………………………………………………….. 5
5. Project plan…………………………………………………………………………………….... 6
5.1 Gantt chart………………………………………………………………………………………... 6
5.2 WBS…………………………………………………………………………………………….... 8
6. Requirements (Functional and non-functional)........................................................................... 9
6.1 Non-Functional Requirements…………………………………………………………………… 9
6.2 Functional Requirements………………………………………………………………………… 9
7. User Interface Design………………………………………………………………………….. 9
7.1 Application Controls…………………………………………………………………………… 10
7.2 Screen 1… N…………………………………………………………………………………….. 11
8. Design…………………………………………………………………………………………... 13
8.1 System overview………………………………………………………………………………… 13
8.2 Database Tables………………………………………………………………………………….. 14
8.3 Collaboration Diagram…………………………………………………………………………... 14
8.4 Use Case Diagram……………………………………………………………………………….. 15
8.5 Activity Diagram……………………………………………………………………………….... 16
8.6 Deployment Diagram……………………………………………………………………………. 16
8.7 Class diagram……………………………………………………………………………………. 17
9. CODE…………………………………………………………………………………………... 17
10. Testing…………………………………………………………………………………………. 18
10.1 Test cases……………………………………………………………………………………….... 18
10.2 Testing….………………………………………………………………………………………... 19
11. Modules………………………………………………………………………………………... 20
12. Maintenance…………………………………………………………………………………... 20
13. Conclusion…………………………………………………………………………………….. 21
14. References……………………………………………………………………………………... 21
15. Appendix………………………………………………………………………………………. 22
2
1.Introduction
1.1 Abstract
The importance of yoga is renowned worldwide and its health benefits, which were
preached by ancient sages, have stood the test of time. Even though yoga is
becoming preeminent, there are important challenges faced while doing yoga such
as performing it with incorrect form, the classes being expensive and the shortage of
time in our busy lives and it provides many users to practice users in a zero
judgement environment which can make a huge difference for many to help gain
their confidence as well. Artificial intelligence and Machine learning techniques
exhibit promising solutions for human pose estimation.
Our reagent will be trained with help of expert yoga gurus and images of
correct postures for every Asan there is and integrated into the app. This reagent will
check the users technique to perform the asan through live feed and in case the user
is unable to perform or wrongly performing the Asan the reagent will detect it and
intimate the user with the right technique to correct the pose with an image of it. As
of now there are not many applications of using the technology to work as a tutor
specifically in the case of yoga. We surveyed the various technologies that can be
used for pose estimation and concluded the best method based on the usability for
the web application. We have made the application as user friendly as possible.
1.2 Aim
We aim to make an AI based platform which will teach the customers the different
yoga asanas and will check if the asana is performed with correct postures or not ,
taking a live video as input. The platform will provide a complete guide for a full body
yoga session with do’s and don'ts.
1.3 Objective
● AI Model to identify if the posture of the aasan performed is perfect or not
(output will most probably be in percentage format).
● Make it into an API which will be used in the later software.
● Create an intuitive platform which will train the user ,the yoga asanas and will
eventually check if the asana selected is performed to perfection or not(taking
live video as an input)
3
1.4 Purpose
People all over the world have been quarantined this past year or so ,which gave us
the idea to implement something which could help us be fit in the comfort of our
homes. What better than yoga for staying fit.
Yoga, in all of its forms, creates positive energy. As a result of practice, our
mindset becomes positive. In an atmosphere of positive energy one becomes
successful, and lives a life where powerful visions become reality.Yoga training has
so many good health aspects from which a person can benefit. Considering the
above scenario and the booming online fitness world ,this platform could be a great
success if executed perfectly.
1.5 Scope
Yoga, being there for 1000’s of years in our society, can be performed by anyone,of
any age and condition.Being a very feasible option which can be done anywhere
with limited resources, is a great exercise for mind and body. Gymming on the other
hand requires equipment and proper guidance which when performed without ;
results in major injuries.
2. Past work
Youtube has become a great platform for acquiring new skills on our own. But the
content there is huge to identify if it’s useful or not.
● Apps like Cult.fit provide live fitness sessions on yoga but lack one to one
communication and scope to find if asanas performed are correct or not.
● Trainers on ZOOM and other video calling platforms charge too much for their
time.
3. Problem Statement
Yoga is one of the most sought after activities in the world and with the pandemic
coming lockdowns being imposed the number of people wanting to to practice yoga
at home has only gone up exponentially for numerous reasons such as Raja yoga
helps increase positivity, ability to focus on the task given at hand, be more self
aware, etc. Power yoga helps boost one’s immunity, posture, flexibility, lung capacity,
etc . Yoga is not only limited to above but is a very vast practice and we are
motivated to combine it with current technology to deliver it to each of us at our home
4
requiring very limited resources and cost can be very beneficial.Yoga can be
dangerous if the steps are not performed as they should be. So beginners need to
have some guidance while starting out to avoid any major injuries or side effects .
Considering the below scenario and the booming online fitness world , our platform
could be a great success if executed perfectly.
4.Process Model
4.1 Project Description for choosing the Model
Our project has too many modules to work with and since the AI world is constantly
developing new resources , our requirement isn’t clear at the start of the project. To
make the AI model more and more efficient ,improvements have to be made with
time. Flutter which we will use to make our app and web-app is comparatively a new
technology with a lot of potential and scope. It is difficult to master in one go.
5
model and V-Model. Incremental Model was a good option but since our project
doesn't have any stand-alone modules that can be released and used, we rejected
the idea. As we identified all the risks at the start of the project, we dont require
access to it at every iteration. Hence rejecting the Spiral model.
5.Project plan
5.1Gantt Chart
August
September
6
October
November
7
December
WBS
8
6.Requirements (Functional and non-functional)
6.1 Functional Requirements
● User’s password should be in encrypted form.
● Should display invalid email/password combinations for unauthorized access.
● Should not allow multiple accounts with the same email id.
● Email id should be legitimate.
9
● Login Page
10
● Yoga Aasan predictor and checker
7.2 GUI
● Sign Up Page
11
● Login Page
12
● Yoga Aasan predictor and checker
8. Design
8.1 System overview
13
8.2 Database Tables
14
8.4 Use Case Diagram
15
8.5 Activity Diagram
16
8.7 Class diagram
9. Code
LINK : https://github.com/JyotirAdi/yoga-project
17
10. Testing
10.1 Test Cases
● Registration
Inp Outp
ut ut
● Logging in
Inp Outp
ut ut
Inp Outp
ut ut
18
User can now share their video
Allow video permissions
10.2 Testing
● Test cases for Web App
19
11. Modules
12. Maintenance
Corrective maintenance
The application would go under regular testing so bugs would be discovered and
solved and updated.
Adaptive maintenance:
Currently our application is only available on the web but we will expand it to android
, ios , windows , etc .
20
Perfective maintenance:
We will be updating the reagent with several new asanas and also develop a
meditation tutor which will help users optimize their meditation duration .
13. Conclusion
We were able to develop a yoga tutor which will help users to effectively practice
various yoga asanas with reformed pose and techniques at there convinnient timing ,
place , affordable supervised enviorment and zero judgement enviorment ( many
users feel they might be judged at a class setting in a studio due to there body type,
colour, race, sex, etc ). Also ensuring that users can follow an optimized set of
asanas to make most use of their time.
14. References
● HRNet/HigherHRNet-Human-Pose-Estimation: This is an official implementation of
our CVPR 2020 paper "HigherHRNet: Scale-Aware Representation Learning for
Bottom-Up Human Pose Estimation" (https://arxiv.org/abs/1908.10357)
● Mobile Data Science and Intelligent Apps: Concepts, AI-Based Modeling and
Research Directions Iqbal H. Sarker1,2 & Mohammed Moshiul Hoque2 & Md. Kafil
Uddin1 & Tawfeeq Alsanoosy3 Applications of AI in classical software.pdf
● DeepPose: Human Pose Estimation via Deep Neural Networks Alexander Toshev
toshev@google.com Google Christian Szegedy szegedy@google.com Google
DeepPose Human Pose Estimation via Deep Neural Networks.pdf
21
● Human Body Posture Recognition Using Artificial Neural Networks Manu Bali,
Devendran V Human Body Posture Recognition Using.pdf
● Pose Trainer: Correcting Exercise Posture using Pose Estimation Steven Chen *
Richard R. Yang ∗ Department of Computer Science, Stanford University pose
trainer.pdf
15. Appendix A
● LSTM: The LSTM model will learn a function that maps a sequence of past
observations as input to an output observation. As such, the sequence of
observations must be transformed into multiple examples from which the
LSTM can learn.
22