Real-Time Optical Flow Using Neural Networks
Optical flow is an essential ingredient to many complex computer vision systems. There are already quite a few algorithms to determine the optical flow between two frames very accurately. Some of these approaches use spatial correlation of small image patches, others work by looking at few well-trackable points (corners, edges, ...) in both images to find correspondences and then solve complex optimization problems to find reasonable solutions between these key points.
Evaluation of these algorithms is very time-consuming, often taking many seconds per frame on powerful workstations. This puts real-time applications out of reach where computer vision is most interesting: on low-power and mobile platforms, in cars, ...
We would like to take an unconventional approach to improve on this, training deep convolutional neural networks to calculate optical flow. The biggest issue of neural networks is usually to get a large enough, (hand-)labeled dataset. This is not a problem here, since we can take a high-quality algorithm's output as our reference result and require only some raw video data.
As part of this project, the student(s) will:
- Explore existing optical flow algorithms
- Implement the most promissing candidate(s) (or make use of available implementations)
- Learn the fundamentals of convolutional neural networks (ConvNets)
- Get to know and use the Torch framework to train and adapt a ConvNet to this problem
- Evaluate the results thoroughly (accuracy, performance)
- If there is time left: make a real-time demonstrator (camera interface, working platform, ... is already available)
The project can be adapted to the preferences of the student(s). Just drop me an email or stop by my office if you ...
- ... want to know more,
- ... are uncertain whether this project suits you, or
- ... if you have any other question.
- Christoph Weilenmann
- Autumn Semester 2015
- Contact/Supervision: Lukas Cavigelli
- Knowledge of Matlab and/or C/C++
- Interest in video processing and machine learning
- 30% Theory / Literature Research
- 70% Software Prototyping, Experimentation
Detailed Task Description
This will be written after talking to the interested students, taking into account their interests and existing knowledge.
- Project Plan
- Project Meetings
- Design Review (ASIC designs only)
- Coding Guidelines (ASIC & FPGA designs only)
- Final Report
- Final Presentation
If you have a look at these, please don't worry too much about the math involved. The underlying concept is often much simpler, and I will help you with understand whatever you need.
- Comparison of various optical flow algorithms with the corresponding benchmark dataset [website]
- Artificial optical flow dataset/movie: [website], natural stereo dataset: [website], [website], artificial optical flow dataset: [website]
- Motion tracking/optical flow using keypoint matching [paper]
- PhD thesis focusing on motion tracking/optical flow using keypoint matching (SIFT-Flow): [website], [thesis]
- A nice starting point: [paper]
- Correlation-based, variational optical flow: [paper]
- The Torch framework: [website]