Difference between revisions of "Documentation/Nightly/Modules/ShapeVariationAnalyzer"

From Slicer Wiki
Jump to: navigation, search
Line 109: Line 109:
  
 
{|
 
{|
|[[Image:ComputationAverage-1.png|500px]]
+
|[[Image:ComputationAverage-1.png|350px]]
 
|
 
|
 
This tab allows the computation of the average shape of each group, export those resulting models locally and allows their visualization into 3D Slicer. <br>
 
This tab allows the computation of the average shape of each group, export those resulting models locally and allows their visualization into 3D Slicer. <br>

Revision as of 15:26, 5 May 2017

Home < Documentation < Nightly < Modules < ShapeVariationAnalyzer


For the latest Slicer documentation, visit the read-the-docs.


Introduction and Acknowledgements

This work was supported by the National Institutes of Dental and Craniofacial Research and Biomedical Imaging and Bioengineering of the National Institutes of Health under Award Number R01DE024450.

Author: Priscille de Dumast (University of Michigan)
Contributor1: Laura Pascal (University of Michigan)
Contributor2: Lucia Cevidanes (University of Michigan)
Contributor3: Juan Carlos Prieto (University of North Carolina)
Contact: Priscille de Dumast, <email>prisgdd@umich.edu</email>

License: Apache License, Version 2.0

Module Description

Shape Variation Analyzer allows the classification of 3D models, according to their morphological variation. This tool is based on a deep learning neural network.
The module is composed of multiple panels to perform the different steps of the process: create the classification groups, compute their average shapes, train the classifier and classify shapes.

What is an artificial neural network?

A neural network is a computing system, inspired by our own human brain. It learns from a large dataset (training dataset) containing both the input and the expected output (in our case, the 3D model and its morphology classification). During the training, the network’s settings are adjusted until we achieve automatic classification that matches the expert classification.
The network can then be tested with any input, preferably not from the training dataset. This allows to evaluate the performance of the network.


Use Cases

Tutorials

Prerequisities

The classification can be performed with as many groups as desired.
Please note that the amount of data is very important. The more data you have, the more accurate the classification will be. Moreover, it is better to have a dataset equally divided into the classes.

Both the 3D models into the training dataset and those to classify must have the same number of points. The most correspondent the shapes are, the best it is for the computation. Those 2 steps can be performed thanks to ShapeAnalysisModule and RigidAlignment/Groups.

Creation of CSV File

CreationofCSV-1.png

This tab allows the user to create a CSV file gathering all the VTK file paths and their corresponding group.
This CSV file will be necessary at each step of the classification.
The file is automatically loaded into the next steps when it is exported.

CreationofCSV-AddGroup.png
CreationofCSV-ModifyGroup.png
CreationofCSV-ModifyRemove.png

Add Group Add one by one the directories containing the VTK files for each group.
For a new group, the group number is automatically selected.

Modify Group Each group can be edited, with a modification of its corresponding repository.
For this, review the group already added thanks to the spin box.

Remove Group Only the last group added can be removed.
Select the group with the spinbox and remove it.



Preview/Update of the classification groups

PreviewUpdateGroups-1.png

This tab allows the visualization of the 3D models in ShapePopulationViewer, and update the group assigned to the shapes if needed.
If the groups are updated, a new CSV file will be generated.


  • Preview with ShapePopulationViewer
PreviewUpdateGroups-details.png
  1. Select the groups or specific shapes you would like to visualize
  2. Colors that the meshes will have in Shape Population Viewer with the attribute "DisplayClassificationGroup"
  3. Possibility to change the group of a shape thanks to the spinbox in the group row.
  4. Clic on the Preview button, and select all the VTK Files in the pop-up window
  5. If some changes were made on the groups, please export those modifications.


Computation of mean groups

ComputationAverage-1.png

This tab allows the computation of the average shape of each group, export those resulting models locally and allows their visualization into 3D Slicer.
You’ll need to provide the CSV file which contains the classification groups.
The exported CSV file will be automatically loaded into the next step.


  • Perform the computation
ComputationAverage-computation.png
  1. Load the CSV file containing the classification groups, if you haven't performed the previous steps
  2. Clic on Compute mean group
  3. Chose a repository to export the average shapes and a CSV File listing them.

Average shapes : meanGroup[i].vtk
CSV File mean shapes : MeanGroups.csv


  • Preview of Group's mean
ComputationAverage-preview.png
  1. Load the CSV file containing all the shapes if you haven't performed the computation step.
  2. Select the control group - it will appear in a different color.
  3. Clic on Preview to visualize the average shapes
  4. Check the eye icon on the left to choose which shape you want to display


Morphological classification

MorphologicalClassification.png


  • Create Network
MorphologicalClassification-CreateNetwork.png


  • Classify shape(s)
MorphologicalClassification-Classify.png


Results/Analysis

ResultsAnalysis.png


Similar Modules

N/A

References

N/A

Information for Developers

This extension has been designed to work with this website and should not work with other architectures. If you want to use this plugin on another server, you need to make sure your documents are stored by CouchDB and your documents contains a field "type" set to "morphologicalData". Your user would need to connect using JWT and have a "scope" field.
For more information, you can take a look at the website source code here.
The source code is available on github