Abstract:
An algorithm for the detection of military vehicles in FLIR imagery is used as a prescreener to eliminate large areas of the image from further analysis. The output is a list of likely target locations with confidence numbers, which may be sent to a more complex clutter rejection algorithm for analysis. The algorithm uses simple features, and is intended to be applicable to a wide variety of target-sensor geometries, sensor configurations, and applications.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   The present application claims priority from Provisional U.S. Patent Application No. 60/359,378 filed on Feb. 26, 2002, which is incorporated herein by reference in its entirety. 

   STATEMENT OF GOVERNMENT INTEREST 
   The invention described herein may be manufactured and used by or for the United States Government for governmental purposes without the payment of any royalties thereon. 
   FIELD OF THE INVENTION 
   The present invention relates to an algorithm for the detection of targets in FLIR imagery. In particular, the present invention is directed toward a an algorithm used as a pre-screener to eliminate large areas of the image from further analysis. 
   BACKGROUND OF THE INVENTION 
   A large number of algorithms designed to find military targets have been published in the literature, using a wide variety of techniques. Representative examples of these algorithms are discussed in the following three ATR survey papers that have been published in the literature, all of which are incorporated herein by reference:
     1. J. Ratches et al, “Aided and Automatic Target Recognition Based Upon Sensory Inputs from Image Forming Systems”, IEEE Transactions on Pattern Analysis and Machine Intelligence, September 1997.   2. M. Roth, “Survey of Neural Network Technology for Automatic Target Recognition”, IEEE Transactions on Neural Networks, March 1990.   3. B. Bhanu, “Automatic Target Recognition: State of the Art Survey”, IEEE Transactions on Aerospace and Electronic Systems, July 1986.   

   While most automatic target detection/recognition (ATD/R) algorithms use much problem specific knowledge to improve performance, the result is an algorithm that is tailored to specific target types, and poses. The approximate range to target is often required, with varying amounts of tolerance. 
   For example, in some scenarios, it is assumed that the range is known to within a meter from a laser range finder or a digital map. In other scenarios, only the range to the center of field of view and the depression angle is known, so that a flat earth approximation provides a rough estimate. Many algorithms, both model based and learning based, either require accurate range information, or compensate for inaccurate information by attempting to detect targets at a number of different ranges within the tolerance of the range. 
   Because many such algorithms are quite sensitive to scale, even a modest range tolerance requires that the algorithm attempt to match at a large number of closely spaced scales, driving up both the computational complexity and the false alarm rate. Algorithms have often used view-based neural networks or statistical methods. 
   SUMMARY OF THE INVENTION 
   The algorithm of the present invention was designed to address a need for a detection algorithm with wide applicability, which may serve as a pre-screener/detector for a number of applications. 
   An input image (the image to be searched for vehicles, for example) may be fed to a number of feature extractors. The feature extractors (Straight Edge, Average Edge Strength, Local Variance, Contrast box, Hot spot) process the input image and output images of corresponding feature values, at each of several scales. Brighter locations in the feature images correspond to possible target locations. 
   It is important for the operation of the later steps that the feature values are monotonic in the likelihood of a target. Each of the feature images is normalized to have zero mean and unit variance. This is also an important step, in that it causes the feature values to be insensitive to differences in contrast settings of the sensor, and to be a measure of difference between a pixel and its background. 
   A size filter is used as a pre-filter to the Hot Spot and Contrast Box features. The size filter eliminates features in the image that are much bigger than the largest targets, which causes target sized objects to stand out better. The size filter is not used for the other features because it may introduce artifacts that hurt the performance of other features. 
   After each feature image is calculated and normalized, they are combined into confidence images at each of several scales, using a linear weighting. The Max N box finds some pre-specified number of potential target locations from the confidence images. It finds the brightest pixel in all of the images, marks this pixel location as a target detection, and then zeroes out a target sized neighborhood in all of the confidence images to avoid choosing two detections of the same target. It repeats the search and zeroing until the pre-specified number of detections is obtained. 
   The algorithm of the present invention is more robust than other available algorithms, in that it performs well on difficult data sets, and does not require any retraining for a new site. Large numbers of algorithms have been published in the literature, but few have been tested on large data sets, and especially data sets that differ markedly from the training sets used to create the algorithm. It has been found by ARL and NVESD that on difficult data sets, this algorithm performs better than any others that are known or available, and nearly the best on data sets that are relatively easy. It shows a great deal of robustness to being tested on data sets that differ drastically from the training imagery. 
   The algorithm of the present invention also requires much less training data and target information than other algorithms. Moreover, the algorithm of the present invention does not require range information to perform well. 
   The algorithm is designed to find vehicles in infrared imagery with no range information and no prior training data from the site. Typically, algorithms based on learning methods require data that is taken from a specific site, with performance suffering if the location or meteorological conditions differ from the training data. The algorithm of the present invention is designed to be insensitive to scale, location, clutter type, and meteorological conditions, so that it may be used in a wide variety of situations, rather than be optimized for a specific situation. 
   The algorithm of the present invention may have a number of uses. The algorithm of the present invention may be used to detect targets in static FLIR images. In addition, the algorithm of the present invention may be used to detect targets in other types of images, including visible, near IR, mid IR, SAR, and multi and hyper spectral. The algorithm may also be used to measure difficulty of image sets by comparing performance on the data sets. 
   In addition, the algorithm of the present invention may measure comparative utility of different sensor bands for object detection or simulate the performance of an automatic target recognizer (ATR) for computer war game simulations. Furthermore, the algorithm of the present invention may be used to compare detection performance of various infrared sensor designs prior to fabrication, and to find potential false alarms to be used to train a clutter rejecter. 
   The algorithm of the present invention may also be used to provide an estimate of human performance on a target acquisition task, greatly reducing the cost of performing an experiment. The algorithm may also be used to find anomalies in images—locations that bear further scrutiny. The algorithm may be used to find other kinds and shapes of static objects—doing so only requires modification of the filter shapes and sizes used to calculate each feature image. 
   Each component of the algorithm may be constructed to be insensitive to scale, which is necessary when inaccurate or no range information is available. Moreover, each component of the algorithm is constructed to be insensitive to spatial shifts. This results in a better centering of targets when all of the components are combined, because the combination doesn&#39;t require fusing disjoint peaks. 
   The algorithm is designed to be robust by using a weak feature fusion algorithm. For this reason, it performs well on difficult data sets. 
   The proximate motivation for the development of the scale insensitive algorithm was to provide a fast pre-screener for a robotic application for which no range information was available. The algorithm instead attempted to find targets at all ranges between some reasonable minimum, determined from operational requirements, and the maximum effective range of the sensor. 
   Another motivation was to develop an algorithm that could be applied to a wide variety of image sets and sensor types, which required it to perform consistently on new data, without the severe degradation in performance that commonly occurs with learning algorithms, such as neural networks and PCA based methods, that have been trained on a limited variety of sensor types, terrain types, and environmental conditions. While it is recognized that with a suitable training set, learning algorithms will often perform better than other methods, this typically requires a large, and expensive, training set, which is sometimes not feasible. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a flowchart of the detection algorithm of the present invention. 
       FIG. 2  is a graph of an ROC curve for test results on the Hunter-Liggett April 1992 ROT database. 
       FIG. 3  is a graph of an ROC curve for test results on the February July ROT database collected at Yuma Proving Grounds. 
       FIG. 4  is a graph of an ROC curve for test results for Greyling August 1992 ROT database. 
       FIG. 5  is an illustration of a sample image. 
       FIG. 6  is an illustration of the results of the algorithm on the sample image of  FIG. 5 , where crosses denotes the ground truth targets, and X&#39;s denote the detections on the targets. 
       FIG. 7  is an illustration of a somewhat more difficult sample image. 
       FIG. 8  is an illustration of the results of the algorithm on the sample image of  FIG. 7 . 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   Referring now to  FIG. 1 , A flowchart of the detection algorithm is illustrated. An input image (the image to be searched for targets such as vehicles and the like) is fed to a number of feature extractors  101 - 105 . The feature extractors (Straight Edge  101 , Average Edge Strength  102 , Local Variance  103 , Contrast Box  104 , and Hot Spot  105 ) process the input image and output images of corresponding feature values, at each of several scales. Brighter locations in the feature images correspond to possible target locations. 
   It is important for the operation of the later steps that the feature values are monotonic in the likelihood of a target. Each of the feature images is normalized to have zero mean and unit variance. This is also an important step, in that it causes the feature values to be insensitive to differences in contrast settings of the sensor, and to be a measure of difference between a pixel and its background. 
   Size filter  100  is used as a pre-filter to Hot Spot  105  and Contrast Box  104  features. Size filter  100  eliminates features in an image that are much bigger than the largest targets, which causes target sized objects to stand out better. For example, when viewing a ground image, warm parking lot surfaces or plowed fields may stand out in infrared. However, these objects are much larger than the desired target objects. By filtering out such large objects, the remaining target-sized objects stand out. The size filter may not used for the other features because it may introduce artifacts that hurt the performance of other features. 
   Operation of the present invention of  FIG. 1  will now be described in the context of sample data as illustrated in  FIGS. 2-8 . This sample data used in training and testing this system includes the April 1992 Comanche FLIR collection at Ft. Hunter-Ligget, California. This dataset consists of 1225 images, each 720 by 480 pixels. Each image has a field of view of approximately 1.75 degrees 2 . 
   Each of the images may contain one or two targets in a hilly, wooded background. Ground truth was available which provided target centroid, range to target, target type, target aspect, range to center of field of view, and the depression angle. The target centroid and range to target were used to score the algorithm, as described in the experimental results section, but none of the target specific information was used in the testing process. The algorithm only assumes that the vertical and horizontal fields of view and the number of pixels horizontally and vertically is known. The only range information used is the operational minimum range and the maximum effective range of the sensor. 
   Each of the features boxes  101 - 105  is calculated for every pixel in the image. As more complex features are added in the future, it may be beneficial to calculate some of the features only at those locations for which the other feature values are high. While each of the features assumes knowledge of the range to determine approximate target size, these features are not highly range sensitive. The algorithm calculates each of these features at coarsely sampled ranges between the minimum and maximum allowed range. Features  101 - 105  will be described as follows. 
   Each of the features was selected based on intuition, with the criteria that they be monotonic and computationally simple. The features are described in decreasing order of importance. 
   Hot Spot (Maximum Grey Level)  105  is the highest grey level within a roughly target sized rectangle centered on the pixel. Hot Spot  105  was selected because in many FLIR images of vehicles, there are a few pixels that are significantly hotter than the rest of the target or the background. These pixels are usually on the engine, the exhaust manifold or the exhaust pipe. However, such hotter pixels may not represent the desired “center” of a target. For example, in a troop carrier, the hottest pixels may represent the location of an engine or exhaust pipe. However the desired target (the troops) may be located in the back of the troop carrier, some distance away from the engine.
 
 F   i,j   0 =max (k,l)εN     in     (i,j)   f ( k,l )
 
   where f(k,l) is the grey level value of the pixel in the kth row and Ith column, N in (i,j) is the neighborhood of the pixel (i,j), defined as a rectangle whose width is the length of the longest vehicle in the target set, and whose height is the height of the tallest vehicle in the target set. For the applications that we have considered, the width is 7 meters and the height 3 meters. 
   Contrastbox  104  measures the average grey level over a target sized region, and compares it to (and subtracts it from) the grey level of the local background. Contrastbox  104  was selected because many pixels that are not on the engine or on other particularly hot portions of the target are still somewhat warmer than the natural background. This feature has been used by a large number of authors. 
   
     
       
         
           
             F 
             
               i 
               , 
               j 
             
             1 
           
           = 
           
             
               
                 1 
                 
                   n 
                   in 
                 
               
               ⁢ 
               
                 
                   ∑ 
                   
                     
                       ( 
                       
                         k 
                         , 
                         l 
                       
                       ) 
                     
                     ∈ 
                     
                       
                         N 
                         in 
                       
                       ⁡ 
                       
                         ( 
                         
                           i 
                           , 
                           j 
                         
                         ) 
                       
                     
                   
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   f 
                   ⁡ 
                   
                     ( 
                     
                       k 
                       , 
                       l 
                     
                     ) 
                   
                 
               
             
             - 
             
               
                 1 
                 
                   n 
                   out 
                 
               
               ⁢ 
               
                 
                   ∑ 
                   
                     
                       ( 
                       
                         k 
                         , 
                         l 
                       
                       ) 
                     
                     ∈ 
                     
                       
                         N 
                         out 
                       
                       ⁡ 
                       
                         ( 
                         
                           i 
                           , 
                           j 
                         
                         ) 
                       
                     
                   
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   f 
                   ⁡ 
                   
                     ( 
                     
                       K 
                       , 
                       l 
                     
                     ) 
                   
                 
               
             
           
         
       
     
   
   where n out  is the number of pixels in Nout(i,j), n in  is the number of pixels in N in (i,j), N in (i,j) is the target sized neighborhood defined above, and the neighborhood N out (i,j) contains all of the pixels in a larger rectangle around (i,j), except those pixels that are in N in (i,j). 
   Average Edge (or Gradient) Strength  102  was selected because man made objects tend to show sharper internal detail than natural objects, even when the average intensity is similar. To prevent large regions of background which show higher than normal variation from showing a high value for this feature, the average gradient strength of the local background is subtracted from the average gradient strength of the target sized region. The feature is calculated as: 
             F     i   ,   j     2     =         1     n   in       ⁢       ∑       (     k   ,   l     )     ∈       N   in     ⁡     (     i   ,   j     )           ⁢           ⁢       G   in     ⁡     (     i   ,   j     )           -       1     n   out       ⁢       ∑       (     k   ,   l     )     ∈       N   out     ⁡     (     i   ,   j     )           ⁢           ⁢       G   out     ⁡     (     i   ,   j     )                   
