Particle Swarm Optimization: Applied to Registration

advertisement
Particle Swarm Optimization: Applied to Registration
Preliminary Understanding
GENERAL POINTS:
-
-
-
-
Given a swarm (population size, N), N-number of particles (solutions) are composed of random
combinations of rotation, translation, and scale (RTS) values.
The values of the random particles are restricted by ranges for each solution parameter
Optimization is initiated with a group of random particles
Each initial particle has 5 parameters (tx, ty, sx, sy, )
A new generation of a solution is born with each iteration
Every solution is re-calculated at every iteration until the maximum number of iterations
(generations) have been performed or a solution has produced a fitness function that generates
an error metric at a designated minimum
 Calculate f(x) for solution xi until K iterations have been calculated
 Calculate f(x) for xi until resulting solution has minimum error (maximum
mutual information between 2 images using associated RTS values for given
particle)
The fitness function [f(x)] for the given problem would be the quality of the registration when the
solution values for a given particle are used to register 2 images. Quality would be judged using
mutual information metric.
EX/ f(x) = x1 +x22+x33
 xi=[x1, x2, x3]
 f(x) = fitness function
With the creation of each new generation, each particle is moved closer to the optimal solution
based on a velocity vector.
The velocity vector for a given particle is calculated based on the best solution it has achieved so
far (pbest = particle best) and the best solution achieved by a particle in the population (gbest =
global best)
MATH:



(a) vi (k 1)   (k)vi (k)  1  1i ( pi  xi (k))   2  2i (G  xi (k))

the velocity of a given solution @ the next iteration =
(the inertial weight)*(current velocity of solution)+
(acceleration constant 1)*[(random num 1)*(pbest-current solution parameters)]+
(acceleration constant 2)*[(random num 2)*(gbest-current solution parameters)]
(b) xi (k  1)  xi (k)  vi (k  1)
the solution @ the next iteration =
the solution @ current iteration + the velocity of the given solution @ next iteration
 min  max 


K
(c)  (k 1)   (k)  
the inertial weight @ next iteration =
the inertial weight @ current location + [(max wgt. – min wgt.)/number of iterations]
-
Set acceleration constants equal to 2
Random numbers 1 & 2 are values [0, 1]
Inertial weights are monotonically decreasing with iterations
PSEUDO CODE:
For each particle Initialize particle [Initialize N number of particles with random values for all RTS parameters within
designated range]
END
Do
For each particle Calculate fitness value [Using initial RTS values, perform N transforms and calculated N mutual
information values (fitness values)] If the fitness value is better than the best fitness value (pBest) in history
set current value as the new pBest [If generated MI value is better than any recorded MI value for
that particle, save those RTS vales as the particle’s best solution (pbest)
End
Choose the particle with the best fitness value of all the particles as the gBest [Choose the particle
whose RTS values produced the highest MI value]
For each particle Calculate particle velocity according equation (a)
Update particle position according equation (b)
End While maximum iterations or minimum error criteria is not attained
QUESTIONS:
1) In equation (a), is the subtraction of (pbest –current) and (gbest – current) a subtraction of the actual
RTS values or the fitness values produced by the respective RTS values?
2) What are good values for initial velocities and inertial weights? Zero?
Download