Você está na página 1de 26

GPIS : Genetic Programming based

Image Segmentation with


Applications to Biomedical
Object Detection

Tarundeep Singh Dhot


Dept of ECE, Concordia University, Montreal, Canada
t_dhot@encs.concordia.ca
Presentation Overview
2
Image Segmentation
3
•Is separation of objects/regions of interest from the background and
each other
•Foreground/background separation process
•Vital first step of any image analysis process
•Ill-defined problem – no general segmentation framework

Examples of image segmentation


WHAT IS GPIS ?
4
•A GP-based image segmentation tool
•The GP evolves segmentation algorithms from a pool of
primitive operators
• Primitives: Low-level image analysis functions
(arithmetic , spectral , morphological , etc) - 20
primitives used
•GP searches for most effective combinations of
primitives
•Currently tested on two medical image databases
Representation
5

•Linear chromosomal representation

•Chromosomes - programs

[HIST, d1, 0, 0, 0] [SUBP, io1, d1, .2, 0] [DIL, io2, 0, 0, 4] [LAPL, io3,
0, -4, 0]

• Genes – image operators


[Operator, Input 1, Input 2, Weight, Structuring Element/Filter Parameter]
GPIS - Flowchart
6
Initialization
7

•Initial population of programs is


randomly generated

•Maximum length of program = 15
operators
Fitness Function
8

w h e re :
FPR – False Positive Rate
FNR – False Negative Rate
Wp – Weight for False Positives , Wp [0, 0.5]
Wn – Weight for False Negatives , Wn = 1 - Wp
len = Length of the program
β – Scaling factor for the length of a program, β
[0.004, 0.008]
Selection and Elitism
•Elitism: 1% of best individuals in
population

• Parent Selection: Tournament Selection


• Tournament window size, λ = 10% of
population size
• Survivor Selection:
•Steady State (no injection)
•Fitness based (injection)

Slide 9/26
Evolutionary Operators
10

•Crossover: One-point

•Mutations:
•Type A: Swap, Insert, Delete (Inter-genomic)
•Type B: Alter (Intra-genomic)
Crossover: 1-point
PARENT CHROMOSOMES OFFSPRING CHROMOSOMES

[ A1 ] [ A2 ] [ A3 ] [ A4 ] [ A5 ] [ A6 ] [ A7 ] [ A1 ] [ A2 ] [ A3 ] [B6] [B7]

[B1] [B2] [B3] [B4] [B5] [B6] [B1] [B2] [B3] [B4] [ A4 ] [ A5 ] [ A6 ] [ A7 ]

GENE
[DIL, d1, 0, 0,
2]

[A], [B] = IMAGE OPERATOR


Slide 11/26
Mutations: Swap, Insert,
Delete, Alter

Slide 12/26
Injection
13

•Every 5 generations, randomly initialized


programs injected into population

•Number of injected program = 20% of
population size

•Injection used in order to maintain population
diversity
Termination
14

•Termination is based on a fitness threshold


(95% - Db1 and 90% - Db2)

•Termination criteria:
|current fitness – mean fitness(10 gen) | < 0.05 *
highest fitness
Experiments
15
•Tested on 2 medical image databases (HeLa Cells, Liver Tissue
Specimen)
•Database 1: Cell extraction
•Database 2: Nuclei extraction
•Tested for effectiveness and efficiency
•Results compared to a GA-based image segmentation tool GENIE Pro

PARAMETER DATABASE 1 (HeLa CELLS) DATABASE 2 (LIVER TISSUE)


Total images 1026 120
Training set 30 25
Validation 100 75
set
Runs 28 26
GENIE Pro
16

•GA based general purpose image segmentation/feature extraction


software

•Manual highlighting to prepare ground truth (true, false and
unknown pixels)

•GA evolves IP “pipelines” – sequence of IP functions for


segmentation from a set of IP functions based on prepared ground
truth

•Evolved programs are constructed by combining the fittest
pipelines using a linear classifier (Fisher Discriminant)
Results: Database 1
17
Superimposed input-evolved image

Fitness = 97.12% 96.98%


97.38%

91.02% 86.44%
Results: Database 2
18

Superimposed input-evolved image

Fitness = Fitness = 92.12%


93.29%
Results: Database 2
Superimposed input-evolved image

Fitness = 89.44% Fitness =


87.14%

Slide 19/26
Results:
20
Database 1: HeLa Database 2: Liver Tissue
Cells Specimen
ALGORITHM FITNESS Cell ALGORITHM FITNESS Cell
( Accuracy ) Detection ( Accuracy ) Detection
Rate GPIS 88.98% Rate
89.98%
GPIS 96.11% 97.98%
(i )
GENIE Pro 85.80% 87.42%
Effectivenes GENIE Pro 95.50% 96.56%
s

