STL models - Alignment and Volume measurement

Hi,

Our Input - 2 STL surface scan models (PreOp and Post Op) - from the 3Shape surface scanner.

We have two problems.

  1. Need to accurately align the pre and post op surface scans ? (they have fixed landmarks)

  2. Need to measure the change of volume in the region of interest ? ( the volume of bone resorption)

So far, we have install CMF registration and,

as you can see from the pictures the alignment with CMF surface registration is not accurate enough.

PreOperative

We need to improve the accuracy of the alignment and we are unable to do it so far.

Can someone help us with accurate alignment/superimposition of the two scans ?

Next we need to measure the change in the bone volumes in the circled region. That is the difference of bone volume in preoperative and postoperative scans.

Is this can be done in 3d Slicer ?

Looking forward to hearing from you all.

Thanks

yes.
You can use the “fiducial registration” and modeltomodel…
…

Have you seen this? Registration Video

Perhaps you could try ROI registration around those small tube looking bits which seem to be common to both models. To be honest with some models I just cant get automatic registration to work well enough. With a bit of time I can get a better result using manual registration of the two models.

You can manually move one model around using the “Transforms” module. It helps to make the models visible in the slice view which you can do under the “Models” module. Remember that the rotation seems to always be about the origin or 0,0,0 coordinate in the 3d space. So it helps a lot if your model is centered over the origin (0,0,0) point before you start moving it. Click local coordinate button in the transforms module to keep the rotation point around the centre of the model as you move it around.

Im not sure about the volume measurement part

Dear Timeandddoctor,

Thank you so much for your suggestion.

Are you suggesting the fiducial registration in the CMF surface registration model ?

Also can you point me to how to get the colour map for model to model distance module ?

Kind regards

Manjula

If you can accurately identify landmark points then you may use Fiducial registration wizard module (in SlicerIGT extension) to register based manually placed landmarks. See U-12 SlicerIGT tutorial for step-by-step instructions.

Dear Prof Lasso,
I used the as you suggested but this is my results and went through the tutorial as well. I can’t figure out , how to get it to transformed.

What i am doing wrong ?

Registration result is a transform (not a transformed model node). You can apply this transform to models, markups, images, etc. to align them.

An easy way to preview transformation result and apply it to the model is to choose the moving model node in “Preview transform” section and click “Apply”.

I think i have better results now even though i have to perfect it. It comes with a error code.

Is it because of the geometry of the fixed landmarks we have ? (Do i need to select point matching method to manual ?) What is s RMS error ?

Also suppose i make this to a good alignment and then how can i save this aligned model to compare this in model to model distance module ?

Thanks

It seems that your point pattern is not unique enough for the automatic point matching to work reliably. Disable automatic point matching and instead make sure you mark corresponding points in the same order.

It is the root mean square of the residual error after fitting the landmark points. It characterizes how well the points can be aligned by the chosen transformation. Lower values are better.

Thank you very much for your great assistance. I am at the moment trying to perfect the alignment on my samples trying different configurations.

I will soon comeback with my results and problems.

1 Like

Finally i think i have good alignment following the method Prof Lasso suggested. Many thanks for the wonderful help.

For my benefit can you all please comment which image is better aligned ? A1 or B1. One is using the 3D Slicer and other one a commercial product.

A1 A1

B1

According to the opinion of the guys here which you think is better aligned ?

And my second problem is to measure the difference in Volume ? (this is the old photo but the idea remains the same to ilustrate where exactly i want the volume difference in )

2aa220b72b9c97e2200b5a4e8df0855cb24f0b5b_2_608x500%20(1)

Also i want to create a colour map like this one using 3D Slicer. (this was not created with the 3D Slicer)

colourmap

I tried the https://www.youtube.com/watch?v=FCCa2A77fV8 but i cannot find the 3Derror metric plugin in my slicer as shown in the video here. So i dont’ know how to proceed.

Looking for the help again by anyone who is interested.

Thanks

Alignment is hard to assess in 3D view. It is more visible in slice views.

You can meause volumes by importing the model nodes to a segmentation node and then use segment statistics module.

Thank you again.

I figured out how to asses it in slice views.

But may i please know how to import model nodes to a segmentation node ?

Also how to get the color map ? (The colour map i posted is not created using 3D Slicer. )

Using Segmentations module Import section.

You can comoute distances between modules using Model to model distance extension.

1 Like

Hi,

Our Input - 2 STL surface scan models (PreOp and Post Op) - from the 3Shape surface scanner.

We have two problems.

  1. Need to accurately align the pre and post op surface scans ? (they have fixed landmarks)

  2. Need to measure the change of volume in the region of interest ? ( the volume of bone resorption)

So far, we have install CMF registration and,

as you can see from the pictures the alignment with CMF surface registration is not accurate enough.

PreOperative

We need to improve the accuracy of the alignment and we are unable to do it so far.

Can someone help us with accurate alignment/superimposition of the two scans ?

Next we need to measure the change in the bone volumes in the circled region. That is the difference of bone volume in preoperative and postoperative scans.

Is this can be done in 3d Slicer ?

Looking forward to hearing from you all.

Thanks

We talked a lot about registration. Summary:

  • Current surface-to-surface methods require cutting off non-common surfaces, which will be much easier with the new surface cutting module that @Sunderlandkyl is working on (that will allow cutting with plane widgets and surface curves).
  • There is also the option of doing landmark registration.
  • Integration of more robust surface matching algorithm from OpenCV could allow surface matching without the need to cut off non-common surfaces - this should not be too much work, but would require dedicated funding (or maybe you may ask SlicerCMF developers if it is potentially in the scope of their project).

Volume measurement: You need to register the surfaces, then close them (for example, cut off excess parts, thicken it using vtkLinearExtrusionFilter, then cut off the back side). We did this for surface-scan based volumetric fat resorption monitoring after breast lipofilling (see details in this thesis and implementation in this repository). It would be not too hard to adapt this to dental scans, but probably would require dedicated project. SlicerCMF and others, such as @cpinter might be potentially interested in collaborating or could help out if you can secure some funding.

3 Likes

Are there any updates on this topic?

Volume measurement between two intraoral or breast STL files which are generally not closed need manual adjustments to close the surface…
In the thesis provided an extrusion of the surface was performed. Wouldn’t bridging (joining) the two surfaces provide the same results in case you have multiple follow up scans e.g. to measure postop swelling and would like to detect the % reduction over time?