440 likes | 911 Views
Auto-segment vessels in color retinal images for the purpose of ... Knowing that vessels are elongated structures, one can represent vessels with elongated ...
E N D
Slide 1:Ridge-Based Vessel Segmentation in Color images of the RetinaStaal et al, IEEE TRANSACTIONS ON MEDICAL IMAGING, VOL. 23, NO. 4, APRIL 2004
Final Presentation Amir Tamrakar May 19, 2005
Slide 2:Overview
Goal + Clinical Relevance Review of Methodology Brief Recap of the Feature Computation Stage Training a classifier on the features Applying the classifier on test data Present Results Discuss limitations + Possible Improvements
Slide 3:Goal
Auto-segment vessels in color retinal images for the purpose of screening for diabetic retinopathy. 5.5% of the population worldwide are diabetic 10% of all diabetic patients develop diabetic retinopathy Diabetic retinopathy is the primary cause of blindness in the west. It can be prevented with treatment at early stages. Hence the need for screening.
Slide 4:Related Work/ Other Methods for Vessel Extraction
Matched Filters Grouping edge pixels Locally adaptive thresholding Topology Adaptive Snakes Vessel tracking Matched Kalman Filters Fuzzy clustering and tracking Morphology based Techniques (forming trees) Supervised learning methods Neural Networks References for these works can be found in the Staal etal paper.
Slide 5:Methodology
Retinal image (Green channel only) Extract ridges Form line element primitives Form patches around primitives Vessels segmented Classifiers (vessel / no vessel) Extract Features
Slide 6:Overall Insight
GOAL: To Learn to Classify every pixel (independently) as vessel or non-vessel within the FOV. A pixel representation is not optimal for vessel structure. Knowing that vessels are elongated structures, one can represent vessels with elongated vessel primitives. Height ridges coincide approximately with vessel centerlines so form these primitives along ridge curves (convex sets of connected ridge points)
Slide 7:Overall Insight contd..
Divide the Classification Task into 2 parts: Train Classifier #1 to compute the probability that a given Convex set (CS) is part of a vessel using local features around the primitive. Divide the image into patches around the CSs (i.e., assign each pixel in the image to its nearest primitive.) Within each patch, a local coordinate system can be defined and local features can be extracted for every pixel. Train Classifier #2 to classify every pixel using the local patch features into vessel or non-vessel. The output of Classifier #1 is one of the features for Classifier #2 (Needless to say, the most important)
Slide 8:INPUT: Color Image of the Retina
Slide 9:1. Split into RGB Components
Slide 10:2. Keep the Green Channel only
Slide 11:3. Compute Ridge Points
Slide 12:Details: Computing Ridge points
R(x) = -1 : ridges, +1 : valleys Numerically: v1 is the eigenvector corresponding to the largest eigenvalue
Slide 13:4. Link ridge points into convex sets (CS)
Slide 14:Details: Linking Ridge points
r1 r2 vug1 vug2 vg ec Algorithm: Region growing from random seeds Rules: Tg
Original implementation: (region growing using spiral search) New implementation: Curve growing (ep = 0.95) ep = 0.8 But curves were still doubling back. Added rule:Slide 17:5. Form patches around the convex sets (CSR)
Slide 18:Details: Forming Convex set regions
Compute Chamfer Distance Transform from ridge points in convex sets Propagate distance + set label + closest point information Distance Transform
Slide 19:Details: Forming Convex set regions
Compute Chamfer Distance Transform from ridge points in convex sets Propagate distance + set label + closest point information Closest Point Map
Slide 20:Details: Forming Convex set regions
Compute Chamfer Distance Transform from ridge points in convex sets Propagate distance + set label + closest point information Labeled CSR
Slide 21:Details: Convex set features (at ridge points)
18 features 8 are extracted from average profile (?)(-15..15) Height: h = ?(0) Width: w = (nre-nle) h/w Edge strength: se = ?’(nle) + ?’(nre) se/w Edge height: he = (?(nle) + ?(nre))/2 h-he h/he 3 from convex set curves Distance between first and last point (d) The length of the curve (l) The curvature of the curve (k) Rest from image features Mean internsity (µg) Standard deviation (sg) ?g/ /µr Ridge Strength at s =0.5 ( average ?) Ridge Strength at s =1 ( average ?) Ridge Strength at s =2 ( average ?) Ridge Strength at s =3 ( average ?)
Slide 22:6. Compute several features from the convex sets (18)
Slide 23:Details: Convex Set Region features (at every pixel)
r(x) g(x) g(x)/r(x) p(c=vessel) dcl = || x- xcl || r(x) – r(xcl) r(x)/r(cl) g(x)-g(xcl) g(x)/g(xcl) x’ y’ Ix’ (at s =0.5, 1, 2, 4 ) Iy’ (at s =0.5, 1, 2, 4 ) Ix’x’ (at s =0.5, 1, 2, 4 ) Iy’y’ (at s =0.5, 1, 2, 4) Fit a line through the CS points & Define a local coordinate system (x’, y’)
Slide 24:7. Compute some more features from the CSRs (27)
Slide 25:8. Train a classifier of some kind
Supervised Learning Algorithm Feature set Ground Truth 17 CS features 27 CSR features
Slide 26:8. (Revised) Train a couple of classifiers [of some kind]
Train Classifier #2 Ground Truth (Hand segmented Images) 17 CS features 27 CSR features Train Classifier #1 Learned Parameters
Slide 27:9. Applying the Classifiers on Test data
Classifier #2 17 CS features 27 CSR features Classifier #1 Test Image Segmented image
Slide 28:Various Statistics
Database: Utrecht DRIVE database(http://www.isi.uu.nl/Research/Databases/DRIVE/) 40 images + Manual segmentations 20 images used to train and 20 to test Pathologies Training set: 3 images Test set: 4 images Image: 584x565 JPEG color images # of pixels: 329960 FOV mask: Circular (diameter = 460 pixels) # of pixels within the FOV: 209010 # of pixels marked as Vessel (GT): 24265 (11.6%)
Slide 29:Classifier
Authors used k-NN classifier (k=101) I used AdaBoost instead Data volume was easier to manage Feature selection not required Fast inference process
Slide 30:A weak learner
weak learner A weak rule h h
Slide 31:The boosting process
Final rule: Sign[ ] h1 a1 + h2 a2 + hT aT +
Slide 32:Adaboost (Adaptive Boosting)
Binary labels y = -1,+1 margin(x,y) = y [St at ht(x)] P(x,y) = (1/Z) exp (-margin(x,y)) Given ht, we choose at to minimize S(x,y) exp (-margin(x,y))
Slide 33:Discriminative ability of the CS features
Slide 34:Discriminative ability of the CSR features
Slide 35:Results
Original Image Vessels segmented Accuracy: 94.4% wrt Manual Segmentation
Automatic Segmentation Manual SegmentationOriginal Image Vessels segmented
Accuracy: 96% wrt Manual Segmentation Original Image Vessels segmented
Slide 39:Images with Pathologies
Original Image Vessels segmented Accuracy: 92.4% wrt Manual Segmentation
Slide 40:Images with Pathologies
Original Image Vessels segmented Accuracy: 92.5% wrt Manual Segmentation
Slide 41:Results Summary
Overall Accuracy = 93.9% Best segmentation = 96% Worst segmentation = 92.4%
Slide 42:Limitations
Needs a lot of Training data (Tremendous: manual effort). Especially images with pathologies if it is to correctly segment pathologies (Aneurysms) Pathologies are not recognized and sometimes misclassified as vessels Over and under segmentation (a concern if objective vessel width measurements are required) A lot of small vessels are missed Some vessels appear thickened Edges of the optical disc often have vessel like features and so are segmented as vessels.
Slide 43:Future Work
Some of the errors are due to randomization during ridge point linking process Arbitrarily partitions the ridge curves into convex sets. More rigorous partitioning will avoid small patches which get thrown out and create gaps in the segmentation Use other classifiers e.g., k-NN classifiers with Feature selection in the AdaBoost Framework. Add features?
Slide 44:References
Staal et al, Ridge-Based Vessel Segmentation in Color images of the Retina, IEEE TRANSACTIONS ON MEDICAL IMAGING, VOL. 23, NO. 4, APRIL 2004