# Patent

## Title
Method and system for UV inoperable pixel compensation

## 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.

## Background
RELATED APPLICATIONS
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
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
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
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.
What is needed, therefore, are techniques for more accurate replacement values for inoperable pixels of UV sensor arrays.
SUMMARY OF THE INVENTION
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 (A13; A23; A33) minus a sum of (A11; A21; A31)) divided by a sum of (A13; A23; A33; A11; A21; A31); and where CentroidY equals (a sum of (A11; A12; A13) minus a sum of (A31; A32; A33)) divided by a sum of (A11; A12; A13; A31; A32; A33). 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 (A11, A12, A13, A21, A23, A31, A32, A33)). In additional embodiments the Median filter comprises calculating a median value out of eight pixels in the Kernel comprising (Median of (A11, A12, A13, A21, A23, A31, A32, A33)). In included embodiments the Max kernel Slope (MSLP) Filter selects a largest of an opposite kernel's pixel sums and applies half of a selected value as a result, wherein (MSLP equals one half times a Maximum of (A11+A33; A12+A32; A13+A31; A21+A23)). In yet further embodiments the Max Corner (MaxCrn) equals a maximum of an average of each corner pixel and each corner pixel's two adjacent pixels of the kernel, where MaxCrn equals Maximum of ((A21+A31+A32) divided by three; (A21+A11+A12) divided by three; (A12+A13+A23) divided by three; (A23+A33+A32) 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.
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.
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.
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
FIG. 1 is a depiction of a simplified sensor array configured in accordance with one embodiment of the present invention.
FIG. 2 is depiction of the Kernel centered on a UV source configured in accordance with one embodiment of the present invention.
FIG. 3 is a depiction of the Kernel partially centered on a UV source configured in accordance with one embodiment of the present invention.
FIG. 4 is a depiction of the Kernel centered outside of a UV source configured in accordance with one embodiment of the present invention.
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.
FIG. 6 is a depiction of an embodiment of the compensation algorithm configured in accordance with the present invention.
FIG. 7 is a description of a MaxCrn function used by the algorithm configured in accordance with one embodiment of the present invention.
FIG. 8 is a description of a MSLP function used by the algorithm configured in accordance with one embodiment of the present invention.
FIG. 9 is a method flow chart configured in accordance with one embodiment of the present invention.



DETAILED DESCRIPTION
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.
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.
FIGS. 2-4 depict an array (kernel) created around an inoperable pixel (pixel A22 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.
FIG. 2 depicts the Kernel and the inoperable pixel (pixel A22) 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.
FIG. 3 depicts the Kernel centered on an inoperable pixel (pixel A22) 305 and a UV source 310 located in one of the kernel's corners for the second alignment 300.
FIG. 4 depicts the Kernel centered on an inoperable pixel (pixel A22) 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.
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.
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 A22 has a centroid value of less than 0.2. Alignment 2 510 with UV source inner region partially over pixel A33 has a centroid value of greater than 0.95. Alignment 3 515 with UV source inner region partially over pixels A22, A23, A32, and A33 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 A33 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.
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.
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)).
FIG. 8 is a description of a MSLP function 800 used by embodiments of the algorithm. Specifically, Max Kernel Slope (MSLP)=0.5*Maximum(A11+A33; A12+A32; A13+A31; A21+A23).
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.
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.

## Claims

1. A method for estimating values lost to inoperable pixels on an ultraviolet (UV) sensor array, the method comprising:
identifying one said inoperable pixel on said ultraviolet (UV) sensor array having pixels;
applying a kernel to said inoperable pixel;
acquiring a centroid value for said inoperable pixel;
applying a compensation algorithm to said kernel, wherein said compensation algorithm further comprises:
applying a Guard Peak function multiplied by 1.1 to said kernel if the centroid value is between 0-0.1755;
applying a Max(Corner) function to said kernel if the centroid value is between 0.1755-0.2351;
applying a Max Kernel Slope (MSLP) function multiplied by 1.2 to said kernel if the centroid value is between 0.2351-0.4534;
applying said MSLP function to said kernel if the centroid value is between 0.4534-0.6164;
applying said MSLP multiplied by 0.75 to said kernel if the centroid value is between 0.6164-0.7637;
applying said MSLP multiplied by 0.5 to said kernel if the centroid value is between 0.7637-0.8829;
applying MSLP multiplied by 0.3 to said kernel if the centroid value is between 0.8829-0.9740; and
applying a Median Filter to said kernel if the centroid value is greater than 0.9740, calculating estimated values for said inoperable pixel; and

outputting said estimated value for said inoperable pixel with output of said UV sensor array.

2. The method of claim 1, wherein said compensation algorithm filter is based on said centroid value wherein said Centroid value equals a square root of ((CentroidX multiplied by CentroidX) plus (CentroidY multiplied by CentroidY));
where CentroidX equals (a sum of (A13; A23; A33) minus a sum of (A11; A21; A31)) divided by a sum of (A13; A23; A33; A11; A21; A31); and
where CentroidY equals (a sum of (A11; A12; A13) minus a sum of (A31; A32; A33)) divided by a sum of (A11; A12; A13; A31; A32; A33).

