ODM fails where Pix4D succeeds

I have a set of over 1000 images from flying at 30 meters over an agricultural field. The flight mapping pattern was sweeping left to right, each sweep up or down. There is an area where apparently the DJI quadcopter did not exactly return to the flight pattern after a battery change, or for some other reason images were not recorded, and apparently a few up-down patterns dropped out.

OpenDroneMap only partially succeeds to stitch all the images into an orthophoto, but Pix4d stitched the entire set quite well. OpenDroneMap cut off the left side of the orthophoto, probably due to the lack of proper overlap. There are also areas where OpenDroneMap failed to properly align the images: look for crooked crop rows around the left-middle edge of the OpenDroneMap orthophoto. Pix4D does not have these problems

The images and results (including a rough cameras.geojson) can be found at https://1drv.ms/u/s!AjItDERGqi8Ag0_HgcdMKWGDTbei?e=EjQ62d

The OpenDroneMap image was created with the following parameters:

docker run … opendronemap/odm --project-path /datasets --pc-quality high --use-hybrid-bundle-adjustment --orthophoto-compression LZW --skip-3dmodel --skip-report --fast-orthophoto --optimize-disk-space --orthophoto-resolution 0.7 --dem-resolution 5 --dtm --max-concurrency 4

Is there a way to get OpenDroneMap to

  • merge the two almost separate point clouds?
  • better align the images?
    and/or
  • output a list of images rejected from the orthophoto or give a confidence measure in the reconstruction.json or shots.json?
2 Likes

Try increasing --matcher-neighbors and --min-num-features.

1 Like

adding --matcher-neighbors 12 --min-num-features 14000 slightly improved the consistency within the right-hand lobe, but did not cause both lobes to be rendered.

Is there a way to get feedback from the rendering stage what percentage of an image was used for rendering? Then adding that output would allow a after-the-fact analysis and maybe some type of discovery/recovery from this kind of problem

1 Like

Interesting suggestion… Could be an option for the quality report.

I think the best you’ll get at current from the report is the overlap analysis which gives you an idea of the number of images that cover each area of the reconstruction.

1 Like

Where do I see this analysis? Do you mean the “Survey Data” section of the odm_report/report.pdf

1 Like

Yes!
I’m sorry, I should be more accurate with my language.

Thanks. It turns out that preprocessing the images to 50% size actually helped the orthophoto creation. Apparently the furrows and rows at full resolution look too similar, in lower resolution they become part of the feature rather than the whole feature. It also made the computational requirements much lower. So now I am wondering if there is a way to form the point cloud at one resolution, but render the orthophoto at a higher resolution (not lower).

1 Like

You should be able to just use the feature-quality flag to do that dynamic resizing for matching only, and it’ll pass the full-quality through for the point-cloud and orthophoto generation.

1 Like