如有错误,恳请指出。


文章目录

  • 1. 背景
  • 2. 网络结构
    • 2.1 特征提取
    • 2.2 边框生成
  • 3. 实验结果

paper:《3DSSD: Point-based 3D Single Stage Object Detector》

1. 背景

两阶段的3d检测网络一般包含upsample layer进行特征回传进一步提取全局point-wise特征,以及需要一个修正阶段(refinement stage)来对候选框进行微调,这两个步骤极大的耗费时间,同时让网络结构变得复杂。3D-SSD的目的就是为了进一步减少推理时间,抛弃这种PF layers以及refinement stage,只利用backbone进行下采样的特征提取来完成检测任务。此外,作为one-stage的检测算法,采用anchor-free+centerness的方式,3D-SSD极大的简化了检测算法。


2. 网络结构

网络结构图如下:

2.1 特征提取

在之前的工作中,由于不断地采用距离最远点采样来分组提取局部特征,没有FP layer进行重新上采样会丢失许多的前景点。利用剩余的特征点很难还能获得一个比较好的性能,因为目标信息丢失十分严重,这就是以前的工作一直都保留上采样工作的原因。既是知道其会消耗较大的推理时间,仍然没有将其丢弃。

问题的关键在于距离最远点采样中,只根据空间距离进行下采样必然会丢失部分前景点造成前景点的召回率严重下降。为此3D-SSD算法不仅仅考虑空间距离进行采样,同时还考虑对特征距离(F-FPS)进行采样。而由于背景点的特征基本上的一样的,所以利用特征最远点采样可以有效的消除背景点而提取前景点。同时,即使是远处对象的前景点同样可以通过特征最远点采样提取处理,这是因为不同对象点的语义信息是不一样的。经过分析,特征最远点采样可以有效的提取点云集中的前景点。

得益于F-FPS,前景点可以有效获得,但是背景点的稍有数量不足,导致无法增加背景点的接受域,从而导致正负点分类表现不佳。所以需要同时使用距离最远点采样(D-FPS)和特征最远点采样(F-FPS)来解决此问题。在具体实现中,D-FPS以点集中的xyz坐标为输入采样一半点,F-FPS以点集中的特征f为输入采样一半点,本质上D-FPS与F-FPS都是用于点集中点的采样,随后的操作与set abstraction layer一样,以r为半径分组采样k个点再进行max pooling操作获得最后输出特征。

2.2 边框生成

经过backbone输出的点特征,分别用D-FPS于F-FPS进行一半采样(Nm/2)。由于D-FPS采样出来的点背景点较多,F-FPS采样出来的点是前景点较多,所以接下来会利用F-FPS采样的点进行处理,称之为初始的中心点(initial center points)。利用这些来自F-FPS的初始点特征进行降维(降至3维)预测离相关实例中心点的距离(这个shift距离可以通过有监督回归),得到这个相对距离再加上初始点本身的xyz坐标,即可获得一个偏移位置,将这些偏移后的位置称为候选点(candidate points)。如下所示:

回到特征处理后的点集中,现无需进行任何的采样操作,而是直接将刚刚所获得的候选点(candidate points)作为采样点(数量为原始点集的一半),进行分组特征提取以及max pooling操作,提取到的特征作为最后的预测层的输入。此时提取到的特征组成是(N,f),其中N就是候选点(candidate points)的数量,而f是其特征维度。利用这些特征维度构造回归头(reg head)和分类头(class head)。

在回归头中,每个点对于位置信息(dx,dy,dz)和尺寸信息(dl,dw,dh)直接进行预测,而对于角度会划分12个bin进行分类+回归的混合预测。3个位置信息,3个尺寸信息,12个方向分类信息以及12个方向残余偏差,一共是30个维度信息,所以回归头中的dim=30。在分类头中,对于需要预测K类,每个点就输出K个维度信息。

此外3D-SSD借鉴的FCOS的想法,设计了3d center-ness。首先判断其是否在实例框当中(0或1),接着由候选点(candidate points)离边界框6个面的距离所确定(范围是0~1),分类的lable由以上两个部分相乘所获得,构造交叉熵损失。这里3D-SSD其实并没有很明确的说明如何确定正负样本的匹配,不过在候选点的获取中可能暗示比较明显,就是就是候选点如果存在与那个实例ground truth中,就以这个ground truth进行回归吧(They are shifted under the supervision of their relative locations to their corresponding instances)。

总的损失包括分类损失(classification loss,),回归损失(regression loss),偏移损失(shifting loss)。刚刚也提及到,分类损失的标签是center-ness,只对最后的候选点进行分类,其中除以候选点中的正样本进行归一化操作。回归损失中包含距离回归损失,尺寸回归损失以及角度的分类与回归混合损失,除此之外还有一个corner loss,这个corner loss是预测的8个角与分配的地面真相之间的距离损失。偏移损失就是候选点的预测偏移离(候选点的具体位置是偏移+坐标)其相应的实例中心的剩余距离的损失。

