180 likes | 284 Views
Bayesian Classifier Image Filter John Melonakos @ Georgia Tech Luis Ibanez @ Kitware. Home in ITK. Found under: Insight/Code/Algorithms/ itkBayesianClassifierImageFilter. Bayes’ Rule. Data: Probabilities generated by applying a distribution (typically Gaussian) to your data
E N D
Bayesian Classifier Image Filter John Melonakos @ Georgia Tech Luis Ibanez @ Kitware
Home in ITK Found under: Insight/Code/Algorithms/ itkBayesianClassifierImageFilter
Bayes’ Rule Data: Probabilities generated by applying a distribution (typically Gaussian) to your data Priors: An initial guess at the solution Posteriors: The resulting probabilities
Bayes’ Rule for Segmentation • Goal: Segment Volume into ‘N’ classes • Solution: • Create ‘N’ Data terms • Guess at ‘N’ Prior terms • Apply Bayes’ Rule ‘N’ times • Find the maximum of the ‘N’ resulting posteriors to determine the winning class • Apply a label for the winning class
Added Tricks • Goal: Segment Volume into ‘N’ classes • Solution: • Create ‘N’ Data terms • Guess at ‘N’ Prior terms • Apply Bayes’ Rule ‘N’ times • Find the maximum of the ‘N’ resulting posteriors to determine the winning class • Apply a label for the winning class Iterate multiple times to refine the data and prior terms Smooth posteriors before finding the maximum
Pseudo-Code Algorithm Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Initial Segmentation Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions The first portion of the algorithm performs an initial segmentation of the volume by assuming Gaussian distributions on the data and uniform priors for the computation of Bayes’ Rule The user has the option to smooth the image volume before starting the segmentation. The user can select the number of image smoothing iterations (default nImSmoothIter = 1). Likewise the user can control the posterior smoothing iterations (default nPostSmoothIter = 3). User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3
Iterative Refinement Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Mean Curvature Smoothing Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions meanCurvatureSmoothing is an edge-preserving noise remover based on the 3d geometric heat equation. Similar filters, based on the Perona-Malik scheme, exist in ITK (e.g. itkCurvatureAnisotropicDiffusionImageFilter and itkGradientAnisotropicDiffusionImageFilter). This function will be based on our addition of itkMeanCurvatureAnisotropicDiffusionImageFilter and perhaps itkVectorMeanCurvatureAnisotropicDiffusionImageFilter to ITK. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3
Learn Stats Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions learnStats is a function which will divide an image volume into ‘N’ clusters and determine a mean and standard deviation for each cluster. This function will be based on itkKdTreeBasedKmeansEstimator. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Create Data With Gaussian Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions createDataWithGaussian is a function which will create the data terms with the Gaussian distribution which requires the previously computed class means and standard deviations. This function will be based on itkGaussianDensityFunction. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Bayes’ Rule Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions bayesRule is a function which applies Bayes’ Rule to the previously computed data terms using uniform priors for the first iteration and refined priors for subsequent iterations. This function will be based on MaximumRatioDecisionRule. See the BayesianPluginClassifier example. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Maximum Decision Rule Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions maximumDecisionRule is a function which will assign a class to each pixel/voxel, thus concluding the segmentation iteration. This function will be based on itkMaximumRatioDecisionRule. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Update Stats Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions updateStats is a function which will determine the distributions of the previously segmented classes. This function will be based on ???. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Create Data With Distributions Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions createDataWithDistributions is a function which will create the data terms with the previously computed class distributions. This is where the statistical refinement occurs with each iteration. This function will be based on ???. User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Algorithm Revisited Functions meanCurvatureSmoothing learnStats createDataWithGaussian bayesRule maximumDecisionRule updateStats createDataWithDistributions User Variables with Set and Get Access Variable default nClasses 3 nImSmoothIter 1 nPostSmoothIter 3 deltaT 0.1 nFilterIter 3 nFilterIter
Possible User Options ??? • Set/Get means and standard deviations, superseding K-means • Use only a masked region of the cubic input • Change smoothing function • Change distribution functions