Posts

Matplotlib Errorbars Weirdness

Some time ago, I was having trouble with using error bars with a legend in matplotlib. I did some hack to fix it that time. Today, I came across the same issue again at the scikit-learn sprint. Obviously this time we wanted to do it right^TM. The problem is that when doing a plot with error bars, the colors in the legend don't correspond to the colors of the lines. The problem seems to be solved in never versions, though. After fiddling a bit with it I found the problem: The errorbars command actually returns a list of artists, corresponding to the lines AND the individual error bars. That seems to really confuse the legend. You can solve the problem by doing errorbar  = pl.errorbars(x, y, err) line = errorbar[0] legend(line, 'the line') taking the zeroth element of the tuple extracts just the line from the collection of artists and everything works out :)

Pascal VOC workshop papers online

One week after ICCV ended, the Pascal VOC workshop papers are online . This is brand new unpublished work and I find it always exciting! The image net workshop does not seem to have any materials online, though. I would be very interested in what Florent Perronnin did with his Fisher vectors this time.

Ask the locals: multi-way local pooling for image recognition

ICCV! In Barcelona! Regrettably, I had to stay home in cold Bonn. Today, I went through the accepted papers, and one of the many I found interesting was "Ask the locals: multi-way local pooling for image recognition" by  Y-Lan Boureau, Nicolas Le Roux, Francis Bach, Jean Ponce and Yann LeCun. Many big names on this one :) In this work the authors highlight a feature of many recent coding algorithms for visual descriptors: locality in the feature space. They formulate the encoding as a maximum pooling operation that is local in an image as well as in features space, by using a coarse k-means clustering on features (that are histograms of sparse codes if I understood correctly). The paper reports very good results on Caltech 101 and 256, and the scenes dataset. In particular, good results are achieved with quite small dictionaries, i.e. of size 256. My colleague Hannes pointed out that the features space binning is basically a layer of an RBF network. Which is not menti...

Random Ramblings on ImageNet

After looking trough ImageNet for a little while now, I found some things that I did not really expect. So here are some properties of ImageNet that I found interesting (even though some of them might be obvious). But first, a quick recap on what ImageNet is: It's a hand annotated dataset, consisting of 10 million images with 10 thousand object classes. The images were collected using search engines and flickr. Classes correspond to "synsets" in WordNet. A synset is a collection of semantically equivalent nouns. For example, there is a synset called 'n04037443' (this is the IMID, the image net id), which corresponds to the nouns 'racer, race car, racing car' and is described as 'a fast car that competes in races'. The synsets in WordNet have an additional hierarchical structure, given by a directed graph. Going down the graph goes from more general concepts to more specific concepts. For example 'mammal' is above 'canine' whi...

Exploring Image Net in Python

I guess it is a bit late now for starting to work on image net, since the ILSVRC competition just ended. Still, I think this is a very interesting - if not the most interesting - dataset available today in computer vision. So I thought I'd finally take a look. As usual I wrapped up some Python scripts to do the work for me. You can find my little script on github . At the moment, I provides a class to parse the meta data and xml annotations. It can produce bounding box images and you can search for synsets by keywords and browse the tree somewhat. You have to download the dataset and annotations yourself, though. I am still working on the code and additional functionality is likely to be added soon.

scikits.learn aka sklearn 0.9 released

My favourite machine learning library has got a major upgrade (unless you're using the dev version like me ;) Important new features include manifold learning, Dirichlet process mixture models and dataset downloader / import functions . You can find the changelog here .

scikits.image: image processing in Python [edit]

From a discussion on the scikits.learn mailing list I stumbled across scikits.image . How great is that? I have been looking for something like that for quite a while now: A low to mid-level image library for python. It is still in a very early stage at the moment and mostly consists of io, morphological operations and opencv function as far as I can see. But it can convert colorspaces! I don't know how many times I thought "why?!!? why do I have to write my RBG to HSV myself?!" This makes me ever so happy :) I hope I find the time to contribute and I hope this project will gain more momentum. [edit] As an afterthought, I'd like to quote the following message from Nicolas Pinto on the scikits-learn mailing list: [about histogram of oriented gradients] I believe this should be part of scikits.image along with sift, phog, bow, phow, geometric blur, gabor jets, etc. We had planned to integrate them all but it felt through the cracks. I hope that the scik...