目录:

  • 相关链接
  • 方法亮点
  • 相关工作
  • 方法细节
  • 实验结果
  • 总结与收获

相关链接

论文:https://arxiv.org/abs/1803.02077

代码:https://github.com/roimehrez/contextualLoss


方法亮点

  • 文章主要提出了一个新的损失函数Contextual Loss,这个loss一开始是针对Non-Align Data提出的损失函数。主要通过计算图像特征的相似度来衡量两张图片的相似性。

最令人惊艳的是,使用该损失函数,一个简单的CNN网络就能够达到和CycleGAN一样的效果。

作者在紧接着的论文中也证明了该损失函数在一对一图像超分中也能取得不错的结果。


相关工作

目前针对loss的研究有很多,在今年ECCV上收录的文章中就可以看出来。

目前已有的loss主要有一下几种:

  1. 针对图像的pixel2pixel的loss:L1 , L2,SSIM
  2. 针对图像特征的loss:perceptual loss,Gram loss
  3. 针对生成图像和目标图像的“逼真”程度的loss:GAN loss

L1 , L2,SSIM这类损失函数对input 和GT 的要求比较高,是逐像素进行匹配的,对以PSNR、SSIM为客观评价指标的问题贡献比较大,但是从目前的研究来看,单单用这类损失函数,已经不能够满足我们的需求了。比如SRGAN这篇论文中提到MSE代价函数使重建结果有较高的信噪比PSNR,但是缺少了高频信息,出现过度平滑的纹理。perceptual loss的提出主要是为了更好的保留图像的高频信息https://www.jianshu.com/p/58fd418fcabf,与perceptual loss相似的,Gram loss也是计算在特征层上的损失,这两个损失都是在整个VGG网络中得到的特征层进行的计算,约束的是全局高频特征的相似性;然而图像的相似性一般是局部的,这些约束也不是十分的合理,本文的方法提出的损失函数约束的是局部的特征。在风格转换、图像翻译等任务中,GAN loss是一个常见的损失函数,通过简单的判断生成的图像是否“逼真”到以假乱真的程度,但是GAN的模式崩溃问题到目前都没有一个较好的解决办法。


方法细节

两张图片要怎么判断是否相似呢?作者认为只要两张图片的特征中,相同区域的大部分特征能找到彼此相似的点就可以认为两张图片是相似的。如图3(a),两张图像同一区域的特征块中大部分是相似的(与点在特征图块的位置无关,只要能相似即可),就可以认为两张图像相似。这跟perceptual loss最不同的就是perceptual loss是跟特征的位置相关的(位置按点一一对应起来)。

在这篇文章中,作者利用了余弦相似的方法,通过计算特征之间的余弦距离衡量两个特征的相似性。

具体计算方法如下:

其中的x,yj 为1*1*Channel大小的特征向量,N为特征patch大小


实验结果

作者通过一系列的实验来验证他们提出的损失函数的有效性;

图6的实验:一张噪声图像(input)和多张清晰图像(GT)(数据采集方法为,一张高清图像中裁剪出N+1张图片,每张图片的采集的位置随机小偏移,对其中一张图片加入噪声作为input,其他N张图片作为GT),从图6可以看出,由于随机偏移的存在,如果单纯的使用L1 损失(位置相关)的话,会引入模糊而使用本文提出的损失函数并不会引入模糊。并且我们训练的时候并不需要指定一张GT和input进行训练,每一轮的GT都可以是不一样的。(即Non-paired)

本文还通过修改一些经典方法的损失函数与原有的方法进行对比,修改方式如下表所示:

style transfer:

从上面的结果对比中可以看出来,本文提出的方法学习的是局部的特征,而不是全局的特征。CNNMRF方法学习到的是图片的全局特征,将Target的背景信息也学习到了。

在上面这个实验中,本文的方法仅使用了一个简单的CNN网络和本文提出的损失函数就能够达到和CycleGAN(两个生成器和两个判别器)差不多的效果。

另外两个实验的结果是以动画的形式展现的,这里没法展现就不放出来了,有兴趣的可以下载原论文看。

紧接着作者将提出的损失函数应用到超分中,也取得不错的效果,这便是另外一篇文章的工作了。Maintaining Natural Image Statistics with the Contextual Loss

文章对比实验的设置如下:(其中我们的方法的网络结构是基于SRGAN,只修改了损失函数)

从上图中可以很直观的看出,引用了本文提出的损失函数,生成的图像更接近GT,而不会像baseline方法,在耳朵地方多出一些皱纹。并且加入本文的损失函数,不仅在客观指标上,在感知指标上均得到了很大的提升。


总结与收获

