CVPR2020:三维实例分割与目标检测

Joint 3D Instance Segmentation and Object Detection for Autonomous Driving

论文地址:

http://openaccess.thecvf.com/content_CVPR_2020/papers/Zhou_Joint_3D_Instance_Segmentation_and_Object_Detection_for_Autonomous_Driving_CVPR_2020_paper.pdf

摘要

目前,在自主驾驶(AD)中,大多数三维目标检测框架(基于锚定或无锚)都将检测视为一个边界盒(BBox)回归问题。然而,这种紧凑的表示不足以探索对象的所有信息。为了解决这个问题,我们提出了一个简单实用的检测框架来联合预测3D BBox和实例分割。例如分割,我们提出一种空间嵌入策略,将所有前景点集合到它们对应的对象中心。基于聚类结果,可以采用简单的聚类策略生成目标方案。对于每个集群,只生成一个建议。因此,这里不再需要非最大抑制(NMS)过程。最后,通过我们提出的基于实例的ROI池化,BBox被第二阶段网络改进。在公共KITTI数据集上的实验结果表明,与其他基于特征嵌入的方法相比,本文提出的SEs方法能显著提高实例分割的效果。同时,它也优于KITTI数据集测试基准上的大多数三维物体探测器。

1. 介绍

目标检测作为AD和机器人领域的一项基础性工作,近年来得到了广泛的研究。基于大量的标记数据集[8]、[38]、[39]和一些超强的基线,如基于建议的[9]、[35]和基于锚的方法[26]、[34],目标检测的性能得到了显著的提高。为了便于泛化,对象通常表示为一个2D-BBox或3D-cubody,这些参数包括BBox的中心、维度和方向等。许多方法已经证明,这种简单的表示方法适用于深度学习框架,但也有一些局限性。例如,对象的形状信息被完全丢弃。此外,对于某个BBox,来自背景或其他对象的一些像素不可避免地被包含在其中。在闭塞的情况下,这种情况变得更加严重。此外,BBox表示不够精确,无法描述对象的确切位置。为了很好地克服这个限制,每个BBox都使用了一个额外的实例掩码来消除其他对象或背景的影响。通常,实例掩码是二进制的,用于描述像素是否属于此对象。通过这种表达方式,即使每个对象之间有很大的重叠,也可以清楚地区分它们。例如,一个简单的分割方法是首先检测对象,然后将其作为一个分类问题逐一预测每个BBox的二进制掩码。沿着这个方向,人们提出了各种各样的优秀作品,Mask RCNN[13]就是其中之一。

然而,Mask R CNN是一个两阶段的框架,其性能在很大程度上取决于其第一阶段的目标检测结果,例如快速R-CNN[9]或快速R-CNN[35]。另一个流行的分支是基于无提案的方法,它主要基于嵌入损失函数或像素单位学习,如[28]。由于这些方法通常依赖于密集的预测网络,因此它们生成的实例掩码可以具有高分辨率。此外,无建议方法通常比基于建议的方法报告更快的运行时间,但是,它们无法给出与基于两个阶段的方法可比较的结果。近年来,随着距离传感器(如激光雷达、RGB-D相机)的快速发展和AD的需求,基于三维点云的深度学习被频繁地提到。受二维目标检测框架的启发,设计了一些基于单阶段或两阶段的三维目标检测框架,如截锥点网[31]、体素网[54]、第二阶段[46]、点柱[18]、点RCNN[37]、STD[48]等,[41]和[17]提出将实例信息嵌入到特征空间中,然后用meanshift聚类策略将其分离。三维目标检测在室内场景[30]和室外场景[52]中都得到了很好的研究。然而,大多数三维实例分割方法都是针对室内环境而设计的,很少能直接用于室外AD转换场景。在文献[19]中,Leibe等人提出了一种利用隐式形状模型同时进行目标分类和分割的方法,该模型可以将这两个任务集成到一个通用的概率框架中。首先,提取一些可能的局部补丁,并与现成的码本进行匹配。然后,每个激活的面片对对象中心的可能位置进行投射。最后,采用mean-shift聚类技术在投射空间上找到正确的目标位置。

