The present disclosure generally relates to the field of image processing, and in particular, to techniques for implementing sensors with a hardware architecture configured to support active, standby, and inactive operational states.
An event camera may include an image sensor that is referred to as a dynamic vision sensor (“DVS”), a silicon retina, an event-based sensor, or a frame-less sensor. Thus, the event camera generates (and transmits) data regarding changes in light intensity at each pixel sensor as opposed to data output by frame-based cameras regarding absolute light intensity at each pixel. Stated differently, while a frame-based camera will continue to generate (and transmit) data regarding absolute light intensity at each pixel when an illumination level of a scene disposed within its field of view remains static, an event camera will refrain from generating or transmitting data until a change in the illumination level is detected.
Some image processing operations utilize less than a full set of image data derived from pixel events output by an event driven sensor. Such image processing operations may improve computational efficiency by cropping the image data and process the cropped image data to conserve power and the like. However, pixels of an event driven sensor corresponding to the image data external to the cropped image data continue to operate, and thus continue to consume power. As such, it is desirable to address this inefficiency arising when image processing operations utilize less than a full set of image data derived from pixel events output by an event driven sensor.
Various implementations disclosed herein relate to techniques for implementing event driven sensors with a hardware architecture configured to support active, standby, and inactive operational states. The plurality of pixels are positioned to receive light from a scene disposed within a field of view of the event sensor. Each pixel is configured to have an operational state that is modified by control signals generated by a respective state circuit. The event compiler is configured to output a stream of pixel events. Each respective pixel event corresponds to a breach of a comparator threshold related to an intensity of incident illumination. Each control signal is generated based on feedback information that is received from an image pipeline that is configured to consume image data derived from the stream of pixel events.
In another implementation, a pixel includes a photodetector circuit, an event circuit and a state circuit. The photodetector circuit is configured to generate pixel data indicative of an intensity of incident illumination. The event circuit is configured to generate event data when the pixel data indicates that the photodetector circuit has detected a change in light intensity that exceeds a comparator threshold. The state circuit is configured to transition the pixel between an active state and a standby state based on feedback information generated by an image pipeline that consumes image data derived using the event data.
In another implementation, a pixel includes a photodetector circuit, an event circuit and a state circuit. The photodetector circuit is configured to generate pixel data indicative of an intensity of incident illumination. The event circuit is configured to generate event data when the pixel data indicates that the photodetector circuit has detected a change in light intensity that breaches a comparator threshold. The state circuit is configured to generate control signals that modify an operational state of the pixel based on feedback information generated by an image pipeline that consumes image data derived using the event data.
So that the present disclosure can be understood by those of ordinary skill in the art, a more detailed description may be had by reference to aspects of some illustrative implementations, some of which are shown in the accompanying drawings.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may not depict all of the components of a given system, method or device. Finally, like reference numerals may be used to denote like features throughout the specification and figures.
Numerous details are described in order to provide a thorough understanding of the example implementations shown in the drawings. However, the drawings merely show some example aspects of the present disclosure and are therefore not to be considered limiting. Those of ordinary skill in the art will appreciate that other effective aspects or variants do not include all of the specific details described herein. Moreover, well-known systems, methods, components, devices and circuits have not been described in exhaustive detail so as not to obscure more pertinent aspects of the example implementations described herein.
A functional block diagram of an example event sensor 100 is illustrated by
Photodetector circuit 110 is configured to generate signals indicative of an intensity of light incident on a respective pixel 105 (“incident illumination”). To that end, photodetector circuit 110 includes a photodiode 112 configured to generate a photocurrent that is proportional to an intensity of incident illumination. The photocurrent generated by photodiode 112 flows into a logarithmic amplifier 120 formed by transistors 121, 123, 125, and 127. Logarithmic amplifier 120 is configured to convert the photocurrent into a voltage at node A with a value that is a logarithm of a value of the photocurrent. The voltage at node A is then amplified by a buffer amplifier 130 formed by transistors 131 and 133 before being applied to an input side of a differencing circuit 140 of event circuit 180.
Pixel 105 further includes an event circuit 180 comprising a differencing circuit 140, a comparator 160, and a controller 170. Differencing circuit 140 is composed of alternating current (“AC”) coupling capacitor 145 and switched capacitor amplifier 150. Differencing circuit 140 is configured to remove a direct current (“DC”) voltage component from the voltage at node A to produce pixel data at sampling node B. By removing the DC voltage component from the voltage at node A, the pixel data at sampling node B data provides a differential value of the intensity of incident illumination detected by photodiode 112. A gain provided by amplifier 151 corresponds to a ratio defined by the respective capacitive values of AC coupling capacitor 145 to capacitor 153. Reset switch 155 is activated (i.e., transitioned from an open state to a closed state) when a reset signal is received from controller 170. By activating reset switch 155, an operating point of amplifier 151 is reset to a reference voltage associated with a threshold value of comparator 160.
Comparator 160 is configured to provide pixel-level processing of pixel data received from sample node B. To that end, comparator 160 outputs an electrical response (e.g., a voltage) when the pixel data received from sample node B indicates that photodiode 112 detected a change in an intensity of incident illumination that breaches a threshold value. Alternatively, comparator 160 refrains from outputting an electrical response when the pixel data received from sample node B indicates that photodiode 112 did not detect a change in the intensity of incident illumination that breaches the threshold value.
In one implementation, comparator 160 is implemented using a plurality of comparators comprising a first comparator that is configured to output an electrical response indicative of positive events (e.g., events having a positive polarity) and a second comparator that is configured to output an electrical response indicative of negative events (e.g., events having a negative polarity). In one implementation, the first comparator outputs an electrical response when the pixel data received from sample node B indicates that photodiode 112 detected a change in the intensity of incident illumination that breaches a positive threshold value. In one implementation, the second comparator outputs an electrical response when the pixel data received from sample node B indicates that photodiode 112 detected a change in the intensity of incident illumination that breaches a negative threshold value.
Controller 170 is configured to coordinate with other components of the event sensor 100 (e.g., controllers within other pixels) to communicate an event signal (e.g., a sample of event data) to an event compiler 190 for each electrical response output by comparator 160. In one implementation, reset switch 155 receives a reset signal from controller 170 each time comparator 160 obtains pixel data at sampling node B that breaches the threshold value.
Event compiler 190 receives events signals (e.g., samples of event data) from each of the plurality of pixels 105 that each represent a change in an intensity of incident illumination breaching the threshold value. In response to receiving a sample of event data from a particular pixel of the plurality of pixels 105, event compiler 190 generates a pixel event. Furthermore, event compiler 190 populates the pixel event with information indicative of an electrical response (e.g., a value and/or polarity of the electrical response) included in the event signal. In one implementation, event compiler 190 also populates the pixel event with one or more of: timestamp information corresponding to a point in time at which the pixel event was generated and an address identifier corresponding to the particular pixel that sent the event signal which triggered the pixel event. A stream of pixel events including each pixel event generated by event compiler 190 may then be communicated to an image pipeline (e.g. image or video processing circuitry) (not shown) associated with event sensor 100 for further processing.
By way of example, the stream of pixel events generated by event compiler 190 can be accumulated or otherwise combined to produce image data. In some implementations the stream of pixel events is combined to provide an intensity reconstruction image. In this implementation, an intensity reconstruction image generator (not shown) may accumulate pixel events over time to reconstruct/estimate absolute intensity values. As additional pixel events are accumulated the intensity reconstruction image generator changes the corresponding values in the reconstruction image. In this way, it generates and maintains an updated image of values for all pixels of an image even though only some of the pixels may have received events recently.
In various implementations, event driven sensors are implemented with a hardware architecture configured to support active, standby, and operational states. Generally, this involves an event sensor 210 outputting pixel events to an image pipeline 220 and, in response, receiving feedback information from image pipeline 220, as seen in
In various implementations, image pipeline 220 effectuates some functionalities that utilize less than a full set of image data derived from the pixel events output by event sensor 210. By way of example, image pipeline 220 may further include a feature tracker configured to detect a feature depicted in the image data derived from the pixel events (e.g., using such techniques as SIFT, KAZE, and the like) and track that feature over time (e.g., using such techniques as a Kanade-Lucas-Tomasi tracker, a Shi-Tomasi tracker, and the like). In this example, the feature tracker of image pipeline 220 may effectuate an eye tracking functionality by detecting and tracking gaze characteristics (e.g., pupil center, pupil contour, glint locations, gaze direction, and the like) using image data depicting an eye of a user that is derived from pixel events output by event sensor 210.
One technique of cropping the image data residing outside of the region of interest 320 may be implemented using image pipeline 220. In accordance with this technique, image pipeline 220 may receive pixel events corresponding to a field of view of event sensor 210. To form the cropped image data 400, image pipeline 220 may either disregard pixel events corresponding to the image data residing outside of the region of interest 320 or crop the image data residing outside of the region of interest 320 after deriving the full set of image data 300. However, in either instance, event sensor 210 includes a subset of pixels generating the pixel events corresponding to the image data residing outside of the region of interest 320 that continue to consume power. Moreover, the pixel events corresponding to the image data residing outside of the region of interest 320 continue to consume bandwidth of a communication path between event sensor 210 and image pipeline 220. Accordingly, implementing a technique of cropping the image data residing outside of the region of interest 320 that involves event sensor 210 may further reduce power and bandwidth consumption.
To that end, image pipeline 220 communicates feedback information to event sensor 210, as illustrated in
When the event sensor receives feedback information from an image pipeline that less than a full set of image data is being processed by a particular image processing operation, some pixels of the event sensor may transition from the active state to another operational state. For example, some pixels of the event sensor may transition to an inactive state. As used herein, “inactive state” refers to an operational state of a pixel in which the pixel is less than fully-functional. In one implementation, a photodetector circuit and an event circuit of a pixel in an inactive state are each deactivated (or non-functional).
In some instances, a pixel of an event sensor may be unable to instantly transition from an inactive state to an active state. To mitigate such latency issues, some pixels of the event sensor may transition from the active state to a standby state. As used herein, “standby state” refers to an operational state of a pixel in which the pixel is less than fully-functional but is more functional than pixels in an inactive state. In one implementation, an event circuit of a pixel is deactivated (or non-functional) when the pixel transitions to a standby state while a photodetector circuit of the pixel is activated (or fully-functional).
By way of example, an image pipeline may communicate feedback information based on image data 300 of
In one implementation, the feedback information includes parameters that define a location of one or more regions within pixel array 500. For example, the parameters that define a location of region 510 may include offset values specified relative to boundaries of pixel array 500, such as x-offset 512, y-offset 514, or a combination thereof. As another example, the parameters that define a location of region 520 may include offset values specified relative to boundaries of pixel array 500, such as some combination of x-offset 512, x-offset 522, y-offset 514, and y-offset 524.
In one implementation, one or more regions of pixel array 500 have a predefined size. For example, region 510 may have a predefined size specified as width 516 and height 518. As another example, region 520 may have a predefined size specified as width 526 and height 528. In one implementation, the feedback information includes parameters that define a size of one or more regions within pixel array 500. For example, the parameters of the feedback information may define one or more of width 516, width 526, height 518, and height 528.
In one implementation, the feedback information may include a bitmask encoding a target operational state for each individual pixel. For example, the bitmask could represent a circular region of pixels being in active state while pixels external to the circular region (e.g., the rest of the pixels comprising an event sensor) are in ready or inactive states. One skilled in the art may appreciate that the bitmask mask can represent any arbitrarily shaped region or set of regions in the event sensor being set in one of the disclosed operational states, with the smallest such region being any individual pixel.
Subsequent to the first time, the image pipeline may receive additional pixel events from the event sensor that changes the image data being processed by the image pipeline. For example, a location of a feature of interest (e.g., pupil center 310 of
Between the first time and the second time some pixels within pixel array 600 transition from one operational state to another operational state in response to the feedback information received from the image pipeline. For example, as seen in
Among the control signals that state circuit 810 generates is a first control signal (“LP”). In one implementation, state circuit 810 generates the first control signal by performing a logical OR operation 812 on a signal received from an associated row controller (“LP_row”) or a signal received from an associated column controller (“LP_col”). In one implementation, state circuit 810 generates the first control signal based on one or more signals received from the associated row controller, the associated column controller, or a combination thereof
In operation, the first control signal is activated when an operational state of pixel 805 transitions to a standby state. Activating the first control signal minimizes a bias current of amplifier 151 within switch capacitor amplifier 150. In one implementation, minimizing the bias current of amplifier 151 maintains a virtual ground for AC coupling capacitor 145 within a target error margin (e.g., +/−5%). In one implementation, the bias current of amplifier 151 is returned to a “normal” value (e.g., a value corresponding to the bias current of amplifier 151 when an operational state of pixel 805 is an active state) prior to completing a transition of pixel 805 from the standby state to an active state. In one implementation, the bias current returns to the normal value prior to deactivating the first control signal. By returning the bias current of amplifier 151 prior to completing the transition from the standby state to the active state, the virtual ground for AC coupling capacitor may recover error that accumulated while pixel 805 is in the standby state. Returning the bias current of amplifier 151 prior to completing that transition may also prevent an erroneous triggering of comparator 160.
Another control signal that state circuit 810 generates is a second control signal (“PD1”). In one implementation, state circuit 810 generates the second control signal by performing a logical OR operation 814 on a signal received from an associated row controller (“PD1_row”) or a signal received from an associated column controller (“PD1_col”). In one implementation, state circuit 810 generates the second control signal based on one or more signals received from the associated row controller, the associated column controller, or a combination thereof.
In operation, the second control signal is activated when an operational state of pixel 805 transitions to a standby state. Activating the second control signal deactivates comparator 160, controller 170, or a combination thereof within event circuit 820. In one implementation, deactivating controller 170 also bypasses capacitor 153 of switched capacitor amplifier 150. In one implementation, the second control signal that deactivates controller 170 is also passed to a first input 832 of a logical OR operation 830. Reset switch 155 receives a reset signal from the logical OR operation 830 when the second control signal is passed to the first input 832 of the logical OR operation 830. In bypassing capacitor 153 when controller 170 is deactivated, AC coupling capacitor 145 may continue to track variations of the intensity of incident illumination detected by photodetector circuit 110 while pixel 805 is in the standby state. Stated differently, AC coupling capacitor 145 is configured to track background changes in light intensity when the second control signal activates reset switch 155.
In one implementation, a second input 831 of the logical OR operation 830 receives signals from controller 170 when an operational state of pixel 805 is an active state. In one implementation, controller 170 is configured to output a signal to the second input 831 of the logical OR operation 830 when comparator 160 receives pixel data from sample node B that indicates photodiode 112 detected a change in an intensity of incident illumination that breaches a threshold value while pixel 805 is in the active state.
In one implementation, generating the first control signal by state circuit 910 includes performing a logical OR operation 918 on a signal received from an associated row controller (“LP_row”) or a signal received from an associated column controller (“LP_col”). In one implementation, activating the first control signal minimizes a bias current of amplifier 151 within switch capacitor amplifier 150. In one implementation, state circuit 910 generates the first control signal based on one or more signals received from the associated row controller, the associated column controller, or a combination thereof.
In one implementation, generating the second control signal by state circuit 910 includes performing a logical OR operation 912 on a signal received from an associated row controller (“PD1_row”) or a signal received from an associated column controller (“PD1_col”). In one implementation, generating the second control signal by state circuit 910 includes performing a logical OR operation 916 on an output signal received from logical OR operation 912 or an output signal received from a logical OR operation 914. In one implementation, state circuit 910 generates the second control signal based on one or more signals received from the associated row controller, the associated column controller, or a combination thereof
In pixel 905, controller 170 is deactivated when the second control signal is activated. In one implementation, as in pixel 805, deactivating controller 170 in pixel 905 also bypasses capacitor 153 of switched capacitor amplifier 150. Capacitor 153 is bypassed in pixel 905 when the second control signal that deactivates controller 170 is also passed to a first input 942 of a logical OR operation 940. Reset switch 155 receives a reset signal from the logical OR operation 940 when the second control signal is passed to the first input 942 of the logical OR operation 940.
In one implementation, a second input 941 of the logical OR operation 940 receives signals from controller 170 when an operational state of pixel 905 is an active state. In one implementation, controller 170 is configured to output a signal to the second input 941 of the logical OR operation 940 when comparator 160 receives pixel data from sample node B that indicates photodiode 112 detected a change in an intensity of incident illumination that breaches a threshold value while pixel 905 is in the active state.
Another control signal that state circuit 910 generates is a third control signal (“PD2”). In one implementation, state circuit 910 generates the third control signal by performing the logical OR operation 914 on a signal received from an associated row controller (“PD2_row”) or a signal received from an associated column controller (“PD2_col”). In one implementation, state circuit 910 generates the third control signal based on one or more signals received from the associated row controller, the associated column controller, or a combination thereof
In operation, the third control signal is activated when an operational state of pixel 905 transitions to an inactive state. Activating the third control signal deactivates at least a subset of photodetector circuit 920 by deactivating one or more of logarithmic amplifier 120 through activating a first power down switch 922 and buffer amplifier 130 through activating a second power down switch 924. In one implementation, activating the third control signal deactivates switched capacitor amplifier 150 by minimizing a bias current of amplifier 151.
The use of “adapted to” or “configured to” herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. Additionally, the use of “based on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based on” one or more recited conditions or values may, in practice, be based on additional conditions or value beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.
It will also be understood that, although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first node could be termed a second node, and, similarly, a second node could be termed a first node, which changing the meaning of the description, so long as all occurrences of the “first node” are renamed consistently and all occurrences of the “second node” are renamed consistently. The first node and the second node are both nodes, but they are not the same node.
The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting of the claims. As used in the description of the implementations and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
The foregoing description and summary of the invention are to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined only from the detailed description of illustrative implementations but according to the full breadth permitted by patent laws. It is to be understood that the implementations shown and described herein are only illustrative of the principles of the present invention and that various modification may be implemented by those skilled in the art without departing from the scope and spirit of the invention.
This application is related to International Application No. PCT/US2020/023750, filed Mar. 20, 2020, which is entitled “SENSOR SYSTEM ARCHITECTURE WITH FEEDBACK LOOP AND MULTIPLE POWER STATES”, and incorporated herein by reference as if reproduced in its entirety
Number | Date | Country | |
---|---|---|---|
62824500 | Mar 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2020/023777 | Mar 2020 | US |
Child | 17401385 | US |