This project consists of recoding in C++ a machine vision algorithm described as [url removed, login to view]~gail/CONFIGR_TR-2007-016_.pdf. There is a fully functional MATLAB code description of this algorithm that will serve as main source code and benchmark to test the C++ version. There is a broken C++ version available at this site that should be ignored since it is not correct: [url removed, login to view]~gsc/CodeRes.html.
One main bottleneck we would like to solve in the code is a call to the conv2 MATLAB function. We would like to convert the convolution into a for loop in C++.
This is some additional info on the project:
This code has been realized by Chaitanya Sai (http://cns.bu.edu/~gsc/CodeRes.html), and he is available to eventually help in case it is needed. The pseudocode of the algorithm is available at http://cns.bu.edu/~gsc/CONFIGR_Pseudocode.html (notice that the C++ code you can find in the same site is not working…). Also, the paper available at http://cns.bu.edu/~gail/CONFIGR_TR-2007-016_.pdf explains the core of the algorithm.
We expect a significant speedup of the algorithm resulting from recoding in C++. In particular, the most time consuming section of the algorithm consisits of a convolution (conv2 in MATLAB). Substituting the conv2 calls with a for loop should speed up the algorithm dramatically. Also, a minimum of multithreading would also do a great deal, but I am not sure how comfortable are you with that (are you?). If you could provide a multithreaded version which will exploit multiple CPUs in case there are available, but still run on a single thread, this would be a plus and we can pay a premium for this.
We would also like to be able to run the C++ code via MATLAB (a mex file will be required).
Finally, we would like to pay you once the blind test vs the MATLAB version on a test image is satisfied.