Image Analysis: Object Recognition Image Analysis: Object Recognition Image Segmentation INPUT IMAGE OBJECT IMAGE Image Segmentation: each object in the image is identified and isolated from the rest of the image Image Analysis: Object Recognition Feature Extraction OBJECT IMAGE x1 x 2 FEATURE VECTORS x …3 xn Feature Extraction: measurements or “features” are computed on each object identified during the segmentation step xn x2 x1 The feature vector for a given pixel consists of the corresponding pixels from each feature image; the feature vector for an object would be computed from pixels comprising the object, from each feature image. Image Analysis: Object Recognition FEATURE VECTORS Classification OBJECT TYPE “WRENCH” Classification: each object is assigned to a class Image Analysis: Object Recognition Image Segmentation INPUT IMAGE OBJECT IMAGE Feature Extraction FEATURE VECTOR OBJECT TYPE Classification “WRENCH” Example: an automated fruit sorting system Example: an automated fruit sorting system segmentation: identify the fruit objects the image is partitioned to isolate individual fruit objects Example: an automated fruit sorting system segmentation: identify the fruit objects feature extraction: compute a size and color feature for each segmented region in the image size - diameter of each object color - red-to-green brightness ratio (redness measure) Example: an automated fruit sorting system segmentation: identify the fruit objects feature extraction: compute a size and color feature for each segmented region in the image classification: partition the “fruit” objects in feature space Automatic (unsupervised) image Segementation : difficult problem 1) attempt to control imaging conditions (industrial applications) 2) choose sensor which enhance objects of interest (infared imaging) Segmentation Algorithms: - discontinuities between homogeneous regions - similarity of pixel values within a region Discontinuity based Segmentation: detect points, lines and edges in an image Discontinuity based Segmentation: detect points, lines and edges in an image -1 -1 -1 -1 8 -1 -1 -1 -1 Discontinuity based Segmentation: detect points, lines and edges in an image -1 -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 2 2 2 -1 -1 -1 -1 2 -1 -1 2 -1 -1 2 -1 -1 -1 2 -1 2 -1 2 -1 -1 2 -1 -1 -1 2 -1 -1 -1 2 Discontinuity based Segmentation: detect points, lines and edges in an image -1 -1 -1 -1 8 -1 -1 -1 -1 -1 -1 -1 2 2 2 -1 -1 -1 -1 2 -1 -1 2 -1 -1 2 -1 -1 0 1 -2 0 2 -1 0 1 -1 -1 2 -1 2 -1 2 -1 -1 2 -1 -1 -1 2 -1 -1 -1 2 -1 -2 -1 0 0 0 1 2 1 Discontinuity based Segmentation: detect points, lines and edges in an image -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 Gx Gy Discontinuity based Segmentation: detect points, lines and edges in an image -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 Gx Gy Discontinuity based Segmentation: Gradient vector Gx Gy Edge Linking - used to create connected boundaries Discontinuity based Segmentation: Gradient vector Gx Gy Edge Linking - used to create connected boundaries - similar points within a neighborhood are linked Discontinuity based Segmentation: Gradient vector Gx Gy Edge Linking - used to create connected boundaries - similar points within a neighborhood are linked magnitude of gradient vector [ Gx 2 + Gy 2 ] 1 2 Discontinuity based Segmentation: Gradient vector Gx Gy Edge Linking - used to create connected boundaries - similar points within a neighborhood are linked magnitude of gradient vector [ Gx 2 + Gy 2 ] 1 2 approximated as | Gx | + | Gy | Discontinuity based Segmentation: Gx Gy Gradient vector Edge Linking - used to create connected boundaries - similar points within a neighborhood are linked magnitude of gradient vector orientation of edges -1 ang(x,y) = tan ( Gy ) Gx Discontinuity based Segmentation: Gradient vector Gx Gy Edge Linking - used to create connected boundaries - similar points within a neighborhood are linked magnitude of gradient vector orientation of edges Discontinuity based Segmentation: Identify zero crossings Discontinuity based Segmentation: Identify zero crossings 0 -1 0 -1 4 -1 0 -1 0 Discontinuity based Segmentation: Identify zero crossings Discontinuity based Segmentation: Identify zero crossings Discontinuity based Segmentation: Identify zero crossings Discontinuity based Segmentation: Identify zero crossings Discontinuity based Segmentation: Identify zero crossings Similarity based Segmentation: - Simple thresholding - Split and Merge - Recursive thresholding Similarity based Segmentation: - Simple thresholding - Split and Merge - Recursive thresholding Single Level Thresholding T[g] = 0, g < TH G - 1, TH # g Single Level Thresholding T[g] = 0, g < TH G - 1, TH # g Single Level Thresholding Single Level Thresholding T[g] = 0, g < TH G - 1, TH # g Multiple Level Thresholding T[g] = 0, g < TH1 G - 1, TH1 # g <= TH2 0, g > TH2 Similarity based Segmentation: - Simple thresholding - Split and Merge - Recursive thresholding Split and Merge 1) split region into four disjoint quadrants if P(Rj) = FALSE 2) merge any adjacent regions Rj and Rk if P(Rj URk) = TRUE 3) stop when no splitting or merging is possible Split and Merge Split and Merge Split and Merge Split and Merge Split and Merge Split and Merge Split and Merge Split and Merge