点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

这篇文章收录于ECCV2020,由北京大学、商汤科技、香港中文大学提出的基于RGB-D图像的语义分割算法。充分考虑了RGB图像信息和深度信息的互补,在网络结构中引入了视觉注意力机制分别用于特征分离与聚合。最终在室内和室外环境的数据集上都进行了实验,具有良好的分割性能。

论文地址:http://xxx.itp.ac.cn/pdf/2007.09183v1

代码地址:https://github.com/charlesCXK/RGBD_Semantic_Segmentation_PyTorch

RGB-D信息就是标准的RGB图像信息中引入了深度信息,而深度信息可为RGB图像提供对应的几何关系。现有的大多数工作只是简单地假设深度测量是准确的,且与RGB像素能够良好地对齐,由此将该问题建模为交叉模式特征融合以获得更好的特征表示从而实现更准确的分割,但是,通常传感器无法获得令人满意的精准的深度结果,实际的深度数据通常比较嘈杂,这可能会随着网络的深入而降低分割的准确性。

本文提出了一个统一而有效的跨模态引导的编码器,该编码器不仅可以有效地重新校准RGB特征响应,而且还可以通过多个阶段来提取准确的深度信息,并将两者交替合并在一起重新校准的表示形式。提出的体系结构的关键是新颖的“分离与聚合gate”操作,该操作在交叉模态聚合之前共同过滤和重新校准两种表示形式。同时,一方面引入了双向多步传播策略,以帮助在两种形态之间传播和融合信息,另一方面,在长期传播过程中保持它们的特异性

此外,提出的编码器可以轻松地注入到先前的编码器-解码器结构中,以提高其在RGB-D语义分割任务上的性能。在室内和室外具有挑战性的数据集上,本文的模型均始终优于最新技术

简介

尽管在RGB语义分割方面已经取得了重大进展,但是直接将互补深度数据输入到现有的RGB语义分割框架中或仅将两种模态简单地集成在一起可能会导致性能下降。将两种数据更好地融合关键挑战在于两个方面:

(1)RGB和深度模态之间的显著变化。RGB和深度数据显示出不同的特性,如何有效地识别它们之间的差异并将两种类型的信息统一为一种有效的语义分割方法,仍然是一个悬而未决的问题。

(2)深度测量的不确定性。现有基准提供的深度数据主要由飞行时间或Kinect,AsusXtion和RealSense等结构化摄像头捕获,由于物体材料的不同和测量距离范围的受限,深度测量通常比较嘈杂,噪声较多。如图1所示,该噪声在室外场景中更为明显,并导致错误的分割。

图1.(a)RGB-D baseline,采用常规的跨模态融合模式设计,导致RGB和深度模态之间存在实质性差异的区域分类不准确。(b)室外环境的深度测量数据比较嘈杂。若没有本文所提出的模块,分割结果将急剧下降。

现有的大多数基于RGB-D的语义分割算法的标准做法是使用深度数据作为另一种输入,并采用特定的特征融合方案(例如,基于卷积和基于模态的相似性的融合方案)的完全卷积网络(FCN)类架构,以融合两种模态的特征。然后将融合的特征用于重新校准RGB特征响应或用于预测结果。尽管这些方法为统一这两种信息提供了可行的解决方案,但其假设前提需要输入深度数据是准确的,并且与RGB信号良好对齐的假设可能不成立,从而使这些方法对噪声样本敏感。而且,如何确保网络充分利用两种方式的信息仍然是一个未解决的问题。最近,一些方法(《Pattern-affinitive propagation across depth, surface normal and semantic segmentation》)试图通过降低网络对深度测量质量的敏感性来应对第二个挑战。他们提议不通过使用深度数据作为额外的输入,而是建议通过多任务学习来提取深度特征,并将深度数据视为训练的额外监督。具体来说,《 Pad-net: Multi-tasks guided prediction-and-distillation network for simultaneous depth estimation and scene parsing》介绍了一个两阶段框架,该框架首先预测包括深度估计在内的几个中间任务,然后将这些中间任务的输出用作最终任务的多输入。

