一种基于深度卷积网络的自动图像变形方法与流程

文档序号:16513577发布日期:2019-01-05 09:29阅读:200来源:国知局
一种基于深度卷积网络的自动图像变形方法与流程

本发明涉及图像处理技术领域,具体涉及一种基于深度卷积网络的自动图像变形方法。



背景技术:

自动图像变形技术属于图像处理领域,是指由一幅图片渐变至另一幅图片的动态变形技术,广泛运用于电影特效、动画制作。

现有自动图像变形算法通过在源图片和目标图片中手动标定一系列对应点,通过这些对应点的匹配控制整幅图像的几何变形。本质是利用已有图像像素信息寻找特征基元进行特征匹配以保留特征之间的几何对应关系,再根据几何对应关系对两幅图像颜色进行线性插值生成中间过渡图像。其中对任意一个点的更改,都会造成整个变形过程的变化;同时,标定点的质量也同样影响着最后的结果,标定点太密,不仅加大了初始工作量,也会产生更多的冲突;标定点太稀疏,无法很好地指导几何变形,导致变形过程产生较大失真,具体表现为渐变过程中产生的重影。

因此特征点的选取直接影响变形效果。肖红光等人提出使用多特征融合的自动变形方法来寻找初始匹配点(肖红光,肖树根,刘京,李淳芃,陈立福.多特征融合的图像自动变形[j].中国图象图形学报,2014,19(07):1012-1020.),但是其仅仅基于外部特征,对于颜色、外观差距较大的图像,难以找到合适的匹配点。在更多的应用中,人们更希望得到语义相关的匹配点。基于相同语义信息的匹配点所引导的图像变形,也更符合人的直觉。



技术实现要素:

有鉴于此,本发明提供了一种基于深度卷积网络的自动图像变形方法,能够适用于颜色、外观差距较大的图像,且鲁棒性较好。

本发明的基于深度卷积网络的自动图像变形方法,包括如下步骤:

步骤1,构建深度卷积网络,并对其进行训练,得到能够提取图像特征的、训练好的深度卷积网络;

步骤2,将待匹配的两幅图像a、b分别输入步骤1训练好的深度卷积网络,提取深度卷积网络中各层级中的卷积层、池化层或激活层的输出;其中,一个层级提取其中一层的输出,各层级可以提取同一种层的输出(例如均提取激活层),也可以提取不同种层的输出;

步骤3,针对提取的各层的输出,分别设定该层的搜索子区域;从最底层开始,由下至上在各层对应的搜索子区域内分别进行最近邻匹配;其中,最近邻匹配过程如下:

对于第l层的第n个搜索子区域,对图像a的第l层的第n个搜索子区域中的每一个子张量在图像b的第l层中以相同位置的子张量为中心的匹配区域内寻找与距离最近的子张量,其中,匹配区域小于搜索子区域;同样的,对图像b的第l层的第n个搜索子区域中的每一个子张量在图像a的第l层中以相同位置的子张量为中心的匹配区域内寻找与距离最近的子张量;若a、b的第l层的第n个搜索子区域中存在两个子张量互为距离最近,则称这两个子张量为最近邻匹配对;

其中,第l层的第n个搜索子区域为下一层(第l+1层)的第n个匹配对在第l层的映射;最底层l=l(l为步骤1提取层的总个数)的搜索子区域为最底层整个区域;

以此类推,得到最顶层l=1的最近邻匹配对;

步骤4,利用最顶层的最近邻匹配对,使用图像变形方法实现图像a到图像b的变形。

进一步的,所述步骤1中,所述深度卷积网络为具有提取图像特征的功能的网络,如图像分类网络。

进一步的,所述步骤1中,采用公开数据集如imagenet进行网络训练或者直接采用现有公开的已预训练好的深度卷积网络。

进一步的,所述步骤2中,只提取前4个或前5个层级的卷积层、池化层或激活层的输出执行后续步骤。

进一步的,所述步骤3中,匹配区域的大小依据搜索距离及网络结构确定。

进一步的,所述步骤3中,对于第l层的第n个搜索子区域ln,最近邻匹配过程如下:

对图像a的搜索子区域ln中的每一个子张量在图像b的相同位置的子张量为中心的匹配区域内寻找与距离最近的子张量然后计算子张量在图像a的相同位置的子张量为中心的匹配区域内与距离最近的子张量是否为若是,则认为为一对最近邻匹配对。

