Wednesday, November 12, 2008

Elastic Vision

I have created a new site where you can download my smart image search tool, called 'Elastic Vision'.

Goto Elastic Vision site

It shows each retrieved image in an 'organic' visual network. The images are clustered based on their visual content, enabling you to pick the best from a set of similar images of varying quality.

Here's a small demo of the tool in action. You can find a higher-resolution version on the site itself (just click 'demo').


Thursday, May 22, 2008

In Search of Van Gogh

Besides my 'normal daily duties' for my customers I've spent quite some time on the visual gadget I talked to you about before. The tool provides you an overview of all current news items by showing a picture with a caption above it. The pictures are retrieved from a predefined set of web pages on the web. Clicking the picture leads you to the original web page, scrolling automatically to the right article. By the way, I call it "Elastic Vision" because of the way all pictures are interconnected in an elastic net.

This time I've added an extra function to perform a search for pictures on the web. Of course we know Google and Yahoo provide such services with their search engine, but the Elastic Vision gadget also clusters the retrieved images based on their visual content. Using the Crazy Diamonds pattern recognition algorithm, similar pictures end up next to each other in the net. For example, searching for "Van Gogh" comes up with this:

Click the image to enlarge it.

I'll show you some zoomed-in parts of the net. First, the part with his sunflower paintings:


Again, the clustering is based on visual (color) content, not on tags or keywords. As you see the software detects enough similarities between the flower paintings to cluster them together.

I've added a feature to show the size of the picture as a caption, so that you can pick the resolution you want.


Oh, I forget to tell you that I'm using Yahoo's excellent image search API to retrieve the url's of all relevant pictures. It is very easy to use and for free.

I'm about to finish the first release of the Elastic Vision gadget. It will be downloadable later on from one of my websites (for free). I'm looking for people that would like to give it a go and play around with it, so if you're interested send me a note at the address below and I'll get you a copy.

Wednesday, April 16, 2008

Perpetuum immobile

Yesterday I went to a session of the dutch Advaita Vedanta 'missionary' Jan van Delden at Haarlem Central Station. He uses a whole set of attributes to deliver his message in a very funny and visual way. I have attended more Advaita sessions from other teachers, but this guy is also a great stand-up comedian. Check him out if you have the chance!

Basically Advaita tells you that permanent happiness cannot be found 'out there'. Nothing in the world will make you happy forever, period. The cause of our unhappiness lies in the fact that we identify with our thoughts. We think we are our thoughts. We think there is an entity in our head that is controlling our life, and we call it 'I'. Jan uses the metaphor of our thoughts as a scrolling text display that is claiming out attention all the time.


LED Text Generator


Advaita invites you to enquire into this assumption that has never been doubted before. In the end you will find out that you are not your thoughts and feelings but the observer of these thoughts and feelings. We are watching the messages on the text display, we are not creating thoughts and feelings.

We can speak of a First Cause behind everything. Some people call it consciousness or awareness. It is the stage for all good and bad things to happen. Without the First Cause there is nothing. This First Cause is not affected by the things happening, like space cannot be 'damaged' by its content. We are that First Cause, not the content. Our general assumption that we are that entity behind our eyeballs is just plain wrong. This First Cause is indestructible and timeless and therefore I came up with the term "perpetuum immobile".

Wednesday, March 5, 2008

News update

I haven't been writing to this blog for a long time so it is about time to give you a quick update on the ongoing work. At the moment I'm looking at different applications of the Crazy Diamonds core and let me tell you something about the one I've been working on at the start of this year.

I am going to introduce a new way to read your daily news, called 'visual news reading':


Instead of going from site to site this approach shows you an overview of all news item images from a number of predefined sites. Images with a similar subject are clustered and text-labeled. I did not upload a video as before because of the poor resolution of the result.

Hovering over an image will enlarge the image and show a textual description of the news item. What you see here is a cluster of images (from multiple websites) related to the Democratic race between Obama and Clinton in the US election. The mouse pointer has disappeared because of the screenshot.


Clicking an image will open up the original source and scroll down to the news item:



This tools allows you to really dig into a news item without surfing from site to site and searching for it.

In this case images were taken from news headlines pages but other categories can be defined and shown such as Sport, Showbiz, etc.

I think this tool could be interesting for people at home but also for entertaining people in public places like waiting rooms, airports etc. I've noticed during demo's that people really have fun playing with this tool, especially the way the images interact with each other.

At the moment I'm working on a web-based version of this tool using .NET's Silverlight technology. I'll keep you informed on the progress of this little visual news reader and would appreciate any feedback from you people.

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!

Saturday, December 8, 2007

Dancing Emptiness

Yesterday I was looking for an image that really expressed the essence of this research. No, actually this goes further than 'research' because this sounds too much like a laboratory set-up where the observer is not part of the experiment. Wrong, the observer is right in the middle of it, participating and influencing the outcome. So let's call this an inquiry instead.

The theme of this inquiry is the similarity of patterns arising in our world. There is no real need to understand why and how these patterns arise. Their manifestation is miraculous to us and can be admired without knowing the reason of their existence. Instead this inquiry focuses on similarity between these patterns. Actually the similarity of patterns is a (meta-)pattern itself. Observation is an action. An observer pattern interacts with an object pattern, like interfering waves, creating a new pattern. The pattern is not built from subatomic particles, it is more like condensed nothingness. It is not a dead, inactive nothingness, but an emptiness full of potential. A lot of people call it Consciousness. Consciousness is the stage for things to happen.

This next picture expresses this relation between formless Consciousness and its patterns very well for me. It is a scene from Hindu mythology where Shiva, representing Consciousness, and Shakti personified as the goddess Parvati, representing the patterns (energy) manifesting in our universe, dance.


This is the dance of Consciousness observing itself through the manifestations of patterns. This is the dance that takes place every second, everywhere in every universe.

Thursday, December 6, 2007

Making Money

Last week I told you I wanted to link some other data sources to my Crazy Diamonds system besides 2D images. I found a nice dutch stock market site (www.belegger.nl) that provided me with price history for all AEX (Amsterdam Exchange index) stocks. I hooked this source of financial data up to my system and was ready to look for similarity patterns.

I decided it would be nice to take the AEX index itself into account, to really see interesting movements of a stock price relative to the main direction of the financial market, represented by this AEX index. For you nerds out there: I added the capability for amplitude modulation and demodulation using the AEX index as the carrier and the actual stock price as the output value. From the stock value and AEX carrier value at a given time, I derive the signal which is the movement of the stock compared to the current AEX index. This signal is used for the pattern matching.

My first goal is to find similarities between AEX stocks in the last year (2007). Not all AEX stocks were included because I selected the stocks with at least a 5 year history. The Crazy system started matching all stocks and came up with some amazing similarities. Take a look at the next picture for yourself:


You can click it to enlarge. You see pairs of stocks with the right one being the best match for the left stock. It really struck me that some are really similar, check out source "Fortis" with best match "Randstad" for example. I'm not a financial analyst and have no idea if there is a reason for this match. I'd better check data from the previous years to find out if this is a reoccuring event. We also see a clear similarity between "Fortis" and "ING" which seems very possible, them being both banks.

If you would like to see more stock similarity pictures, give me a note and I'll send you some.

I will start thinking about ways to visualise similarity in large sets of data sources. For example it would be nice to have 2D or even 3D overviews showing similar data sources in clusters, enabling us to categorise sources automatically. Oh well, that's enough for now!