1,数据部分:
- kitti底面中心设置位置:如果要换成自己的数据集,需要改这里。
det3d/datasets/pipelines/loading.py中:
box_np_ops.change_box3d_center_(gt_boxes, [0.5, 0.5, 0], [0.5, 0.5, 0.5])
- preprocess_v4/AssignTarget(object):/build_box_coder/GroundBox3dCoderTorch/GroundBox3dCoder/_encode & _decode/box_np_ops.second_box_encode中
encode()中:
#zg = zg + hg / 2
#za = za + ha / 2
decode()中:
#za = za + ha / 2
...
#zg = zg - hg / 2
- det3d/datasets/pipelines/preprocess_v4.py的init()中:
self.random_select = cfg.get("random_select", False) # False 这个值可以设成True,表示40m以外的点都保留,40m以内的点进行抽样选取。
2,预处理部分:
- bev_range
class Voxelization(object):中
bv_range = pc_range[[0, 1, 3, 4]] #如果坐标系变化,索引也要跟着变。
mask = prep.filter_gt_box_outside_range(gt_dict["gt_boxes"], bv_range) 需要check
- voxel生成过程同pointpillar,优化也可参考该步骤的pointpillar
voxels, coordinates, num_points_per_voxel = self.voxel_generator.generate(points)
- preprocess_v4.py的init()中:feature_map_size设置要同选取的range范围对应上。
feature_map_size = [1, 200, 176] #[1, 200, 176]
- create_data/kitti_ds.create_kitti_info_file(root_path)中,dims的h,w,l排序会根据xyz轴进行对应,如果和kitti坐标系不一致的话,这里需要调整
- 前面调整过hwl的次序之后,在这里生成create_gt_database时候,在piplines/loading中的这个box_camera_to_lidar也可以注销了,因为自己标注的数据就是在lidar坐标下的。
- 配置文件
region_similarity_calculator=dict(type="rotate_iou_similarity",),
db_prep_steps=[
dict(filter_by_min_num_points=dict(car=5, vehicle=5, otherVel=5, person=5, nonVel=5)),
#dict(filter_by_difficulty=[-1],), --- 自有数据该过滤条件要过滤
],
- kitti_common/def get_label_anno(label_path):
annotations["dimensions"] = np.array([[float(info) for info in x[8:11]] for x in content]).reshape(-1, 3)[:, [2, 1, 0]] #----[2, 0, 1]
- kitti_common/_calculate_num_points_in_gt():
# if remove_outside: #-------
# points_v = box_np_ops.remove_outside_points(points_v, rect, Trv2c, P2, image_info["image_shape"])
- box_np_ops/rotation_2d():
#rot_mat_T = np.stack([[rot_cos, -rot_sin], [rot_sin, rot_cos]])
rot_mat_T = np.stack([[rot_cos, rot_sin], [-rot_sin, rot_cos]])
- mg_head_v4_release.py/get_task_detections():
total_scores = torch.softmax(cls_preds, dim=0) # [70400, 1]-----------
#total_scores = torch.sigmoid(cls_preds) # [70400, 1]