3. The method of claim 1, wherein dimensions of said kernel are three by three.

4. The method of claim 1, wherein said kernel is centered on said inoperable pixel.

5. The method of claim 2, comprising eight centroid value ranges.

6. The method of claim 5 wherein said 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.

7. The method of claim 1, wherein said Guard Peak function comprises selecting a largest value out of eight pixels in said Kernel inoperable pixel comprising (Maximum of (A11, A12, A13, A21, A23, A31, A32, A33)).

8. The method of claim 1, wherein said Median filter comprises calculating a median value out of eight pixels in said kernel comprising (Median of (A11, A12, A13, A21, A23, A31, A32, A33)).

9. The method of claim 1, wherein said Max Kernel Slope (MSLP) function selects a largest of an opposite kernel's pixel sums and applies half of a selected value as a result, wherein (MSLP equals one half times a Maximum of (A11+A33; A12+A32; A13+A31; A21+A23)).

10. The method of claim 1, wherein said Max Corner (MaxCrn) equals a maximum of an average of each corner pixel and each corner pixel's two adjacent pixels of said kernel, where MaxCrn equals Maximum of ((A21+A31+A32) divided by three; (A21+A11+A12) divided by three; (A12+A13+A23) divided by three; (A23+A33+A32) divided by three).

11. The method of claim 3, wherein said kernel comprises eight pixels surrounding an inoperable pixel.

12. The method of claim 1, wherein a value of said inoperable pixel is replaced with a value of zero if said kernel is positioned over pure noise, regardless of said centroid value.

13. A system for estimating values lost to inoperable pixels on an ultraviolet (UV) sensor array comprising:
identifying at least one said inoperable pixel on said UV sensor array;
applying a kernel to one of said at least one inoperable pixels;
acquiring a centroid value for said one inoperable pixel;
applying a compensation algorithm to said kernel, wherein said step of applying a compensation algorithm further comprises:
applying a Guard Peak function multiplied by 1.1 to said kernel if the centroid value is between 0-0.1755;
applying a Max(Corner) function to said kernel if the centroid value is between 0.1755-0.2351;
applying a Max Kernel Slope (MSLP) function multiplied by 1.2 to said kernel if the centroid value is between 0.2351-0.4534;
applying said MSLP function to said kernel if the centroid value is between 0.4534-0.6164;
applying said MSLP multiplied by 0.75 to said kernel if the centroid value is between 0.6164-0.7637;
applying said MSLP multiplied by 0.5 to said kernel if the centroid value is between 0.7637-0.8829;
applying MSLP multiplied by 0.3 to said kernel if the centroid value is between 0.8829-0.9740; and
applying a Median Filter to said kernel if the centroid value is greater than 0.9740;

calculating an estimated value for said one inoperable pixel;
repeating said steps for subsequent inoperable pixels; and
outputting said estimated value for said inoperable pixels with output of said UV sensor array, whereby added noise is reduced by a factor of four and random sources are prevented from appearing in output of said array.

14. The system of claim 13, wherein said kernel comprises a three by three block of eight pixels surrounding said inoperable pixel.

15. The system of claim 13, wherein said kernel is centered on said inoperable pixel.

16. The system of claim 13, wherein a value of said inoperable pixel is replaced with a value of zero if said kernel is positioned over pure noise, regardless of said centroid value.

17. The system of claim 13, wherein said compensation algorithm filter selection is based on one of eight centroid value ranges.

18. An ultraviolet (UV) sensor array system for estimating values lost to inoperable pixels comprising:
identifying one said inoperable pixel on said UV sensor array having pixels;
applying a 3×3 kernel to said inoperable pixel, said 3×3 kernel being centered on said inoperable pixel;
acquiring a centroid value for said inoperable pixel;
applying a compensation algorithm to said kernel, said compensation algorithm comprising:
applying a Guard Peak function multiplied by 1.1 to said kernel if the centroid value is between 0-0.1755;
applying a Max(Corner) function to said 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 said kernel;
applying a Max Kernel Slope (MSLP) function multiplied by 1.2 to said kernel if the centroid value is between 0.2351-0.4534, wherein said MSLP function equals half of a maximum value of a sum of pixels and their opposites along said kernel;
applying said MSLP function to said kernel if the centroid value is between 0.4534-0.6164;
applying said MSLP multiplied by 0.75 to said kernel if the centroid value is between 0.6164-0.7637;
applying said MSLP multiplied by 0.5 to said kernel if the centroid value is between 0.7637-0.8829;
applying MSLP multiplied by 0.3 to said kernel if the centroid value is between 0.8829-0.9740; and
applying a Median Filter to said kernel if the centroid value is greater than 0.9740;

calculating estimated values for said inoperable pixel; and
outputting said estimated value for said inoperable pixel with output of said UV sensor array, whereby noise is reduced by a factor of four and random sources are prevented from appearing in output of said array.