深度卷积网络图像风格转移(一)需求分析
2017-05-05 20:48
162 查看
深度卷积网络图像风格转移(一) 需求分析
Taylor Guo , 2017年5月5日目标
图像风格转移
* 一天内的光照变化,不同天气的变化,四季变化
* 与背景相容的物体风格变化
这里指的是图像风格转移,并没有包含优化抠图与图像分割产生的效果
问题
效果图对比图像局部扭曲
风格溢出
图像与风格无法匹配
图像与风格无法匹配
由于极端匹配导致失效:比如花与城市场景,沙发与火焰,等等
输入图像与参考图像的内容不同:不相关的内容不在预期范围内
可以使用手动场景分割解决这个问题。
分析
最优化问题风格转移问题:是利用CNN生成一张新图像,内容和输入图像一样,风格和想要变成的风格的参考图像一致;也可以将这个问题理解成最优化问题进行数学表示;
最优化两个图像之间的内容差别:
图像内容差异最小化为:卷积神经网络中某层滤波后的结果的差的平方的平均值;
最优化两个图像之间的风格差别:
图像风格差异最小化为:卷积神经网络中某层滤波后的结果的差的平方的平均值;其中的格莱姆矩阵是表示图像特征的向量之间的內积。向量內积的几何意义可以理解为两个向量在方向上的接近程度。
色彩空间仿射变换
1 . 输出图像在局部出现扭曲 (为什么会扭曲,真相不明?风格变换导致的扭曲?)
2 . 如果是风格转移导致扭曲,将变换约束在色彩空间上;全局色彩变换使用空间不变转移函数,处理全局颜色平移,调整色调曲线(高低对比度)。可以用色彩概率分布函数,可以用直方图类比,但这些方法不能处理复杂的风格。如果要进行整体强烈变化,比如摩天大楼几个房间灯光点亮,但又不能扭曲局部几何空间。
3 . 局部风格变换:对新建的图像进行局部仿射色彩变换约束,防止扭曲;在构建新图像的过程中,需要从输入图像中获取内容,从参考图像中取得风格,在这个过程中要最小化内容和内容的差别、风格和风格的差别;同时要防止图像局部扭曲,引入局部线性模型的拉普拉斯抠图代价函数作为正则项作为修正。
4 . 局部线性拉普拉斯抠图代价函数,是输入图像与输出图像向量化的矩阵乘积。
拉普拉斯抠图
抠图,是将任何一个需要的物体无缝插入到一个指定的背景中, 当然也可以将电影演员融入到计算机所绘制的虚拟场景中去。实践中,通用的抠图技术是将用户感兴趣的部分(前景部分)从图像其他部分中分离出来的数字图像处理技术,比如著名的蓝屏抠像, 它需要将那些待抠取的物体置于蓝色或者绿色背景前面, 具有很大的局限性。自然图像抠像主要分为三类:基于采样的方法,基于传播的方法,采样与传播相结合的方法。 基于采样的方法需要用户给出较为精确的三分图, 然后对于未知区域的像素的一些抠像参数, 通过利用附近的样本来近似求得. 该方法的优点是计算速度快, 缺点是需要较为精确的三分图, 并且当采样不准确时会得到较差的抠像结果, 因此鲁棒性不强。基于传播的方法 一般只需要用户给出简单的前景和背景指示线条, 然后通过某种方式将信息传播到附近的像素. 该方法的优点是只需要用户提供粗糙的三分图, 并且该方法对大部分的图片均能获得较好的抠像效果, 因此具有较强的鲁棒性. 缺点是部分先验信息浪费, 好的传播方法的设计较为困难, 计算速度慢. 采样与传播相结合的方法是目前研究的热点, 它能够有效结合前两类方法的优点, 但当采用的采样方法以及传播方法不好时, 它也会遗传前两类方法的缺点.
采样与传播相结合的方法通常将抠像问题转换为能量函数最小化问题, 能量函数由两部分构成, 一部分为数据能量项, 另外一个部分为光滑能量项, 求解图像的前景掩码层a的一般数学模型如下:
根据Es和E的构造方法的不同, 基于采样与传播相结合的抠像方法有多种。
能量函数也就是损失函数,在抠图里面就是希望前景颜色和背景颜色差异最小化,利用最小化问题求出不透明度值。继而得到前景颜色和背景颜色。图像可以表示成多个图层的合成;每个图层的系数为该层的掩码,这个掩码是稀疏的,图像中的每个像素只受少数几个层的影响,只有少部分像素由多个不同层混合而成。 掩码与拉普拉斯矩阵特征向量之间是线性变换。 这个线性变换矩阵就是不同图像层之间的连通块,由像素子集构成。
拉普拉斯抠图矩阵,可以简单理解为像素之间是否联通的关联矩阵。
拉普拉斯矩阵及局部平滑能量函数
图像抠图算法假设每个像素由前景颜色和背景颜色线性合成,参数为不透明值α。对毛发,烟雾,火焰等无法用单像素表达或半透明的物体,图像抠图相比图像分割有明显优势。
参考:
自然图像抠图技术综述
闭合型抠图的研究与应用
图像语义分割
采用图像语义分割,因为Gram Matrix 对神经元响应值进行了编码,限制了语义内容变化,导致风格“溢出”。
因此,用语义分割算法,对输入图像和风格参考图像生成图像分割遮罩。将遮罩添加到输入图像上作为另外一个通道,增强CNN中的风格算法。
语义分割增强的风格损失函数
c是语义分割遮罩中的通道数量;Ml,c是通道图像。
方案
VGG-19 网络架构参考代码分析
INPUT: [224x224x3] memory: 224*224*3=150K weights: 0 CONV3-64: [224x224x64] memory: 224*224*64=3.2M weights: (3*3*3)*64 = 1,728 CONV3-64: [224x224x64] memory: 224*224*64=3.2M weights: (3*3*64)*64 = 36,864 POOL2: [112x112x64] memory: 112*112*64=800K weights: 0 CONV3-128: [112x112x128] memory: 112*112*128=1.6M weights: (3*3*64)*128 = 73,728 CONV3-128: [112x112x128] memory: 112*112*128=1.6M weights: (3*3*128)*128 = 147,456 POOL2: [56x56x128] memory: 56*56*128=400K weights: 0 CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*128)*256 = 294,912 CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*256)*256 = 589,824 CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*256)*256 = 589,824 POOL2: [28x28x256] memory: 28*28*256=200K weights: 0 CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*256)*512 = 1,179,648 CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*512)*512 = 2,359,296 CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*512)*512 = 2,359,296 POOL2: [14x14x512] memory: 14*14*512=100K weights: 0 CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296 CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296 CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296 POOL2: [7x7x512] memory: 7*7*512=25K weights: 0 FC: [1x1x4096] memory: 4096 weights: 7*7*512*4096 = 102,760,448 FC: [1x1x4096] memory: 4096 weights: 4096*4096 = 16,777,216 FC: [1x1x1000] memory: 1000 weights: 4096*1000 = 4,096,000 TOTAL memory: 24M * 4 bytes ~= 93MB / image (only forward! ~*2 for bwd) TOTAL params: 138M parameters
相关文章推荐
- 深度卷积网络图像风格转移(三)代码分析
- 深度卷积网络图像风格转移(二)架构分析
- 深度卷积网络图像风格转移(四)功能泛化
- 图像风格转移中神经网络模型的使用
- 网络规划师复习笔记------需求分析报告(需求说明书)与通信规范说明书
- 网络相册产品分析(一):十年需求变迁
- jupyter+tensorflow实现图像的风格转移(style-transfer)
- 网络的需求分析和规划
- 谈网络分析产品的用户需求1 推荐
- A Neural Algorithm of Artistic Style 图像风格转移
- 网规:第2章 计算机网络规划与设计-2.3网络需求分析
- 卷积神经网络图像风格转移 Image StyleTransfer Using Convolutional Neural Networks
- Tensorflow实现Neural Style图像风格转移
- 基于C/S架构的3D对战网络游戏C++框架_01服务器端与客户端需求分析
- 神经网络纹理合成和损失函数风格转移
- 软考网络规划设计师学习笔记连载之十三(2.3网络需求分析)
- 【神经网络与深度学习】neural-style、chainer-fast-neuralstyle图像风格转换使用
- 光电转换器常见问题分析—网络物理安全辨误