PlantGeek: Machine Learning and Aquaponics

Two weeks ago, I started a course on machine learning as part of my MSc at Wageningen University. Machine learning sounds exciting – and it is. Hopefully having a grasp of machine learning will make us all but wizards by the end of this course.

That said, in reality, this course has been little more than dry statistics and mathematics. To stay motivated, it is useful to have concrete applications in mind.

This post is about one of these concrete applications.

Agricultural systems are complex. Obviously, data and machine learning can help. But how exactly? Believing something can be useful and knowing how are two different things.

A few weeks ago, at NovelFarm 2019, I spent some time with Radu Giurgiu and Rares Nistor, who are part of PlantGeek, a research project in Romania. Radu’s PhD was about secondary-metabolite production of plants in controlled environments: molecules that contribute to things like taste and antioxidant properties.

Radu presenting PlantGeek at NovelFarm 2019.

Unfortunately I had to miss Radu’s presentation, but later on he enlightened me about what they have been doing so far at PlantGeek.

Radu’s original plans were to focus on hydroponics, as he had done before. However, with PlantGeek, they decided to build an aquaponics system for green brownie points for funding, roughly speaking. However, aquaponics turned out to be more complex than just connecting aquaculture to hydroponics. This is where data and machine learning can be useful.

Amongst other things, PlantGeek want to apply data and machine learning to automate aquaponics systems. How are they approaching this?

First of all, they are monitoring their system rather than controlling it. Before a system can be controlled, it must be understood. This means changing inputs but then leaving it alone and seeing what happens. In this way, PlantGeek have an idea of the system’s natural response to certain inputs. This helps them control their system more effectively, avoiding things like vicious circles (for example, the fish eat less if there is an imbalance in the system, so adding more fish feed will only make the problem worse).

PlantGeek have a computer interface that shows all the relevant state variables in the system in real-time – things like pH, EC, water level, and so on. This is working quite well.

Rares showing off the interface and monitoring setup during the 12 Steps Hangout.

To go one step beyond and start automating their aquaponics system, PlantGeek needed data. They looked through their datasets and realised they were lacking data on the beginning of the process: the amount of feed eaten by the fish. They are now looking into automating the fish-feeding step.

They are monitoring how much the fish are eating and its effects on the rest of the aquaponics system. Measuring the amount of feed eaten by the fish could be done manually. However, PlantGeek are trying to automate this too, using machine vision and their own software, called Kuebi.

This is where machine learning comes in. A camera above the fish tank looks at how much fish feed is floating on the surface after feeding. These images can be used to predict the amount of fish feed eaten, by training the prediction model using data measured manually.

This slideshow requires JavaScript.

At the moment, through the help of machine learning experts Karthik and Marius, PlantGeek are able to tell whether the amount of fish feed eaten is more or less than 50%. 90% accuracy for these two classes is already better than a human being could do. With more data, they will be improving this to higher-resolution intervals, as pictured below with five classes.

The confusion matrix with model predictions against the actual amount eaten by the fish, for five classes/intervals. The darker the diagonal series of squares in the middle and the lighter the others, the better.

Once they are able to predict the amount of feed eaten, this data can be used to predict system behaviour after feeding.

This in itself is a new challenge, as there are many variables that will be different in every situation. The solution is either to measure all of them at once, or to make sure they are constant throughout (which does not necessarily involve measuring; take water level for example).

The amount of work being done on one small step – fish feeding – is staggering. Imagine what will have to be done if the system is to be expanded with insects. Plenty of work to be done.

If you want to find out more about what PlantGeek are doing, visit their website at or watch the webinar where they show their system! Not to mention some of my favourite content on Instagram.

4 Replies to “PlantGeek: Machine Learning and Aquaponics”

  1. Any suggestions on how to get started on a project like this? I have a small aquaponics set up I am about to begin. Some basic python experience.

    • Awesome. What would you be using it for? Based on that, in any case I’d recommend consistently logging data as soon as possible, so you have more to work with later on.

Leave a Reply

Your email address will not be published. Required fields are marked *