Memetic Particle Gravitation Optimization Algorithm for Solving Clustering Problems

Data clustering is a well-known data analysis technique for organizing unlabeled datapoints into clusters on the basis of similarity measures. The real-world applications of data clustering include bioinformatics, vector quantization, data mining, geographical information systems, pattern recognition, image processing, and wireless sensors. The data in a cluster are similar (minimizing the intra-cluster distance) and differ from the data in other clusters (maximizing the inter-cluster distance). The cluster problem has been proven to be NP-hard, but can be solved using meta-heuristic algorithms, such as ant colony optimization, genetic algorithms, gravitational search algorithm (GSA), and particle swarm optimization (PSO). This paper proposes a memetic clustering algorithm with efficient search and fast convergence, respectively, based on PSO and GSA, called the memetic particle gravitation optimization (MPGO) algorithm. The two main mechanisms of MPGO are hybrid operation and diversity enhancement. The former involves the exchange of individuals from two subpopulations after a predefined number of function evaluations (FEs), whereas the latter involves an enhancement operator, which is similar to the crossover process of differential evolution, for enhancing the diversity of each system. Individuals from the PSO and GSA systems are selected for the exchange of solutions by using the roulette-wheel approach. The performance of the proposed algorithm was evaluated on 52 benchmark test functions, six UCI machine learning benchmarks, and image segmentation of six well-known images. A comparison with existing algorithms verified the superior performance of the proposed algorithm in terms of a fitness value, an accuracy rate, and a peak signal-to-noise ratio.


I. INTRODUCTION
Data clustering has been attracting increasing attention in the field of data analysis. Typically, data clustering is used to organize data into relevant clusters on the basis of similarity criteria for identifying groupings that minimize intra-cluster distances and maximize inter-cluster distances. Each cluster comprises data that are similar and differ from data in other clusters, and the clustering problem has been proven to be an NP-hard problem [1], [2].
Clustering algorithms can be classified into two main types: hierarchical and partitional [3]. Hierarchical clusters can be presented as a dendrogram in which the input data are organized in a tree structure according to the agglomerative mode or divisive mode in a greedy manner [4].
PSO is a well-known swarm-based intelligence algorithm that has the advantage of rapid convergence. However, this rapid convergence makes it susceptible to the critical issue of premature convergence during the evolutionary procedure when solving complex problems. In addition, the result of PSO is strongly dependent on inertial weight and social and cognitive coefficients. Consequently, the diversity of a population often decreases rapidly when approaching a global or local optimum, and in such cases, there is no efficient operator that can finetune the search space for PSO and improve the quality of its solution. GSA, a new meta-heuristic method based on the Newtonian laws of gravity and motion, has recently been proposed. Owing to the use of masses, GSA has a relatively high computing efficiency. Furthermore, previously published experimental studies have shown that GSA adopts an efficient search strategy for solving complex problems that enables it to achieve better performance than PSO [27]. However, when the population is in a convergence state, GSA exhibits poor performance and loses the ability to explore better solutions [88].
This study was conducted with the primary objective of developing a PSO and GSA hybrid that improves their individual search abilities, retains their advantages, and overcomes their disadvantages. To this end, this paper proposes a memetic clustering algorithm with the advantages of fast convergence based on PSO and efficient search based on GSA called the memetic particle gravitation optimization (MPGO) algorithm. The two main mechanisms of MPGO are hybrid operation and diversity enhancement. The former involves the exchange of individuals from two subpopulations after a predefined number of iterations, whereas the latter involves an enhancement operator, which is similar to the crossover process of DE, for enhancing the diversity of each system. Individuals from the PSO and GSA systems are selected for the exchange of solutions via the roulette-wheel approach [89].
The procedure employed by MPGO is as follows. First, the solution of each system is initialized randomly. Second, center particle swarm optimization (CPSO) [90] is adopted to obtain the center particle and center agent. Third, the PSO and GSA systems are executed simultaneously. Fourth, a global update hybridizes the PSO and GSA systems to enhance their exploitation and exploration abilities in order to obtain a better solution. Fifth, the diversity of the systems is enhanced using the crossover process of the DE algorithm [91]. Finally, specific individuals from the PSO and GSA systems are selected for exchange via roulette-wheel selection [89] after a predefined number of function evaluations (FEs). The performance of the proposed algorithm was compared with that of existing meta-heuristic algorithms on 52 benchmark test functions, six UCI machine learning benchmarks, and image segmentation of six well-known images. The results verified the superior performance of the proposed algorithm in terms of fitness value, accuracy rate, and peak signal-to-noise ratio (PSNR).
The remainder of this paper is organized as follows. Section II reviews background and related studies. Section III presents the problem definition of clustering. Section IV describes the proposed MPGO algorithm. Section V evaluates the performance of the proposed algorithm for data clustering and image segmentation. Finally, Section VI states the conclusions and briefly explores future research directions.

II. BACKGROUND KNOWLEDGE AND RELATED WORK
This section reviews relevant background and related studies, focusing on particle swarm optimization (PSO), gravitational search algorithm (GSA), and Center PSO (CPSO).

A. PARTICLE SWARM OPTIMIZATION
PSO is a stochastic swarm-based intelligence algorithm is inspired by the collective behavior of schools of fish or flocks of birds [33], [92]. It is inspired by the collective behavior of schools of fish or flocks of birds. In the PSO, the positions and velocities of N particles in d-dimensional space represent the potential solutions based on a randomly initialized. In PSO, the positions and velocities of N particles are represented in d-dimensional space to offer randomly initialized potential solutions. The solution for particle i in iteration t is given by Eq. (1). The current solution for each particle is updated with regard to the local and global optima, which are computed using Eqs. (2), and (3) respectively. Given N particles for which the positions are represented as potential solutions, the solution particle i in iteration t can be defined as follows: where x t i,j and v t i,j denote the position and velocity, respectively, of particle i in dimension j, and ω is an inertial weight that influences the convergence speed. The local optimum p t i and global optimum p t gbest represent the current best position and best position in the swarm among all the particles at time t, respectively. The small constants c 1 and c 2 represent the cognitive parameter and social parameter, respectively, and r 1 and r 2 are random variables in the interval [0, 1].

B. GRAVITATIONAL SEARCH ALGORITHM
GSA is a population-based intelligence approach inspired by the laws of gravity and mass interactions [27]. In the GSA system, the mass aggregates are described as agents that achieve mutual interaction through Newtonian gravity and the laws of motion. First, each agent is randomly generated with a solution (called the position and velocity) by GSA. The algorithm computes the fitness values and updates the position and velocity of each agent among the current population. Then, the position of agent i in iteration t, which indicates a potential solution for N agents, is defined by Eq. (4): The fitness can be evaluated in several steps, as expressed by Eqs. (5) to (10). First, the gravitation coefficient G t in iteration t is calculated as follows: where β is the shrinking constant. Next, the best and worst agents (denoted as best t and worst t , respectively) are obtained using equations: where fit t i represents the fitness value of agent i at time t. The masses and overall average mass are computed using Eqs. (6) and (7), respectively.
The total force acting on agent i from other agents is weighted randomly and calculated using Eqs. (8) and (9), respectively.
where ε is a constant to avoid the division by zero exception, rand j is a random variable in the interval[0, 1], and R t i,kb is the Euclidean distance between agent i and kb.
Finally, the acceleration in this iteration a t i,j is computed using Eqs. (10) and (11): The fittest agent Kbest is the agent with the greatest mass among the top K agents. K is initialized to the number of agents N and decreases over time. Further, K will be updated in each iteration according to Eq. (12), as follows [93]: where γ imposes a controlled linear decrease on K . In the next iteration, the solution space of each agent is updated using Eqs. (13) and (14): C. CENTRALIZED APPROACH CPSO is an improved PSO approach involving a population of N particles, with their positions representing potential solutions [90]. After the positions of N âĹ 1 particles have been updated, a central individual ci is added to the population, as defined by Eq. (15): where x t+1 ci,j is the position of the center particle in dimension j in iteration t + 1.

III. PROBLEM DEFINITION
Clustering is an unsupervised learning process in which data are classified into groups, where each cluster comprises similar data that differ from the data in other clusters. For a set of n patterns (datapoints ) and k clusters, let τ = the i-th pattern. Each pattern exists in d-dimensional space. The partitional clustering algorithm creates a partition of C = {C 1 , C 2 , C 3 , ..., C k } clusters such that similar patterns are partitioned into the same cluster. The partition process is defined by Eq. (16) [1], [94]: (16a) The Euclidean distance between two patterns i and j can be calculated using Eq. (17): To find the optimal grouping, in this study, we combine the inter-cluster distance, intra-cluster distance, and mean squared error (MSE) as a multi-objective problem that must be minimized. The three parts of the fitness function are expressed as follows in Eq. (18) [95], [96]: where Z represents all the patterns; d max (Z , C) is the maximum average Euclidean distance within each cluster; zmax is the maximum pattern value among all the patterns; d min (C) is the minimum Euclidean distance between any two clusters; ω 1 , ω 2 , and ω 3 are constants; and MSE represents the compactness of the clusters. MSE is defined as the mean squared error of the distance of the patterns from the centroid of the cluster to which they belong as follows in Eq (19): where τ p represents the p − th pattern and m j is the j − th centroid of cluster C j . In this study, ω 1 , ω 2 , and ω 3 were set as 0.3, 0.3, and 0.4, respectively.

IV. PROPOSED ALGORITHM
Partitional clustering is an NP-hard problem that involves dividing n patterns into k clusters on the basis of a predefined similarity measure. Thus, a meta-heuristic algorithm is suitable for solving this type of problem. The proposed MPGO algorithm combines PSO and GSA with a hybrid operator and enhancement operator to determine the best partition for dividing each pattern with a suitable clustering center.

A. SOLUTION REPRESENTATION
To use a meta-heuristic algorithm for solving the clustering problem, all the individuals need to be encoded into the appropriate solution as cluster centers. As both PSO and GSA are population-based algorithms that were originally proposed to solve continuous problems, we can easily encode the cluster center of each particle and agent. First, each particle or agent, including the position and velocity, is generated randomly. Each solution for the individual consists of a vector whose size is equal to the number of dimensions multiplied by k, the number of cluster centroids. Figure 1 shows an example for two cluster centroids, where each cluster center has three dimensions of data. In this example, we assume three particles and three agents in each system.  (2) and (13). In this study, the oscillations in the PSO and GSA systems are controlled by a time-varying maximum velocity V max . The velocity thresholds [97] are expressed as follows in Eqs. (20) and (21): where the exponent h is a constant; α is used to control the maximum bounds of the search space, and

C. GLOBAL UPDATE
This section presents the hybridization method, i.e., the global update, of PSO and GSA. Each particle and agent in VOLUME 7, 2019  the global update process, given by Eqs. (22) and (23), are integrated into the MPGO individual by combining the PSO velocity and GSA acceleration with social coefficients c 3 and c 4 : where c 3 and c 4 denote the cognitive parameter and social parameter, respectively, and rand i is a random number in the range [0,1]. Figure 2 shows an example of the global update process. In this example, we assume that the velocities of Particle 1 and

D. DIVERSITY ENHANCEMENT OPERATOR
Owing to its the fast convergence, the PSO algorithm may suffer from the critical issue of premature convergence during the evolutionary procedure when solving complex problems. Furthermore, when the population is in a convergence state, GSA exhibits poor performance and loses the ability to explore better solutions. Therefore, in this paper, we propose a diversity enhancement operator, which is similar to the crossover process of the DE algorithm [91], to enhance the diversity of each system. The main idea of the diversity enhancement operator is to replace the current solution by the previous one. For example, if the original particle (agent) is x t i and the new trial particle (agent) is x t+1 i , the diversity enhancement operator will arrange the new trial particle (agent) in each dimension as follows in Eq. (24): An example of the enhancement operator is shown in Figure 3. The figure shows two scenarios. In iteration t, assuming that the fitness value of individual i is 38.24, after the evolution in iteration t + 1, the fitness value is changed to 50.75. As the original individual is better than the trial one, the new trial solution will be replaced by the original one. On the other hand, assuming that the fitness value of individual i is 50.75, the new trial solution in the next iteration t + 1 is 38.24. According to the rule, the new trail solution is retained because it is better.

E. HYBRID OPERATOR
The diversity enhancement operator can improve the individual diversification of the PSO and GSA systems, but it cannot 80954 VOLUME 7, 2019 improve the overall diversity because the PSO and GSA systems easily fall into local optima when they are running independently. The main idea of the hybrid operator is to trigger the diversity of all the individuals of PSO and GSA. If we can exchange some individuals between the systems in a suitable period, the quality of the solution may be improved considerably. Thus, the hybrid operator is triggered after a specified number of function evaluations (FEs). At this point, certain individuals are selected and exchanged between the two systems via roulette-wheel selection [89], with probabilities that depend on their fitness values.
The roulette-wheel approach is expressed as follows in Eq. (25): where pn i represents the probability that each individual will be selected, and fit i is the fitness value of particle/agent i. An example of the hybrid operator is shown in Figure 4. In the PSO system, the random number is 0.45, which is located in region P2. In the GSA system, the random number is 0.83, which is located in region A5. Thus, in the hybrid operator, particle P2 and agent A5 will be selected for exchange between the two systems. Figure 5 shows the procedure of the proposed MPGO algorithm. In the initial step, each particle (agent) is generated randomly. Second, CPSO is implemented to determine the center particle and agent. Third, the MPGO algorithm simultaneously executes the PSO algorithm and GSA along with the diversity enhancement operator. Fourth, a global update is performed by combining the PSO and GSA individuals to generate the new MPGO individual. Finally, the hybrid operator is triggered when a predefined maximum number of FEs is reached, and some individuals of the PSO and GSA systems will be exchanged via the roulette-wheel approach.

A. ENVIRONMENT SETTING
All the simulations were performed on a computer with an Intel Xeon E3-1225 (3.30 GHz) CPU and 16 GB main memory, running Windows 7 as the OS. All the programs were implemented in Python.

B. BENCHMARK FUNCTIONS
To evaluate the performance of the MPGO algorithm, we employed 30 simply test functions in our experiments. All the 30 simply benchmarks are summarized in Table 1 [98]- [100]. Here, the constant d denotes the number of dimensions of the function.

C. PARAMETER SETTINGS
The basic parameter settings of each algorithm are listed in Table 2. The parameters of the PSO and GSA systems are listed in the second and third rows, respectively, and the fourth row lists the parameters used in the global update (hybridization of the PSO and GSA systems). All the experimental results were collected from 20 independent runs.
According to the convergence curve for the selected test function f 2 shown in Figure 6, it is difficult for the function to find the optimal solution. Thus, in accordance with [101], we replaced the maximum number of iterations with maximum number of FEs for each experiment on the test function benchmarks. The performance of MPGO was compared with that of PSO [102], GSA [27], lightning search algorithm (LSA) [29], moth search (MS) [31], butterfly optimization algorithm (BOA) [18], symbiotic organisms search (SOS) [35], and moth swarm algorithm (MSA) [32]. The maximum number of (FEs) for all the benchmark test functions was 50000. The results indicated that for the PSO, BOA, LSA, and MS, the curve tends to fall gradually (convergence occurs after 25000 FEs), and for MPGO, the convergence speed remains in the descending state. On the basis of these experimental results the number of FEs was consequently set to 25000.

D. COMPARISON OF MPGO WITH SIMPLY TEST FUNCTIONS 1) COMPARISON RESULTS
In this section, the performance of MPGO is compared with that of PSO [102], GSA [27], lightning search algorithm (LSA) [29], moth search algorithm (MS) [31], butterfly optimization algorithm (BOA) [18], symbiotic organisms search (SOS) [35], and moth swarm algorithm (MSA) [32] for a maximum of 25000 function evaluations (FEs) on all the 30 simply benchmark test functions. Table 3 lists the average best fitness value for each simulation. The mean values in bold font represent the algorithms that achieve superior performance. The proposed MPGO, MS and MSA showed the best overall performance. According to the results, MPGO is superior to PSO, GSA, LSA, BOA, and SOS on most of the functions, whereas it is inferior to LSA on functions f 13 Table 3 shows that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS and MSA for the overall performance evaluation. On the other hand, the performance of MPGO is degraded on functions f 9 , f 13 , and f 30 . Table 4 reports the results of two-sided Wilcoxon rank-sum tests [103] of MPGO, PSO, GSA, LSA, MS, BOA, SOS, and MSA at a significance level of α = 0.05 on the basis of the performance results presented in Table 3. The Wilcoxon rank-sum test was conducted between MPGO and each compared algorithm on every test function. The sign + indicates that MPGO is significantly better than the compared algorithm, the sign -indicates that MPGO is significantly worse than the compared algorithm, and the sign indicates that there is no significant difference between their performances. The results show that MPGO also dominates PSO, GSA, LSA, BOA and SOS. In addition, MPGO achieves slightly better results than the MS and MSA algorithm. In summary, Table 4 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation. On the other hand, the performance of MPGO is degraded on functions f 28 , and f 30 .
For scalability of the median size to 30 and 50 dimensions, Table 5 lists the average best fitness value for each simulation. The proposed MPGO, MS, and MSA showed the best overall performance. According to the results, MPGO is superior to PSO, GSA, LSA, BOA, and SOS on most of the functions, whereas it is inferior to LSA on function f 13 . MPGO is superior to MS, it performs worse than MS on function f 9 , but outperforms on functions f 13 , and f 15 . In addition, it performs worse than MSA on functions f 13 , and f 15 , it outperforms MSA on functions f 2 and f 8 . In summary, Table 5 indicates that the superior performance of MPGO is statistically sig-nificant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation, but is weak on functions f 9 , f 13 , and f 15 . Table 6 reports the results of two-sided Wilcoxon rank-sum tests [103] of MPGO, PSO, GSA, LSA, MS, BOA, SOS, and MSA at α = 0.05 significance level on the basis of the performance results presented in Table 5. The Wilcoxon rank-sum test was performed between MPGO and each compared algorithm on every test function. The results show that MPGO also dominates PSO, GSA, LSA, BOA, SOS, and MSA algorithm. In addition, MPGO achieves slightly better results than MS. In summary, Table 6 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the  overall performance evaluation, and that MPGO can be scaled to higher dimensions (30 and 50).
For the scalability of median size of 100 and 200 dimensions, Table 7 lists the average best fitness value for each simulation. The proposed MPGO, MS, and MSA showed the best overall performance. According to the results, MPGO is superior to PSO, GSA, LSA, BOA, and SOS on most of the functions, whereas it is inferior to LSA on function f 13 . MPGO performs slightly better than MS. In addition, VOLUME 7, 2019 although it performs worse than MSA on functions f 3 , f 13 and f 15 , it is better than MSA on functions f 1 , f 2 , f 5 , f 7 , f 8 , f 10 , f 11 , f 12 and f 14 . In summary, Table 7 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation, whereas it is degraded on functions degraded on functions f 3 , f 9 , f 13 , and f 15 . Table 8 reports the results of two-sided Wilcoxon rank-sum tests [103] of MPGO, PSO, GSA, LSA, MS, BOA, SOS, and MSA at α = 0.05 significance level based on the performance results presented in Table 7. The results show that MPGO also dominates PSO, GSA, LSA, BOA, SOS, and MSA. In addition, MPGO achieves marginally better results than MS. In summary, Table 8 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation, and that MPGO can be scaled to higher dimensions (100 and 200).
For scalability of the size to 10 and 30 dimensions, Table 10 Table 10 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation. whereas it is degraded on functions f 32 , f 36 , f 45 , and f 52 .
For the scalability of size 50 and 100 dimensions, Table 11 lists the average best fitness value for each simulation. The     Table 11 indicates that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation. On the other hand, the performance of MPGO is degraded on functions f 31 , f 32 , f 33 , and f 48 . Table 12 and Table 13 reports the results of the two-sided Wilcoxon rank-sum tests [103] of MPGO, PSO, GSA, LSA, MS, BOA, SOS, and MSA at the α = 0.05 significance level on the basis of the performance results presented in Tables 10 and 11. The results show that MPGO also dominates PSO, GSA, LSA, BOA, SOS, and MSA algorithm. In addition, MPGO achieves slightly better results than the MS. In summary, Tables 12 and 13 indicate that the superior performance of MPGO is statistically significant with PSO, GSA, LSA, MS, BOA, SOS, and MSA for the overall performance evaluation.

H. COMPARISON OF MPGO WITH DIFFERENT VARIANTS
The performance of MPGO in terms of application to data clustering was also evaluated. We employed six UCI VOLUME 7, 2019

benchmarks
(http://archive.ics.uci.edu/ml/datasets.html), with pattern numbers ranging from 150 to 1728, as listed in Table 14. Several variants of the MPGO algorithm were compared in the simulations. The number of FEs and individuals exchanged among the composite algorithms of each variant are listed in Table 15. MPGO exchanged two individuals between PSO and GSA every 250 FEs and 10 individuals in a maximum of 25000 FEs in the 20 runs.
In this experiment, the datasets Iris, Wine, and Breast cancer were selected to verify each MPGO variant. In summary, the performances of all the variants were approximately equal for 25000 FEs. The average accuracy rates are summarized in Table 16; the results indicate that MPGO2 exhibited the highest average accuracy on the Wine and Breast cancer benchmarks, whereas MPGO1 exhibited the highest accuracy on the Wine benchmark. Thus, MPGO2 was used for comparison with the other algorithms in the remaining experiments.

I. EXPERIMENTAL RESULTS OF DATA CLUSTERING
The performance of MPGO was compared with that of the k-means algorithm, PSO, GSA, black hole (BH) algorithm [43], and WOA [64] on six UCI datasets (Iris, Wine, Breast cancer, Car evaluation, Statlog, and Yeast). The performance measure is defined by Eq. (26): where, Accuracy denotes the improvement in the accuracy rate, Q mpgo denotes the accuracy of the MPGO algorithm, and Q algo denotes the accuracy of k-means algorithm [9],  PSO algorithm [59], GSA [105], BH algorithm [43], and WOA [64].
The experimental results are summarized in Table 17. The Accuracy values of the MPGO algorithm are better than those of the k-means ( from 44.3% to 80.8%), PSO (from 1.9% to 53.0%), GSA (from 1.7% to 37.0%), BH (from 0.3% to 26.7%), and WOA (from 0.3% to 23.8%). Furthermore, MPGO is more effective than all the algorithms on the Statlog and Yeast benchmarks (from 14.1% to 80.8%, respectively).

J. APPLICATION TO IMAGE SEGMENTATION
In the image segmentation process, an image is divided into a set of regions. Each pixel is classified and assigned to a region on the basis of similarity. Thus, meta-heuristic algorithms can be easily applied to the image segmentation problem via partitional models [95], [106]. The performance of the proposed MPGO algorithm was verified by segmenting six well-known 8-bit gray images having a resolution 256 × 256, as shown in Figure 7. The metric used to compare the results was the PSNR value, which is defined by Eq. 27: PSNR = 10 * log 10 255 2 MSE The experimental results are listed in Table 18. According to the results, the average PSNR value of MPGO is better than that of k-means, PSO, GSA, BH, and WOA by 0.64, 0.43, 0.42, 0.10, and 0.09, respectively.

VI. CONCLUSIONS AND FUTURE RESEARCH DIRECTIONS
This paper proposed the MPGO algorithm for solving clustering problems. MPGO combines PSO and GSA to produce a hybrid optimization algorithm with an efficient search strategy (based on GSA) and fast convergence (based on PSO). The performance of MPGO was evaluated on 52 benchmark test functions, six UCI machine learning benchmarks, and image segmentation of six well-known images. Comparisons conducted with five existing algorithms verified the superior performance of the proposed algorithm in terms of fitness value, accuracy rate, and PSNR. In future research, we will investigate the following four aspects. (1) Use of MPGO for image enhancement in computed tomography (CT); (2) pattern reduction or dimension reduction to improve computing performance; (3) updating of MPGO individuals via the Lévy flight strategy to enhance diversity; and (3) implementation of MPGO on a Raspberry Pi to enable automatic object tracking and text recognition