open-mmlab / OpenPCDet

OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
Apache License 2.0
4.62k stars 1.29k forks source link

Evaluation on custom velodyne set: index is out of bounds for dimension with size 0 #155

Closed Farzin-Negahbani closed 4 years ago

Farzin-Negahbani commented 4 years ago

Hi,

I changed Velodyne files of KITTI, I picked a subset of the existing points inside each .bin file and followed the pickle files generation and also successfully trained a model. During evaluation using the KITTI validation set, I'm getting the following error. By further investigation, in line 146 of get_sampled_points(), sampled_points is empty ( dimension is (1,0,3) ). I would appreciate any suggestions on this. Note that, I am able to test on the unchanged KITTI set.

Here is the output log:

 
2020-07-15 21:50:32,069   INFO  **********************Start logging**********************
2020-07-15 21:50:32,069   INFO  CUDA_VISIBLE_DEVICES=ALL
2020-07-15 21:50:32,069   INFO  cfg_file         /home/farzin/OpenPCDet/tools/cfgs/kitti_models/pv_rcnn.yaml
2020-07-15 21:50:32,069   INFO  batch_size       8
2020-07-15 21:50:32,069   INFO  epochs           80
2020-07-15 21:50:32,070   INFO  workers          4
2020-07-15 21:50:32,070   INFO  extra_tag        default
2020-07-15 21:50:32,070   INFO  ckpt             /home/farzin/OpenPCDet/output/ckpt/checkpoint_epoch_80.pth
2020-07-15 21:50:32,070   INFO  mgpus            False
2020-07-15 21:50:32,070   INFO  launcher         none
2020-07-15 21:50:32,070   INFO  tcp_port         18888
2020-07-15 21:50:32,070   INFO  local_rank       0
2020-07-15 21:50:32,070   INFO  set_cfgs         None
2020-07-15 21:50:32,070   INFO  max_waiting_mins 30
2020-07-15 21:50:32,070   INFO  start_epoch      0
2020-07-15 21:50:32,070   INFO  eval_tag         default
2020-07-15 21:50:32,070   INFO  eval_all         False
2020-07-15 21:50:32,070   INFO  ckpt_dir         None
2020-07-15 21:50:32,070   INFO  save_to_file     False
2020-07-15 21:50:32,070   INFO  cfg.ROOT_DIR: /home/farzin/OpenPCDet
2020-07-15 21:50:32,070   INFO  cfg.LOCAL_RANK: 0
2020-07-15 21:50:32,070   INFO  cfg.CLASS_NAMES: ['Car', 'Pedestrian', 'Cyclist']
2020-07-15 21:50:32,070   INFO  
cfg.DATA_CONFIG = edict()
2020-07-15 21:50:32,070   INFO  cfg.DATA_CONFIG.DATASET: KittiDataset
2020-07-15 21:50:32,070   INFO  cfg.DATA_CONFIG.DATA_PATH: ../data/kitti
2020-07-15 21:50:32,070   INFO  cfg.DATA_CONFIG.POINT_CLOUD_RANGE: [0, -40, -3, 70.4, 40, 1]
2020-07-15 21:50:32,070   INFO  
cfg.DATA_CONFIG.DATA_SPLIT = edict()
2020-07-15 21:50:32,070   INFO  cfg.DATA_CONFIG.DATA_SPLIT.train: train
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.DATA_SPLIT.test: val
2020-07-15 21:50:32,071   INFO  
cfg.DATA_CONFIG.INFO_PATH = edict()
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.INFO_PATH.train: ['kitti_infos_train.pkl']
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.INFO_PATH.test: ['kitti_infos_val.pkl']
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.FOV_POINTS_ONLY: True
2020-07-15 21:50:32,071   INFO  
cfg.DATA_CONFIG.DATA_AUGMENTOR = edict()
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.DATA_AUGMENTOR.DISABLE_AUG_LIST: ['placeholder']
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.DATA_AUGMENTOR.AUG_CONFIG_LIST: [{'NAME': 'gt_sampling', 'USE_ROAD_PLANE': False, 'DB_INFO_PATH': ['kitti_dbinfos_train.pkl'], 'PREPARE': {'filter_by_min_points': ['Car:5', 'Pedestrian:5', 'Cyclist:5'], 'filter_by_difficulty': [-1]}, 'SAMPLE_GROUPS': ['Car:15', 'Pedestrian:10', 'Cyclist:10'], 'NUM_POINT_FEATURES': 4, 'DATABASE_WITH_FAKELIDAR': False, 'REMOVE_EXTRA_WIDTH': [0.0, 0.0, 0.0], 'LIMIT_WHOLE_SCENE': False}, {'NAME': 'random_world_flip', 'ALONG_AXIS_LIST': ['x']}, {'NAME': 'random_world_rotation', 'WORLD_ROT_ANGLE': [-0.78539816, 0.78539816]}, {'NAME': 'random_world_scaling', 'WORLD_SCALE_RANGE': [0.95, 1.05]}]
2020-07-15 21:50:32,071   INFO  
cfg.DATA_CONFIG.POINT_FEATURE_ENCODING = edict()
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.encoding_type: absolute_coordinates_encoding
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.used_feature_list: ['x', 'y', 'z', 'intensity']
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.src_feature_list: ['x', 'y', 'z', 'intensity']
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG.DATA_PROCESSOR: [{'NAME': 'mask_points_and_boxes_outside_range', 'REMOVE_OUTSIDE_BOXES': True}, {'NAME': 'shuffle_points', 'SHUFFLE_ENABLED': {'train': True, 'test': False}}, {'NAME': 'transform_points_to_voxels', 'VOXEL_SIZE': [0.05, 0.05, 0.1], 'MAX_POINTS_PER_VOXEL': 5, 'MAX_NUMBER_OF_VOXELS': {'train': 16000, 'test': 40000}}]
2020-07-15 21:50:32,071   INFO  cfg.DATA_CONFIG._BASE_CONFIG_: cfgs/dataset_configs/kitti_dataset.yaml
2020-07-15 21:50:32,071   INFO  
cfg.MODEL = edict()
2020-07-15 21:50:32,071   INFO  cfg.MODEL.NAME: PVRCNN
2020-07-15 21:50:32,071   INFO  
cfg.MODEL.VFE = edict()
2020-07-15 21:50:32,071   INFO  cfg.MODEL.VFE.NAME: MeanVFE
2020-07-15 21:50:32,071   INFO  
cfg.MODEL.BACKBONE_3D = edict()
2020-07-15 21:50:32,071   INFO  cfg.MODEL.BACKBONE_3D.NAME: VoxelBackBone8x
2020-07-15 21:50:32,071   INFO  
cfg.MODEL.MAP_TO_BEV = edict()
2020-07-15 21:50:32,071   INFO  cfg.MODEL.MAP_TO_BEV.NAME: HeightCompression
2020-07-15 21:50:32,071   INFO  cfg.MODEL.MAP_TO_BEV.NUM_BEV_FEATURES: 256
2020-07-15 21:50:32,072   INFO  
cfg.MODEL.BACKBONE_2D = edict()
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.NAME: BaseBEVBackbone
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.LAYER_NUMS: [5, 5]
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.LAYER_STRIDES: [1, 2]
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.NUM_FILTERS: [128, 256]
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.UPSAMPLE_STRIDES: [1, 2]
2020-07-15 21:50:32,072   INFO  cfg.MODEL.BACKBONE_2D.NUM_UPSAMPLE_FILTERS: [256, 256]
2020-07-15 21:50:32,072   INFO  
cfg.MODEL.DENSE_HEAD = edict()
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.NAME: AnchorHeadSingle
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.CLASS_AGNOSTIC: False
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.USE_DIRECTION_CLASSIFIER: True
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.DIR_OFFSET: 0.78539
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.DIR_LIMIT_OFFSET: 0.0
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.NUM_DIR_BINS: 2
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.ANCHOR_GENERATOR_CONFIG: [{'class_name': 'Car', 'anchor_sizes': [[3.9, 1.6, 1.56]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-1.78], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.6, 'unmatched_threshold': 0.45}, {'class_name': 'Pedestrian', 'anchor_sizes': [[0.8, 0.6, 1.73]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-0.6], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.5, 'unmatched_threshold': 0.35}, {'class_name': 'Cyclist', 'anchor_sizes': [[1.76, 0.6, 1.73]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-0.6], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.5, 'unmatched_threshold': 0.35}]
2020-07-15 21:50:32,072   INFO  
cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG = edict()
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.NAME: AxisAlignedTargetAssigner
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.POS_FRACTION: -1.0
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.SAMPLE_SIZE: 512
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.NORM_BY_NUM_EXAMPLES: False
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.MATCH_HEIGHT: False
2020-07-15 21:50:32,072   INFO  cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.BOX_CODER: ResidualCoder
2020-07-15 21:50:32,072   INFO  
cfg.MODEL.DENSE_HEAD.LOSS_CONFIG = edict()
2020-07-15 21:50:32,072   INFO  
cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS = edict()
2020-07-15 21:50:32,073   INFO  cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.cls_weight: 1.0
2020-07-15 21:50:32,073   INFO  cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.loc_weight: 2.0
2020-07-15 21:50:32,073   INFO  cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.dir_weight: 0.2
2020-07-15 21:50:32,073   INFO  cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.code_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
2020-07-15 21:50:32,073   INFO  
cfg.MODEL.PFE = edict()
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.NAME: VoxelSetAbstraction
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.POINT_SOURCE: raw_points
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.NUM_KEYPOINTS: 2048
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.NUM_OUTPUT_FEATURES: 128
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SAMPLE_METHOD: FPS
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.FEATURES_SOURCE: ['bev', 'x_conv1', 'x_conv2', 'x_conv3', 'x_conv4', 'raw_points']
2020-07-15 21:50:32,073   INFO  
cfg.MODEL.PFE.SA_LAYER = edict()
2020-07-15 21:50:32,073   INFO  
cfg.MODEL.PFE.SA_LAYER.raw_points = edict()
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.raw_points.MLPS: [[16, 16], [16, 16]]
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.raw_points.POOL_RADIUS: [0.4, 0.8]
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.raw_points.NSAMPLE: [16, 16]
2020-07-15 21:50:32,073   INFO  
cfg.MODEL.PFE.SA_LAYER.x_conv1 = edict()
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv1.DOWNSAMPLE_FACTOR: 1
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv1.MLPS: [[16, 16], [16, 16]]
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv1.POOL_RADIUS: [0.4, 0.8]
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv1.NSAMPLE: [16, 16]
2020-07-15 21:50:32,073   INFO  
cfg.MODEL.PFE.SA_LAYER.x_conv2 = edict()
2020-07-15 21:50:32,073   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv2.DOWNSAMPLE_FACTOR: 2
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv2.MLPS: [[32, 32], [32, 32]]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv2.POOL_RADIUS: [0.8, 1.2]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv2.NSAMPLE: [16, 32]
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.PFE.SA_LAYER.x_conv3 = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv3.DOWNSAMPLE_FACTOR: 4
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv3.MLPS: [[64, 64], [64, 64]]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv3.POOL_RADIUS: [1.2, 2.4]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv3.NSAMPLE: [16, 32]
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.PFE.SA_LAYER.x_conv4 = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv4.DOWNSAMPLE_FACTOR: 8
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv4.MLPS: [[64, 64], [64, 64]]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv4.POOL_RADIUS: [2.4, 4.8]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.PFE.SA_LAYER.x_conv4.NSAMPLE: [16, 32]
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.POINT_HEAD = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.NAME: PointHeadSimple
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.CLS_FC: [256, 256]
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.CLASS_AGNOSTIC: True
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.USE_POINT_FEATURES_BEFORE_FUSION: True
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.POINT_HEAD.TARGET_CONFIG = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.TARGET_CONFIG.GT_EXTRA_WIDTH: [0.2, 0.2, 0.2]
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.POINT_HEAD.LOSS_CONFIG = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.LOSS_CONFIG.LOSS_REG: smooth-l1
2020-07-15 21:50:32,074   INFO  
cfg.MODEL.POINT_HEAD.LOSS_CONFIG.LOSS_WEIGHTS = edict()
2020-07-15 21:50:32,074   INFO  cfg.MODEL.POINT_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.point_cls_weight: 1.0
2020-07-15 21:50:32,075   INFO  
cfg.MODEL.ROI_HEAD = edict()
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NAME: PVRCNNHead
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.CLASS_AGNOSTIC: True
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.SHARED_FC: [256, 256]
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.CLS_FC: [256, 256]
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.REG_FC: [256, 256]
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.DP_RATIO: 0.3
2020-07-15 21:50:32,075   INFO  
cfg.MODEL.ROI_HEAD.NMS_CONFIG = edict()
2020-07-15 21:50:32,075   INFO  
cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN = edict()
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_TYPE: nms_gpu
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.MULTI_CLASSES_NMS: False
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_PRE_MAXSIZE: 9000
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_POST_MAXSIZE: 512
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_THRESH: 0.8
2020-07-15 21:50:32,075   INFO  
cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST = edict()
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_TYPE: nms_gpu
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.MULTI_CLASSES_NMS: False
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_PRE_MAXSIZE: 1024
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_POST_MAXSIZE: 100
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_THRESH: 0.7
2020-07-15 21:50:32,075   INFO  
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL = edict()
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.GRID_SIZE: 6
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.MLPS: [[64, 64], [64, 64]]
2020-07-15 21:50:32,075   INFO  cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_RADIUS: [0.8, 1.6]
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.NSAMPLE: [16, 16]
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_METHOD: max_pool
2020-07-15 21:50:32,076   INFO  
cfg.MODEL.ROI_HEAD.TARGET_CONFIG = edict()
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.BOX_CODER: ResidualCoder
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.ROI_PER_IMAGE: 128
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.FG_RATIO: 0.5
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.SAMPLE_ROI_BY_EACH_CLASS: True
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_SCORE_TYPE: roi_iou
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_FG_THRESH: 0.75
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_BG_THRESH: 0.25
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_BG_THRESH_LO: 0.1
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.HARD_BG_RATIO: 0.8
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.TARGET_CONFIG.REG_FG_THRESH: 0.55
2020-07-15 21:50:32,076   INFO  
cfg.MODEL.ROI_HEAD.LOSS_CONFIG = edict()
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.CLS_LOSS: BinaryCrossEntropy
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.REG_LOSS: smooth-l1
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.CORNER_LOSS_REGULARIZATION: True
2020-07-15 21:50:32,076   INFO  
cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS = edict()
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_cls_weight: 1.0
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_reg_weight: 1.0
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_corner_weight: 1.0
2020-07-15 21:50:32,076   INFO  cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.code_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
2020-07-15 21:50:32,076   INFO  
cfg.MODEL.POST_PROCESSING = edict()
2020-07-15 21:50:32,076   INFO  cfg.MODEL.POST_PROCESSING.RECALL_THRESH_LIST: [0.3, 0.5, 0.7]
2020-07-15 21:50:32,076   INFO  cfg.MODEL.POST_PROCESSING.SCORE_THRESH: 0.1
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.OUTPUT_RAW_SCORE: False
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.EVAL_METRIC: kitti
2020-07-15 21:50:32,077   INFO  
cfg.MODEL.POST_PROCESSING.NMS_CONFIG = edict()
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.NMS_CONFIG.MULTI_CLASSES_NMS: False
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_TYPE: nms_gpu
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_THRESH: 0.1
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_PRE_MAXSIZE: 4096
2020-07-15 21:50:32,077   INFO  cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_POST_MAXSIZE: 500
2020-07-15 21:50:32,077   INFO  
cfg.OPTIMIZATION = edict()
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.OPTIMIZER: adam_onecycle
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.LR: 0.01
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.WEIGHT_DECAY: 0.01
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.MOMENTUM: 0.9
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.MOMS: [0.95, 0.85]
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.PCT_START: 0.4
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.DIV_FACTOR: 10
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.DECAY_STEP_LIST: [35, 45]
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.LR_DECAY: 0.1
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.LR_CLIP: 1e-07
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.LR_WARMUP: False
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.WARMUP_EPOCH: 1
2020-07-15 21:50:32,077   INFO  cfg.OPTIMIZATION.GRAD_NORM_CLIP: 10
2020-07-15 21:50:32,077   INFO  cfg.TAG: pv_rcnn
2020-07-15 21:50:32,077   INFO  cfg.EXP_GROUP_PATH: home/farzin/OpenPCDet/tools/cfgs/kitti_models
2020-07-15 21:50:32,202   INFO  Loading KITTI dataset
2020-07-15 21:50:32,318   INFO  Total samples for KITTI dataset: 3769
2020-07-15 21:50:36,535   INFO  ==> Loading parameters from checkpoint /home/farzin/OpenPCDet/output/ckpt/checkpoint_epoch_80.pth to GPU
2020-07-15 21:50:36,655   INFO  ==> Checkpoint trained from version: none
2020-07-15 21:50:37,296   INFO  ==> Done (loaded 367/367)
2020-07-15 21:50:37,316   INFO  *************** EPOCH 80 EVALUATION *****************
eval:   0%|▏                                                                     | 1/472 [00:01<09:14,  1.18s/it, recall_0.3=(23, 23) / 23]Traceback (most recent call last):
  File "test.py", line 190, in 
    main()
  File "test.py", line 186, in main
    eval_single_ckpt(model, test_loader, args, eval_output_dir, logger, epoch_id, dist_test=dist_test)
  File "test.py", line 60, in eval_single_ckpt
    result_dir=eval_output_dir, save_to_file=args.save_to_file
  File "/home/farzin/OpenPCDet/tools/eval_utils/eval_utils.py", line 57, in eval_one_epoch
    pred_dicts, ret_dict = model(batch_dict)
  File "/home/farzin/OpenPCDet/virt_env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 547, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/farzin/OpenPCDet/pcdet/models/detectors/pv_rcnn.py", line 11, in forward
    batch_dict = cur_module(batch_dict)
  File "/home/farzin/OpenPCDet/virt_env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 547, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/farzin/OpenPCDet/pcdet/models/backbones_3d/pfe/voxel_set_abstraction.py", line 176, in forward
    keypoints = self.get_sampled_points(batch_dict)
  File "/home/farzin/OpenPCDet/pcdet/models/backbones_3d/pfe/voxel_set_abstraction.py", line 146, in get_sampled_points
    keypoints = sampled_points[0][cur_pt_idxs[0]].unsqueeze(dim=0)