where:
   G   in ( i,j )= G   in   h ( i,j )+ G   in   v ( i,j )   G   in   h ( i,j )=| f ( i,j )− f ( i,j )− f ( i,j+ 1)|   G   in   v ( i,j )=| f ( i,j )− f ( i+ 1 ,j ) 
and G out (i,j) is defined similarly.
 
   Local Variance (or Variation)  103  was selected because manmade object often show greater variation in temperature than natural objects. This feature merely determines the average absolute difference between each pixel and the mean of the internal region, and compares it to the same measurement for a local background region. The feature is calculated as: 
                   F     i   ,   j     3     =           L   in     ⁡     (     i   ,   j     )         n   in       -         L   out     ⁡     (     i   ,   j     )         n   out                   and                 L   in     ⁡     (     i   ,   j     )       =       ∑       (     k   ,   l     )     ∈       N   in     ⁡     (     i   ,   j     )           ⁢           ⁢            f   ⁡     (     k   ,   l     )       -       μ   in     ⁡     (     i   ,   j     )                            
where
 
               μ   in     ⁡     (     i   ,   j     )       =       1       n   in     ⁢               ⁢       ∑       (     k   ,   l     )     ∈       N   in     ⁡     (     i   ,   j     )           ⁢           ⁢     f   ⁡     (     k   ,   l     )                 
