Optical flow or optic flow is the pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer and a scene.[1] [2] Optical flow can also be defined as the distribution of apparent velocities of movement of brightness pattern in an image.[3]
The concept of optical flow was introduced by the American psychologist James J. Gibson in the 1940s to describe the visual stimulus provided to animals moving through the world.[4] Gibson stressed the importance of optic flow for affordance perception, the ability to discern possibilities for action within the environment. Followers of Gibson and his ecological approach to psychology have further demonstrated the role of the optical flow stimulus for the perception of movement by the observer in the world; perception of the shape, distance and movement of objects in the world; and the control of locomotion.[5]
The term optical flow is also used by roboticists, encompassing related techniques from image processing and control of navigation including motion detection, object segmentation, time-to-contact information, focus of expansion calculations, luminance, motion compensated encoding, and stereo disparity measurement.[6] [7]
Sequences of ordered images allow the estimation of motion as either instantaneous image velocities or discrete image displacements. Fleet and Weiss provide a tutorial introduction to gradient based optical flow.[8] John L. Barron, David J. Fleet, and Steven Beauchemin provide a performance analysis of a number of optical flow techniques. It emphasizes the accuracy and density of measurements.[9]
The optical flow methods try to calculate the motion between two image frames which are taken at times
t
t+\Deltat
For a (2D + t)-dimensional case (3D or n-D cases are similar) a voxel at location
(x,y,t)
I(x,y,t)
\Deltax
\Deltay
\Deltat
I(x,y,t)=I(x+\Deltax,y+\Deltay,t+\Deltat)
Assuming the movement to be small, the image constraint at
I(x,y,t)
I(x+\Deltax,y+\Deltay,t+\Deltat)=I(x,y,t)+
\partialI | |
\partialx |
\Deltax+
\partialI | |
\partialy |
\Deltay+
\partialI | |
\partialt |
\Deltat+{}
\partialI | |
\partialx |
\Deltax+
\partialI | |
\partialy |
\Deltay+
\partialI | |
\partialt |
\Deltat=0
\Deltat
\partialI | |
\partialx |
\Deltax | |
\Deltat |
+
\partialI | |
\partialy |
\Deltay | |
\Deltat |
+
\partialI | |
\partialt |
\Deltat | |
\Deltat |
=0
\partialI | |
\partialx |
V | ||||
|
V | ||||
|
=0
Vx,Vy
x
y
I(x,y,t)
\tfrac{\partialI}{\partialx}
\tfrac{\partialI}{\partialy}
\tfrac{\partialI}{\partialt}
(x,y,t)
Ix
Iy
It
Thus:
IxVx+IyVy=-It
\nablaI ⋅ \vec{V}=-It
Many of these, in addition to the current state-of-the-art algorithms are evaluated on the Middlebury Benchmark Dataset.[13] [14] Other popular benchmark datasets are KITTI and Sintel.
Motion estimation and video compression have developed as a major aspect of optical flow research. While the optical flow field is superficially similar to a dense motion field derived from the techniques of motion estimation, optical flow is the study of not only the determination of the optical flow field itself, but also of its use in estimating the three-dimensional nature and structure of the scene, as well as the 3D motion of objects and the observer relative to the scene, most of them using the image Jacobian.[15]
Optical flow was used by robotics researchers in many areas such as: object detection and tracking, image dominant plane extraction, movement detection, robot navigation and visual odometry. Optical flow information has been recognized as being useful for controlling micro air vehicles.[16]
The application of optical flow includes the problem of inferring not only the motion of the observer and objects in the scene, but also the structure of objects and the environment. Since awareness of motion and the generation of mental maps of the structure of our environment are critical components of animal (and human) vision, the conversion of this innate ability to a computer capability is similarly crucial in the field of machine vision.[17]
Consider a five-frame clip of a ball moving from the bottom left of a field of vision, to the top right. Motion estimation techniques can determine that on a two dimensional plane the ball is moving up and to the right and vectors describing this motion can be extracted from the sequence of frames. For the purposes of video compression (e.g., MPEG), the sequence is now described as well as it needs to be. However, in the field of machine vision, the question of whether the ball is moving to the right or if the observer is moving to the left is unknowable yet critical information. Not even if a static, patterned background were present in the five frames, could we confidently state that the ball was moving to the right, because the pattern might have an infinite distance to the observer.
Optical flow should not be confused with Optical flowmeter.
Various configurations of optical flow sensors exist. One configuration is an image sensor chip connected to a processor programmed to run an optical flow algorithm. Another configuration uses a vision chip, which is an integrated circuit having both the image sensor and the processor on the same die, allowing for a compact implementation.[18] [19] An example of this is a generic optical mouse sensor used in an optical mouse. In some cases the processing circuitry may be implemented using analog or mixed-signal circuits to enable fast optical flow computation using minimal current consumption.
One area of contemporary research is the use of neuromorphic engineering techniques to implement circuits that respond to optical flow, and thus may be appropriate for use in an optical flow sensor.[20] Such circuits may draw inspiration from biological neural circuitry that similarly responds to optical flow.
Optical flow sensors are used extensively in computer optical mice, as the main sensing component for measuring the motion of the mouse across a surface.
Optical flow sensors are also being used in robotics applications, primarily where there is a need to measure visual motion or relative motion between the robot and other objects in the vicinity of the robot. The use of optical flow sensors in unmanned aerial vehicles (UAVs), for stability and obstacle avoidance, is also an area of current research.[21]