手写签名检测

我在尝试查找扫描后的PDF表格中是否包含签名(例如,确保支票上有签名)。

问题领域:

我将接收到文档包(包含多页PDF的多个表格)。我已经组装了文档包分类器来检查包中的所有文档,并将图像缩放到统一大小。之后,我知道签名应该在哪里,并可以扫描文档的特定区域。我正在寻找确保存在签名的最佳方法。我考虑过只是检查暗像素的基本阈值,但这似乎太笨拙了。签名的麻烦在于它们并不是真正的书写,更像是一种个人标记。

我能想到的唯一方法是使用机器学习方法来寻找“环状性”?但我对机器学习不太熟悉,甚至不知道如何开始这样的工作。任何有实用方法建议的人将非常受欢迎。

如果有帮助的话,我是用Java编写这个程序的


回答:

你提出的问题非常广泛,所以我们能提供的信息有限。然而,我可以给你一些有用的链接:

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

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

  • 我对你的算法的一个重要建议是,不要去寻找所有环和其它东西的具体长度,而是去看它们的相对距离
  • “相对距离是什么?”你可能会问。这就是下一个建议派上用场的地方:不要跟踪线条,而是跟踪环的顶点和这些点的顺序。如果你然后计算它们之间的距离(当然是相对的,这意味着将其中一个长度设为零)。在跟踪距离的同时,你也应该跟踪角度。你可以通过计算(A,B)、(B,C)和(A,C)之间的距离来计算角度ABC (A,B和C是xy平面上的坐标),这会在点之间形成一个三角形,允许你使用三角学来计算角度。

  • (我假设你也在尝试检测这是谁的签名,因为这实际上并不会增加太多复杂性) 在尝试将检测到的签名与存储的签名匹配以查看它们是否“相同”时,不要要求距离和角度必须完全一致。给出一个误差范围(例如,使用一个百分比范围的上下限)。这里有一个建议:将误差范围设得相当大。这样,即使签名写得不好,也仍然能被检测到。这会提高检测到多个签名的几率。幸运的是,有一个简单的解决方案。只是让程序在找到的签名上再次运行算法,但误差范围更小(当然这不是手动操作,程序会自动完成)。继续减小误差范围,直到只剩下一个签名。

  • 我希望你已经有了检测实际签名位置的想法,但当然要检查像素的暗度差异。确保它相当连续。还要注意,签名通常用黑色 蓝色 签署,有时也会使用红色和其他花哨的颜色。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注