图像矫正模型的训练方法、图像矫正方法、设备及存储介质与流程

文档序号:32405773发布日期:2022-12-02 20:26阅读:37来源:国知局
图像矫正模型的训练方法、图像矫正方法、设备及存储介质与流程

1.本技术涉及图像矫正领域,尤其涉及一种图像矫正模型的训练方法、图像矫正方法、计算机设备及存储介质。


背景技术:

2.随着科技的不断发展,人脸识别技术在社会中也得到了广泛的应用,例如安防领域。但由于采集人脸的设备的设置位置通常是固定的,而行人的行走轨迹和行人的身体方向均是不固定的,这使得采集得到人脸图像往往会存在一定的倾斜或旋转,因此,就需要先对这些存在倾斜或旋转的人脸图像进行图像矫正,以保证人脸识别的准确度。目前,现有技术中在进行图像矫正时,通常是对人脸图像中的关键点进行标注,然后利用这些有标注的图像对神经网络进行训练。但这种训练方式需要大量的标注数据,标注成本高且容易引入误差,导致最终训练得到的神经网络的准确度不高。


技术实现要素:

3.本技术提供了一种图像矫正模型的训练方法、图像矫正方法、计算机设备及存储介质,以降低图像矫正模型的训练成本并提高得到的图像矫正模型准确度。
4.第一方面,本技术提供了一种图像矫正模型的训练方法,所述方法包括:
5.获取训练数据,所述训练数据包括训练图像和所述训练图像对应的旋转图像;
6.将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵;
7.基于所述仿射变换矩阵对所述旋转图像进行仿射变换,并将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像;
8.计算所述矫正图像和所述训练图像之间的损失函数值,并根据所述损失函数值对所述预设的矫正网络和所述采样网络进行迭代训练,并在训练完成时将所述预设的矫正网络和所述采样网络共同作为图像矫正模型。
9.第二方面,本技术还提供了一种图像矫正方法,所述方法包括:
10.获取待矫正图像;
11.将所述待矫正图像输入至预先训练的图像矫正模型中,得到矫正图像,其中,所述预先训练的图像矫正模型为采用如第一方面中所述的图像矫正模型的训练方法训练得到的。
12.第三方面,本技术还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如第一方面所述的图像矫正模型的训练方法和/或如第二方面所述的图像矫正方法。
13.第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如第一方面所述的
图像矫正模型的训练方法和/或如第二方面所述的图像矫正方法。
14.本技术公开了一种图像矫正模型的训练方法、图像矫正方法、计算机设备及存储介质,将训练图像和训练图像对应的旋转图像作为图像矫正模型的训练数据,在训练图像矫正模型时减少了已标注数据的数量,从而能够降低对已标注数据的依赖性,降低图像矫正模型的训练成本,也能够提高训练得到的图像矫正模型的准确率。另外,基于仿射变换矩阵和采样网络得到矫正图像,然后根据矫正图像和训练图像对预设的矫正网络和采样网络进行迭代训练,并在训练完成后将采样网络和预设的矫正网络共同作为图像矫正模型,将采样网络也作为图像矫正模型的一部分参与图像矫正模型的训练,利用矫正图像来对图像矫正模型进行无监督的训练,使得在降低标注成本的情况下也能够保证训练得到的图像矫正模型的准确率。
附图说明
15.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本技术实施例提供的一种图像矫正模型的训练方法的示意流程图;
17.图2为本技术实施例提供的对旋转图像进行仿射变换的步骤示意图;
18.图3为本技术实施例提供的进行图像采样的步骤示意图;
19.图4为本技术实施例提供的一种图像矫正方法的示意流程图;
20.图5为本技术实施例提供的一种图像矫正模型的训练装置的示意性框图;
21.图6是本技术实施例提供的一种图像矫正装置的示意性框图;
22.图7为本技术实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
25.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
26.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
27.还可以理解的是,在本技术的具体实施方式中,涉及到人脸等相关的数据,当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
28.本技术的实施例提供了一种图像矫正模型的训练方法、图像矫正方法、计算机设备及存储介质。使用图像矫正模型的训练方法得到的图像矫正模型可用于对采集到的人脸图像进行图像矫正,并提高得到的矫正图像的准确率,以便于在后续进行人脸识别时,提高人脸识别的识别成功率和准确率。
29.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
30.请参阅图1,图1为本技术实施例提供的一种图像矫正模型的训练方法的示意流程图。该图像矫正模型的训练方法通过模拟训练数据的方式对图像矫正模型进行迭代训练,能够降低训练成本并且提高训练得到的图像矫正模型的准确度。
31.如图1所示,该图像矫正模型的训练方法,具体包括:步骤s101至步骤 s105。
32.步骤s101、获取训练数据,所述训练数据包括训练图像和所述训练图像对应的旋转图像。
33.获取训练数据,训练数据用于训练图像矫正模型,训练数据中包括训练图像和训练图像对应的旋转图像。其中,旋转图像是由训练图像旋转预设角度后得到的。
34.在一实施例中,在步骤s101之前,所述方法还可以包括以下步骤:获取训练图像,并对所述训练图像进行旋转,得到所述训练图像对应的旋转图像。
35.也就是说,可以预先对训练图像旋转一定角度得到旋转图像,在获取训练数据时,可以直接获取训练图像、训练图像对应的旋转图像和训练图像对应的旋转角度。在具体实施过程中,可以通过将一个不同的训练图像进行不同角度的旋转的方式,得到多个旋转图像,从而增加训练数据的数量。另外,对于不同的训练图像,在进行旋转时的旋转角度可以各不相同也可以具有相同的旋转角度。
36.在具体实施过程中,可以根据在业务场景中筛选出大量正脸的图片作为训练图像,其中,训练图像包括没有带明显角度旋转的图像,然后通过人为引入随机旋转角度的方式,产生大量用于训练的旋转图像。
37.由于在训练图像矫正模型时,若使用的训练数据为具有标注的人脸图像和对应的关键点,那么会需要大量的已标注数据来进行网络训练,使得训练数据的获取成本较高,并且图像矫正模型的准确率也依赖于已标注数据的准确性,因此,本技术中通过对训练图像进行旋转,利用旋转得到的旋转图像参与图像矫正模型的训练,与获取人为标注的包括关键点的数据作为训练数据的方案相比,这种生成旋转图像的模拟生成训练数据的方式不需要预先对已发生旋转的图像进行人为标注,而是可以自行控制旋转角度,一方面能够丰富训练数据,降低训练过程中对人为标注数据的依赖性,降低训练数据的获取成本,另一方面也能够减少人为标注数据过程中的误差,从而进一步的提高训练得到的图像矫正模型的准确度。
38.步骤s102、将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵。
39.将旋转图像输入至预设的矫正网络中,得到旋转图像对应的仿射变换矩阵。其中,仿射变换矩阵也即预设的矫正网络输出的旋转图像对应的仿射变换矩阵。该仿射变换矩阵可以是一个两行三列的矩阵,其中包括了纠正人脸图像所需的信息,包括旋转,平移,缩放等信息。仿射变换矩阵可以表示为:
40.θ=f
loc
(u)
41.其中,u是输入的图片,且θ则为仿射变换矩阵。仿射变换矩阵的形状是2*3,因此,预设的矫正网络可以看作是六个节点的回归器,进而可以将θ表示为:
[0042][0043]
另外,在一实施例中,预设的矫正网络可以是基于少量的有标注的数据来训练得到的预训练的矫正网络,使用少量有标注数据来对矫正网络进行有监督的预训练,能够提高图像矫正模型的训练效率。
[0044]
在一实施方式中,所述方法还可以包括以下步骤:获取样本数据,所述样本数据包括样本图像和所述样本图像对应的关键点;将所述样本图像输入至卷积神经网络,得到输出仿射矩阵;基于所述样本图像对应的关键点和预设定位点确定监督仿射矩阵;计算所述输出仿射矩阵和所述监督仿射矩阵之间的损失函数值,并根据所述损失函数值对所述卷积神经网络进行预训练,得到预训练的矫正网络。
[0045]
获取样本数据,其中,样本数据是指具有标注的样本图像,包括样本图像和标注出的样本图像中的关键点。在具体实施过程中,样本数据可以是训练数据中的有标注数据,也可以是训练数据之外的新数据。然后将样本图像输入至卷积神经网络中,得到卷积神经网络的输出,也即输出仿射矩阵。
[0046]
再基于样本图像对应的关键点和预设的定位点确定出监督仿射矩阵。其中,预设的定位点是指预先设置好的具有确定坐标位置的点,每一个关键点都可以对应一个预设定位点。在具体实施过程中,通过设置预设定位点,可以将不同图像的同一位置的关键点被矫正到一个固定的位置,例如,人脸图像中的眼睛、嘴巴的位置坐标总是在某一固定点。
[0047]
在得到监督仿射矩阵后,计算输出仿射矩阵和监督仿射矩阵的损失值,并根据计算出的损失函数值对卷积神经网络进行迭代训练,以得到预训练的矫正网络。
[0048]
在具体实施过程中,可以使用平均绝对值误差(mae)损失函数对卷积神经网络进行迭代训练。例如,由于输出仿射矩阵和监督仿射矩阵中都包括六个数值,因此,可以将输出仿射矩阵和监督仿射矩阵中对应位置的数值相减并求其绝对值,再将绝对值进行相加后进行平均即可得到输出仿射矩阵和监督仿射矩阵之间的损失函数值。
[0049]
通过输出仿射矩阵和监督仿射矩阵之间的损失函数值不断的对卷积神经网络的参数进行调整,以使卷积神经网络所输出的输出仿射矩阵能够更加接近于监督仿射矩阵,直至卷积神经网络的损失函数的损失值达到预设值,此时卷积神经网络收敛,可以将该收敛的卷积神经网络作为预训练的矫正网络。利用输出仿射矩阵和监督仿射矩阵之间的损失函数值,以矩阵的方式对卷积神经网络进行有监督的训练,能够较快的得到预设的矫正网络,从而提高图像矫正模型的训练速度。
[0050]
在另一实施方式中,所述方法还可以包括以下步骤:获取训练样本数据,所述训练样本数据包括训练样本图像对应的旋转样本图像和所述训练样本图像对应的旋转角度;将所述旋转样本图像输入至卷积神经网络,得到所述旋转样本图像对应的输出仿射矩阵;根据所述旋转样本图像和所述旋转样本图像对应的旋转角度确定监督仿射矩阵;计算所述输出仿射矩阵和所述监督仿射矩阵之间的损失函数值,并根据所述损失函数值对所述卷积神
经网络进行预训练,得到预训练的矫正网络。
[0051]
获取训练样本数据,训练样本数据用于对卷积神经网络进行预训练,训练样本数据中包括训练样本图像对应的旋转样本图像和训练样本图像对应的旋转角度。其中,旋转样本图像是由训练样本图像旋转预设角度后得到的,例如,训练样本图像顺时针旋转15
°
后得到旋转样本图像,那么该训练样本图像对应的旋转角度即为15
°
。在具体实施过程中,训练样本数据可以是在对预设的矫正网络和采样网络进行迭代训练所使用的训练数据,从而能够减少在图像矫正模型的训练过程中所需的样本量,进而降低图像矫正模型的训练成本。
[0052]
将旋转样本图像输入至卷积神经网络中,得到旋转样本图像对应的输出仿射矩阵。由于旋转样本图像是由训练样本图像经过一定角度的旋转得到的,也即是说,旋转样本图像对应的旋转角度是已知的,由于对图片的旋转,相当于对图片的图片矩阵乘以一个仿射矩阵,该仿射矩阵与旋转角度有关,因此,在已知旋转样本图像对应的旋转角度的情况下,可以基于旋转样本图像和旋转样本图像对应的旋转角度,直接计算出该旋转图像所对应的监督仿射矩阵。
[0053]
在得到监督仿射矩阵后,计算输出仿射矩阵和监督仿射矩阵的损失值,并根据计算出的损失函数值对卷积神经网络进行迭代训练,以得到预训练的矫正网络。
[0054]
在具体实施过程中,可以使用平均绝对值误差(mae)损失函数对卷积神经网络进行迭代训练。通过输出仿射矩阵和监督仿射矩阵之间的损失函数值不断的对卷积神经网络的参数进行调整,以使卷积神经网络所输出的输出仿射矩阵能够更加接近于监督仿射矩阵,直至卷积神经网络的损失函数的损失值达到预设值,此时卷积神经网络收敛,可以将该收敛的卷积神经网络作为预训练的矫正网络。
[0055]
在具体实施过程中,由于最终生成的图像矫正模型是用于进行人脸图像的矫正,往往是进行人脸识别的前置任务。因此图像矫正模型应当尽量做到参数量少,且运行速度快,才能提高人脸识别的识别速度。例如卷积神经网络可以选择具有mobilenet的网络结构的cnn网络。
[0056]
在一实施例中,在所述将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵的步骤之前,所述方法还可以包括如下步骤:对所述旋转图像进行图像预处理,所述图像预处理包括尺寸调整和/或图像增强。
[0057]
对旋转图像进行图像预处理,其中,图像预处理包括尺寸调整,也即将旋转图像的尺寸调整到固定的大小,另外图像预处理还可以包括图像增强,图像增强是为了使图像更加清晰。
[0058]
在具体实施过程中,可以对旋转图像进行图像预处理,也可以是对训练图像进行图像预处理,在对训练图像进行图像预处理后,得到的旋转图像就是经过预处理后的图像,也就可以不对旋转图像进行图像预处理。
[0059]
步骤s103、基于所述仿射变换矩阵对所述旋转图像进行仿射变换,并将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像。
[0060]
基于仿射变换矩阵对旋转图像进行仿射变换,得到变换数据,其中,变换数据包括旋转图像中每个像素点经过仿射变换后的映射坐标。然后将变换数据输入至采样网络中进行图像采样,即可得到与旋转图像对应的矫正图像。其中,图像采样可以是差分图像采样,
是指对每个像素点经仿射变换求得的像素位置值进行插值取整,得到对应的实际采样坐标,最后根据实际采样坐标在旋转图像中对像素点进行采样,也即是说,对于矫正图像中的每一个像素位置,都在旋转图像中寻找对应位置的像素值进行填充。
[0061]
在一实施例中,请参阅图2,为本技术实施例提供的对旋转图像进行仿射变换的步骤示意图。如图2中所示,所述基于所述仿射变换矩阵对所述旋转图像进行仿射变换的步骤可以包括:步骤s1031、获取所述旋转图像中每个像素点的像素坐标;步骤s1032、基于所述仿射变换矩阵分别对每个所述像素点的像素坐标进行映射,得到每个所述像素点的映射坐标。
[0062]
首先获取旋转图像中一个像素点的像素坐标,可以记为在经过仿射变换矩阵θ后,该像素点对应的映射坐标变为具体仿射变换的过程为:
[0063][0064]
对旋转图像中的所有像素点都按照上述方式进行坐标映射,即可得到每个像素点对应的映射坐标。
[0065]
在一实施例中,所述将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像的步骤可以包括:
[0066]
当所述像素点的映射坐标不是整数时,将所述像素点的映射坐标输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像;当所述像素点的映射坐标是整数时,根据所述映射坐标在所述旋转图像中获取与所述映射坐标对应的像素点进行像素点填充,以得到矫正图像。
[0067]
通常情况下,经过仿射变换矩阵所计算出的像素点所对应的映射坐标的数值是浮点值而非整数值,因此,为了得到矫正图像,还需要对这些映射坐标不是整数的坐标进行插值取整,才能够进行像素点填充。
[0068]
在具体实施过程中,在得到每一个像素点对应的映射坐标后,判断像素点对应的映射坐标是否为整数,若像素点对应的映射坐标为整数,此时也就是说像素点对应的映射坐标刚好对应旋转图像中的某些空间位置,那么可以直接根据像素点的映射坐标在旋转图像中获取与采样坐标对应的像素点进行像素点填充。但若像素点对应的映射坐标不是整数,则说明无法将映射坐标与旋转图像中的空间位置进行直接对应,此时需要将像素点的映射坐标输入至采样网络进行图像采样,并在所有的像素点都完成像素点填充后,得到旋转图像对应的矫正图像。
[0069]
在一实施例中,请参阅图3,为本技术实施例提供的进行图像采样的步骤示意图。如图3中所示,所述将所述像素点的映射坐标输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像的步骤可以包括:
[0070]
步骤s1033、对所述像素点的映射坐标进行插值取整,得到所述像素点对应的采样坐标;步骤s1034、根据所述采样坐标在所述旋转图像中获取与所述采样坐标对应的像素点进行像素点填充,得到矫正图像。
[0071]
对像素点的映射坐标进行插值取整,在具体实施过程中,可以使用多种方式进行
插值取整,例如双线性插值和最近邻插值。其中,双线性插值就是找出距离所求坐标最近的四个整数点,根据距离权重求和,距离越近权重越大。其中,插值取整的过程可以为:
[0072][0073]
其中,表示采样函数,表示采样函数参数,为旋转图像在(n,m,c)处的值,v
ic
表示矫正图像在的值。
[0074]
在得到采样坐标后,根据采样坐标在旋转图像中的对应位置采样像素点,然后将获取到的该像素点进行像素点填充,直至遍历完成旋转图像中的所有像素点之后,将经过像素点填充得到的图像作为矫正图像。
[0075]
步骤s104、计算所述矫正图像和所述训练图像之间的损失函数值,并根据所述损失函数值对所述预设的矫正网络和所述采样网络进行迭代训练,并在训练完成时将所述预设的矫正网络和所述采样网络共同作为图像矫正模型。
[0076]
在得到矫正图像后,利用损失函数计算矫正图像和训练图像之间的损失函数值,在具体实施过程中,损失函数可以是平均平方误差(mse)损失函数。并根据计算出的损失函数值对预设的矫正网络和采样网络进行迭代训练。
[0077]
在具体实施过程中,由于采样网络是可导的且满足反向传播条件,因此其可以和预设的矫正网络一起端对端的进行训练,也即是说,将采样网络作为图像矫正模型中的一个网络层参与预设的矫正网络的训练。
[0078]
其中,在对预设的矫正网络和采样网络进行迭代训练时,可以是将预设的矫正网络和采样网络共同训练,也可以是利用固定参数的采样网络对预设的矫正网络进行迭代训练。
[0079]
当对预设的矫正网络和采样网络共同训练时,基于损失函数计算矫正图像和训练图像之间的损失函数值,基于损失函数值分别调整采样网络中的采样参数和预设的矫正网络中网络参数的权重值,以使得图像矫正模型所输出的矫正图像能够更大程度的接近于训练图像,从而提高图像矫正模型进行图像矫正的准确率。在具体实施过程中,可以优先调整预设的矫正网络中网络参数的权重值,在预设的矫正网络中网络参数的权重值调整合适后,再适当的对采样网络中的采样参数进行调整。
[0080]
当采样网络的参数固定时,基于损失函数计算矫正图像和训练图像之间的损失函数值,此时可以根据计算出的损失函数值调整预设的矫正网络中的网络参数的权重值,使预设的矫正网络所输出的仿射变换矩阵更为准确。并且在训练完成后将训练好的预设的矫正网络和采样网络共同作为图像矫正模型,参与图像的纠正。在具体实施过程中,例如可以采用随机梯度下降法、梯度下降法、牛顿法、拟牛顿法、共轭梯度法等方式来对预设的矫正网络中参数的权重值进行调整。
[0081]
在使用平均平方误差损失函数计算矫正图像和训练图像之间的损失函数值时,可以将矫正图像和训练图像中每个像素点位置的距离并求其距离的平方,再将平方进行求和后平均即可得到矫正图像和训练图像之间的损失函数值。当矫正图像和训练图像之间的损失函数值达到预设值或达到最小值时,可认为此时预设的矫正网络的训练完成。
[0082]
通过采样网络的输出,利用矫正图像和训练图像对预设的矫正网络和采样网络进
行迭代训练,能够提高预设的矫正网络所输出的仿射变换矩阵的准确率,从而综合提高整个图像矫正模型所输出矫正图像的正确率和准确率。
[0083]
上述实施例提供的图像矫正模型的训练方法,将训练图像和训练图像对应的旋转图像作为图像矫正模型的训练数据,在训练图像矫正模型时减少了已标注数据的数量,从而能够降低对已标注数据的依赖性,降低图像矫正模型的训练成本,也能够提高训练得到的图像矫正模型的准确率。另外,基于仿射变换矩阵和采样网络得到矫正图像,然后根据矫正图像和训练图像对预设的矫正网络和采样网络进行迭代训练,并在训练完成后将采样网络和预设的矫正网络共同作为图像矫正模型,将采样网络也作为图像矫正模型的一部分参与图像矫正模型的训练,利用矫正图像来对图像矫正模型进行无监督的训练,使得在降低标注成本的情况下也能够保证训练得到的图像矫正模型的准确率。
[0084]
请参阅图4,图4是本技术实施例提供的一种图像矫正方法的步骤示意图。如图4中所示,该图像矫正方法包括步骤s201和步骤s202。
[0085]
步骤s201、获取待矫正图像。
[0086]
在进行图像矫正前,可以对获取到的图像进行图像预处理,得到待矫正图像。其中,图像预处理包括修改图像的尺寸大小,使图像调整为预设尺寸,以保证进行图像矫正所得到的矫正图像的准确度。
[0087]
步骤s202、将所述待矫正图像输入至预先训练的图像矫正模型中,得到矫正图像,其中,所述预先训练的图像矫正模型为采用上述的图像矫正模型的训练方法训练得到的。
[0088]
将待矫正图像输入至采用前述图像矫正模型的训练方法训练的图像矫正模型中,即可得到待矫正图像所对应的矫正图像。
[0089]
在具体实施过程中,在待矫正图像输入至预先训练的图像矫正模型后,经过预先训练的图像矫正模型中的矫正网络,输出该待矫正图像所对应的仿射变换矩阵,然后利用该仿射变换矩阵对待矫正图像进行仿射变换,得到待矫正图像对应的变换数据,其中,变换数据中包括待矫正图像中每个像素点经过仿射变换后的映射坐标。然后将待矫正图像对应的变换数据输入至采样网络中进行图像采样,并将经过图像采样后生成的矫正图像作为该预先训练的图像矫正模型的输出,从而得到该待矫正图像所对应的矫正图像。
[0090]
上述实施例提供的图像矫正方法利用预先训练的图像矫正模型对待矫正图像进行图像矫正,能够对图像进行高准确率的图像矫正,从而在后续进行人脸识别或其他动作时,能够提高识别的成功率和准确率。
[0091]
请参阅图5,图5是本技术实施例提供的一种图像矫正模型的训练装置的示意性框图。如图5中所示,该图像矫正模型的训练装置包括:数据获取模块 301、矩阵生成模块302、图像生成模型303和迭代训练模块304。其中,
[0092]
数据获取模块301,用于获取训练数据,所述训练数据包括训练图像和所述训练图像对应的旋转图像。
[0093]
矩阵生成模块302,用于将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵。
[0094]
图像生成模型303,用于基于所述仿射变换矩阵对所述旋转图像进行仿射变换,并将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像。
[0095]
迭代训练模块304,用于计算所述矫正图像和所述训练图像之间的损失函数值,并
根据所述损失函数值对所述预设的矫正网络和所述采样网络进行迭代训练,并在训练完成时将所述预设的矫正网络和所述采样网络共同作为图像矫正模型。
[0096]
请参阅图6,图6是本技术实施例提供的一种图像矫正装置的示意性框图。如图6中所示,该图像矫正装置包括:图像获取模块401和图像矫正模块402。
[0097]
其中,
[0098]
图像获取模块401,用于获取待矫正图像。
[0099]
图像矫正模块402,用于将所述待矫正图像输入至预先训练的图像矫正模型中,得到矫正图像,其中,所述预先训练的图像矫正模型为采用如上述的图像矫正模型的训练方法训练得到的。
[0100]
请参阅图7,图7是本技术实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
[0101]
如图7中所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
[0102]
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种的图像矫正模型的训练方法。
[0103]
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
[0104]
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种的图像矫正模型的训练方法。
[0105]
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0106]
应当理解的是,处理器可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor, dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0107]
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
[0108]
获取训练数据,所述训练数据包括训练图像和所述训练图像对应的旋转图像;
[0109]
将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵;
[0110]
基于所述仿射变换矩阵对所述旋转图像进行仿射变换,并将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像;
[0111]
计算所述矫正图像和所述训练图像之间的损失函数值,并根据所述损失函数值对所述预设的矫正网络和所述采样网络进行迭代训练,并在训练完成时将所述预设的矫正网络和所述采样网络共同作为图像矫正模型。
[0112]
在一个实施例中,所述预设的矫正网络为预训练的矫正网络;所述处理器还用于
实现:
[0113]
获取样本数据,所述样本数据包括样本图像和所述样本图像对应的关键点;
[0114]
将所述样本图像输入至卷积神经网络,得到输出仿射矩阵;
[0115]
基于所述样本图像对应的关键点和预设定位点确定监督仿射矩阵;
[0116]
计算所述输出仿射矩阵和所述监督仿射矩阵之间的损失函数值,并根据所述损失函数值对所述卷积神经网络进行预训练,得到预训练的矫正网络。
[0117]
在一个实施例中,所述预设的矫正网络为预训练的矫正网络;所述处理器还用于实现:
[0118]
获取训练样本数据,所述训练样本数据包括训练样本图像对应的旋转样本图像和所述训练样本图像对应的旋转角度;
[0119]
将所述旋转样本图像输入至卷积神经网络,得到所述旋转样本图像对应的输出仿射矩阵;
[0120]
根据所述旋转样本图像和所述旋转样本图像对应的旋转角度确定监督仿射矩阵;
[0121]
计算所述输出仿射矩阵和所述监督仿射矩阵之间的损失函数值,并根据所述损失函数值对所述卷积神经网络进行预训练,得到预训练的矫正网络。
[0122]
在一个实施例中,所述处理器在实现所述基于所述仿射变换矩阵对所述旋转图像进行仿射变换时,用于实现:
[0123]
获取所述旋转图像中每个像素点的像素坐标;
[0124]
基于所述仿射变换矩阵分别对每个所述像素点的像素坐标进行映射,得到每个所述像素点的映射坐标。
[0125]
在一个实施例中,所述处理器在实现所述将得到的变换数据输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像时,用于实现:
[0126]
当所述像素点的映射坐标不是整数时,将所述像素点的映射坐标输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像;
[0127]
当所述像素点的映射坐标是整数时,根据所述映射坐标在所述旋转图像中获取与所述映射坐标对应的像素点进行像素点填充,以得到矫正图像。
[0128]
在一个实施例中,所述处理器在实现所述将所述像素点的映射坐标输入至采样网络进行图像采样,得到所述旋转图像对应的矫正图像时,用于实现:
[0129]
对所述像素点的映射坐标进行插值取整,得到所述像素点对应的采样坐标;
[0130]
根据所述采样坐标在所述旋转图像中获取与所述采样坐标对应的像素点进行像素点填充,得到矫正图像。
[0131]
在一个实施例中,所述处理器在实现所述将所述旋转图像输入至预设的矫正网络中,得到所述旋转图像对应的仿射变换矩阵之前,用于实现:
[0132]
对所述旋转图像进行图像预处理,所述图像预处理包括尺寸调整和/或图像增强。
[0133]
其中,在另一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
[0134]
获取待矫正图像;
[0135]
将所述待矫正图像输入至预先训练的图像矫正模型中,得到矫正图像,其中,所述预先训练的图像矫正模型为采用如上述的图像矫正模型的训练方法训练得到的。
[0136]
本技术的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本技术实施例提供的任一项的图像矫正模型的训练方法和/或图像矫正方法。
[0137]
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。
[0138]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1