For other ML/CV projects see Machine Learning Projects and Computer Vision Projects
For other Robotics Projects see MSc Dissertation - Robotic Shiitake Harvest and Robotics
This repository contains the code and resources for the GRowBot project. The GRowBot is an autonomous robot designed for precision application of fertilisers and herbicides, as well as efficient management of crops in agriculture. The project is in its early stages, with the current focus on developing computer vision algorithms for crop and weed counting, and disease classification.
The GRowBot project aims to:
- Optimise the use of fertilisers and herbicides in agriculture by implementing precision farming techniques.
- Reduce the environmental impact of agrochemicals through targeted application.
- Increase crop yields and improve overall farm management.
- Python
- TensorFlow
- OpenCV
- Jupyter Notebook
Will be completed when necessary. For now each script can be run through google colab
The project currently includes a few Jupyter Notebook files with the following functionalities:
- Training a YOLOv8 (You Only Look Once) model for crop and weed detection and inference on a test set.
- Training an SSD (Single Shot MultiBox Detector) model for crop and weed detection.
- Integrating hypothetical NPK nutrient testing results and providing fertilisation ratio recommendations based on test results.
Inference examples can be seen in images.
The dataset used in this project was modified from 'late-stage Dataset' by Med Chebbi, published on Roboflow Universe. More details can be found at the dataset's webpage.
This graph shows the output counts from inference on the 100 images in the test set. To simulate the GRowBot moving along a 100m row of carrots, the test images were loosely ordered so that there were more weed annotations towards the back. This would simulate a situation where there are more weeds at one end where perhaps seeds have blown in from an adjacent field.
The GRowBot project is still in its early stages, and there are plans to further develop the project, including:
- Transferring training scripts to Python files for training on a local GPU
- Finding a crop/dataset so that the bounding box can be passed to a disease classification network
- Train with some more object detection models
- Containerise the project with Docker
- Further testing and hyperparameter tuning
This project is licensed under the MIT License. Please see the License file for more details.

