前面我们介绍了基于卷积神经网络的图像风格迁移,利用一张content image 和 style image,可以让最终的图像既保留content image的基本结构,又能显示一定的style image的风格,今天我们介绍另外一篇类似的文章: Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis,这篇文章与之前的 Image Style Transfer Using Convolutional Neural Networks 的区别在于引入了 Markov Random Fields, 不再是像素的一一对应了,利用MRF,可以将feature maps 分成很多的patch,找 patch之间的匹配。

给定一张content image xc∈Rwc×hc 以及一张 style image xx∈Rws×hs,我们希望合成一张图像 x∈Rwc×hc, 将 style image的风格迁移到 content image 的 layout,并且利用 MRF 使得合成图像的 local patchs 与 style image 的类似,我们可以建立如下的能量函数:

E=Es(Φ(x),Φ(xs))+α1Ec(Φ(x),Φ(xc))+α2Υ(x)

我们需要求解上面的优化函数得到最优的 x

x=argminxEs(Φ(x),Φ(xs))+α1Ec(Φ(x),Φ(xc))+α2Υ(x)

Es 表示 style loss function,Φ(x) 表示神经网络中某些层里 feature maps 的一个集合,Ec 表示 content loss function,Υ(x) 是一个正则化选项,用来平滑最终的合成图像。接下来,我们可以看看每一个 loss function 的具体表达式:

Es(Φ(x),Φ(xs))=∑i=1m∥∥Ψi(Φ(x))−ΨNN(i)(Φ(xs))∥∥2

这里 m 表示Ψ(Φ(x)) 的基数,即local patch 的个数, Ψi(Φ(x)) 表示 Φ(x) 的一个local patch,而 ΨNN(i)(Φ(xs)) 表示 Φ(xs) 中 与 patch Ψi(Φ(x)) 最匹配的一个 patch,即

NNi=argminj=1,2...msΨi(Φ(x))⋅Ψj(Φ(xs))|Ψi(Φ(x))|⋅|Ψj(Φ(xs))|

简单来说,就是将feature maps 的集合 Φ(x) 生成很多local patch,这些 local patch 组成一个 patch 的集合 Ψ(Φ(x)), 在这个 patch 的集合中,每一个patch Ψi(Φ(x)) 在 Ψ(Φ(xs)) 都有一个最佳的匹配,Es(Φ(x),Φ(xs)) 计算的不是 pixel 之间的平方差,而是 patch 与 patch 之间的平方差,所有比起之前的图像合成算法,这个方法利用了MRF, 去寻找patch 与 patch 之间的关系,这样可以更好的保留局部的信息,但是算法也变得更加复杂。

content loss function 和之前的一样,计算feature maps 之间的欧氏距离:

Ec(x)=∥Φ(x)−Φ(xc)∥2

正则化选项的表达式如下:

Υ(x)=∑i,j((xi,j+1−xi,j)2+(xi+1,j−xi,j)2)

这个相当于在水平方向和垂直方向做差值。

将这三项结合起来,利用BP算法,求最终的合成图像 x.

机器学习: 基于MRF和CNN的图像合成的更多相关文章

  1. 基于Pre-Train的CNN模型的图像分类实验

    基于Pre-Train的CNN模型的图像分类实验  MatConvNet工具包提供了好几个在imageNet数据库上训练好的CNN模型,可以利用这个训练好的模型提取图像的特征.本文就利用其中的 “im ...

  2. FaceRank-人脸打分基于 TensorFlow 的 CNN 模型

    FaceRank-人脸打分基于 TensorFlow 的 CNN 模型 隐私 因为隐私问题,训练图片集并不提供,稍微可能会放一些卡通图片. 数据集 130张 128*128 张网络图片,图片名: 1- ...

  3. 基于区域的CNN(R-CNN)

    基于区域的CNN(R-CNN) Region-based CNNs (R-CNNs) 基于区域的卷积神经网络或具有CNN特征的区域(R-CNN)是一种将深度模型应用于目标检测的开创性方法.在本节中,将 ...

  4. 李宏毅机器学习笔记5:CNN卷积神经网络

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  5. 基于MatConvNet的CNN图像搜索引擎PicSearch

    简介 Picsearch是一种基于卷积神经网络特征的图像搜索引擎. Github:https://github.com/willard-yuan/CNN-for-Image-Retrieval Web ...

  6. 基于pytorch的CNN、LSTM神经网络模型调参小结

    (Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...

  7. 吴裕雄--天生自然 python数据分析:基于Keras使用CNN神经网络处理手写数据集

    import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mp ...

  8. 基于卷积神经网络CNN的电影推荐系统

    本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务. 推荐系统在日常的网络应用中无处不在,比如网上购物.网上买书.新闻app.社交网络.音乐网站.电影网站等等等等,有人的地方 ...

  9. 基于TensorFlow理解CNN中的padding参数

    1 TensorFlow中用到padding的地方 在TensorFlow中用到padding的地方主要有tf.nn.conv2d(),tf.nn.max_pool(),tf.nn.avg_pool( ...

随机推荐

  1. (转)c++ 中的using namespace std是什么意思,什么时候用

    使用std命名空间 98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题.举一个实例,请注意以下两个头文件: // one.hchar func(char);c ...

  2. (转载)iis7下站点日志默认位置

    转自http://www.cnblogs.com/mincyw/p/3425468.html iis7下站点日志默认位置   在iis6时,通过iis管理器的日志配置可以找到站点日志存储的位置. 但是 ...

  3. php语法同java语法的基本区别(实例项目需求,php才能熟)

    php语法同java语法的基本区别(实例项目需求,php才能熟) 一.总结 看下面 二.PHP基本语法以及和Java的区别 .表示字符串相加 ->同Java中的. $作为变量的前缀,除此之外,变 ...

  4. <h2>1. mongodb介绍</h2>

    1. mongodb介绍 2. ppt下载地址 http://download.csdn.net/detail/u014285882/7807105 阅读全文 本文已收录于下面专栏: mongodb使 ...

  5. 一次修复IncrediBuild Coordinator服务的经历

    作者:朱金灿 来源:http://blog.csdn.net/clever101 早上发现部门的分布式编译服务的服务端崩溃了,原来是IncrediBuild Coordinator服务启动不了.启动该 ...

  6. [ES7] Convert Any Function into an Asynchronous Function

    Any function can be made asynchronous, including function expressions, arrow functions, and methods. ...

  7. 重拾c语言之动态内存分配

    动态内存分配 传统数组的缺点: 1数组长度必须事先制定,且仅仅能是长整数不能是变量 2传统形式定义的数组该数组的内存程序无法手动释放 3数组一旦定义,系统就会为该数组分配的存储空间就会一直存在直到该函 ...

  8. php实现 删除字符串中出现次数最少的字符

    php实现  删除字符串中出现次数最少的字符 一.总结 一句话总结:数组排序是改变数组的,而其它函数一般不改变原数据,比如str_replace(); 1.单案例测试通过而多案例测试不通过怎么办? 检 ...

  9. Linux下停Tomcat服务器,出现Connection refused错误解决办法

    错误内容如下 : 2010-9-19 16:09:58 org.apache.catalina.startup.Catalina stopServer 严重: Catalina.stop: java. ...

  10. STS 3.6.4 SpringMVC 4.1.6 Hibernate 4.3.8 MySQL

    开发环境: Java 1.8 Spring Tool Suite 3.6.4 Spring faramework 4.1.6 Hibernate 4.3.8 Maven 2.9 数据库是MySQL 5 ...