Questions to alignment and registration


  • Hello,

    i have some questions regarding alignment methods used in current implementation and options to be used via API. Based on my experience also with other scanners there are three major alignment and registration methods used.

    • Rough alignment based on turntable calibration data
    • Fine registration of 2 scans, usually ICP method (e.g. scan1+scan2, scan2+scan3, scan3+scan4)
    • Global fine registration based on many scans in group (e.g. (e.g. scan1+scan2, scan2+scan3, scan3+scan4, scan4+scan1). Usually this is done after full turntable rotation scan or for final point cloud before meshing. Some scanning SW are even showing some warning if user want to create mesh without performing global fine registration.

    First question is which registration methods are used in current MAF3 software for which of this processes. Beside knowing the method(s) it would be even useful to know the API command behind:

    • AUTO align scans button
    • POINT PICK align scans button
    • While turntable scan from one scan to next scan
    • After 360° turntable scan (is there global fine registration used at the end?)
    • When performing turntable scan and adding some additional single scans without changing the calibration. Based on current implementation they are not automatically added by turntable calibration even this would be possible. Will this come in later versions? Based on rotate button scanner should know exactly the rotation to apply also single scans to previous turntable scans. This is really super handy to apply additional scans from areas which have not catched by automatic rotation.

    Second question would be regarding options in API:

    • Is it possible to align two scans from same single position (e.g. just exposure settings have been changed) to exact same coordinates? I was expecting that when taking two shots with different exposure that both scans should precisely overlap, but it's not the case. Any option for this in API?
    • When turntable is calibrated, but single shots are done using API for turntable rotation. Is it possible to align this single shots based on turntable calibration using API?
    • Is it possible to perform global fine registation to group and/or to set of scans using API? I checked documenation on github but could not find.
    • Any option for non-rigid registration allowing also slight distortion to get best match for alignment. It's not useful for technical parts for sure but for art objects or visualization is can provide very good results. Would be great to have such option via API.

    Sorry for many question but i am somehow excited and need to get better understanding about all available options.



  • Hi Cristian, 

    I encourage you to read the schema, which has every command available for the THREE and will provide answers to most of your questions

    https://github.com/Matter-and-Form/V3Schema/wiki/THREE-%E2%80%90-API-v11.6.0#mfv3tasksalign

    Alignments are defined by inputs (features or user selected points), and alignment methods (RANSAC, or ICP). All alignments are done with a source and target group (containing 1 or more scans). Turntable scans are the only optimized set of scans because we have a known loop; This process is done automatically at the end of a turntable scan and cannot be called through the API.

    When performing turntable scan and adding some additional single scans without changing the calibration. Based on current implementation they are not automatically added by turntable calibration even this would be possible. Will this come in later versions? Based on rotate button scanner should know exactly the rotation to apply also single scans to previous turntable scans. This is really super handy to apply additional scans from areas which have not catched by automatic rotation.

    The system cannot know if the user changes the turntable between scans. Simply use the turntable group as your target when aligning the new scan

    Is it possible to align two scans from same single position (e.g. just exposure settings have been changed) to exact same coordinates? I was expecting that when taking two shots with different exposure that both scans should precisely overlap, but it's not the case. Any option for this in API?

    Yes, this is in the schema under `centerAtOrigin` (set it to false to achieve what you want):
    https://github.com/Matter-and-Form/V3Schema/wiki/THREE-%E2%80%90-API-v11.6.0#mfv3settingsscan

    When turntable is calibrated, but single shots are done using API for turntable rotation. Is it possible to align this single shots based on turntable calibration using API?

    See above as per your previous question. Short answer no

    Is it possible to perform global fine registation to group and/or to set of scans using API? I checked documenation on github but could not find.

    No it is not.

    Any option for non-rigid registration allowing also slight distortion to get best match for alignment. It's not useful for technical parts for sure but for art objects or visualization is can provide very good results. Would be great to have such option via API.

    No. You will have to look at external software to achieve this. Meshing does offer some of the same advantages as non-rigid alignment, although I understand it's not the same.

     


  • Hi Drew,

    first of all thanks for your detailed answer. 

    I would love the MAF3 would support (global) marker detection which would make alignment much more easy which does not require global fine registration. Also april tags (like you use on the calibration boards) or coded targets would be nice to achieve this. It would allow full flexibility for using custom 2-axis turntable or e.g. custom HDR image capturing. I asked already but wanted to mention again because this was mainly the motivation to request global marker detection in the feature thread.

     

    This process is done automatically at the end of a turntable scan and cannot be called through the API.

    This is the reason why i need somehow your support for HDR image capturing in the SW because with API i cannot do this.

    Currently my sequence with API is the following:

    1. NewScan with ideal settings for scanning (not for texture)

    2. CaptureImage with ideal setting for light area (HDR1)

    3. CaptureImage with settings in between (HDR2)

    4. CaptureImage with settings for dark area (HDR3)

    5. Rotate the turntable and start from beginning.

    So far, so good. But the problem is that i cannot have global fine registration after 360° rotation. That's why it would be good if you would support the GUI improvement in the HDR/CrossPolarizer thread. It's not only for me, it's also for others ... new and existing customers. The results i am able to achive by HDR/CP processing is amazing.


Please login to reply this topic!