一种基于生成对抗网络的数据增强方法与流程

文档序号:26841333发布日期:2021-10-08 22:53阅读:514来源:国知局
一种基于生成对抗网络的数据增强方法与流程

1.本发明属于计算机视觉和图像生成领域,尤其涉及一种基于生成对抗网络的数据增强方法。


背景技术:

2.在进行计算机视觉的模型训练时,常常会因为训练数据集不充分导致模型性能不佳,究其原因,是因为手上的训练集在整个样本空间中分布不均匀,只处于整个样本空间的某一特殊流形上,训练样本不能“完美概括”整个样本空间,导致模型接收的信息不全面,进而影响其性能。为了减弱这个影响,一些学者开始尝试数据增强。
3.传统的数据增强方式仅限于一些常规的图像平移、旋转、翻转、增加噪声等等直观的手段。理论上来说,这种数据增强方式,仅仅是“复制”了原始的训练集,并没有增加新的训练数据信息,对模型的性能提升不大。
4.对于车辆图像相关的视觉任务来说,在每个城市每天都会产生大量新的车辆图像数据,数据虽然多,但基本都集中在一个流形之中,或是城市不变化,或是城市不同导致不同车辆的分布固定不变(比如在重工业城市,大卡车数量会更多)。


技术实现要素:

5.本发明的目的在于针对现有技术的不足,提供一种基于生成对抗网络的数据增强方法。
6.本发明的目的是通过以下技术方案来实现的:一种基于生成对抗网络的数据增强方法,包括:首先提取图像特征,编码至特征空间。然后生成3d骨架,将提取的图像特征融合进 3d骨架,渲染生成3d框架。接着进行3d框架的视角回归。再利用三维仿射变换,生成新视角的3d框架。进一步将3d框架降维投影成2d图像。最后通过图像修复模型微调得到最终生成的新视角图像。
7.进一步地,具体包括以下步骤:
8.(1)给定待处理的原始图像x
ori
,经过一个卷积层构成的特征提取模块,获取其高阶特征attr
ori

9.attr
ori
=encoder(x
ori
)
10.(2)建立3d骨架,其网络层由三维卷积构成,输入为一个可学习的3维张量input,旨在从input里重建出一个正向的3d骨架。把步骤(1)提取的高阶特征attr
ori
融合渲染进3d 骨架,形成一个输入图像的3d框架x
3d

ori

11.x
3d

ori
=3dmodel(attr
ori
)
12.(3)把3d框架x
3d

ori
输入视角回归模型,进行视角回归任务得到θ1:
13.θ1=viewregression(x
3d

ori
)
14.由于期望最初生成的视角为正向视角(0,90,90),给出一个损失罚项loss
oriview

15.16.(4)选定目标新视角θ
target
,进行三维仿射变换,生成新视角3d框架c
3d

new

17.x
3d

new
=affine(x
3d

ori
;θ
target
)
18.同时输入x
3d

new
到回归模型进行视角回归得到θ2:
19.θ2=viewregression(x
3d

new
)
20.给出新视角的损失罚项loss
newview

[0021][0022]
(5)进行新视角的3d转2d投影操作,生成图像x
new

[0023]
x
new
=projection(x
3d

new
)
[0024]
再接入一个图像修复模型进行生成图像微调,最终生成新视角图像x
newview

[0025]
x
newview
=repairmode(x
new
)
[0026]
(6)为了保证其他属性的不变性,把图像x
newview
再次输入到步骤(1)的特征提取模块中提取高阶特征attr
newview

[0027]
attr
newview
=encoder(x
newview
)
[0028]
给出特征重建损失loss
attr

[0029][0030]
最终总损失为:
[0031]
loss=loss
oriview
+loss
newview
+loss
attr
+loss
adversarial
[0032]
其中,loss
adversarial
指代生成对抗网络的对抗损失。
[0033]
进一步地,步骤(2)中,输入input作为可学习参数,不作为模型正式的输入。
[0034]
进一步地,所述3d骨架为一个大致骨架,与提取的图像特征融合后才能形成对应的3d 框架,融合方式采用特征拼接或自适应正则化方法等。
[0035]
本发明的有益效果是:本发明通过生成对抗网络的特征提取,将车辆图像的深层特征渲染到一个既定的三维立体结构上,完成一幅二维图像到三维立体结构的重构,再进行三维单眼投影,获得其在所需视角的二维图像,完成车辆不同视角图像的生成。本发明在现有技术 noise

to

image的基础上进行了修正尝试,使其完成了从noise

to

image到image

to

image的转换,在此之后,可以做到定向修改一种特定属性(车辆视角等),生成新视角的图像。可利用本发明增强后的数据集服务现有的re

id模型,以增强其性能。
附图说明
[0036]
附图用来提供对本发明技术方案的进一步理解。
[0037]
图1为整个生成模型框架图。图2为本发明一种基于生成对抗网络的数据增强方法的流程图。
具体实施方式
[0038]
下面根据附图详细说明本发明。
[0039]
基于生成对抗网络gan的图像生成,在图像生成领域的大火,也表明其存在的价值,我们利用gan,不是在复制层面,而是拟合训练样本的采样概率,再从整体样本空间采样新样本,这样得到的新图像不单纯是原始图像的“复制”,而是提供了全新的训练样本,增加
训练样本容量。
[0040]
本发明从视角入手,城市道路因其摄像头位置的变化,导致很多不同视角的车辆图像的生成,为了补全视角维度的信息,我们做了视角生成的增强方式。在保持原有属性不变的前提,提供一种图像特征编辑的数据增强方式,进行图像的可控性特征编辑。
[0041]
在新视角生成任务中,由于车辆像素点在视角生成前后发生了物理位移,我们基于图像的高阶特征损失进行图像的3d重建,有了3d模型,便可以生成可控视角的投影图像。保证进行特征编辑后的图像,依然是原始图像的物品,只是变换了视角,其高阶特征不发生大变动,其特征保持损失loss
attribute
为:
[0042][0043]
其中,x
real

