## 4 The Proposed Method
### Improving FCM Algorithm  
PSO takes real numbers as particles. It is theoretically simple and can be implemented in a few lines of code. But PSO easily gets stuck in local optima. An effective way to overcome premature convergence of basic PSO is to maintain the population diversity for exploring the new search domain during the evolution process. We propose an improved optimization algorithm by adding mutation operator of genetic algorithm (GA) to PSO. The hybrid algorithm combines the standard velocity and position update rules of PSO with mutation operator from GA and makes the search jump out of local optima.  
To improve the FCM algorithm, we utilize the texture information for each pixel to define a spatial constraint term, and then introduce this spatial constraint term into the objective function of FCM. The modified objective function can be expressed as equation (12)  
\[J=\alpha\sum\limits_{k=1i=1}^{K}\sum\limits_{j=1}^{H}\mu_{kj^{m}}\left|\! \left|f_{l}(i,j)-z_{kl}\right|\!\right|+\beta\sum\limits_{k=1i=1}^{K}\sum \limits_{j=1}^{H}\mu_{kj^{m}}\left|\!\left|LBP-z_{kl}\right|\!\right|+\gamma \sum\limits_{k=1i=1}^{K}\sum\limits_{j=1}^{H}\mu_{kj^{m}}\left|\!\left|S-z_{kl} \right|\!\right| \tag{12}\]  
To add spatial information, we use the above feature vector to complete clustering. \(\mu_{kij}\) is a membership matrix where each value represents the membership grade of \(f_{l}\) (_i,j_) which belongs to the \(kth\) class in equation (13). \(z_{xk}\) is the clustering centre. \(z_{lk}\) represents represent the clustering center of the color component which is the color feature. \(z_{4k}\) represents the clustering centre of LBP code. \(z_{5k}\) represents the clustering center of the mean of difference in equation (14). LBP code and \(z_{5k}\) represent the texture feature of the area. \(m\) is a weighting exponent that determines the amount of fuzziness of the resulting classification (in this paper, \(m=2\)). \(\alpha,\ \beta,\ \gamma\) are weights that are manually determined in a trial-and-error fashion (in this paper, \(\alpha=0.1,\ \beta=0.1,\ \gamma=0.8\)). Through merging feature vector, the distance between pixels is more accurate.  
\[\mu_{ij}=\frac{1}{\sum\limits_{k_{i}=1}^{C}(\frac{\alpha(LBP(i,j)-z_{4}(k))+ \beta(S(i,j)-z_{5}(k))+\gamma\left|\!\left|f_{l}(i,j)-z_{l}(k)\right|\!\right| _{\bullet}}{\alpha(LBP(i,j)-z_{4}(k_{1}))+\beta(S(i,j)-z_{5}(k_{1}))+\gamma \left|\!\left|f_{l}(i,j)-z_{l}(k_{1})\right|\!\right|_{\bullet}})^{2/(m-1)}} \tag{13}\]  
\[\left[z_{k}=\frac{\sum\limits_{i=1}^{H^{\prime}}\sum\limits_{j=1}^{W^{\prime}}  
Step 3: Compare the personal best of each particle to its current fitness and set the personal best of each particle to the better performance.  
Step 4: Set the global best to the position of the particle with the best fitness within the swarm.  
Step 5: Change the velocity vector for each particle according to equation (3).  
Step 6: Move each particle to its new position, according to equation (4).  
Step 7: Randomly choose \(p\), when \(p>p_{m}\), the position of each particle will apply mutation operator.  
Step 8: Let \(iter=iter+1\). Go to step 2. And repeat until meets the stop criteria \(iter>Iter_{max}\).  
Step 9: Make the position \(z_{ij}\) as initial cluster centers, initializes membership matrix \(u_{ij}\) for random value between 0, 1.  
Step 10: Use the membership matrix \(u_{ij}\) calculated in equation (13).  
Step 11: According to equation (14), calculate cluster centers. If the relative change between \(\overline{v_{old}}\) and \(\overline{v_{new}}\) are less than a certain threshold ((\(\|\overline{v_{new}}-\overline{v_{old}}\|<\varepsilon\)) (in this paper, \(\varepsilon=10\))), then the algorithm stops. Otherwise, return to Step 10.