Showing posts with label pattern recognition. Show all posts
Showing posts with label pattern recognition. Show all posts

Wednesday, January 28, 2009

Self Organizing Information

Every day we are overwhelmed by the amount of e-mails, documents, photos and other stuff that we receive on our computer. Most popular software tools such as Outlook and Windows Explorer expect us to handle incoming traffic ourselves and categorize them into maps or folders. As the incoming flow of information is growing, this processing by hand becomes a real burden. It is also often unclear how to categorize items because the item (for example, an e-mail) could be assigned to several categories. This makes it hard to retrieve the correct information when we need it, even using today's search functions. Although categorizing information definitely has its use, we need another approach to make our information really findable and usable.

I suggest that information should organize itself dynamically.



Each information item has content (e.g. text, image, sound) that can be expressed as a set of features (words, color, texture, frequencies etc.) and for each feature we can determine a small-sized signature. We can extract the 'essence' of each information item and use pattern recognition algorithms to calculate the similarity of information items such as e-mails, photos and documents. In my proposed self-organizing environment, e-mails and documents on the same subject will automatically cluster, and so will pictures with similar visual content.



In my Elastic Vision project I am developing algorithms to calculate the similarity of information items and also an algorithm to present information in an organic way to the end-user. In this approach items are not split up and put into buckets (categories), but dynamically shown within a relevant context. Much work is still required to build this approach into a product. For now, you can have a look at the Elastic Vision website for a demonstration of this technique in an image search tool.

Thursday, January 15, 2009

Elastic Vision version 2.0 release

I have just uploaded a new version of my smart image searcher on the Elastic Vision website.

Now you will be able to load images from your desktop or network servers and match them against web search results.

I have added a new feature to specifically search for images on the web that are similar to the images you have selected in the tool. This enables you to search for better quality images than the one you already have found on the web or on your desktop.



For more details visit the site:

Goto Elastic Vision site

Thursday, December 13, 2007

Elastic Boogy

All this pattern matching is producing lots of numbers and I don't want to examine long lists of matching scores anymore. I came up with the idea to build a viewer that would show me the similarity of a large number of sources in an attractive way.

Let me show you the result first and afterwards tell you how it was done. I took the same set of graphical icons as before and matched them with each other. I'm afraid the resolution of the uploaded video is worse than I expected, but hopefully your eyes can manage.




The icons are firstly placed in a random way and then start to mingle and cluster with similar icons. Notice for example how the red hearts start clustering almost immediately. Then the two red alarm clocks on the left edge decide they want to meet desperately. Finally a blue ID pass starts moving up from the bottom to get intimate with its best friend. See how they move in groups when they have found their 'best friends'.

I can tell you, for me it is so much more pleasing to see those icons crawl around instead of analysing all the matching scores in Excel!

Nerd-mode on:

The underlying technique is based on a force-directed graph of interconnected nodes. Each node is connected to every other node by a spring with a natural length based on the matching score of the two nodes. Similar nodes therefore have a tendency to stay close.

Apart from this spring attraction force we need a repulsion force to prevent the nodes from overlapping too much. Each node is considered an electrical charged particle with equal charge and therefore every pair of nodes undergoes Coulomb repulsion. There are some parameters to tweak to influence the behaviour such as the stiffness of the spring and the strength of repulsion. The code was actually far more simpler than I expected. The visualisation was done with DirectX 9.

Talk to you later!