本文主要是提出了一个基于余弦相似度的损失函数,该函数应用在VGG提取的特征层上,与以往的损失函数最大不同的是,该损失函数应用在特征层相应位置上的patch块,而不是应用在整个特征。高层特征层一般包含的是图像的语义特征,也就是说文章的损失函数是基于语义的,这也就是本文的loss为什么Contextual Loss。应用该损失函数做图像风格转换任务,能够实现眼睛-》眼睛、嘴巴-》嘴巴等对应区域的风格转换。该损失函数目前看来可以应用的领域有很多,不仅仅局限于风格转换的任务,缺点大概就是计算量比16年提出的perceptual loss要来的高,不过这主要取决于特征的patch块(或对特征进行采样)的大小。从这个角度来看,perceptual loss算是 Contextual Loss 的一个特例。


【论文阅读】The Contextual Loss for Image Transformationwith Non-Aligned Data(ECCV2018 oral)的更多相关文章

  1. 【论文阅读】Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks

    Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks 参考 1. 人脸关键点: 2. ...

  2. 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

    今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...

  3. 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection

    论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...

  4. 论文阅读 | FoveaBox: Beyond Anchor-based Object Detector

    论文阅读——FoveaBox: Beyond Anchor-based Object Detector 概述 这是一篇ArXiv 2019的文章,作者提出了一种新的anchor-free的目标检测框架 ...

  5. 论文阅读 | Region Proposal by Guided Anchoring

    论文阅读 | Region Proposal by Guided Anchoring 相关链接 论文地址:https://arxiv.org/abs/1901.03278 概述 众所周知,anchor ...

  6. 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》

     论文阅读:Face Recognition: From Traditional to Deep Learning Methods  <人脸识别综述:从传统方法到深度学习>     一.引 ...

  7. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  8. [论文阅读]阿里DIEN深度兴趣进化网络之总体解读

    [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 目录 [论文阅读]阿里DIEN深度兴趣进化网络之总体解读 0x00 摘要 0x01论文概要 1.1 文章信息 1.2 基本观点 1.2.1 DIN的 ...

  9. BERT 论文阅读笔记

    BERT 论文阅读 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 由 @快刀切草莓君 ...

随机推荐

  1. new Date插入mysql数据库时多了一秒

    在使用new Date() 插入数据库时,查询出来比实际多了一秒,mysql 表字段设置为datetime类型,当时间精确到秒时,如果毫秒大于500时,会自动进位. 解决方法为格式化后再插入数据库.

  2. 使用face-api.js实现人脸识别(一)

    功能 第一阶段实现对图片中人脸的识别并打上标签(比如:人名) 第二阶段使用摄像头实现对人物的识别,比如典型的应用做一个人脸考勤的系统 资源 face-api.js https://github.com ...

  3. Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)

    任务:在CENT6.8系统中安装Apache(版本为:httpd-2.4.41) 前提:由于源码包必须先编译后安装,所以必须先安装编译器:gcc 理论步骤: 1.检测gcc软件包,如果不存在则进行安装 ...

  4. 解决logback不打印mybatis的SQL日志的问题

    工作这么多年,今天还是因为Logback的这个问题稍微卡了一下,惭愧. 问题描述: logback配置了如下信息: <appender name="sql" class=&q ...

  5. 四、pymysql模块、索引和慢查询

    目录 一.pymysql模块 (一)如何使用 (二)sql注入问题 二.索引 (一)主键索引 (二)唯一索引 (三)普通索引 (四)联合索引 (五)不会命中索引的情况 (六)explain (七)索引 ...

  6. Type of the default value for 'songs' prop must be a function

    eslint常会出现这样的错误提示,控制台打印:Type of the default value for 'songs' prop must be a function 解决办法有两种如下: 1:写 ...

  7. reduce,map,filter 的用法

    # filter用法 (对每一个数据进行筛选,满足条件的就保留)# 1,filter(功能函数,容器类型数据)# 2,过滤出来是一个地址,用list,或tuple进行包装# 3,过滤出来的是原容器类型 ...

  8. 陈莉君教授: 回望踏入Linux内核之旅

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 陈莉君 来源: 微信公众号linux阅码场(id: linuxdev) 初次踏入Linux 几多耕耘,几多收获 ...

  9. HTTP 304状态码的详细讲解

    首先,对于304状态码不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应. 客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Mod ...

  10. 学习笔记36_Razor

    *Razor视图引擎 在添加视图的时候,视图引擎除了有“aspx”外,还有Razor(CSHTML),就会在对应的文件夹下,产生 view.cshtml文件,那么,以后写C#代码,就可以 @for(v ...