Sparse-to-dense 3D Object Detector for Point Cloud(KITTI,Tencent Youtu,港中文,2019.7.22)
Sparse-to-dense 3D Object Detector for Point Cloud(KITTI,Tencent Youtu,港中文,2019.7.22)
是基于点云的二阶段检测网络。KITTI上性能第一,10FPS
目前主流的点云检测网络可以分为3类,Mutil_view,voxel,point-based,
Mutil_view:涉及到如何融合多元信息的问题,无论是将点云投影到3D(MV3D)还是直接处理融合的特征(AVOD), 都有问题:对行人等小目标不work
Voxel:体素化网络(voxelnet),不可避免的有信息丢失问题,削弱了局部信息的质量
Point_based:(PointRCNN)性能更好,但是感受野不可控,计算量大
论文贡献:
- 提出基于球形的anchor,不预测朝向,减少计算量的同时提高了召回率。
- 提出pointspool layer,融合voxel的方法将点云的稀疏特征转化为方便CNN处理的密集特征。
- 提出扩增的Iou预测分支,在NMS时以预测的IOU得分乘以分类得分得到的值作为NMS标准,而不只是分类的得分
- 目前主流方法的集大成者,在区域提议阶段使用point-based结构,在特征处理时(pointspool layer)使用voxelnet的VFE结构。
网络结构:
三部分:
1. 区域提议模块(Proposal Generation Module,PGM)
2. 提议特征生成(Proposal Feature Generation)
3. 目标框预测(Box Prediction Network)
区域提议模块(PGM):
球形anchor:
三维目标朝向可能是任何方向,因此采用球形anchor来给每个点分配anchor,对不同目标采用特定的球形半径。每个球形anchor对应一个预设好尺寸的参考目标框,用于提议生成。由于不预设参考框的朝向而是直接预测,球形锚的数量与预先定义的参考框可能方向的数量不成正比,使得锚的数量减少约50%。
为进一步减少anchor数目,使用3维语义分割网络来得到点的类别得分和语义特征。以anchor中心点的得分作为该anchor的得分,将anchor投影到BEV中计算IOU,然后进行NMS操作,这样anchor的数目减少到了500个左右。
提议生成网络:
其实就是pointnet
网络输入:归一化的anchor坐标(x,y,z)(对anchor内的每一个点而言)和语义特征
输出:分类得分,回归偏移,朝向
语义分割网络和point net如图:
得到中心点坐偏移,加上原来的坐标和预设的anchor尺寸,得到准确的提议框。朝向信息同voxelnet,角度等分为12份
最后通过分类得分和BEV IOU对anchor做nms,得到300/100个左右的提议框用用于train/tets
IOU 计算:球形anchor不好分配正负样本,因此计算点云数目的交并比而不是面积交并比
提议特征生成:
目标:为每个提议根据语义特征和坐标信息,生成特征向量
最简单的方法就是,对每个提议直接用pointnet++处理得到特征向量。但是速度慢。本文使用pointspool(即voxel layer):
- 随机选择提议框内的N个点,取归一化坐标(减去中心点坐标,然后旋转!)和语义特征作为输入
- 对proposal做体素分割,然后使用VFE layer对每个体素做特征提取,最后送入目标框回归层
相比原来的VFE layer,pointspool层可以传播特征,使得端到端的训练成为可能。pointspool层相比于point net++,基本维持了精度不变,速度大幅提升
目标框预测(Box Prediction Network):
有两个分支:目标框估计分支和IOU估计分支
目标框估计分支:
两个FC层做特征提取,还有两个FC层分别做分类和回归。直接回归尺寸(tl,tw,th)和偏移(tx,ty,tz)。朝向预测与voxelnet相同
IOU预测分支:
预测目标框和GT之间的IOU,然后将IOU乘以分类得分,作为NMS的指标。精度提升很高:
损失函数
分为两部分:提议生成损失loss prop 和目标框预测损失loss box
loss prop:
其中,定位损失L_loc和朝向损失L_ang:
loss box:
除了与loss prop 相同的部分外,多了两项:3D IoU loss 和 corner loss
3D IoU loss:把提议和对应GT框的IOU作为GT,使用smooth L1
Corner loss:计算8个角点与对应GT框的距离:
实验结果:
STD的精度是目前最高,对比之前的最强模型UberATG-MMF,在hard难度下的精度提升很高。
不过仔细观察可以发现,在行人检测任务中STD的性能与F-pointnet和AVOD-FPN没有明显差距,不如car和cyclist任务中的优势明显,可见行人检测是3D立体检测任务中最难的地方。
论文中说对小目标点云更加稀疏,相比RGB检出难度更大
消融实验:
首先是球形anchor相对矩形anchor的优越性:
没有朝向,所以anchor数量减少,计算量减少,同时尽可能多的覆盖了ground truth的 区域(感受野大),召回率高
特征向量的有效性:
语义特征和归一化的坐标作为特征,效果最好:
IOU预测分支的有效性:
在NMS,soft-nms和3D IOU引导的NMS三者的比较中,3D IOU引导的NMS效果最好:
此外还将IOU直接作为NMS的标准做了实验,效果不如结合了分类得分和IOU的NMS:
推理时间:
80ms,在所有point-based 和 multi-view 方法中是最快的(没有提到voxel,应该还是voxel方法最快)
其中point net++(backbone) 用了54ms,提议生成模块(pointnet,nms)用了10ms,pointspool layer用了6ms,二阶段的两个分支用了10ms。
个人观点:
由推理时间可见,提出的pointspool layer非常之高效,应该是使用了体素网络的VFE层的原因。
此外,backbone太重,说明在点云检测任务中,目前没有一个较轻且足够高效的网络,类似于二维检测任务中的resnet,毕竟3D检测不如二维检测成熟,这也是下一步需要努力改进的方向:即 如何改进STD的backbone使得速度进一步提升?
考虑将分类得分作为标准的NMS和将IOU作为标准的NMS:
两个标准并没有直接关联,但事实上性能是差不多的??说明两者的分布非常相近,那么把IOU 乘以分类得分作为标准,得到的提升应该也不会太大,事实确实如此:
(又或者,本来精度逼近90,由于边际效应,想要大幅提升已经基本不可能了?)
欢迎交流!
Sparse-to-dense 3D Object Detector for Point Cloud(KITTI,Tencent Youtu,港中文,2019.7.22)相关推荐
- STD: Sparse-to-Dense 3D Object Detector for Point Cloud 阅读笔记
Yang Z, Sun Y, Liu S, et al. Std: Sparse-to-dense 3d object detector for point cloud[C]//Proceedings ...
- STD:Sparse-to-Dense 3D Object Detector for Point Cloud(腾讯香港大学)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 原文地址:https://arxiv.org/abs/1907.10471 主要思想 本文提出了一种新 ...
- SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud(CVPR2021)三维目标检测
Wu Zheng Weiliang Tang Li Jiang Chi-Wing Fu The Chinese University of Hong Kong [paper] [code] 文章目录 ...
- 【论文阅读】【3d目标检测】Embracing Single Stride 3D Object Detector with Sparse Transformer
论文标题:Embracing Single Stride 3D Object Detector with Sparse Transformer 源码地址:https://github.com/TuSi ...
- Improved 3D Object Detector Under Snowfall Weather Condition Based on LiDAR Point Cloud
Improved 3D Object Detector Under Snowfall Weather Condition Based on LiDAR Point Cloud Method Doubl ...
- Structure Aware Single-stage 3D Object Detection from Point Cloud
Structure Aware Single-stage 3D Object Detection from Point Cloud 作者:Chenhang He, Hui Zeng, Jianqian ...
- Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences
本文介绍一篇Waymo基于点云序列的3D物体检测网络:3D Auto Labeling,论文已收录于CVPR 2021. 这里重点是理解本文提出的 Object-centric Auto Labeli ...
- Paper Reading- Center-based 3D Object Detection and Tracking (Based: KITTI)
Background 3D的对象为了表示BBox(Bounding box),一般都是立体的.这种方法是模仿了2D中检测的方法.在传统的方法中,一般使用anchor.本文讲2D检测中的一篇十分经典的文 ...
- 两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud
本文介绍一篇两阶段的3D目标检测网络:SIENet. 这里重点是理解本文提出的 Hybrid-Paradigm Region Proposal Network 和 Spatial Informatio ...
最新文章
- spring boot学习资料以及DEMO项目
- QT自定义控件之倒计时控件
- TCP/IP总结(3)数据包
- 《UML用户指南第二版》再次温读笔记(一)(downmoon)
- 真得好好细讲文件上传,否则漏洞百出
- 设计模式适配器模式_适配器设计模式示例
- 生产上完成TopN统计流程
- 停止和删除Hasplms服务(二)--HASP运行环境
- 数据:以太坊Gas价格较月初下降45%
- WebSite设置首页或是加入收藏夹功能
- 多维数组的本质和指针数组
- Python 辛普森积分法 simps计算sin(x)的值(完美实现)
- 一款陌生人状态社交软件--same
- 深度思考-不断逼近问题的本质
- 3个字节转换为另外3个字节的简单加密算法
- python程序执行完后重头开始做烧饼_下塘烧饼 的动态 - SegmentFault 思否
- 网站安全之域名被劫持、域名被劫持后该怎么办!!!
- Unsupported SQL of `create database xxx CHARACTER SET UTF8
- python方差齐性检验_【Python】统计科学之方差齐性检验
- new Date() 获取本月天数、获取本月的最后一天日期
热门文章
- vue TypeError: Cannot read properties of null (reading 'insertBefore')
- Java中final、finally、finalize的区别
- 《设计模式》适配器模式
- 上色的纱雾(二分搜索)
- 创业公司Playcafe关门大吉 创始人总结10大失败教训
- 郑州轻工业大学OJ1024: 计算字母序号
- i.mx53开发板挂载NFS
- 【收藏】如何优雅的在 Python matplotlib 中可视化矩阵,以及cmap色带设置
- 如何在Mac或iPhone上设置 iCloud 钥匙串?
- 遍历ArrayList并移除一个元素