手写签名检测
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 平面上的坐标)它在点之间创建一个三角形,允许您使用三角学来计算角度。
(我假设对于所有这些,您还试图检测 谁的 签名当然是因为它实际上并没有真正使事情复杂化) 当尝试将检测到的签名与存储的签名进行匹配以查看它们是否“相同”时,不要到达必须精确的距离和角度。给出误差范围(例如使用上下百分比范围)。这里有一个提示:使误差范围相当大。这样,如果它写得不好,它仍然会被检测到。这增加了获得多个签名的机会。幸运的是,有一个简单的解决方案。只需让它在找到的签名上再次运行算法,但误差范围更小(您当然不要手动执行此操作,程序会执行此操作)。继续减少误差范围,直到只剩下一个签名。
我希望您已经有了检测实际签名位置的想法,但当然要检查像素的暗度差异。确保它非常连续。另请注意,签名通常以 黑色 或 蓝色或有时红色和其他花哨的颜色签名。
【讨论】:
非常感谢您花时间回答我的问题! 完全没问题:)以上是关于手写签名检测的主要内容,如果未能解决你的问题,请参考以下文章