3DIoUMatch-PVRCNN 数据处理部分

论文地址:https://arxiv.org/abs/2012.04355v3
项目地址:https://github.com/THU17cyz/3DIoUMatch-PVRCNN

本篇论文的关键代码:

  • Dataset:KittiDatasetSSL (本篇文章介绍)
  • Model:PVRCNN_SSL_3DIOU

Training Mode

1. 数据读取 __init__

全部数据读取

根据config中的DATA_CONFIG.INFO_PATH,获得全部数据。KITTI中共有3712个数据。

Labeled 数据读取

根据argument中的--split,获得有Label数据的Id和Index。根据Index,从全部数据中提取Label数据。

举例:--split train_0.01_1,读取./data/kitti/ImageSets/train_0.01_1.txt,其中包含sample_id和sample_index。

Unlabeled 数据读取
1)针对0.01, 0.02的有Label划分

从全部数据中剔除Labeled数据,即为Unlabeled数据。但是代码实现中,Unlabeled数据为全部数据,不确定是bug还是作者有意为之,但我认为影响不大。

2)针对1.00的有Label划分

Unlabeled数据即为Labeled数据,也是全部数据。

数据读取的总结
  • Labeled 数据
    • self.sample_id_list
    • self.sample_index_list
    • self.kitti_infos:
      每个info的keys为 ['point_cloud', 'image', 'calib', 'annos']
  • Unlabeled 数据
    • self.unlabeled_index_list
    • self.unlabeled_kitti_infos

2. Batch数据 __getitem__

读取一份label数据
1) 数据增强(暂未细看)

保持配置文件中的数据增强方式(no_db_sample=False)

2) data_dict中的数据说明
  • 数据增强参数:[‘flip_x’, ‘flip_y’, ‘rot_angle’, ‘scale’]
  • 强数据增强后的数据:[‘points’, ‘gt_boxes’, ‘voxels’, ‘voxel_coords’, ‘voxel_num_points’]
  • 弱数据增强后的数据:[‘points_ema’, ‘gt_boxes_ema’, ‘voxels_ema’, ‘voxel_coords_ema’, ‘voxel_num_points_ema’]

二者的数据差异在于有无进行翻转、旋转、缩放操作。即通过四个参数可以转换[‘points’, ‘gt_boxes’]与[‘points_ema’, ‘gt_boxes_ema’]。

读取一份unlabel数据
1) 数据增强(暂未细看)

保持配置文件中的数据增强方式(no_db_sample=True)

2) data_dict中的数据说明

同label数据

你可能感兴趣的:(3D目标检测,3d)