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

CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Cloud

随着CVPR2020入选论文的曝光,一篇关于自动驾驶的文章被录用,该论文提出了一个通用、高性能的自动驾驶检测器,首次实现3D物体检测精度与速度的兼得,有效提升自动驾驶系统安全性能。目前,该检测器在自动驾驶领域权威数据集KITTI BEV排行榜上排名第三。论文是如何解决物体检测难题的?

View Aggregation

利用Anchor grid作为感兴趣区域进行Crop和Resize到同一大小,然后将两者的特征进行element-wise sum,然后进行3D proposals的第一次回归。然后进行NMS,使用proposals对feature map再次进行Crop和Resize, 然后再次回归,修正proposals,通过NMS得到Object Bounding Boxes。

上图中左边的Fully Connected Layers回归车辆位置的尺寸,右边的Fully Connected Layers回归车辆的朝向角。

3D 目标检测需输出物体类别及在三维空间中的长宽高、旋转角等信息

与普通的 2D 图像识别应用不同,自动驾驶系统对精度和速度的要求更高,检测器不仅需要快速识别周围环境的物体,还要对物体在三维空间中的位置做精准定位。然而,目前主流的单阶段检测器和两阶段检测器均无法平衡检测精度和速度,这极大地限制了自动驾驶安全性能。

此次,论文提出了新的思路即将两阶段检测器中对特征进行细粒度刻画的方法集成到单阶段检测器。具体来说,在训练中利用一个辅助网络将单阶段检测器中的体素特征转化为点级特征,并施加一定的监督信号,同时在模型推理过程中辅助网络无需参与计算,因此,在保障速度的同时又提高了检测精度。

以下是第一作者 Chenhang He 对该论文做出的解读:

1. 背景

2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN和MaskRCNN,One Shot系列的YOLOv1-YOLOv3。在2D Object Detection的基础上又提出了新的要求3D Object Detection。问题的具体描述检测环境中的三维物体,并给出物体的Bounding Box。相比于2D,3D的Bounding Box的表示除了多了一个维度的位置和尺寸,还多了三个角度。可以想象,一架飞机的Bounding Box的尺寸的是固定的,飞机的姿态除了位置之外,还有俯仰角、偏航角和翻滚角三个角度。

目前对于3D Object Detection有迫切需求的产业是自动驾驶产业,因为要想安全的自动驾驶,需要周围障碍物的三维位姿,在图片中的二维位姿不带深度信息,没有办法有效避免碰撞。所以3D Object Detection的数据集大多也是自动驾驶数据集,类别也主要是车辆和行人等,比较常用的有KITTI和kaist。由于自动驾驶针对车辆,所以障碍物的高度的检测对于安全行驶并没有十分重要,而障碍物都在陆地上,所以也不存在俯仰角和翻滚角两个角度。所以有些3D Object Detection方法将这三值忽略了。

目标检测是计算机视觉领域的传统任务,与图像识别不同,目标检测不仅需要识别出图像上存在的物体,给出对应的类别,还需要将该物体通过 Bounding box 进行定位。根据目标检测需要输出结果的不同,一般将使用 RGB 图像进行目标检测,输出物体类别和在图像上 2D bounding box 的方式称为 2D 目标检测。而将使用 RGB 图像、RGB-D 深度图像和激光点云,输出物体类别及在三维空间中的长宽高、旋转角等信息的检测称为 3D 目标检测。

从点云数据进行 3D 目标检测是自动驾驶(AV)系统中的的关键组件。与仅从图像平面估计 2D 边界框的普通 2D 目标检测不同,AV 需要从现实世界估计更具信息量的 3D 边界框,以完成诸如路径规划和避免碰撞之类的高级任务。这激发了最近出现的 3D 目标检测方法,该方法应用卷积神经网络(CNN)处理来自高端 LiDAR 传感器的点云数据。

3D Detection with Frustum PointNets

模型主要分为3部分:

· frustum proposao

· 3D instance segmentation

· 3D amodal bounding box estimation

对于实时3D sensor采集的3D数据还是比2D数据的分辨率要低很多,所以用2D图片和2D目标检测的方法来提proposal(同时进行分类)效果很好。

This normalization helps improve the rotation-invariance of the algorithm.

目前基于点云的 3D 物体检测主要有两种架构:

