genetic algorithms: colour image segmentationmgallott/honsproj/downloads/report_keri… ·...

49
Honours Project Report Genetic Algorithms: Colour Image Segmentation Keri Woods [email protected] Supervised by: Audrey Mbogho Department of Computer Science University of Cape Town 2007

Upload: others

Post on 22-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Honours Project Report

Genetic Algorithms:Colour Image Segmentation

Keri [email protected]

Supervised by: Audrey Mbogho

Department of Computer ScienceUniversity of Cape Town

2007

Page 2: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Abstract

Image segmentation has great importance in many image processing applications,and yet no general image segmentation exists. Image segmentation is complicatedtask, often with many parameters needing to be tuned to get good results. Thisreport researches and discusses the concepts of image segmentation, genetic algo-rithms and segmentation evaluation. Due to the flexibility of genetic algorithms andtheir ability to effectively explore large search spaces, it may be viable to use themto improve existing image segmentation methods. A region merging algorithm wasimplemented and evaluated using quantitative means. These segmentation resultswere compared to those of two other image segmentation methods: region growingand watershed segmentation. Our region merging method was shown to produceaverage results. A genetic algorithm was implemented in an attempt to improvethe segmentation results by evolving the segmentation parameters. A fitness func-tion needing neither human input nor a ground truth segmentation comparison wasproposed. The results on the effect of the genetic algorithm on the performance ofthe genetic algorithm are inconclusive. However, even if the genetic algorithm doesoffer an improvement, it has the major drawback of running very slowly. There aremany possible way of improving this system, and it seems to be an area where muchresearch is needed.

i

Page 3: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Contents

Abstract i

List of Figures iv

1 Introduction 1

1.1 Project Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Project Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1 Limited Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Background and Related Work 4

2.1 General Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Image Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.1 Colour Segmentation . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.2 Methods of Image Segmentation . . . . . . . . . . . . . . . . . 5

2.2.3 Difficulties with Image Segmentation . . . . . . . . . . . . . . 7

2.3 Segmentation Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Genetic Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4.1 Applications of Genetic Algorithms for Image Segmentation . 9

2.4.2 Fitness Function . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 System Design and Implementation 14

3.1 Region Merging Image Segmentation . . . . . . . . . . . . . . . . . . 16

3.1.1 Region Merging Module . . . . . . . . . . . . . . . . . . . . . 18

3.2 Genetic Algorithm Module . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.1 Chromosome Structure . . . . . . . . . . . . . . . . . . . . . . 23

3.2.2 Reproduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2.3 Selection and Termination . . . . . . . . . . . . . . . . . . . . 26

3.2.4 Fitness Function . . . . . . . . . . . . . . . . . . . . . . . . . 27

ii

Page 4: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

4 Experimental Design 29

4.1 Evaluation of Region Merging Image Segmentation . . . . . . . . . . 29

4.2 Effect of Genetic Algorithm on Segmentation Quality . . . . . . . . . 30

4.2.1 Hypothesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2.2 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.3 Modification of Genetic Algorithm Parameters . . . . . . . . . . . . . 31

4.3.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.3.2 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5 Results 32

5.1 Region Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2 Genetic Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.3 Alteration of Genetic Algorithm Parameters . . . . . . . . . . . . . . 36

6 Future Work 38

7 Conclusions 39

iii

Page 5: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

List of Figures

3.1 Module Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 UML Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3 Module Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 RegionList Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.5 Region Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.6 Genetic Algorithm Module . . . . . . . . . . . . . . . . . . . . . . . . 24

3.7 Parameter Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.8 Chromosome Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1 Image Segmentation Example . . . . . . . . . . . . . . . . . . . . . . 33

5.2 Comparison of Segmentation Methods using RMSE . . . . . . . . . . 34

5.3 This table shows the comparison of the RMSE values using geneticalgorithms vs. traditional algorithms . . . . . . . . . . . . . . . . . . 34

5.4 The Effect of Scale Parameter on Segmentation Results . . . . . . . . 35

iv

Page 6: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 1

Introduction

1.1 Project Description

In this project we review image segmentation methods and look into the use ge-netic algorithms for colour image segmentation. We base the segmentation part ofour implementation on a region merging method described in Baatz and Schape[8].For our genetic algorithm, we follow a later improvement by Feitosa et al [22] whichevolves the parameters for region merging to give visibly better results. The keyto this improvement is a well-chosen fitness function, which captures the require-ments of good segmentation without needing a comparison with a ground truthsegmented image. However, Feitosa’s fitness function relies on manual (user-based)segmentation to test the success or failure of the genetic algorithm. Our approach,in contrast, does not need user feedback, making it useful to real-world, automatedsegmentation applications.

1.2 Motivation

Image segmentation is an important process and its results are used in many imageprocessing applications. However, despite its importance, there doesn’t to seem to beany general method of image segmentation that works well on all images[42]. Imagesegmentation involves a lot of uncertainty, often with many parameters that need tobe tuned to provide optimal results. For example, the Phoenix image segmentationmethod has 14 adjustable parameters[12]. This large number of parameters create avery large search space. Colour images have even more information than grey-scaleimages, and this information can be used to create higher quality segmentation. Itdoes, however, increase the complexity of the problem. A way of handling the largesearch space is to use a directed search method, such as genetic algorithms.

Genetic algorithms have many qualities that make them well suited to the problemof image segmentation, such as the ability to forego a local optimum to reach a global

1

Page 7: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

optimum and the ability to efficiently find an optimal solution from within a largesearch space[9].

Genetic algorithms could allow an image segmentation process that usually requiresmanual input to become unsupervised.

Genetic algorithms have been used to successfully colour segment images[12]. Dueto their flexibility, it seems feasible to be able to use them to come up with a generalsegmentation method.

1.3 Project Scope

The main aims of this investigation are:

1. Research image segmentation

2. Research genetic algorithms, especially those used as part of an image seg-mentation process

3. Research segmentation evaluation

4. Implement a method of segmenting colour images

5. Implement a genetic algorithm to improve the segmentation algorithm imple-mented

6. Evaluate whether the use of the genetic algorithm is an improvement over theoriginal segmentation method

It will be advantageous if the segmentation method using the genetic algorithm isable to segment general images and enables unsupervised colour image segmentation.

1.3.1 Limited Scope

Due to time limitations, some of the aims mentioned in the project proposal werenot met. These include:

1. Only one segmentation method was implemented and experimented with,rather than comparing a number of different ones

2. The genetic algorithm implemented wasn’t compared with those developed byothers

3. No experimentation on genetic algorithm parameters was done

2

Page 8: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

The reasons for these aims not being completed include:

1. Difficulties in the implementation of the region merging segmentation, includ-ing memory leaks

2. Proposal objectives being too ambitious

3. Slow running times of the region merging-genetic algorithm system

3

Page 9: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 2

Background and Related Work

In this section, we start by looking at the concept and importance of image segmen-tation and mention the requirements for good image segmentation. The implicationof using colour in image segmentation is explored and methods for image segmen-tation are briefly discussed. Problems with existing image segmentation methodsare mentioned. The evaluation of image segmentation is briefly discussed. Geneticalgorithms are then introduced and their suitability for use in image segmentationis examined. We explore various applications of genetic algorithms to the problemof image segmentation. Genetic algorithm fitness functions that have been used byothers with image segmentation as discussed. Finally, the feasibility of the use ofgenetic algorithms for general colour image segmentation is considered and designissues for such an algorithm are discussed.

2.1 General Overview

Image segmentation is an important process and its results are used in many imageprocessing applications. However, there is no general way to successfully segment allimages[42]. Colour images have more information than grey-scale images, and thisinformation can be used to create higher quality segmentation. It does, however,increase the complexity of the problem. A way of handling this complexity is to usea directed search method, such as genetic algorithms. Genetic algorithms, whichmimic the process of evolution, have many qualities that make them well suited tothe problem of image segmentation, such as the ability to forego a local optimumto reach a global optimum[9] and the ability too efficiently find an optimal solutionfrom within a large search space[6].

The main uses of genetic algorithms in image segmentation are for the modificationof parameters in existing segmentation algorithms and pixel-level segmentation[21].Various algorithms that successfully apply genetic algorithms to image segmentation

4

Page 10: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

have been developed. Though these results are promising, none of them solve thisopen problem.

2.2 Image Segmentation

Image segmentation is the process of dividing an image into homogeneous regions.This is equivalent to finding the boundaries between the regions. Segmentation isthe first step for many higher level image processing and computer vision opera-tions, including shape recognition, medical imaging[24], locating objects in satelliteimages[33], face detection[4] and road sign recognition[48].

2.2.1 Colour Segmentation

Until recently, most image segmentation has been performed on grey-scale im-ages. Processing colour images requires much more computation than the pro-cessing of grey-scale ones, but now with the increasing speed and decreasing costof computation, colour image processing has been much researched in the lastdecade[33][19][15][42].

Colour images contain far more information than monochrome images. Each pixelin a colour image has information about brightness, hue and saturation. Thereare many models to represent the colours, including RGB (red, green, blue), CMY(cyan, magenta, yellow), HSV (hue, saturation, intensity), YIQ, HSI and manyothers. Several colour spaces have been used for image segmentation[19] and nogeneral advantage of one colour space has yet been found[42].

Many of the colour image segmentation algorithms are derived from methods ofgrey-scale image segmentation. However, colour creates a more complete represen-tation of an image and exploiting this fact can result in a more reliable segmenta-tion. Specialised techniques suited to the nature of colour information have beendevised[33][19].

2.2.2 Methods of Image Segmentation

Image segmentation is an old and important problem, and there are numerous imagesegmentation methods. Most of these methods were developed to be used on acertain class of images and therefore aren’t general image segmentation methods[9].

Bhanu and Lee[10] divide the image segmentation algorithms into three majorcategories:

1. Edge Based

5

Page 11: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

2. Region Based

3. Clustering Based

4. Model Based1

Edge Based Techniques

Edge detection involves the detection of boundaries between different regions ofthe image. These boundaries correspond to discontinuities between pixels of thechosen feature (eg colour, texture, intensity).

Region Based Techniques

Region splitting is an image segmentation method whereby pixels are classifiedinto regions. Each region corresponds to a range of feature values, with thresholdsbeing the delimiters. The choice of these thresholds is very important, as it greatlyaffects the quality of the segmentation. This method tends to excessively splitregions, resulting in over segmentation[10].

Region growing joins neighbouring pixels with similar characteristics to formlarger regions. This continues until the termination conditions are met. Most of theregion growing algorithms focus on local information, making it difficult to get goodglobal results. This method tends to excessively add to regions, resulting in undersegmentation[10].

Region merging recursively merges similar regions. It is similar to region grow-ing, except that two whole regions are combined, rather than one region combiningwith individual pixels[14].

Region splitting and merging tries to overcome the weaknesses of region grow-ing and region splitting by combining the two techniques. Initially the image isdivided into arbitrary regions. Region splitting and region merging occur until thetermination conditions are met[10].

The Phoenix image segmentation algorithm is a region splitting methodfor segmentation that has been widely used and tested on colour images. It useshistogram analysis, thresholding and connected component analysis to partially seg-ment the image. Each region then has the same process applied to it recursively,until termination conditions are met and the image is fully segmented. The algo-rithm uses 17 parameters, 14 of which are adjustable[12][30].

1This isn’t discussed here as it is used to match particular objects and so isn’t relevant togeneral image segmentation

6

Page 12: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Clustering Based Techniques

Clustering separates the image into various classes without any prior knowledge.This method is based on the assumption that objects within each class should havea high degree of similarity, while those in different classes should be dissimilar. It isconsidered an unsupervised image segmentation technique[33][40].

2.2.3 Difficulties with Image Segmentation

Image segmentation is easy when objects have distinct colours and are well sep-arated, but can be a problem if there are many complex objects with less dis-tinct colour. Gradual variation in colour[41], illumination[43], shading[49] andtextures[40] are also possible problems.

A brute force method of dealing with image segmentation would be to enumerateall possible partitions of the image and evaluate each one. This creates an extremelylarge search space, and so this method is not feasible[9].

Even once a segmentation method has been chosen, there are usually many param-eters that need to be tuned to create high quality segmentation. For most methods,it is not feasible to perform an exhaustive search of these parameters.

Despite the many methods for image segmentation, there is no general algorithmthat works well for all images. Because of the wide variety of images, a generalalgorithm needs to be adaptable. Only then can a segmentation algorithm copewith a wide variety of images[10].

Many adaptive methods have been used for image segmentation, including ge-netic algorithms[11], neural networks[20], self-adaptive regularisation[47], ant colonyoptimization[37], fuzzy clustering[2] and simulated annealing[51].

2.3 Segmentation Evaluation

Methods of evaluating image segmentation are divided into two main categories[50]:

1. Analytical Methods

2. Empirical Methods

Analytical methods look at the actual segmentation algorithm itself, rather thanits results, while empirical methods evaluate the segmentation algorithm by lookingat its results. In this case, it is the empirical methods that we are more interestedin. Empirical methods can be further sub divided into:

7

Page 13: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

1. Goodness Methods

2. Discrepancy Methods

Goodness methods evaluate the quality of the segmentation by looking at its de-sirable properties, and don’t compare it to any other segmentation. It is this type ofmethod that we wish to use as a fitness function for the genetic algorithm, becausethey don’t need any prior knowledge of the image segmentation or ground truthsegmented image and so are advantageous for an unsupervised algorithm. Discrep-ancy methods compare the segmentation results to an ideally segmented image, tosee how much its segmentation differs from the target segmentation. It is this classof method that we will use to evaluate the results of our segmentation algorithmduring experimentation.

2.4 Genetic Algorithms

Genetic algorithms are an optimization technique that can be used in image segmen-tation [11]. It mimics natural selection, allowing an algorithm to adapt. Solutionsare represented by a population of individual chromosomes, usually represented asbinary strings. A chromosome is made up of genes, each of which can represent aparticular characteristic. Each individual in the population is evaluated and givena fitness score based on how well they solve the particular problem. The higherthe individual’s fitness score, the greater their probability of breeding. Breedingcreates the next generation through crossover and mutation. Crossover combinesthe chromosome of two individuals, creating a new individual which is unlike eitherof the parents. Mutation, which occurs only a small percent of the time, randomlyalters a new individual’s chromosome. Since the more optimal individuals have agreater chance of breeding, the population tends to evolve and reach an optimalsolution[45][5][23].

Genetic algorithms have been used to solve a wide variety of problems, includingnumerical and combinatorial optimisation, circuit design and cellular automata ruledesign[23]. In image processing, genetic algorithms have successfully been used forfeature extraction, object recognition[44], knowledge based segmentation[36] andimage classification[18].

Image segmentation is easily and naturally formulated as on optimisation problem.It can either be seen as finding the optimal segmentation amongst all candidate seg-mentations, or as finding the optimal parameters for an existing image segmentationalgorithm. In both cases, this creates an extremely large search space, indicatingthe use of genetic algorithms[6].

Genetic algorithms are advantageous in that they are able to forego local optimain an attempt to reach the global optimum[9]. This makes them far less likely to

8

Page 14: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

get caught in a local optimum than deterministic optimization techniques, such aslocal hill-climbing and gradient descent. Though more computationally expensivethan these methods, genetic algorithms are less computationally expensive than ex-haustive searches and other adaptive techniques, such as simulated annealing, whichis theoretically guaranteed to find a global optimum[35]. While, genetic algorithmscannot guarantee finding a global optimum, they usually give a good approximation.This makes genetic algorithms a good compromise between accuracy and computa-tional intensity.

Many image segmentation problems have large search spaces but need only anapproximate global optimum. In this case, genetic algorithms using a directed searchhave proven useful[10]. A disadvantage of genetic algorithms is that they can takea long time to converge. Though this is the case, they are still much more efficientthan performing an exhaustive search[23] [51].

Many images, particularly natural scenes, are complex and noisy. A characteristicof genetic algorithms is their effectiveness and robustness in dealing with uncertainty,insufficient information and noise. Combined with the fact that no matter how it isposed, the image segmentation problem involves a very large search space, makinggenetic algorithms well suited to the problem[10][3].

One of the major challenges for designing genetic algorithms is defining a fitnessfunction. The only information available to the population of chromosomes is the re-sult of the fitness function evaluated every generation. This makes an appropriatelydefined fitness function essential for successful genetic algorithms. In the context ofimage segmentation, the fitness function should evaluate the resulting segmentation.There is, however, no generally accepted unsupervised method of evaluating imagesegmentation[44].

2.4.1 Applications of Genetic Algorithms for Image Segmen-

tation

Farmer and Shugars[21] divide the genetic algorithms used for image segmentationinto two major classes:

1. Parameter selection, where genetic algorithms are used to modify the param-eters of an existing image segmentation method to improve its output.

