[labelling/annotation] Ring shape object (edge only labelling)

Labelling the edge of a ring object

  • Project Type: plant disease detection
  • Operating System & Browser: YOLOv8

Hi everyone,

I’m currently working on a project to develop a model that identifies specific plant diseases that manifest in a ring-like pattern (** sample image attached below**). To train the model, I’ve used polygon annotation to label the disease, including both the edge where the disease occurs and the centre where the disease is absent.

other non-ring shape disease was detected successfully with ~90 % acc.

My assumption was that this annotation approach would be effective, as the edge of the ring represents the diseased area, and the clean centre is a key characteristic of this particular disease. However, I’m facing a challenge where the model is unable to detect the disease at all.

  1. Has anyone encountered a similar issue with ring-shaped annotations, and how did you overcome it?

  2. Could the inclusion of the clean centre part in the annotation be confusing the model? Should I only annotate the diseased edge?

  3. Are there specific techniques or tools that might be more suitable for annotating and detecting ring-shaped diseases in plants?

  4. Would data augmentation or a different model architecture possibly improve the detection of this ring-shaped pattern?

  5. Any recommendations for resources, papers, or experts that might have insights into this specific challenge?

I appreciate any insights or suggestions you may have. Thank you for your help!

Based on the information provided in the extracts, here are some tips for labeling the edge of a ring object for your plant disease detection project:

  1. Use the polygon annotation tool: To create a polygon annotation, press “P” on your keyboard or click the polygon annotation tool in the sidebar. Click around the object that you want to annotate, then press Enter when you are ready to complete the annotation. Roboflow also offers a tool called Smart Polygon that can assist you in drawing the outline for your polygon. With Smart Polygon, you can draw a bounding box and the tool will create an estimated outline for the object. You can then click within or outside the object to narrow or increase the polygon region source.

  2. Label around the entirety of an object: It is best to include a little bit of non-object buffer than it is to exclude a portion of the object with a rectangular label. So, aim to have boxes that tightly mirror the objects you want to label, but do not cut off part of the objects. Your model will understand edges far better this way source.

  3. Labels should be as tight as possible around the object of interest source.

Remember, the quality of your annotations has a heavy bearing on the final outcome of your project. source.

Hi! I’m Roboflow’s AI powered bot. This is an automated response powered using AI with knowledge from our docs, blog, knowledge base, and previous forum responses. If you find this to be a helpful answer, please mark it as the solution using the checkbox icon below. If this doesn’t solve your issue, please follow up with what you’ve tried/why, and the community will continue to chime in as usual.

This suggestion is basically what I have done in first place. but it didn’t work well.
Please give me another suggestion?

Hi @Runner234

How many annotations of these areas do you have?

Like you suggested, the inclusion of the clean center portion may be causing confusion for the model, especially if it isn’t something that it has seen enough of.

Hi @leo

I have around 50 images and each image has about 4 annotations.
I am aware of the lack of data but it performs poorly than I expected (~ < 10 % accuracy).

Is there a way to annotate the thick-edge feature only (excluding the centre empty spaces)?

Hi @Runner234

Unfortunately, I do not believe so. Polygon annotations require a closed sequence of points to create a polygon shape and therefore can’t exclude any areas.

I see two ways forward for you and this project:

  • Keep the center spaces and add more data/annotations, which should definitely overcome the low performance.
  • An alternative would be a different type of project/model: semantic segmentation. You can read more about it in our blog post about the topic, but it may be possible that this might fit more of your use case. It would require re-annotating, but depending on what you’re looking to do, it might be worth it.