1、单阶段检测器 (single-stage): 将点云编码成体素特征 (voxel feature), 并用 3D CNN 直接预测物体框, 速度快。但是由于点云在 CNN 中被解构, 对物体的结构感知能力差, 所以精度略低。2、两阶段检测器 (two-stage): 首先用 PointNet 提取点级特征, 并利用候选区域池化点云 (Pooling from point cloud) 以获得精细特征. 通常能达到很高的精度但速度很慢。

2. 方法

目前业界主要以单阶段检测器为主,这样能保证检测器能高效地在实时系统上进行。本文提出的方案将两阶段检测器中对特征进行细粒度刻画的思想移植到单阶段检测中,通过在训练中利用一个辅助网络将单阶段检测器中的体素特征转化为点级特征,并施加一定的监督信号,从而使得卷积特征也具有结构感知能力,进而提高检测精度。而在做模型推断时,辅助网络并不参与计算(detached), 进而保证了单阶段检测器的检测效率。另外本文提出一个工程上的改进,Part-sensitive Warping (PSWarp), 用于处理单阶段检测器中存在的 “框 - 置信度 - 不匹配” 问题。

主体网络

用于部署的检测器,即推断网络,由一个骨干网络和检测头组成。骨干网络用 3D 的稀疏网络实现,用于提取含有高语义的体素特征。检测头将体素特征压缩成鸟瞰图表示,并在上面运行 2D 全卷积网络来预测 3D 物体框。

辅助网络

在训练阶段,本文提出一个辅助网络来抽取骨干网络中间层的卷积特征,并将这些特征转化成点级特征 (point-wise feature)。在实现上,本文将卷积特征中的非零信号映射到原始的点云空间中,然后在每个点上进行插值,这样本文就能获取卷积特征的点级表示。令 {():j=0,…,M} 为卷积特征在空间中的表示, {:i=0,…,N}为原始点云, 则卷积特征在原始点上的表示等于

辅助任务

本文提出两种基于点级特征的监督策略来帮助卷积特征获得很好的结构感知力,一个前景分割任务,一个中心点回归任务。

具体来说,相比于 PointNet 特征提取器 (a),卷积网络中的卷积操作和下采样会造成点云结构的破坏(b)使得特征对物体的边界与内部结构不敏感。本文利用分割任务来保证部分卷积特征在下采样时不会被背景特征影响 ©,从而加强对边界的感知。本文利用中心点回归任务来加强卷积特征对物体内部结构的感知能力 (d),使得在少量点的情况下也能合理的推断出物体的潜在大小,形状。本文使用 focal loss 和 smooth-l1 对分割任务与中心回归任务分辨进行优化。

3. 工程上的改进

在单阶段检测中, feature map 和 anchor 的对齐问题是普遍存在的问题,这样会导致预测出来的边界框的定位质量与置信度不匹配,这会影响在后处理阶段(NMS)时,高置信度但低定位质量的框被保留,而定位质量高却置信度低的框被丢弃。在 two-stage 的目标检测算法中,RPN 提取 proposal,然后会在 feature map 上对应的的位置提取特征(roi-pooling 或者 roi-align),这个时候新的特征和对应的 proposal 是对齐的。本文提出了一个基于 PSRoIAlign 的改进,Part-sensitive Warping (PSWarp), 用来对预测框进行重打分。

如上图,本文首先修改最后的分类层以生成 K 个部分敏感的特征图,用{X_k:k = 1,2,…,K}表示,每个图都编码对象的特定部分的信息。例如,在 K = 4 的情况下,会生成 {左上,右上,左下,右下} 四个局部敏感的特征图。同时,本文将每个预测边界框划分为 K 个子窗口,然后选择每个子窗口的中心位置作为采样点。这样,本文可以生成 K 个采样网格{S^k:k = 1,2,…,K},每个采样网格都与该局部对应的特征图相关联。如图所示,本文利用采样器,用生成的采样网格在对应的局部敏感特征图上进行采样,生成对齐好的特征图。最终能反映置信度的特征图则是 K 个对齐好特征图的平均。

4. 效果

本文提出的方法 (黑色) 在 KITTI 数据库上的 PR Curve,其中实线为两阶段方法,虚线为单阶段方法。可以看到本文作为单阶段方法能够达到两阶段方法才能达到的精度。

在 KITTI 鸟瞰 (BEV) 和 3D 测试集的效果。优点是在保持精度的同时,不增加额外的计算量,能达到 25FPS 的检测速度。