2. Pixel-level segmentation, where genetic algorithms are used to perform regionlabelling.

Most image segmentation methods have many parameters that need to be opti-mised, and therefore the first method is used more often[11]. Many such methods are

9

Page 15: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

discussed, as well as a few methods employing pixel-level segmentation. Modifiedgenetic algorithms and hybrid genetic algorithms have also been used for segmenta-tion.

Parameter Modification

Most image segmentation methods have many parameters, constants and thresholdsthat need to be adjusted to produce optimal segmentation results. This creates avery large search space. Since the parameters typically interact in complex and non-linear ways, an analytic solution is not generally possible. With a reasonable amountof computation, genetic algorithms are able to find good approximations of a globaloptimum within a large search space. They are therefore well suited to problemsinvolving parameter optimization. Most of the applications of genetic algorithms toimage segmentation involve the optimisation of various parameters[44][11][42][40].

Bhanu et al[11] pose image segmentation as an optimisation problem. They de-fine a general segmentation method, whereby genetic algorithms are applied to theparameters of various well known image segmentation methods. They advocate theuse of genetic algorithms to adapting the parameters of knows segmentation meth-ods in order to be applicable to general images. They used outdoor colour imageryand adapted 4 parameters of the Phoenix segmentation algorithm with genetic al-gorithms. They had successful results, producing high quality image segmentationwith a reasonable amount of computation. Even though they perform well on out-door scenes, these algorithms have not been proved to be able to cope with generalimages. The fact that these algorithms can be modified to adapt the parameters ofother segmentation methods makes this method very promising.

Feitosa et al[22] adopt a very similar approach and use genetic algorithms to modifythe parameters of a region merging segmentation algorithm. They use a fitnessfunction that measures the similarity of resulting segments to a target segmentationprovided by a user. Though computation is straight forward and intuitive, manualsegmentation is still necessary beforehand. This method can easily be adapted tomodify parameters of other segmentation methods.

Zingaretti el al[52] propose using genetic algorithms in unsupervised colour imagesegmentation. This is another case of parameters of an existing image segmentationmethod being tuned by genetic algorithms. A key difference in this method isthat it performs multi-pass thresholding. Different thresholds are adapted duringeach pass of genetic algorithms. An important advantage of this method over theprevious one is that segmentation is performed totally unsupervised, without anymanual segmentation. It also doesn’t rely on any prior information regarding thetype of image that is being processed or the task for which the segmentation resultswill be used. This approach successfully segmented a wide variety of images, with

10

Page 16: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

the exception of images that were highly textured.

Pignalberi et al[39] use genetic algorithms for the optimisation of parameters in animage segmentation algorithm. In this case, they focused on range images, where apixel is coloured depending on the distance between the object and a sensor. Thismethod segments out surfaces of 3D objects, but could be applied to segmentationof 2D images.

Pixel-Level Segmentation

In pixel-level segmentation, genetic algorithms are used for region labelling. A pixelis classed in a particular region depending on its characteristics[21]. Peng el al[38]take this approach. Each pixel in the image is represented by a chromosome, whichis a region label.

Ramos and Muge[40] reformulate image segmentation as a clustering problem anduse genetic algorithms to find the optimal clusters. The chromosomes encode whichpixels are members of which regions. The major disadvantage of this method is thatthe number of clusters must be given as an input, and so can’t be an unsupervised,general approach. Chun and Yang[16] take a similar approach, but use a fuzzyfitness function.

Modified Genetic Algorithms

Gong and Yang[25] represent the image and the segmentation results by quadtrees.In a similar way to Zingaretti el al[52], they define a two pass system, geneticalgorithms being used for optimization in both passes. In the first pass, geneticalgorithms are used to minimise an energy function. In the optional second pass,a parameter defining how coarse or fine the segmentation is modified by geneticalgorithms to obtain optimal segmentation results. The chromosomes encode thequadtrees, making it inefficient to apply the usual crossover and mutation operations.To cope with this, a new crossover method and three mutation methods are defined.

Aoyagi and Tsuji[7] use modified genetic algorithms for pixel-level segmentation.They approach image segmentation as a feature clustering problem and like Gongand Yang[25] use an energy function as a fitness function. They found it difficult toget ideal segmentation using traditional genetic algorithms, and so introduced fourspecial types of mutation. They also propose a new method for creating individualsof the population.

Hybrid Genetic Algorithms

Grenfenstette[26] mentions that genetic algorithms can be combined with localsearch techniques, creating a high performance search algorithm. The following

11

Page 17: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

are examples of successful implementation of hybrid genetic algorithms for imagesegmentation.

Genetic algorithms have been combined with other evolutionary methods to tacklethe image segmentation problem. Bhandarkar and Zhang[9] combine genetic algo-rithms with simulated annealing based techniques - which mimic the physical pro-cess of cooling - to approach the problem of grey-scale image segmentation. Theydo this is an attempt to get rid of the weaknesses of each class. This resulted inbetter performance than traditional genetic algorithms. Zhijun et al[51] combinedgenetic algorithms and simulated annealing to evolve a neural network, resulting inless computation than if genetic algorithms were used on there own. Melkemi etal[35] combine genetic algorithms with extremal optimization to perform pixel-levelsegmentation.

2.4.2 Fitness Function

As mentioned previously, the choice of an appropriate fitness function is very im-portant. It is the fitness function that is largely responsible for the quality of theimage segmentation obtained. The fitness function is what the algorithm "aims" tooptimise. When dealing with image segmentation, one needs a fitness function thatindicates how well the image has been segmented.

Feitosa et al [22] calculate fitness by quantifying the difference between the segmen-tation obtained using the individual’s parameters and a target segmentation. Thetarget segmentation is obtained by manual segmentation, making this a discrepancymethod of evaluation. This works fine for experimental purposes - it shows thatgenetic algorithms can be used to improve the quality of segmentation. However,this fitness function makes the segmentation program of little practical use. If oneneeds to segment the image beforehand, no benefit is obtained from the program.Many other implementations also used discrepancy methods for calculating fitness,including [29][39]. These methods aren’t relevant for use as a fitness function in thisimplementation, as we need an unsupervised method of image segmentation.

Instead of using comparing the segmentation to a target segmentation, Zingarettiel al[52] compare it to an edge map obtained by applying a Roberts’ edge operatorto the image. This makes the application more useful, but using an edge map as"perfect" segmentation means that their program tries to obtain this segmentation.It doesn’t seem that segmentation better than that obtained with the edge operatorcan be obtained, and using an edge filter is much more efficient.

As discussed previously, good image segmentation meets certain requirements:[33][9][10][27]

1. Every pixel in the image belongs to a region

12

Page 18: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

2. A region is connected: any two pixels in a particular region can be connectedby a line that doesn’t leave the region

3. Each region is homogeneous with respect to a chosen characteristic. The char-acteristic could be syntactic (for example, colour, intensity or texture) or basedon semantic interpretation

4. Adjacent regions can’t be merged into a single homogeneous region

5. No regions overlap

One needs a fitness function that quantifies the quality of segmentation and itwould be ideal if a fitness function could evaluate the segmentation based on theabove segmentation requirements.

2.5 Conclusion

The use of genetic algorithms in image segmentation shows promising results. Ge-netic algorithms are a commonly used approach to optimising the parameters ofexisting image segmentation algorithms The major decisions are choosing a methodof segmentation to which genetic algorithms will be applied, finding a fitness func-tion that is a good measure of the quality of image segmentation and finding ameaningful way to represent the chromosomes.

13

Page 19: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 3

System Design and Implementation

This system is composed of two modules:

1. Region Merging Module

2. Genetic Algorithm Module

The Region Merging Module performs a region merging method of image segmen-tation on the input image. The Genetic Algorithm Module optimises the regionmerging parameters. varies the region merging parameters, in an attempt to im-prove the segmentation.

The Region Merging Module can be totally independent of the Genetic AlgorithmModule, with the parameters being set manually rather than letting them be alteredby the genetic algorithm. The Genetic Algorithm Module only calls the RegionMerging Module to calculate the fitness value. The interaction between the modulesis shown below in Figure 3.1:

The Region Merging Module receives and stores the input image. Whenever theGenetic Algorithm Module requires a fitness value, it sends the segmentation pa-rameters that it is currently working with to the Region Merging Module, requestinga fitness value. The Region Merging Module uses these parameters, segments theimage, evaluates the fitness and sends the fitness value to the Genetic AlgorithmModule. This process is repeated until the genetic algorithm terminates. The Ge-netic Algorithm Module then sends the parameters that corresponded to the bestfitness value to the Region Merging Module. The Region Merging Modules usesthese parameters to segment the image and outputs the results of this segmenta-tion.

