Questions about Data Collection, Preprocessing, and Triangulation

Hi everyone. I’ve done a good job of getting into the ODM ecosystem and started to use the pipeline to get the first step to good results. I have a few questions on the finer points of usage that I would like help with.

  1. I’ve been able to collect 2D data well at angles at or near nadir (-85 to -90 degrees) and used these to make models and orthophotos. However, the heights of buildings, vehicles, trees etc. in my DEMs and DSMs are inaccurate.
    Do I need to collect non-nadir data for modelling height? I undestand the good practices for flight in order to collect data at Nadir but am having trouble in collecting angled data. What angles would I need? Should my angled images be collected at the same or different altitude as my nadir images? What other factors would I need to take into account?
    I tried taking the walls of the compound at ~-30 degrees and a lower altitude, but ended up getting a sepaarate, mostly disjoint but slightly overlapping point cloud.
    TLDR: What do I have to change from Nadir Data Collection/Flight Planning to get good 3D results and accurate height measurements?

  2. How can I use data that is at multiple zoom levels? Are their some parameters I can set or some preprocessing I can do to get good results from an image set that is not consistently zoomed (or not at consistent altitude, I assume they effectively imply the same for the images) ? When I try to use the data as is, I get major curving in results.

  3. On the Wiki of the ODM github repo, I saw mentions of a way to run the pipeline from videos (SLAM if I remember correctly). Is there a way to use this?

  4. Is there a real time or batch processing use case of ODM? Where we can generate models from videos/images in real time? Alternatively, add a batch of images to an existing model?

  5. Is the triangulation algorithm in OpenSFM stable? I don’t have the triangulation metadata saved in my images, but I have the RPY angles for my UAV and also the rotation angles of my gimbal, so I could calculate the required angles and explicitly add the metadata.

    • Do I need to use the YPR angles of UAV or gimbal?
    • What metadata tags should I add the angles in?
    • is it better to add the info to metadata explicitly or use geo.txt ? I could not find a format specification for the file online.

Thanks

Welcome! I apologize for my delay in responding to you!

  1. If you’re not using GCPs, absolute heights will be off, but relative heights should be pretty okay. You’re actually better of not surveying at nadir, but a few degress off as it will improve the lens calibration (75-85deg or so). If you’re going to do orbits as well, you might want to try a multi-level/tier approach to ensure good vertical overlap, lowering the gimbal angle towards perpendicular to the ground each time.

  2. Digital zoom might be problematic, same for analog, especially if the focal length isn’t being written to the images. You can always “zoom with your feet” [propellers?] and fly closer to get a finer GSD, which should be easier to manage.

  3. This is not currently supported, though some folks do use tools like ffmpeg to dump frames from video to feed into ODM. It can be a challenge to then put georeference information back into the frames, which can make reconstruction a bit unpredictable.

  4. I’m not sure if folks are doing real-time work based upon ODM. As for modification of existing models, we do not currently support that.

  5. Stable, but quite nacent and still expanding coverage. So, it works well for the supported platforms, but that list is currently fairly small.

Please see the documentation here for some guidance on the geo.txt:
https://docs.opendronemap.org/geo/