# # FITNESS # GENERATIONS # FITNESS


GENERATIONS EVALUATIONS EVALUATIONS
BEST ( HIGHEST 114 10,532 BEST ( HIGHEST 206 18,732
(ii) FITNESS ) FITNESS )
Efficiency AVERAGE 122.07 11,257.67 AVERAGE 214.15 19,563.87
Results: Evolved Programs
21
Database 1: HeLa Cells
A. [ GAUSS , d1 , 0 , 6 , 0 . 8435 ] [ AVER , io1 , 0 , 4 , 0 ] [ EROD , io2 , 0 , 0 , 1 ] [ AVER , io3 , 0 , 6 , 0 ]
[ CLOP , io4 , 0 , 0 , 1 ]
[ THRESH , io5 , 0 , 0 . 09022 , 0 ]
Fitness on validation set = 97.32%, Number of operators = 6
B .[ DISK , d1 , 0 , 3 , 0 ] [ AVER , io1 , 0 , 6 , 0 ] [ CLOSE , io2 , 0 , 0 , 2 ] [ ADDP , io1 , io2 , 0 , 0 ] [ EROD ,
io3 , 0 , 1 ] [ EROD , io4 , 0 , 1 ] [ THRESH , io5 , 0 , 0 . 1264 , 0 ]
Fitness on validation set = 97.61%, Number of operators = 7

Database 2: Liver Tissue


A . Specimen
[ LOWPASS , d1 , 0 , 32 , 0 . 793 ] [ AVER , io1 , 0 , 4 , 0 ] [ AVER , io2 , 0 , 3 , 0 ] [ ADJUST , io3 , 0 , . 205 ,
0 . 517 ]
[ CLOSE , io4 , 0 , 0 , 1 ] [ THRESH , io5 , 0 , 0 . 9852 , 0 ]
Fitness on validation set = 91.89%, Number of operators = 6
B .[ UNSHARP , d1 , 0 , 0 . 82 , 0 ] [ HIST , io4 , 0 , 0 , 0 ] [ LAPL , io1 , 0 , - 8 , 0 ] [ DISK , io2 , 0 , 6 , 0 ]
[ AVER , io3 , 0 , 6 , 0 ]
[ HIST , io4 , 0 , 0 , 0 ] [ ADJUST , io5 , 0 , 0 , 0 . 202 ] [ OPEN , io6 , 0 , 0 , 1 ] [ EROD , io7 , 0 , 0 ,
1 ] [ THRESH , io8 , 0 , 0 . 752 , 0 ]
Fitness on validation set = 92.17%, Number of operators = 10
Results: Structure of Evolved
Program
22
Evolved chromosome GAUSS AVER EROD AVER CLOP THRESH

Gene structure of MATLAB implementation


chromosome d1 = input;
[ GAUSS , d1 , 0 , 6 , 0 . 8435 ] h1 = fspecial(‘gaussian’, [6 6],
0.8435) ;
io1 = imfilter(d1, h1);
[ AVER , io1 , 0 , 4 , 0 ] h2 = fspecial(‘average’, [4 4]);
io2 = imfilter(io1,h2);
Input [ EROD , io2 , 0 , 0 , 1 ] SE1 = strel(‘disk’, 2);
Image io3 = imerode(io2, SE1);
h3 = fspecial(‘average’, [6 6]);
[ AVER , io3 , 0 , 6 , 0 ] io4 = imfilter(io3,h3);
io5 = imclose(io4, SE1);
[ CLOP , io4 , 0 , 0 , 1 ]
output = im2bw(io5, 0.09022);
[ THRESH , io5 , 0 , 0 . 09022 , 0 ]

Output Fitness of program on validation set = 97.32%


Image # Generation = 114, # Fitness evaluations =
Conclusions
23

•Experimental results show that the operator pool is sufficient for


our databases
•Injection is a viable option to maintain diversity
•Mutation is desirable as it allows parameter tuning
•GP was able to learn complexity of the databases in use (less
generations for convergence for Db1 as compared to Db2)
•GP showed high detection rates on both databases (Db1 = 97.98%, Db2
= 89.98%)
Contributions
24

•Simple approach and anyone with MATLAB can use it

•Open sourced code

•Requires no a priori information other than training images



•Relatively general approach based on results on the two databases

•Produces better results as compared to GENIE Pro
Suggested Future Work
25

•Inclusion of automatically defined functions



•Competitive co-evolution

•Addition of conditional jumps
Comments/Questions
Thank you!

Você também pode gostar