进一步的,所述步骤3中,针对各层,计算该层最近邻匹配对的张量响应值,选取响应值大于或等于设定阈值的最近邻匹配对为该层的最终的最近邻匹配对,利用最终的最近邻匹配对执行后续步骤。

进一步的,所述步骤3中,如果源图像和目标图像风格差距较大,则在进行距离计算时,将图像a、b对应的搜索子区域进行风格转换,转换为统一的公共风格,然后再进行距离计算,得到最近邻匹配对。

进一步的,所述步骤4中,在进行图像变形前,先分别对步骤3获得的最顶层的最近邻匹配对采用无监督的聚类方法进行聚类,然后利用各聚类中心对进行图像a到图像b的变形。

进一步的,所述无监督的聚类方法为k-means聚类法、dbscan聚类法或mean-shift聚类法。

进一步的,所述步骤4中,采用基于半通域的形状边缘相似的变形方法、基于delaunay三角剖分的图象变形方法、基于控制点的图像变形方法或光滑不等距插值和空间可变线性插值方法进行图像a到图像b的变形。

有益效果:

本发明利用深度卷积网络中不同层级的卷积层、池化层或激活层的张量信息,倒金字塔式地从最底层级依次往上进行逐渐精确的特征点匹配,然后利用最顶层的匹配点,使用图像变形方法实现源图像到目标图像的变形,能够适用于外观特征变化较大的图像,且鲁棒性较好。

在搜索子区域进行最近邻匹配前,将搜索子区域进行风格统一,消除图像在外观特征上的颜色等风格差异的影响。

利用张量响应值对最近邻匹配对进行筛选,提出语义信息不强的最近邻匹配对,使得筛选出来的最近邻匹配对具有语义相关性。

利用无监督的聚类方法对最顶层激活层的最近邻匹配对进行聚类,利用聚类中心对进行图像匹配,提高匹配效率;并且,可以根据应用需求灵活更改匹配点数量。

附图说明

图1为本发明的由最底层激活层依次往上逐渐精确匹配的示例图。

图2为本发明由l-1层的匹配点扩展到l层的对应区域的示例图。

图3为本发明源图像和目标图像通过二维映射关系的变换表示示例图。

图4为本发明一个实例所产生的匹配点与其变换过程。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种基于深度卷积网络的自动图像变形方法,如图1所示,将图像投影至深度卷积网络中的特征空间,基于不同层级的特征空间金字塔式地由下至上逐渐精确地寻找匹配点,然后利用最顶层的匹配点,基于图像结构相似度采用图像变形方法进行源图像到目标图像的自动变形。整个自动图像变形的过程分为寻找匹配点和图像变形两个部分。

(一)寻找匹配点

(1)构建深度卷积网络,并对其进行训练,得到能够提取图像特征的、训练好的深度卷积网络。

其中,可以选用本身就具备图像特征提取功能的深度卷积网络,如图像分类网络,从而减少训练量,减少网络复杂度;在训练时,可以利用imagenet等大型数据集对构建的网络进行预训练;或者也可以直接采用现有公开的预训练好的图像分类网络,如vgg19。

(2)将待匹配的两幅图像a、b作为网络的输入,分别输入步骤1训练好的深度卷积网络,记录深度卷积网络各层级的卷积层、池化层或激活层的输出结果,分别记为l为记录的总层数;其中,一个层级提取其中一层的输出,各层级可以提取同一种层的输出(例如均提取激活层),也可以提取不同种层的输出;下面以均提取各层级的激活层为例进行说明。

其中,使用语言中的图像处理库将图像a、b分别缩放为相同尺寸,以此保证网络的各层输出具有相同的形状。

为提高计算效率,可以只提取前n个层级的输出结果,可提取前4个或5个层级的激活层的输出结果,能够实现保证匹配精度的情况下计算量小。

(3)各激活层分别设置该层的搜索子区域,从底层的激活层开始,由下至上分别在各层进行最近邻匹配,得到各层的最近邻匹配对。

其中,每一个激活层的输出,都是一个形状为(长×宽×通道)的张量,从最底层激活层开始,在每一个激活层的(长×宽)平面设定该层的搜索子区域;对于最底层激活层l=l,其搜索子区域即为最底层激活层(长×宽)平面。