受[19]的启发,我们提出同时从点云中联合检测和分割三维物体。同样,对于每个前景(FG)点,SEs都是从一个深层神经网络中学习的,该网络对其所属的对象信息进行编码,如中心、维度和方向等。基于SEs,FG对象的点可以分别被拉入各自的BBoxes中心。通过学习SEs,使用聚类策略可以很容易地生成实例分割和ROI(感兴趣区域)建议。图2示出了FG对象的预测SE的示例,其中所有学习的SE向量从点开始并指向对象的中心。在这项工作中,我们提出在一个统一的框架中联合解决目标检测和实例分割,以提高彼此的性能。通过这样做,可以同时考虑本地实例和全局形状信息。总之,本文的贡献可以概括为

•设计了一个统一的端到端可训练框架,可以为AD转换场景联合获得3D BBox和实例分割。

•与二维图像中常用的特征嵌入方法相比,我们提出了综合考虑全局BBox和局部点信息的SE方法。

•公共KITTI数据集的实验结果证明了与其他最新方法相比的有效性和效率。

2. 相关工作

基于图像的目标检测与实例分割:二维目标检测[5]和实例分割[15]近年来引起了众多研究者的关注,并产生了各种性能优异的方法。近年来,在快速/快速RCNN和掩模RCNN等强大的基线系统的基础上,目标检测和实例分割在不同的公共基准上都得到了快速的改进,由于篇幅的限制,本文只介绍了最近提出的实例分割框架,供读者参考最近的综述论文[50]对目标检测的更多描述。目前,二维实例分割的性能主要由基于两个阶段的方法主导,而Mask-RCNN通常被认为是其中的开拓性工作。这种方法基于检测和分割,首先利用现代目标检测器检测前景目标的包围盒,然后对每个目标逐个预测二值掩模。基于这一超强基线,先后提出了许多不同的版本[2]。虽然该方法在精度方面提供了良好的结果,但它生成的低分辨率掩模并不总是理想的(例如,对于照片编辑应用程序)并且以低帧速率操作,这使得它不适用于诸如AD的实时应用程序。

三维目标检测与实例分割:

随着距离传感器和AD转换技术的发展,交通场景中的三维目标检测越来越流行。受基于图像的目标检测启发,首先将点云投影到二维(如鸟瞰图[3]或前视图[44])中获得二维检测结果,然后将二维BBox重新投影到三维中得到最终结果。三维物体检测的另一个代表性方向是基于体积卷积的方法,因为图形处理资源的快速发展。体素网[54]是利用体素来表示激光雷达点云,直接用三维卷积来检测三维物体的一项开创性工作。基于体素网的框架,提出了第二种方法[46]和点柱方法[18]。与上述两个方向不同,PointNet[32]是另一种有用的点云特征提取技术。沿着这一方向,已经提出了几种最先进的三维物体检测方法[31,37]。SGPN[40]是首次提出在室内环境中对三维点云进行实例分割的工作。在这项工作中,我们基于所提取的点网[32]特征为每个点建立了相似矩阵。然后训练分类器对两个点是否属于同一对象进行分类。与SGPN不同的是,新提出的GSPN[49]是一个生成形状建议网络,它根据物体的先验形状信息和观测到的三维点云生成物体的三维模型。MASC[23]依赖于SparseConvNet[10]体系结构的卓越性能,并将其与跨多个尺度估计的实例精度分数相结合。在[41]中,在特征嵌入过程中,作者提出将语义和实例分割的特征融合在一起。在[17]中,方向信息也被应用于特征嵌入过程。最后,通过嵌入特征空间的均值平移mean-shift对实例进行聚类。

点云深度学习:

与二维图像不同,点云是无组织的,传统的CNN不能直接用于特征提取。为了利用经典的cnn,提出首先将点云投影到正视图或鸟瞰视图中,然后可以直接应用为2D图像设计的所有2D cnn。点云数据的另一个流行表示是体素化体积[54、27、36]。在此基础上,在三维坐标系中对所有点进行良好的组织,然后利用三维CNNs进行特征提取。由于点云的稀疏性,这些表示的缺点是内存问题。为了解决这一问题,提出了稀疏卷积,其中卷积只发生在有效体素上。基于此操作[46,10],速度和内存问题都得到了解决。另一个方向是直接处理点云而不进行任何变换。本文的开创性工作是PointNet[32],它应用MLPs直接提取点特征。沿着这个方向,许多框架被提出用于分类[33]、对象检测[37]、语义分割[14,29]和其他应用[25,24,7]。

3. 提议的方法

