Week 2: A Pivot in Methodology
March 9, 2024
Hello everyone, welcome back to my senior project blog! This week, I want to share another possible avenue for the logic behind the personal trainer app. After thinking it over. I’ve decided to transition from the initial plan of training another AI model to leveraging hard-coded mathematical algorithms for our app’s functionality. Let’s dive into why this shift not only makes sense for this project but may also be a more suitable approach given our specific objectives.
Making the Switch
As I ventured deeper into the development process, it became increasingly clear that the requirements of our project could be efficiently met without the complexity of training a new AI model. At first, AI seemed promising and necessary due to its dynamic learning enabling it to adapt to different situations and body types. However, after deeper consideration, I have realized that this task may be accomplished without another model.
Here are some benefits from this approach:
First, mathematical algorithms can offer precise and consistent feedback without the extensive dataset and training phase required by AI models. This saves time and ensures that our app can deliver accurate performance analysis once a sufficient system is adopted. Second, developing and maintaining AI models is resource-intensive, both in terms of computational power and time. This new approach will minimize the time to analyze the form, enabling a clearer focus on the core functionality of providing real-time feedback. Lastly, hard coding with math simplifies the development process. By adopting a hard-coded approach, I can streamline the development process, focusing efforts on refining the user experience in the app development stage and expanding the list of exercises that can be graded.
Implementing Mathematical Models
My approach will still utilize the skeletal tracking capabilities of MediaPipe, as established in previous weeks. However, I will now be attempting to apply mathematical formulas to analyze the user’s movements. This process will entail:
- Normalizing the Poses: To ensure consistency in the analysis, we first normalize the poses captured by the app. This involves scaling and translating the skeletal model so that it can be compared with the reference pose, regardless of the body type, camera angle, or distance.
- Calculating Differences Between Vertices: We then compute the differences between the 3D locations of the vertices corresponding to the user’s current normalized pose and the ideal pose. This will allow us to identify deviations from the optimal form for each exercise.
- Computing the Sum of Squared Differences: Calculating the sum of squared differences between the user’s pose and the ideal pose quantifies the accuracy of the user’s form, allowing us to provide targeted feedback to correct specific areas of their exercise technique. These differences will most likely need to be weighted based on the exercise being performed. By defining optimal ranges and thresholds for these parameters, we can effectively guide users towards perfecting their form.
As I move forward with this new direction, my next key steps are finding a way to normalize the poses to ensure inclusivity for various body types, as well as developing formulas to provide an accurate reflection of the biomechanics of various exercises. Next week, I hope to delve deeper into this new approach to further discern if this will be a reliable method for my project.
Stay tuned for more updates, and thanks for following along on this journey!
Leave a Reply
You must be logged in to post a comment.