iOS 图片风格转换(CoreML)[译] 纹理网络:在前馈网络被开展纹理合成与风格化。

1. 前言

  图片风格转换最早入人们的视野,估计即使是Prisma这款来自俄罗斯之网红App。他采取神经网络(多重叠卷积神经网络)将图纸转换成一定风格艺术照片。利用图片风格转换算法,我们好将一个图放入以及训练好之神经网络模型进行展望结果取风格迥异,独具特色的图样。随着iOS11苹果推出了CoreML,我们好挺轻松将训练好之这些风格转换模型转换成为苹果的CoreML
Model,并利用是模型来开展图片风格转换。

图形风格转换 @Prisma

题目:Texture Networks: Feed-forward Synthesis of Textures and Stylized Images

2. 图片风格转换算法介绍

  2015年,德国科学家 Gatys等人上一篇名叫也《A Neural Algorithm of
Artistic
Style》的论文,打开了神经网络在图像艺术创作的大门。作者以VGG16型对平摆放原图(Content
Image)和同一布置风格图(Style
Image)分别进行图像特征提取。通过动用对少数栽特色构造损失函数,对同一张初始化图片进行损失价值计算并上报重绘图像得到生成图(Generated
Image)。但是是算法每一样潮杀成一摆图片都需开展同样不良网络训练,需要耗费的年月比丰富。斯坦福大学之Johnson[6]对等人提出了快速风格转移算法,训练一个网,对于自由一摆放图片都好转移成网络对应之风骨。快速更换算法包含两独网。一个也图转换网络(Image
Transform Network),一个吗损失网络(Loss
Network)。在教练等采用大量图片用单薄独大网展开训练得模型,在输出等套用模型将结果开展输出得到生成图。他们得出的纱相对Gatys的型得到生成图的速度快齐三个数据级。我们在iPhone上开展图纸风格转换的上可以动用Johnson的点子迅速的生成风格图片,当然使用Gatys的主意吧是可以的,但是于生成图片的时节会消耗又多的时刻。

速风格迁移算法

  上图就是凡是飞速风格迁移算法的整布局图,该算法包括图形转换网络和损失计网络。其中图片转换网络是一个差不多交汇卷积神经网络,它将一如既往布置输入的本来图片转换成为同摆设生成图片。损失计网络是一个VGG-16网络,用于计算图片转换网络生成图片对于咱们输入的风格图和原图之间的损失大小。通过测算生成图与原图的情节损失以及生成图与风格图的品格损失大小来判定生成图的质量。通过不停精打细算来减损失,反向传播及图片转换网络并对准其开展优化,最终赢得合格的图样风格转换模型。而这个模型就可给我们不停用来进行图片及实际有平风格的转换。

图片 1

3. CoreML介绍

  CoreML 是 Apple 今年 WWDC
新出面向开发者的机械上框架。如果我们来一个MLModel我们好好的用Model进行结果的前瞻,所有的MLModel都见面生出以下结构。

MLModel结构

  一般一个MLModel文件会席卷MLInput,MLModel,MLOutput三有些,我们用数据封装成为Input并交付于MLModel,模型会展开结果预计并出口预测结果Output,我们还将预计的结果转换成我们要的数据类型。

效果图

4. 代码实现

  CoreML对图纸的拍卖还需要以图片转换成CVPixelBufferRef多少,这里提供相同段落UIImageCVPixelBufferRef的代码。

CVPixelBufferRef转换代码

  将图纸转换成CVPixelBufferRef随后放入模型进行处理生成Output并收获结果,结果为是一个CVPixelBufferRef的数据。

Output

  所以这里我们还需要以CVPixelBufferRef转回去UIImage,具体的兑现代码如下:

image.png

双重多具体的代码见项目。

图片 2

5. 细节优化

  • 文章地址:arXiv:1603.03417.《Texture Networks: Feed-forward
    Synthesis of Textures and Stylized
    Images》
  • Github链接:https://github.com/DmitryUlyanov/texture\_nets
5.1 合成图生成效果转换

突发性我们会以为合成图的效力并无乐意,如下面的以身作则图1跟2,我们可见到2早就跟1差异颇之慌了,一定程度及我会觉得风格过度了。这个时节咱们得经调整合成图的意义来换取整体构图之完整性,比如说图3的作风才发生50%。我们可以看图3化如会愈来愈具体要同时产生非常风味。此外尚好透过调整对比度,颜色饱和度来调动构图,这里虽需要根据图片消耗又多的时刻了。

