The SeparAItor is a proof of concept of an autonomous recycling robot that exploits the power of deep learning to enhance human capabilities in a task that is both crucially important and severely underused (around 9% of plastic waste is recycled and 79% goes to landfills or to the environment).

Since recycling is mainly a sorting exercise, and one of deep learning’s main applications is the categorization of different images, this was a very natural progression. Keras (in TensorFlow2) is used for the machine learning part, mainly due to its simplicity, as well as some OpenCV for image preprocessing.


The base consists of a simple pan and tilt system with a box on top. It comunicates with the computer over Bluetooth and is powered by an on-board battery, so the actuator part is completely independent. A Lazy Susan turntable bearing and a 608zz axial bearing provide mechanical stability to the system.

To simplify the electronics two servos are used to control the base, so there is a 2:1 relationship between the pan servo’s gear and the one in the base to be able to rotate a full 360 degrees.

Finally, two super-sticky, anti-slip silicone gel pads like the ones used to hold phones on car dashboards are used to both carry the cardboard box at the top as well as to keep the base firmly in place and stop it from rotating and sliding around.


With the base assembled and the cenital camera set up the dataset acquisition was the next step. While I initially downloaded images from the internet to train on, these were either renders or professional-looking pictures designed to sell the product, most often just showing the side with the logo. Since I needed to get it to work with real-life objects I thought the best way was to take pictures in the real conditions.

Using the “take_picture,py” script I was able to save pictures by pressing a key. These images were first pre-processed to resize them to the adequate dimensions and then had their background removed, to only keep the relevant parts of the image for training.

Finally, since adding an object not only changes that part, but also creates shadows and can tilt the base, only the largest single blob was deemed part of the object.”


Related Content