These modules are loosely coupled, with the region merging module being able tobe replaced with a different segmentation method that needs its parameters tuned.The fitness function can also be easily replace with different fitness function. This

14

Page 20: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Region Merging Module

Genetic Algorithm Module

Input Image

Output Result

Send Parameters(Request Fitness)

Return Fitness

Final Parameters

Figure 3.1: Module Interaction

allows the system to be more adaptable when experimenting with the use of geneticalgorithms for image segmentation.

This system was implemented in C++, using Microsoft Visual Studio 2005. Imagehandling was done using the CImg Library[46], which is an open source C++ toolkitfor image processing. This library is very easy to set up, is well documented andeasy to use. It also offers much useful functionality for image processing.

A genetic algorithm library, GALib[1] was used for the implementation of theGenetic Algorithm Module. It is well-documented, is very easy to use and offersmany different options for customising and configuring your genetic algorithm.

This implementation uses genetic algorithms modify the parameters of a regionmerging algorithm. This particular region merging method was designed by Baatzand Schape[8]. Feitosa et al [22] used genetic algorithms to modify the parameters ofthis algorithm in order to optimise the segmentation obtained. This implementationfollows Feitosa et al ’s ideas, except uses a different fitness function. The problemwith the fitness function used by them is that it relies on manual segmentation asmeasure of good segmentation, which makes the segmentation method only usefulto prove that a genetic algorithm can be used to improve segmentation. This meansthat their implementation isn’t useful as a segmentation application.

The article[22] didn’t mention key implementation details, leaving implementationopen to interpretation.

15

Page 21: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

3.1 Region Merging Image Segmentation

The idea behind region merging[8][22] is to divide the image up into many smallregions. Adjacent regions can be merged together, based on whether certain criteriaare met. This continues until no regions meet the merging criteria.

This particular method of region merging looks at the heterogeneity of the variousregions in the image when deciding whether or not regions will be merged. Thegoal of the merging procedure is to minimise the weighted heterogeneity. There aretwo main classes of heterogeneity: spectral heterogeneity and spatial heterogeneity.The spectral heterogeneity measures how varied the colour within the region is.The spatial heterogeneity measures the deviation of the region from a compact,smooth shape. This is separated into compactness and smoothness components.Compactness looks at the ratio of the perimeter to the square root of the area,while smoothness looks at the ratio of the perimeter to the length of a boundingbox of the region, parallel to the image borders.

Initially, each pixel is initialised as a region. Regions are then visited in turn,to decide whether that region will merge with another region. The order in whichregions are visited is discussed later.

When considering whether a region is going to be merged, each of the regions ad-jacent to the region are considered. A fusion factor between the region and eachparticular adjacent region is calculated. The fusion factor takes into account thevarious heterogeneity components:

Fusionfactor = wcolour ∗ hcolour + (1− wcolour) ∗ hshape

where:

hcolour is the spectral heterogeneity componenthshape is the spatial heterogeneity componentwcolour is the weight given to the spectral heterogeneity component, which gives itsrelative importance in comparison to the spatial heterogeneity component

A colour heterogeneity of each of the colour channels (red, green and blue) is calcu-lated separately, and added to get the spectral heterogeneity component (modifiedfrom the version presented in the paper):

hcolour = Σcwc(nObj3 ∗ σcObj3 − nObj1 ∗ σcObj1 − nObj2 ∗ σcObj2)

where:

Obj1 is the region selected for mergingObj2 is the region adjacent to Obj1Obj3 is the result of merging Obj1 and Obj2

16

Page 22: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

c is the particular colour channel being consideredσc is the standard deviation of the pixels in the colour channel c 1

The spatial heterogeneity component is a combination of compactness and smooth-ness components:

hshape = wcompact ∗ hcompact + (1− wcompact ∗ hsmooth)

where:

wcompact is the weight given to the compactness component relative to the smooth-ness componenthcompact is the compactness componenthsmooth is the smoothness component

The formula for the compactness component is:

hcompact = nObj3 ∗ lObj3√nObj3

− (nObj1 ∗ lObj1√nObj1

+ nObj2 ∗ lObj2√nObj2

)

where: l is the perimeter of the region

The formula for the smoothness component is:

hsmooth = nObj3 ∗ lObj3

bObj3− (nObj1 ∗ lObj1

bObj1+ nObj2 ∗ lObj2

bObj2)

where: b is the perimeter of the region’s bounding box

Once the fusion factor for each adjacent region has been calculated, the region withthe minimum fusion factor is considered. If its fusion factor is less than a certainthreshold, then that adjacent region will be merged to the region being initiallyconsidered. The threshold value used here to the square of a scale parameter. Thisis known as a scale parameter, as adjusting this will result in differences in theresulting region size. The larger the scale parameter, the more merges that willhappen, resulting in larger regions.

This process is then repeated, with another region being selected and the fusionfactor between it and its neighbouring regions being calculated. This process isrepeated until no more regions can be merged.

Baatz[8] mentions that one of the problems with their method of region mergingis that the order in which regions are visited in an attempt to merge them makesa difference in the segmentation results. They recommend that when choosing asequence of starting regions that sequential merges should be distributed as farfrom each other as possible.

1In this case, σ =√

1N−1ΣN

i=1x2i − xbar2 =

√1

N−1ΣNi=1(xi − x̄)2 where N is the number of

pixels, xi is the pixel value and x̄ is the average value of the pixels

17

Page 23: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

They mention that an approximate solution is to handle each region in a randomsequence, but this isn’t optimal. They didn’t give details of the method they actuallyused.

We tried to select random regions and process them, but found that processingregions in order2 was more successful. This also provides a deterministic result,which makes it easier for a genetic algorithm to work out. If the fitness generated bythe segmentation algorithm isn’t deterministic, it is difficult for the genetic algorithmto optimise it.

3.1.1 Region Merging Module

The system only depends on theCImg[46] class, with its accompanies cimg_librarynamespace, as well as standard C++ templates and functions.

We make broad use of the Standard Template Library (STL) to create containersfor the point, edge and region data structures. In each case, we use the containerthat minimises the segmentation algorithm’s running time.

The system is composed of:

1. class Region

2. class RegionList

3. struct Point

Their interactions can be seen in the UML diagram, shown below in Figure 3.2.

RegionList and Region are the two main classes, with Point being just a simplestruct. Along with this, various typedefs were defined:

typedef unsigned long int Labeltypedef std::map < Label, Region∗ > RMaptypedef cimg_library::CImg < Label > RImagetypedef cimg_library::CImg < Label > Imagetypedef std::multimap < Label, Region∗ > EdgeMaptypedef std::pair < Label, Region∗ > EdgePairtypedef std::list < Point∗ > PointList

2Initially, the pixels are given region labels left to right, top to bottom. Region ordering is anordering of these regions, with regions that no longer exist being ignored

18

Page 24: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

RegionList( );~RegionList();

getSize ();mergeAll ();mergeRandom ();saveResults();saveRegionMap();addRegion ();getRegion ();removeRegion ();getFusionFactor ();getHCompact ();getHSmooth ();getHColour ();getHShape ();tryMerge ( );coordToLabel ();

RImage rimage;Image image;RMap* regions;unsigned int imageWidth;unsigned int imageHeight;float wRed; float wGreen; float wBlue; float wColour; float scale;float wCompact;

RegionList

...

...std::list

...

...std::multimap

Region();~Region();

void addEdge ();unsigned int getArea ();Label getLabel ();float getAverageR ();float getAverageG ();float getAverageB ();unsigned int getPerimeter ();

unsigned int getPerimeterCombined ();unsigned int getPerimeterBB ();unsigned int getPerimeterBBCombined ();float getStdDev ();float getStdDevCombined (); void splice ( );EdgeMap* getEdges ();PointList* getPixels ();void removeAllEdgesTo ( );void changeAllEdgesTo ( );

RImage* rimage;Image* image;PointList* pixels;EdgeMap* edges;Label label;unsigned int maxX;unsigned int maxY;unsigned int minX;unsigned int minY;Label sumR;Label sumG;Label sumB;float averageR;float averageG;float averageB;unsigned int area;unsigned int perimeter;

Region

...

...std::map

...

...

cimg_library::cimg

Point( int a, int b)

int xint y

Point

Figure 3.2: UML Diagram

19

Page 25: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Region Merging Module

Genetic Algorithm Module

