This disclosure generally relates to imaging systems. More specifically, this disclosure relates to pixel-based event detection for tracking, hostile fire indication, glint suppression, and other applications.
A typical imaging system or “imager” can capture a series of image frames at a specified frame rate. Unfortunately, the temporal bandwidth of an imager is limited by the frame rate of the captured image frames. If an event occurs that is bright in intensity but that is shorter than the frame rate, information identifying when the event occurred can be lost due to the poor temporal resolution of the imager. The bright intensity of the event can also limit the ability of the imager to discern spatial information in a scene. Various bright events that could affect an imager include glint from reflective objects, muzzle flashes from weapons, or rocket propelled grenade launches.
One conventional approach to solving this problem includes the use of analog peak and derivative filtering. However, this approach typically consumes a large amount of power and does not work well with advanced digital imaging systems, such as those that use complementary-metal-oxide semiconductor (CMOS) pixels. Another conventional approach is to increase the overall frame rate of an imager and post-process image frames to locate events, but this approach lowers the sensitivity of the imager and drastically increases the amount of power consumed by the overall system.
This disclosure provides pixel-based event detection for tracking, hostile fire indication, glint suppression, and other applications.
In a first embodiment, a method includes generating an intensity value based on illumination received at a pixel of an imaging system. The intensity value is generated by integrating values using a first counter of a detector during a first period of time. The method also includes integrating the values repeatedly during smaller second periods of time within the first period of time using a second counter of the detector. The second counter has a lower bit resolution than the first counter. The method further includes resetting the second counter for each of the second periods of time. In addition, the method includes generating a pixel event indicator in response to the second counter outputting a specified value.
In a second embodiment, an apparatus includes a detector configured to measure intensity of illumination received at a pixel and to detect an event using the received illumination. The detector includes a first counter configured to generate an intensity value based on the illumination received at the pixel by integrating values during a first period of time. The detector also includes a second counter configured to integrate the values repeatedly during smaller second periods of time within the first period of time. The second counter has a lower bit resolution than the first counter and is configured to be reset for each of the second periods of time. The detector further includes a latch configured to generate a pixel event indicator in response to the second counter outputting a specified value.
In a third embodiment, a system includes a focal plane array having multiple pixels and, for each of at least some of the pixels, a detector configured to measure intensity of illumination received at that pixel and to detect an event using the received illumination. Each detector includes a first counter configured to generate an intensity value based on the illumination received at the pixel by integrating values during a first period of time. Each detector also includes a second counter configured to integrate the values repeatedly during smaller second periods of time within the first period of time, where the second counter has a lower bit resolution than the first counter and is configured to be reset for each of the second periods of time. Each detector further includes a latch configured to generate a pixel event indicator in response to the second counter outputting a specified value.
Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
For a more complete understanding of this disclosure, reference is made to the following description, taken in conjunction with the accompanying drawings, in which:
The focal plane array 104 generally operates to capture images of a scene. The focal plane array 104 includes a matrix or other collection of pixels that generate electrical signals representing a scene. The focal plane array 104 could capture images in any suitable spectrum or spectra, such as in the visible, infrared, or ultraviolet spectrum. The focal plane array 104 could also have any suitable resolution, such as when the focal plane array 104 includes a collection of approximately 8,000 pixels by approximately 8,000 pixels. The focal plane array 104 includes any suitable collection of pixels that capture images. The focal plane array 104 could also include additional components that facilitate the receipt and output of information from the pixels, such as readout integrated circuits (ROICs).
As described in more detail below, the focal plane array 104 includes pixel-based event detectors that are used with digital pixels to discriminate events of a selected intensity. A filter in each detector can be formed using a low resolution counter (such as a one-bit or few-bit counter) and a frequency reference. The low resolution counter can be incremented by a comparator and reset after a periodic time interval defined by the frequency reference. If the low resolution counter advances to a threshold value within a single periodic time interval, the intensity measured by the pixel has exceeded a specified intensity and thus represents an event of interest.
The output of each pixel-based event detector could therefore be used as an indicator that a high-intensity event has occurred. In order to reduce false alarms (such as from glint or blinkers), local filtering can also be supported by the detectors. The local filtering allows one detector to use outputs from neighboring detectors to verify that an actual event has been detected.
This approach supports the ability to obtain high-resolution temporal information without having to process a large number of image frames. It also provides the ability to process real-time information with the pixel-based detectors as an event is happening in order to recover dynamic range lost from the bright event. Among other things, the detectors can be used to suppress glint, perform local detection of muzzle flashes, or track objects. Additional details regarding the pixel-based detectors are provided below.
The processing system 106 receives outputs from the focal plane array 104 and processes the information. For example, the processing system 106 could process image data generated by the focal plane array 104 in order to generate visual images for presentation to one or more personnel, such as on a display 108. The processing system 106 could also process information from the pixel-based detectors in the focal plane array 104 to determine whether any events of interest have been detected by the pixel-based detectors. If an event has been detected, the processing system 106 can take any suitable actions. For instance, the processing system 106 could present information associated with the detected event on the display 108 or trigger an early warning indicator 110. The display 108 could present any suitable information about a detected event, such as one or more images associated with the event. The early warning indicator 110 could denote any suitable type of indicator, such as an audible or visual alarm.
The processing system 106 includes any suitable structure for processing information from a focal plane array or other imaging system containing pixel-based detectors. For example, the processing system 106 could include one or more processing devices, such as one or more microprocessors, microcontrollers, digital signal processors, field programmable gate arrays, application specific integrated circuits, or discrete logic devices. The display 108 includes any suitable device for graphically presenting information. The early warning indicator 110 includes any suitable structure providing output to one or more personnel.
Although
As shown in
A capacitor 204 is coupled in series with the pixel 202 and in parallel with a switch 206. The capacitor 204 stores an electrical charge based on the output of the pixel 202. The capacitor 204 can also be discharged through the switch 206, which is coupled to ground. Opening the switch 206 allows electrical energy from the pixel 202 to charge the capacitor 204, and closing the switch 206 discharges the capacitor 204. The capacitor 204 includes any suitable structure having a desired capacitance. The switch 206 includes any suitable structure configured to selectively form an electrical connection, such as a transistor.
A comparator 208 compares the voltage stored on the capacitor 204, denoted VIntegration in
The comparator 208 also provides its outputs to an intensity counter 210 and a filter counter 212, each of which integrates the comparator's outputs during a periodic time interval defined by a frequency reference. The intensity counter 210 denotes a counter that increments or decrements a counter value each time the output of the comparator 208 indicates the voltage stored on the capacitor 204 has reached a specified level, such as a level greater than the reference voltage. The intensity counter 210 can integrate the outputs of the comparator 208 during each periodic time interval. The intensity counter 210 can also be reset at the end of the current periodic time interval and the beginning of the next periodic time interval so that another integration can occur. The intensity counter 210 therefore generates counter values that are indicative of the intensity of illumination received by the pixel 202 during the periodic time intervals.
While the intensity counter 210 can effectively measure intensity during each periodic time interval, the intensity counter 210 may not be effective at indicating when an extremely fast bright event occurs during a small part of a time interval (faster than the frame rate of the imager). Since the intensity counter 210 integrates intensity over an entire time interval, the intensity of a fast bright event in an otherwise dark time interval could be lost as a result of the integration. For instance, the integrated intensity of an average-intensity time interval could be equivalent to the integrated intensity of an otherwise dark time interval with a fast bright event. The outputs of the intensity counter 210 are not necessarily indicative that a fast bright event has occurred.
The filter counter 212 helps to resolve this problem by integrating the same values as the intensity counter 210 but at a lower bit resolution. The filter counter 212 denotes a counter that increments or decrements a counter value each time the output of the comparator 208 indicates the voltage stored on the capacitor 204 has reached a specified level (i.e., the reference voltage). The filter counter 212 can integrate the outputs of the comparator 208 during each periodic time interval. The filter counter 212 can also be reset at the end of the current periodic time interval and the beginning of the next periodic time interval. However, because the filter counter 212 has a lower bit resolution than the intensity counter 210, the filter counter 212 also “rolls over” its counter value (such as from a maximum value to a minimum value or vice versa) at a much faster rate than the intensity counter 210. Thus, when integrating the same values, the filter counter 212 could roll over its counter value n times for each one time the intensity counter 210 rolls over its counter value (where n>1).
Each of the counters 210 and 212 denotes any suitable structure for incrementing or decrementing a counter value. Various designs for counters are known in the art, such as those using multiple flip-flops. Also, each of the counters 210 and 212 could have any suitable resolution. For example, the filter counter 212 could output three-bit counter values, while the intensity counter 210 could output counter values having more than three bits each.
The outputs of the filter counter 212 are provided to a latch 214, which generates a signal based on whether the filter counter 212 is outputting a threshold value. For example, the latch 214 could output a high logic signal when the output of the filter counter 212 is all “1”s, and the latch 214 could output a low logic signal when the output of the filter counter 212 has any other value. In this example, the latch 214 therefore identifies when the filter counter 212 outputs a maximum counter value, although other approaches (such as signaling whenever the filter counter 212 outputs a minimum counter value) could be used. The latch 214 includes any suitable structure for detecting when a counter value has a specified value, such as a digital comparator.
Because the filter counter 212 has a lower bit resolution than the intensity counter 210, the filter counter 212 is used to identify when a bright intensity event occurs, even if the event is extremely short. For example, if an event occurs during a small portion of a periodic time interval and there is little or no illumination during the remainder of the time interval, the intensity counter 210 would effectively average the intensity over the entire length of the time interval, losing most or all information about the event. Because the filter counter 212 has a lower bit resolution, the filter counter 212 could reach the threshold value one or more times during the event. The latch 214 would therefore indicate one or more times that the threshold value has been reached by the filter counter 212, indicating that an event has occurred (even if the event is significantly shorter than the time interval and would not be discernable using the output of the intensity counter 210).
As shown in
An example operation of these components of the detector 200 is shown in
Counter values 308 include outputs from the filter counter 212, a signal 310 includes outputs from the latch 214 (as the pixel event indictor signal 218), and counter values 312 include outputs from the intensity counter 210 in the signal 216. These values are generated when processing the vIntegration voltage 302 shown in
In this particular example, the vIntegration voltage 302 on the capacitor 204 can increase up to a maximum value, at which point the switch 206 is closed by the comparator 208 to reset the voltage on the capacitor 204. The intensity counter 210 increments its counter value 312 each time the vIntegration voltage 302 hits its maximum value. The filter counter 212 similarly increments its counter value 308 each time the vIntegration voltage 302 hits its maximum value. However, the filter counter 212 (with its lower bit resolution) can “roll over” its counter value 308 more frequently than the intensity counter 210, and the filter counter 212 is reset at each pulse in the global time reference signal 304 (each time interval) while the intensity counter 210 may be reset only for different frame intervals.
During time intervals 314 in
During time intervals 316, a bright event is occurring. This causes the capacitor 204 to hit its maximum charge and discharge much more rapidly. The intensity counter 210 increments its counter value 312 repeatedly during these time intervals 316 but never rolls over since the intensity counter 210 has a higher number of bits (of course, it could roll over once depending on the counter value 312 when the event began). In contrast, the filter counter 212 increments its counter value 308 repeatedly during these time intervals 316 and rolls over multiple times because the filter counter 212 has a lower number of bits. In this example, the latch 214 pulses its output signal 310 high whenever the filter counter 212 hits a value of “111,” which occurs twice during the time intervals 316.
During time intervals 318, no bright events occur. As a result, the intensity counter 210 outputs a single counter value 312 during each period of the global time reference signal 304. Also, the filter counter 212 never counts an adequate number of values to hit the threshold value, so the latch 214 does not change the value in its output signal 310.
As can be seen in
Since the filter counter 212 has a lower resolution than the intensity counter 210, the bright event causes the filter counter 212 to repeatedly reach the threshold value at which the latch 214 pulses its output signal 310. The output signal 310 of the filter counter 212 can therefore be used as an indicator for a bright event, even if the bright event occurs more quickly than a single frame interval. Moreover, the pulses in the output signal 310 can provide temporal information regarding when the event occurred between two image frames.
Returning to
The neighboring pixel filter and event flag generator 222 could receive pixel event indictor signals 224 from any suitable neighboring detectors, such as from a single neighbor, a subset of neighbors, or all neighbors. In some embodiments, the neighboring pixel filter and event flag generator 222 in each detector 200 receives pixel event indictor signals 224 from orthogonal neighboring detectors, such as neighboring detectors that are directly above, directly below, directly to the right, and directly to the left of that detector 200. However, other associations of the detectors 200 could also be used. The neighboring pixel filter and event flag generator 222 includes any suitable structure for determining whether multiple detectors identify an event. As a particular example, the neighboring pixel filter and event flag generator 222 could be implemented using one or more AND gates arranged and configured to output a specified logic value only when all inputs indicate that an event has been detected.
An example of how multiple detectors 200 with neighbor filtering can be used in an imager is shown in
Various diamonds 408 in
Assume that the neighboring pixel filter and event flag generator 222 in each detector 200 requires all four orthogonal detectors 200 to detect an event that is also detected by that detector 200 before a pulse in the event indicator signal 226 is generated. In that configuration, pulses would be generated in the event indicator signals 226 from only a small subset 410 of pixels in the focal plane array 104. In the example shown in
The detectors 200 therefore operate in a very rapid manner to detect bright events, even those with very small durations. The detectors 200 can also operate at a much higher frequency than the frame rate of the focal plane array 104. This allows the detectors 200 to provide indications of events without requiring the use of an increased frame rate (although higher-than-normal frame rates could still be used with the focal plane array 104). As a particular example, the detectors 200 could operate at a frequency of one or multiple kilo-Hertz, while the focal plane array 104 captures images at a frame rate of 60 Hertz. Moreover, by supporting “neighbor” filtering, the actual region associated with a bright event can be identified very quickly while providing the ability to suppress false alarms due to incorrect detector operations or faulty detectors. Effectively, the detectors 200 are frequency discriminators that allow intensity measurements, and the overall architecture supports massively parallel pixel-based event detection with both local region inhibition and limited event reporting through neighboring filtering.
When an event is detected, any suitable information can be derived by the processing system 106 or other system using the information from the detectors 200. For example, the processing system 106 or other system could use the event indicator signals 226 from the detectors 200 to identify the X-Y coordinates of the detecting pixels in the focal plane array 104, the center location of the detected event, the measured intensities from those pixels, and a timestamp for the event (or any subset of this information). This information could then be used to present information on the display 108, trigger the early warning indicator 110, or perform other functions.
This detector functionality could find use in a number of applications. For example, this functionality could be used to provide early warning indicators of incoming hostile fire for military or other personnel. As a particular example, the launch of a rocket propelled grenade typically includes two flashes of light, one when the rocket propelled grenade is launched from its tube and one when propellant in the rocket propelled grenade ignites. The processing system 106 could determine when multiple flashes are detected by the focal plane array 104 in rapid succession and trigger an early warning indicator 110 for a pilot or other personnel. The direction of travel for the grenade could also be estimated using the detected flashes. Other processing operations that could occur using data from the detectors 200 include detecting muzzle flashes from weapons fire or tracking objects based on glint or other reflections from the objects.
As another example, the processing system 106 or other system could use the outputs from the latches 214 of the detectors 200 to subtract the intensity as measured by the filter counters 212 of the detectors 200 from the intensity as measured by the intensity counters 210 of the detectors 200. This effectively removes intensity measurements related to a fast bright event from intensity measurements related to an overall scene, which can help to suppress flash, glint, or other illumination that might otherwise interfere with imaging of the scene. As a third example, glint or other reflections from an object of interest could be detected and used to track the object. A number of other functions could also occur based on knowledge of a rapid bright event, such as knowledge regarding the intensity of the event, the location of the event, or the timing of the event.
Although
As shown in
The comparison results are integrated using a first counter of the detector in order to generate intensity measurements at step 506. This could include, for example, the intensity counter 210 incrementing or decrementing its counter value 312 each time the comparator 208 indicates that the voltage stored on the capacitor 204 reaches the reference voltage. The intensity counter 210 can be reset after any suitable length of time, such as once for each image frame being captured.
The comparison results are also integrated using a second counter of the detector, which has a lower bit resolution than the first counter, at step 508. This could include, for example, the filter counter 212 incrementing or decrementing its counter value 308 each time the comparator 208 indicates that the voltage stored on the capacitor 204 reaches the reference voltage. The filter counter 210 can be reset after any suitable length of time, such as after each pulse of the global time reference signal 304. In some embodiments, the filter counter 212 is a three-bit counter, while the intensity counter 210 supports more than three bits.
Depending on the illumination being received by the pixel, at some point a determination is made that the second counter obtains a threshold value, at which point a pixel event indication is generated at step 510. This could include, for example, the latch 214 determining that the counter value 308 from the filter counter 212 has a specified threshold value, such as all “1”s. This could also include the latch 214 generating a pulse in its output signal 310, which could also represent the pixel event indictor signal 218.
A determination is made whether one or more neighboring detectors detected an event at or near the same time at step 512. This could include, for example, the neighboring pixel filter and event flag generator 222 in the detector 200 determining whether pulses were received in the pixel event indictor signals 224 from one or more neighboring detectors 200. As noted above, the neighboring pixel filter and event flag generator 222 could receive signals from four orthogonal neighboring detectors, although other embodiments could be used. Also, the neighboring pixel filter and event flag generator 222 could be configured to verify whether one, some, or all of the neighboring detectors detected the same event.
If an adequate number (one, some, or all) of the neighboring detectors detected the same event (YES at step 512), an event indicator is generated at step 514. This could include, for example, the neighboring pixel filter and event flag generator 222 generating a pulse in the event indicator signal 226. Otherwise (NO at step 512), the pixel event indicator is filtered and ignored at step 516.
The data generated by the detector is output at step 518. This could include, for example, the detector 200 providing any pixel event indicators to one or more neighboring detectors, such as four orthogonal detectors or other detector(s). This could also include the detector 200 providing intensity measurements and any event indicators to the processing system 106. The data can be processed and used in any suitable manner at step 520. The exact processing can vary depending on the application. As noted above, a number of potential applications can use this detection technique, such as to perform incoming hostile fire detection, muzzle flash detection, or glint or flash suppression.
Although
In some embodiments, various functions described in this patent document are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.
It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer code (including source code, object code, or executable code). The term “communicate,” as well as derivatives thereof, encompasses both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrase “associated with,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The phrase “at least one of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.
The description in this patent document should not be read as implying that any particular element, step, or function is an essential or critical element that must be included in the claim scope. Also, none of the claims is intended to invoke 35 U.S.C. § 112(f) with respect to any of the appended claims or claim elements unless the exact words “means for” or “step for” are explicitly used in the particular claim, followed by a participle phrase identifying a function. Use of terms such as (but not limited to) “mechanism,” “module,” “device,” “unit,” “component,” “element,” “member,” “apparatus,” “machine,” “system,” “processor,” “processing device,” or “controller” within a claim is understood and intended to refer to structures known to those skilled in the relevant art, as further modified or enhanced by the features of the claims themselves, and is not intended to invoke 35 U.S.C. § 112(f).
While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5200623 | Cannata | Apr 1993 | A |
5585942 | Kondo | Dec 1996 | A |
6618117 | Silverbrook | Sep 2003 | B2 |
7349574 | Sodini | Mar 2008 | B1 |
20020135743 | Gindele | Sep 2002 | A1 |
20070075888 | Kelly | Apr 2007 | A1 |
20070125951 | Snider | Jun 2007 | A1 |
20080218616 | Wenger | Sep 2008 | A1 |
20100208986 | Cobb | Aug 2010 | A1 |
20100226495 | Kelly | Sep 2010 | A1 |
20100231562 | Brown | Sep 2010 | A1 |
20100237252 | Jin et al. | Sep 2010 | A1 |
20130003911 | Schultz | Jan 2013 | A1 |
20130088594 | Wyles | Apr 2013 | A1 |
20150036005 | Kelly | Feb 2015 | A1 |
Number | Date | Country |
---|---|---|
2582131 | Apr 2013 | EP |
Entry |
---|
Schultz, Kenneth et al., “Digital-Pixel Focal Plane Array Technology”, Lincoln Laboratory Journal, vol. 20, No. 2, 2014, pp. 36-51. |
Schultz et al., “Digital-Pixel Focal Plane Array Technology”, Lincoln Laboratory Journal, vol. 20, No. 2, 2014, 16 pages. |
International Search Report and Written Opinion of the International Searching Authority for PCT Patent Application No. PCT/US2017/055506 dated Jan. 3, 2018, 14 pages. |
Number | Date | Country | |
---|---|---|---|
20180225521 A1 | Aug 2018 | US |