DCBIA-OrthoLab / SlicerAutomatedDentalTools

A 3D Slicer extension to use AMASSS, ALI-CBCT and ALI-IOS
Other
86 stars 26 forks source link
3d-images 3d-models 3d-slicer-extension deep-learning landmark-localization machine-learning monai orthodontics pytorch segmentation

Slicer Automated Dental Tools

The Slicer Automated Dental Tools extension provides automatic dental and craniofacial analysis capabilities. It features a user-friendly graphical interface on 3D Slicer, enabling users to perform complex tasks without any coding expertise.

Extension Logo

Compatible with both stable and nightly versions of 3D Slicer. Latest versions supported: 5.7.0 (nightly) and 5.6.1 (stable)

Overview

Slicer automated dental tools is an extension that allows users to perform automatic segmentation, landmark identification and Automatic Orientation on CBCT scans and Intra Oral Scan (IOS) using machine learning tools where the learning mdoels are continously updated.

Exemples

Features

Modules

Name Description
AMASSS Perform automatic segmentation of CBCT scan. AMASSS is an acronym for Automatic Multi-Anatomical Skull Structure Segmentation.
ALI Perform automatic landmark identification on either CBCT or IOS scans. ALI is an acronym for Automatic Landmark Identification.
ASO Perform automatic orientation either on IOS or CBCT files.
AReg Perform automatic registration on IOS or CBCT files.
AutoCrop3D Automatically crop a folder of CBCT scans with the same region of interest.
AutoMatrix Automatically apply one or different matrix to a folder of IOS or CBCT scans.
MRI2CBCT Contains the steps to perform the registration of MRI and CBCT scans.
FlexReg Registration of IOS patient per patient with customizable patch creation.

These modules provide a convenient user interface, are available through the Automated Dental Tools module category, and share common features :

Input

Output

Additionally, the following modules are implemented as python scripted command-line (CLI) modules available in the Automated Dental Tools.Advanced module category and are used internally by the modules described above.

Name Description
AMASSS_CLI Perform automatic segmentation of CBCT scans
ALI-CBCT Perform automatic landmark identification of CBCT scans
ALI-IOS Perform automatic landmark identification of IOS scans
ASO-CBCT Perform automatic orientation of CBCT scans
ASO-IOS Perform automatic orientation of IOS scans
AReg-CBCT Perform automatic registration of CBCT scans
AReg-IOS Perform automatic registration of IOS scans
MRI2CBCT_ORIENT_CENTER_MRI Perform orientation and centering of MRI scans
MRI2CBCT_RESAMPLE_CBCT_MRI Perform resample of MRI and CBCT scans
MRI2CBCT_REG Perform registration of MRI-CBCT scans
FlexReg_CLI Perform creation of patch and registration on IOS scans.

Requirements


AMASSS Module

Extension Logo

AMASSS module will allow you to segment CBCT scan using AMASSS algortihm.

Prerequisites

Module structure

Input file: The input has to be an oriented CBCT. It can be a single CBCT scan loaded on slicer or a folder containg CBCTs with the following extention:

.nrrd / .nrrd.gz
.nii  / .nii.gz
.gipl / .gipl.gz

Available sample data for testing: MG_test_scan.nii.gz

Load models: The user has to indicate the path of the folder containing the trained models for AMASSS.

Segmentation selection: The user can choose the structure to segment using the selection table. Depending on the type of CBCT to segment, the user can select the "Use small FOV models" checkbox to use on higher definition scans. SegTab

Output option: By selecting the "Generate surface files" checkbox. The user will also get a surface model of the segmentation that will be saved in a "VTK files" folder and will be automatically loaded in slicer at the end of the prediction if working on a single file.

Advanced option:


ALI Module

Extension Logo

ALI module provide a convenient user interface allowing to identify landmarks on different type of scans:

ALI-CBCT

The implementation is based on the ALI-CBCT algortihm originally developed by Maxime Gillot at https://github.com/Maxlo24/ALI_CBCT.

Prerequisites

Module structure

Input file: The input has to be an oriented CBCT. It can be a single CBCT scan loaded on slicer or a folder containg CBCTs with the following extention:

.nrrd / .nrrd.gz
.nii  / .nii.gz
.gipl / .gipl.gz

Available sample data for testing: MG_test_scan.nii.gz

Load models: The user has to indicate the path of the folder containing the trained models for ALI-CBCT.

Landmark selection: Once the folder containing the trained models is loaded. The user can choose the landmark he want to identify with the table showing the available landmarks: SegTab