在上述观察的基础上,本文提出在一个简单而有效的框架中解决这两个挑战,在类似FCN的RGB-D语义分割骨架中引入一种新型的跨模态引导编码器。所提出的框架的关键思想是利用两种模态的通道相关性和空间相关性,首先压缩squeeze深度的特殊特征响应,从而有效地抑制低质量深度测量的特征响应,然后利用被抑制的深度表示来完善RGB特征。在实际应用中,本网络设计的步骤是双向的,因为室内RGB源图像也含有噪声特征。与深度数据相比,RGB噪声特征通常是由不同邻近物体的相似外观引起的。我们将上述过程分别称为深度特征重新校准和RGB特征重新校准。因此,引入了一个新的门单元,即Separation-and-Aggregation Gate(SA-Gate),通过鼓励网络先重新校准和聚焦每个模态的特定特征,然后有选择地聚合两个模态的信息特征进行最终分割,以提高多模态表示的质量。为了有效地利用两种模态之间的特征差异,进一步引入了双向多步传播(Bi-direction Multi-step Propagation,BMP),鼓励两种流在编码器阶段的信息交互过程中更好地保持其特殊性。

本文方法

RGB-D语义分割需要将RGB和深度两种模态的特征集合起来,但两种模态都不可避免地存在噪声信息。具体来说,深度测量由于深度传感器的特性而不准确,而RGB特征可能会由于物体之间的高度外观相似性而产生混乱的结果。一个有效的跨模态聚合方案应该能够从每个特征中识别出它们的优势,以及将信息量最大的跨模态特征统一到一个有效的表示中。为此,本文提出了一种新型的跨模态引导编码器。图2(a)描述了所提出的方法的整体框架,它由一个跨模态引导编码器和一个分割解码器组成,给定RGB-D数据作为输入,编码器通过SA-Gate单元对两种模态的互补信息进行重新校准和融合,然后通过双向多步传播(BMP)模块将融合后的多模态特征和特定模态特征一起传播。然后,这些信息被分割解码网络解码,生成分割图。

图2.(a)本文的网络结构概述。采用编码器解码器架构,网络的输入是一对RGB-HHA图像。在训练过程中,每对特征图(例如RGB-Layer1和HHA-Layer1的输出)由SA-Gate融合,并传播到编码器的下一级,以进行进一步的特征变换。第一个和最后一个SA-Gate的融合结果将传播到解码器结构(DeepLab V3 +)。(b)SA-Gate的体系结构,包含两个部分,特征分离(FS)和特征聚合(FA)

1、Bi-direction Guided Encoder

  • Separation-and-Aggregation (SA) Gate

为了确保信息在模态之间传播,SA-Gate设计有两个操作。一个是对每个单一模式进行特征重新校准,另一个是跨模式特征聚合。如图2(b)所示,这些操作是按照特征分离(FS)和特征聚集(FA)的部分进行的。

  • 特征分离(Feature Separation)

以深度流为例。由于深度传感器的物理特性,如图3的第二列所示,深度模态中的噪声信号经常出现在靠近物体边界或深度传感器范围之外的局部表面的区域中。因此,该网络将首先过滤噪声信号围绕这些局部区域以避免在重新校准RGB模态和聚合跨模态特征的过程中产生误导性信息传播。实际上,利用RGB流中的高置信度激活函数来滤除相同level的异常深度。为此,应先嵌入这两种模态的全局空间信息,然后通过squeeze操作获取交叉模态注意向量。具体通过沿两个模态的通道方向维度进行全局平均池化(global average pooling)来实现此目的,然后进行串联和MLP操作以获得注意力向量。

深度输入的跨模态注意力向量为

通过这样做,网络可以利用最有用的视觉外观和几何特征,并因此倾向于有效地抑制深度流中嘈杂特征的重要性。然后,可以通过在输入深度特征图和交叉模态门之间进行逐个通道的乘法来获得噪声较小的深度表示,即 Filtered HHA:

重新校准的公式为:

该公式背后的一般思想是,与其直接使用元素乘积来加权RGB特征(将深度特征视为重新校准系数),不如使用求和的操作视为一种偏移量,以在相应位置上改善RGB特征响应

在实际应用中,作者以对称和双向的方式实现重新校准步骤,这样RGB流中的低置信度激活也可以以同样的方式被抑制,过滤后的RGB信息可以反过来重新校准深度特征响应,形成更稳健的深度表示HHArec。在图3中可视化了特征分离部分前后HHA的特征图。RGB对应的图见补充说明。

图3. 在CityScapes验证集中进行FSP之前和之后的深度特征的可视化比较。可以观察到,在FSP和无效的局部表面完成之后,分割对象具有更精确的形状。

