OpenDroneMap / WebODM

User-friendly, commercial-grade software for processing aerial imagery. 🛩
https://www.opendronemap.org/webodm/
GNU Affero General Public License v3.0
2.85k stars 953 forks source link

Straight lines turn into curved lines in orthomosaic #498

Closed martinsoko closed 4 years ago

martinsoko commented 6 years ago

How did you install WebODM? (Docker, natively, ...)?

Docker

What's your browser and operating system? (Copy/paste the output of Your web browser is:

Edge 42 on Windows 10 (64-bit) Is your Web browser up to date? ✓ Your web browser is up to date.)

What is the problem?

The orthomosaic is very distorted. Straight lines appear as curved surfaces.

How it looks using WebODM:

techos odm

How it should look: (result obtained using Pix4D)

techos pix4d

I've tried with different settings but I couldn't get rid of that weird curves. The settings I've tried include Fast orthophoto, High resolution and custom settings such as:

{'name': "resize-to", 'value': -1},
{'name': "orthophoto-resolution", 'value': 150},
{'name': "fast-ortophoto", 'value': "false"},
{'name': "min-num-features", 'value': 12000},
{'name': "dem-terrain-type", 'value': "ComplexNonForest"}

I get better or worse resolution but in all cases I couldn't manage to get a result similar to the one I got using Pix4D.

What should be the expected behavior?

I should get a nicer orthomosaic with straight lines.

How can we reproduce this? (What steps did you do to trigger the problem? What parameters are you using for processing? If possible please include a copy of your dataset uploaded on Google Drive or Dropbox. Be detailed)

Dataset: https://drive.google.com/open?id=12eqSUndyyhgSfrprnUzNC-3YuBsnsGZB

pierotofy commented 6 years ago

Hey @martinsoko :hand:, thanks for reporting the problem. Any chance you could share your images with us so that we can try to reproduce the problem? It's the first time I see this particular type of distortion.

martinsoko commented 6 years ago

Hi @pierotofy, I just uploaded the dataset to GoogleDrive. I edited the original comment to include it.

https://drive.google.com/open?id=12eqSUndyyhgSfrprnUzNC-3YuBsnsGZB

Thanks in advance!

pierotofy commented 6 years ago

The distortion is caused by "holes" or bumps in the reconstructed mesh.

image

I was able to get a better result using the upcoming changes in ODM that were integrated as part of https://github.com/OpenDroneMap/OpenDroneMap/projects/2 (which haven't been released yet), but it's still not perfect.

image

With the current version of ODM, I could recommend trying to enable the --fast-orthophoto flag, or fly at higher elevation (not sure if this is an option, but I think it would improve results). Pix4D's method of texture blending is different than ours and seem to work very well for this particular dataset. Also with the upcoming changes to ODM you should be able to soon see some improvements.

Future work on improving our texturing approach could also help improve the quality of this particular dataset.

martinsoko commented 6 years ago

OK then, I'll wait for the next release. I've already tried running the task with the flag --fast-orthophoto but the results were the same.

Do you have an estimated release date?

Thanks a lot for your time and dedication!!

pierotofy commented 6 years ago

No official release date yet, but hopefully very soon. Keep an eye on our blog for announcements at https://www.opendronemap.org :+1:

martinsoko commented 6 years ago

Hi @pierotofy,

Based on what you said

The distortion is caused by "holes" or bumps in the reconstructed mesh.

I tried running the task again with --dem-gapfill-steps 0 or 1 and the result was much better. Still not perfect because you can see the boundary between 2 or more images, but at least you don't see the same distortion like at the begining.

--dem-gapfill-steps 1 image

I hope it helps someone with the same problem until the new release comes out.

Thanks again!

pierotofy commented 4 years ago

This should have improved substantially with the latest changes to ODM. :clinking_glasses: