Our client wanted to receive a heatmap showing where a certain invasive weed is present in farm fields. The fields with too many of these weeds are not allowed to be used by the farmers. Images were high quality GeoTIF files, embedded with a top-left coordinate. We received hundreds of GB of data, but only used a small part as it was a proof of concept. Here is what I did:
- Image Preparation - I conducted image annotation by drawing thousands of boxes around weeds we want to detect and multiplied the data with data augmentation techniques.
- Model Training - After preparing the images, I trained the YOLOv8 model on these images, allowing it to learn and improve its detection capabilities.
- API Development - Next, I developed a flask API that receives images as input and returns GeoJSON files. These GeoJSON files are then sent to the part of the application that will generate heatmaps, providing a visual representation of where the weeds are present.