Some of CapitalOne's jelly beans are great and others are really, really bad. What if there was a way to automatically identify which beans are worth eating and which aren't.

What it does

Our website will take a photo of your bean using our USB camera and then use a Convolutional Neural Network to identify which bean flavour it is.

How we built it

We've built our project in two parts: the neural network and the website itself. The neural network uses TensorFlow in Python, using Google Cloud to train a model using the photographic data we collected of the beans. The website ( is built with JavaScript and is served via. netlify. It loads the model from Google Cloud.

Challenges we ran into

We had difficulty with our computer systems running out of RAM during training. We had to solve this by balancing the efficiency with the accuracy of the model in order to get a suitable compromise. Once we overcame the RAM issue, we discovered that the model basically wanted everything to be mint sorbet flavour. This turned out to be an interoperability issues between and Tensorflow.js.

Accomplishments that we're proud of

We're now experts in Capital One jelly bean flavours.

What we learned

We've gone from not knowing anything about neural networks to training our own model with our own data. We've learnt a lot about gathering test data, and how difficult it can be to train a neural network properly.

What's next for Beanify

Generating images of beans. Even more beansssss.

Built With

Share this project: