增值税发票识别方法、装置、计算机设备及存储介质与流程

文档序号:18901892发布日期:2019-10-18 22:03阅读:401来源:国知局
增值税发票识别方法、装置、计算机设备及存储介质与流程

本发明涉及发票识别方法,更具体地说是指增值税发票识别方法、装置、计算机设备及存储介质。



背景技术:

信息化技术在企业的日常经营、生产以及管理中发挥着日益重要的角色,无纸化线上办公成为了一种不可阻挡的趋势。增值税发票作为企业间交易的凭证,是核实业务往来以及报税的重要依据,此外,增值税发票在业务系统中录入与验证是企业财务管理过程中极其重要但又十分繁琐的任务,大批量的发票若得不到及时处理,将会导致企业财务管理中的混乱,进一步影响企业的正常经营。人工录入和采集发票信息虽能在一定程度上扩大空间,但对发票单据的数据重复人工录入耗费了业务人员的大量时间与精力,同时也无法保证发票信息采集的准确率。因此,利用智能图像识别技术,对增值税发票进行智能化的识别将大大减少业务人员的工作量,并提升业务效率。

现有的发票识别方法包括发票关键字符区域的检测以及字符识别,其中,发票关键字符区域的检测所采用的方式一般为模板匹配法以及cptn文字识别网络法,字符识别所采用的方式包括卷积神经网络以及循环神经网络,但是现有的识别方法存在网络模型复杂,训练时需要采集大量的发票数据,并进行字符区域标注,工作量非常大;模型部署上线,操作复杂,识别速度慢,导致发票录入系统的效率提升并不明显;发票识别准确率不稳定,对抵抗噪声的鲁棒性较弱;对生产环境部署的要求高,在后期的运维过程中不易维护。

因此,有必要设计一种新的方法,以解决模型复杂、发票识别准确率不稳定、模型部署上线和维护不易的问题。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供增值税发票识别方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:增值税发票识别方法,包括:

获取需要识别的增值税发票数据,以得到待识别增值税发票数据;

对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果;

输出所述识别结果。

其进一步技术方案为:所述对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果,包括:

采用识别模型内的分类子模型对待识别增值税发票数据进行分类,以得到类别;

判断所述类别是否为增值税电子普通发票;

若是,则采用识别模型内的增值税电子普通发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

若否,则采用识别模型内的增值税普通、专用发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

根据所述定位信息对待识别增值税发票数据进行截取,以得到文本框区域图片;

采用识别模型内的字符识别子模型对所述文本框区域图片进行字符识别,以得到识别结果;

其中,所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的;

所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的;

所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的;

所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的。

其进一步技术方案为:所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的,包括:

获取若干真实场景下的增值税发票数据,以得到原始数据集;

对原始数据集进行扩展处理,以得到训练集与测试集;

对所述训练集进行类别标签标注,以得到第一样本集;

构建优化后的yolov3文本检测模型以及对应的第一损失函数;

将第一样本集输入优化后的yolov3文本检测模型内,并根据第一损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到分类子模型。

其进一步技术方案为:所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的,包括:

获取若干增值税电子普通发票数据;

对所述增值税电子普通发票数据进行文本框区域标注,以得到第二样本集;

构建优化后的yolov3文本检测模型以及对应的第二损失函数;

将第二样本集输入优化后的yolov3文本检测模型内,并根据第二损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税电子普通发票检测子模型。

其进一步技术方案为:所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的,包括:

获取若干增值税普通、专用发票数据;

对所述增值税普通、专用发票数据进行文本框区域标注,以得到第三样本集;

构建优化后的yolov3文本检测模型以及对应的第三损失函数;

将第三样本集输入优化后的yolov3文本检测模型内,并根据第三损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税普通、专用发票检测子模型。

其进一步技术方案为:所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的,包括:

获取若干文本框区域图片;

对所述文本框区域图片进行字符标签标注,以得到第四样本集;

构建卷积循环神经网络模型以及对应的第四损失函数;

将第四样本集输入卷积循环神经网络模型内,并根据第四损失函数对卷积循环神经网络模型的网络参数进行训练,以得到字符识别子模型。

其进一步技术方案为:所述字符识别子模型的卷积层为6层,字符识别子模型的循环神经网络采用双向长短期记忆网络,字符识别子模型的最后一层网络为全连接层网络。

本发明还提供了增值税发票识别装置,包括:

数据获取单元,用于获取需要识别的增值税发票数据,以得到待识别增值税发票数据;

识别单元,用于对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果;

输出单元,用于输出所述识别结果。

本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。

本发明与现有技术相比的有益效果是:本发明通过建立识别模型,利用该识别模型对待识别增值税发票进行文本识别,其中,识别模块囊括四个子模型,识别模块基于手机拍摄得到的真实增值税发票数据集进行建模,形成分类子模型、增值税电子普通发票检测子模型、增值税普通、专用发票检测子模型、字符识别子模型,实现端到端的增值税发票快速和精准识别,整个识别模型简单,且发票识别准确率较为稳定,模型部署上线和维护均方便。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的增值税发票识别方法的应用场景示意图;

图2为本发明实施例提供的增值税发票识别方法的流程示意图;

图3为本发明实施例提供的增值税发票识别方法的子流程示意图;

图4为本发明实施例提供的增值税发票识别方法的子流程示意图;

图5为本发明实施例提供的增值税发票识别方法的子流程示意图;

图6为本发明实施例提供的增值税发票识别方法的子流程示意图;

图7为本发明实施例提供的增值税发票识别方法的子流程示意图;

图8为本发明实施例提供的增值税发票识别装置的示意性框图;

图9为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1和图2,图1为本发明实施例提供的增值税发票识别方法的应用场景示意图。图2为本发明实施例提供的增值税发票识别方法的示意性流程图。该增值税发票识别方法应用于服务器中。该服务器与终端进行数据交互,从终端获取到待识别的增值税发票后,对该发票进行文本定位以及字符识别,以输出识别后的文本内容,并由终端显示。

图2是本发明实施例提供的增值税发票识别方法的流程示意图。如图2所示,该方法包括以下步骤s110至s130。

s110、获取需要识别的增值税发票数据,以得到待识别增值税发票数据。

在本实施例中,待识别增值税发票数据是指需要进行文本定位和字符识别的原始的增值税发票。

具体地,用户可以通过终端上的app输入该待识别增值税发票数据,服务器会接收到待识别增值税发票数据,进而对该发票数据进行文本定位和字符识别。

s120、对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果。

在本实施例中,识别结果是指包括增值税发票代码、发票号码、开票日期、税前金额以及校验码等字符串内容。

在一实施例中,请参阅图3,上述的步骤s120可包括步骤s121~s126。

s121、采用识别模型内的分类子模型对待识别增值税发票数据进行分类,以得到类别。

在本实施例中,类别是指待识别增值税发票数据的种类属性,一般包括增值税电子普通发票以及增值税普通、专用发票这两种类别。

具体地,上述的分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的。

在一实施例中,请参阅图4,上述的分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的,可包括步骤s1211~s1215。

s1211、获取若干真实场景下的增值税发票数据,以得到原始数据集。

在本实施例中,原始数据集是通过终端拍摄所得的发票或者从网站上爬取所得的发票。

具体地,通过手机等终端拍照等方式采集真实场景下的增值税发票数据,数据格式包括jpg、png等,以得到原始数据集。

s1212、对原始数据集进行扩展处理,以得到训练集与测试集。

在本实施例中,训练集是指用于训练模型的发票数据的集合,测试集是指用于测试模型的分类结果的发票数据集合。

具体地,通过图片裁剪、旋转以及数据增强等方式实现原始数据集拓展,将扩展后得到的发票数据集划分为训练集与测试集,比例为9:1;当然,于其他实施例,还可以依据实际情况设置其他比例的训练集和测试集。

s1213、对所述训练集进行类别标签标注,以得到第一样本集。

在本实施例中,第一样本集是对训练集进行类别标签的标注后形成的发票数据,以使得该训练集在训练网络后输出的类别可以与该类别标签进行对比,计算损失值,进而调整网络模型的参数。

s1214、构建优化后的yolov3文本检测模型以及对应的第一损失函数;

s1215、将第一样本集输入优化后的yolov3文本检测模型内,并根据第一损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到分类子模型。

在本实施例中,首先用带有类别标签的训练集作为第一样本集训练优化后的yolov3文本检测模型,且标签是类别,训练好分类子模型之后,输入一个测试集内的发票数据就可以输出对应的类别。第二损失函数的原理计算预测类别标签和真实的列别标签的均方误差,并根据该均方误差调整上述优化后的yolov3文本检测模型的网络参数,直到均方误差达到一定的阈值,就可以停止训练,在本实施例中,阈值设置为0.001,当然,于其他实施例中,还可以根据实际情况设置为其他数值。

