Recommended settings/options for high resolution ortho-photos

Hi,

Is there any clear guidance on what settings should be enabled for high resolution orthophoto? I found some threads and some posts. My feeling is that it is quite scattered and would be nice if there was some central guidance for a base configuration.

Best Regards,
Rasmus

2 Likes

Good question! Our built-in preset is currently this, though I have some strong feelings about my favorite flag to hate, --ignore-gsd :stuck_out_tongue:
https://github.com/OpenDroneMap/WebODM/blob/master/app/boot.py#L144

        Preset.objects.update_or_create(name='High Resolution', system=True,
                                        defaults={'options': [{'name': 'auto-boundary', 'value': True},
                                                              {'name': 'ignore-gsd', 'value': True},
                                                              {'name': 'dsm', 'value': True},
                                                              {'name': 'pc-quality', 'value': 'high'},
                                                              {'name': 'dem-resolution', 'value': "2.0"},
                                                              {'name': 'orthophoto-resolution', 'value': "2.0"},
                                                              ]})

I guess like anything, what’s your definition of High Resolution? What’s your use case? What kind of hardware do you have available to process with? All of these things put various hard/soft constraints on what parameters are viable and what level/setting for each is viable, which is likely why things are so fuzzy.

That being said, I hope to expand the documentation in such a way that you will have more guidance on this matter.

3 Likes

Been meaning to do this for a while… :

2 Likes

That should have been in my own fork, but hey!

1 Like

ThanksThankYouGIF

I didn’t think I had the clout for that big an upset yet, but that’s what giants are for :stuck_out_tongue:

2 Likes

Lol. We should have done that months ago. No one should be using that flag, unless they have an old 1TB dell blade sitting on their kids lego table in their spouse’s office. Then… maybe.

2 Likes

Hello thanks for the answer!

Running with these settings atm, how do they look?

Created on: 15/12/2021, 11:44:30

Processing Node: node-odm-1 (auto)

Options: depthmap-resolution: 1024, feature-quality: ultra, ignore-gsd: true, mesh-size: 300000, orthophoto-resolution: 0.5, pc-quality: ultra, rerun-from: odm_postprocess, skip-3dmodel: true, texturing-outlier-removal-type: gauss_damping

Average GSD: 2.53 cm

Area: 360,694.56 m²

Reconstructed Points: 4,422,175

On a machine that has 16vCPU and 64 GB ram but i can change that.

Is there any way that i can get higher resoultion on textures at detail, to get smoother edges similar to Agisoft.

ODM:

Agisoft:

edit:
Hmm have to admit they look pretty similar here on forum but when i look in viewer odm is bit more pixel looking and Agisoft smooth things out it seems.

Best Regards,
Rasmus

1 Like

You wont get better resolution than your GSD, so no point setting the resolution any higher than that.

1 Like

Great to know, thanks, I am kind of a noob on the settings, I am better on computer infrastructure :slight_smile:

2 Likes

Looks great, except… --ignore-gsd
BobsburgersLouiseGIF

You can also drop --depthmap-resolution as that is set by --pc-quality.

Any particular reason you’re skipping 3d model and choosing gauss_damping?

As Gordon noted, you can’t get better resolution than what you actually captured, but with --ignore-gsd dropped, having --orthophoto-resolution 0.5 doesn’t hurt anything.

As for the display, it looks like Agisoft might be using biquad/bicubic or something similar for their image resizing algorithm. We might look into changing our default behavior, but it can come at a significant time cost when generating pyramids/overviews.

2 Likes

Hello, thanks for the response :slight_smile:

I am kind of not following on the --ignore-gsd flag haha. If I get it right you will remove the option so it always is true?

Great point about --depthmap-res, read about it being old setting and pc quality will do the job, thats great!

Not really any reason for gauss_damping, just trying around. 3d model skipped mostly because I am looking at making ortophoto. Will it improve quality of ortophoto with 3d model?

Best Regards,
Rasmus

1 Like

Haha, nope! I would want to either put it behind a nag prompt that makes you confirm like, 30 times, or maybe do something like desktop goose and have it run away when people try to turn it on:

In other words, it should be false 99.99% of the time, and even that last 0.01% of the time, it should also most likely be false. People turning it on without supercomputer-sized hardware is a recipe for distaster and leads to a lot of our failure to process errors. And 99.99% of the time, it isn’t going to help what they’re trying to do.

Fantastic! Keep track of your screenshots/exports so you can compare what works better for you in this situation!

It really depends what the purpose of your exports are, and what you’ve imaged. It can lead to some weirdness at building edges, but it can also generate products that are much more precise for natural features.

Amazing input and yes I see what you mean, when running this I get the error that I did not have enough ram with a machine that has 64GB, however, I am running webodm and node on the same machine.

Will remove the flag then :slight_smile:

/Rasmus

1 Like

How much do you gain by putting pc-quality and feature-quality at ultra compared to high?

1 Like

I hate to be this person, but it really depends :rofl:

In an idealized sense, you gain quite a significant amount.

--pc-quality:
ultra: 0.50
high: 0.25

--feature-quality:
ultra: 1.00
high: 0.50

In reality, it depends upon the data and how it was collected, as well as your desired output. You’re getting a finer point cloud, but in many cases it doesn’t meaningfully improve your output products. It also carries a significant cost in RAM, processing time, and potentially storage.

If you have the RAM/swap, the processing power, the storage, and the time, I’d see no reason not to use ultra for both. You can always refine/simplify the products in post, but you can’t enhance, no matter what BladeRunner taught us.

Haha make sense!

Or could you:
[xinntao/Real-ESRGAN: Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. (github.com)](GitHub - xinntao/Real-ESRGAN: Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration.)

Was actually playing around with thought if it is possible to enhance the photos/orthophoto via AI. :wink:

1 Like

It can only fill in made up data :man_shrugging:. But if that suits your needs, it could be beneficial!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.