参考:
1.论文速读 – CenterPoint
2.激光雷达点云的3D目标检测入门(CenterPoint源码分析)
3.CenterPoint 在mmdetection3d中的实现
4. centerpoint 原文完整翻译
本文使用配置页:
mmdetection3d工程中的configs/centerpoint模型:
centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py
1.1 功能: 从文件中加载点云。
1.2 初始化参数
1.3 类内函数(以下所有均省略__init__)
__call__
: 从文件中获取点云数据的回调函数,结果为包含点云数据的dict__repr__
: 返回模块描述字符串2.1 功能: 加载多帧点云数据
2.2 初始化参数
2.3 类内函数
__call__
: 从文件中获取点云数据的回调函数,结果为包含点云数据的dict__repr__
: 返回模块描述字符串3.1 功能: 加载3D标注框,将实例掩码和点云语义掩码封装到关联字段中。
3.2 初始化参数
二进制掩码
,默认true3.3 类内函数
以下处理函数的具体过程均在mmdet3d.CustomDataset类中进行的
gt_bboxes_3d、bbox3d_fields
两个keycenter2d、depths
两个keygt_labels_3d
的keyattr_labels
的keypts_instance_mask、pts_mask_fields
两个keypts_semantic_mask、pts_seg_fields
两个key__call__
: 返回多种类型的标注结果中的一种__repr__
: 返回模块描述字符串4.1 功能: 采样真值(gt)物体到数据中
4.2 初始化参数
4.3 类内函数
__call__
: 采样真值物体到数据中,返回结果包含gt_bboxes_3d、gt_labels_3d、points
三个key__repr__
: 返回模块描述字符串5.1 功能: 对3D场景应用执行全局坐标系下的旋转、缩放和平移
5.2 初始化参数
[-pi/4, pi/4]
)5.3 类内函数
__call__
:旋转、缩放、平移bbox和点云__repr__
:6.1 功能:随机翻转点云和bbox。
注意:如果输入字典中包含“flip”关键字,则将使用标志。否则,它将由init中指定的比率随机决定。
6.2 初始化参数
**kwargs
: 可变键值对参数6.3 类内函数
__call__
: 翻转点云(bbox3d_fields),同时翻转二维图像和它的标注__repr__
7.1 功能: 通过范围过滤点云
7.2 初始化参数
7.3 类内函数
__call__
: 通过范围过滤点云__repr__
8.1 功能:通过范围过滤障碍物
8.2 初始化参数
8.3 类内函数
__call__
: 通过范围过滤点云__repr__
9.1 功能:根据类别名字过滤真值障碍物
9.2 初始化参数
9.3 类内函数
__call__
: 通过名字过滤障碍物__repr__
10.1 功能: 对输入点云打乱顺序(洗牌)
10.2 初始化参数:无
10.3 类内函数
__call__
: 打乱点云排序__repr__
11.1 功能: 默认格式化打包3D信息
注意: 它简化了格式化体素(voxel)通用字段的pipeline,主要包含"proposals", “gt_bboxes”, “gt_labels”, “gt_masks” and “gt_semantic_seg”。字段类型转换如下:
- img: (1)transpose, (2)to tensor, (3)to DataContainer (stack=True)
- proposals: (1)to tensor, (2)to DataContainer
- gt_bboxes: (1)to tensor, (2)to DataContainer
- gt_bboxes_ignore: (1)to tensor, (2)to DataContainer
- gt_labels: (1)to tensor, (2)to DataContainer
11.2 初始化参数
11.3 类内函数
__call__
: 执行变换和格式化通用字段,放入[results]
中__repr__
: 返回描述模块的字符串12.1 功能: 从有关特定任务的dataloader中收集数据
注意:
1)此类通常作为data loader pipeline的最后阶段
,典型的关键字集合,如"img", “proposals”, “gt_bboxes”, “gt_bboxes_ignore”, “gt_labels”, “gt_masks”
2)img_meta
总是被插入的数据项,内容依赖于meta_keys
,默认包含:
- 'img_shape': 网络中输入图像尺寸,类型 tuple ,维度(h, w, c). 注意图像在
右/下可能是0扩充(pad)
- 'scale_factor': 预处理尺度
- 'flip': 图像是否翻转
- 'filename': 图像文件名路径
- 'ori_shape': 图像原始形状,tuple (h, w, c)
- 'pad_shape': 扩充后图像尺寸
- 'lidar2img': lidar 到 图像旋转矩阵
- 'depth2img': depth 到图像旋转矩阵
- 'cam2img': 相机坐标系到图像坐标洗旋转矩阵
- 'pcd_horizontal_flip': 点云是否水平翻转
- 'pcd_vertical_flip': 点云是否垂直翻转
- 'box_mode_3d': 3D box 模式
- 'box_type_3d': 3D box 类型
- 'img_norm_cfg': 正则化信息dict
- mean: 每个channel平均值
- std: 每个channel标准差
- to_rgb: 是否由bgr转换为rgb
- 'pcd_trans': 点云旋转矩阵
- 'sample_idx': 样本关键帧索引
- 'pcd_scale_factor': 点云尺度因子
- 'pcd_rotation': 点云旋转
- 'pts_filename': 点云文件路径名
12.2 初始化参数
mmcv.DataContainer
,存放在data[img_metas]
中。12.3 类内函数
__call__
: 收集results中的关键字__repr__
: 返回描述模块的字符串未完待续,CenterPoint 源码流程解读(二)