Team Status Report for 3/27/2021

One suggestion we received was to add a live video of the user so they can see themselves during their workout. However, we were thinking this feature wouldn’t be necessary because of the group we are creating this product for. People are mostly working out at home right now, and using YouTube workout videos, but they mostly aren’t watching themselves do the exercises. I don’t think many home workouts are done in front of a mirror (at least according to people I’ve asked). We’re also concerned about how much latency this feature would add to our product.

Even if they did do the workouts in front of a mirror, we think that the ability to watch themselves during the workout will distract the users. To look up at the live video, the user will need to use incorrect form. This is something we don’t want to encourage the users to do, because incorrect form can lead to injuries over time because of strain caused to certain areas of the body. Also, during workouts, the users should be focusing on engaging the muscle groups that a particular exercise is targeting.

Maybe as a compromise, we could add an overview of the generated workout so that users can learn how to perform the exercises before the actual workout starts. This part of the product could be controlled by the user; as in, they could choose when to see the next exercise (press the next arrow key) so they can take as much time as they need to learn one exercise before seeing the next. This would also allow users to skip exercises they already know, so they can focus on learning only new exercise forms. In this, we could provide the same looped videos so the users can copy them. The users would be able watch the demo video, find a mirror (or we could provide the live stream video here), and try to mimic the demonstrator’s form correctly.

Sarah’s Status Report for 3/27/2021

This week, I added 9 core and arm exercises (from 4 videos) to our workout library. I also updated the workout algorithm (finalized algorithm with Maddie, and started it last week) to include paired exercises. The only paired exercises are the ones that work on one side of the body at a time (ex: single arm side pushup). I think the workout algorithm is finished. I can always go back to modify this algorithm if we change our design later.

I also worked with Maddie on some of the UI (looping exercises using OpenCV). I’m still in the process of learning PyGame, so the progress on the UI is slow. However, according to our gantt chart, I’m still on schedule.

Next week, I hope to have more of the UI done. Maddie already looped the exercises using OpenCV, so I want to get the 2 screens for rest time and exercises done. I’m thinking each of these screens will just be their own functions/classes so they can be easily called multiple times. If possible, I also want to get the start screen created. I’m just going to model it off of YouTube videos as well, so the design is cohesive. I also want to get the key controls working (where the user can press certain keys to trigger certain actions).

Sarah’s Status Report for 3/13/2021

This week, we were able to decide that we will use AWS to store our exercise library. I still need to request those credits through the form. I will do that after this status report. I also realized that some of the gifs I made last week got corrupted somehow (didn’t loop correctly), so I remade them. I found more workout videos to use for our library, I just need to create the gifs for them. So, I didn’t actually end up parsing new videos this week.

My progress is behind schedule because I wasn’t able to devote as much time as I wanted to this class. I ran into issues with projects from other classes (Distributed, mainly), so that took a lot of time away from this class.

To catch up, I hope to actually start on the scoring algorithm, and meet with Maddie to work on the exercise library/construction algorithm. I have created a calendar on my phone that I hope will help me track my assignments better, and break my tasks down into smaller segments. I think this will help me devote a more equal amount of time to this project and my other classes.

Team Status Report for 3/13/2021

This week we received feedback from our design review presentation. One of the most significant risk was comparing the poses at different speeds. Our plan was to select specific frames from the user input based on time and compare them with the poses from the workout library, which would not work if someone is doing the exercises much faster/slower. We are looking in to dynamic time warping as suggested by Prof. Savvides, and trying to apply that in our project to correct what we compare by looking for the best alignments between time series.

We also need to figure out more quantitive and detailed ways to measure accuracy of pose alignment and comparison. We planned to test it with different body types and poses, and check whether it can align the points and distinguish the poses correctly.

We started working on our design review report.

Sarah’s Status Report for 3/6/2021

This week, I manually parsed 3 YouTube workout videos into separate exercise clips (1 repetition each). This gave us 31 individual core and arm exercises for our library. I saved both a gif version of each exercise (using a gif making website) and the start and end times of the exercise from the YouTube videos in a spreadsheet shared with the rest of my group.

I also worked with my teammates on our Design presentation slides and report. We tried to incorporate the feedback we got from our proposal presentation slides. We particularly wanted to make the slides more visual (“marketing visuals”), so I added gifs and more images to the slides.

I requested our TX2 board from the 18-500 inventory, which Maddie picked it up. I also ordered our camera, which is with me. We haven’t met to swap hardware yet. We may need to change the tasks around in our Gantt chart to reflect these changes in task leadership (Maddie for board set up, me more library construction).

I think we’re basically on schedule, though.