s122、判断所述类别是否为增值税电子普通发票。

当得知待识别增值税发票数据的类别后,便可采用不同的子模型进行文本定位,以提高整个识别的准确率。

s123、若是,则采用识别模型内的增值税电子普通发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息,并进入步骤s125;

在本实施例中,上述的定位信息是指需要识别的字符所在的文本框相对于整个发票数据而言的像素位置,也就是文本框区域的相关信息。

具体地,上述的增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的。

在一实施例中,请参阅图5,上述的增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的,可包括步骤s1231~s1234。

s1231、获取若干增值税电子普通发票数据。

在本实施例中,上述的增值税电子普通发票数据可以是从上述分类子模型分类所得的增值税电子普通发票数据类别的增值税电子普通发票数据,也可以由终端输入的数据或者从网站爬取的增值税电子普通发票数据集合。

s1232、对所述增值税电子普通发票数据进行文本框区域标注,以得到第二样本集。

在本实施例中,第二样本集是指带有文本框区域标注的增值税电子普通发票数据的集合。

对增值税电子普通发票数据进行文本框区域标注,根据业务场景中的需求,将文本框区域界定在以下几个部分:发票代码、发票号码、开票日期、税前金额以及检验码等,标注工具为改进了的深度学习标注工具labelimg,从而能在标注过程中自动计算文本框区域的长度与宽度、中心点坐标以及倾斜角度。将标注完毕的增值税电子普通发票数据转化成检测模型可训练数据,数据格式为xml,同样地可参照分类子模型的训练方式,将第二样本集分为训练集以及测试集。

s1233、构建优化后的yolov3文本检测模型以及对应的第二损失函数;

在本实施例中,训练该模型所采用的第二损失函数为均方误差函数。

yolov3文本检测模型是目标检测领域中里程碑的一个模型,具有检测精度高、速度快等特点,可通过较少的业务数据实现场景化的目标检测需求。

s1234、将第二样本集输入优化后的yolov3文本检测模型内,并根据第二损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税电子普通发票检测子模型。

使用yolov3文本检测模型进一步训练场景化的识别模型,优化后的yolov3文本检测模型是指对yolov3文本检测模型作了进一步的改进,将卷积层提高到74层的模型,以提高检测精度,检测模型为二分类问题,其中目标文本框区域为一个类别,其他区域为另外一个类别。由于增值税电子普通发票与增值税普通发票、增值税专用发票的目标文本区域差异较大,为了保证检测的精准性以及后期的可维护性,对增值税发票类型、增值税电子普通发票以及增值税普通、专用发票各自单独训练了一个检测模型。

首先用带有文本框区域标注的增值税电子普通发票数据作为第二样本集训练yolov3文本检测模型,标签是文本框区域,即文字所在位置的基准像素信息。训练好增值税电子普通发票检测子模型之后,输入一个增值税电子普通发票数据就可以输出文本框区域,即文字所在位置的像素信息。第二损失函数的原理是计算预测出的文本框区域和文本框区域的均方误差,并根据该均方误差调整上述yolov3文本检测模型的网络参数,直到均方误差达到一定的阈值,就可以停止训练,在本实施例中,阈值设置为0.001,当然,于其他实施例中,还可以根据实际情况设置为其他数值。

s124、若否,则采用识别模型内的增值税普通、专用发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息。

具体地,增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的;

在一实施例中,请参阅图6,上述的增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的,可包括步骤s1241~s1244。

s1241、获取若干增值税普通、专用发票数据。

在本实施例中,增值税普通、专用发票数据可以是从上述分类子模型分类所得的增值税普通、专用发票数据类别的增值税普通、专用发票数据,也可以由终端输入的数据或者从网站爬取的增值税普通、专用发票数据集合。

s1242、对所述增值税普通、专用发票数据进行文本框区域标注,以得到第三样本集;

在本实施例中,第三样本集是指带有文本框区域标注的增值税普通、专用发票数据的集合。

对增值税普通、专用发票数据进行文本框区域标注,根据业务场景中的需求,将文本框区域界定在以下几个部分:发票代码、发票号码、开票日期、税前金额以及检验码等,标注工具为改进了的深度学习标注工具labelimg,从而能在标注过程中自动计算文本框区域的长度与宽度、中心点坐标以及倾斜角度。将标注完毕的增值税普通、专用发票数据转化成检测模型可训练数据,数据格式为xml,同样地可参照分类子模型的训练方式,将第三样本集分为训练集以及测试集。

s1243、构建优化后的yolov3文本检测模型以及对应的第三损失函数。

在本实施例中,训练该模型所采用的第三损失函数为均方误差函数。

yolov3文本检测模型是目标检测领域中里程碑的一个模型,具有检测精度高、速度快等特点,可通过较少的业务数据实现场景化的目标检测需求。

s1244、将第三样本集输入优化后的yolov3文本检测模型内,并根据第三损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税普通、专用发票检测子模型。

使用yolov3文本检测模型进一步训练场景化的识别模型,优化后的yolov3文本检测模型是指对yolov3文本检测模型作了进一步的改进,将卷积层提高到74层的模型,以提高检测精度,检测模型为二分类问题,其中目标文本框区域为一个类别,其他区域为另外一个类别。

首先用带有文本框区域标注的增值税普通、专用发票数据作为第三样本集训练yolov3文本检测模型,标签是文本框区域,即文字所在位置的基准像素信息。训练好增值税普通、专用发票检测子模型之后,输入一个增值税普通、专用发票数据就可以输出文本框区域,即文字所在位置的像素信息。第三损失函数的原理是计算预测出的文本框区域和文本框区域的均方误差,并根据该均方误差调整上述yolov3文本检测模型的网络参数,直到均方误差达到一定的阈值,就可以停止训练,在本实施例中,阈值设置为0.001,当然,于其他实施例中,还可以根据实际情况设置为其他数值。

s125、根据所述定位信息对待识别增值税发票数据进行截取,以得到文本框区域图片。

将获取所得的定位信息针对待识别增值税发票数据进行文本区域分割处理,以便文本框区域图片,方便字符的识别。

s126、采用识别模型内的字符识别子模型对所述文本框区域图片进行字符识别,以得到识别结果。

具体地,上述的字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的。

在一实施例中,请参阅图7,上述的字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的,可包括步骤s1261~s1264。

s1261、获取若干文本框区域图片。

在本实施例中,文本框区域图片是指仅包括文本框区域内容的增值税发票数据。

该文本框区域图片可以是由用户通过终端输入,还可以是从网站上爬取,当然,还可以根据增值税普通、专用发票检测子模型和/或增值税电子普通发票检测子模型输出的文本框区域对对应的样本集进行截取所形成的图片。

具体地,根据上述的增值税普通、专用发票检测子模型和/或增值税电子普通发票检测子模型输出的文本框区域对对应的样本集进行文本区域分割处理,以便采集字符识别子模型的训练数据;为了提高字符识别子模型的抗噪能力,文本区域分割的数据将大量采集具有噪声的数据集,进一步划分训练集以及测试集,其中划分比例为9:1,当然可以根据实际情况进行划分比例的调节。

s1262、对所述文本框区域图片进行字符标签标注,以得到第四样本集。

在本实施例中,第四样本集是指带有字符标签标注的文本框区域图片的集合。

将采集得到的数据集转化为识别模型的可训练数据集,其中一个文本框区域图片对应一个txt文件,txt文件内容为文本框区域图片的文字内容,也就是字符标签。

s1263、构建卷积循环神经网络模型以及对应的第四损失函数。

在本实施例中,上述的卷积循环神经网络模型是一种端到端的文本识别的网络模型,用于解决基于图像的序列识别问题,特别是场景文本识别问题。具体用于文本识别,且训练该模型所采用的第四损失函数为均方误差函数。

s1264、将第四样本集输入卷积循环神经网络模型内,并根据第四损失函数对卷积循环神经网络模型的网络参数进行训练,以得到字符识别子模型。

使用卷积循环神经网络进行增值税发票的字符识别子模型的训练,设计的卷积循环神经网络的卷积层为6层,循环神经网络采用双向的双向长短期记忆网络,字符识别子模型的最后一层网络为全连接层网络,训练数据采用步骤7所得,设定相关的训练评估指标:测试集准确率,待测试集准确率达到预期值则停止训练,最终得到增值税发票文本识别模型。卷积循环神经网络与传统神经网络模型相比具有一些独特的优点:直接从图像数据学习信息表示时具有与dcnn(深度卷积神经网络,deepconvolutionalneuralnetwork)相同的性质,既不需要手工特征也不需要预处理步骤,包括二值化/分割,组件定位等;具有与rnn(循环神经网络,recurrentneuralnetwork)相同的性质,能够产生一系列标签;对类序列对象的长度无约束,只需要在训练阶段和测试阶段对高度进行归一化;与现有技术相比,它在场景文本即字符识别上获得更好或更具竞争力的表现。

首先用带字符标签的文本框区域图片作为第四样本集训练卷积循环神经网络模型,且标签是字符标签,训练好字符识别子模型之后,输入一个文本框区域图片就可以输出对应的文本内容。第四损失函数的原理是计算预测的字符标签和真实的字符标签的均方误差,并根据该均方误差调整上述卷积循环神经网络模型的网络参数,直到均方误差达到一定的阈值,就可以停止训练,在本实施例中,阈值设置为0.001,当然,于其他实施例中,还可以根据实际情况设置为其他数值。

上述的识别模型所涉及的子模型采用基于手机拍摄得到的真实增值税发票数据集进行建模,最终实现端到端的增值税发票快速、精准识别。

举个例子:将上述已训练完毕的子模型应用于增值税发票的识别场景中,使用拍照设备批量采集增值税发票数据,数据格式为jpg。实验数据包括增值税普通发票115张,其中训练数据103张,测试数据12张;增值税专用发票115张,其中训练数据103张,测试数据12张;增值税电子普通发票296张,其中训练数据266张,测试数据30张。为了提高模型的抗噪鲁棒性,实验中对部分训练数据加入了噪声。实验将分别测试增值税的三类发票,检验模型在发票代码、发票号码、开票日期、税前金额以及检验码等五个关键要素的检测、识别准确率,以及识别单张发票的平均耗时。结果如下表所示:

实验结果如上表,为了简化,以下表述中发票指的是增值税发票,检测准确率指的是模型能够准确检测出增值税发票数据的目标文本区域的位置数量占增值税发票数据总数的比例,识别准确率指的是模型能够正确识别出增值税发票数据的目标文本区域的文字信息数量占增值税发票数据总数的比例,平均耗时指的是单张增值税发票数据从检测到识别整个端到端过程中的平均耗时,以检验模型的识别效率。

在改进yolov3文本检测模型的基础上,使用增值税发票场景下的少量数据进行训练,达到了极为优秀的检测效果,并同时保证了较高的识别效率,进一步使用训练完毕的检测模型切割发票目标文本区域,以采集识别训练数据,进一步构造、训练增值税发票的文本内容的识别模型,达到了预期效果,在模型部署使用过程中,用户仅需使用拍照设备采集发票数据上传入模型即可,模型从端到端快速反馈识别结果。

s130、输出所述识别结果。

用户从终端输入增值税发票数据,数据类型支持常见的图片格式,如:png、jpg、jpeg、jpg等,模型首先检测识别增值税的发票类型,若识别结果为增值税电子普通发票,则下一步执行增值税电子普通发票检测子模型,若识别结果为增值税普通发票或者为增值税普通、专用发票检测子模型,则下一步执行增值税电子普通发票检测子模型、增值税普通、专用发票检测子模型,最后执行字符识别子模型进行文本识别,输出增值税发票代码、发票号码、开票日期、税前金额以及校验码。检测与识别过程端到端,可实现自动化的高精度、高效率的增值税发票检测与识别。

上述的增值税发票识别方法,通过建立识别模型,利用该识别模型对待识别增值税发票进行文本识别,其中,识别模块囊括四个子模型,识别模块基于手机拍摄得到的真实增值税发票数据集进行建模,形成分类子模型、增值税电子普通发票检测子模型、增值税普通、专用发票检测子模型、字符识别子模型,实现端到端的增值税发票快速和精准识别,整个识别模型简单,且发票识别准确率较为稳定,模型部署上线和维护均方便。

图8是本发明实施例提供的一种增值税发票识别装置300的示意性框图。如图8所示,对应于以上增值税发票识别方法,本发明还提供一种增值税发票识别装置300。该增值税发票识别装置300包括用于执行上述增值税发票识别方法的单元,该装置可以被配置于服务器中。

具体地,请参阅图8,该增值税发票识别装置300包括:

数据获取单元301,用于获取需要识别的增值税发票数据,以得到待识别增值税发票数据;

识别单元302,用于对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果;

输出单元303,用于输出所述识别结果。

在一实施例中,所述识别单元302包括:

分类子单元,用于采用识别模型内的分类子模型对待识别增值税发票数据进行分类,以得到类别;

判断子单元,用于判断所述类别是否为增值税电子普通发票;

第一文本定位子单元,用于若是,则采用识别模型内的增值税电子普通发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

第二文本定位子单元,用于若否,则采用识别模型内的增值税普通、专用发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

截取子单元,用于根据所述定位信息对待识别增值税发票数据进行截取,以得到文本框区域图片;

字符识别子单元,用于采用识别模型内的字符识别子模型对所述文本框区域图片进行字符识别,以得到识别结果。

在一实施例中,上述的装置还包括:

分类子模型建立单元,用于通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络,以得到分类子模型;

增值税电子普通发票检测子模型建立单元,用于通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络,以得到增值税电子普通发票检测子模型;

增值税普通专用发票检测子模型建立单元,用于通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络,以得到增值税普通、专用发票检测子模型;

字符识别子模型建立单元,用于通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的,以得到字符识别子模型。

在一实施例中,上述的分类子模型建立单元包括:

原始数据集获取子单元,用于获取若干真实场景下的增值税发票数据,以得到原始数据集;

扩展子单元,用于对原始数据集进行扩展处理,以得到训练集与测试集;

类别标注子单元,用于对所述训练集进行类别标签标注,以得到第一样本集;

第一构建子单元,用于构建优化后的yolov3文本检测模型以及对应的第一损失函数;

第一训练子单元,用于将第一样本集输入优化后的yolov3文本检测模型内,并根据第一损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到分类子模型。

在一实施例中,上述的增值税电子普通发票检测子模型建立单元包括:

普通发票数据获取子单元,用于获取若干增值税电子普通发票数据;

第一文本框标注子单元,用于对所述增值税电子普通发票数据进行文本框区域标注,以得到第二样本集;

第二构建子单元,用于构建优化后的yolov3文本检测模型以及对应的第二损失函数;

第二训练子单元,用于将第二样本集输入优化后的yolov3文本检测模型内,并根据第二损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税电子普通发票检测子模型。

在一实施例中,上述的增值税普通专用发票检测子模型建立单元包括:

专用发票数据获取子单元,用于获取若干增值税普通、专用发票数据;

第二文本框标注子单元,用于对所述增值税普通、专用发票数据进行文本框区域标注,以得到第三样本集;

第三构建子单元,用于构建优化后的yolov3文本检测模型以及对应的第三损失函数;

第三训练子单元,用于将第三样本集输入优化后的yolov3文本检测模型内,并根据第三损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税普通、专用发票检测子模型。

在一实施例中,上述的字符识别子模型建立单元包括:

图片获取子单元,用于获取若干文本框区域图片;

字符标注子单元,用于对所述文本框区域图片进行字符标签标注,以得到第四样本集;

第五构建子单元,用于构建卷积循环神经网络模型以及对应的第四损失函数;

第五训练子单元,用于将第四样本集输入卷积循环神经网络模型内,并根据第四损失函数对卷积循环神经网络模型的网络参数进行训练,以得到字符识别子模型。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述增值税发票识别装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述增值税发票识别装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。

请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500是服务器。

参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种增值税发票识别方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种增值税发票识别方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:

获取需要识别的增值税发票数据,以得到待识别增值税发票数据;

对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果;

输出所述识别结果。

在一实施例中,处理器502在实现所述对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果步骤时,具体实现如下步骤:

采用识别模型内的分类子模型对待识别增值税发票数据进行分类,以得到类别;

判断所述类别是否为增值税电子普通发票;

若是,则采用识别模型内的增值税电子普通发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

若否,则采用识别模型内的增值税普通、专用发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

根据所述定位信息对待识别增值税发票数据进行截取,以得到文本框区域图片;

采用识别模型内的字符识别子模型对所述文本框区域图片进行字符识别,以得到识别结果;

其中,所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的;

所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的;

所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的;

所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的。

在一实施例中,处理器502在实现所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干真实场景下的增值税发票数据,以得到原始数据集;

对原始数据集进行扩展处理,以得到训练集与测试集;

对所述训练集进行类别标签标注,以得到第一样本集;

构建优化后的yolov3文本检测模型以及对应的第一损失函数;

将第一样本集输入优化后的yolov3文本检测模型内,并根据第一损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到分类子模型。

在一实施例中,处理器502在实现所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干增值税电子普通发票数据;

