Camera Calibration parameters - precalibration and autocalibration

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dodobirdat
    3Dflower
    • Jan 2023
    • 4

    Camera Calibration parameters - precalibration and autocalibration

    Hello,

    I wanted to ask about the 'use precalibration step' and 'Autocalibrated' checkboxes in Camera Calibration window in Zephyr in a bit more detail, as I couldn't find anything online.

    My questions:

    As I understand, 'autocalibrated' just serves as a flag for the type of calibration. Does the program treat the calibration settings different during sfm when this is checked? If so, how exactly? (more iterations, etc?)

    What does checking 'use precalibration step' do, exactly? Does it use the exif image data to estimate ALL the parameters (focal px, k1-k3, p1, p2, cx, cy) or just some of them? Does it use anything else that could change from dataset to dataset, aside from exif data? I get that it's used in situations where no good starting guess is available, but would like to know the importance of it or its general impact on the sparse point cloud.


    More details / experimentation:

    After searching through the forum I've come up with the following:
    • autocalibration happens when no exif data is available for the program to use (so 'Autocalibrated' is by default unchecked for datasets with exif data present)
    • Image exif data is used for the pre-calibration step, so if no exif data exists (e.g. video frames) this precalibration cannot be carried out
    • If the loaded parameters are already a good estimate, it's better to run the reconstruction without any precalibration step (so precalibration step overrides the input parameters)

    I've experimented with the 'use precalibration step' and while for some datasets unchecking it doesn't seem to have much of an effect (even when no database camera info is used), for one of my datasets (top-down drone images, roughly grid formation, large barrel distortion, camera not present in zephyr's camera database) unchecking precalibration step makes the sfm reconstruction very domed and partially missing.

    Example of the calibration settings for this domed dataset:
    ?

    Any advice or correction of my assumptions if they're wrong would be much appreciated, thank you!
  • cam3d
    3Dflover
    • Sep 2017
    • 682

    #2
    Hey dodobirdat - Sorry about the slow reply! With the release of 7.0 we have a lot going on but haven't forgotten you

    Which version of Zephyr are you using? Currently there are no ' Use Pre-calibration step' or 'Autocalibration' checkboxes in the Camera Calibration window (7.0 automatically searches the online database for calibration data - I rolled back to 5.000 but still couldn't see these checkboxes).

    In essence, existing calibration information helps to speed up processing with known parameters, and provide more robust processing in the case of weak input images.

    Autocalibration overrides all parameters and forces Zephyr to solve the SFM without them.

    If an image dataset is strong enough, and has a high level of confidence matching from image to image, autocalibration will likely work well.

    If the image dataset is weak or problematic (high levels of lens distortion etc..) autocalibration is likely to fail, which is where using existing calibration information is very useful.

    Note: You can create your own calibrations through Utilities>Images>CameraCalibration.

    ---

    Tagging Roberto & Andrea Alessi in-case they have anything to add/ammend.

    Comment

    • dodobirdat
      3Dflower
      • Jan 2023
      • 4

      #3
      Hi cam3d, all good, thank you for the reply!

      Aha, to clarify I'm still using Zephyr 6.5, and the ' Use Pre-calibration step' or 'Autocalibration' checkboxes are found when I go to 'Modify Calibration' after loading all the images in the Camera Calibration window. This brings up the window on the right, where I can see the checkboxes:

      Click image for larger version

Name:	Screenshot 2023-03-07 154440.png
Views:	655
Size:	86.3 KB
ID:	8864
      ??
      Good to know that Autocalibration overrides all the input parameters! Does it rely on EXIF data to calculate its own starting values? Or some other clever approach I can't ask about (I'd imagine if EXIF data is the main source, then starting parameter estimation is harder when the only info is image size, as with sampled video frames)

      Any ideas about the 'Use precalibration step' option? It seems like it's also used when the input calibration parameter values aren't a good starting guess, but if it just overrides all parameters then I'm not sure how it differs from 'autocalibrated'.


      (Thanks for the note, if I had access to the camera that took my images I'd definitely use it, but alas.)

      Comment

      • cam3d
        3Dflover
        • Sep 2017
        • 682

        #4
        Thanks for clarifying dodobirdat

        I'm not sure on the specifics - I believe EXIF data is used to ID the hardware, but the calibration itself is derived from positive matches between photos taken by that hardware.

        IIRC precalibration refers to the matching of a small subset of images (30 images for v6.513) and the results from this matching step are used to aide the orientation of the full image-set - As a general rule precalibration is good to keep on :-)
        Last edited by cam3d; 2023-03-08, 06:53 AM.

        Comment

        • dodobirdat
          3Dflower
          • Jan 2023
          • 4

          #5
          Thank you for the extra information cam3d !

          Got it, so as you said previously, success of autocalibration depends on the image quality plus image arrangement/angles, not on whether it has EXIF information with the focal length, extra GPS data, etc.

          Oh, so it's reccomended to keep precalibration on regardless of whether your input parameters (focal length, distortion, center etc) are well-estimated? (with zephyr's option, or through Zhang calibration etc). It won't override them?


          Re precalibration mechanics: that's actually really interesting, and reminds me of the 2-step calibration they have in MicMac. I don't suppose there's any way to tell zephyr what images to use as a subset?

          For example if I knew I could pick 30/400 images where the images are well-textured, highly overlapping and all look inwards (convergent) to a specific object (which makes it easier to estimate parameters and is the basis of another calibration approach if I remember right). I highly doubt the subset choice is random though, because my reconstruction re-runs have looked pretty consistent.

          Not sure if you even have information on this, but would be interesting to know

          Last edited by dodobirdat; 2023-03-09, 06:26 AM.

          Comment

          • cam3d
            3Dflover
            • Sep 2017
            • 682

            #6
            Hi again dodobirdat -

            My understanding of how this works 'under the hood' is limited - Pinging Roberto for any additional insight

            Comment

            • dodobirdat
              3Dflower
              • Jan 2023
              • 4

              #7
              Hi cam3d,
              Thanks for the replies, looking forward to seeing if Roberto or Andrea Alessi have any additional recommendations

              Comment

              • jupp2000
                3Dflourished
                • May 2021
                • 85

                #8
                dodobirdati

                Comment

                Working...