Fixed pattern noise reduction methods and systems
Patent Information
- Application Number
- PCT/US2025/018412
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-05
- Filing Date
- 2025-03-04
- Publication Date
- 2025-10-02
AI Technical Summary
Existing image processing techniques struggle to effectively reduce fixed pattern noise, especially in uncooled thermal sensors, which can worsen over time and are computationally prohibitive at high frame rates, leading to visible scene artifacts.
A method and system that utilize noise estimate values and flatness measurement values to selectively dampen noise estimates, generating noise correction terms by comparing pixel values to thresholds and applying damping factors to update these values over time, reducing fixed pattern noise without requiring hard thresholds.
The method effectively reduces fixed pattern noise by selectively updating noise correction terms, converging towards floor values, and improving image quality without introducing scene artifacts, even at high frame rates.
Smart Images

Figure US2025018412_02102025_PF_FP_ABST
Abstract
Description
[0001]FIXED PATTERN NOISE REDUCTION METHODS AND SYSTEMS Brenna Hensley CROSS REFERENCE TO RELATED APPLICATIONS This application claims the benefit of and priority to U.S. Provisional Patent Application No.63 / 561,630 filed March 5, 2024 and entitled “FIXED PATTERN NOISE REDUCTION METHODS AND SYSTEMS,” which is incorporated herein by reference in its entirety. TECHNICAL FIELD The present invention relates generally to image processing and, more particularly, to the reduction of fixed pattern noise in images. BACKGROUND Various types of imaging devices are used to capture image frames (e.g., images) in response to electromagnetic radiation received from scenes of interest. Typically, these imaging devices include sensors arranged in an array organized in rows and columns, with each sensor providing a corresponding pixel of an image frame, and each pixel having an associated pixel value corresponding to the incident radiation. The quality of image frames provided may be degraded due to non-uniform responses among the individual sensors to the incident radiation, particularly in uncooled thermal sensors. This can manifest as fixed pattern noise present in the resulting image frames. However, separating desired scene information from such fixed pattern noise is difficult. For example, some existing noise reduction techniques rely on motion (e.g., motion of the sensors relative to the scene and / or vice versa) which can be problematic if motion is not present for a period of time, as fixed pattern noise may become worse over time if not corrected (e.g., due to noise drift). Additionally, it may be computationally prohibitive to perform noise reduction processing at high frame rates, thus making such processing extremely prone to visible scene artifacts if noise reduction processing cannot be performed for every image frame. SUMMARY Methods and systems are provided for removing fixed pattern noise in image frames using noise estimate values and flatness measurement values. In some embodiments, flatness measurement values of a selected (e.g., current) image frame are compared to one or more thresholds to determine a damping factor. The damping factor may be used to selectively damp noise estimate values associated with the selected image frame and a previous image frame to provide applied noise estimate values for use in generating noise correction terms for the selected image frame. In some embodiments, the flatness measurement values of the selected image frame and a subsequent image frame may also be selectively damped using the damping factor to identify the thresholds used to determine an updated damping factor for the subsequent image frame. In one embodiment, a method includes selecting an image frame comprising a plurality of pixels; calculating, for each pixel, a noise estimate value and a flatness measurement value; determining, for each pixel, a damping factor using the flatness measurement value; and selectively weighting by the damping factor, for each pixel, the noise estimate value associated with the selected image frame and a previous noise estimate value associated with a previous image frame to generate a noise correction term. In another embodiment, a system includes a logic device configured to: select an image frame comprising a plurality of pixels; calculate, for each pixel, a noise estimate value and a flatness measurement value; determine, for each pixel, a damping factor using the flatness measurement value; and selectively weight by the damping factor, for each pixel, the noise estimate value associated with the selected image frame and a previous noise estimate value associated with a previous image frame to generate a noise correction term. The scope of the invention is defined by the claims, which are incorporated into this section by reference. A more complete understanding of embodiments of the present invention will be afforded to those skilled in the art, as well as a realization of additional advantages thereof, by a consideration of the following detailed description of one or more embodiments. Reference will be made to the appended sheets of drawings that will first be described briefly. BRIEF DESCRIPTION OF THE DRAWINGS Fig.1 illustrates a block diagram of an imaging system in accordance with an embodiment of the disclosure. Fig.2 illustrates a block diagram of an image capture component in accordance with an embodiment of the disclosure. Fig.3 illustrates a process of generating noise correction terms in accordance with an embodiment of the present disclosure. Fig.4 illustrates a process of determining noise estimate values in accordance with an embodiment of the present disclosure. Fig.5 illustrates a process of determining flatness measurement values in accordance with an embodiment of the present disclosure. Fig.6 illustrates damping factor values associated with flatness measurement values in accordance with an embodiment of the present disclosure. Fig.7 illustrates damping factor calculations in accordance with an embodiment of the present disclosure. Fig.8 illustrates an image frame with noise present in accordance with an embodiment of the present disclosure. Fig.9 illustrates a corrected image frame with noise reduced in accordance with an embodiment of the present disclosure. Embodiments of the present invention and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures. DETAILED DESCRIPTION In accordance with embodiments disclosed herein, various techniques are provided to generate per pixel (e.g., pixel-wise) noise correction terms that may be applied to image frames to reduce fixed pattern noise. The noise correction terms may be selectively updated over time as additional image frames are captured and processed. In particular, updates associated with noise detected in an image frame may be selectively weighted (e.g., damped) using a flatness measurement value (e.g., also referred to as a flatness metric) calculated for associated pixels of the image frame. For example, subsets of pixels (e.g., also referred to as blocks or kernels) of an image frame may be processed to calculate noise estimate values associated with each pixel. In this regard, a noise estimate value may be associated with each pixel of the image frame and stored in a present (e.g., current) noise buffer. The subsets may also be processed to calculate flatness measurement values associated with each pixel. In this regard, a flatness measurement value may be associated with each pixel of the image frame and stored in a present (e.g., current) flatness buffer. For example, the present noise buffer and the present flatness buffer may each include associated noise estimate values and flatness measurement values, respectively, for each pixel of the image frame. The flatness measurement values may be used to determine damping factor values (e.g., based on a comparison with one or more thresholds determined by previous flatness measurement values resulting from the processing of a previous image frame as further discussed herein). For example, pixels that are determined by their associated flatness measurement values to have a high likelihood of being associated with a flat scene (e.g., wherein any anomalous pixel values have a high likelihood of being associated with fixed pattern noise rather than scene information) may be associated with low damping factor values. Pixels that are determined by their associated flatness measurement values to have an intermediate (e.g., reduced) likelihood of being associated with a flat scene (e.g., wherein any anomalous pixel values have a reduced likelihood of being associated with fixed pattern noise rather than scene information) may be associated with high damping factor values. Pixels that are determined by their associated flatness measurement values to have a low likelihood of being associated with a flat scene (e.g., wherein any anomalous pixel values have a low likelihood of being associated with fixed pattern noise rather than scene information) may be associated with unity damping factor values (e.g., 1). The damping factor value determined for each pixel is applied to present and previous noise buffers, and present and previous flatness buffers, to generate an applied noise buffer and an applied flatness buffer, respectively. For example, for the noise buffers, the damping factor value is used to selectively weight the noise estimate values of the present noise buffer (e.g., associated with the current image frame) and of a previous noise buffer (e.g., previously calculated for and associated with a previous image frame) to generate the noise estimate values for the applied (e.g., damped) noise buffer. Similarly, for the flatness buffers, the damping factor value is used to selectively weight the flatness measurement values of the present flatness buffer (e.g., associated with the current image frame) and of a previous flatness buffer (e.g., previously calculated for and associated with a previous image frame) to generate the flatness measurement values of the applied (e.g., damped) flatness buffer for use in identifying one or more threshold values for determining updated damping factor values when processing a subsequent image frame. The applied noise buffer is used to provide the noise correction terms that are applied to the selected image frame and following image frames until noise and flatness calculations are performed on another image frame. The applied noise buffer is used as the previous noise buffer in the damping calculations performed on the next image frame to be processed. The applied flatness buffer is used as the previous flatness buffer in the damping calculations performed on the next image frame to be processed. By selectively damping the noise estimate values of the noise buffers and the flatness measurement values of the flatness buffers as discussed, the values of the applied noise buffer and the applied flatness buffer may converge toward floor values without requiring the setting of hard thresholds. For example, it will be appreciated that the processing discussed herein may not update the noise estimate values of the applied noise buffer unless they are likely to be better (e.g., contain more noise and less scene information) than the noise estimate values of the previous noise buffer. In some embodiments, the noise and flatness calculations may be performed on a sequence of image frames periodically (e.g., skipping one or more intermediate image frames) and / or sequentially (e.g., on all image frames) depending on the available processing resources (e.g., of logic device 110 discussed herein). In some embodiments, the pixels may be selected and processed in subsets of 8 by 8 pixels and successive subsets may be processed in a sliding window fashion by repeatedly sliding over by 4 pixels until a full set of 8 rows have been processed, and then sliding down by 4 pixels to process the next set of rows until all rows and columns of the selected image frame have been processed (e.g., excluding any pixels skipped for dithering purposes). Thus, in this implementation, each pixel of the selected image frame will be processed at least 4 times (e.g., 4 noise estimate values and 4 flatness measurement values will be determined for each pixel). The 4 values of each type may be averaged and / or otherwise processed to provide a single resulting noise estimate value and a single resulting flatness measurement value for each pixel. In some embodiments, subset locations may be dithered between different image frames to remove possible artifacts. For example, in some embodiments, subset locations may be offset frame-to-frame by one or more pixels along a first axis (e.g., row axis) of the image frames and / or by one or more pixels along a second axis (e.g., column axis) of the image frames. Although particular subset sizes, sliding window sizes, and offset sizes are discussed herein, any other sizes may be used as appropriate. Turning now to the drawings, Fig.1 illustrates a block diagram of an imaging system 100 in accordance with an embodiment of the disclosure. Imaging system 100 may be used to capture and process image frames in accordance with various techniques described herein. In one embodiment, various components of imaging system 100 may be provided in a housing 101, such as a housing of a camera, a personal electronic device (e.g., a mobile phone), or other system. In another embodiment, one or more components of imaging system 100 may be implemented remotely from each other in a distributed fashion (e.g., networked or otherwise). In one embodiment, imaging system 100 includes a logic device 110, a memory component 120, an image capture component 130, optical components 132 (e.g., one or more lenses configured to receive electromagnetic radiation through an aperture 134 in housing 101 and pass the electromagnetic radiation to image capture component 130), a display component 140, a control component 150, a communication component 152, a mode sensing component 160, and a sensing component 162. In various embodiments, imaging system 100 may implemented as an imaging device, such as a camera, to capture image frames, for example, of a scene 170 (e.g., a field of view) in an external environment (e.g., external to imaging system 100). Imaging system 100 may represent any type of camera system which, for example, detects electromagnetic radiation (e.g., irradiance) and provides representative data (e.g., one or more still image frames or video image frames). For example, imaging system 100 may represent a camera that is directed to detect one or more ranges (e.g., wavebands) of electromagnetic radiation and provide associated image data. In some embodiments, imaging system 100 may include a portable device. In some embodiments, imaging system 100 may be implemented as a handheld device. In some embodiments, imaging system 100 may be a non-portable and / or non-handheld device. In some embodiments, imaging system 100 may be attached to a gimbal and / or other mechanism, device, or structure. In some embodiments, imaging system 100 may be coupled to various types of vehicles (e.g., a land-based vehicle, a watercraft, an aircraft, a spacecraft, or other vehicle) or to various types of fixed locations (e.g., a home security mount, a campsite or outdoors mount, or other location) via one or more types of mounts. In still another embodiment, imaging system 100 may be integrated as part of a non- mobile installation to provide image frames to be stored and / or displayed. Logic device 110 may include, for example, a microprocessor, a single-core processor, a multi-core processor, a microcontroller, a programmable logic device (e.g., a field programmable logic device (FPGA)), and / or other device configured to perform processing operations, a digital signal processing (DSP) device, one or more memories for storing executable instructions (e.g., software, firmware, or other instructions), and / or or any other appropriate combination of processing device and / or memory to execute instructions to perform any of the various operations described herein. Logic device 110 is adapted to interface and communicate with components 120, 130, 140, 150, 160, and 162 to perform method and processing steps as described herein. Logic device 110 may include one or more mode modules 112A-112N for operating in one or more modes of operation (e.g., to operate in accordance with any of the various embodiments disclosed herein). In one embodiment, mode modules 112A-112N are adapted to define processing and / or display operations that may be embedded in logic device 110 or stored on memory component 120 for access and execution by logic device 110. In another aspect, logic device 110 may be adapted to perform various types of image processing techniques as described herein. In various embodiments, it should be appreciated that each mode module 112A-112N may be integrated in software and / or hardware as part of logic device 110, or code (e.g., software or configuration data) for each mode of operation associated with each mode module 112A-112N, which may be stored in memory component 120. Embodiments of mode modules 112A-112N (i.e., modes of operation) disclosed herein may be stored by a machine readable medium 113 in a non-transitory manner (e.g., a memory, a hard drive, a compact disk, a digital video disk, or a flash memory) to be executed by a computer (e.g., logic or processor-based system) to perform various methods disclosed herein. In various embodiments, the machine readable medium 113 may be included as part of imaging system 100 and / or separate from imaging system 100, with stored mode modules 112A-112N provided to imaging system 100 by coupling the machine readable medium 113 to imaging system 100 and / or by imaging system 100 downloading (e.g., via a wired or wireless link) the mode modules 112A-112N from the machine readable medium (e.g., containing the non-transitory information). In various embodiments, as described herein, mode modules 112A-112N provide for improved camera processing techniques for real time applications, wherein a user or operator may change the mode of operation depending on a particular application, such as an off-road application, a maritime application, an aircraft application, a space application, or other application. Memory component 120 includes, in one embodiment, one or more memory devices (e.g., one or more memories) to store data and information. The one or more memory devices may include various types of memory including volatile and non-volatile memory devices, such as RAM (Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically-Erasable Read-Only Memory), flash memory, or other types of memory. In one embodiment, logic device 110 is adapted to execute software stored in memory component 120 and / or machine readable medium 113 to perform various methods, processes, and modes of operations in manner as described herein. In some embodiments, image capture component 130 includes one or more sensors (e.g., any type of thermal infrared, near infrared, short wave infrared, mid wave infrared, long wave infrared, visible light, and / or other type of detector, including a detector implemented as part of a focal plane array) responsive to radiation received from scene 170. For example, the sensors of image capture component 130 may store voltages in response to radiation received from scene 170 (e.g., by integrating currents responsive to the radiation) and convert the voltages (e.g., via an analog-to-digital converter and / or other circuitry included as part of the sensor or separate from the sensor as part of imaging system 100) to pixel counts associated with pixels of the image frames. Logic device 110 may be adapted to receive image frames from image capture component 130, process image frames, store image frames in memory component 120, and / or retrieve stored image frames from memory component 120. Logic device 110 may be adapted to process image frames stored in memory component 120 to provide image frames to display component 140 for viewing by a user. Display component 140 includes, in one embodiment, an image display device (e.g., a liquid crystal display (LCD)) or various other types of generally known video displays or monitors. Logic device 110 may be adapted to display image data and information on display component 140. Logic device 110 may be adapted to retrieve image data and information from memory component 120 and display any retrieved image data and information on display component 140. Display component 140 may include display electronics, which may be utilized by logic device 110 to display image data and information. Display component 140 may receive image data and information directly from image capture component 130 via logic device 110, or the image data and information may be transferred from memory component 120 via logic device 110. In one embodiment, logic device 110 may initially process a captured thermal image frame and present a processed image frame in one mode, corresponding to mode modules 112A-112N, and then upon user input to control component 150, logic device 110 may switch the current mode to a different mode for viewing the processed image frame on display component 140 in the different mode. This switching may be referred to as applying the camera processing techniques of mode modules 112A-112N for real time applications, wherein a user or operator may change the mode while viewing an image frame on display component 140 based on user input to control component 150. In various aspects, display component 140 may be remotely positioned, and logic device 110 may be adapted to remotely display image data and information on display component 140 via wired or wireless communication with display component 140, as described herein. Control component 150 includes, in one embodiment, a user input and / or interface device having one or more user actuated components, such as one or more push buttons, slide bars, rotatable knobs or a keyboard, that are adapted to generate one or more user actuated input control signals. Control component 150 may be adapted to be integrated as part of display component 140 to operate as both a user input device and a display device, such as, for example, a touch screen device adapted to receive input signals from a user touching different parts of the display screen. Logic device 110 may be adapted to sense control input signals from control component 150 and respond to any sensed control input signals received therefrom. Control component 150 may include, in one embodiment, a control panel unit (e.g., a wired or wireless handheld control unit) having one or more user-activated mechanisms (e.g., buttons, knobs, sliders, or others) adapted to interface with a user and receive user input control signals. In various embodiments, the one or more user-activated mechanisms of the control panel unit may be utilized to select between the various modes of operation, as described herein in reference to mode modules 112A-112N. In other embodiments, it should be appreciated that the control panel unit may be adapted to include one or more other user- activated mechanisms to provide various other control operations of imaging system 100, such as auto-focus, menu enable and selection, field of view (FoV), brightness, contrast, gain, offset, spatial, temporal, and / or various other features and / or parameters. In still other embodiments, a variable gain signal may be adjusted by the user or operator based on a selected mode of operation. In another embodiment, control component 150 may include a graphical user interface (GUI), which may be integrated as part of display component 140 (e.g., a user actuated touch screen), having one or more images of the user-activated mechanisms (e.g., buttons, knobs, sliders, or others), which are adapted to interface with a user and receive user input control signals via the display component 140. As an example for one or more embodiments as discussed further herein, display component 140 and control component 150 may represent appropriate portions of a smart phone, a tablet, a personal digital assistant (e.g., a wireless, mobile device), a laptop computer, a desktop computer, or other type of device. Mode sensing component 160 includes, in one embodiment, an application sensor adapted to automatically sense a mode of operation, depending on the sensed application (e.g., intended use or implementation), and provide related information to logic device 110. In various embodiments, the application sensor may include a mechanical triggering mechanism (e.g., a clamp, clip, hook, switch, push-button, or others), an electronic triggering mechanism (e.g., an electronic switch, push-button, electrical signal, electrical connection, or others), an electro-mechanical triggering mechanism, an electro-magnetic triggering mechanism, or some combination thereof. For example for one or more embodiments, mode sensing component 160 senses a mode of operation corresponding to the intended application of imaging system 100 based on the type of mount (e.g., accessory or fixture) to which a user has coupled the imaging system 100 (e.g., image capture component 130). Alternatively, the mode of operation may be provided via control component 150 by a user of imaging system 100 (e.g., wirelessly via display component 140 having a touch screen or other user input representing control component 150). Furthermore in accordance with one or more embodiments, a default mode of operation may be provided, such as for example when mode sensing component 160 does not sense a particular mode of operation (e.g., no mount sensed or user selection provided). For example, imaging system 100 may be used in a freeform mode (e.g., handheld with no mount) and the default mode of operation may be set to handheld operation, with the image frames provided wirelessly to a wireless display (e.g., another handheld device with a display, such as a smart phone, or to a vehicle’s display). Mode sensing component 160, in one embodiment, may include a mechanical locking mechanism adapted to secure the imaging system 100 to a vehicle or part thereof and may include a sensor adapted to provide a sensing signal to logic device 110 when the imaging system 100 is mounted and / or secured to the vehicle. Mode sensing component 160, in one embodiment, may be adapted to receive an electrical signal and / or sense an electrical connection type and / or mechanical mount type and provide a sensing signal to logic device 110. Alternatively or in addition, as discussed herein for one or more embodiments, a user may provide a user input via control component 150 (e.g., a wireless touch screen of display component 140) to designate the desired mode (e.g., application) of imaging system 100. Logic device 110 may be adapted to communicate with mode sensing component 160 (e.g., by receiving sensor information from mode sensing component 160) and image capture component 130 (e.g., by receiving data and information from image capture component 130 and providing and / or receiving command, control, and / or other information to and / or from other components of imaging system 100). In various embodiments, mode sensing component 160 may be adapted to provide data and information relating to system applications including a handheld implementation and / or coupling implementation associated with various types of vehicles (e.g., a land-based vehicle, a watercraft, an aircraft, a spacecraft, or other vehicle) or stationary applications (e.g., a fixed location, such as on a structure). In one embodiment, mode sensing component 160 may include communication devices that relay information to logic device 110 via wireless communication. For example, mode sensing component 160 may be adapted to receive and / or provide information through a satellite, through a local broadcast transmission (e.g., radio frequency), through a mobile or cellular network and / or through information beacons in an infrastructure (e.g., a transportation or highway information beacon infrastructure) or various other wired or wireless techniques (e.g., using various local area or wide area wireless standards). In another embodiment, imaging system 100 may include one or more other types of sensing components 162, including environmental and / or operational sensors, depending on the sensed application or implementation, which provide information to logic device 110 (e.g., by receiving sensor information from each sensing component 162). In various embodiments, other sensing components 162 may be adapted to provide data and information related to environmental conditions, such as internal and / or external temperature conditions, lighting conditions (e.g., day, night, dusk, and / or dawn), humidity levels, specific weather conditions (e.g., sun, rain, and / or snow), distance (e.g., laser rangefinder), and / or whether a tunnel, a covered parking garage, or that some type of enclosure has been entered or exited. Accordingly, other sensing components 162 may include one or more conventional sensors as would be known by those skilled in the art for monitoring various conditions (e.g., environmental conditions) that may have an effect (e.g., on the image appearance) on the data provided by image capture component 130. In some embodiments, other sensing components 162 may include devices that relay information to logic device 110 via wireless communication. For example, each sensing component 162 may be adapted to receive information from a satellite, through a local broadcast (e.g., radio frequency) transmission, through a mobile or cellular network and / or through information beacons in an infrastructure (e.g., a transportation or highway information beacon infrastructure) or various other wired or wireless techniques. In some embodiments, other sensing components 162 may include one or more motion and / or location sensors (e.g., accelerometers, gyroscopes, micro-electromechanical system (MEMS) devices, and / or others as appropriate). In various embodiments, components of imaging system 100 may be combined and / or implemented or not, as desired or depending on application requirements, with imaging system 100 representing various operational blocks of a system. For example, logic device 110 may be combined with memory component 120, image capture component 130, display component 140, and / or mode sensing component 160. In another example, logic device 110 may be combined with image capture component 130 with only certain operations of logic device 110 performed by circuitry (e.g., a processor, a microprocessor, a microcontroller, a logic device, or other circuitry) within image capture component 130. In still another example, control component 150 may be combined with one or more other components or be remotely connected to at least one other component, such as logic device 110, via a wired or wireless control device so as to provide control signals thereto. In some embodiments, communication component 152 may be implemented as a network interface component (NIC) adapted for communication with a network including other devices in the network. In various embodiments, communication component 152 may include a wireless communication component, such as a wireless local area network (WLAN) component based on the IEEE 802.11 standards, a wireless broadband component, mobile cellular component, a wireless satellite component, or various other types of wireless communication components including radio frequency (RF), microwave frequency (MWF), and / or infrared frequency (IRF) components adapted for communication with a network. As such, communication component 152 may include an antenna coupled thereto for wireless communication purposes. In other embodiments, the communication component 152 may be adapted to interface with a DSL (e.g., Digital Subscriber Line) modem, a PSTN (Public Switched Telephone Network) modem, an Ethernet device, and / or various other types of wired and / or wireless network communication devices adapted for communication with a network. In various embodiments, a network may be implemented as a single network or a combination of multiple networks. For example, in various embodiments, the network may include the Internet and / or one or more intranets, landline networks, wireless networks, and / or other appropriate types of communication networks. In another example, the network may include a wireless telecommunications network (e.g., cellular phone network) adapted to communicate with other communication networks, such as the Internet. As such, in various embodiments, the imaging system 100 may be associated with a particular network link such as for example a URL (Uniform Resource Locator), an IP (Internet Protocol) address, and / or a mobile phone number. Fig.2 illustrates a block diagram of image capture component 130 in accordance with an embodiment of the disclosure. In this illustrated embodiment, image capture component 130 is a thermal imager implemented as a focal plane array (FPA) including an array of unit cells 232 (e.g., sensors) and a read out integrated circuit (ROIC) 202. Each unit cell 232 may be provided with an infrared detector (e.g., a microbolometer, indium antimonide (InSb) sensor, multilayer sensor, or other appropriate cooled or uncooled sensor) and associated circuitry to provide image data for a pixel of a captured thermal image frame. In this regard, time-multiplexed electrical signals may be provided by the unit cells 232 to ROIC 202. For example, in some embodiments, such sensors may be cooled sensors, high operating temperature (HOT) cooled sensors (e.g., operating at or near 120 degrees K), or uncooled sensors. In some embodiments, anomalous pixels may be more likely in HOT cooled sensors or uncooled sensors than conventional cooled sensors (e.g., InSb sensors). Accordingly, the various embodiments disclosed herein are particularly advantageous in implementations employing HOT cooled sensors or uncooled sensors. ROIC 202 includes bias generation and timing control circuitry 204, column amplifiers 205, a column multiplexer 206, a row multiplexer 208, and an output amplifier 210. Image frames captured by infrared sensors of the unit cells 232 may be provided by output amplifier 210 to logic device 110 and / or any other appropriate components to perform various processing techniques described herein. Although an 8 by 8 array is shown in Fig.2, any desired array configuration may be used in other embodiments. Further descriptions of ROICs and infrared sensors (e.g., microbolometer circuits) may be found in U.S. Patent No. 6,028,309 issued February 22, 2000 which is incorporated by reference herein in its entirety. Fig.3 illustrates a process 300 of generating noise correction terms in accordance with an embodiment of the present disclosure. In some embodiments, process 300 may be performed by logic device 110 of imaging system 100. In operation 310, logic device 110 receives (e.g., selects) an image frame, for example, from image capture component 130, memory component 120, and / or another appropriate source. In some embodiments, such image frames may be thermal image frames comprising 640 pixels by 512 pixels, 320 pixels by 256 pixels, and / or other types of image frames and / or other resolutions. For example, Fig.8 illustrates an image frame 800 (e.g., captured of scene 170 by image capture component 130) in accordance with an embodiment of the present disclosure. As shown, image frame 800 exhibits various non-uniformities that may be associated with content of scene 170 and / or non-uniform responses of sensors of image capture component In operation 320, logic device 110 calculates noise estimate values for the pixels of image frame 800 to generate present noise buffer 325. In some embodiments, operation 320 may be performed in accordance with a process 400 of Fig.4. As discussed, subsets of pixels may be selected for processing in a sliding window fashion. For example, in Fig.4, a subset 404 of pixels of image frame 800 has been selected corresponding to a subset of 8 by 8 pixels. In operation 410, the pixel values of subset 404 are converted to the spectral domain using a spectral decomposition transform (e.g. a Haar discrete wavelet transform, a discreet cosign transform, and / or other transforms as appropriate). This results in the generation of a plurality of spectral coefficients 415. In this example, 64 coefficients are generated (other numbers are also contemplated). In operation 420, absolute values of spectral coefficients 415 are scaled, compared to threshold values 425, and adjusted. For example, threshold values 425 may be predetermined threshold values for spectral coefficients that have been predetermined to be associated with fixed pattern noise. In some embodiments, spectral coefficients 415 that are greater than (or less than depending on implementation) the corresponding threshold values 425 may be determined to be associated with fixed pattern noise and therefore adjusted to zero, whereas spectral coefficients 415 that are less than (or greater than depending on implementation) the corresponding threshold values 425 may be determined to be associated with scene information and not adjusted (or vice versa depending on implementation). Accordingly, in operation 420, spectral coefficients 415 are adjusted to provide adjusted (e.g., surviving) spectral coefficients 430. In this example, adjusted spectral coefficients 430 correspond to scene information, as the noise has been reduced as a result of the adjustment. In operation 435, an inverse (e.g. reverse) spectral decomposition transform is performed on the adjusted spectral coefficients 430 to provide an adjusted subset 440 of pixels that correspond to subset 404, but with noise removed. In operation 445, the adjusted subset 440 is subtracted from the original subset 404 (e.g., corresponding pixel values may be subtracted from each other) to provide a noise estimate subset 450, wherein each pixel value of subset 450 corresponds to a noise estimate value associated with the corresponding pixel. In some embodiments, noise estimate subset 450 may be generated directly from operation 435 if spectral coefficients 415 are adjusted in operation 420 to remove scene information instead of noise. Process 400 is repeated for all subsets 404 of image frame 800 to provide noise estimate values for all pixels of image frame 800. These noise estimate values are accumulated into present noise buffer 325. As discussed, the multiple (e.g., 4) noise estimate values may determined for individual pixels resulting from the overlapping of processed subsets 404. These multiple noise estimate values may be averaged together or otherwise combined to provide a single noise estimate value for each pixel. As a result, present noise buffer 325 will include an associated noise estimate value for each pixel of image frame 800. Returning to Fig.3, in operation 330, logic device 110 calculates flatness measurement values for the pixels of image frame 800 to generate present flatness buffer 335. As shown, in some embodiments, operations 320 and 330 (and / or other operations of Fig.3) may be performed sequentially, in parallel, or in any desired manner (e.g., arrangements other than those illustrated in Fig.3 are contemplated any may be used as appropriate). In some embodiments, operation 330 may be performed in accordance with a process 500 of Fig.5. In process 500, the subsets of pixels of image frame 800 may be selected for processing in a sliding window fashion as previously discussed with regard to process 400 of Fig.4. For example, in Fig.5, subset 404 of pixels of image frame 800 has again been selected for processing. As shown, operations 510, 540, and 570 may be performed to generate a flatness measurement value for subset 404. In operation 510, pixel values of adjacent columns (e.g., labeled Col 1 through Col 8) of subset 404 are subtracted from each other to provide column difference values 520 (labeled Dx). The resulting column difference values 520 are summed together to provide a summed column difference value 530 (labeled sumDx). In operation 540, pixel values of adjacent rows (e.g., labeled Row 1 through Row 8) of subset 404 are subtracted from each other to provide row difference values 550 (labeled Dy). The resulting row difference values are summed together to provide a summed row difference value 560 (labeled sumDy). In operation 570, the absolute values of the summed column difference value 530 (labeled Abs(sumDx)) and the summed row difference value 560 (labeled Abs(sumDy)) are summed together to provide flatness measurement value 580 (labeled Flatness). In this regard, the flatness measurement value 580 will be associated with all pixels of subset 404. In this example, lower numbers for flatness measurement value 580 are associated with flatter (e.g., more uniform) pixel values. In some embodiments, a scalar (e.g., 1) may be added to flatness measurement value 580 to maintain a minimum value of 1. Process 500 is repeated for all subsets 404 of image frame 800 to provide flatness measurement values for all pixels of image frame 800. These flatness measurement values are accumulated into present flatness buffer 335. The multiple (e.g., 4) flatness measurement values 580 determined for individual pixels resulting from the overlapping of processed subsets 404 may be averaged together or otherwise combined to provide a single associated flatness measurement value for each pixel. As a result, present flatness buffer 335 will include associated flatness measurement values for each pixel of image frame 800. Returning to Fig.3, in operation 340, logic device 110 uses the flatness measurement values of each pixel of present flatness buffer 335 to determine a damping factor value for each pixel. In this regard, logic device 110 compares the flatness measurement value of each pixel to various thresholds to determine a damping factor value associated with the pixel. For example, Fig.6 illustrates damping factor values (labeled DF) associated with flatness measurement values in accordance with an embodiment of the present disclosure. As shown in Fig.6, a flatness threshold value 602 corresponding to the flatness measurement value of previous flatness buffer 365 is identified. In addition, a flatness threshold value 604 corresponding to the product of the flatness measurement value of previous flatness buffer 365 and a sensitivity value is also identified (e.g., (flatness threshold value 604) = (flatness measurement value of previous flatness buffer 365) x (sensitivity value)). As shown, a flatness measurement value of present flatness buffer 335 less than threshold value 602 (e.g., in a range 610) will be associated with a low damping factor value 615. A flatness measurement value of present flatness buffer 335 greater than threshold value 602 and less than threshold value 604 (e.g., in a range 620) will be associated with a high damping factor value 625. A flatness measurement value of present flatness buffer 335 greater than threshold value 604 (e.g., in a range 630) will be associated with a unity (e.g., 1) damping factor value 635. Also in operation 340, after the damping factor value is determined for each pixel of image frame 800, it is applied, for example, in accordance with the following equations 1 and (equation 2) In equation 1, the noise estimate values of present noise buffer 325 (labeled noisepresent) and a previous noise buffer 355 (labeled noiseprevious) are weighted by the particular damping factor DF associated with each pixel location of the noise buffers 325 and 355. In this regard, present noise buffer 325 is the set of noise estimate values calculated for the selected image frame 800 as discussed with regard to operation 320. Previous noise buffer 355 is the applied noise buffer 350 comprising updated noise estimate values generated by the damping of noise estimate values performed in a previous iteration of operation 340 for a previous image frame. In equation 2, the flatness measurement values of present flatness buffer 335 (labeled flatnesspresent) and a previous flatness buffer 365 (labeled flatnessprevious) are also weighted by the particular damping factor DF associated with each pixel location of the flatness buffers 335 and 365. In this regard, present flatness buffer 335 is the set of flatness measurement values calculated for the selected image frame 800 as discussed with regard to operation 330. Previous flatness buffer 365 is the applied flatness buffer 360 comprising updated flatness measurement values generated by the damping of flatness measurement values performed in a previous iteration of operation 340 for a previous image frame. By applying damping factor DF to the various values of noise buffers 325 / 355 and flatness buffers 335 / 365, the resulting applied noise buffer 350 and the resulting applied flatness buffer 360 (e.g., used to determine thresholds 602 and 604 shown in Fig.6) may therefore include selectively weighted contributions from both the present buffers 325 / 335 and the previous buffers 355 / 365. This permits the resulting noise estimate values to be updated more aggressively for pixels that are likely to include only noise, and less aggressively (or not at all) for pixels that that are likely to include some or substantial scene content. For example, in some embodiments, damping factor 615 may be a value of 0.7 (e.g., 70%), damping factor 625 may be a value of 0.95 (e.g., 95%), and damping factor 635 may be a value of 1.0 (e.g., 100%), however other values are also contemplated. In this example, pixels having a flatness measurement value in range 610 (e.g., lower flatness measurement values corresponding to a high likelihood of flatness) corresponding to damping factor 615 will result in higher contributions from present buffers 325 / 335 (e.g., 1 – 0.7 = 0.30 = 30%) to applied buffers 350 / 360. Pixels having a flatness measurement value in range 620 (e.g., intermediate flatness measurement values corresponding to an intermediate likelihood of flatness) corresponding to damping factor 625 will result in reduced contributions from present buffers 325 / 335 (e.g., 1 – 0.95 = 0.05 = 5%) to applied buffers 350 / 360. Pixels having a flatness measurement value in range 630 (e.g., high flatness measurement values corresponding to a low likelihood of flatness) corresponding to damping factor 635 will result in no contributions from present buffers 325 / 335 (e.g., 1 – 1 = 0 = 0%) to applied buffers 350 / 360. As shown in Fig.3, the various values of applied noise buffer 350 may therefore be used as noise correction terms 353 (e.g., labeled Noise Correction Output) and applied to image frame 800 in operation 370 to generate a corrected image frame. For example, Fig.9 illustrates corrected image frame 900 with noise reduced in comparison with image frame As also shown in Fig.3 and further shown in Fig.7, applied noise buffer 350 is assigned to previous noise buffer 355 for use in the next iteration of operation 340. Likewise, applied flatness buffer 360 is assigned to previous flatness buffer 365 for use in the next iteration of operation 340. In various embodiments, process 300 may be repeated for additional image frames to repeatedly update applied noise buffer 350 and therefore update noise correction terms 353 in a periodic and / or sequential manner for the additional image frames as discussed. Where applicable, various embodiments provided by the present disclosure can be implemented using hardware, software, or combinations of hardware and software. Also where applicable, the various hardware components and / or software components set forth herein can be combined into composite components comprising software, hardware, and / or both without departing from the spirit of the present disclosure. Where applicable, the various hardware components and / or software components set forth herein can be separated into sub-components comprising software, hardware, or both without departing from the spirit of the present disclosure. In addition, where applicable, it is contemplated that software components can be implemented as hardware components, and vice-versa. Software in accordance with the present disclosure, such as program code and / or data, can be stored on one or more computer readable mediums. It is also contemplated that software identified herein can be implemented using one or more general purpose or specific purpose computers and / or computer systems, networked and / or otherwise. Where applicable, the ordering of various steps described herein can be changed, combined into composite steps, and / or separated into sub-steps to provide features described herein. Embodiments described above illustrate but do not limit the invention. It should also be understood that numerous modifications and variations are possible in accordance with the principles of the present invention. Accordingly, the scope of the invention is defined only by the following claims.
Claims
CLAIMS What is claimed is:
1. A method comprising: selecting an image frame comprising a plurality of pixels; calculating, for each pixel, a noise estimate value and a flatness measurement value; determining, for each pixel, a damping factor using the flatness measurement value; and selectively weighting by the damping factor, for each pixel, the noise estimate value associated with the selected image frame and a previous noise estimate value associated with a previous image frame to generate a noise correction term.
2. The method of claim 1, wherein the determining the damping factor comprises comparing the flatness measurement value associated with the selected image frame to one or more thresholds determined at least in part by a previous flatness measurement value associated with the previous image frame. The method of claim 2, further comprising: selectively weighting by the damping factor, for each pixel, the flatness measurement value associated with the selected image frame and the previous flatness measurement value associated with the previous image frame to generate an updated flatness measurement value; and repeating the determining for a subsequent image frame using one or more thresholds determined at least in part by the updated flatness measurement value.
4. The method of claim 1, wherein the weighting causes the noise correction terms to be selectively updated in relation to previous noise correction terms generated for the previous image frame.
5. The method of claim 1, wherein the selected image frame comprises a plurality of subsets of the pixels, wherein the calculating comprises: selecting one of the subsets of the pixels using a sliding window; processing the selected subset; and repeating the selecting and the processing for additional subsets.
6. The method of claim 5, further comprising: repeating the calculating for a subsequent image frame; and wherein the subsets of the pixels of the subsequent image frame exhibit frame-to- frame offsets in relation to the selected image frame.
7. The method of claim 5, wherein the processing comprises: performing a spectral decomposition transform on the selected subset to generate a plurality of spectral coefficients; adjusting the spectral coefficients; performing a reverse spectral decomposition transform on the adjusted spectral coefficients to generate an adjusted subset; and determining the noise estimate values using the adjusted subset.
8. The method of claim 5, wherein the processing comprises calculating differences between adjacent columns and between adjacent rows of the selected subset to determine the flatness measurement values.
9. The method of claim 1, wherein the selected image frame is part of a sequence comprising the selected image frame followed by a plurality of intermediate image frames and a subsequent image frame, the method further comprising: applying the noise correction terms to the selected image frame and the intermediate image frames;repeating the selecting, the calculating, the determining, and the weighting for the subsequent image frame to generate updated noise correction terms; and applying the updated noise correction terms to the subsequent image frame.
10. The method of claim 1, further comprising: capturing the selected image frame by an array of thermal image sensors of a thermal imaging system in response to thermal radiation received from a scene external to the thermal imaging system; and applying the noise correction terms to the selected image frame.
11. A system comprising: a logic device configured to: select an image frame comprising a plurality of pixels; calculate, for each pixel, a noise estimate value and a flatness measurement value; determine, for each pixel, a damping factor using the flatness measurement value; and selectively weight by the damping factor, for each pixel, the noise estimate value associated with the selected image frame and a previous noise estimate value associated with a previous image frame to generate a noise correction term.
12. The system of claim 11, wherein the logic device is configured to determine the damping factor by comparing the flatness measurement value associated with the selected image frame to one or more thresholds determined at least in part by a previous flatness measurement value associated with the previous image frame.
13. The system of claim 12, wherein the logic device is configured to:selectively weight by the damping factor, for each pixel, the flatness measurement value associated with the selected image frame and the previous flatness measurement value associated with the previous image frame to generate an updated flatness measurement value; and determine a damping factor for a subsequent image frame using one or more thresholds determined at least in part by the updated flatness measurement value.
14. The system of claim 11, wherein the weight causes the noise correction terms to be selectively updated in relation to previous noise correction terms generated for the previous image frame.
15. The system of claim 11, wherein the selected image frame comprises a plurality of subsets of the pixels, wherein the logic device is configured to perform for the calculate: select one of the subsets of the pixels using a sliding window; process the selected subset; and repeat the select and the process for additional subsets.
16. The system of claim 15, wherein the logic device is configured to: repeat the calculate for a subsequent image frame; and wherein the subsets of the pixels of the subsequent image frame exhibit frame-to- frame offsets in relation to the selected image frame.
17. The system of claim 15, wherein the logic device is configured to perform for the process: perform a spectral decomposition transform on the selected subset to generate a plurality of spectral coefficients; adjust the spectral coefficients;perform a reverse spectral decomposition transform on the adjusted spectral coefficients to generate an adjusted subset; and determine the noise estimate values using the adjusted subset.
18. The system of claim 15, wherein the logic device is configured to perform for the process: calculate differences between adjacent columns and between adjacent rows of the selected subset to determine the flatness measurement values.
19. The system of claim 11, wherein the selected image frame is part of a sequence comprising the selected image frame followed by a plurality of intermediate image frames and a subsequent image frame, wherein the logic device is configured to: apply the noise correction terms to the selected image frame and the intermediate image frames; repeat the select, the calculate, the determine, and the weight for the subsequent image frame to generate updated noise correction terms; and apply the updated noise correction terms to the subsequent image frame.
20. The system of claim 11, wherein the system is a thermal imaging system further comprising: an array of thermal image sensors configured to capture the selected image frame in response to thermal radiation received from a scene external to the thermal imaging system; and wherein the logic device is configured to apply the noise correction terms to the selected image frame.