class FilterLayer(nn.Module):def __init__(self, in_planes, out_planes, reduction=16):super(FilterLayer, self).__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.fc = nn.Sequential(nn.Linear(in_planes, out_planes // reduction),nn.ReLU(inplace=True),nn.Linear(out_planes // reduction, out_planes),nn.Sigmoid())self.out_planes = out_planesdef forward(self, x):b, c, _, _ = x.size()y = self.avg_pool(x).view(b, c)y = self.fc(y).view(b, self.out_planes, 1, 1)return y'''
Feature Separation Part
'''
class FSP(nn.Module):def __init__(self, in_planes, out_planes, reduction=16):super(FSP, self).__init__()self.filter = FilterLayer(2*in_planes, out_planes, reduction)def forward(self, guidePath, mainPath):combined = torch.cat((guidePath, mainPath), dim=1)channel_weight = self.filter(combined)out = mainPath + channel_weight * guidePathreturn out'''
SA-Gate
'''
class SAGate(nn.Module):def __init__(self, in_planes, out_planes, reduction=16, bn_momentum=0.0003):self.init__ = super(SAGate, self).__init__()self.in_planes = in_planesself.bn_momentum = bn_momentumself.fsp_rgb = FSP(in_planes, out_planes, reduction)self.fsp_hha = FSP(in_planes, out_planes, reduction)self.gate_rgb = nn.Conv2d(in_planes*2, 1, kernel_size=1, bias=True)self.gate_hha = nn.Conv2d(in_planes*2, 1, kernel_size=1, bias=True)self.relu1 = nn.ReLU()self.relu2 = nn.ReLU()self.softmax = nn.Softmax(dim=1)def forward(self, x):rgb, hha = xb, c, h, w = rgb.size()rec_rgb = self.fsp_rgb(hha, rgb)rec_hha = self.fsp_hha(rgb, hha)cat_fea = torch.cat([rec_rgb, rec_hha], dim=1)attention_vector_l = self.gate_rgb(cat_fea)attention_vector_r = self.gate_hha(cat_fea)attention_vector = torch.cat([attention_vector_l, attention_vector_r], dim=1)attention_vector = self.softmax(attention_vector)attention_vector_l, attention_vector_r = attention_vector[:, 0:1, :, :], attention_vector[:, 1:2, :, :]merge_feature = rgb*attention_vector_l + hha*attention_vector_rrgb_out = (rgb + merge_feature) / 2hha_out = (hha + merge_feature) / 2rgb_out = self.relu1(rgb_out)hha_out = self.relu2(hha_out)return [rgb_out, hha_out], merge_feature
  • 特征聚合(Feature Aggregation)

RGB和D功能彼此非常互补。为了充分利用它们的互补性,需要根据其表征能力在空间中的某个位置交叉互补地聚合特征。为实现此目的,考虑了这两种模态的特征,并为RGB输入和HHA输入生成了空间方向的门Gate,以通过软注意力机制控制每个模态特征图的信息流,如图2(b)所示,并用第二个红色框标记。为了使门更精确,使用了来自FS环节中重新校准的RGB和HHA特征图来生成门。具体地,首先将这两个特征图串联起来,以在空间中的特定位置组合它们的特征。然后,定义两个映射函数以将高维特征映射到两个不同的空间门:

实际上,使用1×1卷积来实现此映射函数,并将softmax函数应用于这两个门:

到目前为止,已经添加了门控RGB和HHA特征图以获得融合的特征图M。由于SA-Gate已注入编码器环节,因此将融合后的特征和原始输入取平均,分别获得RGBout和HHAout。

  • 双向多步传播策略(BMP)

通过将每个位置的两个权重之和标准化为1,加权特征的数字比例将与输入RGB或HHA不会有显著差异。因此,它对编码器的学习或预训练参数的加载有负面影响。对于每个层L,我们使用由第L层 SA-Gate生成的输出M来改善编码器中第L层的原始输出:RGBout =(RGBin + M)/ 2,HHAout =(HHAin + M)/ 2。这是双向传播过程,经过改进的结果将被传播到编码器中的下一层,从而对两种模态进行更准确和有效的编码。

2、 Segmentation Decoder

由于SA-Gate是即插即用模块,并且可以在编码器级充分利用交叉模态的互补信息,因此该解码器几乎可以采用基于SOTA RGB的分割网络中的解码器的任何设计。在表6中显示了将编码器与不同解码器组合在一起的结果。最终选择DeepLabV3 + 作为解码器,以实现最佳性能。

实验与结果

数据集与评价指标:室内NYU  Depth  V2和室外Cityscapes,实验中并不使用粗略标注数据,评价指标为像素精度PA和平均交并比mIoU

  消融实验:

对比实验

可视化对比

更多细节可参考论文原文。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉优质源码即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

整理不易,请给工坊点赞和在看

ECCV2020 | 北京大学提出RGB-D语义分割新网络,多模态信息融合相关推荐

  1. 计算成本缩减100倍!港中文提出语义分割新方法:张量低秩重建|ECCV2020

    原文链接:https://bbs.cvmart.net/articles/3099 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ --- ...

  2. 点云的密度 曝光时间_200倍的提速!华人博士生提出大场景三维点云语义分割新框架...

    [新智元导读]今天分享一篇被今年CVPR接收的论文.该文提出的算法可以高效处理百万量级的点组成的大场景3D点云,同时计算效率高.内存占用少,能直接处理大规模点云,不需要复杂的预处理/后处理,比基于图的 ...

  3. 综述 | 语义分割经典网络及轻量化模型盘点

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 基于图像的语义分割又被理解为密集的像素预测,即将每个像素进行分类, ...

  4. 今日新网络舆情信息监测收集技术解决办法

    对于舆情信息员来说,面对互联网上浩瀚纷杂的信息内容,要如何快速又高效的做好今日舆情信息监测与搜集工作呢?针对这一问题,提出了以下今日新网络舆情信息监测收集的办法,主要从技术层面进行舆情工作的开展. 今 ...

  5. ACM MM 2022 | 浙大提出BiSMAP:语义分割UDA 新SOTA!

    作者 | III  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/547671620 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

  6. [CVPR 2020] RandLA-Net:大场景三维点云语义分割新框架(已开源)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者Qingyong Hu授权转载,不得擅自二次转载.原文链接:https://zhuanl ...

  7. 重磅发布!Google语义分割新数据集来啦!又一个分割SOTA模型

    [导读]自动驾驶里视觉一直为人所诟病,特斯拉就是经常被拉出来批判的典型.谷歌最近开发了一个新模型,效果拔群,已被CVPR2021接收. 对于人来说,看一张平面照片能够想象到重建后的3D场景布局,能够根 ...

  8. 更快更强,谷歌提出SWideRNet:全景分割新标杆来啦!

    作者丨Happy 编辑丨极市平台 导读 本文是DeepLab系列作者"Liang-Chieh Chen"大神在全景分割领域的又一力作.它在Wide-ResNet的基础上引入SE与& ...

  9. 精度高、模型小、速度快!梯形DenseNets结构实现语义分割新高度!

    点击我爱计算机视觉标星,更快获取CVML新技术 今天上午arXiv出现一篇非常值得参考的语义分割文章<Efficient Ladder-style DenseNets for Semantic ...

最新文章

  1. 之江汇空间如何加音乐背景_从脚本到成品,教你如何快速制作出创意又浪漫的婚礼视频...
  2. vi格式化代码,撤销,重做,回退操作
  3. Android version and Linux Kernel version
  4. 像像接入云信,连接真人连接真爱
  5. 您的空间不支持PHP,空间不支持fsockopen函数解决办法
  6. qt web混合编程_VS2017+QT 混合编程-在VS控制台程序配置QT
  7. 自定义完整安装rhel7_服务器系统Windows Server 2008 R2安装教程
  8. python怎么写判断语句_Python中的if判断语句入门
  9. plsqldev、oracle插入中文乱码问题解决
  10. 常用的公共 DNS 服务器 IP 地址
  11. android sd 权限修改,真正免root的sd卡权限修改软件详细使用教程
  12. 名师出高徒,VS 2005 调试心得。个人信息管理页面(部分)
  13. Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
  14. 04-Spark入门
  15. 基于实例分割方法的端到端车道线检测 论文+代码解读
  16. 美通企业日报 | 无锡国际生命科学创新园开园;本特勒与恒大汽车博世实现合作...
  17. 处理口罩图片数据(yolov5)中碰到的问题(macOS)
  18. 阿里云域名可以转账号吗?
  19. PageHelper的使用
  20. github pages 无法加载css的问题

热门文章

  1. 树——二叉搜索树的实现
  2. 装饰模式(Decorator Pattern)--------结构型模式
  3. Web请求响应简单整理
  4. sizeof计算类大小
  5. 架构篇:什么才是真正的架构设计?
  6. 迄今为止程序员写过的最大Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
  7. 深入理解 ProtoBuf 原理与工程实践(概述)
  8. 高频面试题:秒杀场景设计
  9. 14 个实用的数据库设计技巧,一次性教给你!
  10. Apache Doris在美团外卖数仓中的应用实践