Sunday, November 25, 2007

First Contact

I've been tweaking my Crazy algorithms for the last week with ups and downs but finally a configuration came out that I'm quite happy with for the moment. I've been using 2D images to test my software and in this post I want to show you some results. It is not spectacular at all (yet) but it shows that base system is able to recognise patterns in different images. So let's take a look at some examples:

First I drawed a very schematic toucan (3 ellipsoids) and compared that with one of my Vista backgrounds (toucan in a forest). The software scans the background image and searches 3 spots that match my schematic drawing as good as possible. Here we have the input images and the results:


We see the 3 spots the system found. The result images are grey because we only visualise the luminance feature. The top image is the best match, the bottom image the worst of the 3. Although our query image was very schematic it is able to find two acceptable results. The third result is just plain rubbish but I didn't analyse why this spot came up in the matching. Two out of three ain't bad said Meatloaf.

In my next test I put a bit more effort in drawing the toucan by hand to see if the matching result would improve considerably. And guess what!

Yep now it was able to really pinpoint the toucan in the picture. The best result is on the left, the worst on the right. The best two results really match the drawn toucan very well. I felt like a happy bunny...

Not all tests were successfull. For example, I tried to find a flower bud in a field of flowers and it couldn't find it unless I tweaked the parameters to make it find it. But overall I was quite pleased with the results. Finally I decided it was time for an Eye Test:

I asked the Crazy system to find me some letters and I'll show you the results for searching 'A' here:

This result really thrilled me because Crazy didn't only find the A instance I was looking for (top result) but also its little brother (bottom result)! Here we can see that wavelet decomposition extracts pattern data on multiple resolutions and therefore find the smaller 'A'. Cool!

I can show you more pictures, but you probably get the idea from the examples above. I'll come back to you soon with new Crazy results, bye bye for now.

No comments: