Skip to content

matcher_type=bruteforce does not appear to disable GPS-based pair filtering in some cases #1908

@glamine

Description

@glamine

How did you install ODM?

Docker, version 24.0.2
ODM version fixed to 3.5.6


What is the problem?

When using matcher_type=bruteforce, I expected ODM to match all image pairs regardless of GPS distance. However, when GPS information is present in the EXIF of the images (27 images), the number of matched pairs is significantly reduced (198 pairs ) compared to a run with no GPS data at all (351 pairs), even though image overlap remains ~80%.

This suggests that GPS-based filtering may still be active under matcher_type=bruteforce, contrary to what the name implies.


What should be the expected behavior?

All image pairs should be matched regardless of GPS information when matcher_type=bruteforce is set.


How can we reproduce this?

I can't share any data as it is proprietary


Specific Parameters Used Outside of Default

--3d-tiles \
--skip-orthophoto \
--matcher-type "bruteforce" \
--matcher-neighbors 0 \
--crop 0 \
--min-num-features 25000 \
--feature-quality "high" \
--pc-las \
--pc-ept \
--pc-filter 0 \
--pc-quality "high" \
--pc-skip-geometric

Use Case Specificity

This might be related to my slightly unusual use case:

  • I’m not using ODM with standard low-altitude drone imagery.
  • My dataset consists of high-resolution images taken at higher altitudes (Not the typical drone altitude), with GPS positions that are farther apart, yet with ~80% image overlap.
  • This may lead the internal matching heuristics to wrongly discard many valid pairs based on GPS distance.

Questions

  • Is there any known GPS-based filtering that remains active even when matcher_type=bruteforce?
  • Is there a parameter I may have missed to fully disable GPS-based filtering?
  • If this is expected behaviour, could it be documented more explicitly?

Thank you for the great work on ODM!
Happy to provide the logs if it helps.

Best,
Guillaume Lamine

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions