Inspiration
With obesity rates rising and COVID forcing people to a more sedentary life, we wanted to build something that would encourage working out.
What it does
ChadBot is an AI virtual assistant that will learn where the user is in their fitness journey, how much time they can put into the gym, and what their goals are to present a workout plan in an encouraging and casual conversational manner. Additionally, we implemented a body fat percentage predictor that uses facial landmarks and detected features.
How we built it
Body Fat Predictor We collected and labeled hundreds of facial pictures in a tree folder structure (for ease and fast collection) to train our Random Forrest Algorithm model. To preprocess our image data, we used inorder traversal through our tree and ran our facial points detection module on each image to get a normalized array of x, y, and z. coordinates for 468 different facial landmarks.
ChadBot We created an expansive JSON file (that we added to our Cockroach DB as a JSON object to allow for serializable isolation in the case we may need additional JSON files later) with multiple patterns in user responses each associated with a tag that represents the user's intent. We developed the path of the conversation to depend on the context built up through the user's responses and the response's corresponding tags. We then integrated our Body Fat Percentage Predictor into our bot using python modules.
Challenges we ran into
Data collection and labeling in such a short time was an issue. We developed an approach of creating a tree folder structure where the folder names contain the labels. This allowed us to simply drag and drop images and label them in our python code based on file location within the tree.
Accomplishments that we're proud of
We are proud of coming up with unique and clever solutions in moments of stress when we were backed into a corner. We are proud of building the product we had in mind at the start and not having to cut corners despite the time pressure. We are proud of all the team members for completing their roles in a timely manner.
What we learned
We learned how to architect a big project with a team. We learned a lot about Deep Learning and NLP. It was cool to see how a program can be taught how to understand natural language.
What's next for ChadBot
We plan on building this into a mobile application with additional features such as progress tracking and sharing. We plan on refining the features that are passed into the ML model and collecting a larger dataset to improve our predictions.
Log in or sign up for Devpost to join the conversation.