Question on using decimated model in VMTK plugin


If you had a chance to look at the files, I’d like to know if the same error appears and I would also like to ask for suggestions on how to resolve to this error.
Thanks a lot for all your support

Reducing above 0.9 doesn’t work most of the time. I am really stuck here, unfortunately.

Mesh subdivision failed. Skip subdivision step.
Input model preparation failed. It probably has surface errors.

There are several decimation methods available. Some of them work perfectly with your data set. I’m tuning things a bit and then describe which one to use and how.

Thanks a ton :slight_smile: :upside_down_face:

Hi @lassoan
May I know when I will be able to use this feature?

It is available in today’s Slicer Preview Release:

1 Like

Hi @lassoan
Thanks a lot, I really like the new module especially the relocation of endpoints for positioning on the Voronoi model, autodetect, and deletion of endpoints. In the Windows version, I could view both centerline and Voronoi model after hitting Apply. I am not able to view the Voronoi model in Linux version though.

Could you please explain a bit about how Decimation Aggressiveness woks?

I’d also like to know if the documentation of Extract Centerlines module is already available.

Parameters are explained in tool tips that appear when you hover over with the mouse and leave there for a few seconds.

Thank you.

Could you please look into this?

Thank you. I’m trying to understand the relation between Target point count and Decimation aggressiveness. From what I understand from the explanations provided in the tool tip, Target point count does the function of Reduction (a ratio, varied between 0-1; similarly what’s the range of Decimation aggressiveness) previously available in the centerline computation module i.e reduce the number of points on the surface. But I don’t clearly understand how Decimation aggressiveness

Lower values preserve mesh integrity better but it may not be possible to reduce number of points to desired level

is related to Target point count. For instance, I thought if I vary one (e.g. Target point count) the other parameter (Decimation Aggressivess) will vary as a function of the former. But this doesn’t happen.

Could you please explain this a bit?

You need to experiment a bit more to investigate the issue. For example, if you take the scene from the Linux, can you visualize the missing voronoi diagram on your windows? If that’s the case it might be related to your Linux graphics settings.

1 Like

Thank you. The problem is after using Extract Centerlines, in addition to the Voronoi model, I am not able to view the segmentation volume too (this can be seen in the snapshot posted above- the eye icon next to segmentation node is open ). The segmentation volume is visible after loading the file though, prior to centerline computation. The volume disappears after hitting Apply in Extract Centerlines. So I think the problem may not be due to the Linux graphics settings.

@lassoan Could you please look into this?

Please add a new topic to discuss this models/volume not appearing issue. Try to reproduce it without VMTK, just by loading models and adjusting transparency settings and enabling/disabling depth peeling in the 3D view.

Thanks a lot for your response. Sure , my question on Decimatin aggressivenes remains here and I have navigated the other question to new thread

Aggressiveness controls how much simplification is allowed. If aggressiveness value is too low then you may not be able to reach the point count target. If aggressiveness value is too high then you may have errors in the generated mesh.

Thank you. May I know what’s the range in which this parameter can be varied? Or is it recommended to use the default?

Any positive “aggressiveness” value is valid, but on the models I’ve tested on values in 3.5 to 4.5 range worked best.

I have added detailed “Extract centerline” module documentation here:

1 Like

Hi @lassoan
I would like to know if you had a chance to test the centerline computation on the model file that I had shared to understand how much memory would be required and the duration that it takes.

I’d also like to know if multi-thread centerline extraction can be executed.

Yes, it works well.

Starting from your original model (525k points, 1051k cells), with default settings, endpoint auto-detection is done under 15 seconds and with these endpoints centerlines are detected in less than 1 minute. Memory usage does not go above 1GB.

Branch extraction (computation of centerline curve or quantification results) seems to be sensitive to presence of unreachable endpoints: computation can take a really long time and lots of memory (maybe it never completes?). For example, I had to stop one execution after about half an hour computation and 10GB memory usage. After deleting all the unreachable endpoints, computation was completed within a couple of minutes (and peak memory usage was not more than 1.2GB).

Thanks a lot for sharing the link to documentation.

Yes, it never completes. I have been facing memory issues in the past while trying to obtain the quantification results and the centerline detection worked absolutely fine. I now switched to a server with 35GB of free memory and the process is still running for more than 12 hours. So I was wondering why it’s taking so long and why does it consuming so much memory

Could you please let me know how to find out the unreachable endpoints ? Should I have a look at the Voronoi model and find out the endpoints that don’t lie on the Voronoi model? If you could add a snapshot of the unreachable endpoints that you are referring to, that will be really helpful.

I also have a suggestion, I think it would be helpful for the users if Slicer can throw a warning before
the computation of centerline curve or quantification results task is initiated when unreachable endpoints are present in the model.