In Mimics, there were more and more “advanced segment” module to users for making the segmentation pipline quick and easy, like “CT Heart”(auto in mimics 22.0+), “Segment Airway”, “Segment Lung and Lobes”.
When i using Slicer, i find it’s not easy to make the same segmentation that automatic generated by Mimics, especially segment lung airway and lobe, although there are lots of segmentation tools, e.g. “Surface Cut”, “Grow from regions”, but it’s remain hard to reach the same accurate, which is disappointing for manual segmentation versus automatic segmentation, and consuming more time.
So can we take some open & accurate automatic algorithm for segmentation into account in the future plan?
Once you figure out a segmentation workflow, it is usually quite easy to automate it. See for example how the automatic lung segmentation module works in LungCTAnalyzer extension. Initially it took lots of practice and several minutes to segment the lungs, now it just takes about 10 clicks in the lungs and you get segmentation very quickly and robustly. You could similarly create automated heart segmentation module, for example by automating this region growing based workflow.
Of course, nowadays for automated segmentation most people would train a neural network. NvidiaAIAssistedAnnotation extension allows you to use any NVidia Clara compatible models in Slicer. You can find readily usable models for many common segmentation tasks. There are also specialized AI-based segmentation extensions, such as DeepInfer that comes with automatic prostate segmentation models, or this lung segmenter extension.
Thanks for your quick apply. Agreeably, the neural network is a good way to automate the workflow, and the results is always accurate and robust, but it’s a pitty that there were not so much model for us to choose, and the data transformation is always slow and unsafe, which is not so perfect.
Before i using Slicer in Mac, i am a Mimics 21.0(just for windows) users, the situtaion i often met is segmentation for lung CT, like airway, lobe, pulmonary artery, pulmonary vein. Airway and lobe usually automate worflow, quick and accurate. When i using Slicer, i want segment the lung lobe as accurate as mimics, i have paint it in CT slice bu slice(fill between slice is not accurate enough contrast to mimics), which is too tedious. But i have to say, Slicer segmentation module is easy and more flexible than Mimics beyond some automated advanced segment.
With the experience in using Mimics and Slicer, i have some suggestion for Slicer:
- Automated advanced segment: It make new-users quick start with slicer to complete their work without have to be familiar with all basic tool in segmentation editor.
- Render more fast: When i use Mimics, i find it render so fast for any segmentation binary label map, while in Slicer, i find it’s more slow when i check the surfacing smooth. And the interacion in Mimics is more smooth. Another question is when i render some vessel, the thin tube vessel is always smooth to disk-shaped/strip vessel, which likes a needle, stranged in medical, can we solve this when smooth?
- Some morphology operation: i find the grow/shrink in margin in segment editor not action as what i expected. I think there shoud be some morphology like dilation/erode in the segmentation for only process the 8/26-connected component for N iteration in pixel level. In Slicer, i find the processing always in size level, like 3mm, 1mm.
Have you tried LungCTAnalyzer extension?
It would be probably easy to come up with a semiautomatic solution for splitting the lung to lobes using classic methods, based on manually placed landmark points, curves, or planes, but nowadays this would only be used for generating training data for neural networks, so it is hard to justify the investment.
This is already available in NVidia AIAA segment editor effect. If we get more models, we can make more of them publicly available. Medical image computing researchers and NVidia are pushing MONAI very much (as a backend of NVidia Clara), so I would expect that we’ll have lots of models available in the coming years. It is hard to predict if researchers will make available their models freely or it will be all commercial.
Slicer is a much more generic tool, with much more features than Mimics, which makes it harder to match the performance, but we try to address all pain points. For example, Segment smoothing has been 20x faster (thanks to Kitware investing into improving the corresponding filter in VTK) in recent Slicer Preview releases, so the overhead of surface smoothing is now negligible. There are also experiments for using direct volume rendering for 3D display of segmentations, but since 3D update typically takes less than a second now and can be easily enabled/disabled, this is not on the critical path anymore. If you have performance issues when trying to accomplish a specific workflow then let us know.
In Slicer all display, processing, parametrization are in physical space, in 3D. This way, you can run the same visualization, processing, quantification workflow on a wide variety of inputs without major changes in the parameters. For example, you want to fill holes that are “less than 1mm”, and not that are “less than 3 voxels”, because 1mm makes sense clinically, but 3 voxels only makes sense for a particular image, along a particular volume axis.
@xiang_luo looks like you are testing Slicer as a drop in replacement for Mimics, which is great. I will make some comments as a user who switched to Slicer about a decade ago, for replacement of VG Studio Max and Amira for initially segmentation and then for digitization.
A common misconception that exists among new users (and I sure had that) Slicer is an open-source equivalent of these commercial software. It really isn’t, they are apples and oranges to compare. Slicer is a biomedical image data analysis platform, it is not just specific to segmentation, it is not just for visualization. It is for everything that you can possibly do with biomedical imaging data. It just happens to be one of the best tools for 3D segmentation and visualization too (of course my personal opinion). But with such broad application base, most of the times none of the tools are as specific and fine-tuned enough as in some of those commercial packages. Slicer also excellent for teaching, and multi-team collaboration, if those are important for you.
So what can you do if things that exists in Slicer doesn’t fit the bill for you? The first step is what you did, engage with the community; identify use cases that can improved and supported. Try the tools @lassoan pointed out. If those are not sufficient, the next step is coming up resources (particularly money and time) to build those tools and make the improvements. If they are small enough projects, you can potentially pay an independent developer to make the prototype, make it publicly available and then if it is picked up by community, it would get even more fine-tuned and better supported.
If it is a larger scope, usually one needs to seek longer funding from 3rd parties (research projects, foundations). I would imagine building automated pipelines based on this, particularly with deep learning will fall under this category.