MedIX – Summer 06 Lucia Dettori (room 745) ldettori@cti.depaul.edu Projects Texture classification What has been done Things I would like to explore next Connection to other projects Evaluations of segmentation algorithms Done so far … Given a pre-segmented organ region, can you tell me what it is: kidney, heart etc? It depends … on its texture Identify image features that give texture information Find rules that distinguish the texture features of one organ from another Texture Classification Process at a glance Organ/Tissue Segmented Image Apply filter To the image Classification rules for tissue/organs in CT images Texture Descriptors Classifier (Decision Tree) Step1 – Segmentation and cropping The image might need to be cropped, when using filters that are sensitive to areas of high contrast (background) Active Contour Mapping (Snakes) – a boundary based segmentation algorithm Organs Backbone Heart Liver Kidney Spleen Segmented 140 50 56 55 39 Cropped 363 446 506 411 364 Step2 – Filtering the image Organ/Tissue Segmented Image Apply a filter to the image For example: * Co-occurrence matrices *Run-length matrices •Wavelets •Ridgelets •Curvelets Wavelet transform Averages Horizontal Activity Vertical Activity Diagonal Activity Haar Wavelet A D Original image 9 Averages 8 7 4 3 1 A D 5 -1 6 2 1 -1 6 2 1 -1 Wavelet coefficients Details A A D D AA AD DA DD Step3 – Texture features extraction Organ/Tissue Segmented Image Apply a filter to an image Texture Descriptors Array of texture descriptors [T1, T2, T3, …, Tn] For example: Mean, standard deviation, energy, entropy etc.. Step4 - Classification Organ/Tissue Segmented Image Classification performance measures Apply a filter to an image Classification rules for tissue/organs in CT images The process of identifying a region as part of a class (organ) based on its texture properties. Texture Descriptors Decision tree Predicts the organ from the values of the texture descriptors Training / Testing Step5 – Evaluating the classifier Misclassification matrix Actual Category Backbone Heart Predicted Backbone 182 6 Category Heart 3 18 Liver 0 3 Kidney 10 4 Spleen 0 0 Total 195 31 Liver 1 4 30 0 4 39 Kidney 6 0 1 49 0 56 Spleen 0 0 7 1 8 16 Performance Measures Measure Sensitivity Specificity Definition True Positives / Total Positives True Negatives / Total Negatives Precision Accuracy True Positives / (True Positives + False Positives) (True Positives + True Negatives) / Total Samples Total 195 25 41 64 12 337 Organ Backbone Heart Kidney Liver Spleen Average Descriptor Sensitivity Specificity Precision Accuracy Wavelet 82.6 96.1 82.6 93.7 Ridgelet 91.5 99.3 96.8 98.0 Curvelet 99.4 98.8 95.3 98.9 Wavelet 59.0 92.1 67.0 85.0 Ridgelet 82.5 97.5 88.5 94.6 Curvelet 89.7 99.0 95.5 97.1 Wavelet 77.7 91.4 69.9 88.6 Ridgelet 95.4 93.3 82.0 93.8 Curvelet 96.0 98.1 93.5 97.6 Wavelet 87.3 94.4 82.6 92.8 Ridgelet 86.9 95.9 84.4 94.0 Curvelet 95.9 98.5 94.3 98.0 Wavelet 65.5 94.3 69.7 89.5 Ridgelet 76.9 97.6 88.0 93.8 Curvelet 91.8 98.9 94.9 97.6 Wavelet 74.4 93.7 74.4 89.9 Ridgelet 86.6 96.7 88.0 94.8 Curvelet 94.6 98.7 94.7 97.9 Things I would like to explore Organ/Tissue Segmented Image Apply a filter to an image Different patients Different organs Abnormal texture Gabor filters Fractal Dimensions Performance measures Classification rules for tissue/organs in CT images Texture Descriptors Decision tree Different modalities Connections to other project Can we use wavelet, ridgelet, curveletbased texture descriptors for content based image retrieval? Can we use these descriptors in the volumetric segmentation? Instead of many 2D images, can we use the same process for 3D stack of slices? Projects Texture classification Evaluations of segmentation algorithms What has been done Things I would like to explore next Connection to other projects Texture segmentation Given an image, can you tell me how many organs you have? That was easy enough. Can you tell which organs they are? Identifying regions with similar texture Identifying which texture it is to label the organ A couple of key questions Can you do it better by varying a parameter? How do you choose the values of your segmentation parameters? If it looks better is it really better? A couple of key questions Parameter optimization Performance evaluation 1 0.87 3 0.56 4 2 0.50 0.75 Ground Truth Regions key Machine Segmentations Increasing value of a segmentation parameter How do I decide what the optimal value of the parameter is? How good a segmentation is it? The “goodness” metric A single value that assigns a rating to a particular segmentation based on how well the machine segmented regions “match” the regions in the ground truth images Region Categories Ground Truth vs. Machine Segmented Correctly Detected Over Segmented GT Under Segmented Missed MS Noise OVER SEGMENTED CORRECTLY DETECTED Index for each region UNDER SEGMENTED A Missed region is a GT region that does not participate in any instance of CD, OS, or US A Noise region is an MS region that does not participate in any instance of CD, OS, or US The “Goodness” Metric good = Correct Detection Index bad = 1-Correct Detection Index goodness = good-bad*weight 1.0 Ceiling = CDind Weight Range = CDind-1 Floor = 2*CDind-1 -1.0 How can we use the metric? Create a set of ground truth mosaic using radiologist-labels images of pure patches of organ tissues Apply segmentation algorithm Optimize the segmentation parameters using the metric Apply optimized algorithm to the “real” image Ground Truth T=1000; GM= - .94 T=2000; GM= - .02 T=4000; GM= .74 T=5000; GM= .75 Region key T=3000; GM= .73 T=6000; GM= .08 Done so far Used the metric on a block-wise walevetbased segmentation algorithm on some sample mosaic To be done Fully test the metric on a wide range of segmentation algorithms Decouple the various components of the metric and test the individual performance measures instead of the overall score Extend the metric to measure one region vs background segmentation To be done Improve the wavelet-based algorithms we have implement to include other texture features Explore and compare other texture-based segmentation algorithm Use regions and metric to calculate changes in time of an abnormal region Connections to other projects Use one of these algorithms to create a rough segmentation that will generate the starting point for a more sophisticated segmentation algorithm. Some references ”Wavelet-based Texture Classification of Tissues in Computed Tomography”, L. Semler, L, Dettori, and Jacob Furst. 18th IEEE International Symposium on Computer-based Medical Systems, Dublin, Ireland, June 2005. “Ridgelet-based Texture Classification in Computed Tomography”, L. Semler, L. Dettori. and W.Kerr. 8th IASTED International Conference on Signal and Image Processing, Honolulu, HW, August 2006. “Curvelet-based Texture Classification of Tissues in Computed Tomography”, L. Semler, & L. Dettori. International Conference on Image Processing, Atlanta, GA, October 2006. “A Comparison of Wavelet-based and Ridgelet-based texture classification of Tissues in Computed Tomography”, with Lindsay Semler, International Conference on Computer Vision Theory and Applications, Setubal, Portugal, February 2006 “A Methodology and Metric for Quantitative Analysis and Parameter Optimization of Unsupervised, Multi-Region Image Segmentation”, William Kerr, Lucia Dettori, and Lindsay Semler, 8th IASTED International Conference on Signal and Image Processing, Honolulu, HW, August 2006.