Image Segmentation using Advanced Fuzzy c-means

0 downloads 0 Views 2MB Size Report
In our project, we have implemented all these algorithms for image ... objectives, we developed an algorithm which improves them by automatically choosing the .... Image segmentation is typically used to locate objects and boundaries (lines, ... Treatment planning ..... Step 3: Update the cluster centers with µ using (1).
Project No.49

Image Segmentation using Advanced Fuzzy c-means Algorithm B.Tech Final Year Project Report Submitted as requirement for award of degree of BACHELOR OF TECHNOLOGY in Electrical Engineering

Submitted By: J Koteswar Rao

Ankit Agarawal

Guided By: Dr. R.P.MAHESHWARI

DEPARTMENT OF ELECTRICAL ENGINEERING INDIAN INSTITUTE OF TECHNOLOGY ROORKEE ROORKEE-247667(INDIA) MAY,2012

Acknowledgement We express our most sincere and heartfelt gratitude to Dr. R.P. Maheshwari for helping us through every step of the project. Sparing time for us even through his extremely busy schedule, his guidance was essential for the successful completion of this project. We would also like to thank the research scholar, Mr. Subramaniam, for helping us and sharing his knowledge and experience in the field of Digital Image Processing. We have gained good experience and knowledge in the field of Digital Image Processing while doing this project and we are grateful to everyone who has helped us in our endeavour. Lastly we would like to thank God and our parents for their blessings and motivation throughout this project.

ABSTRACT K-means algorithm is still extensively used in various fields like image segmentation, data mining, etc. for clustering data and retrieving information. To enhance its quality of output many new concepts and algorithms have been developed like fuzzy c-means (fcm) which introduced the concept of partial membership. Since then huge amount of research has been done on fcm and many of its variants have been developed like Bias-corrected fuzzy c-means (BCFCM), some kernel versions of FCM with spatial constraints, such as KFCM_S1 and KFCM_S2, to solve those drawbacks of BCFCM. Then, a Gaussian kernel-based fuzzy c-means algorithm (GKFCM) with a spatial bias correction was proposed to decrease the heavy effect of parameters. In our project, we have implemented all these algorithms for image segmentation which have been proved to give very good results and created a GUI. Later above our pre-stated objectives, we developed an algorithm which improves them by automatically choosing the number of clusters, better selection of initial cluster centres and tremendously increasing the speed to enable their use in real-time video segmentation.

Segmentation of flowers

CHAPTER 1

INTRODUCTION

Due to ever increasing amount of visual data and need to retrieve the useful information out of it, it has become very necessary to develop better image segmentation tools and methods which enable retrieving desired information and that too fast. Huge amount of research has been and is being done in this field and various algorithms have been developed. Clustering is one such technique which helps not only in image segmentation but is also useful in various other fields like data mining, pattern recognition, etc. K-means is the most common clustering algorithm which is widely used due to its speed, simplicity and good output. It has been improved over the years and many of its variants have been developed like fuzzy c-means, Bias corrected fuzzy cmeans, etc. which give better results and remove many drawbacks of K-means. In our project we first implemented K-means algorithm for image segmentation to understand the effect of clustering on an image and its segmentation results. We discovered that it suffers from many drawbacks like non-convergence and is susceptible to effects from noise. Hence, we implemented Fuzzy c-means algorithm which gives partial membership of each cluster to each pixel and then its variant which was proposed to yield better results as it took into account the effect of neighbouring pixels to decrease the effect of noise(BCFCM). Since it is computationally time taking and lacks enough robustness to noise and outliers, some kernel versions of FCM with spatial constraints, such as KFCM_S1 and KFCM_S2, were proposed to solve those drawbacks of BCFCM. However, KFCM_S1 and KFCM_S2 are heavily affected by their parameters. So,we implemented a Gaussian kernel-based fuzzy c-means algorithm (GKFCM) with a spatial bias correction which was proposed to be more efficient and robust. While implementing them, we noticed that we can improve the results of K-means algorithm by hitting on its basic inputs and we realized research is being done in that direction as well. Inputs to a K-means algorithm are number of clusters and the initial cluster centres. We noticed that initial clusters were in general randomly chosen and the number of clusters was derived by applying k-means a number of times and then comparing the results. So, we came up with the idea that we can apply a moving average filter on the histogram of an image and take the number of peaks as the number of clusters and those peaks as initial cluster centres. We found that this way the problem of non-convergence was removed and the results were better as the initial cluster centres were found to be close to final cluster centres. This way we also avoided the input, number of clusters, from the user. Then, we happened to notice that we can apply the kmeans algorithm on the histogram of the image rather than the image itself which increased the speed of the algorithm since the iterations became very fast. We incorporated an additional feature which automatically varies the input to moving average filter and named it auto-pilot, which depending on the application itself decides the value of n for moving average filter. As the algorithm became very fast and didn’t require any input from the user we realized that we can even try real-time video segmentation which is very difficult due to limitation of time.

We have developed a GUI(Graphic User Interface) to display all the algorithms implemented, modifications which we are proposing, etc. so that the user can easily look through our work and use it as well. We have some interesting features like report generation which makes a report of the segmented results of an image in word file, live video segmentation, etc. In the report starting with introduction to Digital Image Segmentation we have explained various clustering algorithms implemented by us, then highlighted a few drawbacks of K-means and Fuzzy c-means which we have removed by our proposed algorithm which is explained in the next chapter along with auto-pilot and real-time video segmentation. At last we have explained the features of GUI developed.

Segmentation using proposed algorithm (tumor got completely separated)

Chapter 2

Digital Image Segmentation

2.1 What is Digital Image Segmentation? When acquiring an image, it might be interesting to know what parts of the image do belong to each other. It could be a satellite image, where we wish to quantify and locate different types of vegetation, or a medical MRI image where the doctors are interested to know how much of each tissue type is present, and where it is located. Image segmentation techniques offer a method to perform these tasks, and thus, can be regarded as the process of dividing an image into groups of pixels which from a preset property are connected to each other. The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze. Image segmentation is typically used to locate objects and boundaries (lines, curves, etc.) in images. More precisely, image segmentation is the process of assigning a label to every pixel in an image such that pixels with the same label share certain common visual characteristics. These characteristics or computed property may be, such as color, intensity or texture. Commonly this means that pixels with almost the same intensity values are grouped together, or pixels with the same colour code. There are techniques for finding for instance objects with closed contours, convex objects and the boundaries of an object, etc. Segmentation is a fundamental task of image processing because of its many areas of application. 

Medical Imaging 

Locate tumors and other pathologies



Measure tissue volumes



Computer-guided surgery



Diagnosis



Treatment planning



      

Study of anatomical structure Locate objects in satellite images (roads, forests, etc.) Face Recognition Iris Recognition Fingerprint Recognition Traffic Control Systems Brake Light Detection Machine Vision

Segmentation techniques have not been widely applied, partly because they are time consuming and partly because there are no overall techniques that are suitable for all different types of images. All intensity based segmentation techniques are sensible to the situation that different

objects have almost equal intensities. This will often lead to misclassification (wrongly classified pixels) if the objects from the view of the human eye should not belong to the same class. [In general all the segmentation techniques have to be based on intensity since the only data available from an image is an array of numbers which signify the intensity. Then these numbers are used in segmentation in various formats to represent just the intensity based(for gray level images) or colour based(which uses three or more intensity matrices) or any kind of a pattern like a texture(which again may use more than one parameter), etc. Here in our project we have concentrated only on gray level images.] 2.2 Different ways of Image Segmentation Image segmentation can proceed on three different ways, 1. Manually 2. Automatically 3. Semi-automatically 2.2.1 Manual Segmentation The pixels belonging to the same intensity range could manually be pointed out, but clearly this is a very time consuming method if the image is large. A better choice would be to mark the contours of the objects. This could be done discrete from the keyboard, giving high accuracy, but low speed, or it could be done with the mouse with higher speed but less accuracy. The manual techniques all have in common the amount of time spent in tracing the objects, and human resources are expensive. Tracing algorithms can also make use of geometrical figures like ellipses to approximate the boundaries of the objects. This has been done a lot for medical purposes, but the approximations may not be very good. 2.2.2 Automatic Segmentation Fully automatic segmentation is difficult to implement due to the high complexity and variation of images. Most algorithms need some a priori information to carry out the segmentation, and for a method to be automatic, this a priori information must be available to the computer. The needed a priori information could for instance be noise level and probability of the objects having a special distribution. In computer vision it is required that computer is able to do automatic segmentation and then take the required actions according to the segmentation results. In our project we have made an attempt to go closer to automatic segmentation by requiring less and less input from the user. 2.2.3 Semi-automatic Segmentation Semiautomatic segmentation combines the benefits of both manual and automatic segmentation. By giving some initial information about the structures, we can proceed with automatic methods.

Thresholding If the distribution of intensities is known, thresholding divides the image into two regions, separated by a manually chosen threshold value ‘a’ as follows: if B(i; j) ¸ a; B(i; j) = 1 (object) else B(i; j) = 0 (background) for all i; j over the image B. This can be repeated for each region, dividing them by the threshold value, which results in four regions etc. However, a successful segmentation requires that some properties of the image is known beforehand. This method has the drawback of including separated regions which correctly lie within the limits specified, but regionally do not belong to the selected region. These pixels could for instance appear from noise. The simplest way of choosing the threshold value would be a fixed value, for instance the mean value of the image. A better choice would be a histogram derived threshold. This method includes some knowledge of the distribution of the image, and will result in less misclassification. Isodata algorithm is an iterative process for finding the threshold value. First segment the image into two regions according to a temporary chosen threshold value. Then calculate the mean value of the image corresponding to the two segmented regions. Calculate a new threshold value from thresholdnew = mean(meanregion1 + meanregion2) and repeat until the threshold value does not change any more. Finally choose this value for the threshold segmentation. Various other thresholding methods are used like adaptive thresholding, Otsu algorithm, Minimum error algorithm, Minimum entropy method, etc.

Boundary tracking Edge-finding or edge-detection by gradients is the method of selecting a boundary manually, and automatically follow this gradient until returning to the same point. Returning to the same point can be a major problem of this method. Boundary tracking will wrongly include all interior holes in the region, and will meet problems if the gradient specifying the boundary is varying or is very small. A way to overcome this problem is first to calculate the gradient and then apply a threshold segmentation. This will exclude some wrongly included pixels compared to the threshold method only. Zero-crossing based procedure is a method based on the Laplacian. Assume the boundaries of an object has the property that the Laplacian will change sign across them. Assume the boundary is blurred, and the gradient will have a shape like in Figure 2.2. The Laplacian will change sign just around the assumed edge for position = 0.

For noisy images the noise will produce large second derivatives around zero crossings, and the zero-crossing based procedure needs a smoothing filter to produce satisfactory results. Various edge detection tools are used and huge development have been made in this like various masks have been developed e.g. Robert operator, Sobel’s operator, Prewitt Operator, etc.

Neighbouring methods Region growing is a statistical method for segmentation. We group the pixels into different regions from the principles of proximity and homogeneity. The principle of proximity splits the image into smaller regions and merges them again such that all pixels have neighbours similar to themselves. This means that the intensities of the neighbours all lie within a certain threshold. The principle of homogeneity compares the statistical probability of different combinations of regions to belong to the same class. This requires some a priori information about the image we are trying to segment. Various statistical measures like standard deviation, skewness, kurtosis etc. are used for determining whether the regions are similar or different. But here also the input for these measures to differentiate has to be given by the user based on a priori information.

Mathematical Morhphology Mathematical morphology (MM) is a theory and technique for the analysis and processing of geometrical structures. MM is most commonly applied to digital images, but it can be employed as well on graphs, surface meshes, solids, and many other spatial structures. Topological and geometrical continuous-space concepts such as size, shape, convexity, connectivity, and geodesic distance were introduced by MM on both continuous and discrete spaces. MM is also the foundation of morphological image processing, which consists of a set of operators that transform images according to the above characterizations. Besides extending the main concepts (such as dilation, erosion, etc...) to functions, this generalization yielded new operators, such as morphological gradients, and

the Watershed (MM's main segmentation approach). The watershed transformation considers the gradient magnitude of an image as a topographic surface. Pixels having the highest gradient magnitude intensities (GMIs) correspond to watershed lines, which represent the region boundaries. Water placed on any pixel enclosed by a common watershed line flows downhill to a common local intensity minimum (LIM). Pixels draining to a common minimum form a catch basin, which represents a segment. Clustering Methods Clustering is the process of dividing data elements into classes or clusters so that items in the same class are as similar as possible, and items in different classes are as dissimilar as possible. Depending on the nature of the data and the purpose for which clustering is being used, different measures of similarity may be used to place items into classes, where the similarity measure controls how the clusters are formed. Some examples of measures that can be used as in clustering include distance, connectivity, and intensity. Hence, clustering has been used as a very useful tool in data mining, image segmentation, pattern recognition, information retrieval, etc. Many clustering algorithms have been developed like K-means, Fuzzy c-means, etc. With moderate processing time they give very good result and are very commonly used. We’ll be discussing about clustering algorithms at length in the next chapter and discuss about various clustering algorithms evolved and their drawbacks. Later in the report we’ll mention the efforts made by us in trying to remove those drawbacks and getting better results.

Chapter 3

CLUSTERING METHODS

3.1 Introduction Cluster analysis or clustering is the task of assigning a set of objects into groups (called clusters) so that the objects in the same cluster are more similar (in some sense or another) to each other than to those in other clusters. Clustering is widely used in image analysis, pattern recognition, and many other fields, including data mining, statistical analysis, machine learning, information retrieval and bioinformatics. Its wide use can be attributed to the fact that they are very fast and simple and give good results for unsupervised approaches. In intensity based image segmentation for example clustering algorithms finds its use because an object generally has same intensity, pattern or texture etc. for a particular orientation. Hence to segment a particular object out of an image what we require to know is its intensity. Similarly different objects can be segmented based on their intensity in the image. So by the process of clustering we identify various groups of intensities which may refer to different objects and thus segment the image into its constituting parts separately. Cluster analysis itself is not one specific algorithm, but the general task to be solved. It can be achieved by various algorithms that differ significantly in their notion of what constitutes a cluster and how to efficiently find them. Popular notions of clusters include groups with low distances among the cluster members, dense areas of the data space, intervals or particular statistical distributions. Clustering can therefore be formulated as a multi-objective optimization problem. The appropriate clustering algorithm and parameter settings (including values such as the distance function to use, a density threshold or the number of expected clusters) depend on the individual data set and intended use of the results. Cluster analysis as such is not an automatic task, but an iterative process of knowledge discovery or interactive multi-objective optimization that involves trial and failure. It will often be necessary to modify preprocessing and parameters until the result achieves the desired properties.

3.2 CLUSTERS AND CLUSTERING The notion of a "cluster" varies between algorithms and is one of the many decisions to take when choosing the appropriate algorithm for a particular problem. At first the terminology of a cluster seems obvious: a group of data objects. However, the clusters found by different algorithms vary significantly in their properties, and understanding these "cluster models" is key to understanding the differences between the various algorithms. There may be various cluster models but we’ll be confining our discussion to centroid based models like K-means algorithm and its variants in which a cluster is represented by a single mean vector. A "clustering" is essentially a set of such clusters, usually containing all objects in the data set. Additionally, it may specify the relationship of the clusters to each other, for example a hierarchy of clusters embedded in each other. Clusterings can be roughly distinguished in:

 

hard clustering: each object belongs to a cluster or not soft clustering (also: fuzzy clustering): each object belongs to each cluster to a certain degree

In the next few sections of the chapter we would discuss various clustering algorithms which we have implemented in our project. 3.3 K-Means Algorithm K-means (MacQueen) is one of the simplest unsupervised learning algorithms that solve the well known clustering problem. It is very popular because of its ability to cluster a kind of huge data, and also outliers, quickly and efficiently. The procedure follows a simple and easy way to classify a given data set through a certain number of clusters (assume k clusters) fixed a priori. The main idea is to define k centroids, one for each cluster. Every pixel has to belong to only and only one cluster. These centroids shoud be placed in a cunning way because different location causes different result. So, the better choice is to place them as much as possible far away from each other. The next step is to take each point belonging to a given data set and associate it to the nearest centroid. When no point is pending, the first step is completed and an early groupage is done. At this point we need to re-calculate k new centroids for the clusters resulting from the previous step. After we have these k new centroids, a new binding has to be done between the same data set points and the nearest new centroid. A loop has been generated. As a result of this loop we may notice that the k centroids change their location step by step until no more changes are done. In other words centroids do not move any more. Finally, this algorithm aims at minimizing an objective function, in this case a squared error function. The objective function

Where, is a chosen distance measure between a data point and the cluster centre , is an indicator of the distance of the n data points from their respective cluster centres. K-means has proved to be very useful algorithm for image segmentation being both simple and fast is sometimes used as a pre-segmentation for other segmentation processes.

Place K points in space one for each cluster randomly.

Assign each pixel to the cluster whose centroid or centre is closest

Calculate new centres as the centroid of the group

No

cj(new)-cj(old) 1 became popular. Let X = {x1, . . .,xn} be a data set in an s-dimensional Euclidean space R. Let c be a positive integer greater than one. A partition of X into c parts can be presented by a mutually disjoint set X1, . . .,Xc such that X1 U….U Xc = X, or equivalently by the indicator functions µ1, . . .,µc such that µij = µi(xj) = 1 if xj Є Xi and µij = 0 if xj ∉ Xi for i = 1,. . ., c and j = 1,. . .,n. The set of indicator functions {µ1, . . ., µc} is known as a hard c-partition of clustering X into c clusters. Ruspini first considered an extension to allow µij = -µi(xj) to be the membership functions of fuzzy sets µi on X assuming values in the interval [0,1] such that ∑ µ for all xj in X. In this fuzzy extension, {µ1, . . ., µc} is called a fuzzy c-partition of X. The fuzzy c-partitions of X can be represented in a matrix form as follows: µ = {µij}cxn Є Mfcn where Mfcn is a partition matrix with Mfcn = {µ=[µij]cn | ∀ i, ∀j µij ≥0, ∑

µ

, n> ∑

µ

>0}

Dunn first embedded the fuzzy c-partitions into K-means and then proposed the fuzzy c-means (FCM) objective function with ∑∑µ where µij Є Mfcn and {a1, . . .,ac} denote the cluster centres of the data set X. Bezdek extended the weighting exponent m = 2 to any m > 1 with the FCM objective function Jm as µ

∑∑µ

Thus, the FCM algorithm is iterated through the necessary conditions for minimizing Jm(µ,a) with the following update equations: ∑ ∑

µ µ

,

i=1,2,…c

(1)



µ

,

i=1,2,….c

(2)

j=1,2,….n Based on a sequence of execution for stage s using stage (s -1) according to the update Eqs. (1) and (2), the FCM can be described as follows: FCM procedure Input: (1) X = { ,….

Є R, the data set

},

(2) c, 2 ≤ c ≤ n, the number of clusters (3) Ɛ > 0, the stopping criterion of algorithm (4)

(

) the initials of cluster centers.

OUTPUT: a = {

}, the final cluster centers

Algorithm: Step 1: Let s = 1 Step 2: Compute µ

using (2).

Step 3: Update the cluster centers Step 4: Compare IF ||

to

with µ using (1).

in a convenient matrix norm ||.||.

|| < Ɛ, STOP and OUTPUT.

ELSE s = s + 1 and return to step 2. Fuzzy clustering has been widely studied and applied in a variety of areas, such as numerical taxonomy, image processing, pattern recognition, medicine, economics, ecology, marketing, artificial intelligence, data mining, engineering systems, and gene expression. In fuzzy clustering, the fuzzy c-means (FCM) algorithm plays an important role. 3.5 Bias-corrected Fuzzy C-Means (BCFCM) Although the FCM algorithm is the best known, it has several drawbacks. For example, the points in the data set are supposed to be equally important, the number of points in the clusters is almost equal, nearly all points do not have a membership value of one, and the outliers always affect the clustering results. To overcome these drawbacks, many generalized FCM algorithms

have been proposed in the literature. Among them, Ahmed et al. (2002) first modified the FCM algorithm as a bias-corrected FCM(BCFCM) with a spatial neighbourhood regularization term by regularizing the following FCM objective function .

where Nj stands for the set of neighbours that exist in a window around xj and is the cardinality of Nj. The effect of neighbouring terms is controlled by the parameter a. Thus, the BCFCM algorithm is iterated through the necessary conditions for minimizing with the following update equations:

However, Chen and Zhang (2004) pointed out a shortcoming of the BCFCM update equations that computing the term of neighbourhoods Nj may take too much time than FCM. They then proposed a modified objective function as

where

is the sample mean within the window around xj where

can be computed in advance.

The idea is that the term Thus, the modified BCFCM algorithm is iterated through the necessary conditions for minimizing with the following update equations:

3.6 Kernel based Fuzzy C-means (KFCM) Chen and Zhang (2004) then replaced the Euclidean distance || || with a Gaussian kernelinduced distance 1- K( =1 - exp(/ ). They gave the kernel version of as

The necessary conditions for minimizing

(µ,a)are the following update equations:

where K(x,y) =exp(/ ). Note that different kernels can be chosen by replacing the Euclidean distance . for different purposes. However, a Gaussian kernel is suitable for clustering in which it can actually induce the necessary conditions (7) and (8). They then proposed the KFCM_S1 as follows: KFCM_S1 procedure Input: (1) X = { ,….

},

Є R, the data set

(2) c, 2 ≤ c ≤ n,, the number of clusters

(3) Ɛ > 0, the stopping criterion of algorithm (4) (5)

and , the values of parameters (

Output: a = {

) the initials of cluster centres. }, the final cluster centres

Algorithm: Step 1: Let s = 1 Step 2: Compute µ

using (8).

Step 3: Update the cluster centres Step 4: IF ||

and µ

with

using (7).

|| < Ɛ, STOP and OUTPUT.

ELSE s = s + 1 and return to step 2. If ̅ is taken as the median of the neighbours within the window around , then the algorithm is called KFCM_S2 by Chen and Zhang(2004) where they compare the KFCM_S1 and KFCM_S2 with FCM and BCFCM. However, the parameter in BCFCM, KFCM_S1 and KFCM_S2 heavily affects the final clustering results. For estimating the parameter and learning the parameter , we propose a generalized type of BCFCM, KFCM_S1 and KFCM_S2 where the parameters and can be automatically estimated and learned from the data in the next section. 3.7 Gaussian kernel-based FCM (GKFCM) We know that Chen and Zhang (2004) considered a kernel version of FCM by replacing the Euclidean distance || || with the kernel substitution as (

)

where / is a nonlinear map from the data space into the feature space with its corresponding kernel K. They specially assumed K(x,y) = 1 and then proposed the kernel-type objective function with µ

∑∑µ

Thus, the update equations for the necessary conditions for minimizing

µ

are as follows:

∑ ∑

µ

µ

(

) (

µ (



i = 1,2,…,c

) )

(

i = 1,2,…c;

,

)

(9) (10)

j=1,….,n We point out that the necessary conditions for minimizing µ are update Eqs. (9) and (10) only when the kernel function K is chosen to be the Gaussian function with K( ) = exp(). ∑∑µ

µ

∑∑µ

̅

Where, K(x,y) =exp(/ ) is taken. Thus, the necessary conditions for minimizing µ are Eqs. (7) and (8) as shown in Section 2.We mention that the parameter is used to control the effect of the neighbors for adjusting the spatial bias correction term. In fact, the parameter heavily affects the clustering results of BCFCM, KFCM_S1 and KFCM_S2. Intuitively, it would be better if we can adjust each spatial bias correction term separately for each cluster i. That is, the overall parameter is better replaced with that is correlated to each cluster i. In this sense, we will consider the following modified objective function with µ





where K(x,y) =exp(-



µ /



µ

̅

(11)

).

Based on the concept of machine learning with a learning capability to improve the performance of clustering results, an exponential-type distance is bounded and monotone increasing. Hence it can be robust to noise and outliers when = 1- exp() is used to replace the Euclidean distance . However, there are parameters and in the proposed objective function . Since is presented as a dispersion, we use the sample variance to estimate with ∑

̅

with

̅



(12)

On the other hand, because the parameter controls the effect of the neighbouring term for each cluster i, a ratio of the two distance-based influence terms, and ̅ , can be used as a learning scheme for . This is because the term presents the separation of data set for the cluster i. If the value of is larger, then the cluster i will be more isolated so that the value of should be larger. However, the scale of for each data set may depend on the total separation of the data set in which it can be measured by the term ̅ . Thus, the ratio of the two terms

and ̅ can be well used as a standardized separation strength of cluster i. Moreover, we also consider these influencing factors simultaneously in replacing the Euclidean distance with the exponential-type distance 1- K(x,y) = 1-exp(/ ). Therefore, the parameter is estimated as follows: i = 1,2,…c

,

̅

(13)

Thus, the update equations for the necessary conditions of minimizing ∑

(

µ

)



µ



(

(

µ

(

(

(̅̅̅

,

)

)) (

)̅̅̅

(̅̅̅ ))

,

)

(14)

i = 1,…,c; j = 1,…,n

where K(x,y) = exp(/ ). We see that the KFCM objective function µ for all i. Thus, we have the GKFCM as follows:

is a special case of

GKFCM procedure Input: (1) X = { ,….

},

Є R, the data set

(2) c, 2 ≤ c ≤ n, the number of clusters (3) Ɛ > 0, the stopping criterion of algorithm (4)

(

Output: a = {

) the initials of cluster centres. }, the final cluster centers

Algorithm: Step 1: Let s = 1and estimate Step 2: Compute

using (12).

using (13).

Step 3: Compute µ

and

Step 4: Update the cluster centres Step 5: IF ||

are

i = 1,…c

)

(̅̅̅

µ

using (15). with

,

|| < Ɛ, STOP and OUTPUT.

and µ

using (14).

(15)

µ

when

=

ELSE s = s + 1 and return to step 2. If ̅ in Eqs. (14) and (15) is considered as the sample mean within the window around , then we call the algorithm as GKFCM1. If ̅ in Eqs. (14) and (15) is replaced with the median within the window around , then the algorithm is called GKFCM2. Note that the parameters and in BCFCM, KFCM_S1 and KFCM_S2 are priori assigned by users where they heavily affect the clustering results. But in our proposed GKFCM1 and GKFCM2, the parameter is estimated by Eq. (12) and the parameter i is updated at each iteration using Eq. (13) based on the data and learning schemes.

CHAPTER 4

Drawbacks of K-means and FCM Algorithms

4.1 Introduction The K-means and FCM algorithms are having many drawbacks due to which their results are not good and hence the algorithms which have k-means as their starting point or are from its variations have to suffer from various drawbacks. These are drawbacks are: 1. No. of clusters has to be a human input 2. May not converge (K-means) 3. Different initial cluster centres may yield different final cluster centres hence sometimes the result may be completely erroneous 4. Slow (FCM) In the next few sections we discuss these drawbacks along with some methods which were proposed to modify and improve it. They also have suffered from the drawbacks of their own so we have suggested a new method in the next chapter and its certain features have been discussed along with the drawbacks of previously proposed algorithms. 4.2 Number of clusters The first issue is that the number of clusters k needs to be determined in advance as an input to clustering algorithms. In a real data set, k is usually unknown. In practice, different values of k are tried, and cluster validation techniques are used to measure the clustering results and determine the best value of k, see, for instance, [9]. In [10], Li et al. presented an agglomerative fuzzy k-means clustering algorithm for numerical data, an extension to the standard fuzzy kmeans algorithm by introducing a penalty term to the objective function. The algorithm can determine the number of clusters by analyzing the penalty factor. For categorical data, a bottomup hierarchical algorithm ACE was proposed in [11], which uses entropy as an index function to capture the candidates for the number of clusters. All these methods are time consuming and computation expensive to apply. For example, [9] for instance requires whole K-means algorithm to be applied multiple times to gain the no. of clusters to divide the image. In [10] the algorithm needs to randomly select a subset from data set as initial cluster centers, which results in an uncertainty and then suffers with the problem as stated in the next drawback. [11] is very time consuming and is dependent on the size of the image because if the size of the image is very large, the ACE algorithm is not efficient due to its computational burden of O(n2log2n) with n being the number of data points. Hence, we would like to propose a method to find out the number of clusters for clustering of an image for the purpose of segmentation which is lot simpler, fast and gives good results. First, the histogram of the image is developed and on the histogram of the image a moving average filter is applied whose size can be decided by the user depending upon the image. Then this moving

average filter will do the smoothing of the filter and give rise to some smooth peaks and valleys. In general, it has been noticed that the intensity of an object in an image is clustered in one particular region which forms a peak and the peaks of two different objects (or the object from the background) are separated by a valley. So, this feature of a digital image is made use of to determine the number of clusters. It is proposed that for intensity based segmentation each peak will refer to a separate segment of the image. Hence, the number of peaks is our required number of clusters. As such it can be said that this can easily be known by just viewing the histogram of an image. But, for the purpose of computer vision and machine learning it is important that computer itself identifies the number of clusters. This particular method aids computer in identifying the number of cluster on its own. Though it can be said that the size of the moving average filter is to be an input which cannot be done by computer, but later in the project we’ve tried to sort that problem as well.

4.3 INITIAL cluster centres

Through the iterative partitioning, k-means algorithm minimizes the sum of distance from each data to its clusters. However, one of the biggest drawbacks of the k-means algorithm is, it is very sensitive to the designated initial starting points as cluster centers because they have direct impact on final cluster centres. K-Means does not guarantee unique clustering as we get different results with randomly chosen initial cluster centres. The final cluster centroids may not be the optimal ones as the algorithm can converge into local optimal solutions. An empty cluster can be obtained if no points are allocated to the cluster during the assignment step. Thus, computer vision and machine learning practitioners find it difficult to rely on the results thus obtained. Therefore, it is quite important for k-means to have good initial cluster centers. Several methods proposed to solve the cluster initialization for k-means algorithm. Since clusters are separated groups in a feature space, it is desirable to select initial centers which are well separated. So the image is first divided into k parts on the basis of its intensity and then the centre of each part is taken to be the initial cluster centres. But, the clustering of the data can be in any region and need not be spread throughout the range and it is dangerous to select outliers as initial centers, since they are away from normal samples. This will not only take time for reaching to the final cluster centres there may be the problem of convergence as is discussed in next section as well. For the initial cluster center, Jain and Dubes (1988) applied the k-means with several times by randomly selected initial values and selected the average of these final cluster centers. Bradley and Fayyad (1998) proposed the refinement algorithm that builds a set of small random sub-samples of the data, then clusters data in each sub-samples by k-means. All centroids of all sub-samples are then clustered together by k-means using the k-centroids of each sub-sample as

initial centers. The centers of the final clusters that give minimum clustering error are to be used as the initial centers for clustering the original set of data using k-means algorithm. Penã et al. (1999) presented a comparative study for different initialization methods for the Kmeans algorithm. The result of their experiments illustrate that the random initialization method outperforms the rest of the compared methods as they make the K-means more effective and more independent on initial clustering and on instance order. This clearly showed that the methods developed till then were not giving effective but the need to find better initial cluster was there in order to get better final cluster centres and also to avoid any problem of convergence which may occur due to inappropriate selection of initial cluster centres.

Hence, more research was being done to find better initial cluster which are closer to the final cluster centres which would make the results better and along with that would be speedy since convergence will be faster and number of iterations required will be less.

Likas et al. (2003) proposed the global k-means algorithm which is an incremental approach to clustering which dynamically adds one cluster center at a time through a deterministic global search procedure consisting of N (with N being the size of the dataset) executions of the k-means algorithm from suitable initial positions. But it is a very long and time consuming process as error finding method is run about (K-1)*N times in this. Khan and Ahmad (2004) proposed Cluster Center Initialization Algorithm (CCIA) to solve cluster initialization problem. CCIA is based on two observations, which some patterns are very similar to each other. It initiates with calculating mean and standard deviation for data attributes, and then separates the data with normal curve into certain partition. CCIA uses k-means and density-based multi scale data condensation to observe the similarity of data patterns before finding out the final initial clusters. The experiment results of the CCIA performed the effectiveness and robustness this method to solve the several clustering problems. Deelers and Auwatanamongkol (2007) proposed an algorithm to compute initial cluster centers for k-means algorithm. They partitioned the data set in a cell using a cutting plane that divides cell in two smaller cells. The plane is perpendicular to the data axis with the highest variance and is designed to reduce the sum squared errors of the two cells as much as possible, while at the same time keep the two cells far apart as possible. Also they partitioned the cells one at a time until the number of cells equals to the predefined number of clusters, k. In their method the centers of the k cells become the initial cluster centers for k-means algorithm.

Presently research is being done to make use of many attributes of the data set to find initial cluster centres but this is again very time consuming and computation expensive process for just finding the initial cluster centres as all the other methods mentioned above though they might give very good result but if the data set is large and the processing time available for segmenting images (or in that case any other kind of data) is less i.e. there is huge amount of images or video data which has to be segmented then they would not fulfill the requirement. Our proposed algorithm calculates the initial cluster centers that are quite close to the desired cluster centers. The peaks which are obtained by using a moving average filter on the histogram of the image are taken to be our initial cluster centres and they may not be the modes of the histogram. This method is really fast in comparison to other methods as explained above in finding the initial cluster centres (and is almost completed by the end of the process to find the number of clusters) and better as well. Firstly, it is not based on any kind of random choice for initial cluster centres which may lead to the problem of non-convergence or may give erratic results(it will be very difficult to get unique final cluster centres) for different initial centres which are chosen randomly and we can’t even have any kind of control over them. Secondly, since the initial cluster centres are found to be close to the final cluster centres the whole clustering algorithm becomes fast as the number of iterations required to converge will decrease whereas if the initial cluster centres are equally spaced throughout the intensity range and the data is confined only to one section of intensity range, then unnecessarily more iterations will be required and the cluster centres may also get trapped in local clustering of data. Thirdly, it is independent of the size of the image. Only while making the histogram we require going through all the pixels of the image otherwise all the calculations can be conducted on the histogram itself which saves a lot of computation time [and is kind of uniform for different image sizes]. Fourthly, it can be used on histogram and doesn’t require any other attribute to find the initial cluster centres though there may be compromise with quality. The ones which use many attributes to find the initial cluster centres are very calculation intensive and would make the algorithm slow. 4.4 Convergence There is a problem of convergence which may occur in K-means algorithm if care is not taken and when random selection of initial cluster centres is done then since there is no control over the process the algorithm may not even converge to final cluster centres. This may happen if the initial cluster is put in a region where there are no data points. So when the new cluster centres will be calculated in the next step then since there are no data points in that cluster the denominator will become zero, hence there will be the problem of convergence.

A way was devised to avoid this problem by assigning the initial cluster centres between the minimum and the maximum values of the data points. But still this problem may arise if cluster centre drops in a region where there are no points pertaining to the data i.e. data need not be spread throughout uniformly. So, this problem is also resolved by choosing correct initial cluster centres and having some control over it. 4.5 Speed Speed is always a factor which determines the applicability of a particular method. Simple Kmeans algorithm applied on images is very slow because it is iteratively applied on the image and as the size of the image increases its time of evaluating cluster centres will increase proportionately as the computer will have to peruse all the pixels again. Though K-means is still very fast in comparison to other methods for clustering as the computation is less. But it can be made faster if it is applied on the histogram of the image rather than the image pixels. Hence, as we have mentioned earlier we can work on the histogram of the image. The initial cluster centre rather than being a pixel and iteratively measuring the distance of intensity of each pixel from the intensity of the cluster centre pixel what can be done is we can take the intensities of the peaks as the initial cluster centres and then cluster the intensities on the basis of their nearness to respective cluster centre. Then using their frequency in the image as their weight and calculate the new cluster centres. This way the number of data points is reduced from any number depending on the size of the image to 255(if 8-bit representation). So the iterations become faster and hence the same result can be obtained in lesser time.

CHAPTER 5

PROPOSED ALGORITHMS

5.1 optimum cluster centers and optimum number of clusters Clustering algorithms like k-means and fuzzy c-means , although appears very simple, we get long time or short time to converge depending upon initial cluster centers chosen and sometimes it so happens that it doesn’t converge at all. For computer vision, we need a reliable algorithm producing fast and sure shot convergence. Number of clusters and initial cluster centers are human input in k-means algorithm. So, there is a (n+1) degrees of freedom to get a particular segmentation, which causes inconsistency in results, and there is known charge against k-means algorithm that it doesn’t have spatial coherence. Keeping these two things in mind, We propose a new concept of finding initial cluster centers as a function of size of filter used to filter the histogram. Using this concept, degree of freedom reduces to one i.e. size of the filter instead of number of clusters and it accounts for spatial coherence too. Convergence becomes faster as initial cluster centers are somewhat near final cluster centers. We propose two methods of finding such optimum cluster centers using filtered histogram of the image. METHOD-1 Step 1: Apply moving average filter of size ‘t’ on histogram and obtain Histogram-1 Step 2: Apply moving average filter of size ‘round(t/2)’ on Histogram-1 and obtain Histogram-2 Step 3: Intensities having local maxima in the Histogram-2 can be taken as optimum initial cluster centers. Since Histogram-2 is a filtered histogram, there are only very few local maximas METHOD-2 Step 1: Apply moving average filter of size ‘t’ on histogram and obtain Histogram-1 Step 2: Apply moving average filter of size ‘round(t/2)’ on Histogram-1 and obtain Histogram-2 Step 3: Intensities having minima in the histogram can be taken as separating criteria for dividing the original histograms into sub-histograms. Step 4: Within those sub histograms, intensities having maximum frequency can be taken as optimum initial cluster centers.

Although, choosing initial cluster centers at equal distance has been in practice so far. But by using this method, we account for spatial coherency and speed increases very significantly as the initial cluster centers obtained are somewhat near final cluster centers. It is observed that greater the size of filter, lesser is the number of clusters obtained to start with. And there is a high degree of consistency in final cluster centers obtained by same number of cluster within certain range of size of filter used. Whole idea is that input is size of the filter not number of clusters we want to divide the image into, forcibly. 5.2 Proposed Algorithms for clustering 5.2.1 K-means using histogram Step 1: Divide histogram into sub histograms by criteria of mid-point between cluster centers. Step 2: perform k-means on histogram using these cluster centers to obtain new cluster centers by finding the weighted average of intensities within the corresponding histogram. Weights are calculated by dividing corresponding frequency of intensity with sum of all frequencies within the sub histogram. This weighted average becomes the new cluster center Step 3: Check if error between consecutive iterations is less than maximum error allowed If Yes, final cluster centers are obtained and intensities within corresponding histogram belong to corresponding cluster Otherwise, Go to step 1 5.2.2 Fuzzy c-means using histogram Equation for calculating membership remains same but while calculating average membership term is multiplied with corresponding frequency of that intensity. 5.2.3 FCM +k-means In FCM, while segmenting finally maximum an intensity falls in the cluster in which it has maximum intensity.Finding maximum membership consumes lot of time. This can be easily avoided by dividing in the way we divide in k-means (an intensity value belongs to the cluster if it falls in sub-histogram of that particular cluster) 5.2.4 kf-means K-means is fast whereas fuzzy c-means ensures sure shot convergence, therefore we propose a method of combining these two to find the final cluster center in optimum time and with sure shot convergence. We carry on iterations as we do in k-means, recalling the (sum of sub-

histogram) criteria discussed above can be used to call a single iteration of fuzzy c-means to place the cluster centers in such a manner that convergence will happen as the criteria doesn’t sense the problem of convergence once FCM is called.

5.3 Effect of using initial cluster centers proposed by two theorems

Original Image

Normal Initial cluster centers: 32 96 159 223 Final cluster centers: 19 77 137 237 Time taken: 1.59 secs

Optimum initial cluster centers by theorem 1(t=22): 33 78 123 255 Final cluster centers: 18 75 135 236 Time Taken: 0.445 secs

Optimum initial cluster centers by theorem 1(t=22): 14 65 111 255 Final cluster centers: 16 71 132 235 Time Taken:0.703 secs

2500

2000

1500

1000

500

0 0

50

100

150

Original Histogram

200

250

2000 1800 1600 1400 1200 1000 800 600 400 200 0

0

50

100

150

200

250

300

Filtered Histogram

One may ask what about time taken for finding these initial cluster centers. But finding normal cluster centers also takes time as range of image need to be calculated as if by chance cluster center outside the range is chosen, algorithm doesn’t converge.

Original image with segmented edge

Segmented image with segmented edge

5.4 Addressing problem of convergence in clustering algorithms

In spite of choosing optimum cluster centers, we cannot ensure convergence because of inherent nature of the image. One of the reason might be discontinuous histogram. So we propose a solution of using histogram based k-means algorithm. By which speed increases drastically. We can have a constant check in every iteration, if algorithm can converge for given number of cluster centers. Especially in computer vision, predefined number of clusters based on training but still there are problems of convergence encountered. We propose a flexible number of clusters method based on histogram. Use optimum initial cluster centers obtained from METHOD-1. Step 1: Divide histogram into sub histograms by criteria of mid-point between cluster centers. Step 2: Check if sum of all frequencies in the sub histogram is greater than 0 If yes, continue. Otherwise, delete this cluster center and merge the left part of sub histogram to left cluster center and right part of sub histogram to right cluster center.

Step 3: perform k-means on histogram using these cluster centers to obtain new cluster centers by finding the weighted average of intensities within the corresponding histogram. Weights are calculated by dividing corresponding frequency of intensity with sum of all frequencies within the sub histogram. Step 4: Check if difference between consecutive iteration is less than criterion predefined. If yes, obtained cluster centers are final cluster centers. Otherwise, go to step1.

5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0 0

50

100

150

200

250

Now if we use normal initial cluster centers=32 96 159 223, algorithm doesn’t converge. Because 3rd initial cluster center (159) can’t have any pixel in his cluster. if we use cluster centers obtained by theorem 1=44 88 125 237 Final cluster centers=14 59 104 215 Time taken=0.0911 secs

if we use cluster centers obtained by theorem 2=14 75 200 255 Final cluster centers=23 91 201 250 Time taken=0.09 secs

So, using these cluster centers, algorithm converges. In spite of using these cluster centers we cannot ensure sure shot convergence , so reduction in number of clusters remains as only solution as discussed above when it is encountered that algorithm cannot converge using sub-histogram criteria

Main reason behind using histogram instead of image is to have some criteria for checking if convergence is possible and take described action.

Thus the advantages of the proposed algorithms are: 1. It automatically finds the number of clusters for segmentation which used to be a human input, thus, heading to automatic segmentation. 2. The initial cluster centres are obtained in a simple and refined way which removes the problems which are created due to random selection of initial cluster centres like nonconvergence, improper clustering results, etc. , and is faster than other algorithms which use many attributes to calculate initial cluster center though the result may be a bit poor. 3. The problem of convergence has also been removed. 4. The speed has been increased manifold as is shown in next section containing results because of various reasons: a. Use of histogram for iterations rather than applying it on the image itself. b. Number of clusters is chosen faster. c. Initial cluster centres are also chosen very fast and they are found to be near final cluster centre which decreases the overall number of iterations. But there is a drawback in this method of segmentation that it is susceptible to noise because noise can bring heavy shift in the final cluster centres and thus degrade the segmentation result. The effect of noise can be removed by using a filter before segmenting the image to get better result.

CHAPTER 6 Auto-segmentation/auto-pilot Introduction In a step to go further to automatic segmentation, to be more useful for computer vision and machine learning, we made an effort wherein we don’t even require giving the input to the moving average filter used in our proposed algorithm. Thus, we have been able to advance further in our research to make the algorithm more user-friendly and faster. The program itself applies the moving average filter on the histogram of the image for different values of ‘t’ in steps of 2. This way a number of filtered outputs will be obtained and the number of peaks obtained from the histogram may keep on decreasing due to more and more smoothing of the histogram. And hence the number of clusters or the value of k may also keep on changing according to our algorithm. The program will then see what are the values of k which is/are stable, i.e. when the size of the moving average filter is varied which value of k occur repetitively. Then, only for those values of k the segmentation is done and the results are shown. This way we have been able to avoid any kind of human intervention and made the program easier and faster. Presently, if a biomedical practitioners or some other professional interested in segmentation uses K-means algorithm, he/she would have to try various values of k and then see which value is suitable for him/her or is giving good results, which can be tedious, but here he/she can just give one input to the program i.e. the image to be segmented, then the program itself will find the stable values of k and show the segmented image only for those values of k.

Auto pilot Auto pilot is a concept of finding all stable segmentations of an image. Initialize t=3, s=maximum clusters you want, sm=minimum clusters you want Step 1: increment ‘t’ in step of 2 Step 2: find initial cluster centers, Step 3: if number of clusters=s, autopilot has finished its job,break. Otherwise, go to step 1

Original image This image has been segmented into 4,3,2 clusters by auto pilot as shown below

clusters=4

clusters=3

clusters=2

CHAPTER 7 Fast Video Segmentation with automatic change of number of clusters Real-time Video-segmentation Introduction A video is made up of many images called frames which are linked together and these frames are displayed at such a high speed that it appears to us as if it is one single component(one video). But, it is not so, hence, video segmentation is similar to image segmentation only major difference being that we segment each frame of the video in order to segment it. But various other aspects come into picture while segmenting a video since it is not random images which are to be segmented they are all linked in a manner. Several video segmentation algorithms have been proposed. They can be classified into three types: 1. edge information based video segmentation, 2. image segmentation based video segmentation and 3. change detection based video segmentation. 1. Edge information based algorithms, first apply edge detector algorithms to find edge information of each frame and then keep tracking these edges. A morphology motion filter is also applied to find edges belonging to foreground objects. Next, a filling technique can connect edge information to generate final object masks. This method can deal with both still camera and moving camera situations; however, the computation load is very large. 2. Image segmentation based algorithms first apply image segmentation algorithms, such as watershed transform and colour segmentation on each frame to separate a frame into many homogeneous regions. By combining motion information derived with motion estimation, or frame difference, regions with motion vectors different from the global motion are merged as foreground regions. These algorithms often can give segmentation results with accurate boundaries, but the computation load for image segmentation and motion information calculation is also high, and the region merging process often has many parameters to set. Both these two kinds of algorithms are too complex to be integrated into a real-time system. 3. Change detection based segmentation algorithms, threshold the frame difference to form change detection mask. Then the change detection masks are further processed to generate final object masks. The processing speed is high, but it is often not robust. The segmentation results are suffered from the uncovered background situations; still object situations, light changing, shadow, and noise. The robustness can be promoted by a lot of post-processing algorithms; however, complex post-processing will make the efficiency of less computation lost. The threshold of change detection is very critical and cannot be automatically decided. These reasons make this kind of algorithms not practical for real applications.

All these algorithms have their own specific areas of excellence like image segmentation type algorithms can give very good segmentation results but are too heavy to be used for real-time applications, and change detection algorithms being light are often used for real-time applications though a compromise on quality of segmentation is to be made. Real time video segmentation is a very difficult task since the segmentation of the frame has to be done very fast i.e. before the next frame arrives. Though the speed of arrival of frames can be varied but still it has to be fast enough so that it doesn’t appear as a collection of images but a video. In general, a speed of 25frames/second is found to be sufficient but that too requires the segmentation algorithm to be really fast. Proposed real-time video segmentation algorithm We noticed that since our proposed algorithm is very fast in comparison to regular K-means algorithm we thought that we can go one more step forward and try real-time video segmentation. Our method would qualify as the second category of segmentation i.e. image segmentation based algorithm, wherein we segment each frame of the video separately till the next frame arrives. These types of algorithms are famous for their segmentation quality and poor time efficiency, but our proposed method has not only improved the quality but also has increased the speed large enough to be used for real-time purposes which earlier was not possible for other image segmentation type algorithms.

By using moving average filter to find the number of clusters we have been able to break the video into variable number of clusters for each frame i.e. each frame will have its own number of clusters. If general K-means algorithm is applied to segment a video (not even real time) in which the number of clusters is given as an input, it cannot be given for each frame as it will be very difficult, so K will be given for a complete video. Hence, the program will try to break every frame into equal number of clusters. For example, if the value of k is given as 4 then the program will try to break each frame into 4 clusters even if in a frame there is only one intensity value. This will give rise to the problem of non-convergence since the rest of the three clusters won’t be able to find final cluster centres and it will give error. But by our method if any of the frame has many objects of different intensities then it will be appropriately broken into many clusters and if there is only one intensity then it will have only one cluster. The additional feature of auto-pilot which has been incorporated so that the program itself decides the value of n for moving average filter to give the number of clusters brings it closer to being unsupervised. We just need to give the input that how much detail do we require from the video i.e. If we require good amount of detail then we can keep number of clusters to be the maximum value of n which comes out to be stable or if we require only crude discrimination then we can have minimum stable value of n as number of clusters.

In video segmentation, clustering has been used only for video summary, but not for segmentation of video frame itself, because of large computing time. By using autopilot as discussed, segmentation of video is possible with automatic change in number of clusters when there is introduction of new object in the image. This automatic change becomes a crucial point of consideration in computer vision. This can be established by using the auto pilot by choosing proper limits of clusters and breaking the autopilot at first possible segmentation itself. This fastest video segmentation algorithm as speed can go even up to 100 frames per second based on limits of clusters whereas speed of previous algorithms is limited to only 25 frames per second. In applications like where we are concerned about only watching the video segmentation we can just use color map to give the effect of segmentation without actually getting into the image and cause increased computation time. This makes algorithm time independent of size of frame.

Uses,  

We can also use this algorithm for lossy video compression in internet video chating or live streaming etc. In algorithms having to segment large database of images. This can save lot of time.

Frames of same video with change in number of clusters by introduction of object in the video

CHAPTER 8

GRAPHIC USER INTERFACE

Layout of GUI

Divided into 7 panels: 1. 2. 3. 4. 5. 6. 7.

Loader Panel Error and Selection Panel Viewer Panel Interaction Panel Initialization Panel Segmentation Panel Results Panel

Loader Panel

  

Used for loading the image in the software Image name should be written in ‘file name.file format’ Image is loaded as soon as Load Image button is pressed



Software works only for 2 dimensional images. Therefore Image should be first converted into 2 dimension and then it can be loaded

Error & Selection Panel

    



Used for error selection & Theorem selection Error is the minimum error allowed between consecutive iteration to stop the iterations. It acts as breaking criteria 10 Algorithms have been loaded in the software. User can select any one of them for segmenting the image First 6 Algorithms are already existing and last 4 Algorithms are proposed ones Existing Algorithms: 1. K-means 2. Fuzzy-cmean 3. Fcm for image with salt and pepper noise 4. Fcm for image with Gaussian noise 5. GKFCM 6. Modified GKFCM Proposed Algorithms 1. K-means using histogram 2. Fuzzy c-means using histogram 3. F+k means 4. Kf-means

Viewer Panel

 

Axes 11 for showing image with initial cluster centers(to give an idea about segmentation) Axes 6 for showing original image

Initialization panel

   

Axes 1 is used for showing original histogram and filtered histogram Slider is used for giving size of moving average filter as user input Popup menu to select algorithm for finding initial cluster centers Provision for starting with normal cluster centers as ‘Normal’

 

KHT and FHT for speeding up the segmentation of images that can use only image based algorithms like image with noise Crop and Zoom In buttons for cropping the images and finding the pixel values respectively.

Interaction Panel

   

Used for snapshot Live segmentation demo(for computer vision ) Chating demo User input: No. of frames

Segmentation Panel

    

Display and editing of initial cluster centers Starting Segmentation Choosing color map and color of edge For choosing variables controlling neighborhood effect Choosing Auto Pilots: 1. Auto pilot using k-means 2. Auto Pilot using fuzzy c-means

Results Panel

  

Display of final cluster centers. Display of time taken for segmentation algorithm. Display of number of iterations carried out.

CHAPTER 9

Experimental Results

Original Image

Original Histogram

Filtered Histogram Comparision between speeds for initial cluster centers found with different theorems (Algorithm used is simple k-means).

Normal Initial cluster centers for number of clusters as 3= [24 73 122] Final cluster centers= [19 47 91], Time=0.3773 secs, iterations=12

Initial cluster centers using theorem 1 for ‘t’ as 15= [19 39 99] Final cluster centers= [18 45 90], Time=0.1466 secs, iterations=4

Initial cluster centers using theorem 2 for ‘t’ as 15= [0 27 86] Final cluster centers= [13 38 88], Time=0.2331 secs, iterations=7

Observe the reduction in no. of iterations required to get the result.

Since, we have found fastest results with theorem-1, Segmentation results in that case are being shown:

Comparision between results obtained by different algorithms(using initial cluster centers of theorem -1):

Initial Cluster centers:[34 94 128] k-means:

Fuzzy c-means:

k-means using proposed method:

Fcm using propsed method:

F+k means:

kf-means

Segmentations results obtained by kf-means:

Segmentation of noisy images: (i)Salt & Pepper noise: BCFCM_S2 is used

Initial Cluster Centers: [32 78 123 255] ‘t’=28 ‘af’=10 ‘sig’=20

cluster1

cluster2

cluster3

cluster4

Original Image with segmented edge

Segmented Image with segmented edge

Edge obtained by matlab

Edge obtained by propesed method

(ii)Gaussian Noise Algorithm used=BCFCM_S1

Initial cluster centers=[57 77 255] ‘t’=41 ‘af’=60 ‘sig’=20

cluster1

cluster2

Original Image with segmented edge

cluster3

Segmented Image with segmented edge

Edge obtained by matlab

GKFCM:

Edge obtained by propesed method

Cropping Sometimes detail required in the mage may be very small portion of entire image. In that case cropping is necessary to obtain useful results so that the detail plays a significant role in the segmentation

Cropped image To be able to see the tumor clearly

cluster1

cluster2

cluster4

cluster5

Tumor has got separated in cluster 5.

cluster3

CHAPTER 10

ACCOMPLISHMENTS, FUTURE RESEARCH AND APPLICATIONS

Accomplishments: 1. We have been able to implement six different algorithms for clustering K-means, Fuzzy C-means, BCFCM, KFCM_S1, KFCM_S2 and GKFCM. 2. We have been able to make modifications to already existing algorithms to remove the problem of number of clusters, initial cluster centres and non-convergence. 3. Four new methods have been proposed by us. 4. By speeding-up of the algorithms we have been able to do real-time image segmentation. Future research or development: 1. Better selection of number of clusters can be done, though auto-pilot gives decent results and is fast but it can be further improved depending upon the applications. 2. The algorithm is much faster than required to do 25frames/second so the work can be done on improving the quality of the segmented video. 3. A further research can be done on choosing better membership function and relationship between pixel and its neighbours that removes more noise gives better segmentation results. Applications: 1. For many segmentation algorithm K-means is pre-processing step on which other segmentation tools are used so our method can speed-up segmentation and quality of output as well , and can speed-up other processes requiring clustering like data mining, information retrieval, etc. 2. By using the auto-pilot option the K-means algorithm has been made more unsupervised and can be useful in computer vision and machine learning. 3. Real-time video segmentation can be useful in video-surveillance where data size is large and time to survey it is less or in on-line chatting when the speed of transmission is poor then the segmented image can be compressed more for fast transmission and retrieval.

References

1. Digital Image Processing using MATLAB, by Gonzalez, Woods and Eddins, 2009 2. Miin-Shen Yang, Hsu-Shen Tsai, 2008, ‘A Gaussian kernel-based fuzzy c-means algorithm with a spatial bias correction’ 3. Erlend Hodneland ,July, 2003, ‘Segmentation of Digital Image’ 4. Ursula Gonzales-Baron, Francis Butler, March 2005, ‘A comparison of seven thresholding techniques with the k-means clustering algorithm for measurement of breadcrumb features by digital image analysis’ 5. D.A. Clausi, 2002, K-means Iterative Fisher (KIF) unsupervised clustering algorithm applied to image texture segmentation 6. Likas, Nikos Vlassis, Jakob J. Verbeek, 2003, The global k-means clustering algorithm 7. Sadullah Sakallioglu, Murat Erisoglu, Nazif Calis ,2011, ‘A new algorithm for initial cluster centers in k-means algorithm 2011’ 8. Liang Bai, Jiye Liang, Chuangyin Dang, 2011, ‘An initialization method to simultaneously find initial cluster centers and the number of clusters for clustering categorical data’ 9. Fuyuan Cao, Jiye Liang, Guang Jiang, 2009, ‘An initialization method for the K-Means algorithm using neighborhood model’ 10. A.K. Jain, R.C. Dubes, Algorithms for Clustering Data 11. K.K. Chen, L. Liu, 2008, ‘Best K: critical clustering structures in categorical datasets’ 12. J.J. Li, M.K. Ng, Y.M. Cheng, Z.H. Huang, 2008, ‘Agglomerative fuzzy k-means clustering algorithm with selection of number of clusters’ 13. J.M Peña, J.A Lozano, P Larrañaga, 1999, An empirical comparison of four initialization methods for the K-means algorithm 14. Yasira Beevi and Dr. S. Natarajan, Dec 2009, An efficient Video Segmentation Algorithm with Real time Adaptive Threshold Technique

Accomplishments: 5. We have been able to implement six different algorithms for clustering Future research or development: 4. Better selection of number of clusters can be done, though auto-pilot gives decent results and is fast but it can be further improved depending upon the applications. 5. The algorithm is much faster than required to do 25frames/second so the work can be done on improving the quality of the segmented video. 6. A further research can be done on choosing better membership function and relationship between pixel and its neighbours that removes more noise gives better segmentation results. Applications: 4. For many segmentation algorithm K-means is pre-processing step on which other segmentation tools are used so our method can speed-up segmentation and quality of output as well , and can speed-up other processes requiring clustering like data mining, information retrieval, etc. 5. By using the auto-pilot option the K-means algorithm has been made more unsupervised and can be useful in computer vision and machine learning. 6. Real-time video segmentation can be useful in video-surveillance where data size is large and time to survey it is less or in on-line chatting when the speed of transmission is poor then the segmented image can be compressed more for fast transmission and retrieval.