-2

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

问题域:

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

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

如果这有帮助的话,我正在用 Java 编写代码

4

1 回答 1

3

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

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

  • https://www.youtube.com/playlist?list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU - 这是一个解释神经网络的系列(你可能想研究一下你的机器学习)

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

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

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

于 2016-07-01T23:20:18.217 回答