Does anyone have any experience trying to locate weeds in agricultural drone images?

I am currently using Dztesaka classification tool to find weeds. It works pretty good. But there may be some ways to further improve this.enter image description here

I have been working on this for some time now and have came up with a decent solution. Maybe 70-80% accuracy or higher.

The Dzetsaka classifier is a simple and powerful tool to use for this. Just draw the polygons over each class to teach it. Then run classifier.


This is extremely broad, but here are a few things to consider.

  1. There are two major types of classification algorithms: supervised and unsupervised. You are using a supervised method (i.e. you are training the model using polygons that contain pixels with the features that you want to detect.) Overall, supervised classification is better than unsupervised, but only if you provide robust training data for the algorithm. Using the semiautomatic classification plugin, you can test multiple algorithms (i.e. minimum distance, maximum likelihood, etc..) using the same set of training data, then compare them to see what works best. https://fromgistors.blogspot.com/p/semi-automatic-classification-plugin.html
  2. Introduce as many layers of training data as possible using your input rasters. If these are multispectral data (contain nearIR bands), you can use raster algebra to compute vegetation indices such as NDVI or GNDVI, then include those new layers in your classification.
  3. Make sure that your training pixels are a representative sample of your target features. You should make as many polygons as you can while remaining confident that you've only included 'weeds'. Try to select enough different looking weed pixels so that you will capture most of the variation in that landcover type.
  4. "Turn the knobs" once you find something that works well, you can refine it by making fine scale adjustments to the parameters of your classification algorithm. Or, maybe you will find that multiple iterations are necessary in the case that you have more than one distinct type of 'weed'.
| improve this answer | |
  • Nothing to add other than great overview. The only thing that might help would be doing a PCA to see what bands are most correlated, and possibly using the raster calculator to exclude the unneeded band(s). – Saijin_Naib Oct 23 '19 at 18:38
  • Thanks for the feedback. 1. The Dzestsaka classifier has 4 classifiers. Only guassian mixture model and K nearest neighbor work. The other two crash QGIS. Seems like K nearest neighbor works better though. It seems like the Semi Automatic Classification Plugin is pretty good. I tried to sue it before, but it seems to be on the more complex side to get to work. The Dzetsaka is very simple and lightweight. – Dan Olson Oct 24 '19 at 13:28
  • 2. The classification seems to work the best with a RGB image. Often times the individual bands and indexes have the classification perform poorly. How do you combine color and indexes into one raster that the classifier can analyze? – Dan Olson Oct 24 '19 at 13:29
  • 3. For each object class I usually define it with 5 objects spaced throughout the image. For example 1=crop, 2=weed, 3=shadow. Each one of these classes would have 5 polygons defining it. – Dan Olson Oct 24 '19 at 13:30
  • 4. The classifier can differentiate between the crop, weed, soil, and shadow pretty easily. Maybe 80% of higher accuracy. The trick now is to get it to pick up the different weed species. I try to get it to recognize two different weed species, but it gets confused and has low accuracy, maybe less than 60%. Or it will often tag one weed as both species for some reason. – Dan Olson Oct 24 '19 at 13:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.