此外,在具体的训练过程中使用了多种数据增强方式,包括Mixip(随机增加其他场景的ground truth在当前场景中),随机旋转,随机平移,随机翻转,随机缩放。


3. 实验结果

3D-SSD同时在kitti数据集与nuscenes数据集上进行测试,以及在nuscenes的检测指标NDS(mean average precision (mAP), the mean average errors of location (mATE), size (mASE), orientation (mAOE), attribute (mAAE) 与 velocity (mAVE)之间的加权和)上进行测试。在性能优越的同时,3D-SSD的推理速度(38ms)要比PointRCNN(100ms)与STD(80ms)快2x有多,说明抛弃FA layer与refinemeat layer会带来速度的极大提升。


论文阅读笔记 | 三维目标检测——3DSSD相关推荐

  1. 论文阅读笔记 | 三维目标检测——PointRCNN

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 Proposal Generation 2.2 Proposal Refinement 3. 实验部分 3.1 kitti上的测评 ...

  2. 论文阅读笔记 | 三维目标检测——PartA2算法

    如有错误,恳请指出. 文章目录 0. 前言与补充知识 1. 背景 2. 相关工作 3. 网络结构 3.1 Part-aware stage Anchor-free Proposal Generatio ...

  3. 论文阅读笔记 | 三维目标检测——VoxelNet算法

    如有错误,恳请指出. 文章目录 1.背景 2. 网络结构 2.1 体素特征表示 2.2 卷积特征提取 2.3 RPN网络 3. 实验结果 paper:<VoxelNet: End-to-End ...

  4. 论文阅读笔记 | 三维目标检测——VoxelRCNN算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 Voxel Query Voxel ROI Pooling Accelerated Aggregation Loss Compute 3. ...

  5. 论文阅读笔记 | 三维目标检测——Complex-YOLO算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网路结构 3. 实验结果 paper:<Complex-YOLO: An Euler-Region-Proposal for Real-time ...

  6. 论文阅读笔记 | 三维目标检测——MV3D算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 提案投影网络 2.2 区域融合网络 3. 实验结果 paper:<Multi-View 3D Object Detection ...

  7. 『论文阅读笔记』目标检测模型中的性能评价方式-IOU、precision/recall、mAP、PR、Fps!

    目标检测模型中的性能评估标准-IOU.precision/recall.mAP.PR.Fps! 文章目录 一.交并比IOU 二.精确率(precision)和召回率(recall) 三.P-R(pre ...

  8. 【论文阅读】2d目标检测:综述

    最近在恶补2d目标检测的文章,把他们整理了一下,写一下综述,方便以后查看. 写得比较简略,主要是自己对于 一些网络的理解. - sppnet 本文引入了一种针对不同尺度图片的目标检测网络.传统网络针对 ...

  9. 论文阅读笔记 | 目标检测算法——PP-YOLOv2

    如有错误,恳请指出. 文章目录 1. Introduction 2. Revisit PP-YOLO 2.1 Pre-Processing 2.2 Baseline Model 2.3 Trainin ...

最新文章

  1. 三家逐鹿,私有化部署能帮神策数据杀出重围么?| 公司调研
  2. 开发实践 | Android IP查询实例(代码类)
  3. 衡量时间序列相似度的方法:从欧氏距离到DTW及其变种
  4. PHP——获取路径和目录
  5. Spring管理session的一些认识和用法心得
  6. Apache Kafka(二)- Kakfa 安装与启动
  7. uml类图例子_转:(中文命名)UML类图新手入门级介绍
  8. Python GUI界面编程初步 01 - GUI库的特点和选择
  9. 类 java_java类的基本结构
  10. IOS上从第三方页面回跳VUE页面页面不刷新问题
  11. 使⽤用 Spring Boot Actuator 监控应⽤
  12. HDOJ 2795 Billboard
  13. 【转】C# 中@符号在字符串中的作用
  14. 【MyBatis框架】Lombok插件的安装及使用
  15. 刷题42-m升水倒入n个杯子(动态规划)
  16. 差分GPS(differential GPS-DGPS,DGPS)
  17. debugger配置
  18. protobuf引入不同包下的proto文件
  19. 寂静岭:理性与心魔的拔河
  20. vb.net与SQL Server

热门文章

  1. 在Unity中使用四叉树算法绘制地形
  2. 示波器播放Bad apple坏苹果教程XY模式
  3. springboot 最新腾讯云短信接入的坑(包含所有操作流程)
  4. 核苷酸(evolution)
  5. Linux C编程一站式学习笔记2
  6. 迷你音乐播放器v1.0正式上线!
  7. [agc004e]Salvage Robots dp
  8. Nginx + uWSGI + Python + Django构建必应高清壁纸站
  9. DHCP报文交换抓包分析
  10. 最新数据!国内5G手机出货已超29万部