and L out (i,j) and μ in (i,j) are defined similarly.
 
   Straight Edge  101  was selected because manmade objects often display straighter temperature gradients than natural objects, especially in the near vertical and horizontal directions. This feature measures the strength of a straight edge that extends for several pixels, and then determines if the edge values in a target sized region differ from the local background. The feature is calculated as: 
             F     i   ,   j     4     =         1     n   in       ⁢       ∑       (     k   ,   l     )     ∈       N   in     ⁡     (     i   ,   j     )           ⁢       H   in     ⁡     (     i   ,   j     )           -       1     n   out       ⁢       ∑       (     k   ,   l     )     ∈       N   out     ⁡     (     i   ,   j     )           ⁢       H   out     ⁡     (     i   ,   j     )                   
where
   H   in ( i,j )= H   in   h ( i,j )+ H   in   v ( i,j ) 
   
     
       
         
           
             
               H 
               m 
             
             ⁡ 
             
               ( 
               
                 i 
                 , 
                 j 
               
               ) 
             
           
           - 
           
             
               H 
               in 
               h 
             
             ⁡ 
             
               ( 
               
                 i 
                 , 
                 j 
               
               ) 
             
           
           + 
           
             
               H 
               in 
               v 
             
             ⁡ 
             
               ( 
               
                 i 
                 , 
                 j 
               
               ) 
             
           
         
       
     
     
       
         
           
             
               H 
               in 
               h 
             
             ⁡ 
             
               ( 
               
                 i 
                 , 
                 j 
               
               ) 
             
           
           = 
           
             
               
                 ∑ 
                 
                   
                      
                     
                       k 
                       - 
                       i 
                     
                      
                   
                   &lt; 
                   1 
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                    
                   
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           k 
                           , 
                           j 
                         
                         ) 
                       
                     
                     - 
                     
                       f 
                       ⁡ 
                       
                         ( 
                         
                           k 
                           , 
                           
                             j 
                             + 
                             1 
                           
                         
                         ) 
                       
                     
                   
                    
                 
                 ⁢ 
                 
                   
 
                 
                 ⁢ 
                 
                   
                     H 
                     in 
                     v 
                   
                   ⁡ 
                   
                     ( 
                     
                       i 
                       , 
                       j 
                     
                     ) 
                   
                 
               
             
             = 
             
               
                 ∑ 
                 
                   
                      
                     
                       k 
                       - 
                       i 
                     
                      
                   
                   &lt; 
                   1 
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                  
                 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       
                         i 
                         , 
                         k 
                       
                       ) 
                     
                   
                   - 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       
                         
                           i 
                           + 
                           1 
                         
                         , 
                         k 
                       
                       ) 
                     
                   
                 
                  
               
             
           
         
       
     
   
   and H out (i,j) is defined similarly. The parameter  1  is a function of field of view of the system, target range, and target size. If the sensor or target is significantly tilted, the functions may be suitably modified to measure edges in other directions. 
   A large number of features were programmed, and the value of these features were calculated over a large number of randomly selected pixels in the images of the training set. The feature values were also calculated at the ground truth location of the targets. Histograms were computed for each of the features for both the target and background pixels, and a measure of separability was calculated. 
   The correlation of the features was also calculated, to avoid choosing several features that are similar. Some of the features were highly correlated, which was expected because one of the purposes of the training was to determine which of similar features provided the greatest separability. For example, a number of contrast features were used, which normalized the target and background values by local standard deviation of the background, or of the target, or neither. Similarly, a number of gradient strength feature were calculated. The feature pruning process was ad hoc, so it would be reasonable to expect that performance improvement could be obtained by a more rigorous approach. 
   The output of each of the feature boxes is normalized in corresponding normalization boxes  106 - 110  as follows. Each feature is normalized across the image, so that the feature value at each pixel represents the number of standard deviations that the pixel stands apart from the values for the same feature across the image. Thus the normalized feature image for the mth feature is normalized as: 
             F     i   ,   j       m   ,   N       =         F     i   ,   j     m     -     μ   m         σ   m             
