Vegetables and Fruits Ripeness Detection by Color w/ TensorFlow

1 Arduino Nano 33 IoT
1 DFRobot AS7341 11-Channel Visible Light Sensor
1 Raspberry Pi 3B+ or 4
1 10K Potentiometer (Long-Shaft)
1 Potentiometer Knob
4 Button (6x6)
1 5 mm LED: Green
1 5 mm LED: Red
2 Breadboard

Thanks to our evolved acuity, it is not struggling for us to detect ripeness by the appearance of a fruit or vegetable. However, nowadays, foods are a subject of mass production. Thus, we need a more reliable and effortless method to distinguish fruits and vegetables depending on their ripeness than the naked eye. In the hope of assisting food companies, grocery stores, and farmers in sorting fruits and vegetables, I developed this device that detects ripening stages by spectral color with a neural network model.


As fruits and vegetables ripen, they change color because of the four families of pigments:


chlorophyll (green)

carotenoids (yellow, red, orange)

flavonoids: anthocyanins + anthoxanthins (red, blue, purple)

betalains (red, yellow, purple)


These pigments are groups of molecular structures absorbing a specific set of wavelengths and reflecting the remainder. Unripe fruits are green because of chlorophyll in their cells. As they ripen, the chlorophyll breaks down and is replaced by orange carotenoids and red anthocyanins. These compounds are antioxidants that prevent the fruit from spoiling too quickly in the air. Then, the enzymatic browning occurs and causes discoloration - turning brown. Enzymes function as a catalyst for chemical reactions instigating discoloration, such as:


hydroxylation of phenols

oxidation of phenols


After doing some research on color-changing processes as fruits and vegetables ripen, I decided to build an artificial neural network (ANN) based on the classification model to interpret the spectral color of varying fruits and vegetables to predict ripening stages.


Before building and testing my neural network model, I developed a web application in PHP to collate the spectral color data of fruits and vegetables generated by the AS7341 visible light sensor to create a ripening stages data set by spectral color. I used an Arduino Nano 33 IoT to send the data produced by the visible light sensor to the web application. Empirically, I assigned a ripening stage (label) while obtaining spectral color data for each fruit and vegetable by using four class buttons connected to the Nano 33 IoT:


Early Ripe

Partially Ripe




After completing the data set, I built my artificial neural network (ANN) with TensorFlow to make predictions on the ripening stages (labels) based on spectral color.


Then, after testing, I conducted experiments with my neural network model to predict the ripening stages of varying fruits and vegetables by spectral color. As far as my experiments go, the model is working impeccably.


So, this is my project in a nutshell 😃


Click here to inspect code files and my neural network model.

All Rights