Abstract:
A method for estimating values lost to inoperable pixels on ultraviolet (UV) sensor arrays comprising identifying an inoperable pixel on a UV sensor array, applying a three by three kernel to the inoperable pixel, the three by three kernel being centered on the inoperable pixel, acquiring a centroid value for the inoperable pixel, applying a compensation algorithm based on the three by three kernel radial centroid value, and calculating estimated values for the inoperable pixel.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 62/027,467, filed 22 Jul. 2014. This application is herein incorporated by reference in its entirety for all purposes. 
     
    
     STATEMENT OF GOVERNMENT INTEREST 
       [0002]    This invention was made with United States Government support under Contract No. W15P7T-06-D-E402 0113 awarded by the US Army. The United States Government has certain rights in this invention. 
     
    
     FIELD OF THE INVENTION 
       [0003]    The invention relates to ultraviolet (UV) sensor arrays, and more specifically, to a method and system for correcting dead or stuck pixels therein. 
       BACKGROUND OF THE INVENTION 
       [0004]    During the manufacturing of UV sensor arrays, some pixels are classified as dead or stuck. Dead or stuck pixels are inoperable, not producing a value for the incident radiation. Inoperable pixels significantly reduce the performance of a UV sensor array. Existing solutions are mostly applicable to imaging sensors, and are designed to produce good looking results. Current solutions include the estimation of an inoperable pixel value with zero, or with an average of the next nearest neighbors as performed in commercially available visible sensor arrays. 
         [0005]    What is needed, therefore, are techniques for more accurate replacement values for inoperable pixels of UV sensor arrays. 
       SUMMARY OF THE INVENTION 
       [0006]    An embodiment provides a method for estimating values lost to inoperable pixels on an ultraviolet (UV) sensor array, the method comprising identifying one inoperable pixel on the UV sensor array having pixels; applying a kernel to the inoperable pixel; acquiring a centroid value for the inoperable pixel; applying a compensation algorithm to the kernel; calculating estimated values for the inoperable pixel; and outputting the estimated value for the inoperable pixel with the output of the UV sensor array. In embodiments the compensation algorithm filter is based on the centroid value wherein the Centroid value equals a square root of ((CentroidX multiplied by CentroidX) plus (CentroidY multiplied by CentroidY)); where CentroidX equals (a sum of (A 13 ; A 23 ; A 33 ) minus a sum of (A 11 ; A 21 ; A 31 )) divided by a sum of (A 13 ; A 23 ; A 33 ; A 11 ; A 21 ; A 31 ); and where CentroidY equals (a sum of (A 11 ; A 12 ; A 13 ) minus a sum of (A 31 ; A 32 ; A 33 )) divided by a sum of (A 11 ; A 12 ; A 13 ; A 31 ; A 32 ; A 33 ). In other embodiments, dimensions of the kernel are three by three. In subsequent embodiments the kernel is centered on the inoperable pixel. Additional embodiments comprise eight centroid value ranges. In another embodiment, the eight centroid value ranges are about 0 to about 0.1755; about 0.1755 to about 0.2351; about 0.2351 to about 0.4534; about 0.4534 to about 0.6164; about 0.6164 to about 0.7637; about 0.7637 to about 0.8829; about 0.8829 to about 0.9740; and greater than about 0.9740. For a following embodiment the compensation algorithm comprises guard peak; median filter; max kernel slope; max kernel slope*1.2; max kernel slope*0.75;max kernel slope*0.5; max kernel slope*0.3; and max corner. In subsequent embodiments the guard peak comprises selecting a largest value out of eight pixels in the Kernel inoperable pixel comprising (Maximum of (A 11 , A 12 , A 13 , A 21 , A 23 , A 31 , A 32 , A 33 )). In additional embodiments the Median filter comprises calculating a median value out of eight pixels in the Kernel comprising (Median of (A 11 , A 12 , A 13 , A 21 , A 23 , A 31 , A 32 , A 33 )). In included embodiments the Max kernel Slope (MSLP) Filter selects a largest of an opposite kernel&#39;s pixel sums and applies half of a selected value as a result, wherein (MSLP equals one half times a Maximum of (A 11 +A 33 ;A 12 +A 32 ; A 13 +A 31 ;A 21 +A 23 )). In yet further embodiments the Max Corner (MaxCrn) equals a maximum of an average of each corner pixel and each corner pixel&#39;s two adjacent pixels of the kernel, where MaxCrn equals Maximum of ((A 21 +A 31 +A 32 ) divided by three; (A 21 +A 11 +A 12 ) divided by three; (A 12 +A 13 +A 23 ) divided by three; (A 23 +A 33 +A 32 ) divided by three). In related embodiments the kernel comprises eight pixels surrounding an inoperable pixel. For further embodiments, a value of the inoperable pixel is replaced with a value of zero if the kernel is positioned over pure noise, regardless of the centroid value. In ensuing embodiments the step of applying a compensation algorithm comprises applying a Guard Peak function multiplied by 1.1 to the kernel if the centroid value is between 0-0.1755; applying a Max(Corner) function to the kernel if the centroid value is between 0.1755-0.2351; applying a Max Kernel Slope (MSLP) function multiplied by 1.2 to the kernel if the centroid value is between 0.2351-0.4534; applying the MSLP function to the kernel if the centroid value is between 0.4534-0.6164; applying the MSLP multiplied by 0.75 to the kernel if the centroid value is between 0.6164-0.7637; applying the MSLP multiplied by 0.5 to the kernel if the centroid value is between 0.7637-0.8829; applying MSLP multiplied by 0.3 to the kernel if the centroid value is between 0.8829-0.9740; and applying a Median Filter to the kernel if the centroid value is greater than 0.9740. 
         [0007]    Another embodiment provides a system for estimating values lost to inoperable pixels on an ultraviolet (UV) sensor array comprising identifying at least one inoperable pixel on the UV sensor array; applying a kernel to one of the at least one inoperable pixels; acquiring a centroid value for the one inoperable pixel; applying a compensation algorithm to the kernel; calculating an estimated value for the one inoperable pixel; repeating the steps for subsequent inoperable pixels; and outputting the estimated value for the inoperable pixels with output of the UV sensor array, whereby added noise is reduced by a factor of four and random sources are prevented from appearing in output of the array. For yet further embodiments, the kernel comprises a three by three block of eight pixels surrounding the inoperable pixel. For more embodiments, the kernel is centered on the inoperable pixel. For continued embodiments a value of the inoperable pixel is replaced with a value of zero if the kernel is positioned over pure noise, regardless of the centroid value. For additional embodiments, the compensation algorithm filter selection is based on one of eight centroid value ranges. 
         [0008]    A yet further embodiment provides an ultraviolet (UV) sensor array system for estimating values lost to inoperable pixels comprising identifying one inoperable pixel on the UV sensor array having pixels; applying a 3×3 kernel to the inoperable pixel, the 3×3 kernel being centered on the inoperable pixel; acquiring a centroid value for the inoperable pixel; applying a compensation algorithm to the kernel, the compensation algorithm comprising applying a Guard Peak function multiplied by 1.1 to the kernel if the centroid value is between 0-0.1755; applying a Max(Corner) function to the kernel if the centroid value is between 0.1755-0.2351, wherein MaxCrn function equals a maximum of an average of each corner pixel and each corner pixels two adjacent pixels of the kernel; applying a Max Kernel Slope (MSLP) function multiplied by 1.2 to the kernel if the centroid value is between 0.2351-0.4534, wherein the MSLP function equals half of a maximum value of a sum of pixels and their opposites along the kernel; applying the MSLP function to the kernel if the centroid value is between 0.4534-0.6164; applying the MSLP multiplied by 0.75 to the kernel if the centroid value is between 0.6164-0.7637; applying the MSLP multiplied by 0.5 to the kernel if the centroid value is between 0.7637-0.8829; applying MSLP multiplied by 0.3 to the kernel if the centroid value is between 0.8829-0.9740; and applying a Median Filter to the kernel if the centroid value is greater than 0.9740; calculating estimated values for the inoperable pixel; and outputting the estimated value for the inoperable pixel with output of the UV sensor array, whereby noise is reduced by a factor of four and random sources are prevented from appearing in output of the array. 
         [0009]    The features and advantages described herein are not all-inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and not to limit the scope of the inventive subject matter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  is a depiction of a simplified sensor array configured in accordance with one embodiment of the present invention. 
           [0011]      FIG. 2  is depiction of the Kernel centered on a UV source configured in accordance with one embodiment of the present invention. 
           [0012]      FIG. 3  is a depiction of the Kernel partially centered on a UV source configured in accordance with one embodiment of the present invention. 
           [0013]      FIG. 4  is a depiction of the Kernel centered outside of a UV source configured in accordance with one embodiment of the present invention. 
           [0014]      FIG. 5  is a depiction of a UV sensor array with a number of inoperable pixels undergoing an extended median filter with gradient filter configured in accordance with one embodiment of the present invention. 
           [0015]      FIG. 6  is a depiction of an embodiment of the compensation algorithm configured in accordance with the present invention. 
           [0016]      FIG. 7  is a description of a MaxCrn function used by the algorithm configured in accordance with one embodiment of the present invention. 
           [0017]      FIG. 8  is a description of a MSLP function used by the algorithm configured in accordance with one embodiment of the present invention. 
           [0018]      FIG. 9  is a method flow chart configured in accordance with one embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0019]    The present invention compensates for inoperable pixels by calculating replacement values for the inoperable pixels, while minimizing unwanted effects on the final image. The present solution employs some knowledge of the source characteristics or the UV signature to evaluate the missing values. One of the characteristics of the source is that it represents a point source with a pixel extent defined by the optical point spreading function of the lens and/or the optical scattering function of the atmosphere. The present solution reduces noise by a factor of four and prevents random sources from appearing real in the array. The present solution utilizes a compensation algorithm. Embodiments of the compensation algorithm employ a gradient peak, corner, and median filters based on the centroid value of a 3×3 pixel kernel centered on an indicated inoperable pixel. 
         [0020]      FIG. 1  is a depiction of a simplified sensor array  100 . Components comprise a dead/stuck pixel  105 , other pixels of the sensor array; a row decoder; a column decoder; and an image output stage. 
         [0021]      FIGS. 2-4  depict an array (kernel) created around an inoperable pixel (pixel A 22  of the kernel) shown in three alignments with the UV source. As seen in the Figures, the array kernels are composed in a 3×3 configuration. The total array kernel comprises eight pixels surrounding an inoperable pixel. A UV source produces a value on each operable kernel pixel. The value of each kernel pixel depends on radiation from the UV source, and as such creates a surface composed of pixel values. These surface values may be used to determine where the UV source is located in relation to the kernel array. 
         [0022]      FIG. 2  depicts the Kernel and the inoperable pixel (pixel A 22 ) collocated and centered with a UV source for the first alignment  200 . The array kernel is composed in a 3×3 configuration  205 . The total array Kernel comprises eight pixels surrounding an inoperable pixel  210 . UV source  215  produces a value on the kernel pixels. UV source  215  is depicted as having three regions—an outer region  220 ; an intermediate region  225 ; and an inner region  230 . 
         [0023]      FIG. 3  depicts the Kernel centered on an inoperable pixel (pixel A 22 )  305  and a UV source  310  located in one of the kernel&#39;s corners for the second alignment  300 . 
         [0024]      FIG. 4  depicts the Kernel centered on an inoperable pixel (pixel A 22 ) and a UV source located outside of the area covered by the Kernel for the third alignment  400 . A UV source  410  is centered outside of the Kernel  405 . 
         [0025]    In determining an estimated value of the inoperable pixel, various filters are used. The following is a nonlimiting list of filters used in embodiments: guard peak, median filter, max kernel slope, max kernel slope*1.2, max kernel slope*0.75, max kernel slope*0.5, max kernel slope*0.3, and max corner. Max kernel slope is calculated by taking half of the maximum value of the sum of pixels and their opposites along the array. Max Corner is the maximum of the average of each corner pixel and each corner pixels two adjacent pixels. The filter used is determined by the centroid value. 
         [0026]      FIG. 5  depicts various Kernel locations with respect to the typical UV source spatial profile side view  530 . Five locations of the UV source over the Kernel, having different centroid values, are shown. Location  1   505  with UV source inner region over pixel A 22  has a centroid value of less than  0 . 2 . Alignment  2   510  with UV source inner region partially over pixel A 33  has a centroid value of greater than  0 . 95 . Alignment  3   515  with UV source inner region partially over pixels A 22 , A 23 , A 32 , and A 33  has a centroid value of greater than or equal to 0.2 and less than 0.575. Alignment  4   520  with UV source inner region centered over pixel A 33  has a centroid value of greater than or equal to 0.575 and less than 0.95. In alignment  5   525 , the UV source extent is outside the Kernel and the Kernel is located over the noise floor. Part of the source profile  530  depicts noise floor  535 . 
         [0027]      FIG. 6  depicts an embodiment of compensation algorithm  600 . Filter type used  605  is designated as a function of the centroid value  610  between zero and one. For centroid values 0-0.1755, Guard Peak*1.1 (Pk1.1) filter is used, for centroid values 0.1755-0.2351, Max Corner (MaxCrn) is used, for centroid values 0.2351-0.4534 Max Kernel Slope (MSLP) is used, for centroid values 0.4534-0.6164 Max Kernel Slope*1.2 (MSLP1.2) is used, for centroid values 0.6164-0.7637 Max Kernel Slope*0.75 (MSLP0.75) is used, for centroid values 0.7637-0.8829 Max Kernel Slope*0.5 (MSLP0.5) is used, for centroid values 0.8829-0.9740 Max Kernel Slope*0.3 (MSLP0.3) is used, and for centroid values greater than 0.9740 Median Filter (MED) is used. A stuck pixel is replaced with a value of zero if the Kernel is positioned over “pure” noise, regardless of the centroid value. 
         [0028]      FIG. 7  is a description of a MaxCrn function  700  used by embodiments of the algorithm. Specifically, Max Corner (MaxCrn)=Maximum (Average(Crn1); Average(Crn2); Average(Crn3); Average(Crn4)). 
         [0029]      FIG. 8  is a description of a MSLP function  800  used by embodiments of the algorithm. Specifically, Max Kernel Slope (MSLP)=0.5*Maximum(A 11 +A 33 ; A 12 +A 32 ; A 13 +A 31 ; A 21 +A 23 ). 
         [0030]      FIG. 9  is a method flow chart  900 . Steps comprise identifying an inoperable pixel on a UV sensor array having pixels  905 ; applying a 3×3 kernel to the inoperable pixel  910 , the 3×3 kernel being centered on the inoperable pixel; calculating a centroid value for the inoperable pixel  915 ; selecting a compensation algorithm based on the 3×3 kernel centroid  920 ; calculating estimated value for the inoperable pixel  925 ; applying calculated compensation to the inoperable pixel  930 ; and repeating the algorithm for other inoperable pixels in the array  935 . 
         [0031]    The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of this disclosure. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.