CNN是怎么学到图片内的绝对位置信息的?

2020 年 1 月 5 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


来源:https://zhuanlan.zhihu.com/p/99766566
作者:Xinlong Wang
本文来自知乎专栏,仅供学习参考使用,著作权归作者所有。 如有侵权,请私信删除。


昨天读到一篇挺有意思的文章,已经被ICLR2020接收为Spotlight。这个工作解释了CNN是怎么学到图片内的绝对位置信息的。



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

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

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

所以,我觉得CNN和图片中绝对位置的关系,非常值得进一步讨论。之前有几个相关的思考:

1. 为什么2D实例分割可以直接学每个像素的嵌入向量再进行聚类来区分实例[1]?还能取得不错的效果。按道理,理想情况下,比如在一张很大的图片上,有两个一模一样的人,那在用CNN预测每个像素的嵌入向量的时候,这两个人身上对应位置的像素的嵌入向量会是一样的。这样就导致聚类没办法区分这两个人。而在3D点云中,就没有这个问题。网络和位置的关系就非常自然,因为输入点云本身就包含了位置信息,比如在室内点云分割数据集S3DIS里面,一个场景是一个N个点的点云,每个点用坐标和颜色(x,y,z,r,g,b)来表示,这样输入就是Nx6的矩阵。这也是为什么,在做点云实例分割的时候,直接学每个点的嵌入向量,再进行简单聚类,就能取得很好的效果[2]。

2. 最近做2D实例分割[3]的过程中发现,在不显式的提供像素的绝对位置坐标的情况下,CNN也能学到比较不错的绝对位置相关的输出。当时做实验的时候就觉得很惊讶,其实在CoordConv文章中也有类似的结果,普通conv和CoordConv在处理简单的位置映射任务的时候,是80分和100分的区别,而不是0分和100分的区别。当时和孔涛和沈春华老师讨论,猜想是zero-padding透露了位置的信息,但是没有进一步的实验验证。这个猜想非常自然,因为在网络的训练和测试过程中,所有的外在输入只有两个:输入图片和padding。输入图片没有位置信息,那应该就是padding的影响了。

3. Naiyan老师之前分享的文章[4]里有个结论:在单目深度估计中,CNN可能是通过图像里物体的纵坐标来估计深度的。

以上三点都表明,我们广泛使用的CNN模型是可以学到绝对位置信息的。但是问题是:CNN的这种能力是从哪里得到的?

这篇文章用实验得出了这个结论:

位置信息是zero-padding透露的。

足够大的网络(多层或者大kernel)可以把padding透露的边界信息扩散出去,得到粗糙的全局位置信息。

文章的主要实验设计是,输入图片,训练网络输出位置相关的图片。比如,输入噪声图片,希望网络输出水平坐标图:
在有zero-padding的情况下,基于VGG和ResNet的模型都可以预测比较合理的位置相关的输出,比如横坐标或者纵坐标。

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

在OpenReview里面,作者还提供了把zero-padding换成circular-padding的实验,结果和没有padding差不多,比zero-padding差很多。说明位置信息确实是从zero-padding带来的。

更多的实验和结论大家可以去读原文,我就不赘述了。

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

最直接的做法当然就是把每个像素的坐标concat到输入或者中间特征上,这种简单直接做法可以在SOLO[3]的实例分割结果上带来3.6 AP的提升。但是我认为可以有更多方法去进一步充分挖掘图片里的位置信息,期待更多精彩的工作~

参考文献
[1] De Brabandere, B., Neven, D., & Van Gool, L. (2017). Semantic instance segmentation with a discriminative loss function.
[2] Wang, X., Liu, S., Shen, X., Shen, C., & Jia, J. (2019). Associatively Segmenting Instances and Semantics in Point Clouds. In CVPR.
[3] Wang, X., Kong, T., Shen, C., Jiang, Y., & Li, L. (2019). SOLO: Segmenting Objects by Locations.
[4] Dijk, Tom van, and Guido de Croon. "How Do Neural Networks See Depth in Single Images?." In ICCV. 2019.
[5] Liu, R., Lehman, J., Molino, P., Such, F. P., Frank, E., Sergeev, A., & Yosinski, J. (2018). An intriguing failing of convolutional neural networks and the coordconv solution. In NIPS .
[6] Novotny, D., Albanie, S., Larlus, D., & Vedaldi, A. (2018). Semi-convolutional operators for instance segmentation. In ECCV  .