对所述增值税电子普通发票数据进行文本框区域标注,以得到第二样本集;

构建优化后的yolov3文本检测模型以及对应的第二损失函数;

将第二样本集输入优化后的yolov3文本检测模型内,并根据第二损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税电子普通发票检测子模型。

在一实施例中,处理器502在实现所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干增值税普通、专用发票数据;

对所述增值税普通、专用发票数据进行文本框区域标注,以得到第三样本集;

构建优化后的yolov3文本检测模型以及对应的第三损失函数;

将第三样本集输入优化后的yolov3文本检测模型内,并根据第三损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税普通、专用发票检测子模型。

在一实施例中,处理器502在实现所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干文本框区域图片;

对所述文本框区域图片进行字符标签标注,以得到第四样本集;

构建卷积循环神经网络模型以及对应的第四损失函数;

将第四样本集输入卷积循环神经网络模型内,并根据第四损失函数对卷积循环神经网络模型的网络参数进行训练,以得到字符识别子模型。

其中,所述字符识别子模型的卷积层为6层,字符识别子模型的循环神经网络采用双向长短期记忆网络,字符识别子模型的最后一层网络为全连接层网络。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:

获取需要识别的增值税发票数据,以得到待识别增值税发票数据;

对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果;

输出所述识别结果。

在一实施例中,所述处理器在执行所述计算机程序而实现所述对待识别增值税发票数据采用识别模型进行文本识别,以得到识别结果步骤时,具体实现如下步骤:

采用识别模型内的分类子模型对待识别增值税发票数据进行分类,以得到类别;

判断所述类别是否为增值税电子普通发票;

若是,则采用识别模型内的增值税电子普通发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

若否,则采用识别模型内的增值税普通、专用发票检测子模型对所述待识别增值税发票数据进行文本定位,以得到定位信息;

根据所述定位信息对待识别增值税发票数据进行截取,以得到文本框区域图片;

采用识别模型内的字符识别子模型对所述文本框区域图片进行字符识别,以得到识别结果;

其中,所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的;

所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的;

所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的;

所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的。

在一实施例中,所述处理器在执行所述计算机程序而实现所述分类子模型是通过若干携带有类别标签的增值税发票数据作为第一样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干真实场景下的增值税发票数据,以得到原始数据集;

对原始数据集进行扩展处理,以得到训练集与测试集;

对所述训练集进行类别标签标注,以得到第一样本集;

构建优化后的yolov3文本检测模型以及对应的第一损失函数;

将第一样本集输入优化后的yolov3文本检测模型内,并根据第一损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到分类子模型。

在一实施例中,所述处理器在执行所述计算机程序而实现所述增值税电子普通发票检测子模型是通过若干携带有定位信息标签的增值税电子普通发票数据作为第二样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干增值税电子普通发票数据;

对所述增值税电子普通发票数据进行文本框区域标注,以得到第二样本集;

构建优化后的yolov3文本检测模型以及对应的第二损失函数;

将第二样本集输入优化后的yolov3文本检测模型内,并根据第二损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税电子普通发票检测子模型。

在一实施例中,所述处理器在执行所述计算机程序而实现所述增值税普通、专用发票检测子模型是通过若干携带有定位信息标签的增值税普通、专用发票数据作为第三样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干增值税普通、专用发票数据;

对所述增值税普通、专用发票数据进行文本框区域标注,以得到第三样本集;

构建优化后的yolov3文本检测模型以及对应的第三损失函数;

将第三样本集输入优化后的yolov3文本检测模型内,并根据第三损失函数对优化后的yolov3文本检测模型的网络参数进行训练,以得到增值税普通、专用发票检测子模型。

在一实施例中,所述处理器在执行所述计算机程序而实现所述字符识别子模型是通过若干携带有字符标签的文本框区域图片作为第四样本集训练神经网络所得的步骤时,具体实现如下步骤:

获取若干文本框区域图片;

对所述文本框区域图片进行字符标签标注,以得到第四样本集;

构建卷积循环神经网络模型以及对应的第四损失函数;

将第四样本集输入卷积循环神经网络模型内,并根据第四损失函数对卷积循环神经网络模型的网络参数进行训练,以得到字符识别子模型。

所述字符识别子模型的卷积层为6层,字符识别子模型的循环神经网络采用双向长短期记忆网络,字符识别子模型的最后一层网络为全连接层网络。

所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1