Inspiration

We were inspired by the effects of dementia. Individuals with dementia can struggle to recognize faces. As we worked, we realized this tool can be helpful for so many more people as well. Remembering faces doesn't come easily to all people, so we wanted to make a tool anyone could use to help remember their acquaintances.

What it does

Remember Me is an application for automatically creating a list of named contacts and searching it with the webcam. Our prototype runs on a laptop, and future work could expand it to a wearable camera such as smart glasses. The camera captures the people in frame and intelligently determines if it is someone that has been seen before. If not, it will automatically add the person to an "Unverified Contacts" list. Using a web UI, users can then move to the Verified Contacts list, discard, or merge duplicates. When a person is recognized, the inputted name and profile image are displayed on screen to the user.

How we built it

We started with the core technology: Facial recognition and clustering. From the get-go, we knew that we would need some form of AI to turn faces into something comparable; training a model from scratch would not be feasible. We came up with a core pipeline: Bounding boxes -> Facial embeddings -> Vector search. After that we prototyped using GitHub Copilot to fill in the details, allowing us to work quickly. Claude was then used as heavy AI assistance while remaining cogniscant of what the code is doing.

Our frontend and backend were created entirely by Claude using careful prompting: More on that in the challenges section below.

Rather than oneshotting the UI, we took it piece by piece. First came the login flow and a dashboard with contact names. We prompted specific, small changes to make: Add contact images to tell who's who at a glance. Add separate verified and unverified lists to keep things organized. We made sure to be specific about what matters (the experience) and let Claude do what it does best (the code).

Challenges we ran into

Initially we struggled with coding our frontend and backend. Scope crept in a mockup that didn't connect to our facial recognition pipeline. We rebuilt our frontend and backend from the ground up leveraging Claude's strong capability for web design. We refocused by rebuilding the dashboard, only using data we had for real. We kept our database schema carefully designed. Claude made overcomplicated data designs. We kept it simple, and that simplicity made it easy for Claude to build on top.

Accomplishments that we're proud of

Our OpenCV pipeline is the result of multiple learnings over the course of HackDavis. We came in with minimal knowledge of how to use OpenCV, and we iteratively refined from a crude prototype with manual capturing to a featureful automatic capture system. To get to that point we had to tune our thresholds for vector similarity, and add debouncing to minimize the addition of duplicate profiles.

What we learned

We learned that Claude is a powerful tool, but needs to be used carefully. Fully vibe-coding is a recipe for disaster. We found that carefully designing key pieces was crucial to enabling Claude to do the rest.

Built With

Share this project:

Updates