我们的目标是在AD转换场景中,在给定的点云单帧内联合解决三维实例分割和检测问题。特别地,点云被广泛使用的64线Velodyne激光雷达传感器扫描。通过实例分割和检测的结合,我们可以得到以下好处:1)基于实例掩模的表示方法能够很好地捕捉局部几何信息点;2)基于BBox的对象表示方法能够帮助挖掘整个对象的全局形状信息。

3.1.概述

图3描述了我们的方法的概述。一般来说,本文提出的方法可以分为两部分:基于SE学习的目标建议和局部BBoxes改进。首先,可以通过使用骨干网(例如PointNet++[33])来获得点特征。通过采样和分组操作,提取了局部特征和全局上下文信息。在骨干网的基础上,有语义分割和实例感知两个分支,分别编码为对象的中心和维度等,每个点都可以方便地生成语义类的基本真实性和所属BBox的信息。因此,网络的第一阶段可以通过监控信号进行训练。在SE结果的基础上,采用深度聚类层进行实例分割。同时,对于每个集群,也会生成一个BBox。然后,对于每个提案,应用一个重新定义的网络(例如PointNet[32])来重新定义每个提案的3D BBox。在这里,所有建议共享相同的网络参数。为了更进一步,我们将这些建议转换为局部标准化坐标系。最后,重新定义的网络输出重新定义的3D BBoxes和实例掩码。

3.2.实例感知SE

受2D实例分割[28]的启发,已有许多研究[41]利用判别损失函数在特征空间(而不是直接在空间空间)中分割对象[17]。通过使用这种丢失,属于同一实例的特征被拉近,属于不同实例的特征被推远。然而,实例标签信息不能直接显式地集成到损失函数中,这种损失是用几个超参数在特征空间进行编码的[6]。尽管这种方法在室内环境中取得了令人印象深刻的性能,但是很少有人提出用于AD转换场景的方法。在介绍我们的方法之前,我们分析了二维图像和三维图像在实例分割方面的差异,比例尺[51]、空间布局模糊和遮挡是二维图像空间中的三个主要问题。它们严重影响了目标检测和实例分割的性能。而这些问题在三维点云中已经不存在了。相反,物体在空间中变得可分离。然而,从点云直接使用聚类方法会产生未经验证的结果。因此,为了便于聚类或分割,需要一个设计良好的中间过程来探索该点的潜在属性,如语义类、实例标签和该点所属的对象信息。点云特征提取:为了提取点云的逐点特征,我们采用了常用的PointNet++网络作为骨干网络,具有多尺度采样和分组操作。特别地,所设计的框架是独立于骨干网的,可以被PointConv[45]、EdgeConv[42]或稀疏卷积网络[11]等其它结构所代替。基于所提取的特征,我们希望对目标信息进行如下预测。语义信息:以点特征为输入,设计了一个用于语义类预测的分割分支。由于采用了多尺度采样和分组策略,使得局部结构和全局上下文信息都被编码到每个点特征向量中。这对于处理不同大小的对象很有用。

3.3.基于聚类的方案生成

根据预测的SEs结果,将所有FG点聚合到相应对象的质心上。我们在图3的右上角显示了一个预测SE的例子,其中我们用红色表示拉点(原始位置加上预测偏移)。从这个例子中,我们可以明显地发现,这些红点可以通过简单的聚类算法(即K-均值[1])很容易地分离出来。实例分割结果的示例也示于图3的右下角,其中每个实例已用不同颜色显示。在聚类之后,还通过平均前k个预测(例如,k=5)为每个实例生成一个平均BBox。此外,我们将为下一阶段的感兴趣区域(ROI)池保留点和BBox的聚类id。

3.4.BBox刷新

虽然第一阶段的BBox预测非常精确,但仍有一定的改进空间。与其他基于两阶段的方法类似,我们直接执行基于对象方案内部点的PointNet++网络。此外,提出了一种基于实例的ROI轮询策略,以弥补BBox在提议阶段的不精确性。具体来说,在这个策略中已经做了两件事:第一,属于一个集群的点将被用于第二阶段,即使其中一些点不在BBox内。其次,如果某些FG点与BBox共享不同的集群id,那么即使它们位于BBox内,也会被删除。为了更好地利用局部信息,我们将该方案转换为局部标准化坐标系。对于每个返还率,M点和第一阶段提取的特征被随机选择作为返还网络的输入。

3.5.多任务丢失

使用多任务丢失来训练我们的网络。这里使用了三种损失,包括语义分割损失、SE损失和3D-BBox回归损失。此外,这里还使用了一些炒作参数来平衡它们的贡献。

