ContextCapture not respecting GPS locations (bad Aerotriangulation)

For Aerotriangulation... how can I force CC to use the positional information for WGS84 GPS coordinates and NOT let CC change those locations under any circumstance? I am fine with rotation or other details changing, but the coords are not being respected. We have a metadata file that has locations for every image. The locations have been verified outside of CC. If we process a small area, it seems to work. The larger the area, the worse the results.

Orange is (ironically) ground truth and are the images that were unable to be used. Green is what we end up with.

This is from a run of approximately 10,000 images

Here are my AT settings:

A. Positioning/georeferencing:
- Adjustment constraints: photo positioning metadata
- Final rigid registration position: photo positioning metadata
- Final rigid registration orientation: none
- Final rigid registration scale: none

B. Main settings:
- Key point density: Normal
- Tags or QR Codes extraction: Disabled
- Pair selection mode: Default
- Color correction: blockwise
- Splats: Enabled

C. Estimation policies:
- Tie points: Compute
- Position: Compute
- Rotation: Compute
- Pre-calibration stage: Enabled
- Focal length: Adjust
- Principal point: Adjust
- Radial distortion: Adjust
- Tangential distortion: Adjust
- Aspect ratio: Keep
- Skew: Keep

Just wondering why I could be doing wrong. Thanks

Parents
  • Really strange indeed. Which Contextcapture version you are using?

    But you are using AT settings wrong. You don't set both Final rigid and adjustment constraints to photo positions you have to choose one. Final rigid is for innacurate.

    Under Main settings you can lock positions or use "Extend" option for rotations. It is advised to allow at least rotations to change as lot of photos will be drop if they both are locked together. Regarding verification of locations each software has slightly different results so there really is no ground truth. If this is Nadir flight then reusing calibration from 3D project could also improve accuracy.

Reply
  • Really strange indeed. Which Contextcapture version you are using?

    But you are using AT settings wrong. You don't set both Final rigid and adjustment constraints to photo positions you have to choose one. Final rigid is for innacurate.

    Under Main settings you can lock positions or use "Extend" option for rotations. It is advised to allow at least rotations to change as lot of photos will be drop if they both are locked together. Regarding verification of locations each software has slightly different results so there really is no ground truth. If this is Nadir flight then reusing calibration from 3D project could also improve accuracy.

Children
  • Desktop edition Update 20.1 - v10.20.1.5562

    I appreciate the advice about only selecting Adjustment Constraints. I'll will definitely give that a try. That being said... I don't understand why, but I am not able to select "keep" when I load my images and position metadata. I know I have seen the option available, but I cannot figure out what combination of settings allow me to select it.

    I have tried arbitrary units and also wgs84 for my metadata (lat, lon, height)

  • So it seems that I can only select the "keep" option AFTER I have already run AT. And I can only select "keep" for photos belonging to the main component. If I select "Use all photos" from the Component tab, then only "Extend" is available.

    I don't understand this workflow...

  • So after some digging, I think I have a better understanding of what's going on:

    • Only 1 of (Adjustment Constraints or FInal Rigid Registration) should be selected. Never both. No idea why you are allowed to select both.
    • Adjustment Constraints should only be used for high precision coordinates (<5 cm). So we should just use FInal Rigid and leave everything at default.
    • The only Poses and Tie Points option available during initial AT is 'Compute'
    • The other options (Adjust, Extend, Lock) become available on subsequent AT runs and vary depending on whether or not all images were included in the Main Component.
    • Using 'All images' on subsequent AT runs allows you to 'Extend' the current Main Component by attempting to re-add those photos that didn't get included initially.
    • You can also run 'Adjust' to help fine tune Position and Rotation of existing, good images
    • Keypoint density should be set to High for lower resolution photos (which we have)

    I don't want to get my hopes up, but I got good results for the first time. *fingers crossed*

     Appreciate your assistance with this.

  • Also you may try to run with photo downsampling applied. It lowers resolution for AT but may work faster and produce better results and more tie points when using high resolution cameras. After AT downsampling can be removed.

    • Keypoint density should be set to High for lower resolution photos (which we have)

    Have noticed the opposite that high density produces less tie points but drops more innacurate ones. But helps when flying over woods. Check automatic tie point distribution on photos after AT to get idea which points it finds.

    Adjustment Constraints should only be used for high precision coordinates (<5 cm). So we should just use FInal Rigid and leave everything at default.

    Yes but you said you have accurate positions. So you set this but under adjustment settings allow position to calculate. 

    Latest version has some improvement related to this. Confusing I know but gives you more control over whole process: communities.bentley.com/.../update-20-1---revised-at-engine

  • We have standard GPS positions. As far as I know, that's not going to give me <5cm precision. I'm actually not even noticing a difference when selecting "adjustment constraints" and "final rigid registration" in most some cases. Below is a set of captures going back and forth, capturing a scene from many angles to ensure there is a lot of overlap. I tried exhaustive pair selection and adjustment constraint in this case. You can see it totally trashes the locations of the points. This is a collection from ground level with a standard GoPro (4K images). If I just do a single, continuous video and extract that image set, it will work most of the time. Combining multiple sets even though they have similar overlaps in images almost never works.

    I just don't understand why the positions would be allowed to move 20+ meters.

    For my testing, I'm trying to capture a street. I go up and down the street and try to capture enough angles that the overlap should be obvious (N, NE, E, SE, S, SW W, NW). But I must be doing something wrong. Maybe my overlaps are not good enough. Maybe my fov is wrong. I know I have enough images because I'm using 0.5 meter spacing so there are a ton of images.

    Maybe it doesn't like linear paths? The data is usually not oriented correctly (z up) when I do linear paths... even though it's specified as WGS84 and the height is present in the metadata.

    I'm at a loss...


    Ground truth (GPS)



    Final AT

    AT final position vs metadata

    Settings for the run above:

    A. Positioning/georeferencing:
    - Adjustment constraints: photo positioning metadata
    - Final rigid registration: none

    B. Main settings:
    - Key point density: Normal
    - Tags or QR Codes extraction: Disabled
    - Pair selection mode: Exhaustive
    - Color correction: blockwise
    - Splats: Enabled

    C. Estimation policies:
    - Tie points: Compute
    - Position: Compute
    - Rotation: Compute
    - Pre-calibration stage: Enabled
    - Focal length: Adjust
    - Principal point: Adjust
    - Radial distortion: Adjust
    - Tangential distortion: Adjust
    - Aspect ratio: Keep
    - Skew: Keep