1 / 33

Segmentation via Genetic Programming

Explore how genetic programming can be used to solve the challenging and conceptually ill-defined problem of image segmentation. Learn about the computational model, genetic operators, fitness measures, and thresholding techniques for producing accurate segmentations.

buckd
Download Presentation

Segmentation via Genetic Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SegmentationviaGenetic Programming

  2. Segmentation Segmentation • Splitting an image into segments • Hard problem • Conceptually ill-defined

  3. Segmentation Which segmentation is the correct one?

  4. Segmentation Which segmentation is the correct one?

  5. Segmentation Which segmentation is the correct one?

  6. Segmentation Defining the problem • Tagging function: • Deciding function:

  7. Segmentation The Dataset • Berkley’s segmentation dataset and benchmark: • Images + Human made segmentation maps • Benchmark for segmentation algorithms

  8. Genetic Programming What is Genetic Programming? • Bio-Inspired Artificial Intelligence method • Inspired by Darwin’s evolutionary principles

  9. Genetic Programming Darwin’s principles • Variety of species individuals within the population • Competition for limited resources • Overproduction of offspring generation • Survival of the fittest Origin of Species, 1859

  10. Genetic Programming The computational model Gn Gn+1 fitness crossover 55 + 44 = 12 31 95 32 87 12 0 65 mutation 53 2 91 73

  11. Segmentation via GP Individual Representation • Individuals are represented as LISP-like functions X2  (* x x) 2x-1  (- (* (+ 1 1) x) 1)

  12. Segmentation via GP Individual Representation • Equivalent to tree representation

  13. Segmentation via GP Genetic Operators • Crossover

  14. Segmentation via GP Genetic Operators • Mutation

  15. Segmentation via GP Building the trees • Function Set:{+, -, *, %, neg, conv, opp, sqrt} • Terminal Set:{image, 0, 1, const, gradx, grady, ckernel} • Strongly-Typed GP:conv(matrix,kernel)+(matrix,matrix), +(kernel,kernel), +(kernel,number), …

  16. Segmentation via GP Building the trees • An example: Gradient Magnitude (sqrt (+ (* (conv image gradx) (conv image gradx)) (* (conv image grady) (conv image grady))))

  17. Segmentation via GP Fitness measure • Accuracy: • Modified Accuracy:

  18. Segmentation via GP Threshold • Individuals produce ‘soft boundary maps’, need threshold value • Value too low – more points are reported (false positives) • Value too high – less points are reported (true negatives)

  19. Segmentation via GP Threshold • Berkley’s benchmark: split the threshold range into N equal parts, threshold and keep best. • My method: split the threshold range into N unequal parts, by equal increase in reported points, proportional to number of points in the human made segmentation map.

  20. Segmentation via GP Miscellaneous Evolutionary Parameters • Population size: 60-150 • Generation count: unspecified • Crossover rate: 90% • Mutation rate: 10% • Selection: tournament of 3 • Tree depth: limited to 6-9 Sean Luke’s ECJ13 was used for running GP sessions

  21. Results A typical GP session

  22. Results A typical GP session • Generation 0:0.176 best, 0.08 average • Generation 93:0.262 best, 0.242 average • Fitness does not always increase! • Fitness leaps in best individual

  23. Results Best Individual Segmentation function (- (- (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 5.381114 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel -2.334486 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0))) (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 2.4412537 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel 9.936699 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0)))) (- (- (- (conv image grady) (* 1.0 9.336973)) (% (* 1.0 9.336973) 9.336973)) (% (% (* -3.9138038 0.0) (* 0.0 0.0)) (% (* 1.0 9.336973) (* 1.0 9.336973)))))

  24. Results Best Individual Segmentation function (- (- (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 5.381114 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel -2.334486 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0))) (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 2.4412537 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel 9.936699 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0)))) (- (- (- (conv image grady) (* 1.0 9.336973)) (% (* 1.0 9.336973) 9.336973)) (% (% (* -3.9138038 0.0) (* 0.0 0.0)) (% (* 1.0 9.336973) (* 1.0 9.336973)))))

  25. Results Best Individual Segmentation function (- (- (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 5.381114 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel -2.334486 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0))) (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 2.4412537 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel 9.936699 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0)))) (- (- (- (conv image grady) (* 1.0 9.336973)) (% (* 1.0 9.336973) 9.336973)) (% (% (* -3.9138038 0.0) (* 0.0 0.0)) (% (* 1.0 9.336973) (* 1.0 9.336973)))))

  26. Results Best Individual Segmentation function (- (- (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 5.381114 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel -2.334486 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0))) (conv (* (conv image gradx) (conv image gradx)) (- (- (kernel 2.4412537 -8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -7.817788) grady) (- (kernel 9.936699 -4.6182337 -9.115009 8.010966 -3.0507333 3.22619 2.068446 -2.932576 -6.243905) 0.0)))) (- (- (- (conv image grady) (* 1.0 9.336973)) (% (* 1.0 9.336973) 9.336973)) (% (% (* -3.9138038 0.0) (* 0.0 0.0)) (% (* 1.0 9.336973) (* 1.0 9.336973)))))

  27. Results Best Individual Accuracy = 0.307 (GM accuracy = 0.280)

  28. Results Best Individual Accuracy = 0.172 (GM accuracy = 0.193)

  29. Results Best Individual Accuracy = 0.262 (GM accuracy = 0.245)

  30. Results Best Individual Accuracy = 0.126 (GM accuracy = 0.119)

  31. Summary Discussion • It is possible to evolve segmentation functions using GP • Results are good, can be better • Evolved function ‘beats’ the gradient magnitude function • Improve results by more power

  32. Summary Future Work • More CPU and RAM • More functions and terminals • Use ADFs • Evolve kernels separately • Evolve threshold function separately • Include more inputs: color images, textures, output of other edge detectors

  33. References The Berkley Segmentation Dataset and Benchmarkhttp://www.cs.berkeley.edu/projects/vision/grouping/segbench/ Koza, J. R.: Genetic Programming: On the programming of computers by natural selection. MIT press, Cambridge, Mass. (1992) Tomassini M.: Evolutionary Algorithms. Swiss Scientific Computing Center, Manno. Darwin, Charles: On the origin of species by means of natural selection. London, John Murray, 1859 Montana, D.J.: Strongly typed genetic programming. Evolutionary Computation 3 (1995) 199–230 Langdon, W.B.: Size fair and homologous tree genetic programming crossovers.Genetic Programming and Evolvable Machines 1 (2000) 95–119. Luke S.: ECJ 13 - a Java based Evolutionary Computation and Genetic Programming research systemhttp://cs.gmu.edu/~eclab/projects/ecj Koza, J. R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT press, Cambridge, Mass. (1994)

More Related