雷锋网 AI 科技评论按:本文为 2018 年 5 月 11 日在微软亚洲研究院进行的 CVPR 2018 中国论文宣讲研讨会中第 5 个 Session ——「Segmentation, Detection」环节的三场论文报告。
在第一个报告中,来自西北工业大学的戴玉超教授介绍了他们在物体检测方面的工作。其工作的新颖之处在于,他们将较为经济的但不太精确的传统手工方法应用于深度学习网络当中,即将传统手工方法得到的结果视作预测结果 + 噪声,从而作为监督信号来同时训练预测模型和噪声模型,实现了传统方法在深度学习时代的又一春。
第二个报告由来自商汤科技的石建萍博士介绍了商汤科技在自动驾驶相关问题中的研究工作,分别包括场景理解、物体理解、视频理解和 3D 场景结构理解。其中物体理解方面的工作在去年 COCO 物体分割和物体识别中分别获得第一名和第二名的成绩。
来自微软亚洲研究院的廖菁研究员在第三个报告中介绍了微软亚洲研究院在神经风格变换方面的相关工作,包括理论和应用两方面。在理论方面,他们通过分析先前的风格转换不同类型的优缺点,设计出了一种综合两类模型优点,同时摒弃其缺点的模型。在应用方面,考虑到风格变换应用于VR/AR中,如果两个视野的风格变换不一致将会导致鬼影出现,他们通过加入约束解决了该问题。
雷锋网注:
[1] CVPR 2018 中国论文宣讲研讨会由微软亚洲研究院、清华大学媒体与网络技术教育部-微软重点实验室、商汤科技、中国计算机学会计算机视觉专委会、中国图象图形学会视觉大数据专委会合作举办,数十位 CVPR 2018 收录论文的作者在此论坛中分享其最新研究和技术观点。研讨会共包含了 6 个 session(共 22 个报告),1 个论坛,以及 20 多个 posters,雷锋网 AI 科技评论将为您详细报道。
[2] CVPR 2018 将于 6 月 18 - 22 日在美国盐湖城召开。据 CVPR 官网显示,今年大会有超过 3300 篇论文投稿,其中录取 979 篇;相比去年 783 篇论文,今年增长了近 25%。
更多报道请参看:
Session 3: Person Re-Identification and Tracking
Session 4: Vision and Language
论文:Deep Unsupervised Saliency Detection: A Multiple Noisy Labeling Perspective
报告人:戴玉超 - 西北工业大学,教授
从 2012 年深度卷积网络出现并被广泛且成功地引入到其他领域后,许多传统的方法都被抛弃到垃圾堆里。
以视觉显著性检测为例,即从一幅图像中提取人眼最感兴趣的区域或者物体,当前所有的 benchmark 方法都是基于深度卷积网络。那么传统的基于经验和手工设计的方法在深度学习的时代真的就完全没用了吗?
戴玉超教授的这篇论文的工作正是对上述问题的回答。尽管深度学习方法当前来看取得了极大的成功,但是这些方法大多是基于监督学习,也即需要用大量、准确的标注数据,而对于视觉显著性检测任务来讲,标注数据依然是一个困难的事情。而另一方面,传统的手工显著性检测方法中融入了人类的知识,尽管其表现不如现在大多数的基于深度神经网络的方法,但是它可以通过无监督学习的方法获得结果。
于是戴玉超教授等人就想,是否可以将传统方法所获得的结果看做是一个理想的显著性检测图与噪声的叠加,从而将这个结果作为监督来同时训练显著性检测模块和噪声模块?如果成功,那么这将是一个端到端的无监督视觉显著性检测模型。
首先描述其任务,即:当给定一个彩色图像 x_i 时,通过不同的「无监督显著性方法」得到一系列带噪声的显著性图 y_ij,在这些结果的监督下学习一个更好的显著性图。
戴玉超等人设计的模型如下图所示:
这里包含一个隐藏的显著性检测模块和一个噪声模型模块。当给定一个输入图像后,一个无监督的手工的显著性检测方法会生成一个噪声显著性图 y_ij。他们在这个框架中将这个图视为待预测的显著性图与一个噪声的叠加。这个噪声是一个预设的带参数的模型,例如高斯分布模型。通过不断地优化,最小化 loss 函数:
从而同时训练出一个较好的显著性模型和相应的噪声模型。
这里提到三种 baseline:第一种是用带噪声的无监督显著性直接作为 ground truth 进行监督训练;第二种是用平均后的无监督显著性作为 ground truth 进行监督训练;第三种是当前用标注数据进行监督训练的模型。对比结果如下:
同时他们也比较了当前几种较好的监督和无监督模型:
从上述两个结果中,可以看出这种方法相比多数无监督模型的结果都要好很多,而相比监督学习也并不差;最为关键的问题是,它不需要标注数据,是一个端到端的模型。
这种新颖的方法,显然可以很轻易地拓展到其他领域,包括语义分割等。
报告题目:Effective Scene Understanding for Autonomous Driving (4 papers)
报告人:石建萍 - 商汤科技
论文下载地址:
[1] 场景理解:Context Encoding for Semantic Segmentation ( oral )
[2] 物体理解:Path Aggregation Network for Instance Segmentation ( spotlight )
[3] 视频理解:Low-Latency Video Semantic Segmentation ( spotlight )
[4] 3D 场景结构理解:GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose ( poster )
石建萍在此介绍了商汤科技在 CVPR 2018 上发表的众多文章中的 4 篇,分别为自动驾驶研究中的场景理解、物体理解、视频理解和 3D 场景结构理解。
关于场景理解,商汤科技在 CVPR 2017 的一篇录用论文中已做了相关研究,他们在那篇文章中提出了 PSPNet 模型,通过 pyramid pooling 的方法对场景做了一个全局的表示。
这种方式能够得到比较好的场景信息,但是(1)这个 pyramid pooling 的结构是人为设计出来的;(2)其计算仍然相对比较 heavy。针对这两点,他们在今年的这篇文章中做了进一步的优化和加速。其基本的想法就是将人为设计的 pyramid pooling 换成一种更灵活、有效的模块。
首先,他们把 feature encode 成类似 dictionary Learning 的表达方式。当一张输入图片经过 CNN 网络之后,把信息 encode 到 dictionary basis 里面,其中场景的表述就被学到其中的 feature 上。然后再把学习到的场景的 feature 拉伸到图片原有维度,于是便可以得到场景的信息。
除了 context encoding module,石建萍等人在模型中还加入了一个 loss,即 semantic encoding loss,其目的是为了学习全局中某一类别是否存在,加了这样一个全局约束后,对于那些较小的类别的预测将更好一些。
整体来说这种方法比去年的方法的表现稍好一点,但是石建萍仍然对此表示遗憾,因为她认为整个这个方向在去年一年里并没有提升太多,所以还需要去看是否是因为别的原因(例如数据原因)导致性能无法有较大提升。
物体理解的这篇文章是他们去年在 COCO 比赛中的工作,其中在物体分割上获得了第一名,在物体检测中获得了第二名。
据石建萍介绍,他们最初的目的就是希望能够达到比较高的指标,因此他们当时就基于两个最好的框架,一个是 FPNet,一个是 Mask-RCNN,并做了一系列的改进。
他们设计出的网络如下:
从这个网络中,仍然可以看出 FPNet 和 Mask-RCNN 的影子。其改进的地方是:(a)将 FPNet 的 backbone 做了一次 bottom-up 的增强;(b)在 FPNet 中每一个 scale 的 proposal 都是从对应的 scale 直接得来的,但石建萍他们发现事实上其他 scale 也将对该 scale 的 proposal 有很大帮助,因此他们加入了 adaptive feature learning 的模块;(c)在 Mask-RCNN 这一块,他们加入了 fully-connected fusion,这样可以保持更多的全局信息,使得 mask 有进一步的提升。
下面是加入各个模块后在性能上所带来的提升:
从实际场景中拿到的大部分数据都是视频数据,但是至今仍然没有一个能够很好地利用视频的方案。石建萍等人在这篇文章中考虑的一个重点是如何降低视频理解中的 latency,同时保持较好的表现。
其设计的网络如下图所示:
关键的思想就是,给关键帧相对较高的计算量,而比较类似的帧相应地就少分配一些计算。在网络中,另一个比较关键的点是,把前一帧的 feature 传递给后一帧。
他们针对 features,设定一个 threshold,从而可以自动地选取关键帧。显然这里 threshold 值的大小也决定了计算的精度;事实上如果没有必要完全可以设置一个稍高的 threshold。此外,这种方式也可以动态地反映视频帧的变化,例如当场景变化较快时关键点也会较快地出现。
feature 传递则是通过底层的 feature 学习相应的权重,这些权重是和 input 相关的,通过这些权重可以实现自动地特征传递。另外一点是,他们还设计了调度策略,使得整个关键帧的计算可以延后,也即在非关键帧的部分也可以同时去计算关键帧的信息;通过这个调度方案,可以有效地将整个网络的延迟降下来。
相比来说其他的方案在做视频理解时,往往需要针对每一帧做一个较为 heavy 的计算,而这篇文章所提出的方案能够有效降低整个模型的 latency,而同时保证了较高的性能。
之前 3D 场景结构理解的研究中,有做深度的估计,有做光流的估计,有做 camera 运动的估计等,但它们的每个部分都是独立的网络。石建萍等人因此考虑是否可以是否可以基于 CNN 的方案,加上几何约束,来构建一个统一的框架,同时能够得到一个更好的结果呢?
网络模型的结构如下图所示:
整个模型为无监督网络,业绩不需要任何外部信息就可以把深度、光流、相机运动训练出来。首先通过一个 DepthNet 来预测深度,得到一个 depth map;另外用 PoseNet 通过前后两帧之间的信息来预测 camera motion;随后将 depth map 和 camera motion 组合成 rigid flow,通过 rigid flow 与 final flow 即可完成一个监督学习。
另一方面,考虑到场景中会有一些不变的结构(rigid structure);而人、车等则会因为运动而变化(non-rigid motion)。所以他们将这两部分分解开来。通过 camera motion 可以比较容易地处理前者;对于 object motion 则需再加一个额外的约束。
整个 objective function 如下所示,包含了以上全部过程的 loss:
最后结果可以看到,用这种无监督的方法可以达到比以前的方法靠谱地多的深度、Flow 的结果,同时发现对运动比较大的 object 效果也是比较好的。代码下载链接:http://github.com/yzcjtr/GeoNet
报告题目:Extensions of Neural Style Transfer
报告人:廖菁 - 微软亚洲研究院
论文下载:
廖菁介绍了他们团队在 CVPR 2018 上发表的两篇关于 Neural Style Transfer 的延展性工作。一个是在深度方向的延展,即从理论上对以往的 NST 进行分类和总结,并提出了一种综合各方优点的方法。另一个是在广度方向的延展,也即 NST 在 VR 和 AR 领域的应用,他们提出了约束左右眼风格变换不一致的网络模型。
风格转换目前已经成为一个热门的研究课题。其中 Neural Style Transfer 指的是,当给定两张图,一张是 Style Image,一张是 Content Image,然后通过一个预训练的神经网络将前者的风格变换到后者之上。这种方法通常依赖于预训练的 CNN,CNN 能够对图像有一个很好的分解能力,在高层表征图像的 content,在低层表征图像的 style。
因此就希望这张图像的 deep feature 在高层能够和 content image 相似,而在低层则和 Style image 相似。这即是 Neural Style Transfer 大体的思路。
目前所有的神经风格转换都定义了两个 loss 函数,分别为 content loss 和 style loss。这些神经风格转换模型的 content loss 通常都采用了 feature map 之间的 L^2 loss 函数;但是在 style loss 上不同的模型却各不相同。
根据 style loss 的不同,大致可以将这些模型分为两类:一类是 parametric model,这类模型要求生成的图片 feature map 和要学的 style image 的 feature map 在整体上具有统计相似性;另一类是 non-parametric model,这类模型希望最后生成图片的 feature map 的 local patch 都是来源于 style image。所以可以说前者定义了 global 的相似性,而后者定义了 local 的相似性。
这两种模型都各自有优缺点。
parametric model 能够很好地学习到 style 的整体特征;但是它很难保证 localtexture 的结构,同时还会忽略一些空间布局,例如上图中将帆船的红色映射到了海水中。
另一方面,non-parametric model 能够很好地保证 local 的结构,但是它很有可能没法保证对整体的模仿(上图中蓝色格调并没有迁移到婴儿身上),此外由于 local 的方法没有限制 patch 怎么使用,所有有可能导致某一两个 patch 被大量的使用(上面猫图中黄色 patch 被大量使用),最终产生一个 wash-out artifact。
那么一个自然的思考就是,能否提出一种方法将两者的优点结合起来,而同时又能够避免各自的缺点呢?廖菁团队提出了这样一种新颖的方法,他们称之为 reshuffle。
这种方法的核心思想史:将 style image 的 deep feature 做一个重排,也即每个 pixel 出现一次,但是出现的位置已经和原图不一样了。这种重排的结果首先先天地就符合 local 的 style loss;另一面,global loss 当前主要使用的就是对所有 pixel 进行加和的 gram matrix 方法,这种方法并不关心 pixel 是怎样分布的,所以即使打乱了 pixel 的分布,也不会影响 global loss 的结果。因此这种 reshuffle 的方法即符合定义在 gram matrix 上的 global style,同时也符合定义在 patch 上的 local style。在论文中,他们对这个结果做了数学上的分析,这里不再展开。
不过这个方法中有一个严格的要求,即每个 pixel 只能出现一次。这种要求有时候会有问题,例如下图:
这里 content image 中有两个人四个眼睛,而 Style image 里面只有一个人两只眼睛。如果只允许 patch 用一次的话,眼睛的 patch 将不够用。所以在实际操作中,廖菁他们定义了一个相对 soft 的 parameter,通过这个参数控制 patch 的使用数量。当参数比较大的时候,其约束就比较强,这时候模型更接近于 global 方法;相反则更接近 non-parametric 的 local 的结果。通过设置参数可以动态地调节结果偏向,从而自适应地来融合两方的特征。
模型框架如下图所示:
风格转换后的对比图如下:
从结果可以看出,这种 reshuffle 的方法的结果,相比 paramtric 的方法可以更好地保持局部的 texture,而相比 non-parametric 的方法可以更好地重现 Style 的整体特征。
现在 VR 和 AR 非常火,微软也出了相关的产品 Hololens。当将风格转换应用在 VR/AR 上时,首先将会出现一个问题,即 VR/AR 设备有左眼视野和右眼视野,如果对两个视野的图像单独做风格转换,也即它们的转换之间没有相关性,那么结果将导致左右眼看到的转换后的风格图像并不一致,当带上 VR/AR 时就会出现各种鬼影,使得用户不能很好地感受 3D 的风格结构。
解决这个问题的关键,即将左右眼的约束加入到风格转换过程当中,这个约束被称为 disparity constraint。
廖菁团队定义了一个新的 network,大致来说分为三个部分。
首先是一个图像风格转换网络,这个网络可以是市面上任意一种图像风格转换网络,只要它能够分成 encoder 和 decoder 两部分。
其次,是一个 disparity occlusion network,这个网络将左右眼的图像当做 input,它会输出两帧图像间的 disparity,以及其置信度。
中间这一部分则是根据 disparity 做一个 feature 的增强,其方式就是将左眼和右眼对称地向中间去 warp,然后在中间域做一个增强,得到一个可信的结果后再分别投影到左眼和右眼。
加入约束后的效果如动图所示:
相关文章: