A Multi-Scale Particle Swarm Optimization (PSO) Approach to Image Registration Yang Chen*, Yuri Owechko, and Swarup Medasani Information Science and Systems Laboratory HRL Laboratories, LLC, Malibu, California, USA Abstract – We formulate the image registration problem as a search for optimal registration transformation parameters, and show how to use Particle Swarm Optimization (PSO) to optimize an objective function in a multi-dimensional parameter space efficiently. Compared with traditional image registration approaches, which are “open-loop” algorithms, the proposed approach uses registration quality feedback loop to drive the parameter search while avoiding potential problems common to open-loop algorithms, namely feature detection, matching and transformation parameter estimation. Furthermore, we show that using a coarse-to-fine multi-scale representation for registration with PSO can lead to better convergence and lower computation cost than using only single scale images. Examples demonstrating all aspects of the proposed approaches are given. Keywords: image registration, particle swarm optimization, multi-scale image processing 1 Introduction Image registration refers to the process of aligning two images taken of the same scene from different positions, different times or using different cameras. For convenience, we call one of the image the reference image, and the second image the test image that is to be registered with the reference image. A typical process of registration, as shown in Figure 2, involves selecting features from the images, matching the features between the images, estimating the transformation model, and finally transforming one of the images into the coordinates of the other image [11]. Reference Image Test Image Feature Detection & Selection Feature/ Region Matching Transformation Model Estimation Image Transformation Registered Images Figure 2. Flow diagram of a typical image registration process. There are many existing approaches to image registration [11], but a common draw-back with these approaches is that the feature matching, transformation model estimation and the final registration transformation processes are all separate, therefore the quality of final image registration does not have any effect on the matching and estimation of the transformation model. Secondly, due to the errors in feature * Author contact information: ychen@hrl.com Transformation Parameters Robust Swarm Optimizer Registration Transformation Generation Reference Image Test Image Feedback Loop Implemented Using Particle Swarm Optimization (PSO) Registration Evaluation Image Transformation Registered Images Feature Detection/ Selection Figure 1. Flow diagram of image registration using Particle Swarm Optimization (PSO). detection and matching, transformation model (the parameters) estimation can become problematic, and often there is no easy way to find which step or steps is to blame in such open-loop approaches. As the transformation model becomes more complex (e.g., involving more parameters for more complex form of transformation), finding a consistent set of transformation parameters that gives rise to an accurate registration becomes more difficult. Our approach to these problems is to use a closed-loop approach and formulate registration as a search problem. We use Particle Swarm Optimization (PSO) [1] to search for a set of consistent registration transformation parameters for the transformation model (Figure 1). PSO is a search algorithm that can be used to optimize an objective function in a multidimensional space efficiently. PSO guides the swarm particles, which represent the transformation parameters in our case, to potentially optimal positions through a process mimicking the social interactions occurring in many species in nature. In our PSO based registration approach, the objective function can be easily defined based on the final registration state (such as image correlation or difference). Furthermore, there is no need to perform complicated transformation model estimation, as the transformation generation is always a forward operation. Finally, since the sole purpose of feature detection and selection is for the evaluation of registration quality (and not for matching as is the case in conventional registration approaches), this process can be greatly simplified. For example, in this paper, only the test image needs to go through feature detection/selection. To further improve the performance of our PSO based registration algorithm, we introduce a multi-scale PSO image The rest of the paper is organized as follows. We first introduce PSO in Section 2, and then in Section 3, we give detailed description of our approach to image registration using PSO. In Section 4 we introduce a number of techniques and modifications to the traditional PSO for improving how PSO works for image registration. Finally in Section 5, we describe multi-scale approach to image registration using PSO. We give concluding remarks in Section 6. 2 Particle Swarm Optimization Particle Swarm Optimization is a simple but powerful population-based algorithm that is effective for optimization of a wide range of functions [1]. PSO models the exploration of multi-dimensional solution space by a “swarm” of agents where the success of each agent has an influence on the dynamics of other members of the swarm (Figure 3). PSO has its roots in theories of social interaction. Each “particle” in the swarm resides in a multi-dimensional solution space. The positions of the particles represent candidate problem solutions, or in the case of wireless networks, vectors of multi-node parameter values. Each particle also has a velocity vector that allows it to explore the space in search of the objective function optima. (PSO should not be confused with particle filters, a completely different set of algorithms that estimate probability distributions for tracking and localization applications.) Each particle i keeps r track of the position vector yi that represents the current best solution it has found. Another position vector yr g is used to store the current global best solution found by all of the particles. The velocity and position vectors for particle i are then changed probabilistically according to a set of simple dynamic update equations: r r r r r r vi (t + 1) = wvi (t ) + c1q1 ( yi (t ) − xi (t )) + c2 q2 ( y g (t ) − xi (t ) ) (1) r r r xi (t + 1) = xi (t ) + χ vi (t + 1) r r where xi (t ) and vi (t ) are the position and velocity vectors at time t of the i-th particle and c1 and c2 are parameters that weight the influence of the “individual best” and “swarm best” terms. w is a momentum constant that prevents premature convergence. χ is the constriction factor which also influences the convergence of PSO. q1 and q2 are random variables that allow the particles to better explore the solution space. The dynamics causes the swarm to concentrate on promising regions of solution space very quickly with very sparse sampling of the solution space. Parameter n registration approach, in which both the reference and the test images are represented using Gaussian pyramids. PSO optimization starts at the top (lowest resolution) and gradually descent the scale levels as the PSO approaches the optimal solution. This approach has the advantage of increasing the PSO convergence rate and reducing the overall computation requirements. Pi • Each particle in the swarm balances global cooperation with other particles with local exploration to efficiently find solutions to high-dimensional optimization problems vi • New paradigm for optimization • Biological parallels: individual's cognition combined with social interaction (individual knowledge combined with group knowledge) Figure 3. Particle Swarm Optimization (PSO) [1] Although PSO is a relatively new area of research, extensive literature already exists that documents its efficiency and robustness as an optimization tool for high dimensional spaces [2, 8]. Both theoretical analysis and practical applications show that PSO converges to good solutions for a wide range of parameter values [3-7]. The evolution of good solutions is stable in PSO because of the way solutions are represented, e.g. small changes in the representation result in small changes in the solution. 3 PSO for Image Registration 3.1 Registration Model and PSO Parameter Space We now describe our registration transformation model. For convenience, we call one of the image a reference image, and the second image the test image. The typical process of registration involves translating, rotating and scaling the test image so that it aligns with the reference image. For simplicity, we consider registration involving only translation and rotation, but the same procedure can be used for registration model involving more parameters and more complex forms as long as the transformation determines a unique correspondence for every pair of points between the reference image and the test image. Our registration transform model can be represented as ⎡ x⎤ ⎡u ⎤ r ⎡ cos(θ ) sin(θ ) ⎤ r ⎡t x ⎤ ⎢ y ⎥ = R ⎢ v ⎥ + t , R = ⎢− sin(θ ) cos(θ )⎥, t = ⎢t ⎥ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ y⎦ (2) r where R is a rotation matrix and t a translation vector, (x, y) and (u, v) are the image coordinates in the reference and test image, respectively. Therefore, the image registration transformation is completely specified by a vector of 3 parameters: [ r x=θ tx ty ] T (3) As can be seen from the last section, to register two images in r our case is to find the vector x that will align the two images r according to Eq. (2). The vector x contains the parameters in PSO framework. Next we will define the objective function J which is required by PSO. 3.2 Objective Function The objective function J for our PSO algorithm must exhibit either maximum or minimum value when two images are aligned or registered. There are many different choices based on image similarity, such as (normalized) cross-correlation, sum of squared difference (SSD), or one based on mutual information (for images from different sensor modalities) [11]. Any of these would be sufficient for demonstrating the effectiveness of PSO for registration, but we choose to use SSD of the two images for its simplicity. In addition, we normalize the sum by the number of pixels involved in the operation so the result becomes independent of the size of overlap (only overlapping areas are used for computing the difference) of the two images. Lastly, to reduce computation, we take only a fixed number of small windows in the test image. These image windows become the features as described in Section 1. We use their transformed versions to compute the difference from the reference image, which reduces the computation of the objective function compared with using the entire image. For the k-th window of the test image, we define its contribution, sk , to J as: s k = ( I max − d k ) (4) where d k is the average absolution difference between the test image window (at the location after transformation) and the reference image; and I max >0 is the maximum pixel value of the image (e.g., for 8-bit gray scale image, I max = 255). The d k can take values in [0, I max ], sk also has a range of [0, I max ] with 0 meaning the test image window doesn’t match the corresponding reference image window at all (or doesn’t overlap with the reference image), and I max means the test image window matches pixel by pixel of the reference image, and completely overlap with the reference image. Finally we define the objective function as the weighted average of sk : ⎛1 J =⎜ ⎝N N ∑λ s k =1 k k ⎞ ⎛1 ⎟=⎜ ⎠ ⎝N N ∑λ k =1 k ⎞ ( I max − d k ) ⎟ ⎠ (5) where λk is the fraction of overlap of k-th window of the test image and the reference image, N is the number of test image r windows we have. J is a function of x (see Eq. (3)) and is to be maximized having a range between 0 and I max . The image windows from the test image used to compute J are chosen from areas with contrast rather than uniformly colored areas so as to produce large d k when the images are not aligned, and their locations should be distributed evenly across the image. Examples of such image windows are areas containing edges or texture. A simple approach is to take image windows on a regular grid, and select those windows that pass image contrast criteria, which can be based on image histogram. Test Image Reference Image Gaussian Filter Gaussian Filter Select Windows Re-center Windows PSO Framework Evaluate r J ( xi (t )) r xi (t ) Initialize Swarm t←0 Update Particle Locations ⎡ θ min ⎤ ⎡ θ max ⎤ ⎢ ⎥ r ⎥ ⎢ ⎢t x,min ⎥ ≤ xi (0) ≤ ⎢t x,max ⎥ ⎢t ⎥ ⎢t y ,max ⎥ ⎦ ⎣ ⎣ y ,min ⎦ t ← t+1 r Yes abs(max ( J ( xi (t ))) − I max ) i ≤ errGoal r argr max( J ( xi (t ))) xi ( t ) is the solution No t > max iterations Yes No solution found (did not converge) No Figure 4. Flow diagram of image registration using PSO 3.3 Registration Using PSO Figure 4 shows a more detailed flow diagram of image registration using PSO outlined in Figure 1. Still we only show the major, relevant blocks of PSO. More detailed PSO algorithm is described in Section 2 “Particle Swarm Optimization” or in references [1, 2]. The “Gaussian Filter” boxes apply a Gaussian kernel to blur input images to achieve better convergence (Section 4.1 “Blurring the Images for Better Convergence”). The “Select Windows” box selects a set (typically 10 to 20) of image windows (e.g., 64 by 64 in size depending on test image size) from the test image (Section 3.2 “Objective Function” for more on window selection). In “Re-Center Windows” block, the image windows are first re-centered by applying a translation such that the center-of-gravity of the set of windows coincides with the image center of the reference image. Re-centering the image windows makes swarm initialization easier as we can keep the lower and upper limit of swarm parameters in translation symmetric. That is, the translation for tx and ty (see Eq. (3)) can be bound as follows: t x ,min ≤ t x ≤ t x ,max , t x ,max = −t x ,min ≡< reference image width > (6) t y ,min ≤ t y ≤ t y ,max , t y ,max = −t y ,min ≡< reference image height > In practice we can even narrow the above bounds by half to achieve more efficiency, but the bounds specified above is the most we will need. For rotation angle θ (see Eq. (3)), we have −π ≤θ ≤ π (7) Note that we must treat the entire 2π span for θ as a continuous region with no boundaries so that a particle with θ nearing π can move into − π region and vice versa. The PSO process for image registration works as follows. During initialization, a fixed number of swarm particles r T x = [θ t x t y ] are randomly placed in 3D space bound by the Equations (6) and (7). In each iteration, the positions of the particles are updated according to Eq.(1), then the objective r function J ( xi (t )) is evaluated at the location of every swarm particle, xri (t ) = [θ i (t ) t x ,i (t ) t y ,i (t )]T . Then the individual best and swarm best are updated (see Section 2 “Particle Swarm Optimization”). The swarm best max ( J ( xri (t ))) is compared i with the goal, I max , we want to achieve. If the swarm best reaches within errGoal (errGoal > 0) of I max , we consider the registration is complete, and the particle location for achieving the swarm best, arg max( J ( xr (t ))) , is the answer we i r xi ( t ) are seeking. Otherwise, we go on to the next iteration of updating swarm particles (Eq. (1)), until a preset number of iteration has been reached, in which case we consider the PSO not converging and the registration has failed. 3.4 Example Shown in Figure 5 are the swarm particles at the beginning and end of a typical application of PSO for registration. Shown in Figure 6 are two images to be registered. The reference image is on the top, and the test image is at the bottom which is a rotated version of the reference image. Figure 6. Sample reference image (top) and a rotated version (bottom) as test image with manually selected image feature windows indicated by the boxes. Figure 7 shows the result of registering the two images in Figure 6, with 100 swarm particles and errGoal of 15. Current and global best Figure 7. The result of registration of the images in Figure 6 by super-imposing the transformed test image over the reference image and blending the intensity of the two in the overlap region. 4 Improvements 4.1 Blurring the Images for Better Convergence Figure 5. Swarm for image registration. Shown on the top are the swarm particles at the beginning of the registration, with the best location of current iteration and of all iterations so far indicated by the arrow. At the bottom is the swarm distribution at the final iteration for this example when the swarm is concentrated near the optimal location. In order to increase the chance of convergence and therefore finding the true registration, we would like to have an objective function J whose surface has a broad base but sharp peak at the optimum. When the image content contains large amount of fine details, the peak of J is usually very sharp, but the base is not broad enough, which will adversely affect PSO’s success. For this reason, we pass both the reference and the test images through a Gaussian kernel (low-pass filter) to broaden J’s surface. Figure 8 shows how the objective function surface looks like in various dimensions. When images are blurred before registration, the convergence property of PSO process is improved. However, the peak of the objective function surface also becomes “dull” which can result in reduced accuracy in registration. This problem can be mitigated by replacing the blurred images with the original images or less blurred images after the PSO process has closed in on the optimal solution. Another approach is to use image pyramid (see Section 5 for details). We typically use a Gaussian kernel with σ=1.5 to 5.0 to filter the images before registration (Figure 4). α = [π t x ,max t y ,max ] T (9) where t x , max and t y , max are defined in Eq. (6). Then α is used when the objective function (Eq. (5)) is evaluated as follows: r (10) J (α • xi (t )) where the operator “•” stands for entry-wise (Hadamard) product. 4.3 Limiting Maximum Speed in Each Dimension In image registration application described in this paper, the objective function surface near the peak has a certain width in each dimension; particles moving too fast may miss the chance of landing in the peak region during the update. For this reason, we impose a limit to the speed of a particle in each of the particle’s dimensions (parameters) before using the speed vector to update the swarm particle position according to Eq. (1). That is, Figure 8. Surface plot of objective function J for a sample image when the images are blurred by a 31x31 Gaussian kernel of σ=5. The test image in this case are the same image with windows picked by hand at 14 different locations. The top two pictures show the surface of J with no rotation, the lower-left picture shows two cross sections of J as shown in the top images, and the lower right picture shows J along the rotation dimension at 0 off-set. 4.2 Normalized Parameter Space r For image registration, the parameter space x (Eq. (3)) is different in each dimension, two in translations, and one in rotation. In order to make updating particles easy, we adopt an alternative parameter space in which all dimensions of r parameter x are normalized to [-1, 1], accompanied by a vector of scale factors, one for each dimension. PSO updating (Eq. (1)) is carried out in the normalized parameter space, and the particle positions are scaled using the scale factors before the objective function is evaluated. This way, we can update the swarm particle positions in all dimensions uniformly, and also easily change the actual parameter space by changing the scale factor vector. This is especially handy in the registration using an image pyramid (see Section 5). With normalized parameter space scheme, the PSO update equations Eq. (1) do not change, but the bounds for the parameters (Eq. (6) & (7)) become: ⎡− 1⎤ ⎡1⎤ ⎢− 1⎥ ≤ xr ≤ ⎢1⎥ i ⎢ ⎥ ⎢⎥ ⎢⎣− 1⎥⎦ ⎢⎣1⎥⎦ with the following vector of scale factors (8) r r vi (t + 1) ← ⎡vi (t + 1)⎤vrmax (11) where the operator ⎡•⎤ defines a vector component-wise limiting operation such that the result of cr = ⎡ar ⎤br r ( b = {b j b j > 0, ∀j} ) is defined as ⎧ b j , if a j > b j ⎫ ⎪ ⎪ c j = ⎨− b j , if a j < −b j ⎬, ∀j ⎪ a , otherwise ⎪ ⎩ j ⎭ (12) From Eq. (11) the update equations Eq. (1) become r r r r r r vi (t + 1) = ⎡wvi (t ) + c1q1 ( yi (t ) − xi (t ) ) + c2 q2 ( y g (t ) − xi (t ) )⎤ r (13) v max r r r xi (t + 1) = xi (t ) + χ vi (t + 1) where vrmax is a vector of (positive) particle speed limits. For the parameter space (Eq. (3)) in this paper, we have r T (14) vmax = vθ max v x max v y max [ ] r where each of the vector components of v max is equal to half of the (normalized) peak width of the objective function surface along the corresponding dimension (see Figure 8), which can be determined empirically. r Note in the above, the vmax components are all expressed in normalized parameter space as are the update equations Eq. (13). 5 Registration Using Image Pyramid Earlier we discussed blurring the reference and test images in order to broaden the objective function surface to achieve better convergence property (see Section 4.1 “Blurring the Images for Better Convergence”). Blurring an image reduces the effective resolution of an image, and sub-sampling the blurred image will not loose any more information if done appropriately. Therefore we can achieve the same registration performance on the blurred image by carrying out the PSO process on a blurred, sub-sampled image. Once we achieve convergence on the sub-sampled image, we can move back to the original-sized image to get better registration accuracy. This idea becomes the basis of a pyramid based multi-scale registration method using PSO. the optimum and allow the swarm to explore finer details of the objective function space at next level. Accuracy is achieved at Level 1, and is not the objective at higher levels. • Convergence criteria. The registration process is given a threshold, errGoal (see Section 3 “PSO for Image Registration”), for the original image at Level 1. For levels other than the Level 1, we relax that threshold by increasing the threshold 1.5 times at each successive level. Thus the set of thresholds for a 4-level pyramid situation would be errGoal, errGoal*1.5, errGoal*1.52, and errGoal*1.53 for levels 1 to 4 respectively. By relaxing convergence threshold at higher levels (i.e., increasing the threshold value), we will reach “convergence” with fewer iterations in PSO. This is appropriate at higher levels because at these levels all we need is to guide the swarm towards the neighborhood of Gaussian Filter Gaussian Filter Generate Image Pyramid Generate Image Pyramid Initialize swarm for Level N, l=N PSO at level l with errGoall Update scale factor & convergence threshold l ← l -1 Did PSO converge? No No solution found (did not converge) Yes l=1? Yes r arg rmax ( J (α • xi (t ))) α • xi ( t ) is the solution No Figure 9. Block diagram for the pyramid based image registration using PSO. The high-lighted box at the center corresponds to the PSO framework core (i.e., items inside the dashed block) in Figure 4. N is the number of levels in the image pyramids, which is 4 in our example. Next, the image windows for the test images are extracted from the test image pyramid starting at Level 1. The same set of image windows are then selected from the remaining levels of the test image pyramid at the corresponding size (reduced to a half, a quarter and so on in each dimension) and at the corresponding locations as we move up the pyramid. The set of image windows from test image pyramid always cover the same image areas no matter their sizes and levels in pyramid. Here are a few details of the process outlined above. Reference Image Select/ Re-center Windows The multi-scale image registration starts with building Gaussian pyramids for the reference and test images. Starting at Level 1, each image is filtered with a Gaussian kernel of size 5 by 5 and σ =1.0, and sub-sampled at 2:1, resulting in an image for Level 2 that is half the size in each dimension as the original image at Level 1. The same process is repeated on Level 2 image and so on to generate as many levels as needed depending on the size of the final image at the top level. In our tests, we have used 4 levels including the original image. Registration with the image pyramid starts at top level (Level 4) of the pyramid, using the test image windows at that level and the reference image at the same level, following the same process as depicted in Figure 4 (except that the Gaussian Filters are applied to the original image at Level 1 there). When the process converges at a level of the pyramid, we move down the pyramid one level, and continue the PSO process carrying the swarm and their states (locations, velocities, and the swarm/own best) from the previous pyramid level. This process is repeated until we reach convergence at Level 1, at which point the corresponding solution from PSO is the final solution. Test Image If PSO failed to reach convergence after a preset number of iterations at any levels, we consider the entire registration has failed. However, since we have relaxed the thresholds at higher levels, it is much less likely that the registration will fail at higher level. • Swarm transition from high to low levels. When PSO converges at a higher level, we move to the next lower level and continue the PSO process with the swarm particles at their corresponding locations and velocities at the last level. Since we have adopted normalized parameter space for PSO (see Section 4.2 “Normalized Parameter Space”), we do not need to do anything special for the swarms. All we need to take care of are switching to the reference image and test image windows at the new level, and the new scale factor vector (Eq. (9)) for objective function evaluation (Eq. (10)). • Objective function evaluation. The evaluation of objective function (Eq. (10)) is carried out using the reference image and the test image windows at same image pyramid levels. Because we used normalization in the objective function definition (Eq. (5)), the function value achieves comparable values no matter what levels of the image pyramid we are at. This property makes defining the convergence thresholds outlined above easy. A block diagram of the PSO image registration process using image pyramids is shown in Figure 9 in which the core PSO framework shown in Figure 4 corresponds to the high-lighted box in the middle. We tested this approach with the example images shown in Figure 6 for a set of random simulation runs to quantify the benefits of this approach. The same reference image and the same set of test image windows are used for 200 runs (for each run, the test image is initialized at a random translation/rotation with respect to the reference image). Table 1 summarizes the performance results of pyramid based vs. non-pyramid based PSO registration methods. The main benefits of using image pyramid based registration with PSO are: • • 6 Improved convergence rate. Because we start at a lowresolution image at the top of the image pyramid, the objective function surface has a broader peak relative to the image size, which offers better chance for the swarm to find the optimum. As can be seen from Table 1, the pyramid based registration has 165 of 200 of the runs converged, whereas the non-pyramid based approach has 148 runs converged. Reduced computation requirement. In the image pyramid based registration, most of the objective function evaluations are carried out in the higher levels (lower resolutions) with smaller image window sizes, with a fraction of the computational cost of using the full resolution images. Table 1 shows that the pyramid-based approach achieves better convergence rate than nonpyramid based approach at similar number of total iterations from all levels, which means a significantly lower computational cost for the pyramid based approach. Conclusion In this paper, we presented a new multi-scale image registration approach based on PSO. Using PSO for image registration formulates the problem of registration as one of multi-dimensional search for an optimal solution that optimizes the quality of image registration. This approach has the advantages of not requiring complicated image feature detection, matching or transformation model estimation, all of which pose significant problem of their own in a traditional image registration approach. In the approach presented in this paper, the only image feature used is small windows of image that contains some structure (such as edges or texture). To further improve the performance of image registration using PSO, we introduced image pyramids where the PSO image registration algorithm starts at the top of the pyramid and gradually move down the levels as PSO closes in on the optimal solution. This approach has been shown to have two simultaneous advantages, increased convergence probability and reduced computation cost compared with single-scale PSO image registration. Both aspects are shown through Monte-Carlo simulations of hundreds of test cases with random initial states. 7 References [1] R. C. Eberhart and Y. Shi, “Particle Swarm Optimization: Developments, Applications, and Resources,” Table 1. Summary of comparisons of image pyramid based registration vs. non-pyramid method. Pyramid based approach achieves better convergence rate at almost the same number of total iterations which also means significantly reduced computation required for finding the solution. Median total errGoal # of # of runs iterations until threshold runs converged convergence Original Images 10 200 148 15 4-Level 10 200 165 16 Pyramids Image/Pyramid Proceedings of IEEE Congress on Evolutionary Computation (CEC 2001), Korea, 2001. [2] Special issue of IEEE Trans. on Evol. Computation on Particle Swarm Optimization, Vol. 8, No. 3, June, 2004. [3] S. Medasani and Y. Owechko, “Possibilistic Particle Swarms for Optimization,” Proceedings 5673 of SPIE/IST Symposium on Electronic Imaging, San Jose, 2005. [4] Y. Owechko, S. Medasani, and N. Srinivasa, “Classifier Swarms for Human Detection in Infrared Imagery,” IEEE Conference on Computer Vision and Pattern Recognition, Washington, D.C., 2004. [5] Y. Owechko and S. Medasani, “A Swarm-Based Volition/Attention Framework for Object Recognition,” IEEE Conference on Computer Vision and Pattern Recognition, San Diego, 2005. [6] Y. Owechko and S. Medasani, “Cognitive Swarms for Rapid Detection of Objects and Associations in Visual Imagery,” IEEE Swarm Intelligence Symposium, Pasadena, 2005. [7] P. Saisan, S. Medasani, and Y. Owechko, “Multi-View Classifier Swarms for Pedestrian Detection and Tracking,” IEEE Conference on Computer Vision and Pattern Recognition, San Diego, 2005. [8] R. Hassan, B. Cohanim, and O. de Weck, “A Comparison of Particle Swarm Optimization and the Genetic Algorithm,” AIAA Conference, 2005. [9] J. F. Schutte, J. A. Reinbolt, B. J. Fregly, R. T. Haftka, and A. D. George, “Parallel Global Optimization with the Particle Swarm Algorithm,” Int. J. Numerical Methods in Engineering, 61:2296-2315, 2004, [10] J. Kennedy and W. M. Spears, “Matching Algorithms to Problems: An Experimental Test of the Particle Swarm and Some Genetic Algorithms on the Multimodal Problem Generator,” Proceedings of IEEE Inter. Conf. on Evolutionary Computation, 78-83, 1998. [11] Barbara Zitova and Jan Flusser, “Image registration methods: a survey,” Image and Vision Computing 21, pp. 977–1000, 2003.