ALI-IOS

The implementation is based on the ALI-IOS algortihm originally developed by Baptiste Baquero at https://github.com/baptistebaquero/ALIDDM.

Prerequisites

Module structure

Input file: The input has to be an oriented IOS segmented with the Universal Numbering System. This segmentation can be automatically done using the SlicerJawSegmentation extention. The input can be a single IOS loaded on slicer or a folder containg IOS with the following extention: The array name of labels in the vtk surface is: "Universal_ID" or "predictionid" or "PredictionID"

.vtk

Available sample data for testing: T1_01_L_segmented.vtk and T1_01_U_segmented.vtk

Load models: The user has to indicate the path of the folder containing the trained models for ALI-IOS.

Landmark selection: For the IOS landmarks, the user has to choose which tooth he need the landmakrs on by checking the label of the tooth on the left table. Once the folder containing the trained models is loaded. The user can choose the landmark he want to identify with the table on the right showing the available landmarks: LM_tab_ios

ASO Module

If you want more information and a descriptive tutorial of this tool, take a look at this github page: Automated Standardized Orientation

Extension Logo

ASO module provide a convenient user interface allowing to orient different type of scans:

How the module works?

2 Modes Available (Semi or Fully Automated)

Mode Input
Semi-Automated Scans, Landmark files
Fully-Automated Scans, ALI Models, Pre ASO Models (for CBCT files), Segmentation Models (for IOS files)

Input file:

Input Type Input Extension Type
CBCT .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz
IOS .vtk .stl .vtp .off .obj
Test Files Available: You can either download them using the link or by using the Test Files button. Module Selected Download Link to Test Files Information
Semi-CBCT Test Files Scan and Fiducial List for this Reference
Fully-CBCT Test File Only Scan
Semi-IOS Test Files Mesh and Fiducial List Reference
Fully-IOS Test Files Only Mesh Reference

Reference:

The user has to choose a folder containing a Reference Gold File with an oriented scan with landmarks. You can either use your own files or download ours using the Download Reference button in the module Input section. Input Type Reference Gold Files
CBCT CBCT Reference Files
IOS IOS Reference Files

Landmark selection

The user has to decide which landmarks he will use to run ASO.

Input Type Landmarks Available
CBCT Cranial Base, Lower Bones, Upper Bones, Lower and Upper Teeth
IOS Upper and Lower Jaw

The landmark selection is handled in the Landmark Reference Section:

Models Selection

For the Fully-Automated Mode, models are required as input, use the Select Button to automatically download, extract and select the selected models.

ASOSADT

AReg Module

Extension Logo

AReg module provide a convenient user interface allowing to orient different type of scans:

How the module works?

3 Modes Available

Mode Input
Semi-Automated (only for CBCT) Scans, Masks segmentation
Fully-Automated Scans, Segmentation Models
Orientation and Registration Scans, ALI Models (for CBCT files), Segmentation Models

For CBCT, a final step is added and consist of segmenting different skeletal structures using AMASSS process within each mode.

Input file:

Input Type Input Extension Type
CBCT .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz
IOS .vtk .stl .vtp .off .obj
Test Files Available: You can either download them using the link or by using the Test Files button. Module Selected Download Link to Test Files Information
Semi-CBCT Test Files Scan and Masks segmentation
Fully-CBCT Test File Only Oriented Scan
Orientation and Registration for CBCT Test File Only Scan
Fully-IOS Test Files Only Mesh )
Orientation and Registration for IOS Test Files Only Mesh

Pipelines

CBCT - AReg Pipeline

Workflow

IOS - Patch prediction

PipelinePrediction

Some Results

ARegResult

Models Selection

For the Fully-Automated Mode, models are required as input, use the Select Button to automatically download, extract and select the selected models.

AutoCrop3D Module

Extension Logo

AutoCrop3D stands for "Scans automatically cropped" according to a Region Of Interest (ROI).

Useful Information

This module has the same utility as "Crop Volume", which offers more interactive feedbacks to the user, but "AutoCrop3D" allows you to easily trim the ROI of all the cases in your study. Then you can load your files into Slicer to view them. More Information about Crop Volume

It solves the issue of files that may be too heavy for "Crop Volume Sequence" More Information about Crop volume Sequence.

How does the module work?

Input:

Input Input Type Input Extension Type Files to Test
File or Folder CBCT .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz Segmentation.zip
**Region of Interest*** Volume .json ROI.mrk.zip

You can choose a suffix which will be added to the existing name of your file(s).