where
 
   
     
       
         
           
             μ 
             m 
           
           = 
           
             
               1 
               M 
             
             ⁢ 
             
               
                 ∑ 
                 
                   all 
                   ⁡ 
                   
                     ( 
                     
                       k 
                       , 
                       l 
                     
                     ) 
                   
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 F 
                 
                   k 
                   , 
                   l 
                 
                 m 
               
             
           
         
       
     
     
       
         and 
       
     
     
       
         
           
             σ 
             m 
           
           = 
           
             
               1 
               M 
             
             ⁢ 
             
               
                 ∑ 
                 
                   all 
                   ⁡ 
                   
                     ( 
                     
                       k 
                       , 
                       l 
                     
                     ) 
                   
                 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   ( 
                   
                     
                       F 
                       
                         k 
                         , 
                         l 
                       
                       m 
                     
                     - 
                     
                       μ 
                       m 
                     
                   
                   ) 
                 
                 2 
               
             
           
         
       
     
   
   After normalization, the features, each of which is calculated for each pixel, are linearly combined into a confidence image in summation block  111 : 
   
     
       
         
           
             G 
             
               i 
               , 
               j 
             
           
           ⁢ 
           
             
               ∑ 
               
                 m 
                 = 
                 0 
               
               3 
             
             ⁢ 
             
                 
             
             ⁢ 
             
               
                 ω 
                 m 
               
               ⁢ 
               
                 F 
                 
                   i 
                   , 
                   j 
                 
                 
                   m 
                   , 
                   N 
                 
               
             
           
         
       
     
   
   where the feature weights ω m  are determined using an algorithm not described here. The confidence value of each pixel is mapped by a scaling function S:           →[0,1], as
 
 S ( G   i,j )=1− e   αG     i,j    
 
