Object monitoring techniques have multiple uses. For example, autonomous or assisted vehicle navigation includes detecting objects in a vicinity, trajectory or pathway of the vehicle. A variety of technologies have been employed for such object detection including cameras, ultrasound sensors, RADAR detectors and LIDAR detectors.
Event cameras present the potential for advancements in object monitoring because they have a much higher temporal resolution, lower power and higher dynamic range than other types of cameras. Event cameras operate differently than traditional cameras. Event cameras do not output images. Instead, event cameras provide data indicating intensity or illumination brightness changes detected by each pixel of the camera.
One way in which event camera data is being used includes converting the event camera data into an image (frame) and then applying computer vision techniques to process such image data as if it came from a camera that generates image data. This approach suffers from at least two drawbacks; the resulting image data is not accurate and the computer vision techniques are computationally expensive.
An illustrative example method includes obtaining data from an event camera for each of a plurality of time instances. The data includes a plurality of events corresponding to changes detected by a corresponding plurality of pixels of the event camera at each time instance. Temporally regularized optical flow velocities are determined at each time instance. Each of the pixels has a respective one of the optical flow velocities at each time instance. An optical flow of a feature of an object in a field of view of the event camera is determined based on a predetermined relationship between the temporally regularized optical flow velocities at a selected time instance and the temporally regularized optical flow velocities at a subsequent time instance. The feature of the object corresponds to one of the plurality of events at the selected time instance and one of the plurality of events at the subsequent time instance.
The various features and advantages of an example embodiment will become apparent to those skilled in the art from the following detailed description. The drawings that accompany the detailed description can be briefly described as follows.
Embodiments of this invention provide enhanced use of event camera data including the ability to use the event camera directly for monitoring purposes. Temporally regulated optical flow velocities determined directly from the event camera data allow for mapping optical flow of an object in a field of view of an event camera. There is no need to convert the event camera data into images, which allows for increased accuracy and reduced computational complexity.
The event camera 22 has a microsecond resolution and generates output data that indicates which of the pixels detected an event and which did not at a time instance, which can be considered a detection interval.
The event camera 22 is associated with a host 24 that may be a moving object, such as a vehicle, or a stationary object, such as a building or another structure. The manner in which the event camera 22 is associated with the host 24 may vary depending on the particular implementation. For example, the event camera 22 may be mounted or supported on the host. Alternatively, the event camera 22 may be positioned nearby the host 24.
A computing device 26 receives and processes the data from the event camera for monitoring a vicinity of the host 24 corresponding to a field of view 28 of the event camera 22. The computing device 26 includes at least one processor and memory associated with the processor. The computing device 26 may be associated with the event camera 22 and the host 24 in a variety of ways. For example, the computing device 26 may be a dedicated component integral with the event camera 22, a dedicated computing component situated at or on the host 24, a portion of a computing device associated with the host 24 that is useful for additional purposes, or at least a portion of a remotely located device, such as a virtual machine in a cloud computing network. Those skilled in the art that have the benefit of this description will realize what type of computing device 26 will best suit their particular needs.
The computing device 26 is programmed or otherwise configured to process data from the event camera 22 for monitoring the vicinity of the host 24 that corresponds to a field of view 28 of the event camera 22. Monitoring the vicinity or field of view includes monitoring any objects within the field of view 28. For discussion purposes,
Monitoring the object 30 includes at least one determination regarding the object 30. Example determinations include detecting the presence of the object 30, locating the object relative to the event camera 22 or host 24, tracking relative movement between the object 30 and the event camera 22 or host 24, classifying the object 30, identifying the object 30, or a combination of such determinations.
The computing device 26 is configured to use the data from the event camera 22 directly for monitoring the object 30.
In this example, an appearance 30′ of the object 30 is in different locations within the field of view 28 because there is relative movement between the object appearance 30 and the event camera 22. Such relative movement may be the result of the object 30 moving while the event camera 22 is stationary, the event camera 22 (and the host 24) moving while the object 30 is stationary, or simultaneous movement of the object 30 and the event camera 22. Depending on the location of the object 30 within the field of view 28 at a time instance, the outputs of different pixels of the event camera 22 indicate events corresponding to features of the object 30.
The object 30 can be monitored by determining the optical flow of at least some of the features of the object appearance 30′. The optical flow of the entire object appearance 30′ may be useful when sufficient data is available to make such determinations. For discussion purposes, two features of the object appearance 30′ are indicated in
The computing device 26 determines the temporally regularized optical flow velocities of the pixels that indicate an event at each of the time instances shown at 52-58. At least one of those determined velocities corresponds to the feature 60. In many situations multiple pixels and associated velocities correspond to a detected feature at each time instance. The predetermined relationship between the temporally regularized optical flow velocities minimizes changes between those velocities from time instance to time instance (e.g., from the time instance represented at 52 and the time instance represented at 58) and the computing device 26 determines the optical flow of the feature 60 as schematically represented at 62. In other words, the predetermined relationship between the temporally regularized optical flow velocities smooths the curve shown at 62.
Another feature 64 of the object appearance 30′, such as a foot of the individual, has an optical flow represented at 66. The computing device 26 uses the temporally regularized optical flow velocities of the pixels indicating events corresponding to the feature 64 and the predetermined relationship to determine the optical flow in a manner that smooths the curve 66.
An example embodiment of a method used to determine the optical flow of a monitored object, such as the object 30, includes a regularizer that enforces regularity along the velocity field.
The following definitions and assumptions apply:
Let e: [0,T]×Ω→[−1,0,1] where Ω⊆2 be the even stream represent as a continuum function
Let ν: [0,T]×Ω→2 denote the optical flow at each time.
Let ϕ: [0,T]×Ω→Ω denote the mapping (warp between time 0 and all time t.
Let denote the partial w,r,t, and ∇ denote the spatial gradient.
where Ω indicates the pixels of the event camera imaging plane, and 2 indicates the real plane.
The brightness or event constancy can be represented using the classical differential form, which is
The regularizer limits or minimizes changes in velocity along paths t→ϕ(t,). Differentiating
yields:
This example embodiment includes using the following variational problem or loss function to determine the optical flow velocity ν:
E(ν)=∫0T∫Ω(∂te+∇e·ν)2dxdt+α∫0T∫Ω|∂tν+∇ν+ν|2dxdt.
where (∂te+∇e·ν)2dxdt is the event constancy term,
|∂tν+∇ν·ν|2dxdt is the temporal regularizer term, and
α is a regularization parameter.
The computing device 26 determines the value of v that minimizes the above loss function to determine the temporally regularized optical flow velocity of each event at each time instance. An example embodiment includes a gradient descent technique to minimize the loss function including computing the variation:
δE·δν=∫0T∫Ω2(∂te+∇e·ν)∇e·δνdxdt+α∫0T∫Ω2(∂tν+∇ν·ν)·[∂t(δν)·ν+∇ν·δν]dxdt=∫0T∫Ω2(∂te+∇e·ν)∇e·δνdxdt+α∫0T∫Ω2(∂tν+∇ν·ν)·[∂t(δν)+∇(δν·ν)]dxdt,
where the last line includes
∇[δν·ν]=D(δν)ν+(Dν)δν.
Applying integration by parts to isolate dv includes letting
F:=∂
tν+∇ν·ν.
Then
where N is the unit normal to δΩ.
The gradient of E can therefore be expressed as:
∇E(ν)=(∂te+∇e·ν)∇e−[∂tF+div(F)ν]|
With :=(1,ν) and D=(∂t,∇) it is possible to write F as
F=(Dν)
It follows that the gradient of E can be expressed as:
∇E(ν)=(∂te+∇e·ν)∇e−[∂t((Dν))+div((Dν))ν].
This example embodiment includes eliminating boundary terms from the loss function by applying the following boundary conditions:
(Dν)·N=0, on ∂Ω
(Dν)=0, on {0,T}×Ω
which implies that the velocity is constant along paths across the boundary.
Writing all the equations to compute the gradient:
∇E(ν)=(∂te+∇e·ν)∇e−[∂t((Dν))+div((Dν))ν] on (0,T)×Ω
(Dν)·N=0, on ∂Ω
(Dν)=0, on {0, T}×Ω
The gradient descent PDE can therefore be expressed as
∂τν=−(∂te+∇e·ν)∇e+[∂t((Dν))+div((Dν))ν],
where τ indicates the evolution parameter. Gradient descent is known to have slow convergence and be prone to local minimizers. To alleviate this, the computing device 26 is configured to use a known accelerated optimization resulting in
∂τ2ν+a∂τν=−(∂te+∇e·ν)∇e+[∂t((Dν))+div((Dν))ν].
where a>0 is a damping factor.
According to an example embodiment, the regularizer can be expressed in x and y components. Using ν=(ν1, ν2)T, then
Deriving the first term of the regularizer yields
E
reg(ν)=∫T×Ω[(Dν1)]2dxdt.
δEreg(ν)·δν=2∫T×Ω[(Dν1)]·[(Dδ1)+(Dν1)δ]dxdt=2∫T×Ω|(Dν1)·∇(δν1)+|(Dν1)(Dν1)δdxdt=2∫T×Ω−div([(Dν1))δν1+[(Dν1)(Dν1)δdxdt
An example embodiment includes treating the loss function E using Pytorch auto-differentiation, which is a known technique, to automatically differentiate and using standard optimizers. The energy can be expressed as
E(ν)=∥(De)∥2+α∥(Dν)∥2,
Discretizing (De) using an upwind scheme includes
(De)=∂te+ν1∂e+ν2∂e
νj(t,x)∂e(t,x)≈max{0,νj(t,x)]Dj−e(t,x)+min{0,νj(t,x)}Dj+e(t,x)
Discretizing (Dν) using a technique similar to Burger's equation includes:
Let's discretize
where
g(ν1,ν2)=max[ν1, 0)2+min{ν2, 0}2
Let discretize
νj(t,x)∂, ν(t,x)≈max[νj(t,x),0]Dj−ν(t,x)+min(νj(t,x),0}Dj+ν(t,x).
where
A forward difference is used for the time derivatives:
Monitoring the object 30 and making determinations regarding the object 30 allows for controlling or adjusting at least one aspect of the host 24. For example, when the host 24 is a movable object, such as a vehicle, the computing device 26 provides information or control signals for controlling movement of the host 24. In some embodiments, controlling movement of a vehicle may include altering a trajectory of the vehicle for avoiding a collision with the object 30. Alternatively, the host 26 may be directed toward the object 30. If the host 24 is a stationary object, the information regarding the object 30 may be used to trigger an alarm, activate a lock, or control another feature of the host 24. Those skilled in the art who have the benefit of this description will realize how information regarding a monitored object will be useful to meet the needs of their particular situation.
Using the event data directly to determine the temporally regularized optical flow velocities and then using those to determine the optical flow of the object 30 avoids the drawbacks associated with converting event camera data into an image file and then processing such an image. The disclosed system and method provides more accuracy and accomplishes that at a lower computational expense compared to previous attempts to utilize information from an event camera for purposes such as object monitoring.
The preceding description is exemplary rather than limiting in nature. Variations and modifications to the disclosed examples may become apparent to those skilled in the art that do not necessarily depart from the essence of this invention. The scope of legal protection given to this invention can only be determined by studying the following claims.
The present disclosure claims priority to U.S. Provisional Application No. 63/424,267 filed Nov. 10, 2022.
Number | Date | Country | |
---|---|---|---|
63424267 | Nov 2022 | US |