点击上方“小白学视觉”,选择“星标”公众号

重磅干货,第一时间送达

0

1

论文概述

论文题目:《How much Position Information Do Convolutional Neural Networks Encode?》

论文地址:https://openreview.net/forum?id=rJeB36NKvB

这个文章解释了CNN是怎么学到图片内的绝对位置信息的。文章来自于加拿大学者,收录在ICLR2020。论文中主要说明了两件事:

卷积神经网络能够引入绝对位置信息,且不同的网络引入的程度不同。

绝对位置信息是通过zero-padding引入的,并且在深层的表征效果更好。

02

什么是图像中的绝对位置?

之前,CNN和绝对位置,这两个概念很少被一起讨论。

我觉得有两个原因:一是,大家普遍认为:CNN是平移不变的(对分类任务),或者说平移等变的(对分割和检测任务);二是,没有具体任务上的需求。比如对计算机视觉的三大物体感知任务,分类,分割和检测。物体分类跟位置没关系;语义分割作为像素级语义分类,也不依赖于位置;最有可能和绝对位置有关系的物体检测任务,被主流方法解耦了绝对位置,变成相对于锚框或者锚点进行局部相对位置的回归。这样,网络本身不需要知道物体的绝对位置,位置信息作为人为先验被用在前后处理进行坐标换算。但是在很多任务上绝对位置信息很有价值,比如实例分割等问题中,对象+绝对位置就能唯一确定实例了。

一个很显而易见的观察是,人的视觉系统是可以轻松知道绝对位置的,比如:“左上角有一只鸟,它又飞到右边了”。并且,对图像里的物体来说,本质上是通过位置和形状来区分不同实例的。

0

3

CNN怎么学到绝对位置?

这篇文章先做了假设:

首先,我们知道,卷积网络学习到的原图特征可用CAM进行显著性区域可视化。文中进行了一个简单的试验,对一张图片进行裁剪,测试裁剪前后的显著性区域的变化。

理论上,裁剪前后图片中,因为特征都相同,共同对象的显著性区域应该是不变的,但实际中发现裁剪后显著性区域也发生了偏移,这用卷积神经网络的平移不变性难以解释,怀疑是位置信息导致的。

于是,作者通过试验来进行分析是否卷积神经网络能够学习到位置信息。

实验具体网络设计:

可以看到,网络分为两部分:

Encoder:是经过预训练的ResNet或者VGG等的backbone,参数不参与训练,只作为一个前馈网络提取特征;

Position Encoding Module:由卷积组成,参数可训练,实验中只用了一个卷积。

输入任意图片(图像是有内容的),训练网络输出位置相关的图片。比如,输入噪声图片,希望网络输出水平坐标图(位置信息)。同时将图像归一化的梯度结果设置了5个目标mask:

H:水平方向V:竖直方向上G:高斯分布

HS:水平方向上的重复VS:垂直方向上的重复

上述的标签可以认为是一个随机标签,因为与图像的内容没有相关性,只和一些像素在图像中的位置有关系。

评估指标:SPC:spearman相关系数,衡量两个变量依赖性的非参数指标,用于评价两个统计变量的相关性。MAE:预测位置图和真实梯度位置图之间的平均像素差异。

其中VGG/ResNet表示利用预训练的权重提取特征图作为Position Encoding Module的输入。而PosENet的输入直接是原图。

从实验结果表格中可以看出,通过两者的对比发现,从原图中提取位置信息是非常困难的。但是经过神经网络的编码,提取到了一致的位置信息。而测试集结果的高性能表达,表明了模型并非是盲目地拟合噪声,而是提取了真实的位置信息。

具体来说,在有zero-padding的情况下,基于VGG和ResNet的模型都可以预测比较合理的位置相关的输出,比如横坐标或者纵坐标。

在没有padding的情况下,输出只会直接响应在输入的内容上,不能预测和内容无关的位置信息。

上图对结果进行了可视化,对应着ground truth,可以看到预测位置图与真实位置图之间的相关性,进一步揭示了这些网络中位置信息的存在。位置信息在分类的卷积神经网络结构中都隐式编码,无需进行任何明确的监督。

0

4

哪些因素影响绝对位置信息?

前面的实验验证实了卷积神经网络在分类任务中的预训练权重,能够编码绝对位置信息,然而这些编码受哪些因素影响呢?

因为绝对位置信息是通过Encoder模块得到的特征图,经过Position Encoding Module提取位置,而在提取过程中只有卷积操作。因此考虑卷积操作和特征图。

卷积核堆叠层数:如上面(a)结果所示,堆叠多层卷积可以提高网络的位置信息读取。原因可能是多个卷积层堆叠,增加了感受野。

扩大卷积核尺寸:从结果(b)可知更大的核尺寸可能会捕获更多的位置信息,这也和上面堆叠卷积层数相呼应,都是增加了感受野。

特征层的影响:与浅层的特征相比,深层的特征可获得更高的性能。但这里还有一个变量是各个层的空间通道数不一样,因此控制变量,使得具有相同的特征来对比明确了位置信息在网络深层有更强的编码。

0

5

绝对位置信息来自于哪里?

从前面两个实验了解到卷积神经网络具有编码位置信息的能力,且原图不具有引入位置信息。那么这个位置信息不是来自于原图,那么是来自于哪里呢?答案是Zero-Padding。

作者通过实验分析,对Position Encoding Module网络中的padding数进行控制变量测试,发现padding增加,位置信息更加显著。同时,利用VGG网络的试验也更加证实了padding引入位置信息。