3d 自动生成物体_CVPR2020论文介绍: 3D 目标检测高效算法相关推荐

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

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

  2. 3d 自动生成物体_Adobe发布3D建模、AR内容生成应用Scantastic

    10月27日消息,Adobe展示了一款支持3D AR扫描的全新移动应用原型Scantastic,该应用结合3D扫描.设计和AR技术,让你用手机就能将周围的物体扫描并生成3D模型. 据青亭网了解,Sca ...

  3. 3d 自动生成物体_根据 2D 图片自动生成 3D 图书封面的牛逼工具

    小金子 读完需要 2分钟 速读仅需 1 分钟 大家好,我是你们的小金子. 今天要给推荐一个小众但很实用的工具,毕竟要用这个工具,你要么是图书工作者,要么就得自己写过书. 它就是一款能够根据 2D 图片 ...

  4. 3d 自动生成物体_相芯科技首秀SIGGRAPH,3D形象自动生成火了

    作为全球影响最广.规模最大的CG展示.学术研讨会,SIGGRAPH汇集了全球众多顶尖的计算机图形技术厂商以及影视行业的领军人物,分享最尖端的前沿技术.今年在美国洛杉矶会展中心,SIGGRAPH2019 ...

  5. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测

    ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...

  6. CVPR 2020 论文大盘点-目标检测篇

    本文盘点CVPR 2020 所有目标检测相关论文,总计64篇论文,感觉最大的特点是3D目标检测研究工作很多有21篇,尤其是工业界单位,可能是自动驾驶热带来的.2D目标检测依然很热,神经架构搜索也开始在 ...

  7. ECCV 2020 论文大盘点-目标检测篇

    本文盘点ECCV 2020 与目标检测相关的研究,包含目标检测新范式.密集目标检测.点云目标检测.少样本目标检测.水下目标检测.域适应目标检测.弱监督目标检测.训练策略等,总计 41 篇,其中 2 篇 ...

  8. 论文阅读笔记 | 目标检测算法——FSAF算法

    如有错误,恳请指出 文章目录 1. Introduction 2. FSAF Module 2.1 Network Architecture 2.2 Ground-truth and Loss 2.2 ...

  9. 论文研读-多目标自适应memetic算法

    论文研读-多目标自适应memetic算法 Adaptive Memetic Computing for Evolutionary Multiobjective Optimization 觉得有用的话, ...

最新文章

  1. 华为天才少年榜单遭受嘲讽:感觉水平一般,有点哗众取宠!
  2. python套接字socket的作用_【学习笔记】python实现的套接字socket
  3. c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...
  4. JAVA50道经典编程题
  5. [原]win32 rundll32 应用列表
  6. mysql操作json优点和缺点_mysql之使用json
  7. weightedrandomSamplers(1)
  8. android modbus 串口,android modbus RTU jssc连接
  9. Http之客户端请求服务器,服务器响应客户端。通过Handler在主线程中读取数据
  10. sql取逗号隔开的值_想学好Excel函数?你得先搞懂函数公式中逗号和星号的区别...
  11. 获取京东JDCookie
  12. Python用户画像词云图生成并集成到django网站
  13. 密码学小知识(2):密码学三大顶会,信息安全四大顶会,网络与信息安全CCF推荐会议和期刊
  14. 怎么用计算机向手机上传照片,华为手机怎么传照片到电脑上去?华为手机往电脑传照片方法...
  15. 使用Lucene.net+盘古分词实现搜索查询
  16. python遍历字母_如何遍历字母表?
  17. OFFICE激活报错0X80080005
  18. Oracle WITH AS 用法
  19. 报告格式调整(自动生成目录、页码设置等)
  20. requests的基本使用以及爬虫的基本介绍:QQ机器人制作基础

热门文章

  1. 【Python 04】Python开发环境概述
  2. win10 object type
  3. Laravel 生成二维码的方法
  4. 编码规范(代码优化)
  5. sqlmap-学习1 配置环境
  6. [转帖] Windows 与linux的栈大小问题
  7. 抖音直播APP软件系统为什么能这么火?反映出的问题又会是什么?
  8. 文件上传中的临时上传路径问题
  9. GridView 中的事件
  10. 学习拾遗--用RadioButtonList 或者DropDownList 进行动态赋值问题