![一种文档图像识别方法、装置、设备及存储介质与流程](https://img.xjishu.com/img/zl/2023/3/7/6d77hng16.jpg)
1.本发明实施例涉及计算机技术领域,尤其涉及一种文档图像识别方法、装置、设备及存储介质。
背景技术:2.在金融场景中,通用文档主要指电子文档和扫描文件图片,包括密集长文本、倾斜图片以及表格类场景等,如信用证、提货单、存放同业合同、贸易合同以及财务报表等。在金融场景业务的日常工作中,每天会产生大量的数据录入需求,各厂商提供的通用文档ocr识别服务处于高并发场景下,通用文档ocr识别服务预测请求的平均响应延迟时间达不到业务要求,市面上的绝大多数同类产品一方面直接使用文本检测和文本识别训练得出的float32模型进行推测,模型的尺寸及内存消耗都比较大。
3.当前ocr服务是直接使用串行执行的方式,没有充分利用服务器端的硬件资源,通用文档端到端识别虽然能满足自动提取相关文档信息,但是cpu利用率低,导致cpu资源浪费。
技术实现要素:4.本发明实施例提供一种文档图像识别方法、装置、设备及存储介质,解决了ocr服务中cpu利用率低和cpu资源浪费的问题。
5.根据本发明的一方面,提供了一种文档图像识别方法,包括:
6.通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;
7.将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,所述第一图像为对文档图像进行划分得到的图像;
8.将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据。
9.根据本发明的另一方面,提供了一种文档图像识别装置,该文档图像识别装置包括:
10.矩阵拷贝模块,用于通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;
11.图像得到模块,用于将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,所述第一图像为对文档图像进行划分得到的图像;
12.文本得到模块,用于将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据。
13.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
14.至少一个处理器;以及
15.与所述至少一个处理器通信连接的存储器;其中,
16.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的文档图像识别方法。
17.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的文档图像识别方法。
18.本发明实施例通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,所述第一图像为对文档图像进行划分得到的图像;将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据,解决了ocr服务中cpu利用率低和cpu资源浪费的问题,能够充分利用cpu和gpu的资源,提高cpu和gpu的利用率。
19.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
21.图1是本发明实施例一中的一种文档图像识别方法的流程图;
22.图2是本发明实施例一中的一种对称量化和非对称量化的示意图;
23.图3是本发明实施例二中的一种文档图像识别装置的结构示意图;
24.图4是本发明实施例三中的一种电子设备的结构示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法
律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
28.实施例一
29.图1是本发明实施例一中的一种文档图像识别方法的流程图,本实施例可适用于文档图像检测和识别的情况,该方法可以由本发明实施例中的文档图像识别装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
30.s110,通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器。
31.其中,第一处理器为cpu(central processing unit,中央处理器),第二处理器为gpu(graphics processing unit,图形处理器)。
32.其中,透射变换矩阵为在获取文档图像和目标图像后,通过读取或者计算的方式,获取文档图像对齐到目标图像的透射变换矩阵,目标图像为文档图像经过目标文本检测模型处理后得到的图像。目标图像中的字体为标准字体。
33.具体的,通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器的方式可以为:先通过cpu多核并行计算获取透射变换矩阵,拷贝获取的透射变换矩阵至gpu。
34.需要说明的是,因透射变换矩阵计算量相对较小,且数据拷贝带来的延时要远远大于计算的时间,故将透射变换矩阵从cpu拷贝至gpu,可减少计算时间。
35.s120,将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,第一图像为对文档图像进行划分得到的图像。
36.其中,第二图像为根据第一图像透射变换得到的图像。第二图像中的字体为标准字体(也就是非倾斜字体)。需要说明的是,由于文档图像中存在倾斜字体,因此,需要对文档图像中的字体进行调整。基于文档图像对齐到目标图像的透射变换矩阵对第一图像进行透射变换,得到调整后的第二图像。
37.具体的,将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像的方式可以为:将对文档图像进行划分得到的至少一个图像从内存拷贝到gpu中,gpu多核并行通过透射变换矩阵对得到的至少一个图像进行透射变换,得到至少一个第二图像。
38.需要说明的是,透射变换算法涉及到大量的矩阵加减乘除等运算,gpu硬件拥有大量的流多处理器,每个流多处理器中拥有大量的计算单元,天然具有并行处理矩阵运算的优势,同时使用cuda流覆盖数据传输和kernel计算过程。使用cuda流进行数据传输优化,根据创建的cuda流数量划分多个部分来完成,使用异步拷贝函数通过不同的流将文档图像的像素矩阵数据传到gpu,在不同的流上启动核函数进行计算,最后使用异步拷贝函数将不同流上的计算结果拷贝到内存,防止cpu和gpu不同步。
39.通过将原始的第一图像从内存拷贝至gpu显存中,可避免每次都需进行数据拷贝,可减少处理时间,提高处理效率。并且采用gpu多核并行计算透射变换矩阵性能更优,相较于原始串行计算,可以有效提高透射变换算法的运行速度,减少服务响应时间,有效提高cpu的性能。
40.s130,将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数
据。
41.其中,目标识别模型为优化后的识别模型。识别模型可以为任一用于进行识别的模型。
42.可选的,在将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像之前,还包括:
43.将文档图像输入目标文本检测模型,得到文本位置坐标;
44.根据文本位置坐标对文档图像进行划分,得到至少一个第一图像。
45.其中,文档图像可以为金融场景中的电子文档和扫描文件图片,包括密集长文本、倾斜图片以及表格类场景等,如信用证、提货单、存放同业合同、贸易合同以及财务报表等。文本位置坐标为将文档图像输入到目标文本检测模型,模型输出结果为文本位置坐标。
46.具体的,将文档图像输入目标文本检测模型,得到文本位置坐标的方式可以为:获取文档图像,将文档图像输入到目标文本检测模型,可得到文档图像中文本区域的四角点对应的文本位置坐标。例如可以是,将文档图像输入到目标文本检测模型,输出为文档图像中的文本区域对应的四角点对应的左上、右上、左下和右下四个位置坐标。
47.具体的,根据文本位置坐标对文档图像进行划分,得到至少一个第一图像的方式可以为:根据得到的文本位置坐标确定至少一组位置坐标,至少一组位置坐标中包括左上、右上、左下和右下四个位置坐标,根据至少一组位置坐标对文档图像进行划分,得到至少一个第一图像。
48.可选的,在将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像之后,还包括:
49.将透射变换后的至少一个第二图像从第二处理器的显存拷贝到内存中,释放第二处理器显存。
50.具体的,将透射变换后的至少一个第二图像从第二处理器的显存拷贝到内存中,释放第二处理器显存的方式可以为:将至少一个第二图像从gpu的显存拷贝至内存中,同时将gpu中的显存释放。需要说明的是,释放gpu中的显存可在下次进行文档图像识别时,gpu具有足够的存储空间。
51.可选的,在将文档图像输入目标文本检测模型,得到文本位置坐标之前,还包括:
52.获取文本检测模型的参数;
53.根据文本检测模型的参数确定文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值;
54.根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值对文本检测模型的参数进行量化,得到量化后的第一目标参数;
55.根据量化后的第一目标参数生成目标文本检测模型。
56.其中,文本检测模型可以为float32模型,也可以为任一用于进行文本检测的模型。
57.其中,文本检测模型的参数为文本检测模型中所有的权重和激活值。文本检测模
型的权重最大值为获取文本检测模型参数中的所有权重,在文本检测模型参数中的所有权重中选择权重最大数值作为文本检测模型的权重最大值;文本检测模型的权重最小值为在文本检测模型参数中的所有权重中选择权重最小数值作为文本检测模型的权重最小值;文本检测模型的激活值最大值为获取文本检测模型参数中的所有激活值,在文本检测模型参数中的所有激活值中选择激活值最大数值作为文本检测模型的激活值最大值;文本检测模型的激活值最小值为在文本检测模型参数中的所有激活值中选择激活值最小数值作为文本检测模型的激活值最小值。第一目标参数为对文本检测模型中的参数进行量化后得到的参数。
58.其中,量化是对文本检测模型的参数进行缩放,例如可以是,对float32模型进行缩放,可表示为:
59.q=r/s+z
60.其中,q表示量化后的定点值,r表示真实的浮点值,s表示缩放因子,z表示0.00浮点值对应的量化定点值。在一个具体的例子中,将float32模型的参数fp32缩放为int8,实现了4倍的参数压缩,在压缩内存的同时可以实现更快速的计算,从而有效地提高模型的性能,量化后模型中的参数可以使用低bit表示,在数据搬移时降低了带宽要求,实现了较高的端到端识别速度,能够满足较高的业务并发需求和响应的实时性需求。
61.其中,目标文本检测模型为根据文本检测模型进行参数优化后生成的模型。
62.具体的,获取文本检测模型的参数的方式可以为:获取文本检测模型中所有的权重和激活值。
63.具体的,根据文本检测模型的参数确定文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值的方式可以为:获取文本检测模型的所有权重和激活值,从文本检测模型的所有权重中选择权重最大值和权重最小值,从文本检测模型的所有激活值中选择激活值最大值和激活值最小值。
64.通过量化激活值可以减少内存占用,结合权重的量化还可以达到减少模型大小内存和占用空间,提高计算效率的效果。需要说明的是,权重是一个常量张量,动态范围是规定的,激活值的动态范围是变化的,所以必须经过数据校准,动态范围的选取决定了量化数据的分布情况,处于动态范围之外的数据将被映射成量化数据的边界点,即值域的选择直接决定了量化的误差。
65.可选的,根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值对文本检测模型的参数进行量化,得到量化后的第一目标参数,包括:
66.获取用户输入的量化类型;
67.若量化类型为对称量化,则根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定量化后的激活值和量化后的权重;
68.若量化类型为非对称量化,则根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定量化后的激活值和量化后的权重。
69.其中,量化类型可分为对称量化和非对称量化。例如可以是,图2是本发明实施例一中的一种对称量化和非对称量化的示意图,如图2所示,对称量化(symmetric quantization)可表示为fp32的0.00点被映射到了int8的0点;非对称量化(asymmetric quantization)可表示为fp32的0.00点没有映射到int8的0点。
70.其中,第一数值可以为255。偏置量可根据实际需求来调整,确保目标文本检测模型可以达到最优性能。需要说明的是,此处量化后的激活值和量化后的权重为文本检测模型中的量化后的激活值和量化后的权重。
71.需要注意的是,当用户输入的量化类型为对称量化,根据量化后的权重和量化后的激活值生成目标文本检测模型后,需对目标文本检测模型进行验证,若此模型的检测效果不佳,则调整用户输入的量化类型为非对称量化,通过调整偏置量重新确定量化后的权重和量化后的激活值,根据重新确定的量化后的权重和重新确定的量化后的激活值生成新的目标文本检测模型,提高文本检测准确率。
72.通过根据量化类型、文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定量化参数,能够降低原始数据信息的损失,提高量化算法经度。
73.可选的,根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定量化后的激活值和量化后的权重,包括:
74.根据文本检测模型的权重最大值、文本检测模型的权重最小值以及第一数值确定第一缩放因子;
75.根据文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定第二缩放因子;
76.根据文本检测模型的参数、第一缩放因子以及第二缩放因子确定量化后的激活值和量化后的权重。
77.其中,第一缩放因子为对文本检测模型进行对称量化的过程中的权重缩放因子,第二缩放因子为对文本检测模型进行对称量化的过程中的激活值缩放因子。需要说明的是,此处量化后的激活值和量化后的权重为对文本检测模型进行对称量化的过程中的量化后的激活值和量化后的权重。
78.具体的,根据文本检测模型的权重最大值、文本检测模型的权重最小值以及第一数值确定第一缩放因子的方式可以为:根据文本检测模型的权重最大值、文本检测模型的权重最小值以及第一数值进行线性缩放,计算“(文本检测模型的权重最大值-文本检测模型的权重最小值)/255”得到第一缩放因子。
79.具体的,根据文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定第二缩放因子的方式可以为:根据文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值进行线性缩放,计算“(文本检测模型的激活值最大值-文本检测模型的激活值最小值)/255”得到第二缩放因子。
80.具体的,根据文本检测模型的参数、第一缩放因子以及第二缩放因子确定量化后的激活值和量化后的权重的方式可以为:获取文本检测模型中所有权重和激活值,获取第一缩放因子以及第二缩放因子,根据第一缩放因子对文本检测模型参数中的权重进行缩
放,根据第二缩放因子对文本检测模型参数中的激活值进行缩放,得到量化后的激活值和量化后的权重。
81.可选的,根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定量化后的激活值和量化后的权重,包括:
82.根据文本检测模型的权重最大值、文本检测模型的权重最小值、第一数值以及偏置量确定第三缩放因子;
83.根据文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定第四缩放因子;
84.根据文本检测模型的参数、第三缩放因子以及第四缩放因子确定量化后的激活值和量化后的权重。
85.其中,第三缩放因子为对文本检测模型进行非对称量化的过程中的权重缩放因子,第四缩放因子为对文本检测模型进行非对称量化过程中的激活值缩放因子。需要说明的是,此处量化后的激活值和量化后的权重为文本检测模型进行非对称量化的过程中的量化后的激活值和量化后的权重。
86.具体的,根据文本检测模型的权重最大值、文本检测模型的权重最小值、第一数值以及偏置量确定第三缩放因子的方式可以为:根据文本检测模型的权重最大值、文本检测模型的权重最小值、第一数值以及偏置量进行线性缩放,计算“(文本检测模型的权重最大值-文本检测模型的权重最小值)/255+偏置量”得到第三缩放因子。
87.具体的,根据文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定第四缩放因子的方式可以为:根据文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量进行线性缩放,计算“(文本检测模型的激活值最大值-文本检测模型的激活值最小值)/255+偏置量”得到第四缩放因子。
88.具体的,根据文本检测模型的参数、第三缩放因子以及第四缩放因子确定量化后的激活值和量化后的权重的方式可以为:获取文本检测模型中所有权重和激活值,获取第三缩放因子以及第四缩放因子,根据第三缩放因子对文本检测模型参数中的权重进行缩放,根据第四缩放因子对文本检测模型参数中的激活值进行缩放,得到量化后的激活值和量化后的权重。
89.可选的,在将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据之前,还包括:
90.获取识别模型的参数;
91.根据识别模型的参数确定识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值;
92.根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值对识别模型的参数进行量化,得到量化后的第二目标参数;
93.根据量化后的第二目标参数生成目标识别模型。
94.其中,识别模型可以为任一用于进行识别的模型。
95.其中,识别模型的参数为识别模型中所有的权重和激活值。识别模型的权重最大值为获取识别模型参数中的所有权重,在识别模型参数中的所有权重中选择权重最大数值
作为识别模型的权重最大值;识别模型的权重最小值为在识别模型参数中的所有权重中选择权重最小数值作为识别模型的权重最小值;识别模型的激活值最大值为获取识别模型参数中的所有激活值,在识别模型参数中的所有激活值中选择激活值最大数值作为识别模型的激活值最大值;识别模型的激活值最小值为在识别模型参数中的所有激活值中选择激活值最小数值作为识别模型的激活值最小值。第二目标参数为对识别模型中的参数进行量化后得到的参数。
96.其中,目标识别模型为根据识别模型进行参数优化后生成的模型。
97.具体的,获取识别模型的参数的方式可以为:获取识别模型中所有的权重和激活值。
98.具体的,根据识别模型的参数确定识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值的方式可以为:获取识别模型的所有权重和激活值,从识别模型的所有权重中选择权重最大值和权重最小值,从识别模型的所有激活值中选择激活值最大值和激活值最小值。
99.可选的,根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值对识别模型的参数进行量化,得到量化后的第二目标参数,包括:
100.获取用户输入的量化类型;
101.若量化类型为对称量化,则根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值、识别模型的激活值最小值以及第一数值确定量化后的激活值和量化后的权重;
102.若量化类型为非对称量化,则根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值、识别模型的激活值最小值、第一数值以及偏置量确定量化后的激活值和量化后的权重。
103.需要说明的是,此处量化后的激活值和量化后的权重为识别模型中的量化后的激活值和量化后的权重。
104.可选的,根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值、识别模型的激活值最小值以及第一数值确定量化后的激活值和量化后的权重,包括:
105.根据识别模型的权重最大值、识别模型的权重最小值以及第一数值确定第五缩放因子;
106.根据识别模型的激活值最大值、识别模型的激活值最小值以及第一数值确定第六缩放因子;
107.根据识别模型的参数、第五缩放因子以及第六缩放因子确定量化后的激活值和量化后的权重。
108.其中,第五缩放因子为对识别模型进行对称量化的过程中的权重缩放因子,第六缩放因子为对识别模型进行对称量化的过程中的激活值缩放因子。需要说明的是,此处量化后的激活值和量化后的权重为对识别模型进行对称量化的过程中的量化后的激活值和量化后的权重。
109.具体的,根据识别模型的权重最大值、识别模型的权重最小值以及第一数值确定
第五缩放因子的方式可以为:根据识别模型的权重最大值、识别模型的权重最小值以及第一数值进行线性缩放,计算“(识别模型的权重最大值-识别模型的权重最小值)/255”得到第五缩放因子。
110.具体的,根据识别模型的激活值最大值、识别模型的激活值最小值以及第一数值确定第六缩放因子的方式可以为:根据识别模型的激活值最大值、识别模型的激活值最小值以及第一数值进行线性缩放,计算“(识别模型的权重最大值-识别模型的权重最小值)/255”得到第六缩放因子。
111.具体的,根据识别模型的参数、第五缩放因子以及第六缩放因子确定量化后的激活值和量化后的权重的方式可以为:获取识别模型中所有权重和激活值,获取第五缩放因子以及第六缩放因子,根据第五缩放因子对识别模型参数中的权重进行缩放,根据第六缩放因子对识别模型参数中的激活值进行缩放,得到量化后的激活值和量化后的权重。
112.可选的,根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值、识别模型的激活值最小值、第一数值以及偏置量确定量化后的激活值和量化后的权重,包括:
113.根据识别模型的权重最大值、识别模型的权重最小值、第一数值以及偏置量确定第七缩放因子;
114.根据识别模型的激活值最大值、识别模型的激活值最小值、第一数值以及偏置量确定第八缩放因子;
115.根据识别模型的参数、第七缩放因子以及第八缩放因子确定量化后的激活值和量化后的权重。
116.其中,第七缩放因子为对识别模型进行非对称量化的过程中的权重缩放因子,第八缩放因子为对识别模型进行非对称量化的过程中的激活值缩放因子。需要说明的是,此处量化后的激活值和量化后的权重为对识别模型进行非对称量化的过程中的量化后的激活值和量化后的权重。
117.具体的,根据识别模型的权重最大值、识别模型的权重最小值、第一数值以及偏置量确定第七缩放因子的方式可以为:根据识别模型的权重最大值、识别模型的权重最小值、第一数值以及偏置量进行线性缩放,计算“(识别模型的权重最大值-识别模型的权重最小值)/255+偏置量”得到第七缩放因子。
118.具体的,根据识别模型的激活值最大值、识别模型的激活值最小值、第一数值以及偏置量确定第八缩放因子的方式可以为:根据识别模型的激活值最大值、识别模型的激活值最小值、第一数值以及偏置量进行线性缩放,计算“(识别模型的权重最大值-识别模型的权重最小值)/255+偏置量”得到第八缩放因子。
119.具体的,根据识别模型的参数、第七缩放因子以及第八缩放因子确定量化后的激活值和量化后的权重的方式可以为:获取识别模型中所有权重和激活值,获取第七缩放因子以及第八缩放因子,根据第七缩放因子对识别模型参数中的权重进行缩放,根据第八缩放因子对识别模型参数中的激活值进行缩放,得到量化后的激活值和量化后的权重。
120.本实施例的技术方案,通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图
像,其中,所述第一图像为对文档图像进行划分得到的图像;将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据,解决了ocr服务中cpu利用率低和cpu资源浪费的问题,能够充分利用cpu和gpu的资源,提高cpu和gpu的利用率。
121.实施例二
122.图3是本发明实施例二中的一种文档图像识别装置的结构示意图。本实施例可适用于文档图像检测和识别的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供文档图像识别的功能的设备中,如图3所示,所述文档图像识别装置具体包括:矩阵拷贝模块210、图像得到模块220和文本得到模块230。
123.其中,矩阵拷贝模块210,用于通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;
124.图像得到模块220,用于将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,所述第一图像为对文档图像进行划分得到的图像;
125.文本得到模块230,用于将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据。
126.可选的,还包括:
127.位置坐标得到模块,用于将文档图像输入目标文本检测模型,得到文本位置坐标;
128.第一图像得到模块,用于根据文本位置坐标对文档图像进行划分,得到至少一个第一图像。
129.可选的,还包括:
130.显存释放模块,用于将透射变换后的至少一个第二图像从第二处理器的显存拷贝到内存中,释放第二处理器显存。
131.可选的,还包括:
132.获取文本检测模型的参数;
133.根据文本检测模型的参数确定文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值;
134.根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值以及文本检测模型的激活值最小值对文本检测模型的参数进行量化,得到量化后的第一目标参数;
135.根据量化后的第一目标参数生成目标文本检测模型。
136.可选的,还包括:
137.获取用户输入的量化类型;
138.若量化类型为对称量化,则根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定量化后的激活值和量化后的权重;
139.若量化类型为非对称量化,则根据文本检测模型的权重最大值、文本检测模型的权重最小值、文本检测模型的激活值最大值、文本检测模型的激活值最小值、第一数值以及偏置量确定量化后的激活值和量化后的权重。
140.可选的,还包括:
141.根据文本检测模型的权重最大值、文本检测模型的权重最小值以及第一数值确定第一缩放因子;
142.根据文本检测模型的激活值最大值、文本检测模型的激活值最小值以及第一数值确定第二缩放因子;
143.根据文本检测模型的参数、第一缩放因子以及第二缩放因子确定量化后的激活值和量化后的权重。
144.可选的,还包括:
145.参数获取模块,用于获取识别模型的参数;
146.数值确定模块,用于根据识别模型的参数确定识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值;
147.参数得到模块,用于根据识别模型的权重最大值、识别模型的权重最小值、识别模型的激活值最大值以及识别模型的激活值最小值对识别模型的参数进行量化,得到量化后的第二目标参数;
148.模型生成模块,用于根据量化后的第二目标参数生成目标识别模型。
149.上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
150.本实施例的技术方案,通过第一处理器获取透射变换矩阵,并将透射变换矩阵拷贝至第二处理器;将至少一个第一图像从内存拷贝到第二处理器显存中,通过第二处理器多核并行根据透射变换矩阵对第一图像进行透射变换,得到透射变换后的至少一个第二图像,其中,所述第一图像为对文档图像进行划分得到的图像;将至少一个第二图像输入目标识别模型,得到每个第二图像对应的文本数据,解决了ocr服务中cpu利用率低和cpu资源浪费的问题,能够充分利用cpu和gpu的资源,提高cpu和gpu的利用率。
151.实施例三
152.图4是本发明实施例三中的一种电子设备的结构示意图。电子设备10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
153.如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom12以及ram13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
154.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
155.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如文档图像识别方法。
156.在一些实施例中,文档图像识别方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram13并由处理器11执行时,可以执行上文描述的文档图像识别方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文档图像识别方法。
157.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
158.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
159.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
160.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
161.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据
服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
162.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
163.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
164.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。