Voxel-RCNN-Complex 总结

1. 摘要:
	a. 方向:自动驾驶领域,针对复杂交通情况
	b. 数据集:ONCE(One millioN sCenEs)
	c. 改进点(基于Voxel-RCNN):
		i. 在3D Backbone中加入残差结构
		ii. 设计了一个厚重的(?)3D特征提取器(有效提取高维信息)
		iii. 2D Backbone(包含残差、自校准卷积?、空间注意力、通道注意力机制)——扩大感受野、获得更多上下文信息
		iv. 使用了CBSS:用于提高鲁棒性、减少类别不均的类别平衡采样策略
	d. 性能:对远距离的小物体检测提高显著
2. 引言:
	a. 第一段(论证3D比2D好):讲2D问题多,3D随着设备花费降低变得普遍且提供的信息更多,对自动驾驶做决策有好处
	b. 第二段(对比突出自己的算法好):
		i. 介绍ONCE数据库(有电动车类型,其他库没有)——因此是复杂环境?;
		ii. 说其他算法一般,无法满足实际需求;
		iii. 现有算法对行人、自行车和远处汽车的检测一般;
	c. 第三段(为什么选择Voxel RCNN):
		i. 检测远处物体和小物体的难点
		ii. 现有算法的解决办法
		iii. 给出基于Voxel RCNN改进的理由(因为可以兼顾常规与难点检测)
	d. 第四段(细节):
		i. 3D算法的组成(3D形成提速后提取特征,转换为伪图像由2D处理)
		ii. 当前算法对2D部分关注不够
		iii. 该模型对2D Backbone的改进与效果
	e. 第五段(实验)
		i. 说明3D数据不好标注,长尾数据会造成类别不均
		ii. 使用CBSS做数据增强
	f. 第六段:贡献总结
		i. 训练了一个网络
		ii. 对3D和2D Backbone做了改进
		iii. 使用CBSS做数据增强
3. 结论:总结工作(同贡献),提出自身缺点(在检测行人上不如CenterPoints),会继续改进
4. 方法(基于体素的两阶段三维目标检测器)
	a. 概述(生成proposal、再预测)
		i. 第一个阶段:点云输入体素化后,3D Backbone 包含的稀疏卷积和子流形卷积?用于体素特征提取,特征随后被映射为伪图像,交由2D Backbone进行proposal生成;
		ii. 第二个阶段:将统一的网格点放入proposal中,体素特征将基于网格点进行聚合,池化特征将基于RoI池化模块生成,检测结果最后由FC层进行预测得到;
	b. 体素化
		i. 沿三维坐标进行体素化
		ii. 用三维坐标和反射强度表示点的原始特征
		iii. 用点的原始特征的平均值表示非空体素特征
	c. 3D Backbone
		i. 通常由子流形卷积和稀疏卷积构成
		ii. 输入:4维(坐标、反射强度)
		iii. 子流形结构?(第四页)
		iv. 改进:将子流形改为残差子流形(只是在每个子流形模块的输入连接到最后一个ReLU前)
	d. 2D Backbone
		i. 用于从伪图像中提取特征
		ii. 原始:6个3*3标准卷积用于特征提取,一个用于2倍下采样,5个用于特征提取,得到两个不同比例的特征,deconvoluted后concat,最后用一个卷积压缩维度
		iii. 改进:先用三个做三个比例的下采样特征提取,每个后面跟两个自校准卷积(会同时提取自己生成空间的和原始空间的),两个自校准之间有特殊结构,之后用两个注意力(在一个模块里)
	e. proposal生成
		i. 在生成的2D特征图上,每个pixel中放置2倍类别数量的anchor
		ii. 挑选9000个最高分数,再用NMS挑512个proposal
	f. 体素ROI池化
		i. 在RPN中使用体素ROI池化模块?
		ii. 分三步,第三步用到了pointnet
	g. 检测头
		i. 输入为每个proposal的池化特征
		ii. 两个分支:置信度预测和回归框的微调
	h. 损失函数
		i. 采用端到端训练,损失由两部分
		ii. RPN Loss:Focal Loss用于分类损失,平滑L1用于回归损失
		iii. RCNN Loss:交叉熵损失函数用于置信度损失(iou),平滑L1用于回归损失
	
5. 实验
	a. 细节:
		i. 数据集:ONCE dataset powered by HUAWEI,在中国境内制作,共五类,一天中不同时段,不同路况
		ii. 数据增强:
			1) 一般方法(反转、放缩、朝向旋转,gt复制)
			2) CBSS(根据分数复制相关种类,分越低复制的越多,最后对各种类随机挑选相同数量的samples)
		iii. 训练:
			1) 90 epochs,2个2080Ti,Adam optimizer
			2) 学习率最高为0.003,division factor为10,momentum ranges是0.95到0.85,权重衰变是0.01,batch size为6
			3) 训练时间(无CBSS)为23h,加CBSS为77h,但不影响推理速度
			4) 使用余弦退火学习率策略
		iv. 参数设置
			1) XYZ:[(−75.2,75.2), (−75.2,75.2), (−5,3)] m
			2) 体素:0.1 × 0.1 × 0.2 m,共 1504 × 1504 × 40 voxels
			3) 五个种类的anchor放置在特征图的每个像素上?,方向分别为0和90度
	b. 结果
		i. 评价指标:ONCE官方给出的
			1) 先根据置信度对预测结果排序,过滤掉太低的
			2) 再针对每个类别根据3D IoU值进行过滤
			3) 然后过滤掉朝向角不匹配的?
			4) 最后画出50次回归的精准召回率曲线,并求得mAP(平均准确率)
		ii. 与原模型对比
			1) mAP高了7到8个点(用和不用CBSS)
			2) 每个类别在近中远三个距离上,以及平均,都高了
			3) 结果证明针对小目标和远目标,性能都显著提升,使用CBSS后损失更低
		iii. 与其他方法对比
			都很高,在行人上不如CenterPoint的原因是基于锚方法的通病
		iv. 消融实验
			针对所有主要改进进行消融
		v. 改进的3D Backbone的有效性
			加入残差和升维(heavy backbone)增强了特征提取
		vi. 改进的2D Backbone的有效性
			加入自注意力和自校准卷积增强了表达
		vii. CBSS的有效性
			减少类别不均,增加鲁棒性
	c. 可视化 
		对比了三个,显示效果好
	d. 真实场景下的真实实验
		真的开了一辆车,搭载一个80 beam的lidar设备,一个2080Ti电脑,效果不错
posted @ 2022-06-09 20:14  youngsam  阅读(314)  评论(0编辑  收藏  举报