一种图像矫正方法、装置、电子设备和存储介质与流程

文档序号:29165610发布日期:2022-03-09 02:24阅读:118来源:国知局
一种图像矫正方法、装置、电子设备和存储介质与流程

1.本公开涉及图像处理技术领域,尤其涉及一种图像矫正方法、装置、电子设备和存储介质。


背景技术:

2.随着计算机技术的不断发展,电子版文档的应用也愈加广泛,在纸质文档转为电子文档的过程中,需要借助摄像机、扫描仪、智能终端等工具进行拍摄,在拍摄或扫描的过程中,难免会出现拍摄后的或扫描后的文档图像扭曲变形的问题,不便于后续进行文字识别等操作。但是现有的图像处理方法,不能准确的检测到文档图像中文档的边界,检测精度低,也就无法准确进行矫正,同时还会出现矫正失效的情况,例如公告号为cn106156761b的方法,通过对分离出来的表格图像中每个表格单元格检测出的直线进行校正处理,实现对表格图像的检测和识别,但对于不包括单元格直线的非表格图像来说,该方法的适用性会比较差。


技术实现要素:

3.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种图像矫正方法、装置、电子设备和存储介质。
4.根据本公开的一方面,提供了一种图像矫正方法,包括:获取目标图像,并对目标图像进行归一化处理;将归一化处理后的目标图像输入到预先训练完成的神经网络模型中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块提取目标图像的特征信息,分类模块根据特征信息对目标图像进行分类,计算模块根据特征信息生成目标图像对应的第一角点坐标;若根据分类结果确定目标图像中包括文档,则获取第一角点坐标;根据第一角点坐标对目标图像进行矫正,得到矫正后的目标图像。
5.根据本公开的另一方面,提供了一种图像矫正装置,包括:第一获取单元,用于获取目标图像,并对目标图像进行归一化处理;处理单元,用于将归一化处理后的目标图像输入到预先训练好的神经网络模型中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块提取目标图像的特征信息,分类模块根据特征信息对目标图像进行分类,计算模块根据特征信息生成目标图像对应的第一角点坐标;第二获取单元,用于若根据分类结果确定目标图像中包括文档,则获取第一角点坐标;矫正单元,用于根据第一角点坐标对目标图像中的文档进行矫正,得到矫正后的目标图像。
6.根据本公开的另一方面,提供了一种电子设备,电子设备包括:
处理器;以及存储程序的存储器,其中,程序包括指令,指令在由处理器执行时使处理器执行上述的图像矫正方法。
7.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行图像矫正方法。
8.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述图像矫正方法。
9.本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开涉及一种图像矫正方法,通过获取目标图像,并对目标图像进行归一化处理,将归一化处理后的目标图像输入到预先训练完成的神经网络模型中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块提取目标图像的特征信息,分类模块根据特征信息对目标图像进行分类,计算模块根据特征信息生成目标图像对应的第一角点坐标,若根据分类结果确定目标图像中包括文档,则获取第一角点坐标,根据第一角点坐标对目标图像进行矫正,得到矫正后的目标图像。本公开能够检测图像中文档得到边界,对文档进行矫正,精度比较高,且矫正效果比较好。
附图说明
10.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
11.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
12.图1为本公开实施例提供的一种应用场景的示意图;图2为本公开实施例提供的一种神经网络模型训练方法的流程图;图3为本公开实施例提供的一种样本图像的示意图;图4为本公开实施例提供的一种神经网络模型的结构示意图;图5为本公开实施例提供的一种神经网络模型训练方法的流程图;图6为本公开实施例提供的一种图像矫正方法的流程图;图7为本公开实施例提供的文本识别装置的结构示意图;图8为本公开实施例提供的电子设备的结构示意图。
具体实施方式
13.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
14.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公
开的范围在此方面不受限制。
15.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
16.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
17.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
18.具体的,图像矫正方法可以由终端或服务器来执行。具体的,终端或服务器可以通过神经网络模型对目标图像中的文档内容进行矫正。神经网络模型的训练方法的执行主体和图像矫正方法的执行主体可以相同,也可以不同。
19.例如,在一种应用场景中,如图1所示,图1为本公开实施例提供的一种应用场景的示意图,服务器12对神经网络模型进行训练。终端11从服务器12获取训练完成的神经网络模型,终端11通过该训练完成的神经网络模型对目标图像中的文档内容进行矫正。该目标图像可以是终端11拍摄获得的。或者,该目标图像是终端11从其他设备中获取的。再或者,该目标图像是终端11对预设图像进行图像处理后得到的图像,该预设图像可以是终端11拍摄获得的,或者该预设图像可以是终端11从其他设备中获取的。此处,并不对其他设备做具体限定。
20.在另一种应用场景中,服务器12对神经网络模型进行训练。进一步,服务器12通过训练完成的神经网络模型对目标图像中的文档内容进行叫矫正。服务器12获取目标图像的方式可以类似于如上所述的终端11获取目标图像的方式,此处不再赘述。
21.在又一种应用场景中,终端11对神经网络模型进行训练。进一步,终端11通过训练完成的神经网络模型对目标图像中的文档内容进行叫矫正。
22.可以理解的是,本公开实施例提供的神经网络模型训练方法、图像矫正方法并不限于如上所述的几种可能场景。由于训练完成的神经网络模型可应用在图像矫正方法中,因此,在介绍图像矫正方法之前,下面可以先介绍一下神经网络模型训练方法。
23.下面以服务器12训练神经网络模型为例,介绍一种神经网络模型训练方法,即神经网络模型的训练过程。可以理解的是,该神经网络模型训练方法同样适用于终端11训练神经网络模型的场景中。
24.图2为本公开实施例提供的一种神经网络模型训练方法的流程图,包括如图2所示的如下步骤s210至s240:s210、获取文档图像样本以及文档图像样本的标识。
25.可理解的,终端拍摄多个文档得到多个文档图像,将多个文档图像上传至服务器,该多个文档图像作为神经网络模型的训练样本集,用于训练神经网络模型,其中,终端可以是手机,服务器为进行神经网络模型训练的平台。可理解的是,终端拍摄的文档图像中包括的文档内容完整,文档内容完整是指将整个文档拍全,也就是文档图像中包括文档内容完
整的四条边界,文档内容可以存在倾斜或透视的情况。服务器获取到多个文档图像样本后,将多个文档图像样本中每个文档图像样本进行标记,也就是将上述获取的每个内容完整的文档图像样本打上有效文档的标签,便于后续对神经网络模型的分类模块进行训练,分类模块主要进行二分类,分类结果为有效文档的图像和无效文档的图像,无效文档的图像可以理解为不包括文档内容的图像或者只包括比较少的部分文档内容的图像。
26.s220、对文档图像样本中文档的角点进行标注,得到第三角点坐标。
27.可理解的,在上述s210的基础上,服务器接收到文档图像样本后,采用标注工具对文档图像样本中文档内容的四个角点进行标注,得到4个第三角点坐标,角点可以是线段的终点,或者是曲线上局部曲率最大的点,还或者是线段的交点,下述以文档图像样本中文档内容4个边界线的4个交点坐标作为4个第三角点坐标为例,进行说明。
28.可选的,对文档图像样本中文档的角点进行标注,得到第三角点坐标,具体包括:按照顺序依次获取文档图像样本中文档的多个轮廓线;计算多个轮廓线的交点,生成至少一个第三角点坐标。
29.可理解的,上述s220中得到第三角点坐标的步骤具体包括:采用标注工具按照顺序依次获取文档图像样本中文档内容的多个轮廓线,具体的可以获取文档内容的四条轮廓线,按照顺时针方向对四条轮廓线进行标注,并区分上右下左,例如,文档内容的上轮廓线标注为红色、右轮廓线标注为绿色、下轮廓线标注为蓝色、左轮廓线标注为紫色;完成四条轮廓线的标注后,计算四条轮廓线中两条轮廓线之间的交点,生成4个第三角点坐标。
30.示例性的,参见图3,图3为本公开实施例提供的一种样本图像的示意图,图3中包括标注后的文档图像样本310,文档图像样本310中包括文档内容的4条轮廓线,分别记为上轮廓线311、右轮廓线312、下轮廓线313、左轮廓线314,4条轮廓线以不同颜色区分,图3中还包括文档内容对应的4个角点,4个角点如图3中黑色圆点所示,其中,左轮廓线314和上轮廓线311的交点记为角点1,上轮廓线311和右轮廓线312的交点记为角点2,右轮廓线312和下轮廓线313的交点记为角点3,下轮廓线313和左轮廓线314的交点记为角点4。
31.s230、根据文档图像样本和第三角点坐标进行变换,得到增广后的多个文档图像样本,增广后的多个文档图像样本中每个文档图像样本均存在对应的第三角点坐标。
32.可理解的,在上述s220的基础上,以标注的每个文档图像样本为基础,随机模拟手机拍照时的倾斜、透视梯形、光照变化、对比度变化、模糊、噪声等情况,对文档图像样本进行变换,得到海量的增广文档图像样本,同时不需要对增广后文档图像样本分别进行单独标注确定第三角点坐标,可以直接按照文档图像样本生成增广后的文档图像样本的转换规则,对文档图像样本的第三角点坐标同步进行转换,得到增广后的文档图像样本对应的第三角点坐标,也就是增广后的多个文档图像样本中每个文档图像样本均存在对应的第三角点坐标,能够减少进行增广的操作步骤。
33.可选的,上述s230中根据文档图像样本和所述第三角点坐标进行变换,得到增广后的多个文档图像样本,具体包括:根据预设变换矩阵对第三角点坐标进行变换,得到第四角点坐标;根据第三角点坐标和第四角点坐标确定预设变换矩阵的参数;根据确定参数的预设变换矩阵对文档图像样本进行变换,得到增广后的多个文档图像样本。
34.可理解的,上述s230中根据文档图像样本进行转换得到多个文档图像样本,具体包括如下步骤,根据预设变换矩阵对标记获得的第三角点坐标进行变换,得到变换后的第
四角点坐标,预设变换矩阵可以理解为透视变换矩阵,例如将4个第三角点坐标通过透视变换矩阵分别进行变换,得到4个对应的第四角点坐标。随后根据第三角点坐标和第四角点坐标确定预设变换矩阵中的参数,预设变换矩阵可以是3*3大小的矩阵,预设变换矩阵中的至少部分参数是未知的,可以通过构建第三角点坐标和第四角点坐标的关系式来确定预设变换矩阵中的未知参数。随后根据确定参数的预设变换矩阵对文档图像样本以及标记的第三角点坐标进行变换,得到增广后的多个文档图像样本以及增广后的多个文档图像样本中每个文档图像样本对应的第三角点坐标。
35.示例性的,参见图3,图3中包括根据文档图像样本310进行增广后生成的增广图像320和增广图像330,增广图像320和增广图像330均可以看作将文档图像样本310基于确定参数的预设变换矩阵进行透视变换后的图像。可理解的是,对文档图像样本310进行旋转后得到的增广图像330中还包括填充的多个像素点,也就是增广图像330中除缩放后的文档图像样本310之外的其余空白区域为填充的像素点,填充像素点以确保增广后的增广图像330和文档图像样本310具有相同的尺寸(宽高),填充的多个像素值具体可以是128或者0,可以根据用户需求自行设定填充的像素值。
36.可选的,上述根据第三角点坐标和第四角点坐标确定预设变换矩阵的参数,具体包括:根据第三角点坐标和第四角点坐标生成第一矩阵;根据第四角点坐标生成第二矩阵;根据所第一矩阵和第二矩阵确定预设变换矩阵的参数。
37.可理解的,通过下述公式(1)至(5)对变换矩阵进行说明。预设变换矩阵及其参数如公式(1)所示。
38.m = [[a, b, c],[d, e, f],
ꢀꢀꢀꢀꢀꢀ
公式(1)[g, h, 1]]其中,m表示3*3的预设变换矩阵,a至h为预设变换矩阵的未知参数,预设变换矩阵中第三行第三列的参数值为1。
[0039]
x_ = (a*x + b*y + c) / (g*x + h*y + 1)y_ = (d*x + e*y + f) / (g*x + h*y + 1)
ꢀꢀꢀꢀꢀꢀ
公式(2)其中,第三角点坐标记为(x,y),第四角点坐标记为(x_,y_),第三角点坐标基于预设变化矩阵的参数生成第四角点坐标。
[0040]
可理解的,文档图像样本的4个第三角点坐标分别记为(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3),4个第三角点坐标组成第一数组,记为src=[[x0, y0],[x1,y1],[x2,y2],[x3,y3]],转换后的4个第四角点坐标分别记为(x_0,y_0)、(x_1,y_1)、(x_2,y_2)、(x_3,y_3),转换后的4个第四角点坐标组成第二数组,记为dst=[[x_0,y_0],[x_1,y_1],[x_2,y_2],[x_3,y_3]],便于后续计算预设变换矩阵的参数。
[0041]
可理解的,根据第三角点坐标和第四角点坐标生成第一矩阵,也就是根据上述第一数组src和第二数组dst生成第一矩阵m_sd,第一矩阵如公式(3)所示。
[0042]
m_sd = [[x0, y0, 1, 0, 0, 0,
ꢀ‑
x0 * x_0,
ꢀ‑
y0 * x_0],[0, 0, 0, x0, y0, 1,
ꢀ‑
x0 * y_0,
ꢀ‑
y0 * y_0],[x1, y1, 1, 0, 0, 0,
ꢀ‑
x1 * x_1,
ꢀ‑
y1 * x_1],[0, 0, 0, x1, y1, 1,
ꢀ‑
x1 * y_1,
ꢀ‑
y1 * y_1],
[x2, y2, 1, 0, 0, 0,
ꢀ‑
x2 * x_2,
ꢀ‑
y2 * x_2],[0, 0, 0, x2, y2, 1,
ꢀ‑
x2 * y_2,
ꢀ‑
y2 * y_2],[x3, y3, 1, 0, 0, 0,
ꢀ‑
x3 * x_3,
ꢀ‑
y3 * x_3],[0, 0, 0, x3, y3, 1,
ꢀ‑
x3 * y_3,
ꢀ‑
y3 * y_3]]
ꢀꢀꢀꢀꢀ
公式(3)可理解的,根据第四角点坐标生成第二矩阵,也就是根据上述第二数组生成第二矩阵t_sd,第二矩阵如公式(4)所示。
[0043]
t_sd = [[x_0],[y_0],[x_1],[y_1],[x_2],[y_2],[x_3],[y_3]]
ꢀꢀꢀ
公式(4)可理解的,根据所第一矩阵和第二矩阵确定预设变换矩阵的参数,也就是根据上述第一矩阵m_sd和第二矩阵t_sd确定预设变换矩阵的8个参数,具体参见公式(5)。
[0044]
p_m_sd = m_sd_i * t_sd
ꢀꢀꢀ
公式(5)其中,p_m_sd为预设变换矩阵的8个参数的数组,m_sd_i为第一矩阵m_sd的逆矩阵,t_sd为第二矩阵。
[0045]
s240、根据多个文档图像样本和多个文档图像样本中每个文档图像样本对应的第三角点坐标,对神经网络模型进行训练。
[0046]
可理解的,在上述s230的基础上,将文档图像样本输入到预先构建的神经网络模型中,输出文档图像样本对应的预测分类结果和预测第三角点坐标,根据模型输出的预测分类结果和预测第三角点坐标分别与设定的该文本图像样本的标识和标记的第三角点坐标进行比对并计算损失函数,通过计算得到的损失函数的值对神经网络模型包括的每一层级的参数进行更新。
[0047]
示例性的,参见图4,图4为本公开实施例提供的一种神经网络模型的结构示意图,图4中包括特征提取模块410、分类模块420和计算模块430,特征提取模块410中包括主干网络层和池化层,主干网络层可以是残差网络,具体可以是restnet101网络,池化层可以是自适应平均池化层(adaptiveavgpool),主干网络层用于提取文档图像样本的深度特征,池化层用于过滤掉深度特征中的无用特征,无用特征可以理解为背景特征。分类模块420包括至少一个卷积层,分类模块420用于根据特征提取模块410输出的深度特征信息对文档图像样本进行分类,用以判断文档图像样本是否是包括有效文档的图像,计算模块430包括至少一个卷积层,用于根据特征提取模块410输出的深度特征信息计算文档图像样本中文档内容的角点坐标,例如图3中4个角点的坐标,便于后续根据角点坐标对文档图像样本矫正。
[0048]
本公开实施例提供的一种神经网络模型训练方法,通过对获取的文档图像样本进行转换,得到海量增广样本,随后基于海量文档图像样本对神经网络模型进行训练,训练样本充足,训练后的神经网络模型精度比较高,使得神经网络模型能够准确的完成分类以及计算角点坐标等操作,且训练的速度也比较快。
[0049]
图5为本公开实施例提供的一种神经网络模型训练方法的流程图,可选的,根据多个文档图像样本和多个文档图像样本中每个文档图像样本对应的第三角点坐标,对神经网络模型进行训练,也就是神经网络模型内部的训练过程,具体包括如图5所示的如下步骤s510至s560:s510、根据多个文档图像样本中每个文档图像样本的大小,将每个文档图像样本对应的第三角点坐标进行归一化。
[0050]
可理解的,服务器根据多个文档图像样本中每个文档图像样本的大小,也就是文
档样本图像的宽和高,将每个文档图像样本对应的第三角点坐标进行归一化,参见下述公式(6)。
[0051]
x1 = float(x)/im_wy1 = float(y)/im_h
ꢀꢀꢀꢀꢀ
公式(6)其中,第三角点坐标记为(x,y),归一化后的第三角点坐标记为(x1,y1),文档样本图像的宽记为im_w、高记为im_h。
[0052]
s520、将多个文档图像样本中每个文档图像样本归一化到预设宽高。
[0053]
可理解的,在上述s510的基础上,服务器根据文本图像样本进行增广生成海量文本图像样本后,将海量文本图像样本进行归一化,可以将海量图像样本的大小进行缩放或者缩小到同一尺寸,例如归一化到512*512。
[0054]
s530、特征提取模块提取归一化后的文档图像样本的特征信息。
[0055]
可理解的,在上述s520的基础上,神经网络模型中的特征提取模块提取归一化后的文档图像样本的特征信息,也就是上述512*512大小的文档图像样本的特征信息,该特征信息主要包括文档内容的特征信息,最大限度的去除了文档图像样本中背景的特征信息,能够有效提高神经网络模型的准确率。例如,输入到神经网络模型中的文本图像样本数量为n,每个文本图像样本的通道数为c、宽为w、高为h,例如rgb为3通道,特征提取模块中的主干网络层对输入的文本图像样本进行特征提取,输出n个h*w*1024的特征信息,h*w为特征提取模块对文本图像样本进行提取后输出的特征图的大小,随后将n个h*w*1024的特征信息输入到池化层,池化层对h*w大小的特征图进行压缩,输出n个5*5*1024的特征信息,压缩后的特征图的大小为5*5,其中池化层的卷积核大小可以设置为(5,5)。
[0056]
s540、分类模块根据特征信息对文档图像样本进行分类,得到预测标识,并根据预测标识和文档图像样本的标识,基于第一损失函数计算第一损失值。
[0057]
可理解的,在上述s530的基础上,神经网络模型中分类模块根据特征提取模块输出的特征信息进行分类,得到预测标识,也就是分类模块根据特征提取模块输出的n个5*5*1024的特征信息进行分类,得到n个预测标识,也就是得到每个文本图像样本对应的预测标识,预测标识可以是包括文档的图像或者不包括文档的图像;分类模块包括卷积层,卷积层的尺寸为5*5,分类模块输出的n个预测标识的大小为n个1*1*1,也就是只输出一个分类结果。得到预测识别后,将该文档图像的预测标识以及预先设定的标识作为第一损失函数的输入计算第一损失值,第一损失函数为二分类交叉熵损失函数。
[0058]
s550、计算模块根据特征信息计算文档图像样本的预测角点坐标,并根据预测角点坐标和第三角点坐标,基于第二损失函数计算第二损失值。
[0059]
可理解的,在上述s530的基础上,神经网络模型中的计算模块根据特征提取模块输出的特征信息计算文档图像样本中文档内容的4个预测角点坐标,也就是计算模块根据特征提取模块输出的n个5*5*1024的特征信息计算角点坐标,得到n个文档图像样本分别对应的预测角点坐标,也就是得到每个文本图像样本对应的4个预测角点坐标;计算模块中包括卷积层,卷积层的尺寸为5*5,计算模块输出的每个文档图像样本对应的预测角点坐标的大小为1*1*8,大小为1*1,通道数为8。确定每个文档图像样本对应的预测角点坐标后,将该文档图像样本对应的预测角点坐标和第三角点坐标作为第二损失函数的输入,计算第二损失值,第二损失函数为均方损失函数。
[0060]
s560、根据第一损失值和第二损失值更新神经网络模型的参数。
[0061]
可理解的,在上述s540和s550的基础上,根据第一损失值和第二损失值更新神经网络模型的参数,也就是更新神经网络模型中特征提取模块、分类模块和计算模块的网络参数。
[0062]
本公开实施例提供了一种神经网络模型训练方法,获取到海量增广图像后,对海量增广图像的大小以及第三角点坐标进行归一化,便于后续计算损失值,将归一化后的海量增广图像输入到神经网络模型中,分别计算分类模块和计算模块对应的损失值,来更新神经网络模型中各层级的网络参数,能够提高神经网络模型中每个模块的精确度,进而提高整个神经网络模型的精确度,且模型训练效果比较好。
[0063]
在上述实施例的基础上,图6为本公开实施例提供的一种图像矫正方法的流程图,也就是对训练完成的神经网络模型进行应用的流程,以终端拍摄图像并上传至服务器进行矫正为例进行说明,具体包括如图6所示的如下步骤s610至s640:s610、获取目标图像,并对目标图像进行归一化处理。
[0064]
可理解的,终端拍摄文档生成目标图像,随后将目标图像传输至服务器,服务器接收目标图像并对目标图像进行归一化处理,归一化处理是指将目标图像的大小归一化到训练神经网络模型时作为样本的文档图像样本的大小,例如,将目标图像的大小归一化到512*512。
[0065]
s620、将归一化处理后的目标图像输入到预先训练完成的神经网络模型中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块提取目标图像的特征信息,分类模块根据特征信息对目标图像进行分类,计算模块根据特征信息生成目标图像对应的第一角点坐标。
[0066]
可理解的,在上述s610的基础上,将归一化处理后的目标图像输入到预先训练完成的神经网络模型中,神经网络模型会输出针对目标图像的分类结果和目标图像对应的第一角点坐标。其中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块用于提取目标图像中关于文档的特征信息,分类模块用于根据特征信息对目标图像进行分类,随后根据分类结果确定该目标图像中是否包括有效的文档,计算模块用于根据特征信息生成目标图像对应的第一角点坐标,第一角点坐标可能是无效的坐标,分类模块和计算模块可以同时进行。
[0067]
s630、若根据分类结果确定目标图像中包括文档,则获取第一角点坐标。
[0068]
可理解的,在上述s620的基础上,神经网络模型输出目标图像对应的分类结果后,根据分类结果判断目标图像中是否包括有效文档,有效文档可以理解为包括完整的文档或者包括大部分的文档,有效文档的范围可以根据用户需求,在训练神经网络模型时,自行设置文档图像样本的标签,分类结果可以是文字或者数字,例如输出的分类结果为1,则说明目标图像中包括有效文档,输出的分类结果为0,则说明目标图像中不包括有效文档。若根据分类结果确定目标图像中包括文档,则获取模型输出的第一角点坐标,若根据分类结果确定目标图像中不包括文档,也就是目标图像不存在需要矫正的文档,则直接结束矫正流程。
[0069]
s640、根据第一角点坐标对目标图像进行矫正,得到矫正后的目标图像。
[0070]
可选的,上述s640中根据第一角点坐标对目标图像进行矫正,得到矫正后的目标
图像,具体包括:根据目标图像的大小和第一角点坐标,得到第二角点坐标,基于第二角点坐标对目标图像进行矫正,得到矫正后的目标图像。
[0071]
可理解的,在上述s630的基础上,根据目标图像的大小和第一角点坐标,得到第二角点坐标,也就是将模型输出的第一角点坐标映射到原图(目标图像)上,由上述神经网络模型的训练过程可知,神经网络模型输出的第一角点坐标是归一化后的目标图像对应的,因此要将基于归一化后对的目标图像得到的第一角点坐标转换为未归一化的目标图像上的角点坐标,也就是将上述模型输出的第一角点坐标(x1,y1)映射为第二角点坐标(x,y),映射公式参见下述公式(7)。确定第二角点坐标后,基于第二角点坐标对目标图像中的所有像素点进行逆变换,得到矫正后的目标图像,例如图3中340所示的矫正后的图像,矫正后的图像340中文档没有扭曲或倾斜的情况。
[0072]
x = int(x1 * im_w)y = int(y1 * im_h)
ꢀꢀꢀ
公式(7)其中,第二角点坐标记为(x,y),第一角点坐标记为(x1,y1),目标图像的宽记为im_w,高记为im_h。
[0073]
可理解的,在上述s640的基础上,得到矫正后的目标图像后,根据第一角点坐标对矫正后的目标图像进行分割,得到文档有效区域图,随后可以对文档有效区域图进行识别,得到字符识别结果,字符识别结果的准确率比较高,且字符识别的速度也比较快。
[0074]
本公开提供的一种图像矫正方法,将获取的目标图像归一化后输入到神经网络模型中,神经网络模型输出针对目标图像的分类结果和第一角点坐标,随后根据分类结果判断目标图像中是否包括有效的文档,在对目标图像进行矫正之前,优先确定目标图像中是否包括有效文档,能够避免出现目标图像中不包括文档还要对目标图像进行矫正的情况,方法比较灵活,还能有效减少资源损耗,若根据分类结果确定目标图像中包括有效文档,则获取第一角点坐标并对目标图像进行矫正,若根据分类结果确定目标图像中不包括有效文档,则直接结束矫正流程。本公开提供的矫正方法,精度比较高,矫正速度比较快,且方法也比较灵活。
[0075]
图7为本公开实施例提供的图像矫正装置的结构示意图。本公开实施例提供的图像矫正装置可以执行图像处理方法实施例提供的处理流程,如图7所示,图像矫正装置700包括:第一获取单元710,用于获取目标图像,并对目标图像进行归一化处理;处理单元720,用于将归一化处理后的目标图像输入到预先训练好的神经网络模型中,神经网络模型包括特征提取模块、分类模块和计算模块,特征提取模块提取目标图像的特征信息,分类模块根据特征信息对目标图像进行分类,计算模块根据特征信息生成目标图像对应的第一角点坐标;第二获取单元730,用于若根据分类结果确定目标图像中包括文档,则获取第一角点坐标;矫正单元740,用于根据第一角点坐标对目标图像中的文档进行矫正,得到矫正后的目标图像。
[0076]
可选的,矫正单元740中根据第一角点坐标对目标图像进行矫正,得到矫正后的目标图像,具体用于:
根据目标图像的大小和第一角点坐标,得到第二角点坐标;基于第二角点坐标对目标图像进行逆变换,得到矫正后的目标图像。
[0077]
可选的,装置700中还包括训练单元,训练单元具体用于:获取文档图像样本以及文档图像样本的标识;对文档图像样本中文档的角点进行标注,得到第三角点坐标;根据文档图像样本和第三角点坐标进行变换,得到增广后的多个文档图像样本,增广后的多个文档图像样本中每个文档图像样本均存在对应的第三角点坐标;根据多个文档图像样本和多个文档图像样本中每个文档图像样本对应的第三角点坐标,对神经网络模型进行训练。
[0078]
可选的,训练单元中对文档图像样本中文档的角点进行标注,得到第三角点坐标,具体用于:按照顺序依次获取文档图像样本中文档的多个轮廓线;计算多个轮廓线的交点,生成至少一个第三角点坐标。
[0079]
可选的,训练单元中根据文档图像样本和第三角点坐标进行变换,得到增广后的多个文档图像样本,具体用于:根据预设变换矩阵对第三角点坐标进行变换,得到第四角点坐标;根据第三角点坐标和第四角点坐标确定预设变换矩阵的参数;根据确定参数的预设变换矩阵对文档图像样本进行变换,得到增广后的多个文档图像样本。
[0080]
可选的,训练单元根据第三角点坐标和第四角点坐标确定预设变换矩阵的参数,具体用于:根据第三角点坐标和第四角点坐标生成第一矩阵;根据第四角点坐标生成第二矩阵;根据第一矩阵和第二矩阵确定预设变换矩阵的参数。
[0081]
可选的,训练单元中根据多个文档图像样本和多个文档图像样本中每个文档图像样本对应的第三角点坐标,对神经网络模型进行训练,具体用于:根据多个文档图像样本中每个文档图像样本的大小,将每个文档图像样本对应的第三角点坐标进行归一化;将多个文档图像样本中每个文档图像样本归一化到预设宽高;特征提取模块提取归一化后的文档图像样本的特征信息;分类模块根据特征信息对文档图像样本进行分类,得到预测标识,并根据预测标识和文档图像样本的标识,基于第一损失函数计算第一损失值;计算模块根据特征信息计算文档图像样本的预测角点坐标,并根据预测角点坐标和第三角点坐标,基于第二损失函数计算第二损失值;根据第一损失值和第二损失值更新神经网络模型的参数。
[0082]
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0083]
本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。存储器存储有能够被至少一个处理器执行的计算机程序,计
算机程序在被至少一个处理器执行时用于使电子设备执行根据本公开实施例的方法。
[0084]
本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行根据本公开实施例的方法。
[0085]
参考图8,现将描述可以作为本公开的服务器或客户端的电子设备800的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0086]
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0087]
电子设备800中的多个部件连接至i/o接口805,包括:输入单元806、输出单元807、存储单元808以及通信单元809。输入单元806可以是能向电子设备800输入信息的任何类型的设备,输入单元806可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元807可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元804可以包括但不限于磁盘、光盘。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
[0088]
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理。例如,在一些实施例中,文本识别方法或识别网络的训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到电子设备800上。在一些实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文本识别方法或识别网络的训练方法。
[0089]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0090]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供
指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0091]
如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0092]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0093]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0094]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0095]
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1