从上图中可视化也可以看出padding引入位置信息的效果,特别是最后VGG,有无padding影响非常的大。

同样的,对于物体检测和语义分割任务,实验发现去除了padding操作之后性能下降很多。

0

6

总结

文中是通过实验的方式说明是zero-padding的作用,但是zero-padding具体如何引入位置信息的,其作用原理的原理可能还可以未来继续研究来解释。

虽然目前的CNN模型可以隐式的学到一定程度的位置信息,但是显然是不充分的。怎样更充分的利用绝对位置信息,非常值得进一步挖掘,CoordConv和semi-conv是很好的探索。

最直接的做法当然就是把每个像素的坐标concat到输入或者中间特征上,这种简单直接做法可以在SOLO的实例分割结果上带来3.6 AP的提升。

总体来讲,对位置信息的理解,或者说对zero-padding的理解,未来可以更好的设计一些网络和任务。比如需要位置信息的实例分割,对象检测等多引入zero-padding,而对于比如图像风格化中的style分支,由于不需要位置信息,减少使用可能会带来一些效果。

cnn生成图像显著图_基本原理 | 图片中的绝对位置信息,CNN能搞定吗?相关推荐

  1. cnn生成图像显著图_基于CNN与图像前背景分离的显著目标检测

    基于 CNN 与图像前背景分离的显著目标检测 东野长磊 ; 万文鑫 [期刊名称] <软件导刊> [年 ( 卷 ), 期] 2020(019)001 [ 摘 要 ] 为 了 解 决 计 算 ...

  2. cnn生成图像显著图_使用CNN生成图像先验实现场景的盲图像去模糊

    论文链接:https://arxiv.org/abs/1803.03363 CVPR2018 摘要 提出了一种基于数据驱动的判别先验的盲图像去模糊方法.此项工作是基于这样一个事实:一个好的图像先验应该 ...

  3. cnn生成图像显著图_CVPR2020论文解读:CNN合成的图片鉴别

    CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot... for now> 论文链接:h ...

  4. cnn 回归 坐标 特征图_论文笔记 | CNN 是怎么学到图片绝对位置信息的

    来自 | 知乎作者丨Xinlong Wang来源丨https://zhuanlan.zhihu.com/p/99766566编辑 | 深度学习这件小事仅作学术交流,如有侵权,请联系删文 昨天读到一篇挺 ...

  5. python生成k线图_基于tushare生成k线图

    tushare简介 TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据, ...

  6. java提取图片位置信息_实战项目——获取图片中的GPS位置信息和拍摄时间

    今天突然看到有人写过获取图片中位置信息的程序.我觉得很有趣,也就自己实践了一下,研究了一下 话不多说,先上代码 1 #!/usr/bin/env python3 2 #-*- coding: utf- ...

  7. python从视频中提取音频_提取视频中的音频——python三行程序搞定!

    原标题:提取视频中的音频--python三行程序搞定! 写在开头 身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外.我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一 ...

  8. python 结尾回车_理解不了Python正则表达式?我帮你搞定

    点击蓝字"python教程"关注我们哟! 在学习Python的过程中,我们难免会遇到比较晦涩.难以理解的内容,比如Python中的正则表达式.面向对象等内容,为了更好地帮助大家理解 ...

  9. CVPR 2018 | 使用CNN生成图像先验,实现更广泛场景的盲图像去模糊

    现有的最优方法在文本.人脸以及低光照图像上的盲图像去模糊效果并不佳,主要受限于图像先验的手工设计属性.本文研究者将图像先验表示为二值分类器,训练 CNN 来分类模糊和清晰图像.实验表明,该图像先验比目 ...

最新文章

  1. JavaScript—— 前端编程语言
  2. 火绒规则 禁止所有软件的安装_软件: Firefox 将禁止扩展静默安装
  3. lenovo电脑_联想推出了其最新的ThinkBook笔记本电脑产品ThinkBookPlus
  4. 如何设置Winform控件的ClientRectangle
  5. 安卓期末作品小项目_每日一个财务小知识——洞悉洞晰财务报告第一季
  6. System memory 466092032 must be at least
  7. CF1415D:XOR-gun(异或)
  8. UIControl-IOS开发
  9. BCD码和十六进制的区别【转】
  10. RDP协议详细解析(一)
  11. JS让文本以打字效果呈现出来
  12. 中原工学院计算机组成原理试卷,中原工学院计算机组成原理试卷.doc
  13. ps批量修改名片文字_PS批量制作多项字幕条
  14. C Primer Plus(第6版)第十章复习题答案
  15. python电影名称词云_Python爬取最近上映的电影评论并生成词云——误杀
  16. 科普:商标图样的要求有哪些?
  17. 易福门电感式接近开关IGS200
  18. 拯救行动 OpenJ_Bailian - 4116
  19. 强力数据恢复精灵 v1.9.0
  20. 语篇分析之连接词分析

热门文章

  1. 雨课堂知识点总结(二十)
  2. 辨析 role、import_role、include_role
  3. Password / Word lists
  4. 关于我,一个简单低调的程序员
  5. 二段式提交协议和三段式提交协议(2PC和3PC)
  6. 听书笔记:《勇敢去敲老板的门》
  7. 使用GGE开发Google小工具(Google Gadget)
  8. 信任,问责制以及时间在哪里?
  9. Java面向对象设计多态特征理解
  10. 帆软FCRP认证分享