<p>Signature verification is a very difficult task, lots of research efforts have been made but still they are not much accurate in comparing signature pairs</p>
<p><code>SIFT/SURF</code> algorithms wouldn't be helpful here because model needs to learn a more complex set of features in order to compare signatures</p>
<p>There are some <code>Deep learning</code> based <code>Offline signature verification</code> models that you can see</p>
<ul>
<li>Dey et al. 2017 [<a href="https://arxiv.org/abs/1707.02131" rel="nofollow noreferrer">paper</a>] [<a href="https://github.com/sounakdey/SigNet" rel="nofollow noreferrer">code</a>]</li>
<li>Hafemann et al. 2017 [<a href="https://arxiv.org/abs/1705.05787" rel="nofollow noreferrer">paper</a>] [<a href="https://github.com/luizgh/sigver" rel="nofollow noreferrer">code</a>]</li>
</ul>
SIFT/SURF and signatures
<p>I'm working on a project about offline signature verification and I've tried SIFT/SURF algorithms (OpenCV) for comparisson of 2 signature images.</p>

<p>What I've noticed is that when I pass in 2 same pictures I get ~1000 keypoints but when I pass 2 pics of different signatures of same person I get just ~70-80. And when one of the passed pics is a signature of a different person but which has alike style I get ~50-60 keypoints. Some of the points also weren't matching each other at all like they were from 2 different locations.</p>

<p>It's clear to me that these algorithms aren't good for my task but I don't quite understand why. </p>

<p>Could anyone exaplin the reason to me from the maths/algo point of view?</p>