Map annotations within WebODM

It would be cool to allow users to collaborate on a map within WebODM to add annotations, save measurements, etc. Add Annotations Plugin or API · Issue #300 · OpenDroneMap/WebODM · GitHub

The specifics can be further discussed if there’s interest in implementing this feature.

2 Likes

Hi @pierotofy

I actually came here to ask similar question.

I am new to webODM and drones in general. However, I am interested in exploring a project where users can annotate objects (i.e car or tree) in a map (orthophoto). Whatever progress we make, it will be contributed back to the community.

I saw this feature of annotation in other tools. But I would love to have it on webODM. It would be great if you can provide some suggestions on how to get started and exactly where should I focus (webODM, ODM) on? Specifically, I am interested in using deep learning to detect objects in an image and then plot them automatically on an orthophoto. I think the annotations will be one part or a dependency for this.

It would be great if you can share some ideas around this?

Thanks

1 Like

I would look into WebODM (annotations would be added there).

Check https://rastervision.io/ and this discussion on AI Car Detection where I created a proof of concept for something similar to what you’re describing.

Annotations vs object detection are probably separate things to build.

2 Likes

Hi @pierotofy

Thanks for your response. I specifically have one question, it would be great if you can answer that.

In the discussion that you linked above, did you run inference on an orthophoto? I think that’s the case.

Now, our interest is in running inference on original images (not ODM output (i.e orthophoto)) and generate bounding box (and center point) for an object. There are several reasons why are we interested in running inference on original images. Anyways, once we have the inference results we would like to transpose x,y coordinates from original image to orthophoto, so that we can add tag (i.e point or a pin) on detected objects. Do you have any suggestions for this?

I think we need to look at orthophoto generation code, which I believe is in cpp if I am not wrong, and modify it to keep track of coordinates and somehow generate points on orthophoto.

Thanks again.

Mm, unfortunately I don’t. I’ve never thought about implementing something similar. But sounds like a cool idea!

Yes.

@savan: plenty of work in this space now – doing it 1-2 years ago would have been much harder. See what Development Seed is doing here. That should lead you to the ecosystem of tools meant for running inferences on orthophotos.

Much of the work is focused on segmentation, so it will exceed your needs for bounding boxes and centroids. But you won’t have to back calculate positions.

If you are interested in doing it on original images, OpenSfM which underlies OpenDroneMap may support segmentation. If it doesn’t, open an issue on Github, as I know the maintainers, Mapillary/FB have a private version of it that does, and it’s probably more work to maintain two copies than to push the segmentation support out into the FOSS version. If they know there is interest in segmentation, they are likely to open source it.

2 Likes

It looks like they might have thrown it outside the wall already:

https://www.opensfm.org/docs/api.html?highlight=segmentation#opensfm.dataset.DataSet.load_segmentation

:smiley:

1 Like

Thanks @smathermather, this is very helpful.

1 Like