Next week, I hope to figure out how we’re going to store the reference exercise clips (either on board, on laptop, or in AWS?). I want to continue parsing videos, too. It takes longer than I thought to find parts of each exercise that loop well, and find the how long to make the clip that will loop. So, I’m planning on parsing a couple videos per week so it’s manageable. I also hope to start working on our scoring algorithm.

Team Status Report for 3/6/2021

We decided to use a Jetson TX2 Xavier board instead of a Jetson NX Xavier or Jetson AGX Xavier. This is because The 18-500 parts inventory had both the AGX and TX2 boards from previous years. We didn’t want to buy another board if there were already 3 usable boards available. We originally wanted to borrow an AGX, but other groups requested the 2 in inventory earlier than we did, so we weren’t able to borrow them. The inventory still had a TX2, so we submitted a request to borrow that instead, and were able to do so.

Borrowing the boards instead of buying a new one allowed us to stay exactly on schedule. If we bought an NX, then we would’ve been at least 2 days behind because the shipping time is 2 days. It also decreased our costs, so we’re only paying for a camera currently.

To adjust to the board we chose, the TX2, we decided to use a different library: Tensorflow OpenPose. This library was able to analyze some sample images (on Zixuan’s laptop) much faster than the original OpenPose was. While she was testing OpenPose, she was able to verify that the images we took from YouTube videos are usable with Tensorflow OpenPose.

This week, we also worked on our design presentation slides and tried to incorporate the feedback we got from the proposal presentation. So, we added more pictures/visuals, and a testing plan (not actually in the slides, but will be talked about). We’re currently still working on our reasoning for our metrics, but this should be done by the time we present.

Team Status Report for 2/27/2021

Currently, the most significant risk to the success of our project is that we are already behind schedule (based on our Gantt chart). We wanted to have our board by this coming Monday, but we haven’t ordered a board yet because we are potentially changing our first choice board from the Xavier NX to the Xavier AGX. This is because the AGX is available according to the inventory list, so it’s now within our budget. The only thing that is preventing us from finalizing our decision is that we haven’t been able to find as many resources for using OpenPose on the AGX as we have been able to find for using OpenPose on the NX.

We’re planning on finalizing which board we want to use by Sunday so we will still have time to get an NX approved by our TA and ordered by Tuesday. If we end up choosing to use an AGX, we won’t be very behind schedule because we could pick that board up on Monday.

Sarah’s Status Report for 2/27/2021

On Monday, I presented my group’s proposal. After presenting, I updated the “proposal presentation slides” page on our WordPress by replacing the plain URL with an into an image of our first slide with an embedded URL.

On Thursday, after all the proposal presentations, I looked at the instructions for purchasing stuff, and at the parts inventory list. I saw that there are 2 Xavier AGX boards available, so I started searching for tutorial videos/articles online about the AGX with OpenPose. However, it seems like there are more resources about OpenPose on an NX board. I will continue searching for more about OpenPose on the AGX, though, because it seems more powerful than the NX based on it’s specs.

Our progress is behind schedule because we haven’t ordered a board yet. We originally wanted to have it ordered and shipped by this coming Monday, but we haven’t decided whether we want to change our board to the AGX yet.

To catch us up, I want to choose a board by Sunday. This is just in case we choose the NX,  because then we can still get it approved by the TA and place the order so it can be ordered by Tuesday. If we choose the AGX, then we’ll be on schedule, because we can get it approved by the TA probably on Monday, and pick it up on the same day.

 

 

Sarah’s Status Report for 2/20/2021

This week, I set up the team’s WordPress by drafting all of our required assignments/status reports and pages. I think this will make it easier for us to keep track of the due dates for these.

I also worked on the proposal presentation slides.

Next week, I hope to present our proposal presentation, and incorporate any feedback we get during it. Hopefully, this will allow us to finalize our plan and begin working on phase 1 of our schedule.

 

Team Status Report for 2/20/2021

The biggest risks to the success of our project are our hardware performance and overall latency (from hardware and software). We made backup plans to address both concerns, in case our initial plans don’t meet our performance goals.

Our current plan is to use the Xavier NX, though our backup plan for hardware is to use a Jetson Nano, which is cheaper than a Xavier NX or AGX Xavier. If that doesn’t work well, or our budget doesn’t allow, our next backup will be our laptops.

Our backup plan for latency (because we want to perform real-time processing of images of the user) is to end workouts with a “Score loading” screen, to provide some extra buffer time for our scoring/image processing algorithms to finish.

We divided our project into tasks (and subtasks) and divided them up among ourselves. We reflected this division of labor in our Gantt Chart.