2. An object recognition system incorporating swarming domain classifiers as set forth in claim 1 , wherein the velocity vector changes towards pbest and gbest in a probabilistic way according to the following velocity update technique: 
 v i ( t )= wv i ( t− 1)+ c 1 *r and( )*( p best− x i ( t− 1))+ c 2 *r and( )*( g best− x i ( t− 1)) x i ( t )= x i ( t− 1)+ v i ( t ), where x i (t)and v i (t) are the position and velocity vectors at time t of the ith agent and c 1 and c 2 are parameters that weight the influence of their respective terms in the velocity update technique, where w is a decay constant, and where the rand( ) function generates a random number, whereby each agent in the plurality of agents changes its velocity in accordance with a combination of gbest and pbest, thereby allowing the swarm to concentrate in the vicinity of the object to quickly classify the object.
2. An object recognition system incorporating swarming domain classifiers as set forth in claim 1 , wherein the velocity vector changes towards pbest and gbest in a probabilistic way according to the following velocity update technique: 
 v i ( t )= wv i ( t− 1)+ c 1 *r and( )*( p best− x i ( t− 1))+ c 2 *r and( )*( g best− x i ( t− 1)) x i ( t )= x i ( t− 1)+ v i ( t ), where x i (t)and v i (t) are the position and velocity vectors at time t of the ith agent and c 1 and c 2 are parameters that weight the influence of their respective terms in the velocity update technique, where w is a decay constant, and where the rand( ) function generates a random number, whereby each agent in the plurality of agents changes its velocity in accordance with a combination of gbest and pbest, thereby allowing the swarm to concentrate in the vicinity of the object to quickly classify the object. 3. An object recognition system incorporating swarming domain classifiers as set forth in claim 2 , further comprising a sequential niching module communicatively connected with the particle swarm optimization module for finding multiple objects in the domain, the sequential niching module configured to: clear object positions from an object position list and a flag table; initialize and run the cooperative swarm through a number of iterations until the gbest is greater than a preset value, or a number of iterations has reached a preset maximum number of allowable iterations; if the gbest is not greater than the preset value or the number of iterations has reached a present maximum number, receive a next input domain; if the gbest is greater than the preset threshold, then run a neighborhood test around the gbest position to verify if a certain number of neighboring positions in the domain also exceed the preset value; if the gbest passes the neighborhood test; add the gbest position to the object position list; erase the domain locally at gbest with a predetermined function; update the flag table; re-initialize and run the swarm until gbest is greater than the preset value or the number of iterations has reached a preset maximum number of allowable iterations; and if the gbest fails the neighborhood test; re-initialize and run the swarm until gbest is greater than the preset value or the number of iterations has reached a maximum number of allowable iterations.