Segmentation via genetic programming
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

Segmentation via Genetic Programming PowerPoint PPT Presentation


  • 130 Views
  • Uploaded on
  • Presentation posted in: General

Segmentation via Genetic Programming. Segmentation. Segmentation. Splitting an image into segments Hard problem Conceptually ill-defined. Segmentation. Which segmentation is the correct one?. Segmentation. Which segmentation is the correct one?. Segmentation.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Segmentation via genetic programming

SegmentationviaGenetic Programming


Segmentation

Segmentation

Segmentation

  • Splitting an image into segments

  • Hard problem

  • Conceptually ill-defined


Segmentation1

Segmentation

Which segmentation is the correct one?


Segmentation2

Segmentation

Which segmentation is the correct one?


Segmentation3

Segmentation

Which segmentation is the correct one?


Segmentation4

Segmentation

Defining the problem

  • Tagging function:

  • Deciding function:


Segmentation5

Segmentation

The Dataset

  • Berkley’s segmentation dataset and benchmark:

    • Images + Human made segmentation maps

    • Benchmark for segmentation algorithms


Genetic programming

Genetic Programming

What is Genetic Programming?

  • Bio-Inspired Artificial Intelligence method

  • Inspired by Darwin’s evolutionary principles


Genetic programming1

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


Genetic programming2

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


Segmentation via gp

Segmentation via GP

Individual Representation

  • Individuals are represented as LISP-like functions

    X2  (* x x)

    2x-1  (- (* (+ 1 1) x) 1)


Segmentation via gp1

Segmentation via GP

Individual Representation

  • Equivalent to tree representation


Segmentation via gp2

Segmentation via GP

Genetic Operators

  • Crossover


Segmentation via gp3

Segmentation via GP

Genetic Operators

  • Mutation


Segmentation via gp4

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), …


Segmentation via gp5

Segmentation via GP

Building the trees

  • An example: Gradient Magnitude

    (sqrt

    (+

    (* (conv image gradx)

    (conv image gradx))

    (* (conv image grady)

    (conv image grady))))


Segmentation via gp6

Segmentation via GP

Fitness measure

  • Accuracy:

  • Modified Accuracy:


Segmentation via gp7

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)


Segmentation via gp8

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.


Segmentation via gp9

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


Results

Results

A typical GP session


Results1

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


Results2

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)))))


Results3

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)))))


Results4

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)))))


Results5

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)))))


Results6

Results

Best Individual

Accuracy = 0.307 (GM accuracy = 0.280)


Results7

Results

Best Individual

Accuracy = 0.172 (GM accuracy = 0.193)


Results8

Results

Best Individual

Accuracy = 0.262

(GM accuracy = 0.245)


Results9

Results

Best Individual

Accuracy = 0.126

(GM accuracy = 0.119)


Summary

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


Summary1

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


Segmentation via genetic programming

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)


  • Login