3D Slicer extension for fully-automatic segmentation of CT and CBCT dental volumes.
After loading and selecting the volume to process, this module generates the following segmentations :
- Maxilla & Upper Skull
- Mandible
- Upper Teeth
- Lower Teeth
- Mandibular canal
DentalSegmentator is based on nnU-Net framework. It has been trained on 470 dento-maxillo-facial CT and CBCT scans, and evaluated on a hold-out test dataset of 256 CT and CBCT scans from 7 institutions.
The results obtained on our highly diversified dataset demonstrate that our tool can provide fully automatic and robust multiclass segmentation for dento-maxillo-facial (CB)CT scans, independantly of the field of view of the scan.
If you use DentalSegmentator for your work, please cite our paper and nnU-Net:
Dot G, et al. DentalSegmentator: robust open source deep learning-based CT and CBCT image segmentation. Journal of Dentistry (2024) doi:10.1016/j.jdent.2024.105130
Isensee F, et al. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nat Methods. 2021;18(2):203-211. doi:10.1038/s41592-020-01008-z
We also deeply encourage you to use this badge when displaying models created with this extension:
Here is a video tutorial showing the installation process and demonstrating the main capabilities of the extension.
This extension is compatible with the latest latest 3D Slicer Preview Release (version 5.7.0 - rev32797, or later), downloadable from the official website.
The plugin can be installed in Slicer using the extension manager. It can be found using the search bar by typing "DentalSegmentator".
After the install process and restart of Slicer, the extension can be found in the module file explorer under Segmentation>DentalSegmentator
.
It can also be found by using the find
module button and searching for the keyword DentalSegmentator
.
To use the extension, load a dental CT or CBCT by either drag and dropping the data in 3D Slicer or by using the
DATA
or DCM
load buttons.
To test the extension, you can use 3D Slicer's CBCT Dental Surgery
volumes. These volumes can be found in the
Sample Data
module.
After loading the data, the data will be displayed in the 2D views.
Switch module to the DentalSegmentator
module and select the volume in the first drop down menu.
Click on the Apply
button to start the segmentation.
During the first launch, the module's dependencies will be installed. These dependencies include :
- The AI model weights
- Light the torch
- PyTorch
- nnUNet V2
After the install, the volume will be transferred and sent to the nnUNet V2 library for processing. If your device doesn't include CUDA, the processing may be very long and a dialog will ask for confirmation before starting the segmentation process.
During execution, the processing can be canceled using the Stop
button.
The progress will be reported in the console logs.
After the segmentation process has run, the segmentation will be loaded into the application.
The segmentation results can be modified using the Segment Editor
tools.
The segmentation can be exported using the Export segmentation
menu and selecting the export format to use.
The Surface smoothing
slider allows to change the 3D view surface smoothing algorithm.
Due to an ongoing issue with Mac devices and Pytorch, GPU acceleration is not available for now on those devices.
On Linux or WSL system, the inference can get stuck at the stage : "done with volume". This indicates that the process has run out of memory. 32 GB of RAM is recommended to run this extension. If you run into this issue, you can create a SWAP file on SSD with 16 GB which should solve the problem.
On Windows, the torch CUDA dependency may not properly be detected and installed.
To solve this problem, you can use the PyTorch Utils
extension, uninstall the version of PyTorch and install
a new version of PyTorch by setting the Computation backend
compatible with your hardware.
The PyTorch version should be greater than 2.0.0
for nnUNet compatibility.
If the weights are not correctly installed, you can install them manually. To do so, go to https://github.com/gaudot/SlicerDentalSegmentator and select the latest release.
Download the latest .zip
file from the release.
Navigate to your DentalSegmentator
folder (this folder can be also found in the module finder window).
Unzip the weight file in the DentalSegmentator\Resources\ML
folder.
Create a download_info.json
file containing the path to the downloaded zip file for future reference :
{ "download_url": "https://github.com/gaudot/SlicerDentalSegmentator/releases/download/v1.0.0-alpha/Dataset111_453CT_v100.zip" }
If you want tu use DentalSegmentator via nnU-Net command-line interface use, the pretrained model is available on Zenodo platform.
This project welcomes contributions. If you want more information about how you can contribute, please refer to the CONTRIBUTING.md file.
Authors: G. Dot (Université Paris Cité, AP-HP, Arts-et-Métiers), L. Gajny (Arts-et-Métiers), R. Fenioux (Kitware SAS), T. Pelletier (Kitware SAS)
Supported by the FFO (Fédération Française d'Orthodontie) and the Fondation des Gueules Cassées.