【《基于网络结构搜索的图像处理系统设计案例》12000字】_第1页
【《基于网络结构搜索的图像处理系统设计案例》12000字】_第2页
【《基于网络结构搜索的图像处理系统设计案例》12000字】_第3页
【《基于网络结构搜索的图像处理系统设计案例》12000字】_第4页
【《基于网络结构搜索的图像处理系统设计案例》12000字】_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章系统设计基于网络结构搜索的图像处理系统设计案例目录TOC\o"1-3"\h\u10296基于网络结构搜索的图像处理系统设计案例 -1-73881系统设计 -1-93531.1系统总体设计 -2-216041.2网络结构搜索模块设计 -2-187191.2.1卷积单元及网络的设计 -3-49221.2.2搜索框架的设计 -4-236661.3图像理解模块设计 -5-268491.3.1结合注意力的Encoder-Decoder模型结构设计 -5-120911.3.2模型训练流程设计 -7-280091.4图像生成模块设计 -8-170571.1.1生成器判别器模型结构设计 -8-24031.1.2模型训练流程设计 -9-165881.5风格迁移模块设计 -10-68371.2.1特征矩阵提取与损失计算设计 -10-253451.2.2模型训练流程设计 -11-175911.6Web端设计 -12-311601.7本章小结 -13-282832系统实现 14118522.1系统训练环境 14184922.2系统开发环境 1449122.3基于NAO的模型获取 15146512.3.1模型搜索训练流程 15324662.3.2搜索出的具体结构 16249852.4图像理解任务实现 16201132.1.1数据处理 16307032.1.2视觉注意力模型构建训练具体实现 19231582.1.3基于束搜索的模型评估实现 20186072.5图像生成任务实现 21265042.2.1数据处理 2134832.2.2条件对抗网络模型构建训练具体实现 2156252.2.3寻找指标评价模型 22178692.6风格迁移任务实现 23290502.6.1卷积神经网络模型构建训练具体实现 23151422.6.2遇到的问题及尝试 24157392.7实现特色总结 241系统设计系统设计是指在设定可用的环境条件下,结合需求分析阶段提出的系统需求,对整个系统进行可行方案的设计,并对方案进行论证与性能预测的综合性反馈过程。本章将从网络结构搜索单元的设计、各图像处理任务子系统的设计以及Web网页前端的设计等方面分别进行叙述。1.1系统总体设计如图1.1所示,本系统的开发训练环境为Linux系统,最终的部署环境为Windows系统。网络结构搜索与图像处理模块都使用到Pytorch框架,在此之上,分别实现了结构搜索、模型训练及网页部署等模块。各个模块之间相互作用,构建了最终的图像处理服务,实现了与用户交互的功能。图1.1系统总体架构图1.2网络结构搜索模块设计1.2.1卷积单元及网络的设计对于搜索空间,我们采用元卷积结构来构成,并把这些元结构作为子模型叠加成一个有向无环图,用其节点表示待搜索的局部计算,信息流向则用图的边来表示。局部计算的独立参数在对应节点被控制器选择后才会激活,因此基于权重共享的思想,当图中所有子图对应的模型结构共享参数时,就能加速搜索的过程。本系统采用具有5个节点的有向无环图表示单元内发生的运算,其中节点1和节点2作为整个卷积单元的输入,控制器需要设计生成后续三个节点。对于每一个节点,控制器都要做出以下两种决策:①选择先前的两个节点作为当前节点的输入②选择两种运算分别应用于两个采样节点(本系统采用的5种运算见表1.1)。在生成节点时,我们把选中的操作应用于对应的节点,再把两个结果相加作为当前节点的输出。表1.1待搜索运算表操作编号操作名称0卷积核大小3×3的可分离卷积1卷积核大小5×5的可分离卷积2池化窗口大小3×3的平均池化3池化窗口大小3×3的最大池化4Identity图1.2(a)描述了控制器生成节点的过程:节点1和节点2作为单元的输入节点,控制器不对它们作出决策;对于节点3,控制器采样了两次节点2并分别选择卷积核大小为5×5的可分离卷积与等价操作,即实现如下计算,见公式(1.1):h3=sep_conv5×5(h2)对于节点4和5也执行相似的操作。本例中除节点5都被作为至少另一个节点的输入,因此唯一的松散端节点5就作为整个卷积单元的输出,如果图中有多个松散端,就把它们沿深度维度连接并把连接结果作为单元的最终输出。图1.2(b)种实线连边表示被激活的连接,通过上述过程最终生成的卷积单元最终结构如图1.2(c)所示。规约单元与卷积单元设计相似,区别在于步长设置为2,此时输出的空间维数将减少一半。在单元设计生成后,就可以通过单元的连接形成整体的结构,本系统采用多卷积单元与单规约单元交替的连接方式形成最终的模型结构,如图1.3所示。图1.2卷积单元设计生成示例图1.3卷积单元连接方式示例1.2.2搜索框架的设计本系统做出搜索决策的控制器由编码器、性能预测器与解码器三部分组成。编码器的原型为单层的LSTM模型,它负责将输入的结构转换为字符序列,可以看作是离散结构空间到连续空间的映射E:X→ℰ,离散结构的嵌入即为ex=E(x),此时LSTM的隐藏层状态性能预测器与编码器配合使用,它负责将每一个结构x的连续嵌入表示ex映射到其在校验集上的性能sx。它首先对嵌入表示ex={h1,解码器同样以ex作为输入,并以自回归的方式进行解码。作为编码器的逆操作,解码器可以看作是离散空间到连续空间的映射D:ℰ→X,从结构的连续表示解码字符序列,即x控制器训练过程中,其损失函数L可由两部分构成,分别为性能预测损失Lpp与结构重构损失Lrec,见公式(L=λxϵ其中λ1.3图像理解模块设计1.3.1结合注意力的Encoder-Decoder模型结构设计本图像理解子系统采用的模型以图片作为输入,相应的图片描述作为输出,即:y={y1,⋯其中K为词表大小,C为caption长度。1.3.1.1编码器结构设计编码器部分我们采用了网络结构优化方法搜索出的卷积神经网络模型作为提取图片的特征向量的提取器。对于该模型,我们只保留了全连接层之前的部分,并用低维度的卷积层进行特征向量的提取,此时解码器可以通过聚焦全部特征矩阵的子集来有目的性地关注整体图像的某些特定部分,以实现特征向量与图片组成部分之间关系的对应。该提取器生成L个向量,每个向量是针对图像一部分信息的D维表示,即:a={a1,⋯,1.3.1.2结合注意力机制的解码器结构设计解码器部分的设计采用了LSTM模型结构,每一层接收先前生成的单词序列、上下文向量以及先前的隐藏层状态作为输入,在每一个时间步产生一个单词作为输出。采用的计算公式如下:itftct=ht=其中,it、ft、ot、ht、ct分别为LSTM的输入门、遗忘门、输出门、隐藏层状态与单元状态,TD+m,n表示D+m维到n维的仿射变换,D为编码器维度,m为嵌入维度,n为解码器维度,Eϵ对于LSTM模型的初始隐藏层状态与单元状态,我们借助多层感知机通过提取出的图片特征向量的均值进行初始化:h0=fc0=f上下文向量z本质上是t时刻图片输入某些部分的动态表示结果,对其的计算,我们采用如下设计:在图片的不同相对位置上,我们都能提取出不同的向量对其进行表示ai,i=1,⋯,L,此时我们可以采用注意力模型fatt结合上一个隐藏层状态生成一个相对权重wi,这个权重用于表示当前位置在所有位置的权重eti=fwti=exp(采取这种计算的原因是因为随着RNN输出序列的推移,隐藏层的状态也会变化,模型应该聚焦于已经生成的单词序列。在所有位置的相对权重计算完成后,就可以将其与提取的向量表示相结合,利用注意力机制ϕ进行上下文向量z的计算:z=ϕ({ai在注意力机制ϕ中,为了更好地聚焦于图片中的目标物体,我们还允许相对权重wi之和可以不严格为1,即iwi≈βt=σ(ϕ({ai},{wi最后,整个模型的损失函数被定义为两部分,一部分为预测caption与数据集真实caption标签的CrossEntropy损失,另一部分为随机Attention机制的Regularization损失,即:L=−log(P(y|x))+λiL(1−1.3.2模型训练流程设计本模型的训练流程从数据的处理开始,包括数据读取、生成词表、保存数据文件以及数据集构建。数据处理完成后,就可以初始化模型或读取已有检查点进行模型的训练与评估,迭代结束后保存评估BLEU值最高的模型,整个训练过程的流程图如下图1.4所示:图1.4图像理解模型训练流程图1.4图像生成模块设计1.1.1生成器判别器模型结构设计在第2章的相关技术介绍中,我们简单叙述了条件生成式对抗模型的结构及损失函数的计算,实验表明,在cGAN损失函数中加入传统的损失函数,如L1或L2损失,有助于帮助生成器在欺骗判别器的同时,生成更加接近于真实标签的数据,结合L1损失的cGAN如下所示:LL1(G)=Ex,y~G∗=1.1.1.1生成器结构设计基于Pix2Pix算法的图像生成任务在本质上可以被建模为一个高分辨率的输入网络到同样高分辨率的输入网络的映射,由此我们很容易联想到编码器-解码器网络结构。事实上,对于生成器结构的设计,之前的许多工作也都的确采取了这种结构用于生成器的设计,这种结构的特点是图片在输入网络之后,随着网络中信息的流动,先是被一步一步地进行下采样,在到达瓶颈层之后,操作又转变为上采样,这样对图片就实现了高分辨率到低分辨率再到高分辨率的处理过程。对于某些输入输出之间包含大量的低层信息共享的图像处理任务,如图像翻译任务来说,这种信息流遍历网络所有层的结构能实现不错的效果,但对于某些输入输出共享更多高层信息的任务来说,这样的信息流动过程可能会影响处理的效率。在这种考虑下,本子系统生成器设计采用了如图1.5所示的U-net结构:图1.5带有残差连接的U-net结构这种结构实际上是编码器-解码器结构的一种变体,在其基础上,编码器与解码器区域内镜像对称的层,即第i层与第n-i层之间添加了残差连接,这样就能使生成器在信息流动的过程中能够避开必经的信息瓶颈。其次,生成器在编码器上采样部分采用了网络结构优化方法搜索出的卷积单元构成的全卷积(FullyconvolutionalalNetworks,FCN)结构,与传统的CNN结构相比,FCN用卷积层去替换CNN卷积层最后连接的全连接层,后者输出的往往是概率向量,常用作分类等任务,而前者就可以对图像进行像素级的分类,因此本生成器设计采用FCN结构,旨在学习到更多的语义信息。1.1.1.2判别器结构设计由于整体cGAN模型的损失函数加入了L1损失,而L1对于低频信息能够比较精确地捕捉,因此对于判别器结构的设计,我们应当更多地关注高频结构的建模以缓解L1损失在图像生成任务上易产生模糊图像结果的情况,而把对低频结构建模的正确性交由L1损失去处理。本图像生成子系统判别器的设计采用了patchGAN结构,更多地聚焦于图像的局部块建模。与传统GAN判别器的结构不同,传统GAN判别器的输出只为单纯的True或False,而patchGAN判别器的最终输出为一个大小为N×N的patch矩阵,本子系统内N取30,这个矩阵的元素均为1或0,并与形状相同的全1矩阵进行loss计算,使用这种结构可以扩大对输入图像的感受野,并且可以单纯地使用卷积层的叠加来实现。与此同时,如果假定给定图像的像素独立度大于预设定的patch大小,我们就可以把图像建模成一个马尔可夫随机场,这种设定在之前的工作里也用于图像风格问题的求解,因此该模型设计也可以看作是一种纹理风格的建模形式REF_Ref32483\r\h[17]。1.1.2模型训练流程设计本模型的训练流程同样从数据的处理开始,包括数据集的读取与正则化、图片的随机剪裁与翻转等数据增强工作。在数据处理完成后,进行生成器G与判别器D模型的初始化,并在每一轮迭代中依次进行生成器与判别器模型的训练,迭代结束后对生成器与判别器模型分别进行保存,在推断时利用生成器进行图片生成,整个训练过程的流程图如图1.6所示。图1.6图像生成模型训练流程图1.5风格迁移模块设计1.2.1特征矩阵提取与损失计算设计对于风格迁移子系统模型的输入,我们需要分别提取内容图片的语义内容以及风格图片的风格信息加以融合,形成目标输出。1.2.1.1内容特征矩阵提取与损失计算设计图片特征矩阵的提取通过卷积单元来实现,本子系统使用网络结构优化方法搜索出的卷积神经网络进行图片特征矩阵的提取。对于一个包含Nl个滤波器的卷积层来说,它可以从输入矩阵中提取Nl个特征映射矩阵,假定每个特征映射的大小为Ml,那么输入的内容图片在本卷积层l中被抽取的信息就会被存储在矩阵FlϵℛNl×MlLcontent(p在完成内容损失函数的设计后,通过该损失的反向传播过程,可以计算出其相对于生成图片x表示的梯度,见公式(1.18),并根据损失梯度进行目标图片针对内容的优化,直到生成图片x在某卷积层中与内容图片p有近似相同的内容特征。∂Lcontent∂之前的许多工作还表明,随着卷积神经网络处理层次的深入,网络对输入图片的表示在视觉外观方面保持较精确建模的同时,能够捕获到更加敏感的信息,因此本系统对于内容特征矩阵的提取更多地关注于网络模型的较高层表示,而不拘泥于图片精确像素值的重构REF_Ref32650\r\h[18,REF_Ref32653\r\h19]。1.2.1.2风格特征矩阵提取与损失计算设计风格特征矩阵的提取同样通过卷积单元来实现,为了得到卷积层内滤波器提取信息的相关性,我们引入Gram矩阵:Gijl=其中特征矩阵相关性GijlϵℛNl×用a与x分别表示风格图片与生成图片,并用Al与Gl分别代表其在第l层基于Gram矩阵的风格特征提取表示,那么第l卷积层风格表示部分的损失函数可由公式(El=1在此基础上,风格特征矩阵的总体损失函数可由公式(1.21)表示:Lstyle(a其中,wl为第l同样地,通过单层风格损失El的反向传播过程,也可以计算出其相对于生成图片x表示的梯度,见公式(1.22),从而借助损失梯度来进行目标图片针对风格方面的优化∂El∂1.2.2模型训练流程设计风格迁移任务的训练流程大致如下:首先进行内容图片与生成图片的处理,然后生成初始的目标图片用于后续的优化,接着在定义完内容风格选层及权重后就可以在闭包内进行模型损失的计算,并使用优化器通过反向传播计算出的梯度对图片进行调整,使其在卷积层内的特征提取在特定方面接近于内容与风格图片,直到达到迭代轮数,上述过程的流程图如图1.7所示。图1.7风格迁移任务训练流程图1.6Web端设计为了进行直观的结果展示,本系统将模型部署到了本地的Web端,用以提供API及前端界面,将模型的推断功能等进行封装,只对用户提供简单易操作的接口,如图1.8所示。本系统Web部署的流程较为简洁清晰,采用Flask+Vue.js的框架进行编写。用户输入的需处理的图片通过网页端发送的GET/POST请求经Flask提供给后端图片处理服务,在处理结束后网页端再次通过请求得到返回的处理结果作为输出,并在前端界面上进行最终结果的展示。图1.8图像处理系统前端部署流程图1.7本章小结本章对基于网络结构优化方法的图像处理系统从整体到子模块的设计进行了详细的叙述。首先介绍了系统的总体设计;接着叙述了网络机构搜索子系统的设计,包括搜索空间中卷积单元与网络的结构设计以及搜索框架的整体设计;然后从图像理解、图像生成和风格迁移三个子系统入手,分别详细地介绍了其结合注意力机制的Encoder-Decoder模型结构设计、生成器判别器模型结构设计、特征矩阵提取与损失计算设计以及各任务模型训练的流程设计;最后为了对模型的推断结果进行展示,还简单地介绍了Web前端的设计。2系统实现系统实现是将系统设计部分完成的理论成果转化为实际可运行的系统成果的过程。本章将从系统的训练开发环境、模型的获取与最终结构、各图像处理任务的具体实现方法到流程对整个图像处理系统的实现进行详细阐述。2.1系统训练环境系统训练阶段主要完成了基于网络结构优化方法对模型结构的搜索和图像处理任务模型的训练、评估优化工作。由于训练过程中模型对计算资源的需求较为严格,个人电脑无法完成满足系统训练阶段的要求,因此系统的训练环境为Linux服务器,环境配置为64位Linux系统,并配以足够的可用显存与磁盘空间。2.2系统开发环境基于网络结构优化方法的图像处理系统基于Pytorch框架开发,开发语言为Python3,Web前后端的应用框架分别为Flask与Vue.js,开发主要是在Windows10和CentOS7.6操作系统上进行,详细信息见表5-1。表2.1系统开发软件需求表名称版本功能Windows10操作系统LinuxCentOS7.6操作系统Pycharm2020.3集成开发环境VScode1.56.0文本编辑器Python3.6开发语言Flask1.1.2Web框架Jinja22.11.3模板引擎Vue.js1.1.6Web框架Pytorch1.0.0机器学习框架由于系统在搜索与训练阶段对于计算资源的需求较为严格,因此模型的搜索与训练均在Linux服务器端进行,具体的硬件环境资源见表5-2。表2.2系统开发硬件环境资源表硬件资源配置需求CPU6核心GPUTITANX显存大小12G硬盘空间大小10G2.3基于NAO的模型获取本系统应用于具体图像处理任务的模型结构基于网络结构优化方法获取,本节将从利用网络结构优化方法进行模型搜索训练的具体流程,与搜索出的具体结构分别进行详细介绍。2.3.1模型搜索训练流程在第1.3.2小节中,我们详细介绍了本系统网络结构搜索的整体框架设计,包括编码器-性能预测器-解码器结构的设计与训练过程中损失函数的设计,本节我们将结合以上部分的内容,详细叙述模型的搜索训练流程。首先我们随机生成1000个模型结构并将其加入到结构池,对每一个结构都进行编码成连续空间表示、训练与性能评估,按模型性能准确率进行排序,分别把排序后的结构及对应的性能分别写入文件arch_pool与arch_pool_pref保存。随后我们进行编码器-性能预测器-解码器结构控制器的训练,使用结构及性能的数据对作为输入数据,训练的最终目的为最小化公式(1.2)中的损失函数L。与此同时结合性能,我们在结构池中挑选出100个最优结构,并在这些当前最优结构的基础上,利用控制器中性能预测器函数f基于编码器LSTM隐藏层状态的梯度派生出新的结构表示,见公式(2.1):ht’=h将这些派生出的新结构的嵌入经解码成原结构后加入结构池,重复上述评估、训练与派生的迭代过程4次左右,当编码器与解码器都被训练至收敛时,我们就可以在结构池中选择性能最优的结构作为搜索出的最终结构,并能够将其在图像分类任务的Cifar或Imagenet数据集上进行基础训练。执行上述网络搜索算法的整体流程如算法1所示。算法2.1:网络结构优化方法输入:用于训练NAO模型的初始候选结构集合X,等待评估的初始候选结构集合Xeval构性能集S=φ,种子结构数K,步长η,迭代轮数输出:集合X中性能最优的结构forl=1,⋯,L①训练所有结构x∈X充S:S=S②使用结构集X与性能集S,通过最小化模型损失函数(1.2)训练控制器,包括编码器E、性能预测器f与解码器D③从结构集X中挑选性能最优的K个结构,组成种子结构集X④对于种子集中的所有结构x∈Xseed,使用编码器E与性能预测器f,通过公式(断成更优的表示ex‘,组成⑤使用解码器D从上述连续向量表示ex‘中解码出优化结构x',将新结构的解码输出作为{D(ex‘endfor2.3.2搜索出的具体结构本系统基于图像分类任务,采用结合权重共享思想的网络结构优化方法,在设计好的元结构搜索空间搜索出的普通卷积单元与规约池化单元的具体结构分别如下图2.1(a)及2.1(b)所示,将图中的两种单元按照1.3.1小节卷积单元的连接方式进行堆叠,就能形成能够用于处理图像分类基础任务的最终模型结构,并可以基于Cifar与Imagenet数据集对其进行训练。2.4图像理解任务实现2.1.1数据处理本系统的图像理解任务子系统采用的数据集为MicrosoftCommonObjectsinContext(MSCOCO),常被应用于图像识别、分割与检测等多种任务。数据处理时首先从图片描述的json文件中读取图片路径与相应的图像caption,并记录caption中的词频处理成该任务的词表。词表中序号的首位为’<pad>’,后三位分别为’<unk>’,’<start>’,’<end>’,其中’<pad>’用于配合caption长度实现后续序列的长度统图2.1搜索单元结果结构图一,它把长度不足预设最大长度的caption补全至最大长度,这里的最大长度我们设定为50,’<unk>’用于表示词频低于记录最小值5的单词,’<start>’和’<end>’分别用于标记序列的开始与结束。每张图片最多保留5种caption用于后续的评估,图片数据通过h5py文件保存,图片caption与caption长度通过json文件保存,三类文件内容项一一对应,用于构建数据集进行训练与评估,在数据集的构建过程中,图片caption、caption长度与对应图片索引之间有模5的关系。2.1.2视觉注意力模型构建训练具体实现在实现了数据的处理之后,就可以进行结合注意力的Encoder-Decoder模型结构的构建。编码器中图片在经过卷积神经网络处理后还要传入一个AdaptiveAvgPool2d模块进行平均池化,其目的是将不同大小的图片编码成相同尺寸的向量提取,方便后续的处理,经过下采样的图片表示被统一缩放成(14,14,736)尺寸,其中14为预设定的encoded_image_size,736为模型的encoder_dim,这个统一尺寸的图片表示与对应图片的caption及captionlength一起被解码器接收。解码器首先将编码器提取的图片向量表示扁平化为(196,736)大小,即把原本的enc_image_size×enc_image_size转为一维的像素数目表示num_pixels。对于图片表示、图片caption和caption长度数据对,我们将它按照caption长度降序排列,用于减少后续在训练过程中处理补全长度词’<pad>’所带来的无意义的计算资源浪费,并把所有captionlength减一作为解码阶段的decodelength,因为到达’<end>’位置时该句的解码工作就结束了。在完成上述工作后,我们进行词嵌入,将图片caption由词表空间大小嵌入到512维的向量空间中,并使用多层感知机以编码器输出作为输入对LSTM模型的初始隐藏层状态与单元状态进行初始化。在解码阶段,我们首先使用由多层感知机实现的注意力模型进行每个位置相对权重alpha的计算,再结合注意力机制与已提取的图片向量表示计算出上下文向量attention_weighted_encoding,并用门控单元gate_f_beta对上下文向量进行加权用来更好地对图片中的目标物体进行识别。解码过程主要基于时间步的迭代进行,并选择使用Pytorch提供的LSTMCell结合for循环进行实现,避免直接使用LSTM模块整体迭代时无法在每一个解码步骤执行注意力机制,把上下文向量和嵌入向量连接与隐藏层状态、记忆单元状态一同输入LSTMCell后就能完成一次解码步骤的执行,实现的具体LSTM单元结构如图2.3所示。训练时,对于解码出的caption结果与真实的图片caption标签,首先使用pack_padded_sequence去除’<pad>’占位符的冗余,本质上是将序列按列压缩,去除冗余的过程如图2.2所示:图2.2pack_padded_sequence使用原理在去除冗余后计算它们之间的交叉熵损失并结合随机注意力机制的正则化损失得到模型的整体损失,就可以进行反向传播与权重更新。实验证明,模型损失与BLEU值不是总是呈正相关的,因此即使损失持续下降,也应该在BLEU出现下降情况时尽早停止训练,这里使用epochs_since_improvement记录从上次BLEU值提升后迭代经历的轮数,超过20轮停止训练。在计算模型BLEU时,涉及到给定多个captionreferences与单个captionhypotheses的比较,此处使用nltk库的corpus_bleu模块实现。2.1.3基于束搜索的模型评估实现模型评估过程中对图片数据的处理与训练过程相似,由于采用束大小为K的束搜索方式,因此要在经过图片扁平化及前面的一系列处理后将其扩展为k维,每个预测序列从’<start>’开始解码,当序列解码到’<end>’时将其从解码队列中移除,用小于k的整型数s表示队列中未完成解码的序列数,解码时使用单层LSTMCell进行预测经topk选择处理后逐词将其加入到序列当中,当序列长度超过最大长度50时跳出解码循环。利用模型推断时,还使用了matplotlib.pyplot库函数进行了位置相对权重alpha的可视化,即用不同时刻整张图片局部位置相对权重的大小控制该位置生成图像的透明度,以此把当前时刻解码单词与图片的部分区域相对应。2.5图像生成任务实现2.2.1数据处理本系统的图像生成任务子系统采用的数据集为CenterforMachinePerception(CMP)Facades数据集,该数据集内包含来自世界各地不同风格的建筑物图片,标签为人工注释的草图。数据处理时首先进行数据集的读取并执行正则化,随后进行数据增强,包括将图片重设定为286×286并随机剪裁成256×256尺寸,以及对图片进行随机水平翻转,以避免模型在训练的过程中出现过拟合的现象REF_Ref150\r\h[20]。2.2.2条件对抗网络模型构建训练具体实现图像理解任务子系统生成器模型的下采样部分由网络结构优化方法搜索出的卷积单元组合而成,上采样部分由对应的反卷积函数组成。对于生成器下采样部分每个卷积单元后的激活函数,我们采用固定值为0.2的LeakyReLU函数,避免在输入负值时出现一阶导数恒为0的“DeadNeuron”现象,上采样部分的反卷积函数之后,还要进行批归一化与比率为0.5的Dropout以避免过拟合现象等的发生。与此同时,由于采用U-net结构,编码器与解码器区域对称的第i层与第n-i层还要添加残差连接来完成信息的共享,这个过程我们通过将二者沿原channel维度连接来实现。256×256的输入图片在经过上述信息流动过程后重新恢复成相同尺寸的图片作为整个模型的目标输出。判别器结构同样采用卷积单元实现,每个单元执行后的结果也要进行批归一化与比率为0.5的Dropout。它接收生成器G生成的图片与输入图像的真实标签并把二者沿原channel维度连接,在经过中间卷积单元后由Sigmoid函数处理成30×30的patch矩阵用于判别器loss的计算,生成器与判别器整个信息流动过程分别如图2.3(a)与图2.3(b)所示。模型训练时,在数据集处理构建并且本轮迭代生成器给出生成结果后,判别器首先会根据输入图片与其对应的真实标签产生一个patch矩阵,并将它与形状相同的全1矩阵进行交叉熵损失函数的计算作为D_real_loss,其后又会根据输入图片与生成器的生成结果按相同方式计算出D_fake_loss,并把二者的均值作为判别器的最终loss图2.3生成器判别器信息流动过程进行反向传播,采用Adam优化器进行权值的更新。而对于生成器,它会使用判别器权值更新后对输入图片与生成图片计算出的交叉熵损失结合生成图片与真实标签的L1损失作为生成器的最终损失,进行生成器的训练。上述过程迭代20轮后,模型基本收敛,此时生成器就可以单独用于目标图片的生成。2.2.3寻找指标评价模型图像生成任务模型作为生成式模型,其性能评估具有一定的挑战性,本系统选择从感知哈希算法及三通道直方图算法相似度两方面对模型进行评价。感知哈希算法将首先将要处理的图片转化为浮点型的大小为32×32的灰度图,然后进行离散余弦变换(DiscreteCosineTransform,DCT)得到原图片的去相关矩阵,并对其使用掩码操作只保留左上角的8×8矩阵,用以代表图片的最低分辨率。对于该矩阵的每一个元素,将它与矩阵所有元素的均值作比较,就能得到一个长度为64的哈希序列,将输入图片与生成图片经感知哈希算法得到的哈希序列进行按位比对,对能得到两张图片对的最终相似度,哈希值越小,代表相似度越高。三通道直方图算法将图片分离为RGB三个通道,对于每一个通道,通过calcHist函数将其映射到像素值为0到255的256个bin上,即分别统计每个像素值所对应的像素个数,随后计算输入图片与生成图片每个通道直方图的重合度并求出平均值,用该均值作为图片间的相似度标准。2.6风格迁移任务实现2.6.1卷积神经网络模型构建训练具体实现风格迁移任务子系统采用网络结构优化方法搜索出的卷积神经网络实现,并基于该网络的卷积结构进行图片特征矩阵的提取。由于该模型针对Imagenet数据集训练,因此对于内容图片与风格图片,我们首先使用Imagenet数据集均值标准化后进行训练,在图片保存前再去除。生成图片的初始化采用内容图片的拷贝,完成内容及风格提取层的选取后,分别使用MSELoss以及经Gram矩阵计算后的MSEloss,结合内容及风格权重超参数α与β进行内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论