1. 磐创AI首页
  2. Medium

使用深度学习检查数字化

付款支票是一种由客户撰写并签名的文件,指示银行借记您的账户并向另一个人或组织付款。支票与其他业务单据(如合同、汇款、索赔付款通知和发票)一起扫描。支票是世界范围内首选的支付方式,因为它们既安全又方便。

在本文中,我们将分享一种提取关键字段-收款人名称、收款人地址、银行名称、支票日期、支票金额、路由号、支票号码和账号的方法,使用Amazon TExtract作为OCR引擎,并使用基于深度学习的对象检测算法来检测支票的各个区域。

使用图像处理的支票数字化是以最少的人工干预实现银行支票处理自动化的强大推动者。在许多财务、会计和税务领域,它可以在简化文件密集型流程和办公自动化方面发挥关键作用。

支票的各个组成部分如下图所示:

挑战

逻辑流程图:-

方法论

随着类数量的增加,建立模型来区分所有这些对象的复杂性也随之增加。支持向量机(SVM)是用于区域建议分类的流行模型之一。基于这些原因,我们选择较快的RCNN作为我们的解决方案设计的ROI检测算法。我们培训了客户更快的RCNN模型来识别关键的ROI-日期、金额、MICR条带、银行标识、客户信息(地址、姓名)、支票号码。为了训练自定义对象检测标签,我们在所有这些参数上注释了250幅图像(使用vott v1之类的在线注释),并准备了一个包含标签和所有类别的边界框的训练.csv文件:VoTT v1

并不总是这样,您会从上一个重量文件中获得最好的结果。您需要在MAP(平均精度)分数的基础上对它们进行评估。根据存在的不同检测挑战,通过取所有类别和/或整体IOU阈值上的平均AP来计算平均平均精度或MAP分数。

下面是我们的目标检测模型的张量板损失图:

使用我们的定制训练模型,我们能够检测ROI,如下所示:

SOUTHSTATE BANK 5515 Map InsurancE LLC www.southstatebank.com CLOSING TRUST 9007401 601 12TH STREET W. 9004 7 7 63-1403/631 BRADENTON,FL 34205 (941) 747-1871 07/27/21 PAY TO THE ORDER OF Title Insurance Company $ *****1,247.47 One Thousand Two Hundred Forty Seven and 47/100 DOLLARS TRUST ACCOUNT MEMO VOID APTEM 180 DAYS Underwriter Remittance 005515 :063114030 : 3001674   07/27/21 5515 CLOSING TRUST Title Insurance Company 1,247.47 BUYER (S) : Loan too LD Enterprises SELLER (S) : SouthState Bank, N.A. PRIOR over  1,247.47


Spacy为Python中的NER提供了一个非常高效的统计系统,它可以将标签分配给连续的标记组。除了这些默认实体外,Spacy还允许我们向NER模型添加任意类,方法是训练模型用更新的训练样本更新模型。主要部分是为输入文本创建自定义实体数据,其中命名实体将在测试期间由模型标识。以下是列车数据的样本格式:

[“pinnacle title agency, inc. escrow account 32200 w county line road investors bank”,{‘entities’: [(100, 115, ‘bank’)]}]

在这个数据集中,我们试图预测银行的名称。

注意:但是,spacy v3.1不再采用.json格式,必须将其转换为.spacy格式。请参阅Spacy文档。

使用CLI进行训练和预测

1.创建配置:

在进行培训之前,您需要创建配置文件。要创建自定义配置文件,请遵循Spacy文档

!python -m spacy init config — lang en — pipeline ner /content/ner_demo/configs/config.cfg –force

2.训练模型

一旦完成,您就可以开始训练您的模型了

此时,您手头应该有三个文件:(1)config.cfg文件,(2).spacy格式的训练数据和(3)评估数据集。

!python -m spacy train /content/ner_demo/configs/config.cfg — output /content/ner_demo/training/

3.预测测试数据中的实体

业务逻辑和验证规则

我们构建了自定义的业务规则和NLP逻辑来验证提取的信息,如路由号、支票金额和支票号码。

3(d1+d4+d7)+7(d2+d5+d8)+(d3+d6+d9)mod10=0(d表示数字号工艺路线编号。

*ABA路由中转号-维基百科ABA routing transit number — Wikipedia

如果模型检测到$1247.47作为支票金额,那么在支票原始数据提取中,其类似于“1,247”字格式应该以字符串的形式出现。代码片段如下:-

结论


我们在380幅图像上对我们的模型进行了评估,并在362个样本中检测到了支票。其中,我们能够以约90%的效率提取信息。随着我们用更多的训练数据来增强我们的模型,随着时间的推移,结果预计会有所改善。我希望这会让您更容易启动自己的深度学习对象检测项目。

关于我


我是一名热情的机器学习爱好者,目前正在探索深度学习和NLP这一广阔而令人兴奋的领域。目前在EXL Digital担任高级数据科学家,我的工作涉及构建分析模型并将其部署在云本地平台上。

我也要感谢我的同事Divyansh Sharma和Deelip Kumar在这个项目中所做的努力。你可以跟我们走:-

资源

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/09/15/%e4%bd%bf%e7%94%a8%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e6%a3%80%e6%9f%a5%e6%95%b0%e5%ad%97%e5%8c%96/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息