Input Image

Output Result

Send Parameters(Request Fitness)

Return Fitness

Final Parameters

Figure 3.3: Module Interaction

RegionList Class

The RegionList class represents the collection of all the regions in the segmentedor partially segmented image. The structure of the class is shown in Figure 3.4.

The main components of this class are:

1. RImage rimage

2. Image image

3. RMap* regions

The Image object, represents the original image, represented in RGB colour space.Image is a type of CImg object and allows access to the red, green and blue compo-nents of each pixel. The RImage object (region map) is also a type of CImg imageobject, with the same dimensions as the original image.

The segmentation algorithm working on a collection of regions must often selectand adjust a specific region. In this case, the STL map data structure is the naturalchoice (RMap). As a container, a map has the advantage of a logarithmic sizecomplexity for key-based insertions, deletions, and searching. To allow keyed accessto our collection of regions, we assign a unique integer (Label) to each region basedon its initial position in the starting image. Subsequently, when merging two regions,the target region will keeps its key and adjusts all neighbouring regions to reflectthis change. In this way, all possible changes to the region collection, like adding,removing, or altering region contents, and searching for a region, run in logarithmiccomplexity in the size of collection.

20

Page 26: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

RegionList( const char* filename, float r, float g, float b, float col, float s, float com );~RegionList();

int getSize ();void mergeAll ();bool mergeRandom ();void saveResults( const char* filename );void saveRegionMap( const char* filename );void addRegion ( const Label& label, const Point& p );Region* getRegion ( const Label& label );void removeRegion ( const Label& label );float getFusionFactor ( Region* region1, Region* region2 );float getHCompact ( Region* region1, Region* region2 );float getHSmooth ( Region* region1, Region* region2 );float getHColour ( Region* region1, Region* region2 );float getHShape ( float hCompact, float hSmooth );bool tryMerge ( Region* r );Label coordToLabel( unsigned int x, unsigned int y );

RImage rimage;Image image;RMap* regions;unsigned int imageWidth;unsigned int imageHeight;float wRed; float wGreen; float wBlue; float wColour; float scale;float wCompact;

RegionList

Figure 3.4: RegionList Class

21

Page 27: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Region( Label lbl, const Point& p, RImage* regionImage, Image* originalImage );~Region();

void addEdge ( Label lbl, Region* otherRegion );unsigned int getArea ();Label getLabel ();float getAverageR ();float getAverageG ();float getAverageB ();unsigned int getPerimeter ();unsigned int getPerimeterCombined ( const Region* otherRegion );unsigned int getPerimeterBB ();unsigned int getPerimeterBBCombined ( const Region* otherRegion );float getStdDev ( unsigned int channel );float getStdDevCombined ( const Region* otherRegion, unsigned int channel ); void splice ( Region* otherRegion );EdgeMap* getEdges ();PointList* getPixels ();void removeAllEdgesTo ( Label lbl );void changeAllEdgesTo ( Label lblOldRegion, Region* newRegion );

RImage* rimage;Image* image;PointList* pixels;EdgeMap* edges;Label label;unsigned int maxX;unsigned int maxY;unsigned int minX;unsigned int minY;Label sumR;Label sumG;Label sumB;float averageR;float averageG;float averageB;unsigned int area;unsigned int perimeter;

Region

Figure 3.5: Region Class

The image height and width are stored, as they are accessed very frequently andtheir storage prevents numerous function calls to the Image and RImage objects. Allthe other attributes are segmentation parameters and are passed in as arguments tothe constructor. These are either set manually or are set by the genetic algorithm.

Region Class

The Region class represents a region in a segmented or partially segmented image.The structure of the class is shown in Figure 3.5.

The main components of the Region class are:

1. PointList* pixels

22

Page 28: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

2. EdgeMap* edges

3. Label label

Pixels represent the pixels making up the image. They are Points, stored as a list(PointList). A list was used because insertion by pushing on to the front of thelist runs in constant time. Deletion of pixels only occurs when all the pixels in theregion are deleted3 are deleted, so at each pixel delete takes constant time. (Deletionruns in linear time if the algorithm wasn’t already iterating through the list.)

Edges are stored as a multimap (EdgeMap). A boundary pixel in a region canpoint to one or more other regions. However, edges are stored separately from pixels,since actual pixel positions are unimportant when using edges to check connectivity.Insertion and find are both logarithmic time operations on a multimap. Whenerasing, all the elements with the same key are deleted. This is an logarithmic timeoperation, plus linear time is required for deleting n equal elements.

Regions are assigned unique integer values (Label) based on their initial positionsin the image.

Pointers to both the original image and the region map are included as this classneeds access to them. All the other attributes are stored, and updated every timethe region is altered. These values are needed for the fusion factor calculation. Itis worth using a little extra memory to store these values and save the numerouscomputations that would be required otherwise.

3.2 Genetic Algorithm Module

The Genetic Algorithm Module is a simple module, with much of the functionalitybeing provided by the GALib library[1]. Its basic behaviour and interaction withthe Region Merging Module is shown in Figure 3.6.

The genetic algorithm is represented by a GASimpleGA object, provided by GALib.This class is used for genetic algorithms with non-overlapping populations, and in-herits from the general GAGeneticAlgorithm class.

3.2.1 Chromosome Structure

Each chromosome is represented by a GABin2DecGenome object (again providedby GALib) and inherits from the general GAGenome class. This type of genomestores its genes in binary, but converts them into decimal values to be used in thefitness calculation.

3Regions are only every merged or destroyed

23

Page 29: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Region Merging Module

InitializePopulation

Mutate Offspring

Insert Offspringinto Population

Are stoppingcriteria satisfied

Select Indiviualsfor Mating

Select Indiviualsfor Mating

Mate individulalto produce offspring

Genetic Algorithm Module

request fitnes

return fitness

Figure 3.6: Genetic Algorithm Module

24

Page 30: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

0.1 410wBlue 0-10-1 40.1 10wGreen0-1 4wRed 0.1 10

7

No. ofBits107

1000

100

No. of Values

1000.010.01

0.1Precision

0-100Range

0-10-1

wColourscale

wCompact

Figure 3.7: Parameter Details

In the Genetic Algorithm Module, a chromosome represents the various segmenta-tion parameters of the region merging algorithm. These are:

1. Scale parameter

2. Weight given to the spectral heterogeneity

3. Weight given to the compactness component relative to the smoothness com-ponent

4. Weight of the red channel

5. Weight of the green channel

6. Weight of the blue channel

Each of these is encoded in binary, as a separate gene. The scale parameter canvary from 0 to 100, while all the other parameters are vary from 0 to 1. The scaleparameter and the weight of the various colour bands each have a precision of 0.1,while spectral and compactness weights have a precision of 0.01. All the weightparameters are encoded as positive integers, with the maximum value of 1 dividedby the particular precision factor (0.01 0r 0.1). To access the actual fractionalvalues of the weights, one converts the parameter from binary to decimal and thenmultiplies it by the precision factor.

To encode each gene in binary, one looks at the number of possible values thatparameter can take on. For example, the scale parameter can take on (100∗10)+1 =

1001 different values. The binary representation of that gene therefore has to beable to encode 1001 different values. 1001 is then encoded using the same numberof bits that would be used to encoded the smallest power of 2 greater than 1001.This is 1024 = 210, and so log21024 = 10 bits is used to encode this.

As can be see from figure, there are about 1000∗100∗100∗10∗10∗10 = 1010 differentparameter combinations! It would be infeasible to try each of these combinations tofind the ideal combination of them, indicating the use of a genetic algorithm.

The only other complication is that the sum of the weights of the colour bandsneeds to add up to 1, so their values are normalised. To get the normalised value

25

Page 31: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Scale wColour wCompact wRed wGreen wBlue

10 bits 7 bits 7 bits 4 bits 4 bits 4 bits

Figure 3.8: Chromosome Structure

of of band i, one takes the weight of band i and divides it by the sum of all threeband weights.

3.2.2 Reproduction

In this implementation, one point crossover is used. In one point crossover, a randomposition on the chromosome is select and the two individuals exchange the geneson one side of that point. The mutation used is flip mutation, which is the typicalmutation operation used on binary strings: bits in the chromosome are flipped witha given probability.

Elitism is used, with the best individual in each generation being carried over tothe next generation.

3.2.3 Selection and Termination

