Youssef’s Status Report 2/25

Current Progress:

  • Researched possible monitors to use and ordered them
  • Looked more deeply into 2-way mirror options to purchase, compare pros/cons of film vs acrylic mirror approaches. Ordered film for now as cheap option, have budget to upgrade to acrylic if film is insufficient/doesn’t meet standards when testing it this week
  • Synced with other teammates on pose correction for specific poses, began implementation and split up remaining work by poses

Next Steps:

  • Complete pose correction for poses I am assigned
  • Begin to assemble the mirror hardware with the team
  • Test integrations of the system, validate pose correction works

Sruti’s Status Report 2/25

Current Progress:

  • Worked on researching different monitors and ordering the appropriate ones for the project
  • Also spent time looking into two way mirrors – both acrylic as well as film mirrors and then ordering them
  • Worked on pose comparison algorithms for tree pose and upward Salute. Spent time setting up the pose comparison framework which is standard between all poses and then wrote the specific code for these two poses.

In regards to the schedule, I think we are on track to complete the Pose Detection and Correction before Spring break.

Next Steps:

  • Finish the Pose Correction functions for the remaining poses
  • It is difficult to test the poses alone, so work on testing the pose comparison
  • Assemble the mirror hardware

Team Status Report For 2/25

Progress Updates:

  • We continued working on the Pose Correction algorithm and completed the functions to check whether the current pose is within the defined threshold of the reference pose (as determined by extracting the notable node configurations from the yoga instructor’s ideal images)
  • We researched different monitors that we could potentially use to construct a full-length mirror and decided to use a seamless, dual monitor set-up resulting in a final length of 48 in, which we determined was sufficient enough to account for most heights
    • We decided to use the flexible 2-way mirror sheet instead of the acrylic as an initial prototype as it was cheaper, thin (so the LCD screen would shine through), and had a variable length (as we were initially not sure which monitors we would end up using).

Risks:

  • The primary risk so far is the Mirror hardware construction as we are not sure whether the 2 LCD monitors will be able to stick together using just the wooden frame or if additional measures will need to be taken
  • If the wooden frame is not sufficient enough, we could also attach both monitors to an external piece of wood and overlay the mirror on top of that subassembly.

Changes to schedule and team work:

  • No other schedule changes have been made and we will attempt to finish our backlogged tasks this week
  • The pose correction is our top priority and all teammates are working on that right now but we will continue with our task split up after this
  • There are no issues with our teamwork and accountability

Next Steps:

  • Continue testing and refining the threshold parameters for whether the current pose is within error margins and can be classified as correct
  • After receiving feedback on our Design Presentation, we will adjust our verification and validation procedures to create more quantitative and robust checks to ensure our design meets our stated requirements
  • Contingent upon our materials arriving this week, we will start assembling the wooden frame encapsulating our LCD screens, attach the LCD screens together, and apply the 2-way mirror sheet to complete our hardware assembly
  • For software, we will completely finish the Pose Correction algorithm and start testing it at various angles and distances to ensure it accounts for those discrepancies

Ankita’s Status Report 2/25

Current Progress:

  • Helped research which monitors we could potentially acquire and that would fit the constraints of our ideal-length mirror (14 in x 48 in)
  • Submitted the material acquisition form after finalizing material details with the rest of the team
  • Created a block diagram of the Software and Hardware Architecture for the Design Presentation
  • Continued working on the Pose/Angle lookup table for the side poses (downward dog and cobra pose) and running the Pose Detection algorithm on the yoga instructor’s ideal poses to determine the ideal angles at key joint configurations
  • Working to implement the Pose Correction functions for determining whether the current pose is a downward dog or cobra pose

In regards to the schedule, we are on track as we are attempting to finish all the Pose Detection/Correction algorithms before Spring break. With this upcoming week being our scheduled slack time, we are planning to work on our backlogged tasks (mainly mirror construction).

Next Steps:

  • Finish the Pose Correction functions for the poses mentioned above
  • Possibly research other metrics that could aid in correcting a pose besides angle- could consult a yoga instructor again for this information?
  • Assemble the mirror hardware

Ankita’s Status Report 2/18

