Flow on the Go
We implement real time optical flows on a mobile GPU platform using the dense inverse search method.
A common problem in computer vision is detecting moving objects on a background. With an increasing amount of cameras mounted on moving vehicles, stabilization of the video feed is a crucial preprocessing task.
Optical flows present an elegant solution to a wide class of problems such as the above. An optical flow is a vector field that describes per-pixel displacements between two consecutive video frames in a video feed.
In recent years, there has been increased interest in algorithms for computing optical flows, especially ones that achieve a mix of efficiency and accuracy. Kroeger et. al. propose a method with very low time complexity and competitive accuracy for computing dense optical flow.
The algorithm is highly parallelizable, which gives it the potential to achieve super-real-time (faster than 30 Hz) performance on GPUs.
 Tim Kroeger, et. al Fast Optical Flow using Dense Inverse Search (2016)
|April 11||Complete understanding of the algorithm|
|April 14||Working OpenCV reference and testing harness|
|April 25||[Checkpoint] Working implementation in C++|
|April 27||Cleaned up and optimized C++ version|
|May 1||Working implementation in CUDA|
|May 2||CUDA implementation with same performance as C++ version|
|May 4||Realtime performance (~30fps / < 33ms)|
|May 8||Super-realtime performance (~30fps / < 10ms)|
|May 9||Running on example drone footage|
|May 11||Final writeup and demo preparation|
|May 11||(Reach) Hardware hooked up to drone|
|May 12||Final presentation|