segmentation via genetic programming

33
Segmentation Segmentation via via Genetic Programming Genetic Programming

Upload: luisa

Post on 21-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Segmentation via Genetic Programming

SegmentationSegmentationviavia

Genetic ProgrammingGenetic Programming

Page 2: Segmentation via Genetic Programming

SegmentationSegmentation

Splitting an image into

segmentssegments

Hard problem

Conceptually ill-definedill-defined

SegmentationSegmentation

Page 3: Segmentation via Genetic Programming

SegmentationSegmentation

Which segmentation is the correct Which segmentation is the correct one?one?

Page 4: Segmentation via Genetic Programming

SegmentationSegmentation

Which segmentation is the correct Which segmentation is the correct one?one?

Page 5: Segmentation via Genetic Programming

SegmentationSegmentation

Which segmentation is the correct Which segmentation is the correct one?one?

Page 6: Segmentation via Genetic Programming

SegmentationSegmentation

Tagging function:

Deciding function:

Defining the problemDefining the problem

nsegmentsegmentsegmentRRyxseg ,,,:, 21

falsetrueRRyxseg ,:,

Page 7: Segmentation via Genetic Programming

SegmentationSegmentation

Berkley’s segmentation dataset

and benchmark:

• Images + Human made segmentation

maps

• Benchmark for segmentation

algorithms

The DatasetThe Dataset

Page 8: Segmentation via Genetic Programming

Genetic ProgrammingGenetic Programming

Bio-InspiredBio-Inspired Artificial

Intelligence method

Inspired by Darwin’s evolutionary

principles

What is Genetic Programming?What is Genetic Programming?

Page 9: Segmentation via Genetic Programming

Genetic ProgrammingGenetic Programming

VarietyVariety of species individuals

within the population

CompetitionCompetition for limited resources

OverproductionOverproduction of offspring

generation

Survival of the fittestSurvival of the fittestOrigin of Species, 1859

Darwin’s principlesDarwin’s principles

Page 10: Segmentation via Genetic Programming

Genetic ProgrammingGenetic Programming

The computational modelThe computational model

GGnn

55

44

12

31

95

32

87

12

0

65

53

2

91

73

+

GGn+n+

11

=

crossover

mutation

fitness

Page 11: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Individuals are represented as

LISP-like functions

X2 (* x x)

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

Individual RepresentationIndividual Representation

Page 12: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Equivalent to tree representation

Individual RepresentationIndividual Representation

*

x x

-

*

x +

1 1

1

Page 13: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Crossover

Genetic OperatorsGenetic Operators

*

x

x

-

*

x

+

1 1

1

*

x x

-

*

x +

1 1

1

Page 14: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Mutation

Genetic OperatorsGenetic Operators

-

*

x +

1 1

1

-

*

x *

- x

1

1 1

Page 15: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

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

Building the treesBuilding the trees

Page 16: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

An example: Gradient Magnitude

(sqrt

(+

(* (conv image gradx)

(conv image gradx))

(* (conv image grady)

(conv image grady))))

Building the treesBuilding the trees

Page 17: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Accuracy:

Modified Accuracy:

Fitness measureFitness measure

segmapresult

segmapresultacc

segmapresult

segmapresultacc

1

1

Page 18: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

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)

ThresholdThreshold

Page 19: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

Berkley’s benchmark: split the threshold

range into N equalequal parts, threshold and

keep best.

My method: split the threshold range into

N unequalunequal parts, by equal increase in

reported points, proportional to number

of points in the human made

segmentation map.

ThresholdThreshold

Page 20: Segmentation via Genetic Programming

Segmentation via GPSegmentation via GP

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 sessionsSean Luke’s ECJ13 was used for running GP sessions

Miscellaneous Evolutionary Miscellaneous Evolutionary ParametersParameters

Page 21: Segmentation via Genetic Programming

ResultsResults

A typical GP sessionA typical GP session

Page 22: Segmentation via Genetic Programming

ResultsResults

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

A typical GP sessionA typical GP session

Page 23: Segmentation via Genetic Programming

ResultsResults

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

Best IndividualBest Individual

Page 24: Segmentation via Genetic Programming

ResultsResults

Segmentation function (- (- (conv (* (conv image gradxgradx) (conv image

gradxgradx)) (- (- (kernel 5.381114 -8.362269 8.888325

1.1866289 -6.4069843 -8.251046 -9.389916 6.183886 -

7.817788) gradygrady) (- (kernel -2.334486 -4.6182337 -

9.115009 8.010966 -3.0507333 3.22619 2.068446 -

2.932576 -6.243905) 0.0))) (conv (* (conv image

gradxgradx) (conv image gradxgradx)) (- (- (kernel 2.4412537

-8.362269 8.888325 1.1866289 -6.4069843 -8.251046 -

9.389916 6.183886 -7.817788) gradygrady) (- (kernel

9.936699 -4.6182337 -9.115009 8.010966 -3.0507333

3.22619 2.068446 -2.932576 -6.243905) 0.0)))) (- (-

(- (conv image gradygrady) (* 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)))))

Best IndividualBest Individual

Page 25: Segmentation via Genetic Programming

ResultsResults

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

Best IndividualBest Individual

Page 26: Segmentation via Genetic Programming

ResultsResults

Segmentation function (- (- (conv (* (conv image gradx) (conv image (* (conv image gradx) (conv image

gradx))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 (* (conv image

gradx) (conv image gradx))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)))))

Best IndividualBest Individual

Page 27: Segmentation via Genetic Programming

ResultsResults

Accuracy = 0.307 (GM accuracy = 0.280)

Best IndividualBest Individual

Page 28: Segmentation via Genetic Programming

ResultsResults

Accuracy = 0.172 (GM accuracy = 0.193)

Best IndividualBest Individual

Page 29: Segmentation via Genetic Programming

ResultsResults

Accuracy = 0.262

)GM accuracy = 0.245(

Best IndividualBest Individual

Page 30: Segmentation via Genetic Programming

ResultsResults

Accuracy = 0.126

)GM accuracy = 0.119(

Best IndividualBest Individual

Page 31: Segmentation via Genetic Programming

SummarySummary

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

DiscussionDiscussion

Page 32: Segmentation via Genetic Programming

SummarySummary

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

Future WorkFuture Work

Page 33: Segmentation via Genetic Programming

ReferencesReferences1. The Berkley Segmentation Dataset and Benchmark

http://www.cs.berkeley.edu/projects/vision/grouping/segbench/

2. Koza, J. R.: Genetic Programming: On the programming of

computers by natural selection. MIT press, Cambridge, Mass.

(1992)

3. Tomassini M.: Evolutionary Algorithms. Swiss Scientific

Computing Center, Manno.

4. Darwin, Charles: On the origin of species by means of natural

selection. London, John Murray, 1859

5. Montana, D.J.: Strongly typed genetic programming.

Evolutionary Computation 3 (1995) 199–230

6. Langdon, W.B.: Size fair and homologous tree genetic

programming crossovers.

Genetic Programming and Evolvable Machines 1 (2000) 95–

119.

7. Luke S.: ECJ 13 - a Java based Evolutionary Computation and

Genetic Programming research system

http://cs.gmu.edu/~eclab/projects/ecj

8. Koza, J. R.: Genetic Programming II: Automatic Discovery of

Reusable Programs. MIT press, Cambridge, Mass. (1994)