Edit this page

NA-MIC Project Weeks

Back to Projects List

General model registration and merging tool

Key Investigators

Presenter location: Online

Project Description

We are working on developing a general purpose model registration tool in Slicer. At this moment, I developed a simple test module (https://github.com/chz31/registration_test) using rigid registration functions (RANSAC + ICP) from Open3D and new ITK-based ALPACA module. This can allow people to test registration for purposes such as ALPACA automated landmarking.

We are thinking about expanding this module into its own system for other purposes related to model registrations. One purpose is to register and align models that represent different parts of an object with overlapping area, and fuse them together. This could be useful for some purposes. For example, it would allow align and fuse models acquired from different angles, such as different parts of an object acquired by photogrammetry techniques. It would also allow virtual fossil reconstruction, which is usually done using commercial software such as Geomagic Studio.

Objective

  1. Develop a general purpose model registration tool in Slicer. Adding more utilities, such as a parameter adjustment tab.
  2. Add new functions for other purposes related to model registration. At this moment, we are thinking about how to align models that represent different parts of an object and fuse them together. This could be useful for photogrammetry and virtual fossil reconstruction.

Approach and Plan

  1. Add parameter adjustment tab for the current test version
  2. Merge registered models that represent different parts of an object into one. One way to aid the alignment is allow users to place a few matching landmarks on two or more models.

Progress and Next Steps

  1. Current GUI testing version is here: https://github.com/chz31/registration_test. It implements rigid registration functions (RANSAC + ICP) and new ITK-based ALPACA module. Screenshot 2023-06-14 at 4 34 06 PM

  2. Testing the performance of the new ITK-based rigid registration function for more cases.
  3. Currently, we are implementing CPD affine registration from the pycpd package.
  4. Adding more new registration features in the future.

Illustrations

Screenshot 2023-06-05 at 10 35 41 AM Screenshot 2023-06-05 at 10 35 52 AM

Screenshot 2023-06-05 at 10 36 04 AM

These are the models acquired by photogrammetry from two angles. The yellow one has no top, and the red one has no bottom. Rigid registration from Open3D can align them pretty well, though not perfect.

Screenshot 2023-06-05 at 10 24 06 AM

A sample virtual reconstruction in Geomagic Studio. The skull missed a part at the right side. The yellow part is the mirror image of the counter part at the left side.

Background and References

Current testing version is here: https://github.com/chz31/registration_test. It uses rigid registration functions (RANSAC + ICP) from Open3D and new ITK-based ALPACA module.

ALPACA module (including the ITK version) repository: https://github.com/SlicerMorph/SlicerMorph/tree/master/ALPACA

ALPACA tutorial: https://github.com/SlicerMorph/Tutorials/tree/main/ALPACA

Open3D rigid registration utilized in ALPACA: http://www.open3d.org/docs/release/tutorial/pipelines/global_registration.html