4. 实验测试Experimental Results

CVPR2020:三维实例分割与目标检测的更多相关文章

  1. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  2. 3D点云点云分割、目标检测、分类

    3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...

  3. SOLOv 2:实例分割(动态、更快、更强)

    SOLOv 2:实例分割(动态.更快.更强) SOLOv2:  Dynamic, Faster and Stronger 论文链接: https://arxiv.org/pdf/2003.10152. ...

  4. CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)

    CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)1. 目标检测:FCOS(CVPR 2019)目标检测算法FCOS(FCOS: ...

  5. 多加速器驱动AGX的目标检测与车道分割

    多加速器驱动AGX的目标检测与车道分割 Object Detection and Lane Segmentation Using Multiple Accelerators with DRIVE AG ...

  6. 全卷积目标检测:FCOS

    全卷积目标检测:FCOS FCOS: Fully Convolutional One-Stage Object Detection 原文链接:https://arxiv.org/abs/1904.01 ...

  7. 手把手教你使用LabVIEW实现Mask R-CNN图像实例分割

    前言 前面给大家介绍了使用LabVIEW工具包实现图像分类,目标检测,今天我们来看一下如何使用LabVIEW实现Mask R-CNN图像实例分割. 一.什么是图像实例分割? 图像实例分割(Instan ...

  8. 深度学习目标检测综述推荐之 Xiaogang Wang ISBA 2015

    一.INTRODUCTION部分 (1)先根据时间轴讲了历史 (2)常见的基础模型 (3)讲了深度学习的优势 那就是feature learning,而不用人工划分的feature engineeri ...

  9. 定位、识别;目标检测,FasterRCNN

    定位: 针对分类利用softmax损失函数,针对定位利用L2损失函数(或L1.回归损失等) 人关节点检测 针对连续变量和离散变量需要采用不同种类的损失函数. 识别: 解决方案: 1.利用滑动窗口,框的 ...

随机推荐

  1. 【动态数据源切换失败】由于事务@Transactional注解导致动态数据源切换失效的问题

    不多BB,直接上代码: public class DataSourceKey { /** * 用户数据源 */ public final static String USER = "user ...

  2. 逆向工程第001篇:解锁FIFA07传奇模式

    FIFA07传奇难度的解锁,可以说是所有FIFA07玩家的终极目标.但是如果想以正常方式对其进行解锁,绝对是一件耗时耗力的工作.所以在这里我打算通过分析游戏存档文件的十六进制代码的方式,一步一步地找到 ...

  3. POJ2406 KMP前缀周期

    题意:       给你一个字符串,长度小于1百万,问你他最多可以拆成集合相同字符串,例如abcabcabc 可以拆成3个abc,所以输出3. 思路:       这个是比较常规的next应用,首先假 ...

  4. LA3213加密

    题意:       白书上有些题的题意说的太蛋疼了,这个题的意思是说有两种加密方式,一种是交换位置,另一种是一一映射,交换位置是指如ABCD 可以加密成DCBA 也可以加密成ACBD就是把某些字母的位 ...

  5. Python脚本写端口扫描器(socket,python-nmap)

    目录 Socket模块编写 扫描给定主机是否开放了指定的端口 python-nmap模块编写 扫描给定ip或给定网段内指定端口是否开放 一个用python写的简单的端口扫描器,python环境为 3. ...

  6. 【python】【补】Leetcode每日一题-合并两个有序数组

    [python]Leetcode每日一题-合并两个有序数组 [题目描述] 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 ...

  7. [LeetCode每日一题]781. 森林中的兔子

    [LeetCode每日一题]781. 森林中的兔子 问题 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. ...

  8. Day003 JavaDoc

    JavaDoc javadoc命令是用来生成自己的Api文档的 参数信息 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @retu ...

  9. 【编译原理】求First和Follow

    写这篇博客的原因,是因为考试前以为自己已经将这个问题弄清楚了,但是,考试的时候,发现自己还是不会,特别是求follow集合.虽然考试结束了,希望屏幕前的你,可以真正理解这个问题. 码字和做视频都不容易 ...

  10. Java 并发编程(一) → LockSupport 详解

    开心一刻 今天突然收到花呗推送的消息,说下个月 9 号需要还款多少钱 我就纳了闷了,我很长时间没用花呗了,怎么会欠花呗钱? 后面我一想,儿子这几天玩了我手机,是不是他偷摸用了我的花呗 于是我找到儿子问 ...