Roulette wheel selection is used to select individuals to take part in reproduction. Inroulette wheel selection, an individual’s probability of taking part in reproductionis proportional to their fitness. In this case, the fitness values are normalised: inthis fitness evaluation (see the following section later), a low fitness corresponds to agood quality segmentation. The fitness values values are adjusted so that individualswith low fitness value end up with a high adjusted fitness, which corresponds to ahigh probability of taking place in reproduction.

Termination takes place when the maximum number of generations is reached.This was chosen to be the termination criterion because then one can be sure thatthe genetic algorithm will terminate. On the other hand, if convergence was usedas the termination criterion, it could continue for very many generations with thepopulation never converging. Also, because of the large amount of computationrequired for each fitness computation - an image has to be both segmented andevaluated - one wants to make sure not too many generations are evolved. Theimage segmentation parameters don’t have to be exact to get a good segmentationresult, so it isn’t worth waiting for the population to converge.

26

Page 32: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

3.2.4 Fitness Function

As mentioned previously, one would like a fitness function that evaluates the follow-ing requirements of good image segmentation:

1. Every pixel in the image belongs to a region

2. A region is connected

3. Each region is homogeneous

4. Adjacent regions can’t be merged into a single homogeneous region

5. No regions overlap

Requirements 1, 2 and 5 are always obtained when using this region merging tech-nique, therefore the important characteristics to quantify is that each region is ho-mogeneous and that adjacent regions can’t be merged into one homogeneous region.

Various different fitness function were. Liu[31] proposed goodness method to beused for the quantitative evaluation of the performance of image segmentation, whichcould be used as a fitness measure. The evaluation function F on segmented imageI is defined as:

F (I) = 11000N2

√RΣR

i=1e2i√Ai

where: N2 is the size of the image R is the total number of regions Ai is the areaof region i ei is the colour error, Euclidean distances in colour space between thevalues of the pixels in region i in the original image and the values of the pixels inthe segmented image, defined as:

ei = ΣAij=1

√(C1j

R − C2jR)2 + (C1j

G − C2jG)2 + (C1j

B − C2jB)2

where: R, G and B are the colour channels C1j is the colour of pixel j in theoriginal image C2j is the assigned colour of the same pixel in the segmented image

Lower values of F (I) correspond to better segmentation. F evaluates the resultsboth locally and globally.

√R is global measure and penalises over-segmentation.

The e2i√Ai

portion is a local measure which penalises small regions or regions with alarge colour error.

Borsotti et al [13] propose an improvement, which was implemented:

Q(I) = 11000N2

√RΣR

i=1[e2i

1+logAi+ (R(Ai)

Ai)2]

27

Page 33: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

We propose an alternative fitness function4, aiming to minimise weighted colourheterogeneity. The colour heterogeneity is based on Feitosa’s[22] concept.

E(I) = ((ΣRi=1Hi) + 1) ∗R

where:

E(I) is the fitness evaluation of segmented image I

R is the number of regions in the image

Hi is the colour heterogeneity of the i’th region:

Hi = Ai ∗ (σR + σG + σB)

where: Ai is the area of region i

σj is the standard deviation of colour channel j

Hi is the weighted colour heterogeneity of region i. It is weighted by the size of theregion so that larger regions contribute more to the overall heterogeneity. The colourheterogeneity of all the regions are added together to get the total heterogeneity ofthe image. 1 is added to this as when each region has area of 1, the standarddeviation of that image is zero. When the regions are initialised, they are havean area of 1 pixel, and so would each have a standard deviation of zero. If the 1

wasn’t added, the fitness of the initial segmentation would be 0, meaning its theideal segmentation, which of course isn’t the case.

The sum of the colour heterogeneities as multiplied by R to penalise small regions.This is done because smaller regions tend to have a smaller standard deviation, forexample a single pixel has a standard deviation of 1.

When evaluating this method against the segmentation requirements, one can seethat it is a good measure of the fact that each region is homogeneous. The factthat adjacent regions can’t be merged isn’t evaluated directly in this measure, butmultiplying by the number of regions indirectly evaluates this: if two adjacent regionsare very similar and are merged, their combined standard deviation doesn’t increasemuch (ie Ai ∗ σi + Aj ∗ σj) is not much greater than (Ai + Aj) ∗ (σi + σj)), thetotal colour heterogeneity is multiplied by 1 less5. This results in a lower fitnessvalue. This indirectly implies that if fitness is at a minimum, adjacent regions can’tbe merged into a homogeneous regions, otherwise the fitness value would decrease -which is not possible if the fitness value is the minimum one.

4Once again, a low fitness value corresponds to good segmentation5Because the number of regions decreases

28

Page 34: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 4

Experimental Design

The main areas that need to be tested are:

1. Evaluation of region merging image segmentation

2. Segmentation improvement provided by genetic algorithms

3. Improvement of genetic algorithm by altering genetic algorithm parameters

4.1 Evaluation of Region Merging Image Segmen-

tation

Various images from the Berkeley Image Dataset[34] will be chosen to be segmented.These represent a wide range of images, from those that are easy to segment tothose that are much more difficult to segment, such as a camouflaged animal. Theseresults will be evaluated subjectively. For example, it can be seen whether or not acamouflaged animal is segmented out.

Dorin Comaniciu[17] has images on his website with the corresponding successfullysegmented images. These segmented images will be used as ground truths whenevaluating our system. It would have been better if images manually segmentedby humans were used as the ground truth, as they represent "ideal" segmentation.However, no manually segmented images in the correct format were found. Theregion merging algorithm will be run on each of the images to produce the resultingsegmented images. One needs to find an objective way of evaluating the performanceof this segmentation in comparison to the ground truth images.

This evaluation will be done using ImageMagick’s[32] compare function, using theMSE (mean squared error) option. The difference between the values of each pixel ofthe ground truth segmentation and the corresponding pixel in the segmented imagethat is being evaluated. This value is then squared, to get rid of negative values

29

Page 35: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

and penalise more heavily where the pixel value difference is large. These values arethen summed over the whole image to get the MSE. The root of this is taken to get, the RMSE (root mean squared error). This value is then divided by the numberof pixels in the image to obtain the normalised RMSE, an evaluation measure thatis size independent.

This same procedure will be repeated with the region growing and watershed al-gorithms implemented by Marco Gallotta. The results of all three of these imagesegmentation algorithms will be compared.

4.2 Effect of Genetic Algorithm on Segmentation

Quality

4.2.1 Hypothesis

The use of the genetic algorithm will improve the quality of the image segmentation.

4.2.2 Method

Each image to be evaluated will be segmented using the region merging algorithm.The segmentation parameters will be tweaked to attempt to obtain the best results.The best results will be evaluated using a normalised RMSE, as discussed above,and recorded. Due to the fact that the results from genetic algorithms aren’t deter-ministic, the images will be segmented five number times1 by the genetic algorithmversion. Each run will be evaluated and the average score for each image recorded.The average score for each algorithm type will calculated and the results will becompared.

The population size used in the genetic algorithm should be made as large ascomputation time allows. The other genetic algorithm parameters should be tweakedto try and obtain the best possible results. Note of the values used should be made,so that the experiment can be repeated2.

15 was an arbitrary choice. The more times the segmentation is run, the more accurate theresults, so it should be repeated as many times as is feasible

2It may be preferable to perform the next part of the experimentation first, examining the effectof modifying the parameters of the genetic algorithm, to determine the optimal parameters

30

Page 36: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

4.3 Modification of Genetic Algorithm Parameters

4.3.1 Purpose

The main purpose of this section of the experimentation is to see what effect changingthe genetic algorithm parameters and other factors - such as reproduction operatorsand termination criteria - will have on the quality of the segmentation results. Thisknowledge can then be used to find the optimal settings for the genetic algorithm.

4.3.2 Method

Various settings can be modified, such as:

1. Population size

2. Chance of mutation taking place

3. Termination criteria

4. Number of individuals passing unchanged to the next generation

5. Crossover operators used

6. Mutation operators used

7. Selection method

8. Whether elitism is used and how many individuals are passed unchanged tothe next generation

The setting to be examined is chosen. If it is a numerical value, it will be testedat equally spaced intervals throughout its range or part of its range, otherwise thevarious options are tried. It is very important that only one of these factors ischanged at a time, so that one knows what is causing the change in the segmentationquality (if any change).

The segmentation will be performed 53 times will each option or value, and the....measure calculated. The average of these values will be taken as the result at thatparticular value or option. If the parameter being set is numerical, the results willbe graphed and analysed, if not the various options will be compared. Conclusionswill be made about what options produce the best segmentation results.

3again an arbitrary choice

31

Page 37: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 5

