Download Oral presentation slides

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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
Which segmentation is the correct one?
Segmentation
Defining the problem
 Tagging function:
seg x, y  : R  R  segment1 , segment 2 ,, segment n 
 Deciding function:
seg x, y  : R  R  true, false
Segmentation
The Dataset
 Berkley’s segmentation dataset
and benchmark:
• Images + Human made segmentation
maps
• Benchmark for segmentation
algorithms
Genetic Programming
What is Genetic Programming?
 Bio-Inspired Artificial Intelligence
method
 Inspired by Darwin’s evolutionary
principles
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 Programming
The computational model
Gn
Gn+1
fitness
55
44
12
31
95
32
87
12
0
65
53
2
91
73
crossover
+
=
mutation
Segmentation via GP
Individual Representation
 Individuals are represented as
LISP-like functions
X2  (* x x)
2x-1  (- (* (+ 1 1) x) 1)
Segmentation via GP
Individual Representation
 Equivalent to tree representation
*
x
x
*
+
1
1
x
1
Segmentation via GP
Genetic Operators
 Crossover
*
x
x
*
+
1
1
x
1
*
+
1
x
1
*
x
1
x
Segmentation via GP
Genetic Operators
 Mutation
*
+
1
1
*
x
*
1
1
x
x
1
1
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 GP
Building the trees
 An example: Gradient Magnitude
(sqrt
(+
(* (conv image gradx)
(conv image gradx))
(* (conv image grady)
(conv image grady))))
Segmentation via GP
Fitness measure
 Accuracy:
acc 
result  segmap
result  segmap
 Modified Accuracy:
acc 
1  result  segmap
1  result  segmap
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 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 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
A typical GP session
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
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)))))
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)))))
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)))))
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)))))
Results
Best Individual
Accuracy = 0.307 (GM accuracy = 0.280)
Results
Best Individual
Accuracy = 0.172 (GM accuracy = 0.193)
Results
Best Individual
Accuracy = 0.262
(GM accuracy = 0.245)
Results
Best Individual
Accuracy = 0.126
(GM accuracy = 0.119)
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
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
References
1.
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)
Related documents