Current Progress:

  • Met with a yoga instructor to take reference pics for each of the 6 specified poses from the TOP and SIDE view
    • Also inquired about how a professional yoga instructor judges whether a pose is held correctly and what metrics she uses.
    • Based on her feedback, we are now emphasizing whether the joints are aligned with each other (“straightness”) of the limb
  • From these pics, created a pose/angle lookup table by quantifying the ideal yoga pose images from the instructor into angles formed from 3 of the 33 possible MediaPipe landmarks using the PoseEstimation function we previously wrote.
  •  Wrote the getAngle2D function that calculates the angle from 3 inputted nodes. This was used above to calculate the angles at notable joint combinations and analyze how the instructor’s pose angles varied with our hypothesized pose angles. This could also help us identify a valid error threshold as angles could vary slightly from person to person.
  • Read and watched tutorials on how to construct a wooden frame that will go around the mirror and LCD screen -> Will finalize the wood dimensions once we decide whether we will use one or two monitors.

In regard to the schedule, we are slightly behind on the hardware construction as we haven’t ordered our materials yet. In regards to the Pose Correction, we have made significant progress and will be most likely finished by the end of the week.

Next Week’s Deliverables:

  • Continue working on the Pose Correction algorithm and research other metrics besides angles and node distances that could be used to further improve our algorithm
  • Order the LCD monitor, 2-way mirror, and wood
  • Participate in a yoga class to gain further insight into what other metrics could be helpful to include

Relevant Courses:

  • 16-385: Computer Vision
  • 16-467: Human-Robot Interaction
  • 15-281: Artificial Intelligence: Representation and Problem Solving
  • 16-384: Robot Kinematics and Dynamics

Sruti’s Status Report 2/18

Progress Update:

  • Worked on creating pose correction library:
    • Built functions to calculate node distances
    • Built functions to check for node visibility and thresholding
  • Processed ideal yoga pose images that were taken during the yoga instructor meeting.
    • Identified important nodes that should be used for correction
    • Identified what the node values should be
  • Spent a lot of time fleshing out the software and hardware workflow for the overall system and creating graphics for the design presentation
  • Looked into the physics behind how we will identify where the reflection of the user will show up on the mirror.

Even though we are behind on the hardware acquisition, I feel like we are on track for the schedule and should be able to get things done on track.

Relevant Courses Taken:

  •  Intro to Machine Learning
  • Computer Vision
  • Gadgets, Sensors, and Activity Recognition
  • Interactive Design Studio (HCI class for accessibility and usability design)
  • Physics II

Next Week:

  • Next week I hope to have the pose comparison aspect of the software working
  • I also hope to have the hardware bought and start assembly.

Youssef’s Status Report 2/18

Progress Update:

  • Met with yoga instructor
    • Collected yoga reference images for fixed set of poses from 2 different angles (side and frontal view) to ensure all critical elements of pose are captured to be used downstream in the pose correction component
    • Interviewed them to gain better understanding of appropriate error signals to look for as guides for corrective suggestions and also know if the metrics we plan to use in PosePal are comprehensive enough/will result in an effective yoga-learning tool
  • Helped with pose correction library implementation
    • Researched more/collected information about the algorithms and metrics we would use to represent poses/detect errors
    • Tested functionality of implemented library to validate results of computed angles on set of examples

Still need to actually order hardware, but given the fact that the hardware we need to buy isn’t particularly niche/hard to acquire and that we are on track with the other tasks/don’t have pressing work that requires hardware within the next couple weeks, we should be able to get the hardware this week and still be on track with our planned schedule.

Relevant Courses Taken:

  •  Intro to Machine
  • Into to Deep Learning
  • Concepts in AI
  • Pattern Recognition Theory
  • Advanced algorithm course (15-210, 15-451, etc.)
  • Physics
  • Experience working with CV/rendering from computer vision swe internships

Next Week:

  • My goals next week are to finish the pose correction component and map errors internally to corrective suggestions
  • We also need to have the hardware ordered by the end of the week

Team Status Report For 2/18

Progress Updates:

  • Had a meeting with the yoga instructor we are working with to get ideal poses and learn about typical errors and metrics to correct yoga poses
    • Collected reference pose images for all the 6 poses we want our system to have
    • Currently working on analyzing the poses to determine which nodes and what angles should be used for pose comparison. We are also computing pose detection values and storing them so it does not need to be recomputed each time.
    • Yoga expert helped us understand additional error signals used in in-person instruction that should be present in our pose correction system, most notable of these being the concept of alignment along axes on a person’s pose (for example, arms and shoulder should be collinear)
  • Implemented library for Pose Correction component to compute:
    • Euclidean angles given 3 joints on reference pose
    • Distance between 2 joints (to check if they are in contact)
    • Check if all the required joints are visible (to make sure they are in frame, and that there joints are not one behind the other)
  • Developed our design review presentation:
    • Fleshed out our system’s design
    • Better understood how to implement sub-systems
    • Practices and created slides

 Our Major Risks so far include:

  • Monitor and hardware acquisition: We are hoping to acquire 2 monitors to construct a full-length mirror, but are not sure how to acquire at a reasonable price and integrate them together along with the two way mirror. 
    • Contingency plan is to have one smaller monitor that acts like a mirror and have the user stand further away so their entire image can still be seen. 
  • Mirror UI: As mentioned in our presentation, another huge risk is how to display our Pose Correction results on the mirror itself and whether any further mapping may be required. We have spent some time working through the physics of it so it seems more plausible now but is still a risk until we acquire the hardware.
    • Contingency plan is to simply render the camera feed on monitor

Guiding Engineering/Scientific Principles For Our Design

  • Machine Learning/Computer Vision:
    • Core components of our project like the pose estimation capabilities rely on computer vision ML models. The model we’ve selected to use is a convolutional neural network (CNN) model called BlazePose that is optimized for real-time, on-device inference
  • Computer Graphics:
    • Need to use efficient and lightweight computer graphics libraries/methods in order to render pose corrective suggestions in real-time in a visually understandable way
  • Software engineering:
    • Working with several python modules and writing a custom pose comparison library
  • Geometry:
    • Pose comparison is based on angles and distances, which are rooted in 2D and 2D geometry
  • Physics of light and mirrors:
    • Using the behavior of light and principles of reflection to understand where a person’s reflection will appear on the mirror
  • Firmware and hardware-software interface:
    • Integrating camera input with the computer
    • Working with speakers for audio output
  • Human-Computer Interaction (HCI):
    • Have HCI as an additional guiding principle to make sure that the final integrated system is easily usable and accessible for users.
    • Ensure that the UI and corrective feedback are delivered in a way that is understandable and doesn’t compromise the yoga learning experience (deliver audio cues to avoid user physically interacting with the screen for example)

Timeline Update:

For our software algorithm, we are on track. However, we were supposed to buy the hardware last week. We spoke to the TAs about using monitors that are already present in the lab and are waiting on that information to go ahead with the purchase of materials. We hope to make that purchase this week, which will push back our hardware timeline by a week.

Next Steps:

  • Complete error comparison this week
  • Order hardware and begin assembly of hardware
  • Complete design presentation

Youssef’s Status Report 2/11

Proposal Work

  • Completed requirements and software solution sections of proposal presentation slides
  • Prepared for and gave actual presentation for PosePal proposal to the class

Project Work/Progress

  • Synched with and organized meeting with yoga instructor for key project-related tasks
    • Will collect selected example pose models from scheduled meeting with instructor
    • Also prepared questions to ask instructor to identify what error signals our pose correction system should look for to best match how in-person classes are run and give the best user experience possible
  • Conducted research on different possible approaches we could use for the pose estimation component of PosePal
    • Collected benchmark performance data of candidate models for comparison and to understand how to objectively define the requirements that we can and should meet to satisfy the outlined use case for the project
    • Ran example models on video footage and using real-time camera to make sure that we can run and use them in the project itself
    • Example notebook link: https://colab.research.google.com/drive/13N94cPLcETxEstvvLbQO3jxYsmyNdbN4?usp=sharing
  • Code snippet for extracting the model and setting up needed environment to run it:

Next week deliverables include the following:

  • Meeting with yoga instructor on Monday and collect the reference yoga pose models
  • Implement the pose correction library that will include the geometric computations like computing the Euclidean angle given two x,y,z coordinates for use in pose comparison
  • Implement functionality to actually suggest corrections given two points, the reference and user’s, use this information downstream for the correction rendering and suggestions which will be the target task starting in the following week

Schedule Status Check

We have accomplished all the deliverables that we’ve outlined for up until this point on the schedule per the Gantt chart for the first week. Our upcoming tasks for the previous week are all included in the above next week deliverables section, so we expect to still be on track and in line with our original schedule by the end of the week.

Ankita’s Status Report 2/11

Key status updates include:

  • Researching different methods of pose correction (OpenCV, BlazePose, and Colab)
  • Researching different ways of integrating the LCD display with the 2-way mirror and the Magic Mirror library
  • Tested out BlazePose on a sample video to see if the software produced the accuracy requirements we aimed for and whether the skeleton could be drawn as the video shifted at different angles

With respect to our current schedule, we are on track with the project deliverables as we plan to order materials this week and work on identifying the error metrics as well as continue implementing the pose correction code.

Next Steps:

  • Work on creating a library and functions to measure the node-to-node distance to help calculate node pose error
  • Finalize Mirror hardware and order soon
  • Meet with the yoga instructor to gain more insight into possible error correction metrics