Work summary (as of April 25)
The progress done since the project proposal has consisted of the following:
Installing OpenCV and running demo code both locally and on the GHC machines.
o Tested and run code to apply Gaussian filters to image in OpenCV
o Tested and run code to resize an image once loaded in memory in OpenCV
o Tested and run the SIFT keypoint detector (DoG based) provided by the OpenCV contribution repository.
o Tested and run the FAST keypoint detector in OPENCV.
o Tested and run the following keypoint descriptors at different scales and rotations:
o Tested and run a OpenCV demo to load a video and processed it frame by frame (applying a Gaussian Blurring).
· Implemented our own serial version of the Difference of Gaussian Keypoint Detector. We are comparing the results against Matlab to check for correctness, and we can get similar results.
· Tested OpenCV with CUDA:
o Implemented a CUDA algorithm to convert an RGB image to grayscale in parallel.
o Implemented a CUDA algorithm to apply Gaussian blurring to an image in parallel.
· Read information about state of the art keypoint detectors and evaluated their speed and robustness.
Schedule and plans
We have accomplished the objectives of Installing OpenCV and getting the serial version of the keypoint detector almost working (first week objectives). We haven’t finished the goals set for last week of having the Sequential BRIEF feature descriptor and the keypoint matcher. This is because we have decided to spend last week doing research on the state of the art of keypoint detectors best suit to solve the problem we want to show in the demo.
Our plan is to have a object(specifically logos) detector in a video frame, and to do that we are planning to parallelize the entire BRIEF keypoint pipeline.
We will also include graphs comparing the results with the serial version of BRIEF, other serial keypoint detector algorithms and maybe some other parallel versions of keypoint detectors already implemented in CUDA.
Sequential BRIEF feature descriptor working
Parallel BRIEF feature descriptor
Parallel Keypoint matcher
Parallel keypoint detector
Prepare demo videos
Plot performance graphs
Write final report