March 2007


Face recognition - http://www.face-rec.org/

I think it’s high time we admit it; despite all the work that has been done (and all the complex maths used) on face recognition systems, the performance of these algorithms and systems are abysmal. They certainly do well in lab conditions (error rates of maybe 1 in 50) but in real life conditions, they suck!!!

From the approximate figure mentionned above (1 in 50), that would seem good but it means that if 1000 people were to pass by, we would have 20 errors and in 10000, 200 errors and this is very roughly what we will have to face in real life conditions. Yet, this is not to mention variation in lighting, angle of faces,…

So the question that is to be asked is: are we proceeding the right way? Are our algorithms basically flawed? Are our basic assumptions about recognition wrong?

I think we ought to do a total rethinking of way in which we have been proceeding and try to see what is it that humans use to recognise faces. Human seem to rely on many things like colour of the skin, some oddities of a specific face,… to perform instantaneous recognition.

The other side to it is are we being fair in requesting a 100% recognition rate from computers based only on faces. Is that feasible? Do humans rely only on faces to recognise a person or is there an array of things – “I thought it was Jack but he’s way too tall to be Jack.” Isn’t that something we say a lot?

I’ve put up a lot of questions here coz I sincerely think that we need to rethink our algorithms. It simply can’t be that we’ve been doing research for about 20 years now and our results are sooooo bad!!!

These are two quotations I got while surfing the web.

Believe nothing, no matter where you read it, or who said it, no matter if I have said it, unless it agrees with your own reason and your own common sense.

- Buddha

Do not believe in anything simply because you have heard it. Do not believe in anything simply because it is spoken and rumored by many. Do not believe in anything simply because it is found written in your religious books. Do not believe in anything merely on the authority of your teachers and elders. Do not believe in traditions because they have been handed down for many generations. But after observation and analysis, when you find that anything agrees with reason and is conducive to the good and benefit of one and all, then accept it and live up to it.

- Buddha

How many religions preach something like that? Most of them want us to believe without asking any questions coz the aim is to control. But sorry, I’ve got a brain and as Buddha mentioned, I’m not planning to blindly believe in anything just like that.

This week, it’s Sports week at uni and so I have some time for me. So what I’d like to talk about is some basic astronomy for Mauritius. orion.jpg

In Mauritius, we are lucky to have a beautiful night sky. Nearly every night, we can see Orion – the hunter – accompanied by his dog (Sirius – the brightest star of the Southern Hemisphere is part of the constellation of the dog).

I do not have a lot of scientific interest in Astronmy but I like star gazing coz believe it or not, there are wonderful stories taking place in the night sky. Believe it or not, Orion is not standing there idly. Accompanied by his dog, he is chasing the pleiades – seven sisters. However, the great Zeus himself, in the form of a bull (the Taurus constellation) comes to protect the defenseless girls…

Similarly, there are loads of other nice stories taking place if you just care to look out through your window at night.

So, how to know where the stars are. The best software to keep track of the Mauritian Sky is a free one – KStars available freely on most linux distros. It allows you to view the sky from anywhere in the world and at any time; it even allows you to control a telescope.

By the way, if you are really interested in cellestial bodies, contact the Mauritian Astronomical Society.

P.S. I especially recommend the Scorpio constellation – it’s my favourite one.

Well to start with, Feisty Fawn is not out yet; it will be officially released on the 19th of April 2007 but that is just one month away and though I did not move to Edgy on my laptop (am actually upgrading my desktop to Edgy), I’m planning to do so when Fiesty comes out.

Why? Well simply because Feisty is version 7 of ubuntu and from Dapper which is 6, i think there’ll be some improvements – better support for laptops I’ve heard – I might be wrong but i’ll try :)

So how do you move from Dapper to Fiesty?

Option 1:

Judging from the past releases, I don’t think that the ubuntu team will allow a direct upgrade to Fiesty and completely skipping Edgy. So what I forsee is a lengthy two-step upgrade (Dapper to Edgy then Edgy to Fiesty) with possilities of lots of complications and headaches in the process. Many people have reported major issues after upgrades.

By the way, the best guide to upgrading Kubuntu is on the Kubuntu site: http://kubuntu.org/announcements/6.10-release.php