abstract
、x
reconst

abstract
分别表示原始输入图像提取的高阶特征和特征编辑后的生成图像的高阶特征,表示1范数的平方。转至此,我们需要构建一个特征提取模型 encoder,其作用为提取图像的高阶特征。
[0044]
我们没有选择直接生成图像的3d重建模型,而是先生成一个正向的大致骨架,然后把原始图像的特征融合进3d骨架中,进行图像3d重建。为此,我们建立一个三维卷积神经网络,通过一个低维的3维张量重建一个3d骨架框架,在重建的过程中,我们以自适应正则化(adaptive instance normalization)的方式(或特征拼接)融入提取的图像高阶特征,在建模3d 图像的过程中一步步融合特征并微调3d模型细节,直至3d建模完成。
[0045]
为了进行可控性特征编辑,我们需要在3d重建模型后再搭载一个回归器,旨在进行视角预测回归,不选择分类分支是因为视角分类会因为类别里面样本视角仍然存在一个范围,会引起不可避免的误差,进而,我们进行3d车辆模型的三视角回归。即,假设以正向为正轴建立立体直角坐标系,其三视角即为车辆与三坐标轴的夹角。有了三视角的精确回归,车辆图像的视角可控性便得到了保障。
[0046]
前面完成了3d建模以及视角回归,接下来我们便是做视角可控变换,有了正向的3d框架,我们需要引入3d仿射变换矩阵a,其元素由我们所需的变换三视角所决定,这里不再展开,值得一提的是,原点重合的3d仿射变换,只需要3*3的矩阵便可完成,加上偏置项,我们使用3*4的矩阵进行3d图像的仿射变换:
[0047]
x
3d

new
=a*x
3d

original
[0048]
其中,x
3d

new
、x
3d

original
表示仿射变换后的3d图像及其原始图像。
[0049]
完成原始3d框架的仿射变换后,我们需要进行3d到2d的投影操作,以转化回2d图像空间进行新视角图像生成。
[0050]
优选地,为了防止视角变换后,会出现原始图像上被遮挡住的部分,导致生成图像产生不必要的空洞或者模糊。本发明在投影结束后接入一个图像修复模块(细粒度图像修正),旨在提取远距离像素信息进行图像修补、修复,使其更具现实意义。
[0051]
如图1和图2所示,本发明一种基于生成对抗网络的数据增强方法,包括以下步骤:
[0052]
步骤一:给定待处理的原始图像x
ori
,经过一个卷积层构成的特征提取模块encoder,获取其高阶特征attr
ori

[0053]
attr
ori
=encoder(x
ori
)
[0054]
其中,图像特征提取可以用来限制生成图像除修改特征之外的特征的守恒性。
[0055]
步骤二:建立一个3d重建模型,其网络层由三维卷积构成,输入为一个可学习的3维张量input,旨在从input里重建出正向的3d骨架(该输入input作为可学习参数,不作为模型正式的输入)。在3d重建的过程中,引入自适应归一化层,在加快模型训练速度和减缓各维度尺度不均等的同时,把encoder提取的高阶特征attr
ori
渲染进该3d骨架,形成一个属于输入图像的3d建模x
3d

ori

[0056]
x
3d

ori
=3dmodel(attr
ori
)
[0057]
其中,3dmodel为将attr
ori
渲染进3d骨架的函数表示。
[0058]
步骤三,再把该3d框架x
3d

ori
输入给视角回归模型view regression,进行视角回归任务得到θ1:
[0059]
θ1=viewregression(x
3d

ori

[0060]
其中,viewregression为视角回归的函数表示。
[0061]
由于期望最初生成的视角为正向视角,故其三视角为(0,90,90),我们给出一个损失罚项loss
oriview

[0062][0063]
步骤四:选定一个三视角组合θ
target
,进行仿射变换,生成新视角3d框架x
3d

new

[0064]
x
3d

new
=affine(x
3d

ori
;θ
target
)
[0065]
其中,affine为仿射变换的函数表示。这里的三维仿射变换作为传统数学方法引入,方法固定,不作为待训练模块。
[0066]
同时输入x
3d

new
到回归模型进行视角回归得到θ2:
[0067]
θ2=viewregression(x
3d

new
)
[0068]
给出新视角的损失罚项loss
newview

[0069][0070]
步骤五:进行新视角的3d转2d投影操作,生成图像x
new

[0071]
x
new
=projection(x
3d

new
)
[0072]
其中,projection为投影操作的函数表示。
[0073]
再接入一个图像修复模型进行生成图像微调:
[0074]
x
newview
=repairmode(x
new
)
[0075]
其中,repairmode为图像修复的函数表示。该输出x
newview
即为本发明的最终生成的新视角图像。
[0076]
步骤六:为了保证其他属性的不变性,我们把生成图像x
newview
再次输入到encoder中进行高阶特征attr
newview
提取:
[0077]
attr
newview
=encoder(x
newview
)
[0078]
给出特征重建损失loss
attr

[0079][0080]
最终整个模型的总损失为:
[0081]
loss=loss
oriview
+loss
newview
+loss
attr
+loss
adversarial
[0082]
其中,最后一项loss
adversarial
指代生成对抗网络的对抗损失,这里不再赘述。本发明设计的损失函数可以保证其他未修改属性的不变性以及可控视角的视角变换限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1