Centerline computation failed

Hello Everyone,

I’ve been trying to compute centerlines for this geometry using VMTK extension.

However, I couldn’t successfully obtain centerlines. Even the networkExtraction failed when I tried
to use the stl file of the same geometry

reader = vmtkscripts.vmtkSurfaceReader()
reader.InputFileName = ‘input.stl’
reader.Execute()

# network extraction
networkExtraction = vmtkscripts.vmtkNetworkExtraction()
networkExtraction.Surface = reader.Surface
networkExtraction.Execute()

Could someone kindly look into this?

This model contain 2.8 million points.

Centerline extraction may still work but it would take really long time. I would suggest to cut off unnecessary parts in Segment Editor and heavily decimate the exported model in Surface Toolbox.

You may ask for further suggestions for dealing with large models at the VMTK mailing list.

Hi @lassoan

I wasn’t sure how to select a Start point for such geometry since there are many free ends.
Could you please give some suggestions?

If you don’t have any preferred root branch then just choose any larger branch that is connected to most others. Start with a cropped model and apply decimation to have no more than a few ten thousand points. You can then experiment with gradually increasing the region of interest size and tune decimation parameters to reach a good tradeoff between quality and amount of data you get, and computation time on your system.

There may be tricks that long-time VMTK users know about how to handle large networks, so please reach out to them and then report back here that you learned.

Hi @lassoan

Thank you very much. I am working on these lines

May I ask a few doubts?

I couldn’t exactly understand how to obtain a cropped model. In the segment editor I try to use “Scissors” , select operation and shape (circle) required. How should I crop the volume after this step? In one of my previous post, you had mentioned Scissors will only blank the voxles. So I am not sure how to crop.

Could you please briefly explain how decimation works? I find a Reductiontab that shows (0.8) by default. Does this mean 0.8 percent of the original number of points are removed?

May I know which feature can be used to get an estimate of the number of points?

Definitely, I have reached out to them a week back and wrote to them for the second time today. I will wait for their response and share my learnings here.

If you crop to reduce memory usage then you need to crop the input volume (before you start segmentation) using Crop volume module. If you crop so that you have a network that VMTK can process faster, you can further cut off parts of the image using Scissors tool.

Reduction refers to the requested fraction of points to be removed. 0.8 means that you request removal of 80% of points. Probably you want to use values in the 0.9-0.99 range.

Number of points are shown in the tooltip when you hover over your model in Data module. Some more information is shown in Models module / Information section.

Explain them in 2-3 sentences who you are, what your project is about, and why it is important. Also attach a screenshot link to example labelmap and segmented model files. Then you have a better chance to get an answer. You may also keep asking 1-2x a week for a couple of weeks, telling what you have tried, and how well those worked.

@lassoan

Thanks a lot for the clarifications.

I’ve used the segment editor to extract a really small segment this time (available here). The initial number of points is 188394.

I have reduced by 80 %( started with 95 % initially). The decimated model now has 37602 points.

I get the following output while trying to run Compute centerlines:

No data to smooth
No data to decimate
No points to subdivide

When I try for the original model, the centerline computation doesn’t complete even after 30 min.

Can you share a download link to a model before and after decimation?

Hi @lassoan

Please find the model files before and after decimation.

@lassoan

I now have the ouput ,CenterlineComputationModel, created after centerline computation using the original model (before decimation).

I see a problem with holes (created during segmentation).

The new Extract centerline module has now built-in decimation tuned to work well for vessel centerline model preprocessing.

1 Like