If you want to generate VTK files from your Segmentations, the Segmentation files must have "Seg" somewhere in the name. For example: patientName_Seg.nii.gz

How to create a Region Of Interest?

Use the module "Volume Rendering" to create your ROI and then save it as a .json file.

  1. Upload a scan file
  2. Choose the option Display ROI
  3. Change the ROI as you like
  4. Save it

Tuto1 Tuto2

AutoMatrix Module

Extension Logo

The AutoMatrix module provides a user interface to apply a matrix to a folder for different types of scans or segmentations:

How to name the new files and where they are stored

The module will create the same path you had in the input folder in the output folder. The new files will be named by the name of the original file + the suffix you entered + the name of the matrix files that were applied.

Example : Input file : patient1_T1_MA.nii.gz Input matrix : patient1_matrix1.tfm Input suffix : _apply Output file : patient1_T1_MA_apply_matrix1.nii.gz

4 Modes available

Sometimes a LinkName is required. See the information below. Mode Download Link to Test Files Information
File patient and file matrix Test Files LinkName is not required. The matrix is applied to the input file. This new file is save in the output folder.
File patient and folder matrix Test Files LinkName required. For each matrix applied, a new file is created.
Folder patient and file matrix Test Files LinkName is not required. The matrix will be applied to all files in the input folder.
Folder patient and folder matrix Test Files LinkName required. For each matrix applied, a new file is created. You can have more than one file with the same patient name.

When a LinkName is required :

The name of the matrix files and the name of the seg/scan files must begin with the same patient name. After the patient name, you must put and underscore before any other information. Example : Name file patient : patient1_T1_MA.nii.gz Name matrix files : patient1_left_MA.tfm

Mirror :

There is button "Mirror" that will automatically download the matrix mirror and put in input.

Input file:

Input Type Input Extension Type Input Matrix Extension
CBCT .nii.gz .tfm .npy .h5 .mat .txt
IOS .vtk .stl .vtp .off .obj .tfm .npy .h5 .mat .txt

MRI2CBCT Module

The MRI2CBCT module provides a user interface to perform the registration between MRI and CBCT scans.

How does the module work?

Preprocessing Step:

  1. Orient and Center CBCT:

    • Input: CBCT folder path
    • Download Models: You can download the models required for segmentation and orientation by clicking on "Download."
  2. Orient and Center MRI:

    • Input: MRI folder path
    • Axis Direction: You need to choose the new direction for each axis.
  3. Resample:

    • Options: You can choose to resample both MRI and CBCT, just MRI, or just CBCT.
    • Slice/Number of Slices: Decide the new slices/number of slices or retain the same size as before running it.
    • Spacing: Choose the new spacing or keep the same spacing as in the input.

Manual Approximation and Cropping:

Before running the normalization, the user needs to perform a manual approximation and cropping on the same region for the MRI, CBCT, and CBCT segmentation. For the cropping, the user can use AutoCrop3D available in this extension.

Registration:

FlexReg Module

FlexReg is a module that allows you to register patient-specific Intra Oral Scans. It lets you create custom patches for registration.

How does the module work?

  1. Load your files:

    • Choose your path by clicking on "Select" and load it by clicking on "View".
  2. Draw your own patch:

    • Butterfly Patch:
      • You can draw a butterfly patch using the parameters and select your own teeth. Note that this patch, with the default values, is called “ButterflyPatch” and is created when you run AREG_IOS:

        Butterfly Patch Image

    • Custom Patch:
      • You can draw the patch using landmarks and customize it:
      • Patch landmarks

    • You can combine multiple patches by creating them one by one. All your patches will be used as a single patch for the registration.
    • Multiple patchs

  3. Registration:

    • After creating your patch for both the fixed and moving scans, choose the output folder and the suffix you would like. If you have a lower arch to move, you can select it.
    • Register them by clicking on "Registration".

Acknowledgements

Authors: Maxime Gillot (University of Michigan), Baptiste Baquero (UoM), Luc Anchling (UoM), Nathan Hutin (UoM),Jeanne Claret (UoM),Gaelle Leroux (UoM), Lucia Cevidanes (UoM), Juan Carlos Prieto (UNC), David Allemang (Kitware), Jean-Christophe Fillion-Robin (Kitware), Connor Bowley (Kitware), James Butler (Kitware).

Supported by NIDCR R01 024450, AA0F Grabber Family Teaching and Research Award and by Research Enhancement Award Activity 141 from the University of the Pacific, Arthur A. Dugoni School of Dentistry.

License

This software is licensed under the terms of the Apache Licence Version 2.0.