示例图 @Fzliu

(转载请注明出处:[译] 纹理网络:在前馈网络中开展纹理合成和风格化
(zhwhong) )

5.2 合成图颜色转换

图片风格转换在我看来有几许凡破例而也是沉重的,那就算是颜色之迁。我么可以看来于示例图2面临,合成图是利用梵高的星空转换出来的图纸,整体图片纹理以及颜色进行了变。这个时节要我们期望保留原图的水彩如未知合成图的纹理,就好使用YUV颜色空间进行更换。

示例图2

YUV是图表的等同种多少格式,YUV中的“Y”表示图片的知道程度;“U”代表色度,也号称饱和度;“V”代表浓度。从YUV的示例图我们得老懂的看出她们之切切实实意思。

YUV示例

于此处我们得以看到其中U以及V可以充分好意味着图片的颜料,而Y代表了图片的大部情节。因此我们可以移植原图的U以及V到合成图上,就足以得示例图2蒙受的颜色转换合成图了。


6. 周转条件

  • Mac OS 10.12.6
  • Xcode 9 beta 6
  • Python 3.1
  • Tensorflow 1.0
  • Keras 2
  • Coremltools 0.4.0

Abstract

摘要:Gatys
等人多年来证实,深度网络可产生良好的纹路,也得据此纯的纹理样例来风格化一摆放图片。然而,他们之法门要经一个遥远而最占内存的梯度下降优化过程。我们于斯提出一个代的法,可以拿计算的承负转移至一个单身的求学等。给得一个纹理样例,我们的措施能够训练一个严谨的前面馈卷积网络来很成多单相同的纹路任意大小的样品,并以一个加以的图像转换成为拥有艺术风格的另一个图像。此结论的大网是非常轻量级的,但足以生出质媲美
gatys
等人的纹路,且提升了数百倍增之速。宽泛的说,我们强调的所以复杂且具有表现力的代价函数来训练前馈网络模型就同道,是那个有力以及持有灵活性的。

7. Demo

此间我拿长存的品格转换模型集合在一起写了一个作风转换Demo,具体可以呈现截图:

shoot1.jpeg

shoot2.jpeg

shoot3.jpeg

shoot4.jpeg

shoot5.jpeg

shoot6.jpeg

Demo地址:https://github.com/kingandyoga/StyleTransfer-iOS

一.简介

一些近来底行事说明深度神经网络在面临图像方面的挑战时凡独具良好能力的。大部分底变更网络是因此随意种子开始举行前馈计算,而Gatys等人发觉了异常让人激动的结果,通过对网进行描述性的研讨,比如图像统计。他们的之想法是减少图像生成的妄动取样以配合确定的统计特征。在纹理合成这块,参考数据是一个纯粹的可见纹理图,目标是生一个该纹理的样例图。在风格化这块,目标是还要兼容的第一图像的风格,(用部分小级别之统计数据来捕获),和亚图像的情(用高档别的统计数据来捕获)。通过这种艺术,一个图像的风格好于未转内容之前提下让另外一个风格取代。

相当统计特征的办事在实践中表现对,概念上是粗略的,且实验证实,用当图像分类等问题上的成的神经网络(如VGG)可以一直将来开图像的发。然而Gatys等丁感念的斯方法啊是产生短板的,建立于梯度下降漫长迭代的根底及之方案,必须依靠反向传播的历程来逐步转移像素点的价,直到出现期望的遍布。这样迭代的进程竟然以GPU上还急需几秒钟去产生一个老大粗尺寸的图纸,换成稀尺寸图片后尚可能面临内存不够用底问题,需要占用更多之内存。而同之相对立,本文提出的前馈网络生成器则另行强效率,因为它独自需要一个简单的简约的对准网络求值,不待担反向传播时之高昂代价。

于就篇论文中,我们主要关注前馈网络生成器在纹理合成与图像风格化方面的力。我们的行事任重而道远汇集在三个组成部分,第一,我们首赖证实前馈网络生成器的办法会发出质及多样性和Gatys等人口提出的主意相媲美的效能。第二,我们提出的别方法能够做到少只数据级的涨价与一个数目级的内存效率提升。用一个纯的一体的前馈网络带来的赛性能,促使我们发出能力去用风格化转移到视频以及手机用达到。第三,我们统筹了一个非常适合风格化任务的多尺寸生成器结构。

