手写签名检测

Posted

技术标签:

【中文标题】手写签名检测【英文标题】:Handwriting signature detection 【发布时间】:2016-11-04 04:32:42 【问题描述】:

我正在尝试查找扫描的 pdf 表单是否包含签名(例如确保支票已签名)。

问题域:

我将收到文件包(带有多个表格的多页 pdf)。我已经将文档包分类器放在一起,这些分类器将检查所有文档的包并将图像缩放到一个通用大小。之后,我知道签名应该在哪里,并且可以专门扫描文档的区域。我正在寻找的是确保存在签名的最佳方法。我考虑过只检查暗像素的基本阈值,但这似乎很笨拙。签名的问题在于它们并不是真正的书写,更多的是个人标记。

我唯一能想到的就是寻找循环的机器学习方法?但我对机器学习并不是很熟悉,甚至不知道从哪里开始这样的事情。任何对实际方法有一些建议的人都将非常感激。

如果有帮助的话,我会用 Java 编写代码

【问题讨论】:

太宽泛了。我们无法在 Stack Overflow 上为您提供有关 OCR 的论文。这是一门非常难而且很难正确开始的主题。 要求关于布尔结果的方法建议过于宽泛?是签名不是签名。不知道如何使它更简洁。 【参考方案1】:

您所问的内容非常广泛,因此我们无法为您提供很多信息。不过,我可以为您指出一些有用的链接:

http://java-ml.sourceforge.net/ -- 这是一个您可以下载的库,其中包含许多有用的算法和其他代码可以包含在您的程序中

https://www.youtube.com/playlist?list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU -- 这是一个解释神经网络的系列(您可能希望在机器学习中研究的东西)

因此,我对您的算法的一个重要提示是,与其查找所有循环和事物的确切长度,不如查看它们的所有相对距离

“与什么的相对距离?”你说。好吧,这就是下一个技巧派上用场的地方:不是跟踪线,而是跟踪循环的提示和这些点的顺序。如果你然后取所有它们之间的距离(当然,这意味着将其中一个长度设置为零)。除了跟踪距离之外,您还应该跟踪角度。您可以通过取 (A,B)、(B,C) 和 (A,C) 之间的距离来计算角度 ABC(A、B 和 C 是 xy 平面上的坐标)它在点之间创建一个三角形,允许您使用三角学来计算角度。

(我假设对于所有这些,您还试图检测 谁的 签名当然是因为它实际上并没有真正使事情复杂化) 当尝试将检测到的签名与存储的签名进行匹配以查看它们是否“相同”时,不要到达必须精确的距离和角度。给出误差范围(例如使用上下百分比范围)。这里有一个提示:使误差范围相当大。这样,如果它写得不好,它仍然会被检测到。这增加了获得多个签名的机会。幸运的是,有一个简单的解决方案。只需让它在找到的签名上再次运行算法,但误差范围更小(您当然不要手动执行此操作,程序会执行此操作)。继续减少误差范围,直到只剩下一个签名。

我希望您已经有了检测实际签名位置的想法,但当然要检查像素的暗度差异。确保它非常连续。另请注意,签名通常以 黑色 蓝色或有时红色和其他花哨的颜色签名。

【讨论】:

非常感谢您花时间回答我的问题! 完全没问题:)

以上是关于手写签名检测的主要内容,如果未能解决你的问题,请参考以下文章

深度学习实战之手写签名识别(100%准确率语音播报)

以 GSP 形式捕获手写签名 [关闭]

jSignature手写签名的实现

用于捕获签名的 Firefox 插件(通过手写笔/平板电脑)

wex5 实战 手写签名与上传

PHP 使用WordPress短代码创建手写签名