Do you ever start an episode of a TV show and see a guest start you _ swear _ you've seen in another movie or show? It nags at you for the entirety of the episode, which leads to multiple rounds of googling to figure out the answer. To make this easier, we wanted to make an app that lets you take a picture of a character on your screen and find all of their actor credits with the click of a button.
What it does
The current version of the app opens into a camera preview and lets you capture a photograph. It then uses the AWS Celebrity Recognition API to detect celebrity faces. We then take those results and lead the user to a page with the celeb's name (if identified) and a link to their IMDb page.
How we built it
We coded in java in Android Studio and created a cloud back-end to support our use of the AWS API. The camera captures an image which is then decomposed into a byte array, which is then reformed into an AWS image in order to perform the scanning. The front-end is entirely comprised of simple Android UI elements.
Challenges we ran into
It took a few tries to get Amplify, the AWS Android SDK, to properly integrate with our app. Once that finally worked, converting the Android media image into an AWS specific image in order to perform our search was quite difficult. We had a lot of trouble figuring out how to then access the top credits of the celebrity detected. Ultimately we were unable to complete that last challenge.
Accomplishments that we're proud of
We are proud of the fact that we were successfully able to use AWS on our first try. Using a cloud backend service is really cool and we hope to use more related services like integrated databases and buckets so our app has access to more data.
What we learned
We learned a lot about modifying build.gradle files in order to add certain dependencies and packages to our app's classpath. Of course, we also learned a lot about how AWS works with Android.
What's next for WhoDat?
We want to be able to successfully display the celebrity's image and their top credits on the results page of the app so the user might be able to get a quick answer. Additionally, we want to be able to allow users to store their history or submit an addition to our database if the API call does not produce a result.