Inspiration
Every day, millions of photos are taken worldwide. From mobile phones to professional DSLRs, cameras capture every moment of our waking lives, generating a vast wealth of data. Yet, much of that data goes unused by the very people captured in these photos.
For this idea, we were inspired by our own hobby of running, where there are hundreds of unmatched race photos that strangers may take, with no way to contact them. From there, we realized there were so many more applications for a online platform to crowdsource media. Imagine a sporting event, concert, or even hackathon where you were able to look for photos taken of you by other people, allowing you to relive those precious memories one more time. Furthermore, imagine a single source of potential evidence for law enforcement to search in case of crimes at events, greatly revolutionizing event security. This futuristic idea is a reality with CrowdCam.
What it does
CrowdCam users can upload banks of images that they take. Other users can then upload a reference photo of themselves, and our state of the art facial recognition software then finds every image in which they appear.
How we built it
CrowdCam is a Next.js application, and we harnesses React and Node.js for fullstack application development. The serving stack is powered by Vercel, which also provides our CD pipeline through its GitHub integration, and our database through Vercel KV. We used AWS extensively for much of our backend logic, and specifically leveraged S3 for blob storage and Rekognition for the actual face detection and recognition.
Challenges we ran into
AWS Rekognition was... interesting to work with. Though the base functionality was easy enough to implement, the documentation hinted toward a way of speeding up image recognition queries by precomputing mappings of faces to unique users. This turned out to be a red herring - attempting to match faces to users introduced incorrect matches, associating faces of completely different people to the same user. We spent hours trying to fix this bug to no avail.
Also web dev is hard :( how do i center a div
Accomplishments that we're proud of
Seeing our first successful face recognition query was thrilling, and we're proud that we were able to create something that we might use ourselves in the future! The recognition software is very powerful, able to accurately match even partially occluded faces and side profiles.
What we learned
- Technical
- AWS: It's a pain, but when it works it's very powerful
- Machine Learning: Learning about the classifiers that our facial recognition uses under the hood was mindblowingly cool
- Non Technical
- Sugar and snacks can keep brains running indefinitely
- Other hackers can be super helpful!
What's next for CrowdCam
One of the biggest features we wanted to add was an accounts system - it would make the platform much more secure, and would provide a more streamlined experience for our users. We also want to figure out how to use the AWS Rekognition users feature, as it did promise faster queries.
Built With
- amazon-web-services
- nextjs
- node.js
- react
- redis
- rekognition
- s3
- vercel
Log in or sign up for Devpost to join the conversation.