Results

5.1 Region Merging

The segmentation program outputs two result images. The first is the segmentedimage, with each region being shown in the average colour of all its pixels. Thesecond is the region map, where each region is given a different value, and thereforea different shade in the image. This is done to make the distinction between regionsclearer. If two adjacent regions have the same or very similar average values, thefact that they weren’t merged (and probably should have been) wouldn’t show upin the segmented image. An example of the results are shown in Figure 5.1.

The results of the comparison of the region merging implementation with the regiongrowing and watershed algorithms is shown in Figure 5.2.

As can by seen, this implementation had rather average results. The watershedmethod performed the best, and ran much faster than either of the other algorithms.

5.2 Genetic Algorithm

Two different fitness functions were implemented. Q(I), as defined previously, couldbe subjectively seen to perform badly, appearing to produce worse segmentationresults than the original region merging algorithm. No further evaluation using thisfitness function was performed.

E(I) subjectively seemed to perform better than the original region merging algo-rithm. To confirm or refute this, further evaluation was performed. This evaluationwas objective, being deterministic and calculated by the computer.

The results obtained are shown below in Figure 5.3:

As can be seen, the genetic algorithm only showed an improvement over the originalregion merging implementation for one of the images. Reasons for this could include

32

Page 38: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

(a)

(b)

(c)

Figure 5.1: Image Segmentation Example(a) Original Image

(b) Segmented Image(c) Image Map

33

Page 39: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Hand

4959

Woman5597

House3095

Region Growing 3558

5076 3324.654296

3699

Region Merging

Watershed

4622

Figure 5.2: Comparison of Segmentation Methods using RMSE

4959Woman

49385172

5437

6575

5067

5437

3324Hand

GA avg 4947

36133435

GA5

House

4655

3472

GA3

GA1GA2

3490Non GA

4852 3414

5195 3408

GA447875249

5076

Figure 5.3: This table shows the comparison of the RMSE values using geneticalgorithms vs. traditional algorithms

a poorly chosen fitness function, using a population size that is too small to offerenough variation for the individuals to evolve or not running the genetic algorithmfor enough generations for the population to evolve sufficiently.

It may seem totally infeasible to find the ideal parameter combination for theregion merging algorithm. However, the fact that there are 1010, different parametercombinations is deceptive. From experimenting with varying the parameters, itwas found1 that the only parameter that made a significant different was the scaleparameter. Even the scale parameter only had any great effect on the segmentationwhen altered by a large amount. A feasible solution would be to give each colourchannel an equal weighting, setting wRed, wGreen and wBlue all to 0.33; lettingcompactness and smoothness have the same influence, setting wCompact to 0.5.The effect of changing the scale parameter is shown below in Figure 5.4.

The effect of changing the scale parameter by 10 isn’t that great. Suppose, to beon the safe side, we allow the scale parameter to vary by increments of 5. Thismeans that there are only 20 different combinations of parameters to try - whichshould be slightly faster than running 2 generations of a genetic algorithm with apopulation size of 10.

With a bit of prior knowledge, one doesn’t even have to try all of this limited rangeof scale factor. If the various objects in the image appear distinct (such as the flowersshown below), one can set the scale parameter high. This high scale parameter willmean that more region merging occurs. This means that small colour variations,such as shadows or reflections, within an object hopefully won’t be recognised asseparate objects, while the separate objects are distinct enough from each other notto be merged together. However, if one is looking to distinguish objects of similar

1These are just general observations, and haven’t been formally tested

34

Page 40: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

(a)

(b)

(c)

Figure 5.4: The Effect of Scale Parameter on Segmentation Results(a) Original Image

(b) Scale parameter 30(c) Scale parameter 70

35

Page 41: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

colour, such as the camouflaged crocodile, one needs to set the scale parametermuch lower. The negative aspect of doing this, however, is that it means that thesegmentation isn’t unsupervised and does require user interaction.

A major problem in using this region merging- genetic algorithm system is thatit is very slow to run. When processing a 481 by 321 pixel image, using a geneticalgorithm with a population size of 10 and running 20 generations, the take taken isabout an hour2. This makes getting results a rather tedious process, especially sincebecause of the random nature of genetic algorithms, one needs to take the averageperformance over a few trials when evaluating the performance of the segmentation.Marco Gallotta came up with a solution to this problem and ran this algorithm ona grid.

5.2.1 Conclusion

It can be concluded that we are unable to reject the hypothesis that the use ofa genetic algorithm would improve the quality of the image segmentation. Thegenetic algorithm could provide an improvement in segmentation quality, thoughthis hasn’t been shown. Because of the time taken to run the genetic algorithm, it’sfull potential hasn’t been explored.

Although there is a chance it could offer an improvement in segmentation quality,the major drawback is that running the genetic algorithm is extremely slow. Thiscan be improved by running it on a grid, but not many people have access to a grid,and so in most cases this isn’t a feasible solution. Other options would be to limitthe range through which the parameters are allowed two vary or to provide a totallydifferent underlying image segmentation algorithm. An example of an algorithm thatcould be used would by the watershed segmentation algorithm. In the experimentsdone with Marco Gallotta’s implementation of this algorithm, it was found to runfar quicker than either the region growing or region merging methods.

5.3 Alteration of Genetic Algorithm Parameters

It was not feasible to run these experiments due to the extremely long executiontime of the region merging segmentation with the genetic algorithm3. Not only doesone have to wait a long time to get results for the performance of various parametersettings, but it makes it totally infeasible to increase the maximum number of gener-ations or increase the population size. This is unfortunate, as one predicts that thesegmentation performance would increase the as the number of generations increase

2Running on a laptop with a Core Duo 1.8 GHz with 1gig RAM3It takes exactly an hour to run the algorithm for 20 generations, each with ten individuals

36

Page 42: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

(because there is more time to evolve) and also increase with increasing populationsize (a larger population provides larger variation, which makes finding an optimumsolution more likely).

37

Page 43: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 6

Future Work

Improvements on the system could include using different merging criteria (insteadof the fusion factor) or using a different colour space. As mentioned the fitnessfunction is very important to a genetic algorithm. Various fitness functions weresuggested, though only one was experimented with. These fitness functions, aswell as others could be experimented with. A fitness function is just a function,so there is the possibility that genetic programming1 could be used to evolve afitness function. Manually segmented images could be used as ground truths and adiscrepancy measure could be used as a fitness function. If this training set of imagesis a good representation of the type of images that one wishes to segment, this couldbe successful. The evolved fitness function could be used in a program, such as theone implemented in this paper to provide unsupervised image segmentation. Themain challenge of doing this would be to provide suitable terminal and function sets.

1for a description of genetic programming see [28]

38

Page 44: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Chapter 7

Conclusions

We successfully implemented region merging segmentation method. We improvedon this by using a genetic algorithm to modify the segmentation parameters. Inthe process of doing this, we discovered the importance of a well chosen fitnessfunction and a novel fitness function was defined. A major advantage of this fitnessfunction is that it requires no comparison with a manually segmented image. Thishas a major advantage over many other fitness functions requiring such input, thismethod useful to real-world, automated segmentation applications.

The effect of the genetic algorithm on the image segmentation results is inconclu-sive, its major drawback is that it is extremely slow to run. This means that thesmall improvement in segmentation quality probably isn’t worth the extra compu-tation time. A way of getting around this drawback is to run the genetic algorithmon a grid.

A major problem with the development of a general image segmentation methodis that different applications and different users require different results from imagesegmentation. In reality, there is no ideal segmentation and the quality of thesegmentation depends on required use of the output.

39

Page 45: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

Bibliography

[1] Galib: A c++ library of genetic algorithm components. WWW.

[2] P. D. Acton, L. S. Pilowsky, H. F. Kung, and P. J. Ell. Automatic segmenta-tion of dynamic neuroreceptor single-photon emission tomography images usingfuzzy clustering. European Journal of Nuclear Medicine, 26(6):581–590, June1999.

[3] B. Ahrens. Genetic algorithm optimization of superresolution parameters. InProceedings of the 2005 conference on Genetic and evolutionary computation,GECCO, pages 2083–2088, June 2005.

[4] A. Albiol, L. Torres, and E.J. Delp. An unsupervised color image segmentationalgorithm for facedetection applications. In Proceedings of 2001 InternationalConference on Image Processing, volume 2, pages 681–684, October 2001.

[5] M. Alfonseca. Genetic algorithms. In Proceedings of the international conferenceon APL, pages 1–6, 1991.