(By the way, I just finished upgrading on my Desktop and guess what, it does not work :( – I’m rescuing it with the Kubuntu CD)

Option 2:

If you refer to one of my previous posts – Perfect PC / Hard Disk Configuration – you will notice that I said that a hard disk is best arranged this way:

  • An NTFS partition for Windows and only programs (how will I play games if I do not have windows???)
  • One or more FAT32 partitions that store your data, music,…
  • A linux part (boot/swap/root) where you will have only linux programs

So if i need to move to Feisty, why not just install it over my previous Dapper?

What will i lose?…. Nothing; I’ll just backup my home directory, my Firefox and Mozilla preferences and I’ll just have to replace that in the new installation. I’ll get a working system ready in 30 mins (time for the OS to install) and I’ll just install the other software when I have time – downloading the packages for updating to Edgy on my Desktop took me nearly 8 hours.

(Oh shit, the rescue didn’t work, seems like I’m in for some work… shit happens )

So is there any fallacy in my argument?

Mplayer is a wonderful little software which like VLC (and even better than VLC it seems) just seems to be able to cope with any codec under the sun – even tried to open an rmvb file with it; it didn’t crash but it got me only the sound.

I first heard of this little player while reading about the One Laptop Per Child Project; indeed, mplayer will be shipped on these $100 laptops and so had a go at it (it’s a bit hard to install VLC on Opensuse 10 when u do not have a decent internet connection). Got the binaries, compiled them n it works (had some warning during installation but nothing serious).

Also, Mplayer has been voted as Video Media application of the year on linuxquestions.org beating VLC by an amazing 20% (though I think VLC deserves better than that).

Mplayer also works on Windows but right now, i’ve only tested it on OpenSuse. So this little jewel is defnitely worth a look. Get if for free here.

Kdbg is a graphical debugger – more precisely, it is the graphical interface for the excellent gdb debugger. I like a lot Microsoft Visual C++ 6.0 for its debugging abilities but Kdbg is just as good. So how do we use it?

First you need to compile your c/c++ source with “-g”(this is very important). E.g

gcc test.c -g

where test.c is the name of your source. You can after that odd your usual “-o” flags … as usual (this is meant to be a simple simple guide, so I’ll skip whatever is not required)

Next, invoke the Kdbg debugger as follows:

kdbg a.out

OnceKdbg is open, set your breakpoints on the lines required and click start and step over, step into,… as appropriate. It works like a charm.

mymis2.jpg

KDevelop

For those who don’t know, KDevelop is a very nice IDE and according to me even better than Ms Visual C++.

So if you use KDevelop , debugging should be pretty easy – it’s done by itself. However, for Input/Output console applications, there’s a small twist. By default, if there’s some input to be done, the debugger will halt and won’t move even if u bang your head against it. The solution is quite simple though.

Go to: Project -> Project Options -> Debugger tab and check “Enable separate terminal for application IO”.

That should do it.

Computer Games are one of the most profitable software business in the world. The revenue generated each year is massive – estimated to $ 7 billion in 2005 – and it is now general knowledge that video game sales exceed the Hollywood’s film industry’s annual box office. Yet the problem with games is that it is not “ok” to discuss computer games among adults and even more so in Mauritius!!! It’s not “serious” at all!!!

So is there a future for computer games in Mauritius? With attitudes like that, the only hope seems that a big company like EA games come to Mauritius. So I’m praying for that to happen.

But even if that does not happen, we still could have a start-up that makes games for mobile phones. Right now we lack the experience to build a full fledge 3D game – for the first time, how to make computer games is being taught at the University of Mauritius – but mobile games are possible and there definitely is a marketfor that – more people have mobile phones than computers and phones are becoming more and more powerful.

So when  do we start?

nakaohome.jpg

You have most probably heard of Virtual Reality (VR). It’s well hyped in movies and it lindeed looks very flashy. Yet, real VR applications are not for tomorrow – u won’t be living in a Matrix-like world anytime soon!

Yet something that is knocking on our doors is Augmented Reality (AR). So what is it? Well as its name suggests, AR is a technology by which computer generated information is added to reality. Just like that it might not sound impressive but its applications are. Right now, when you read a book, it’s a “passive activity” but with AR, the whole nature of if could change! If you are reading the story of snow white, on opening the book , you might see snow white popping out and reading the story to you!!!

Even better, you are an electrician and you need to find where electrical wires are running in a building. Forget taking the plans with you. With AR, just by looking at the wall, you see where the wires are – they will be superimposed in front of you on the wall. You are a doctor and you need to examine a broken arm – just look at the arm and you will see where the bone is broken or cracked! All you need right now is a pair of Head mounted Displays (HMDs) and the whole world will change in front of you.

I lack space here to tell you more but more information can be found at:

To investigate AR, try the following:

Personally, I can’t wait for the holidays coz this time, Ive promised myself to delve deeper into AR throught the AR toolkit. I’ve haven’t got any HMDs :( and so I’ll rely on my webcam for now.

A long time back, to make Computer Games, you had to know Assembly language. Eventually the Industry moved to C then C++ and for a time that was good. C++ is very fast and we can stoop very low as well as rise very high. But there are major issues with C++: though I like C++ I must admit that it’s that that easy to code into that language – pointers drive people crazy and memory allocation and de-allocation is a very annoying to do.

So what’s the solution to this? It seems that the game industry has responded by saying “Scripting languages”.

Many game engines like Unreal tournament have their own scripting language – unreal script – and there are others like NVNScript. Yet these are proprietary scripts and the role of the game industry is I think to make games and not scripting languages.

Thus languages like Python and LUA have emerged. Python has been used by Disney in Toontown, by Cyan Worlds in Uru:Ages Beyond Myst, … and LUA in the now famous Far Cry by Crytek, MDK2 by Bioware,…

So why these? Well, coding is simpler in these languages than C++ (no damn pointers or memory to cope with) and all the codes in a game are not critical sections – sometimes they might be run in parallel with other slower code!!! So there should be no harm in coding these non-critical sections in a higher level language where we’ll trade some speed for ease of development!

The Panda3D game engine is a nice example of that. The game engine is written in C++ for speed but the coding is done in Python.

vista.jpg

This is something that many people have been waiting for some time – the lauch of Vista in Mautitius and it seems that this week they will be served. According to what I’ve heard, Vista will be presented along with Office 2007 at Swami Viveka…. Exibition Centre, Pailles sometime this week.

There have been lots of rumours going around about Vista requiring new hardware, … but all that I can hope is that it’s better than the previous Windows which r really not great! I’m quite frustrated with Windows these days; my laptop has Windows Media Center and is “Windows Vista Capable” but it takes a hell lot of time to start and programs tend to freeze randomly. Is it my laptop? No, everything works just so fine under Kubuntu! Is it that I’ll have to reinstall Windows again :( !!!

Latest news: The launch scheduled for this week has been postponed – Swami Vivikanada (hope I got this right) suffered from cyclone Gamede or could it be that they’ve discovered a bug while rehearsing the presentation ;) – LOL

Next Page »