基于卷积神经网络和边缘检测的自然纹理合成算法 下载: 1136次
1 引言
纹理合成是以样本纹理图像为基础,通过相关算法重新生成一个新图像的过程,新生成的图像无论在结构上还是视觉上都与样本纹理相似。早期的纹理合成一般采用两种方式。一种是以像素为单位进行采样生成纹理图像,一次只能合成一个像素,这类算法以文献[ 1-3]中基于像素点的纹理合成算法为代表。基于像素点的纹理合成算法合成速度慢,效率低下,显然达不到实时合成的需求。另一种是基于样本块的纹理合成,该种方法以样本纹理为源图像,对样本纹理进行块采样,通过相关算法输出生成目标图像,以文献[ 4-6]中算法为代表。基于块的纹理合成技术相对于基于像素点的纹理合成技术,提高了合成的速度,是目前采用较多的合成算法。
无论是基于像素点的纹理合成还是基于样本块的纹理合成,都是基于参数的合成方法,需要对合成过程进行实时监测,根据合成结果不断调整相关参数以便得到更好的合成效果。基于参数的纹理合成过程,需要进行繁琐的参数调整,在合成质量、稳定性以及不需要用户控制等方面都还有很大的改进空间。最近几年,基于深度学习的卷积神经网络(CNN)在计算机视觉等领域取得了较好的应用,比如在物体分类、图像识别、人脸识别以及图像分割等方面都取得了较好的效果。本文把基于深度学习的CNN应用到纹理合成算法中,在总结Gatys等[7]算法的不足之后提出了基于CNN和边缘检测的纹理合成算法,采用VGG-16(Visual Geometry Group)[8-9]模型进行纹理合成训练,相对于传统的基于参数的纹理合成算法,取得了更好的合成结果。
2 CNN和图像边缘检测
2015年Gatys等[7]把CNN用于纹理合成,取得比基于参数的纹理合成算法更好的合成结果。合成方法如下:1) 原始样本纹理输入到CNN模型,在该模型中计算多个层的特征响应上的Gram矩阵
2.1 深度卷积神经网络
VGG-19模型是基于深度学习的网络模型,该模型已应用于人脸识别、图像分类等领域。文献[
7]中使用VGG-19进行纹理生成训练,VGG在加深网络层数的同时为了避免参数过多,在所有层都采用3×3的小卷积核,卷积层步长设置为1。VGG的输入设置为224 pixel×224 pixel大小的RGB图像,在训练集上对所有图像计算红、绿、蓝(R、G、B)均值,然后把图像作为输入传入VGG卷积网络,使用3×3或者1×1的过滤器过滤,卷积步长固定为1。VGG全连接层有3层,激活函数整流线性单元(ReLU)用于隐层神经元输出,VGG的整体结构如
合成纹理模型如
式中:
Gatys等提出的算法采用了深度CNN模型来生成自然纹理,比传统参数化的纹理合成算法取得的合成效果更好。但Gatys等采用CNN模型来训练,需要花费较传统算法更多的训练时间,同时,在卷积过程中,采取最大池化的方式对卷积后的纹理图像进行处理,使得纹理图像的部分信息丢失,特别是图像的边缘结构信息,这也是该算法只能用于生成其自然纹理的原因。
2.2 图像边缘检测
图像的边缘信息往往体现在图像梯度信息发生剧烈变化的区域,图像的边缘给人们更强的视觉感受,所以图像的边缘信息在纹理合成过程中不可忽视。Gatys等提出的算法在对输入的纹理图像卷积后进行最大池化处理时会丢失图像的部分边缘信息,导致最终合成结果中边缘信息模糊不清,影响合成纹理的视觉效果。本文对卷积过程中图像的每一层进行边缘提取,然后把提取的边缘信息叠加到每个特征图中,很好地保留了纹理图像的边缘结构信息。采用Kirsch边缘算子进行图像的边缘信息提取[15],Kirsch算子8个方向的模板分别为
假设图像中任意像素点
式中:
使用Kirsch算子边缘提取效果如
图 4. Kirsch算子边缘提取。(a)原图像;(b) Kirsch边缘提取效果
Fig. 4. Edge extraction by using Kirsch operator. (a) Original image; (b) Kirsch edge extraction effect
3 算法步骤
改进后算法步骤如下:1) 输入源样本纹理到CNN的VGG-19中计算其各层特征图;2) 计算各层特征图的边缘信息并保留;3) 把保留的各层特征图的边缘信息进行叠加;4) 对各层进行梯度下降,输出Gram矩阵生成对应的纹理图像。改进算法流程如
4 实验结果分析
4.1 实验参数
所有实验环境为主频 3.7 GHz,内存为26 GB,GPU 为 NVIDIA Titan X,Python版本为3.6,网络采用TensorFlow框架编程实现。在实验中,过滤器大小为3×3×
4.2 实验结果对比分析
为验证算法的有效性,对算法生成的自然纹理与文献[
4]以及文献[
7]的输出效果纹理图进行了对比,如
由
图 6. 生成纹理效果图比较。(a)输入源纹理;(b)文献[ 4]算法效果;(c)文献[ 7]算法效果;(d)改进后算法效果
Fig. 6. Comparison of generated texture images. (a) Input source textures; (b) results of algorithm in Ref. [4]; (c) results of algorithm in Ref. [7]; (d) results of improved algorithm
5 结论
基于深度学习CNN,研究了纹理图像的边缘结构信息以及基于CNN的VGG-19模型对生成自然纹理图像效果的影响。实验结果表明:1) 基于CNN的VGG-19模型在计算输入图像各层特征图时,采用最大池化的方式对各特征图进行处理,会导致各特征图丢失部分边缘信息,影响其纹理的生成效果,采用平均池化对特征图进行处理,能取得比前者更好的生成效果;2) 纹理图像的边缘结构信息对合成纹理的效果有较大影响,在计算各层特征图时保留各层特征图的纹理边缘信息,在执行梯度下降时再把各层的边缘信息与其各特征图进行叠加,最后执行梯度下降后生成的纹理能取得较好的效果;3) 基于块采样的Image quilting纹理合成算法采用在样本空间搜索匹配块的方式进行合成,该方法受限于有限的样本空间,导致合成的纹理图像有太多的重复纹理块,影响自然纹理的视觉效果;4) 基于CNN模型的纹理生成方法避免了基于块采样的纹理合成样本数量有限导致合成结果有重复块的情况,能取得较传统基于参数化的纹理合成算法更好的效果。
[1] Wei LY, LevoyM. Texture synthesis over arbitrary manifold surfaces[C]∥The 28th Annual Conference on Computer Graphics and Interactive Techniques, August 12-17, 2001, Los Angles. New York: ACM, 2001: 355- 360.
[2] TongX, Zhang JD, Liu LG, et al. Synthesis of bidirectional texture functions on arbitrary surfaces[C]∥The 29th Annual Conference on Computer Graphics and Interactive Techniques, July 23-26, 2002, San Antonio, Texas. New York: ACM, 2002: 665- 672.
[3] AshikhminM. Synthesizing natural textures[C]∥Proceedings of the 2001 Symposium on Interactive 3D Graphics, March 19-21, 2001, North Carolina. New York: ACM, 2001: 217- 226.
[4] Efros AA, Freeman WT. Image quilting for texture synthesis and transfer[C]∥The 28th Annual Conference on Computer Graphics and Interactive Techniques, August 12-17, 2001, Los Angles. New York: ACM, 2001: 341- 346.
[5] 薛峰, 成诚, 江巨浪. 基于Wang Tile的改进纹理合成算法[J]. 计算机应用, 2010, 30(8): 2098-2100, 2156.
[6] KwatraV, Schoed LA, EssaI, et al. Graphcut textures image and video synthesis using graph cuts[C]∥The 30th Annual Conference on Computer Graphics and Interactive Techniques, July 27-31, 2003, San Diego, California. New York: ACM, 2003: 277- 286.
[7] Gatys LA, Ecker AS, Bethge M. Texture synthesis using convolutional neural networks[EB/OL]. ( 2015-12-06)[2018-11-01]. https:∥arxiv.org/abs/1505. 07376.
[8] Cadieu C F, Hong H. Yamins D L K, et al. Deep neural networks rival the representation of primate IT cortex for core visual object recognition[J]. PLoS Computational Biology, 2014, 10(12): e1003963.
[9] SimonyanK, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. ( 2015-04-10)[2018-11-01]. https:∥arxiv.org/abs/1409. 1556.
[11] LeCun YA, BottouL, Orr GB, et al. Efficient backprop[M] ∥Montavon G, Orr G B, Müller K R. Neural networks: tricks of the trade. Heidelberg: Springer, 2012, 7700: 9- 48.
[12] JaderbergM, VedaldiA, ZissermanA. Speeding up convolutional neural networks with low rank expansions[C]∥Proceedings of the British Machine Vision Conference 2014, September 1-5, 2014, Nottingham, UK. Durham, England,UK: BMVA Press, 2014.
[13] Jia YQ, ShelhamerE, DonahueJ, et al. Caffe: convolutional architecture for fast feature embedding[C]∥The 22nd ACM International Conference on Multimedia, November 3-7, 2014, Orlando, Florida. New York: ACM, 2014: 675- 678.
[15] XieJ, LuY, GaoR, et al. Cooperative training of descriptor and generatornetworks[EB/OL]. ( 2018-10-29)[2018-11-01]. https:∥arxiv.org/abs/1609. 09408.
张定祥, 谭永前. 基于卷积神经网络和边缘检测的自然纹理合成算法[J]. 激光与光电子学进展, 2019, 56(13): 131001. Dingxiang Zhang, Yongqian Tan. Natural Texture Synthesis Algorithm Based on Convolutional Neural Network and Edge Detection[J]. Laser & Optoelectronics Progress, 2019, 56(13): 131001.