Skip to content
Fast, accurate optical flows on mobile GPUs.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Merge branch 'optimize_before' into optimize_refine May 12, 2017

Flow on the Go

Ashwin Sekar (asekar) and Richard Zhao (richardz)


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[1].

The algorithm is highly parallelizable, which gives it the potential to achieve super-real-time (faster than 30 Hz) performance on GPUs.



make flow_ref


[1] Tim Kroeger, et. al Fast Optical Flow using Dense Inverse Search (2016)


Date Milestone Done
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
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.