Sunday, July 25, 2010

C++ Optical Flow code

This is an implementation of the paper Brhun et. al. I plan to make this open source soon! I have to reimplement it due to IBM's clause of intellectual property. I will do so as soon as I get time. I want to add a few mathematical and image processing routines so that it does not have dependency on external libraries. It should compile both on Linux and Windows. For an overview of the approach and also how it relates to other famous flow techniques please take a look at this presentation: [ppt]
Code Coming soon......

Wednesday, July 21, 2010

VirtuaWin + DisplayFusion + TaskSwitch = Noticeable Increase in Productivity on Windows!!

I have been switching between Windows and Linux through my Bachelors, Internships, Jobs and Grad school. So, the switch is not that painful but I dearly miss certain features of Windows in Linux and vice-versa. One of the features in Linux that is lacking in Windows by default is handling multiple desktops. Support for multiple displays on the other hand is much easier in Windows compared to Linux ( though its getting better in Linux).

For my recent internship I am working on windows. I am working on multiple projects and coding on multiple platforms like Matlab/.Net and also using cloud computing for computationally intensive processes. So, managing all this has been an overhead and ate into my productive time. I found three cool softwares which I put forth in the subject of this post for people who do not have time to go through the post. The links to the respective webpages are:

Virtuawin --  Gives you the much needed multiple desktops functionality.
DisplayFusion -- Allows you to seamlessly switch between displays and move tasks from one display to another.
Taskswitchxp -- Shows graphical views of the windows when you switch between them.

After taking the pain of finding them and configuring the shortcuts for all three I am thoroughly enjoying my multiple display, multiple desktop and keyboard controlled task switching!!  I multi task very effectively and without losing much concentration. I hope others try the combination and find it as useful!

Send me a message to know the most effective shortcuts, I will be glad to share them. Happy working!!

Thursday, July 8, 2010

Getting Motherboard Model using a script

Recently I have been spending long nights helping my sister configure my desktop back in India. She is a complete novice and it has been a learning lesson for me to try and teach stuff over phone :-) I even got her to install XP after a 30 minute long conversation. As experienced users might already know when you reinstall the operating system you need to install drivers manually. She was able to install most of the required drivers except for the Soundcard. I do not remember if the soundcard was onboard or in the PCI slot. If it is onboard I assume the drivers will be in the motherboard cd. In any case I wanted to get the motherboard model number but did not know how to. One of my friends(Srujan) contacted the system administrator at Microsoft and found me the following script:


strComputer = "."
Set objWMIService = GetObject("winmgmts:"& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMB = objWMIService.ExecQuery("Select * from Win32_BaseBoard")  
For Each bbType In colMB
If  bbType.Manufacturer=("") then
MbVendor = "Unknown"
ElseIf bbType.Product=("") then
MbModel = "Unknown"
Else
MbVendor = bbType.Manufacturer
MbModel = bbType.Product
wscript.Echo MbVendor & " " & "[" & MbModel & "]"
End If
Next


Save this into a "motherboard.vbs" file and execute it in the command prompt with administrator privileges. Worked like a charm! Hopefully this post will help people who run into similar problem :-)

Thursday, July 1, 2010

**Research is Writing and Writing is Research**

The sooner you realize the more you will enjoy research! I am trying to inculcate the habit of writing technical reports. These can be of papers I read, talks I attend or even ideas that come to my mind. This decision comes after reading the following saying:-

"Writing, like teaching, is a great clarifier. Committing to paper that which is fuzzy in your mind focuses attention on detail"

It did not require a third person to convince me on this but this pushed me beyond the border of procrastination! My hope is the quality of my writing will improve over time and the time it takes will reduce as well. Only way to know is by doing it consistently and evaluating :-)

Jumping into the main topic, I plan to share my knowledge on the following topics in the coming weeks. The long weekend hopefully will be fruitful and I will have at the least two of these nailed!

1) Optical Flow ( various methods, codes available and their pros and cons)
2) Anomalous behavior detection ( Anomaly Detection )
3) Geometric Blur as an invariant feature
4) Spectral Clustering