[6] P. Andrey. Selectionist relaxation: Genetic algorithms applied to image seg-mentation. In Image and Vision Computing, volume 17, pages 175–187, 1999.

[7] M. Aoyagi and K. Tsuji. A modified genetic algorithm for image segmentationbased on feature clustering. In International Symposium on Information Theoryand its Applications, 2004.

[8] M. Baatz and A. Schape. Multiresolution segmentation - an opti-mization approach for high quality multi-scale image segmentation. InStrobl/Blaschke/Griesebner (editors): Angewandte Geographische Infoma-tionsverarbeitung XII, pages 12–23.

[9] S.M. Bhandarkar and H. Zhang. Image segmentation using evolutionary com-putation. In IEEE Transactions on Evolutionary Computation, volume 3, pages1–21, April 1999.

[10] B. Bhanu and S. Lee. Genetic Learning for Adaptive Image Segmentation.Springer, 1994.

40

Page 46: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

[11] B. Bhanu, S. Lee, and J. Ming. Adaptive image segmentation using a geneticalgorithm. In IEEE Transactions on Systems, Man and Cybernetics, volume 25,pages 1543–1567, December 1995.

[12] B. Bhanu and J. Peng. Adaptive integrated image segmentation and objectrecognition. In IEEE Transactions on Systems, Man and Cybernetics, Part C,volume 30, pages 427–441, November 2000.

[13] M. Borsotti, P. Campadelli, and R. Schettini. Quantitative evaluation of colorimage segmentation results. Pattern Recogn. Lett., 19(8):741–747, 1998.

[14] A. Bouman. Ee637 digital image processing i course notes. Purdue UniversitySchool of Electrical and Computer Engineering, Video and Image ProcessingProgram, January 2007.

[15] H. Chen, W. Chien, and S. Wang. Contrast-based color image segmentation.IEEE Signal Processing Letters, 11(7):641–644, July 2004.

[16] D.N. Chun and H.S. Yang. Robust image segmentation using genetic algorithmwith a fuzzy measure. In Pattern Recognition 29(7), pages 1195–1211, 1996.

[17] D. Comaniciu. Color image segmentation results. WWW, 2007.

[18] J. M. Daida, T. F. Bersano-Begey, and J. F. Vesechy. Computer-assisted designof image classification algorithms: Dynamic and static fitness evaluations ina scaffold genetic programming environment. In Genetic Programming 1996:Proceedings of the First Annual Conference, July 1996.

[19] K. S. Deshmukh and G. N. Shinde. An adaptive color image segmentation.Electronic Letters on Computer Vision and Image Analysis, 5(4):12–23, 2005.

[20] G. Dong and M. Xie. Color clustering and learning for image segmentationbased on neural networks. In IEEE Transactions on Neural Networks, vol-ume 16, pages 925–936, July 2005.

[21] M.E. Farmer and D. Shugars. Application of genetic algorithms for wrapper-based image segmentation and classification. In IEEE Congress on EvolutionaryComputation, pages 1300–1307, July 2006.

[22] R.Q. Feitosa, G.A.O.P. Costa, and T.B. Cazes. A genetic approach for theautomatic adaptation of segmentation parameters. In OBIA06, 2006.

[23] S. Forrest. Genetic algorithms. ACM Computing Surveys, 28(1):77–80, March1996.

41

Page 47: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

[24] P. Ghosh and M. Mitchell. Segmentation of medical images using a geneticalgorithm. In GECCO ’06: Proceedings of the 8th annual conference on Geneticand evolutionary computation, pages 1171–1178, New York, NY, USA, 2006.ACM Press.

[25] M. Gong and Y.H. Yang. Genetic-based multiresolution color image segmenta-tion. In Vision Interface 2001, pages 141–148, June 2001.

[26] J.J. Grefenstette. Genetic algorithms and machine learning. In COLT, pages3–4, 1993.

[27] C. Hampton, T. Persons, C. Wyatt, and Y. Zhang. Survey of image segmenta-tion, 1998.

[28] J.R. Koza. Genetic Programming. MIT Press, 1992.

[29] L.F. Tian L. Tang and B.L. Steward. Color image segmentation with geneticalgorithm for in-field weed sensing. Accepted for publication by Informationand Electrical Technologies Division of ASAE.

[30] K.I. Laws. The phoenix image segmentation system: Description and evalua-tion. In SRI AICenter, 1982.

[31] J. Liu. A multiresolution method for distributed parameter estimation. SIAMJournal on Scientific Computing, 14(2):389–405, 1993.

[32] ImageMagick Studio LLC. Imagemagick: Convert, edit, and compose images.WWW, 1999.

[33] L. Lucchese and S. K. Mitra. Color image segmentation: A state-of-the-art sur-vey. In Proceedings of Indian National Science Academy (INSA-A), volume 67,pages 207–221, March 2001.

[34] D. Martin, C. Fowlkes, D. Tal, and J. Malik. A database of human segmentednatural images and its application to evaluating segmentation algorithms andmeasuring ecological statistics. In Proc. 8th Int’l Conf. Computer Vision, vol-ume 2, pages 416–423, July 2001.

[35] K. E. Melkemi, M. Batouche, and S. Foufou. A multiagent system approach forimage segmentation using genetic algorithms and external optimization heuris-tics. Pattern Recongition Letters, 26:1230–1238, 2006.

[36] K. Otobe, K. Tanaka, and M. Hirafuji. Knowledge acquisition on image process-ing based on genetic algorithms. In Proceedings of the IASTED InternationalConference on Signal and Image Processing, October 1998.

42

Page 48: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

[37] S. Ouadfel and M. Batouche. MRF-based image segmentation using ant colonysystem. Electronic Letters on Computer Vision and Image Analysis, 2(2):12–24,2003.

[38] H. Peng, F. Long, Z. Chi, and W. Su. A hierarchical distributed genetic algo-rithm for image segmentation. In Proceedings of the 2000 Congress on Evolu-tionary Computation, volume 1, pages 272–276, 2000.

[39] G. Pignalberi, R. Cucchiara, L. Cinque, and S. Levialdi. Tuning range im-age segmentation by genetic algorithm. EURASIP Journal on Applied SignalProcessing, 8:780–790, 2003.

[40] V. Ramos and F. Muge. Image colour segmentation by genetic algorithms. InProceedings of the 11th Portuguese Conference on Pattern Recognition, May2000.

[41] S. J. Sangwine and R. E. N. Horne. The Colour Image Processing Handbook.Springer, 1998.

[42] W. Skarbek and A. Koschan. Colour image segmentation - a survey, 1994.

[43] I. Stainvas and D. Lowe. A generative model for separating illumination andreflectance from images. Journal of Machine Learning, 4:1499–1519, 2003.

[44] D. L. Swets, B. Punch, and J. Weng. Genetic algorithms for object recognitionin a complex scene. In Proceedings of the 1995 International Conference onImage Processing (ICIP’95), 1995.

[45] S.M. Thede. An introduction to genetic algorithms. In Journal of ComputingSciences in Colleges, volume 20, pages 115–123, October 2004.

[46] David Tschumperlé. C++ template image processing library. WWW, 2000.

[47] W. Vanzella and V. Torre. A versatile segmentation procedure. In IEEE Trans-actions on Systems, Man and Cybernetics, Part B, volume 36, pages 366–378,April 2006.

[48] S. Vitabile, G. Pilato, and F. Sorbello. Road signs recognition using a dynamicpixel aggregation technique in the hsv color space. In Proceedings of the 11thInternation Conference on Image Analysis and Processing (ICIAP’01), 2001.

[49] S. Wesolkowski, S. Tominaga, and R.D. Dony. Shading and highlight invariantcolor image segmentation. SPIE, 4300:229–240, 2001.

[50] Y.J. Zhang. A survey on evaluation methods for image segmentation. In PatternRecognition, volume 29, pages 1335–1346, 1996.

43

Page 49: Genetic Algorithms: Colour Image Segmentationmgallott/honsproj/downloads/report_keri… · algorithms being used for optimization in both passes. In the first pass, genetic algorithms

[51] L. Zhijun, Z. Fei, W. Danqing, and C. Mianyun. Simulated annealing andgenetic algorithms based for image segmentation with partially evolved hop-field neural network. International Journal of Computer Science and NetworkSecurity, 6(7A):132–136, July 2006.

[52] P. Zingaretti, G. Tascini, and L. Regini. Optimising the colour image segmenta-tion. In VIII Convegno dell’Associazione Italiana per l’Intelligenza Artificiale,September 2002.

44