Saturday, December 12, 2009

Party is ON

I proudly introduce our VGC Club, Prof. Janusz Konrad as co-founder.
Video Geek Club is a research group, a forum composed of undergrads and grads and professors, who are interested in exploiting super computers in following (but not restricted to) fields: computer vision, image processing, machine learning, computer graphics, etc..
As the first member and coordinator, I organize the first activity: interactive demo show at ECE Christmas party.

Please visit our website: http://blogs.bu.edu/vgc/

Friday, April 24, 2009

SeamCarving---Revised

No connectivity constraint used in this extented seamcarving. Use cost function to constraint shift in different lines, with a parameter alpha to control the weight of this cost, thus control the connectivity indirectly.
results:
The first two and the fourth use the algorithm mentioned above, the first one use the shear cost with respect to the previous carved image, and the second use the shear cost WRT to the original image, the fourth use a big alpha value. All three are compared with the third one, i.e. the scaled original image, 75% of original width is kept. Notice that lena is less narrowed (face hat and shoulder) with image carve method. If alpha is very small (first two images), the connectivity is high, and vise versa. So in the last image above (very low connectivity), artifacts are obvious. and for small alpha, seam
s tend to be connected.














The right image showed all the seams that carved out from the
 original image. The black line showed in the left image is the first seam to carved out. It is not satisfy the connectivity constraint, but can give superior results because it can achieve optimum min-cost during DP. The downside of this algorithm is the computational complexity, but, it is highly parallelable, can benifit from high performance GPU computing.


Saturday, March 7, 2009

Reconstruction of non-uniform sampling motion field

Suppose we only have the motion information of a few points in the motion field, how to recover the whole true motion field? Is that even possible? The answer is yes, because we human can do it. It turn out that we are very good at giving an unique and stable solution to this inverse problem, we can always yield sound inference of motion only based on a few parts of an object.

To tackle this problem we need a kind of interpolation, or ‘fill-in’. This kind of inverse problem is classical, but sort of tricky in such a motion estimation setting because it is not uniformly sampled, and this sampling process is highly content dependant. So no fixed 'ideal' kernel will be find because it should vary from frame to frame. Another classical problem in motion estimation is aperture problem, my method addresses this problem with an ‘iron fist’: Fill in blank area (no motion information can be readily extracted) with ANY reliable motion with in or near by that area. A KNN-based method is used here. It is not very theoretically sound suggestion but a practically reasonable.

In the images showed above, blue and green color indicates the horizontal and vertical velocity respectively, and the brightness of the color means the speed (high or low). This algorithm’s complexity is relatively low so that it can run in real-time on my laptop at a QVGA resolution.

Further work: this problem can even fit in transductive online learning framework.

Wednesday, February 4, 2009

CUDA Tested on previous projects

To integrate CUDA in to my previous projects are not very hard. the Ease to use is incomparable. What I did here is just simple call 2D fft to the real time webcam video.

Now I am planning to do more serious kernel programming. the only problem is to find an interesting project to do.

Lately, I have tried PyCUDA on my notebook, and it is AWESOME! Everything is so easy with Python, and with CUDA massive parallel computation power is near at hand! Perfect tool for every one.