首先对图像a和图像b在最底层激活层l=l进行最邻近匹配:a)构建匹配区域,其中匹配区域小于搜索子区域,匹配区域的大小根据搜索距离及网络结构灵活确定;各激活层的匹配区域的大小可以相同也可以不同,但同一层中的匹配区域大小需一致;b)对图像a的最底层激活层输出对其张量平面每个位置上的子张量在图像b的最底层激活层输出中,以相同位置的子张量为中心的匹配区域内寻找与欧式距离最近的子张量;同样的,对图像b的最底层激活层对其张量平面每个位置上的子张量中以相同位置的子张量为中心的匹配区域内寻找与欧式距离最近的子张量;若中存在一对子张量彼此都为距离最近,则称这两个子张量为一对最近邻匹配对。

上述是在搜索子区域中采用遍历的方法实现最近邻匹配,此外,还可以采用下述方法进行更为快捷的最近邻匹配:

对于激活层l的第n个搜索子区域ln,最近邻匹配过程如下:

对图像a的搜索子区域ln中的每一个子张量在图像b的相同位置的子张量为中心的匹配区域内寻找与距离最近的子张量然后计算子张量在图像a的相同位置的子张量为中心的匹配区域内与距离最近的子张量是否为若是,则认为为一对最近邻匹配对。

在进行子张量欧式距离计算时,考虑到图像在外观特征上的颜色等差异,如果图像a和图像b风格差距较大,则可以较优的先对图像a、b对应的搜索子区域进行风格转换,统一变成公共风格,然后再进行欧式距离计算,得到最近邻匹配对。

其中,风格转换可通过以下公式得到:

其中:在pl区域内的值;μa,μb,σa,σb分别代表指定区域的特征矩阵和内容矩阵;μm,σm代表对应区域的公共特征矩阵,可由下式计算得到:

则张量之间的距离公式为:

此外,还可以利用激活层输出张量的响应值特征,筛掉一部分张量响应值低于设定阈值的最近邻匹配对,从而使得该激活层留存的最近邻匹配对是富有语义信息的。

其中,每一个子张量的响应值由以下公式得到:

其中,分别为p点、i点在层的输出,“||||”为绝对值符号。

在获得最底层激活层的所有最近邻匹配对后,根据网络结构,将最近邻匹配对坐标映射到上一层激活层中,如图2所示;最近邻匹配对位置在l-1层激活层的映射区域即为l-1层激活层的搜索子区域;然后采用同样的方法,在l-1层激活层中的各搜索子区域中分别进行最近邻匹配,得到l-1层激活层的最近邻匹配对;依次类推,最终得到最顶层l=1激活层的最近邻匹配对。

若最顶层激活层的最近邻匹配对个数较多,则可以利用无监督的聚类方法(如k-means聚类法、dbscan聚类法、mean-shift聚类法等)对最顶层激活层的最近邻匹配对进行聚类,分别将图像a、图像b中所有的匹配对分为5、10、15、20或其他个数类,得到各类的聚类中心对。然后以各聚类中心对作为最终的匹配对。

(二)图像变形

基于(一)最终确定的匹配点对,可以采用现有的图像变形方法,如基于半通域的形状边缘相似的变形方法、基于delaunay三角剖分的图象变形方法、基于控制点的图像变形方法、光滑不等距插值和空间可变线性插值方法等等,实现图像a到图像b的变形。

下面结合一个具体实例进行详细说明。

步骤一、使用语言中的图像处理库将图像a、b分别缩放为224×224后,分别输入至训练好的vgg19图像分类网络,提取网络前5个层级的激活层的输出结果:

步骤二、从开始进行匹配的搜索。第五层的输出结果为14×14×512的张量,以第一维和第二维作为搜索平面,第五层只有一个搜索子区域,即第五层搜索平面本身。对于图像a的每一个形状为1×1×512的子张量,在图像b中以相同位置子张量为中心的半径为5的匹配区域中找到欧式距离最近的一个子张量;同样,对于图像b的每一个形状为1×1×512的子张量,在图像a中以相同位置子张量为中心的半径为5的匹配区域中找到欧式距离最近的一个子张量。若存在一对子张量彼此都为最接近,那么他们便是一对最近邻匹配对。

