1. 需求说明
使用计算机视觉相关算法,检测出实拍文档手写签名的位置
示例:
1.1 难点
- 基本为合同等场景
- 签名不一定位于右下角,需要结合实际情况查看
- 签名为手写体,且非正楷,大部分用户签名都较为个性,类似于特殊的符号,还有可能非中文
- 存在签名可能位于非空白区域,比如带有印章遮挡
- 相对于整张图片而言,签名在图中占比很小,可能需要考虑使用二阶段模型
2. 相关论文
- Signature Detection, Restoration, and Verification: A Novel Chinese Document Signature Forgery Detection Benchmark
签名检测、恢复和验证:一种新颖的中文文档签名伪造检测基准
检测复杂扫描文档上的签名位置并裁剪感兴趣区域 (ROI) 是签名检测的主要目标。现有的签名检测方法可以分为两类。一是提出一种专门的系统来提取特征来检测签名。另一种是将特征检测任务建模为标准目标检测任务,并使用基于深度学习的方法来完成该任务。具体来说,Sharma [28] 使用 YOLOv2 [24] 和 Faster R-CNN [8] 进行签名检测。 Hauri [12] 研究了签名检测上的不同对象检测方法,包括 YOLOv5 [9]、Faster R-CNN [8] 和 RetinaNet [18],其中 YOLOv5 优于其他模型。因此,我们评估了不同的基于深度学习的目标检测方法在我们提出的数据集上的性能
- Handwritten Chinese Signature Detection on Scanned Technical Documents for Authenticity Verification
技术文件扫描件手写中文签名检测,验证真伪
签名检测是证明手写签名真实性的关键前置程序之一。尽管对合同、账单、报告等自动验证签名的需求不断增加,但基于签名检测的研究却非常有限。签名检测的障碍之一是出于隐私和保密的考虑而缺乏公共注释数据集。在本文中,我们探索了一种数据增强方法,即复制粘贴增强,以缓解签名文档的稀缺性。将签名检测建模为对象检测任务,我们使用不同的对象检测模型对中文技术文档进行实验。实验表明,具有复制粘贴增强功能的 YOLOv5 表现最佳。基于实验,我们提出了一个用于签名检测的原型系统。
- Detecting signatures in scanned document images
检测扫描文档图像中的签名 (毕业论文等,使用了YOLOv5)
本论文的目标是提供一种检测和聚合签名和签名字段的方法,以检查维也纳市批量建筑应用程序的完整性,即应该可以处理文档集。为了找到鲁棒的算法,对几种机器学习模型进行了训练和评估。为了与已发布结果的可重复性和可比性,最初使用免费提供的 Tobacco 800 数据集进行训练。该数据集由烟草公司根据主和解协议发布的各种文件组成。每个文档图像都包含机器打印的文本、签名和手写注释,而每个视觉实体的位置都有注释。因此,Tobacco 800 数据集适合作为维也纳市建筑应用数据集的初始替代品。维也纳市仅提供建筑应用程序的原始扫描,不提供任何视觉实体的注释。为了避免繁琐且耗时的完全手动注释过程,建立了迁移学习管道,其中将使用 Tobacco 800 数据集训练的模型应用于维也纳市的建筑应用程序数据集。在 Tobacco 800 数据集上训练的模型用于加速构建应用程序数据集的手动注释过程。它被用来预测建筑应用数据集中的签名,然后手动细化预测的边界框。最后,该模型用于实现一个原型,无需技术知识的用户即可访问,该原型有助于快速聚合签名并评估批量构建应用程序所需签名的完整性。
3. 数据集
3.1 签名文档数据集
- Tobacco 800 Dataset
Tobacco800 由 1290 个文档图像组成,是用于文档图像分析研究的现实数据库,因为这些文档是随着时间的推移使用各种设备收集和扫描的。此外,Tobacco800 的很大一部分是连续编号的多页商业文档,这使其成为各种基于内容的文档图像检索方法的宝贵测试平台。 Tobacco800 中文档的分辨率在 150 到 300 DPI 之间变化很大,图像尺寸范围从 1200 x 1600 到 2500 x 3200 像素。
- SignatureDetectionDataset
数据集:约200张英文签名数据,带有label (但是为标准打印版)
链接
3.2 文档数据集
- XFUND
XFUND 是一个多语言表单理解基准数据集,其中包含 7 种语言(中文、日语、西班牙语、法语、意大利语、德语、葡萄牙语)的带有键值对的人工标记表单。
3.3 手写签名数据集
ChiSig Dataset
我们构建了一个新颖的中文文档离线签名伪造检测基准,即 ChiSig,其中包括签名检测、恢复和验证等所有任务。该数据集由干净的手写签名、合成的嘈杂手写签名和带有手写签名的合成文档组成。
我们随机生成500个名字,然后让志愿者按照一定的规则进行签名,得到干净的签名数据,可以用于签名验证任务。
https://github.com/dskezju/Chisig?tab=readme-ov-file
-
基于年龄标注的离线手写签名数据库(OHSDA)(英文)
Offline Handwritten Signature Database based on Age Annotation (OHSDA)
链接 -
MSDS: A Large-Scale Chinese Signature and Token Digit String Dataset for Handwriting Verification (这个数据集需要申请才能用到)
MSDS:一个用于笔迹认证的大规模中文签名和令牌数字串数据集
该论文提出了一个针对笔迹身份认证的大规模中文签名和令牌数字串数据集MSDS,其中包含两个子集:MSDS-ChS子集,由中文签名组成,NSDS-TDS子集,由令牌数字串组成。MSDS-ChS是当前最大的中文签名数据集;MSDS-TDS探索了一种新的生物识别笔迹媒介:令牌数字串。实验证明令牌数字串的等错误率比中文签名更低,说明令牌数字串有潜力在高精度的联机身份认证场景下代替中文签名。
总结:
经过搜集,完整的手写签名文档类数据集较少,分离的手写签名数据集较多,我们后续可通过图像合成的方式,将签名嵌入文档之中,从而生成对应的数据集。
4. 开源项目
-
传统识别签名位置方法:
https://github.com/EnzoSeason/signature_detection -
基于FasterRCNN:
https://github.com/sitongye/Document_MultiObject_Detection_FasterRCNN -
使用YOLOv5+ CyCleGAN来检测
签名验证系统是大多数商业实践的重要组成部分。通过自动化此过程可以节省大量时间和熟练资源。该项目演示了端到端签名验证系统的实施。
使用 YOLOv5 从用户选择的文档中提取签名。在现实世界的文档中,会存在诸如打印文本、邮票等噪声伪影,这可能会严重影响签名验证任务的性能。因此,添加了基于 CycleGAN 的噪声清除方法来解决这个问题。使用基于 VGG16 的特征提取器验证清理后的签名,类似于 Siamese Networks。
-
Signature-Verification_System_using_YOLOv5-and-CycleGAN
https://github.com/amaljoseph/Signature-Verification_System_using_YOLOv5-and-CycleGAN -
使用YOLOv5检测:
https://github.com/shitkov/signature_detector -
使用YOLOv8检测:(提到了数据增强方式)
https://docs.ultralytics.com/zh/datasets/detect/signature/
5. 相关专利
- 一种手写签名检测方法、装置、设备及存储介质
https://d.wanfangdata.com.cn/patent/CN202310767537.X