摘要
大量电子商务应用中需要通过OCR(Optical Character Recognition,光学字符识别)技术来自动识别大量的销售票据。基于深度学习的OCR已经具备了较高的准确率和较快的速度,然而在具体的应用场景还存在一些问题:1)现实场景中许多票据图像存在方向及水印等不利于识别的因素,现有OCR技术不能很好地应对这类实际场景。2)目前还没有特定的销售票据识别模型,通常以自然场景识别领域的通用模型应用于销售票据识别任务,识别效果不好。3)现有的票据识别系统通常针对特定票据领域,无法直接应用于本文所研究的销售票据场景。针对以上问题,本文设计并实现了一个票据信息提取系统,能够提供识别精度高、鲁棒性强、识别速度快的票据图像识别,并实现了相应的业务管理和数据分析平台。本文主要工作如下: (1)面向票据图像的方向分类和水印文本分类模型。本文基于PP-LCNet网络,设计并实现相应的票据图像分类模型,并加入SSLD蒸馏的预训练权重及数据增强两种手段,以提升模型准确率。实验结果表明,票据方向分类模型的准确率达到98.64%,票据水印文本分类模型准确率达到99.3%。 (2)面向票据图像的文本检测和文本识别模型。本文收集真实销售票据图像构建并标注数据集,在预训练模型的基础上,完成面向票据识别的特定OCR模型的设计与实现。在文本检测阶段,考虑到票据图像密集且包含多尺度特征,本文采用DB算法构建基础网络模型,并使用余弦学习率衰减、移除SE模块的策略,提高算法的准确率;在文本识别阶段,本文以SVTR_LCNet为基础网络结构,使用Attention指导CTC训练策略以及AMP自动混合精度训练策略,对文本识别模型及其训练过程进行优化。实验结果表明,检测模型达到94.2%的F1指标,识别模型达到95.3%的准确率。 (3)票据信息提取系统。本文根据实际的业务管理与数据分析需求,设计并实现了一个票据信息提取系统。将系统的信息提取模块和后台管理模块进行解耦,以分布式架构对系统进行设计与实现。信息提取模块将输入的票据图像存储在MinIO服务器中,经过方向分类、文本检测、水印文本分类、文本识别、关键信息提取等五个阶段,转化为系统所需的关键文本信息,该模块借助PaddlePaddle深度学习框架和Flask框架完成模型的训练和部署。后台管理模块分为用户管理、商家管理、识别记录管理等主要内容,并具有可视化的数据分析功能,该模块由React和Spring Boot技术实现,并基于Kubernetes集群,以微服务的形式进行部署,与其他微服务组件共同构建稳定的票据信息提取系统。本文的票据信息提取系统较好满足实际应用需求。