在搜索的过程中,考虑到原图像的颜色等外观特征差异较大,在距离计算前,对搜索子区域进行风格转换。

搜索子区域的风格转换参考2016年johnson的文章中提出的利用深层特征的平均值和方差作为归一化参数来进行的风格转换。风格转换的对象,是图像a、b对应的搜索子区域利用以下公式转变为公共风格:

其中:

风格转换目标是一个特定的搜索子区域,因此在搜索子区域中,对于两个特定位置的张量p,q之间的距离定义,也和搜索子区域联系在了一起,公式定义为:

在风格转换后的搜索子区域进行搜索,获得最近邻匹配对。

然后,通过构造响应函数,得到每一个位置上特征向量的响应程度,可以将该位置的语义丰富信息描述出来。公式如下:

在得到所有最近邻匹配对的响应值后,筛除掉低于设定阈值的最近邻匹配对,这些点意味着不具有较强语义信息。同时筛除掉位于张量边缘的最近邻匹配对,这些点对难以在上层激活层中找到对应的搜索区域。

步骤三、如图2所示,在低层得到最近邻匹配对的位置后,可以利用网络结构,将低层的匹配对坐标拓展到上层空间中,得到上层空间的搜索子区域对。在每一个搜索子区域对中,重复进行步骤二,产生这一层的最近邻匹配对。

重复步骤三,继续向上层扩展,最终得到最顶层的原图的最近邻匹配对。

步骤四、在最顶层的原图中,往往能找到超过上百个最近邻匹配对。为了让最近邻匹配对能尽可能表达更多不同的语义信息,使用k-means聚类算法,以最近邻匹配对的x、y坐标作为点的特征进行聚类,得到5、10、30等多类别,取每个类别最接近中心的点作为该类别代表点留在最近邻匹配对的列表中。

步骤五、利用最顶层的最近邻匹配对,基于半通域的形状边缘相似的变形方法实现图像a到图像b的变形。

具体的,

将源图像a和目标图像b表示为一维的列向量,初始化一个二维的向量网格v(p)代表图像间的变换,则可以用一个二维的映射关系表示两个列向量中点与点之间的匹配。通过二维的映射关系,可以将源图像变化为目标图像。其中,二维映射变化的一半,称为中间域ω。具体形式可参考图3。

其中,源图像和目标图像到ω的变化分别为:

φ0(p)=p-v(p)φ1(p)=p+v(p)

本发明通过构造一个能量函数,通过优化该能量函数,得到最优的二维映射关系;然后在最优的二维映射关系中采用线性插值的方式,得到子变换,每一个时刻的子变换便对应着这个时刻源图像的变换,从而完成源图像a到目标图像b的变形。

其中,构造的能量函数如下:

e(p)=esim(p)+λetps(p)+γeui(p)

其中,esim表示源图像和目标图像的结构相似性;etps表示变形的平滑程度;eui表示匹配点误差;λ、γ为权重,一般取λ=0.001,γ=100。

(1)区域的结构相似性esim

对于ω中一个w*h的区域p,可以使用代表该区域p在当前二维变化下,在源图像和目标图像中的对应区域。则有:

sim(n0,n1)=c(n0,n1)·s(n0,n1)

其中:

其中,其中σn代表n区域的协方差;c2=58.5,c3=29.3。

(2)变形的平滑程度etps

采用薄板样条函数tps的误差来描述变形的平滑程度。对于变换v,可以将其拆分为vx,vy,则变形的平滑程度etps可以表示为:

etps(p)=tps(vx(p))+tps(vy(p))

(3)匹配点误差eui

根据(一)中确定的图像a、b的匹配点那么二维变换向量的目标,就是让趋近于而二维变换向量无法针对单独的点进行变换,因此选择距离目标点最近的四个点pi1、pi2、pi3、pi4作为输入,有:

因此匹配点误差eui定义为:

然后通过使用8×8和16×16的滤波构造图像金字塔的方式,逐渐优化能量函数。在每一层级,都在能量函数收敛之后进入下一级。最后得到的最小能量函数所对应的二维映射关系就是最优的图像变形方案。

然后在最优的二维映射关系中采用线性插值的方式,得到子变换,每一个时刻的子变换便对应着这个时刻源图像的变换,从而完成源图像a到目标图像b的变形。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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