
Show HN: Banana ripeness classifier (ML webapp) - gcarvalho
https://isthisbananaripe.ml/
======
gcarvalho
Hey, HN! I am colorblind and I can't reliably identify when a banana is ripe
enough to eat, so I made a machine learning model that does it for me. The
model (92% val accuracy, ~12MB) runs on your device (tf.js) and you can upload
directly from the camera on mobile.

Feedback is always appreciated!

Data, code and trained model are available here:
[https://github.com/giovannipcarvalho/banana-ripeness-
classif...](https://github.com/giovannipcarvalho/banana-ripeness-
classification)

~~~
GordonS
I'm also colour blind (red-green), and can't tell ripe bananas from unripe
based on the green/yellow colour. But as they ripen, they tend to develop more
black patterns on them, and they're softer when you give them a little
squeeze.

It's an interesting project, nonetheless, and sounds like just the sort of
thing I'd like to replicate to get started in ML.

~~~
mrfusion
Sense of smell is the best way.

------
anotheryou
I tried to guess an album covers decade: [https://uncover-a-covers-
decade.onrender.com/](https://uncover-a-covers-decade.onrender.com/)

You are doing the fast.ai course too, right? [edit: looking at your code, no,
you did not :)]

I chose my challenge to maximize my learning through something challenging
enough it might fail. It's only right 60-70% of the time.

What I learned:

\- Binning in to decades might not be Ideal. Something from 79 and 80 is more
similar than something from 71 and 79. I guess a better approach would have
been smaller bins (3 or more per decade) and than rounding the result to the
decade.

\- Be careful how you gather your learning data. I pulled from the google
image search with something like "album OR LP cover 20s/30s/40s..."; this has
~20% "best of the XXs" collections in them where the cover was designed in a
much later decade. I should have searched for "1920 OR 1921 OR 1922...".

------
dbs
I just uploaded an image with some portuguese custard pies and the model went
bananas.

------
simongr3dal
Nice, pretty cool project. It correctly identified some bananas I had just
bought as a little green.

Any chance for making an avocado identifier, because those are pretty tough to
guess wether they are ripe.

~~~
gcarvalho
Thanks! I might give it a shot. But yeah, I think it wouldn't work nearly as
well.

------
morenoh149
ha I made something similar for weed,
[https://chronicsickness.com](https://chronicsickness.com)

------
lovestodonothin
Cool website! Can you go through how you set up the whole thing?

~~~
gcarvalho
Thank you. I actually didn’t base it on fast.ai. It went on like so:

\- I scraped from google images using queries like “ripe bananas”, “green
bananas”, etc \- Filtered out garbage images and labeled the remaining with
the help of someone

\- Trained the model (very straight forward with Keras). The code in the
notebook is something like 30 lines I think.

\- Using tf.js was what took me the longest. Using
tensorflowjs_converter.save_model outputs an incompatible or corrupted file.
Saving it first with keras and then using the tensorflowjs_converter CLI tool
is what worked. The web-ui code is also available in the repo.

\- Lastly. It is served from GitHub pages (not a problem since everything is
static and runs client side), with a custom freenom domain (on a convenient
.ml tld) and through cloudflare’s DNS which gives me SSL on a custom domain,
caching and some very basic analytics.

Everything free tier. It only cost me time (around 5h I think).

Did I miss anything you wanted to know?

------
dplgk
Next, can you develop Not Banana app? I think you could hit it big with that.

