签名识别是否有任何代码或算法?

时间:2012-01-18 08:39:13

标签: c# java algorithm machine-learning computer-vision

我的用户使用触摸事件在我的应用程序中绘制他们的签名,然后将其转换为位图。我想提取每个签名的唯一规范,并根据存储在主服务器中的规范进行比较。

我该怎么做?

提取签名的唯一功能的主要算法和企业算法是什么?

提前致谢,

5 个答案:

答案 0 :(得分:19)

我不是计算机视觉专家,但作为一名研究生,这听起来像是你正在寻找的功能提取。首先想到的是SIFT(尺度不变特征变换)。此算法允许您将原始签名的存储特征与副本进行比较,并识别具有高精度的匹配,即使在缩放或旋转样本的情况下也是如此。

通过简单的Google搜索,您可以找到许多学术论文,例如this onethis one,这些论文与使用该算法进行签名/生物识别专门相关。

在此Stack Overflow Article中讨论了将OpenCV与SIFT一起使用。

如果有更好的视觉算法,我不知道哪个特别适合这个问题,我鼓励社区加入。

答案 1 :(得分:3)

尝试查看使用神经网络进行手写识别的this resource。尝试查看this resource too,其中显示了如何识别手写数字。这两个项目都有完整的源代码。

答案 2 :(得分:1)

有一个类似的问题:Bitmap (of a signature) comparison in c#

我还在channel9 http://channel9.msdn.com/coding4fun/blog/Contour-Analysis-for-Image-Recognition-in-C

中找到了一篇文章

它需要创建复杂的逻辑,有各种产品可用于签名验证和识别,我发现以下代码用vb 6.0编写,可能会有所帮助: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38215&lngWId=1

简而言之,它需要付出很多努力,因此您可以询问客户是否通过指定一些独特的代码或问题来满足“签名匹配”的要求。

答案 3 :(得分:0)

你可以在一个字节数组中转换图像,将其发送到你的服务器并做你想做的任何事情。

接下来,我将提供一些可以使用的解码和编码方法的提示和技巧

这里有一个问题Decode byte array to bitmap that has been compressed in Java关于如何解码字节数组

使用以下提示从位图创建字节数组:http://www.anddev.org/advanced-tutorials-f21/how-to-convert-bitmap-to-byte-array-in-android-t12985.html

希望这有帮助, Arkde

答案 4 :(得分:0)

几年前,我做过手写识别系统。根据我在该项目工作期间获得的经验,我会给您打电话,不要将签名转换为图像,而是收集笔接触屏幕的点集并按时间戳排序。处理这些要比处理签名作为图像要容易得多。

如果有人会跟随您的脚步,建议您阅读一些有关在线/离线手写识别的信息