Status Report 3/8/19

Team Status

Risks and Contingency Plans

The major risk for our project is balancing extensibility and the amount of work required to achieve it. Since various yoga poses differ in special instructions, symmetricity, alignment and even the position of endpoints, it’s challenging to implement programs that apply to all the poses. Thus, some standard metrics such as whether a person’s feet should stay on the ground need to be hard-coded for each pose rather than computed because there’s no simple way to compute that information from input images. On the other hand, if we hard-code all standard metrics for each pose, adding new poses will be costly. We will have to observe images of the standard poses and manually enter 40+ numbers for each pose. This greatly reduces the extensibility of our application.

 

Therefore, we decided to hard-code only some of the standard metrics such as special instructions and symmetricity, and compute other metrics using a generic approach. For example, we need the name of the body part that is closest to the endpoints (i.e. wrists and ankles) so that

we can tell the user to “Move your (endpoint) left ankle down towards your (closest body part) right thigh”. We plan to write a generic function that computes the closest body parts and outputs their names. This function will be applicable to all poses so no hard-coding is needed.

 

Changes and Schedule Updates

 

This week we were able to get the basic integration of angle metrics and verbal instructions. Now given the image of the user doing a yoga pose, we can develop a simple instruction to correct it. Right now, we are just outputting all the instructions and not necessarily ordering them in a certain way.

 

Correct Pose Incorrect Pose

 

Output of our program:

In addition, we have outlined our plan to tackle choosing motion words as well as the second part of the template 2.0 instruction where we use other body parts as reference for movement.

 

Definition: Endpoints are defined as the hands or feet. They are fixed if the feet or hands are on the ground.

 

End Motion Generation: We will precompute which body part is closest to the endpoint for a certain pose to provide as reference.

 

Priority Motion Word How it is chosen
1 Align If a certain part of a pose requires symmetry, then we will always use align
2 Straighten Standard angle for a given body part is between 170 and 190 degrees.
3 Move An endpoint is not fixed, move instruction will be chosen rather than bend.
3 Bend Endpoints (such as  are fixed, which means that only bending a joint is possible

 

Sandra
Accomplished Tasks

This week, I worked primarily on angle/verbal instruction with Tian and the design report. I primarily focused on writing the initial run through of verbal instruction. This was before we integrated it with the pose comparison class. I defined functions that determined the motion verb, identified the misaligned body parts, and set up the similarity method.

In addition, I wrote the pipeline code to take in an image and determine a correction instruction based on our pose comparison and vernal instruction generator libraries.

 

With the design report, I worked on transferring the report from Google Drive to latex and the formatting on Latex. Also, I gathered references and developing the bibliography. I finished up my parts within the design report and did overall editing as well.

Upcoming Deliverables

This upcoming week is spring break, so I do not anticipate working on the project at that time. The week after spring break I will be testing out basic instruction set with more pictures of incorrect tree pose. In addition, I will work on implementing 2 of the movement verbs for our instruction generator as well as incorporating the similarity method.

Chelsea
Accomplished Tasks

This week I shifted my focus from verbal instruction generation to the UI component. I collected examples of user interfaces of popular yoga mobile apps from Google images and Pinterest, and highlighted their unique features. After examining these features with Sandra and Tian, we all agreed to change the UI design slightly. Specifically, we will use carousel cards with a gif and several labels/icons (such as label that shows time elapsed, etc) instead of static images to show the standard poses.

Therefore, I have started working on a carousel card class in python. I have also integrated the landing page with the yoga routine page.

Earlier this week, my teammates and I worked on editing the latex design document together to reduce redundancies and improve cohesion. I made changes to the verbal instruction diagram to reflect the newly developed template method 2.0.

Upcoming Deliverables

We have previously allocated the spring break week to be our slack week. Since we are not behind on our tasks, I do not anticipate accomplishing concrete deliverables. However, I will work on the UI more during this week, as it doesn’t depend on other components of our project so much.

Tian
Accomplished Tasks

This week I worked with Sandra to integrate a basic template instruction generator with the pose comparison algorithms. The simple instruction generator takes in static images for Tree Pose and Mountain Pose and outputs text instructions such as “Move right ankle up”. We also discussed different incorrect user poses that will trigger different verbs such as “move” and “bend” and how to implement this logic. The detailed results are presented in our team status report.

I implemented the algorithm to generate direction word (i.e. “up” and “down”) for the instruction. The algorithm simulates standard angles and keypoints on the skeleton of the user. In this way, we have both user body parts and standard body parts in the same cartesian system and it becomes easy to determine if the user should move their body part up or down to better imitate standard pose.

In addition, I updated the template instruction generator based on the Pose classes I implemented last week.

Besides, since the design report is due this week, I spent a few extra hours writing and revising my parts in the report.

Upcoming Deliverables

We have scheduled next week as a slack week (Spring Break), so there are no tasks to be completed next week. I will start integrating DownDog and Warrior I poses and testing MVP with webcam the week after Spring Break.

Leave a Reply

Your email address will not be published. Required fields are marked *