where ∝ is a constant.

   This scaling does not change the relative value of the various pixels, it merely scales them to the interval [0,1] for convenience. Confidence numbers are often limited to this interval because they are estimates of the a posteriori probability. While this is not true for our algorithm, using this interval is convenient for evaluators. 
   In Max N block  112 , detection locations may be determined from the scaled confidence image. Pixel value(s) with the maximum confidence value may be chosen. Then a target size neighborhood around the image may be set to zero, such that the search for subsequent detections will not choose a pixel location corresponding to the same target. The process is then repeated for the fixed number of detections selected before the algorithm was run. 
   Thus, a number of potential targets may be pulled out of the data from summation block  111 . The output of summation block  111  may be a confidence values for each pixel location or locations within a target area. Man N block  112  converts this to a list of potential targets comprising pixel locations and confidence values. Locations with confidence values below predetermined thresholds may be discarded. Similarly, adjacent pixels representing the same target may be combined into one potential target location. In this manner, a list of potential targets may be identified and presented to an operator, who may in response provide instructions to fire or not to fire on a target. 
   It should be noted that although the present invention is disclosed in terms of military applications, the use of the target identification system of the present invention may have other military or non-military uses. For example, the target identification system of the present invention may be used to identify objects in a scene for industrial robotics applications, or to locate and find objects or persons using infrared technology (e.g., search and rescue operations). Similarly, the present invention may have uses for Police and other applications where infrared or other types of imagery are used to track individuals and vehicles. 
   Experimental Results—The training results on the Hunter-Liggett April 1992 ROI database are illustrated in the ROC curve in  FIG. 2 . Test results on the February July ROI database collected at Yuma Proving Grounds is illustrated in  FIG. 3  and for Greyling August 1992 ROI database in  FIG. 4   
   In each of the  FIGS. 2-4 , the horizontal axis represents number of false alarms per minute, where the vertical axis represents target detection probability. 
   The Yuma test data is much more difficult, because it was taken in the desert in July, so many locations in the image have a higher apparent temperature than the targets. The data from Greyling, Mich. is significantly easier because the temperatures are more mild, and is comparable in difficulty to the training data. Note that no training data was used from anywhere but Hunter-Liggett, so the results suggest that the algorithm is not sensitive to the training background. This is not surprising given the simplicity of the algorithm, but sensitivity is common to many learning algorithms. 
     FIGS. 5 and 6  illustrate a sample image and the results of the algorithm on the image. The crosses indicated in  FIG. 6  denote the ground truth targets (actual target locations) whereas the X&#39;s denote the detections on the targets. Detections are designated hits if the detection center falls anywhere on the actual target, and are designated false alarms otherwise. The top three detections, ranked by confidence number, are designated on the image. The top two detections are hits, while the third falls near the target and is designated a false alarm. 
     FIGS. 7 and 8  illustrate another, somewhat more difficult, image and associated algorithm results. Again, in  FIG. 8 , the crosses indicate actual targets, whereas the x&#39;s indicate detections on targets. The highest detection in  FIG. 8  falls on a target in the bottom left of the image, while the second highest detection is a false alarm near the center of the image. The location looks like a possible target, however it is merely a warm spot on the dirt road. 
   The algorithm of the present invention, with relatively minor modifications, has been used by the Demo III unmanned ground vehicle (UGV) program, to reduce the amount of imagery that must be transmitted via radiolink to a human user. The algorithm of the present invention may also be used by the Sensors for UGV program at NVESD, to prescreen uncooled FLIR imagery and indicate potential targets which should be looked at more closely with an active laser sensor. The algorithm of the present invention has also been used as a synthetic image validation tool, by measuring the performance of the algorithm in comparison to real imagery. 
   Additional feature boxes may be added to the present invention without departing from the spirit and scope thereof. A more systematic evaluation of potential features may be applied to the invention. An improved classification scheme may be incorporated which allows useful features which rarely appear to be incorporated. 
   For example, in a small minority of FLIR images of targets, a windshield will reflect cold sky, causing a few pixels to be extremely dark. The invention as disclosed above is not set up to incorporate such features, because the weighting would be quite low since the feature is seldom useful. However, such a feature could be added for specific applications or be implemented automatically in certain situations. 
   While the preferred embodiment and various alternative embodiments of the invention have been disclosed and described in detail herein, it may be apparent to those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope thereof.