IndexError: index is out of bounds for dimension with size 0
eval:   0%|▏                                                                     | 1/472 [00:01<10:46,  1.37s/it, recall_0.3=(23, 23) / 23]
            
sshaoshuai commented 4 years ago

Have you checked the shape of batch_dict['points'] in this function? Since the sampled_points is from src_points, maybe you should also check the values of bs_mask.

Farzin-Negahbani commented 4 years ago

For that problematic iteration, batch_dict['points'] is empty. So the sampled_points and bs_mask are empty as well.

sshaoshuai commented 4 years ago

So why the batch_dict['points'] is empty? It should contain the points from the dataloader.

Farzin-Negahbani commented 4 years ago

@sshaoshuai yes, it's because some of our custom data doesn't have any lidar point. I changed the dataloader for my case now. Thanks for your time and excellent work.

zhixiongzh commented 4 years ago

@Farzin-Negahbani My data has the same problem, with some[nan nan nan 0] points. Is it the problem of lidar or it is a normal phenomenon? I delete all the points [nan nan nan 0] in the data in the array and save as new .npy file, but I have no idea whether my simple method of deleting is reasonable.

Farzin-Negahbani commented 4 years ago

@Shawn-Zhuang Velodyne data in KITTI doesn't have "nan" values, so it might be a bug in your code. In my case, I was keeping KITTI Lidar data where they meet some conditions, and apparently, this produces empty *.bin files.

curiousboy20 commented 2 years ago

@sshaoshuai yes, it's because some of our custom data doesn't have any lidar point. I changed the dataloader for my case now. Thanks for your time and excellent work.

Hi, could you explain more about what you did to solve this error? I got the same error and while I check my .bin Velodyne data, there are no NaN values and all of the bin files have points (x,y,z, intensity).