-End-

提示:极市元旦福利(https://lucky.nocode.com/v2/s/7SPah7gtyjP已开奖,还有两位小伙伴未填写地址,请在周三前填写完毕




*延伸阅读





CV细分方向交流群


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群(已经添加小助手的好友直接私信),更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流一起来让思想之光照的更远吧~



△长按添加极市小助手


△长按关注极市平台


觉得有用麻烦给个在看啦~  

登录查看更多
2

相关内容

在深度学习中,卷积神经网络(CNN或ConvNet)是一类深度神经网络,最常用于分析视觉图像。基于它们的共享权重架构和平移不变性特征,它们也被称为位移不变或空间不变的人工神经网络(SIANN)。它们在图像和视频识别,推荐系统,图像分类,医学图像分析,自然语言处理,和财务时间序列中都有应用。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
专知会员服务
41+阅读 · 2020年2月20日
【电子书】让 PM 全面理解深度学习 65页PDF免费下载
专知会员服务
17+阅读 · 2019年10月30日
深度学习在图像处理的应用一览
极市平台
17+阅读 · 2019年11月21日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
网络宽度对深度学习模型性能有什么影响?
极市平台
15+阅读 · 2019年7月7日
目标检测实用中可以改进的方向
极市平台
11+阅读 · 2019年5月4日
【CVPR2018】物体检测中的结构推理网络
深度学习大讲堂
6+阅读 · 2018年7月30日
从FPN到Mask R-CNN,一文告诉你Facebook的计算机视觉有多强
人工智能头条
6+阅读 · 2018年3月20日
RCNN算法分析
统计学习与视觉计算组
10+阅读 · 2018年1月12日
如何利用深度学习识别千万张图片?
InfoQ
4+阅读 · 2017年12月30日
目标检测也就是这么简单
计算机视觉战队
11+阅读 · 2017年10月20日
Efficiently Embedding Dynamic Knowledge Graphs
Arxiv
14+阅读 · 2019年10月15日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
6+阅读 · 2019年4月8日
Joint Monocular 3D Vehicle Detection and Tracking
Arxiv
8+阅读 · 2018年12月2日
Two Stream 3D Semantic Scene Completion
Arxiv
4+阅读 · 2018年7月16日
Arxiv
7+阅读 · 2018年1月24日
VIP会员
相关资讯
深度学习在图像处理的应用一览
极市平台
17+阅读 · 2019年11月21日
目标检测中边界框的回归策略
极市平台
17+阅读 · 2019年9月8日
网络宽度对深度学习模型性能有什么影响?
极市平台
15+阅读 · 2019年7月7日
目标检测实用中可以改进的方向
极市平台
11+阅读 · 2019年5月4日
【CVPR2018】物体检测中的结构推理网络
深度学习大讲堂
6+阅读 · 2018年7月30日
从FPN到Mask R-CNN,一文告诉你Facebook的计算机视觉有多强
人工智能头条
6+阅读 · 2018年3月20日
RCNN算法分析
统计学习与视觉计算组
10+阅读 · 2018年1月12日
如何利用深度学习识别千万张图片?
InfoQ
4+阅读 · 2017年12月30日
目标检测也就是这么简单
计算机视觉战队
11+阅读 · 2017年10月20日
相关论文
Efficiently Embedding Dynamic Knowledge Graphs
Arxiv
14+阅读 · 2019年10月15日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
6+阅读 · 2019年4月8日
Joint Monocular 3D Vehicle Detection and Tracking
Arxiv
8+阅读 · 2018年12月2日
Two Stream 3D Semantic Scene Completion
Arxiv
4+阅读 · 2018年7月16日
Arxiv
7+阅读 · 2018年1月24日
Top
微信扫码咨询专知VIP会员