Segmentation Trainer A Robust and User-friendly Machine Learning Image Segmentation Solution Presented by Mike Marsh, Ph.D. Dragonfly Product Manager Thursday, March 2, 2017 10th FIB-SEM Users’ Group Meeting Gaithersburg, MD
About ORS Headquartered in Montreal, Canada. ▸ Founded in 2004. ▸ Registered users in 80 countries. ▸ ▸ Practicing ISO and IEC standards compliant processes Visual SI ORS Visual
About ORS Headquartered in Montreal, Canada. ▸ Founded in 2004. ▸ Registered users in 80 countries. ▸ ▸ Practicing ISO and IEC standards compliant processes Dragonfly ORS Visual
About Dragonfly Rapid Innovation Technology Extensibility and Community V2.0 launched September 2016 Anaconda Python 3.5 for Sockets for extensions: V2.1 coming in April 2017 scientific computing Embedded online console ▸ State-of-the-art image ▸ Object analysis ▸ macro engine segmentation measurements superpixel segmentation ▸ High-impact rendering ▸ Image filters ▸ machine learning engine Menu-actions ▸ segmentation engine Macros ▸ In-application store ▸ ▸ Machine Learning classifiers V2.2 coming in fall 2017 (and more) ▸ (coming to Linux) App store for sharing and versioning Licensing Flexible licensing options for various institutional needs Free licensing for non-commercial use in most countries
Image Segmentation The hard way and the easy way Painstaking: Painting ▸ ▸ Constrained Painting Threshold-gated painting ▹ ▹ Superpixel-bloc painting Easy, but never good enough: Point-and-click ▸ ▸ Thresholding (interactive) Thresholding (algorithmically, eg. Otsu’s method) ▸ Other tools ▸ ▸ Automated?
Black box classifier segmentation Signal Textures Spatial Discretization Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters Input image Segmentation Class 1 Classifier Classifier Class 2 Machine learning core ● Engine ● Parameters
Black box classifier segmentation Signal Textures Spatial Discretization Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters FIB-SEM of Segmentation fuel cell Electrolyte Classifier Classifier Electrode Pore space Machine learning core ● Engine ● Parameters
Black box classifier segmentation Signal Textures Spatial Discretization Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters FIB-SEM of Segmentation fuel cell Electrolyte Classifier Electrode Pore space Machine learning core ● Engine ● Parameters
Filter Banks Use any of the filters in the Image Processing toolbox ▸ Smoothing ▸ Edge Enhancement ▸ Texture ▹ Gabor ▹ HoG ▹ DoG ▹ Standard deviation Aggregate into filter banks
Spatial Discretization
Spatial Discretization
Spatial Discretization
Spatial Discretization Pixel classification SmartGrid cell classification: ▸ Superpixel ▸ Watershed on Grid ▸ Superixel (Scikit-learn) ▸ Watershed on Grid (Scikit-learn)
Machine Learning Core ▸ Random Forest ▸ Extra-Trees ▸ Adaboost ▸ Gradient Boosting ▸ Bagging ▸ K-Nearest Neighbors
Black box classifier segmentation Signal Textures Spatial Discretization Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters FIB-SEM of Segmentation fuel cell Electrolyte Classifier Electrode Pore space Machine learning core ● Engine ● Parameters
Black box classifier segmentation Signal Textures Spatial Discretization SE Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters Segmentation BSE Electrolyte Classifier Electrode Pore space Machine learning core ● Engine ● Parameters
Black box classifier segmentation Signal Textures Spatial Discretization SE Filter bank (Feature Presets) Smart Grid (Region) ● Engine ● Parameters Segmentation BSE Electrolyte Classifier Electrode Pore space Machine learning core ● Engine ● Parameters
Electrolyte Electrode Train it Pore space Filter bank (Feature Presets) SE image Segmentation Spatial discretization settings Electrolyte Classifier Smart Grid (Region) engine Electrode BSE Parameters Pore space image Machine learning core Engine Parameters
Apply it Filter bank (Feature Presets) SE image Segmentation Spatial discretization settings Electrolyte Classifier Smart Grid (Region) engine Electrode BSE Parameters Pore space image Machine learning core Engine Parameters
Apply it Mask Filter bank (Feature Presets) SE image Segmentation Spatial discretization settings Electrolyte Classifier Smart Grid (Region) engine Electrode BSE Parameters Pore space image Machine learning core Engine Parameters
It’s modular Signal Textures Spatial Discretization Filter bank (Feature Presets) Smart Grid (Region) SE ● Engine ● Parameters image Segmentation Electrolyte Classifier Electrode BSE Pore space image Machine learning core ● Engine ● Parameters
It’s modular (Deep Learning CNN) Late 2017 Signal Textures Spatial Discretization Not necessary Not necessary SE image Segmentation Electrolyte Classifier Electrode BSE Pore space image Deep Learning core ● Engine ● Parameters
Encourage re-use of Classifiers ▸ Share classifiers with the community in the App Store (Infinite Toolbox) April 2017 ▸ Preview classifiers online Late 2017
Acknowledgments ▸ Isabelle Bouchard ▸ Nicolas Piche ▸ scikit-learn.org (Machine Learning in Python)
Workflow for Using Classifiers Build the classifier Train it Tune it Re-use it
Workflow for Using Classifiers Build the classifier Train it Tune it ▸ Iterate: Update training classes ▹ Tweak engine parameters ▹ Add / remove filter banks ▹ review coefficients ▹ Retrain Preview ▸ Re-use it
Segmenting Systematically (and with multiple signals) 1D thresholding: Use range 2D thresholding: Histographic segmentation 3D, 4D, ... : ??? ▸ BSE, ESB ▸ Elemental maps: Cu, Mb, Sn, Ni, ▸ More common than that: beyond simple signal intensity, you may have spatially correlated signal (e.g. texture)
Recommend
More recommend