Dectecting stamp (seals) imprints on digital image with SIFT
===

I am working on an application that should determine if input image contain a stamp imprint and return its location. For RGB images I am using color segmentation and doing verification (with various shape factors), for grayscale image I thought that SIFT + verification would do the job, but using SIFT would only find those stamps(on input image) that I got in my database.

In ideal case it works really well, as shown on image bellow.

Fig. 1.
http://i.stack.imgur.com/JHkUl.png

The problem occurs when input image contains a stamp that does not exist in database. First thing I did was checking if there would be any matching key points if I compare a *similar* stamp to the one on input image. In most cases there is no single matching key point and if there is some they are rather refer to other parts of input image than a stamp, as shown in Fig. 2.: 

Fig. 2
http://i.stack.imgur.com/coA4l.png

I also tried to find a match between input and circle images as the stamps are circular, but circle image has very few key points, if any.


So I wonder if there is any different approach that will make SIFT a bit more useful in this exact case? I though about creating a matrix with all descriptors and key-points from my database and then looking for nearest euclidean distance between input image and matrix, but it probably wont work as there is a lot of matching key-points(unwanted) across the database (see Fig. 2.).

I'm working with Matlab and tried both VLFeat and D. Lowe SIFT implementations.