Hey ODM community!
First, let me start by introducing myself. I’m Nicolas from Argentina, and I’m currently working on my thesis with ODM. The thesis is about detecting changes in structural parameters in forests in Argentina, using UAVs. The plan is to implement the project in Argentina’s national parks.
I’ve added a few plugins / features to WebODM on a fork I created, such as an elevation map, integration with a Piwigo server and integraton with a LabelMe server we have. I someone thinks that any of these features would be useful in ODM, I would be more than happy to talk about integrating them.
But going back to my question, as part of forest classification, it’s super important to have a precise height measurement of the trees. Sadly, I’m currently failing to do so. First, I’m not sure what the best flight parameters would be.
For example, should the camera be facing down (90 degrees) or slightly tilted (like 75 degrees)? Should the mission be a simple or double grid? Would GCP help, even if they are on the floor?
And once I have the images, would you recommend any special parameters when running ODM? I’ve used the ‘Forest’ preset, but I haven’t seen any significant difference.
I have a few runs where the height is off. For example, I have this run (no special params, only dsm and dtm) with GCP (camera was facing down, 90 degrees):
Ortho:
Elevation map (since the reference is the floor, I’m comparing the DSM and DTM and creating layers every 2m).
Highest point in the elevation map:
You can see that the highest point is between 40 and 42m, and that’s not correct. The trees are smaller than 20m. At first I thought that the problem could be with the dtm calculation, since sometimes it’s not correct, but even if I only use the dsm I get this big 40m between the lowest level and the highest level.
I read some other posts where people recommended using another camera angle. Since I couldn’t go back to where the images where taken, and since it will help me experimenting, I wrote a small drone simulator in Unity that flies over a predefined terrain, taking pictures. I didn’t add any GCP yet.
At 90 degrees, I got a highest level of between 44 and 46m, when the trees were 30m tall (pictures and info in the link below). At 75 degrees, I got the same problem:
Ortho:
Elevation map:
Highest point:
Anyway, does anyone have any recommendations? I’m not sure how to fix this problem.
Links to Task images & console:
Specs:
- I’m using the docker images of both ODM and NodeODM (without any modifications).
Thank you so much for taking the time to read this!