Tuesday, May 31, 2005

Finally ... I have results

It was great to see my machine vision system function properly today, for the first time. The results were not disappointing as i had expected. I had invested two weeks of coding, and a week more for reading papers.

The system can detect foreground, and is able to "learn" whats in the background. The "learning" function is purely a statistic function, till now. I am using the Single Gaussian distribution. More details are on my project weblog.

Below, are some interesting images that i captured while my system was running. The colored image is what we see, and the black-white is what the system "sees". "Interpret" is probably a better word, its vision is no way near to human's, and hence not worthy of the "see" verb. Notice, how it has "almost" learnt and removed the background, and colored it ash.

What we see:


What the system has interpreted it as:

Internet @ 2.2 Mbps

AOL UK has been recently upgrading its customers to 2.2 Mbps. The bandwidth is something that i have never experienced before. Right now i have two winamps streaming two separate steaming channels (one audio and one video/audio) at the same time. I am watching the French tennis open live on streaming tv, and listening to London's streaming radio at the same time. Not to mention, i am also downloading two files at 10 Kb/Sec, and browsing the web at good-enough speeds.

Nothing in this world comes for free, AOL folks charge me 25 quids a month.

Saturday, May 28, 2005

Tracking human motions in complex situations

Currently, i am working towards a machine vision project for tracking multiple humans in complex video sequences. I am using visual c++ and Intel's OpenCV library to develop the system that reads in video input sequences, and outputs the path traced by humans in the scene.

Its a complicated problem, owing to the different situations that could arise such as background subtraction from the scene (we only need the foreground, since humans locomote in the foreground) - which is easy if the background is static, but gets complicated if the background is dynamic, for e.g. the scene could have a background with moving leaves on a windy day, or heavy traffic moving in the background. Other situations such as human occluding one another from the camera's viewpoint, humans casting shadows and reflections, etc.

C++ seemed appropriate for this kind of an application since its good for for real-time applications, such as the human tracking problem. There are reasons for this: take for instance, in java when a function requests an object as a parameter, the virtual machine needs to first make an entire copy of the object and then pass it to the function. Making an entire copy can sometimes be a bottle-neck in a real-time application. Whereas, in c++, one can pass a reference to the object, hence not needing the interpreter to copy the entire object.

Machine vision and image processing applications can also be built using java, using the AWT package library.

Friday, May 27, 2005

1.5 Years!

Its been one and a half years since me and tasmia's started going out. We had our first blind date today, 1 1/2 years ago. We spent some time playing games at the arcade, watched a movie together, played bowling, and a cousin dropped us off at Sanjeev's restaurant. We didnt have a car, and tasmu hates to walk, so i guess i got lucky to have my cousins there with a vehicle at that time. We also sometimes laugh about how i was trying to explain her the different metamorphical stages of the brain.

We ate out, and i dropped her home in a rick. She always says how she never got on a rick with anyone else before, and how she felt comfortable getting on a rick that day.

Before geting the rick, we had to go across the road, while walking on the pavement she almost tripped, but subconsciously went for my hand. At that moment it felt like God was trying to tell me that you have to take care of this girl. Tasmu later told me that she too felt something funny when she grabbed my hand

Thursday, May 19, 2005

PlayStation 3 architecture revealed

Playstation 3's out, and it was revealed at a sony conference in Japan. You can watch the entire conference at: http://www.gamespot.com

The architecture of PS3 is interesting. It Uses cutting-edge research from high performance computing. PS3 uses "cell" microprocessors. It diverts from what non-cell microprocessors have been trying to achieve for the past decade: improved branch prediction to boost the performance of single-threaded applications.

The cell micprocessor concept drifts away from this pursuit, and employs maximum additional hardware resources for performing parallelizable multimedia-type operations, at the cost of allocating minimum resources for single-threaded computations. At an operating frequency of 4 GHz, the CELL processor is thus capable of achieving a peak throughput rate of 256 GFlops (Flops=floating point operations per second) from the 8 SPE's (Synergistic processing element).

PS3 uses multiple cell processors, and one can imagine the amount of processing power it has. It is interesting, since now it will become increasingly difficult to program for PS3.

Acknowledgements:
How branch prediction works in the Intel family: http://www.x86.org/articles/branch/branchprediction.htm

The cell microprocessor:
http://www.realworldtech.com/page.cfm?ArticleID=RWT021005084318

Tuesday, May 17, 2005

www.rashedkarim.com !!

Yeah .. i finally have my own domain name. I got it for a great discount .. from yahoo.com.

Right now i am forwarding it to my qmul.dcs account: http://www.dcs.qmul.ac.uk/~kar6/

Also submitted my page to google and msn search. Got to get down to some web page development. Need to start learning advanced CSS.

Friday, May 06, 2005

How to get page rank?

Still not able to get my homepage listed on google. I dont understand why google's crawler is not indexing my page. I have to sit down with this, one day.

I have enjoyed my courses here at Queen mary. I just realized that i have taken my courses in most of the important areas of computer science:
parallel architectures - computer architecture
software risk analysis - software engineering
advanced program design - computer programming
advanced databases - computer databases
distributed systems
formal methods in software - logic in computer science

Well, missing out on algorithms and some courses on numerical approximation.

Wednesday, May 04, 2005

google has launched their new web accelator. Its an interesting concept. I cant understand why surfing would be faster if my browser fetched pages from google's web cache, rather than my local proxy cache. I need to find that out.

I have my advanced databases finals tomorrow.

Cant wait to start my machine vision project soon. It's about tracking complex human motions in complex situations. I need to implement code for algorithms set out on a recent paper written by Tao Zhao and Ram nevatia, fellows of IEEE.