Sunday, October 25, 2009

Video Segmentation: Science fiction coming true

First I'd like to define roughly what video segmentation is then talk about it in more technical details.
The term video segmentation is used with two applications in mind, the first making a long video short by extracting the key shots and images and puting them in a sequence summarizing the long video. So you can think of it as making movies trailers automatically.
The other is extracting the objects that were shot in a video and tracking them through a series of shots; in short making videos of the objects in one big video. So you can think of it as Arnold Schwarzenegger moving as the terminator identifying objects with his "eyes" and getting data about objects he's seeing.
Both problems are challenging and interesting but I'll focus more on the challenges faced when developing algorithms for the second definition.

If you used Photoshop ever then you must have done some image segmentation before. If you still don't know what I am talking about, remember the magic tool. Using that tool you can select objects in a certain image almost automatically. A lot of technquies have been developed for that problem and they are quite useful now. But lets think how complicated it can get with it turns into a moving objects.
A simple answer to the problem would be, video is just a series of images so we can just keep selecting the object in all of those frames.
Simply doing that will raise a question, how can you know that the object you're selecting now is the same object you selected in the previous frame?
Objects tend to move, backgrounds do the same thing and both tend to have at some points parts that make them look as if they were the same objects.
Also objects tend to intersect and hide behind one another making it look as if objects are disappearing.
Another important behaviour is that most objects change the way they look (think of a rubber ball).
With all of those consideration in mind, developing an algorithm that does object identification, object tracking and event detection becomes a very interesting and difficult task.
To wrap it up, I'll give a simple example which I guess must be using video or at least image segmentation. Digital Cameras, cool new digital cameras can detect faces and track them while them camera is moving. Just add some face recognition system and you got yourself a first component of terminator's system :D

Wednesday, October 21, 2009

ACMQ: By engineers for engineers

I have joined the ACM recently and I received by first CACM magazine two days ago. I found an interesting ad while reading and it was about a magazine called ACM Queue; I have heard about ACM magazines before but not this one so I thought I should check it out and I guess you should too.
ACMQ is the ACM's magazine for practising software engineers [1]. So it has major guys talking about cuting edge technologies in a very informative way with a very wide spectrum of topics covered.
Not only ACMQ has articles but it also has some cool audio and video casts and Planet Queue. Planet Queue is is an aggregation of practitioner-oriented blogs written by the Queue author community (close to 400 and growing) [2].
The bottom line is go there and start reading :D.

[1] About ACM Queue
[2] About Planet Queue

Thursday, October 15, 2009

Blog Action Day: Climate Change and International Day of Climate Action

Well, I just wanted to be part of that worldwide event. So I want to mention some stuff that we can do to help in saving YOUR WORLD!
Support forests for Climate
Say no to Genetically Engineered Rice:
Ask world leaders to personally attend climate conference:
DON'T UNDERESTIMATE WHAT YOU CAN DO, because you'll not be alone in this. If everyone in the world try to make a certain difference it will happen. So let's help the world be a better place for us.
If you're a blogger try blogging about climate change and how everyone can help in making the world a better, safer and greener place.

Also I invite you to be part of the 24th of October International Day of Climate Change. I've thought of having a celebration here in Alexandria. If you're interested comment on this post. Also comment about actions we can do to help save the climate.

Help save the climate the way it suites you but don't stand there doing nothing!

Wednesday, October 14, 2009

Etisalat USB Modem on Ubuntu 9.04 (Huawie E1550)

I had a problem with getting my USB modem to work on Ubuntu as it didn't detect it. The answer to this is simple for Ubuntu 9.04.

First go to "System>Preferences>Network Connection".

Then click on "Mobile Broadband" tab and click on the add button.

Then choose a name for the connection and apply.
Now we're half way there. To make it work you'll have to download this package:
sudo apt-get install udev-extras
Then you'll create a file for the modem by typing:
gksu gedit /etc/udev/rules.d/15-huawei-e1550.rules
Then paste this code in the gedit window:

RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"

cAll you'll need next is to plug and enjoy.
The last step was optained from here.

Monday, October 12, 2009

F5100 Flash Array: A new horizon for solid state drives

Sun announced the benchmarks for its new flash array system.

Key thing is, it out performed mechanical hard drives with all the benifits that come with using solid state drives such as low power consumption, mechanical shocks tollerance and ease of deployment. You can find all the technical details explained way better than I can explain it in this video.

For further information check this here

Sunday, October 11, 2009

Non-Computable Problems: Halting problem and others

If you have not studied algorithm complexity analysis this might seem a little strange. There is actually problems that the computer can't solve no matter what happens. To make it a little easier to understand, we usually think that there is nothing a human can't do but can a human fly! We'll it's not possible. You can say the same thing about non-computable problems, it's just problems that the computer can't solve.
Halting Problem:
One example, that always pops to one's mind when asked about non computable problems, is the Halting Problem. This problem is fairly simple "Given a program and an input to the program, find whether the program will run indefinitely or not when processing that input" in other words find if a certain input will cause a program to enter an infinite loop. And the computer can do that!
There is a fairly complicated proof for that problem and you can find it here .
Other Problems:
What made me mention this class of problems is that we've been asked to find other problems that are not computable which seemed kind of interesting so I searched for a while and found some,
The Totality problem: this problem is just a generalization of the halting problem and it states "Given a program, find if this program will terminate on all its inputs or not". And it's fairly simple to proof non computable given that the halting problem is non computable too.
Also there is The Equivalence Problem which states "Given two programs find whether the two programs solves the same problems or not".
You can find more of those problems and there proofs here.
I hope that this post got you thinking about what the computer can really do!