Redefining Open Minds

Tuesday, March 10, 2015

MATLAB is a high-level technical computing language and interactive environment for rapid development of algorithms, data visualization and analysis. However, beginners often do not know how to exploit the vectorization and other tricks to write fast code in MATLAB. I thus collected online resources on how to write efficient code in MATLAB along with my own experiences and then turn them into easily accessible slides. It was used as a tutorial session for a computer vision class in UIUC.

Note: if you know other tricks on writing efficient MATLAB code, please do let me know and I will be happy to add them to the slide! :-)

Saturday, August 16, 2014

I was attending SIGGRAGPH to present our paper on image completion. During the conference, I attended a great talk by Prof. Thomas Funkhouser from Princeton University. He talked about five approaches find good research problems. Even though we are from different fields, I think the main ideas are universal and could be applied to many other fields. I would like to share my notes from his lecture.

1. Consider non-traditional problems

There are four types of research problems.
a) Improving existing methods

b) Develop new approaches to existing algorithms

c) Define new problems

d) Expand the field

It is easier for junior students to work on type (a) problems because many resources are available. However, try to work on b-d) to achieve the maximum impact.

2. Anticipate disruptive technologiesThe research progress is not linear in time. Sometimes there will be disruptive technologies that completely change the game. Anticipate these disruptive technologies in the near future and develop groundwork ahead for the rest. For examples, fast graphics hardware, server-based networking, repositories of 3D models, consumer depth cameras, and internet.

3. Think beyond algorithmsComputer science communities are often obsessed with developing algorithms. However, other forms of work might be impactful as well. For example, analysis and evaluate of the problem, survey study, benchmark development, and dataset collection.

4. Work on real problems

Try to work on real problems. In solving real world problems, along the way we might also develop something useful for other problems in the field.

However, due to the use of continuous meshes for warping, artifacts are often obvious in the background if you need more dramatic results.

To avoid such artifacts and limit the reshape to enhance the height, I implemented a simple variant for (semi-) automatic 1D body reshaping. The proportion could either be automatically determined or adjusted by the user through an 1D slider bar. Such automated approach allows us to process many images quickly. Here are some samples results downloaded from the Google image search.

(Somehow I couldn't locate the sources from google image search. If you don't want your pictures to be shown here, please let me know and I will take it down immediately. Or, I could add them below the pictures.)

The original image is on the left. The reshaped version is on the right.

Wednesday, July 2, 2014

Blending between the two images help identify the differences. (It may take a few seconds to load the gif file.) You could see that Zhao Wei's left hand was left in the digitally manipulated image.

How did we do it?First step, download the following two images. The first one is the poster downloaded from the official webpage (with circular marks labeled by someone else), the other is the picture taken from this link. Presumably, they are taken at the same time at the same event.

Feature DetectionWe detect Speeded Up Robust Features (SURF) features (shown in the green circle) from bot images. Note that we crop part of the first image to avoid spurious features for detection and matching.

Feature matching and Image RegistrationWith the detected features from the two images, we can now estimate the geometric transformation (homography) between two images using the direct linear transform and RANSAC. We can thus align the images to help better show the modification.