Logo recognition in images [closed]

You could try to use local features like SIFT here:
http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

It should work because logo shape is usually constant, so extracted features shall match well.

The workflow will be like this:

  1. Detect corners (e.g. Harris corner detector) – for Nike logo they are two sharp ends.

  2. Compute descriptors (like SIFT – 128D integer vector)

  3. On training stage remember them; on matching stage find nearest neighbours for every feature in the database obtained during training. Finally, you have a set of matches (some of them are probably wrong).

  4. Seed out wrong matches using RANSAC. Thus you’ll get the matrix that describes transform from ideal logo image to one where you find the logo. Depending on the settings, you could allow different kinds of transforms (just translation; translation and rotation; affine transform).

Szeliski’s book has a chapter (4.1) on local features.
http://research.microsoft.com/en-us/um/people/szeliski/Book/

P.S.

  1. I assumed you wanna find logos in photos, for example find all Pepsi billboards, so they could be distorted. If you need to find a TV channel logo on the screen (so that it is not rotated and scaled), you could do it easier (pattern matching or something).

  2. Conventional SIFT does not consider color information. Since logos usually have constant colors (though the exact color depends on lightning and camera) you might want to consider color information somehow.

Leave a Comment