Let us start learning OpenCL with Optical Flow which will cover OpenCL APIs, Handling Mathematics in OpenCL, Memory Constrain and Efficiency.
Lets take up this as our first assignment and build a custom wrapper for OpenCL in C++, rather than using Khronos C++ wrapper.
OpenCL Intro
OpenCL Wrappers
What is Optitcal Flow?
Maths Involved
Let us create a new page here.
Why we need a wrapper? Answer is simple we are lazy and we don't want to waste our precious time in repeating the same stuff again and again, rather we can use that time for watching a movie or we can go for a dating or simply we can write some stupid things like this. So, we are going to use our grey matter a little and write some stupid code to cover cleverly written stupid code to do some ******* functionality.
We will take http://opencl.codeplex.com/SourceControl/latest as our reference code. Don't worry most of today's IT world is running with this little invention of Ctlr + C and
Ctlr + V. We start a new page here.
Design Considerations:
Coding Standards used -> Come we will go to Coding section
Qt Project Settings
Abstract the Platform Initialization
Let us visit my old blog to get some data. Come with me.
References:
Movement of an object in the real world is in 3-D motion(XYZ), where as the same in the Image plane is only 2-D motion(XY). Significantly we have lost 1/3rd of the data, nonetheless we still can use these two co-ordinates motion information to do some very useful tasks.
Two Methods:
1. Lucas/Kanade
2. Horn/Schunck
Application:
Games based on Phone movement
Motion based Segmentation
Structure from Motion
Alignment - Camcorder video stablization
- UAV Video Anlaysis
Video Compression
Maths Involved:
Man Hours:
19/02/2014 - 2hours