透过产生的净卷积网络(即我们称为纹理网络)可以变更任意大小的纹理和拍卖任意大小的图像。我们的方吧象征了一个有意思的教练概念,即简单的前馈架构配上复杂且有表现力的损失函数。我们深信,其他有有趣之结果,可以动用此法来闹。

立马篇论文里之另部分,讲述了图像和纹理生成技巧的概述(Sect2),详细描述了咱们的法门(Sect3)提供了以普遍的生挑战性的纹路集图片上的恢弘(Sect4)

8. 参考文献

  • [1]. Ethan Chan and Rishabh Bhargava. Show, Divide and Neural:
    Weighted Style Transfer[D]. Stanford University,2016
  • [2]. Leon A. Gatys, Alexander S. Ecker,Matthias Bethge. A Neural
    Algorithm of Artistic Style[D]. Germany,2015
  • [3]. Justin Johnson, Alexandre Alahi, Li Fei-Fei. Perceptual
    Losses for Real-Time Style Transfer and Super-Resolution[D].
    Stanford University,2016
  • [4]. Leon A.Gatys, Matthias Bethge, Aaron Hertzmann, Eli
    Shechtman.Preserving Color in Neural Artistic Style
    Transfer[D].Germany,2016
  • [5]. Apple Core ML documentation
    (https://developer.apple.com/documentation/coreml)
  • [6]. Style Transfer
    Sample(https://github.com/fzliu/style-transfer)
  • [7]. MLModelZoo

二. 背景及相关工作

1.用神经网络产生图片

貌似情况下,生成一个图像x的历程,可以作为从一个一定的分布P(x)开始的样品绘制问题。在纹理合成部分,一个遍布是由同样摆纹理样例x0确定的,因此我们好将纹理合成的长河写作:

图片 3

当作风转换上,这个一定的遍布是出于同摆放表示风格的图像X0和次布置表示可见内容之图像X1共同决定的,所以可以以作风转换的历程记否:

图片 4

(Mahendran & Vedaldi,2015;Gatys et
al.,2015a;b)将之问题简化成一个找到一个具有特征的先图片,构成一个梯度下降之题目。尤其是,为了打一个样例图片X0综合一个纹理,预图片可以表示也:

图片 5

关键的凡事先图片:

图片 6

一再不是唯一的,预采样是满多样性的,在实践中,样品采用部分优化算法从随机初始化Z出发,生成的图像就是函数的输出:

图片 7

这般的结果是一个遍布:

图片 8

深不便描述,但好爱采样,有酷好统计特征,能来让人欢喜的视觉效果和多元化的图像。(Mahendran
& Vedaldi,2015)和(Gatys et
al.,2015a;b)都管其的统计数据建立以深神经网络层的响应上。我们的法门复用了Gatys提出的依据特征图谱之间联系的法。

2. 描述性纹理建模

这法子所讲述的办法以及博老牌的视觉纹理模型产生十分强之联系。对于纹理,它是大的设—-P(x)是一个定点的马尔可夫以机场(MRF)。既然这样,纹理是遍历的,人们呢会考虑地方空间不移统计。

图片 9

其间i表示空间坐标,F通常是同组线性滤波器的输出。ψ是一个直方图算子。然后,空间平均本地统计的原型纹理x0接近其样本平均数:

图片 10

Zhu等丁得框架模型用了是真相归纳出极其特别接力熵分布

图片 11

λ是参数,来配合他们之经验估计。

图片 12

以此框架的缺点在于从极度特别熵分布取样很艰难,要化解之范围,需经过直接找到匹配所急需的统计的图像X来配合。
zhu等人口以线性滤波器,小波同直方图来树立他们的纹路统计,(Mahendran&Vedaldi,2015;Gatys
et
al.,2015a;a)通过预训练的深浅网络取统计信息,不同的是,他们认为风格化不是纹理合成的题材。

3. 生成器网络

一个摘取是下神经网络作为描述器,构建生成器网络X =
G(z)直接拿一个无限制或明确参数Z向量当作输入来出图片。如(dosovitskiy
et
al.,2015)的方式,学习的照耀从明确参数Z(例如拍摄对象的品种及观)的图像,这是经尽量拟合神经网络来减

图片 13

的反差,对于早已清楚的图参数组(Xi,Zi),虽然当时可能来视觉及深有吸引力的结果,但她需超前知道(x,

z)之间的关系并无能够支撑多样性。另一样种艺术是考虑一个函数g(Z),参数Z是未知之,并从(简单)随机分布着采样。网络的目标是用这些随机值映射到像是如果未的图像x

G(Z)。这虽需要我们衡量样品的色,这一般表示为X和一致组示例图像X1之间的离开X1~Xn。关键之挑战是离要能够包括明显可用之事例,以维护样本的多样性。生成对抗网络(GAN;(Goodfellow
et
al.,2014))解决了此问题,通过训练,结合生成器网络g(z),第二对阵网络f(x),试图区分样本g(z)和自然图像样本。然后f可以给用来作为一个衡量质量的样品,
g可以叫教练来优化其。LAPGAN(Denton et
al.,2015)把GAN以用到了一个卷积网络的拉普拉斯金字塔,DCGAN(Radford et
al., 2015) 进一步优化了扭转对抗网络GAN,从杀大之数据集中学习。

4. 矩匹网络

极端充分熵模型(Zhu et
al.,1998)与无限要命之平分差(MMD)的价值观密切相关(MMD)在(Gretton et
al.,2006)中所有介绍。关键是洞察某个确定分布之预期值

图片 14

寻有独一无二的确定分布p,从她派生的损失函数通过比网络样本的统计平均值

图片 15

的艺术来代替GAN。他们因此它们去训练矩匹配纱(MMN)并且动用它产生多少的图(例如手写数字集),我们的纱接近于矩匹配网络,不过用了颇突出之统计并且考虑了跟Li等人口一齐不同的利用。

三.纹理网络

咱现详细描述本文所提出的方。在可比高层次来拘禁(见图2),我们的道是训练一个前馈的生成器网络G(generator
network),采用噪声样本Z作为输入并生成纹理样本g(z)作为出口。对于作风的转换,我们扩张这个纹理网络,同时用噪声采样Z和情节图像Y,然后输出一个新的图像g(y,
z)此时纹理已受以及Y作为一个可见的品格。每一个纹理要风格都使训练一个独立的底生成器网络,一旦训练好,它好经一个行之有效之前馈的法,合成任意数量的即兴大小的图像。在训练的生成网络g时的一个第一挑战就是是构建一个损失函数,可以活动评估所来的图像的色。例如,GAN的核心思想是经过生成器网络来学学之损失。我们在Sect
3.1展示了一个非常强的损失函数可以起预先训练好之定势网络中引入统计描述来取,正如(gatys
et
al.,2015a;B)中所著。考虑到损失,我们连下讨论生成器网络的架,用于纹理合成(Sect
3.2)并以其放到图像风格化(Sect 3.3)。

图片 16

祈求2所提出的架构的概述(纹理网络)。我们训练一个生成器网络(左),使用的代价函数是依据一个永恒的优先训练的叙说符网络(右)的超强大的代价函数。在少数独网被,只有左手的生成器网络以让更新,并且以后来让用于纹理要图像合成。卷积块包含多独卷积层和非线性激活和采样及通道的连。生成器网络的不同分支操作以不同之面,是出于尺寸不同的噪音张量激活而来。

3.1 纹理和内容代价函数

咱们的代价函数来自于Gatys等人口之舆论,比较图像数据是经过一个先行训练好之CNN(一般是VGG系列的如出一辙放缓)来衡量的,这个预训练好之CNN本来是供应图像分类的。这个描述器CNN在此所以来衡量纹理原型x0和生成图片x之间的莫兼容程度。用

图片 17

表示第i只特点通道,通过描述器中第l层的卷积层在图片x上之变现得出。矩阵

图片 18

给定义也特点图片的内积

图片 19

考虑到是网络是一个卷积网络,要算而指向任何位置的特征i, j 做计算。因此

图片 20

负有一致的貌似结构,作为地方固定特点的无序的统计,是足以当做纹理描述符存在的。在尝试中,Gatys等丁用饱含VGG中一些交汇的矩阵集合来衡量纹理特征,这样在图x和纹理x0之间的之代价就是因此下式计算:

图片 21

除外纹理上的距离(texture loss),Gatys还用了一个content
loss(由Mahendran& Vedaldi,2015中提出),这个content
loss比较了图片于某个确定的卷积层上的出口(不划算进一步的统计数据如矩阵)

图片 22

Nl是特色通道在VGG第l层的通道数,与纹理差距相比最要害的不同之处在于:内容差距保留了原图的长空位置信息,因此这种Loss函数更切合代表内容信息若非是纹理信息。类似于Gatys等丁,我们以祭纹理损失(style
loss)配合训练纹理合成用的生成器网络,我们下一个纹理损失(style
loss)和情节损失(content
loss)的加权组合,配合训练用来开图像风格化的生成器网络。在后世的情事下,内容层不应该保留与纹理层一样浅层的物,只有高层的情节应叫保留。

3.2 生成器网络的纹理合成

我们现在议论用于纹理合成的生成器的组织及训练过程,把生成器网络的参数记为θ,这个网络被训练成用来讲一个噪声向量z转换成为一个出于纹理确定的分布Z。

图片 23

网布局:咱俩尝试了某些种结构用来做生成器网络g。最简易的凡如出一辙失误卷积,非线性激活和高达采样层,从一个噪音向量z起点,终止于做出同样布置图片。虽然这种类型的模子能产生合理之结果,我们发现,多规格架构的结果具有双重粗的纹路损失以及再次好之感知质量,同时使用比较少的参数以至于训练进度还快。图2暗含了我们的基本上规格架构的一个高层次的象征,将当以后详细介绍。纹理X0凡是一个tensor,shape=(M,M,3)包含了三只颜色通道,为了计算简单,假要分辨率M是2的盖,输入的噪声z是由K个随机tensor
zi组成,

图片 24

,我们一再用M=256
K=5,这个K个tensor都是独立与分布之,均匀分布的抽样。每个随机噪声张量是由于同样排列卷积和非线性激活层首先处理,然后简单少达成采样,再作附加通道连接在同步,最后都分辨率的张量最终用一个1×1底滤镜映射到RGB图像x上。在祈求2饱受,每一个卷积块都蕴涵了三只卷积层,每个层还接着一个Relu激活层,这些卷积层分别吗3×3,
3×3
和1×1底感受野。步长stride为1,用循环卷积来解决边缘问题,这个大适合用于纹理。特征图谱的数码,等于filter的数码,从最小8大路及极致深40通道,参数个数为65K横,可以减小到占300kb内存。上采样层之所以了简便的极度接近插值(我们尝试了咸卷积,效果不好),我们发现批量刚则化层能生老之助力训练。就在每个卷积层的末尾,重要之是,还要在连接层前面,因为沿着不同网络来之梯度需要经批量正则化来抵消一下。学习:读优化的长河用了随机梯度下降(SGD)算法,在各国一样涂鸦迭代时,SGD绘制一个稍稍批量的噪音向量zk,对转移的大网开展前为评估,得到相应的图像

图片 25

,利用描述器网络对其开展评估,获取纹理矩阵

图片 26

,最终计算Loss。(要了解

图片 27

)是固定的)在此之后开始倒往传播,生成器的参数在倒为传来时举行计算,根据纹理损失高达之梯度用来更新参数。LAPGAN也因此了大多规格的艺术,不过大凡子进行训练的,然而我们的生成器是端到端的在训练。

3.3图像风格化

以拿此办法以及图像风格化上,我们做了有些转,第一,这个生成器网络

图片 28

会见受涂改成:输入一个噪音变量z和一个图片y的附加,网络让教练成输出一个图像x,x在内容及靠近y,在作风及即x0。举个例子,y可以是某的相片,x0可以是千篇一律张印象使名画。纱布局:组织跟用来开纹理合成的是同的,唯一的重要性区别就在于,噪声向量zi,i=1K,要把输入图片y做为额外的通道联结上去(对y进行下采样获取不同尺寸),我们后来发现,把K从5改成6会带来更好的结果。\*\*学习:\*\*学习的过程是采样噪声向量ziZ自然图像yi~Y,然后调整生成器的参数θ,使得content
Loss和 style loss的及最好小:

图片 29

这里Z是和纹理合成时一样分布之一个噪声。Y是当图像的阅历分布,α是一个比重参数,为texture/style和content的比例。在训练中,我们发现上令人好奇的非常容易过拟合,而且它可以近似于当图像y的布,在一个不行小的图像池中。事实上,我们的结果被比起品质的且为此了许多底样例图片,我们管这样的实况归纳为:卷积结构采取当地操作,因为有相同之局部组织,只是图像Y、内容风格比例在转,所以于地方操作来说,想只要配合有的纹理会非常的艰难。尽管有这般的界定,所发出的风格化的图像通常有酷好之感知质量,虽然有点风格我们真不可能由此优化原有的道来获取好结果。

图片 30

Figure 3  与Gatys的效应相比

四. 实验记录重复多之技术细节

生成器网络的权重用Xavier的法子初始化,训练用Torch7实现Adam,迭代2000差,初始的就学速率为0.1,迭代1000软以后开始盖各200软0.7底百分比衰减。batch-size设置也16。和Gatys的论文被说之平等,纹理损失texture
loss用{‘relu1_1′,’relu2_1′,’relu3_1′,’relu4_1′,’relu5_1’},VGG19模子,内容损失用{‘relu4_2’}。完全训练好一个模子需要简单独小时,用NVIDIA
Tesla
K40,如果就待取得可承受的结果,则需之时日重新短,只需要好少之迭代。

纹理合成:咱俩把我们的计与Gatys做了部分较,我们还与DCGAN比了,还跟还跟Portilla比了。图4呈现了这四栽办法较过后的结果,从质量及的话,我们的生成器CNN和Gatys的结果是大抵的,比另外两种植办法发生的品质要好。然而生成器CNN更加的过人效率(看Sect4.1),图1连了再多的比较(生成器网络与Gatys及外办法的比)

图片 31

Figure 4  四种植方式以纹理合成上之对立统一

风格转换:训练集,自然图像是起ImageNet
ILSVRC2012的数汇总随机抽取的。至于Gatys等人得俗方式,我们发现风格化的结果是针对α比例非常聪明伶俐的(style/content的比例)。在测试的时候这参数在咱们的章程吃莫能够调动,但是我们发现这个比重还可以透过调整输入噪声z的深浅来调动(看图5)

图片 32

Figure 5  输入噪声z占比较之调动

我们将咱的法子与Gatys比较了,用了有些作风以及情节图片,发现结果是非常具有可比性的。有代表性的比,包括固定参数,是包在祈求3被之,更多之续资料,其他质量报告的结果记录在了图7中。

4.1 速度和内存消耗

咱们将咱的办法与迭代优化的点子比较快,通过权到达指定loss时每艺术需要有些时。图6显得了迭代优化的章程需要横10秒钟去来一个样品x,而我辈的法就需要20ms,达成了500加倍提速,这能挺好的支持部分就算经常以比如视频拍卖。产生这样斐然的距离有星星点点单由:1.生成器大网比VGG19略带太多,所以每次迭代的时候要抢之大半,我们的办法需要一个独立的网来评估,通过避免倒朝传来,我们的主意也减小了广大内存需求,我们的法门变256×256的图形消耗256MB,
Gatys消耗1100MB。

图片 33

五. 讨论

俺们提出了一个新的纵深上方式的纹路合成与图像化的思考,显而易见的,这个主意好为此来闹一些苛纹理及图片,用前馈网络的点子。能跟行使反向传播之Gatys的主意有一致搞得色。这个思路的打响在突出了前馈网络在复杂数据变化、复杂问题化解及之合适性。这无异于成功的基本点是下复杂的损失函数,设计不同的前馈架构,作为“专家”评估的前馈生成器的属性。因为我们的不二法门获得了发坏好效益的纹理合成,今后我们计划研究又好之损失函数来给纹路质量重好,实现了再也让人记忆深刻的结果。

图片 34

Reference

图片 35

图片 36

图片 37

增补资料

图片 38

生成器结构

图片 39

图片 40

图片 41

图片 42

图片 43

左边第一排列是style,上方第一执是content

图片 44

256×256好小训练之,但好据此来变化任意尺寸的图

图片 45


(注:感谢您的阅读,希望本文对你拥有助。如果看是欢迎分享转载,但请预点击
这里
获取授权。本文由
版权印
提供维护,禁止任何款式之不授权违规转载,谢谢!)

相关文章