model: { second: { network_class_name: "VoxelNet" voxel_generator { full_empty_part_with_mean: false point_cloud_range : [0.0, -19.84, -2.5, 47.36, 19.84, 12.0] voxel_size : [0.16, 0.16, 3] max_number_of_points_per_voxel : 100 } voxel_feature_extractor: { module_class_name: "PillarFeatureNet" num_filters: [64] with_distance: false num_input_features: 4 } middle_feature_extractor: { module_class_name: "PointPillarsScatter" downsample_factor: 1 num_input_features: 64 } rpn: { module_class_name: "RPNV2" layer_nums: [3, 5, 5] layer_strides: [1, 2, 2] num_filters: [64, 128, 256] upsample_strides: [1, 2, 4] num_upsample_filters: [128, 128, 128] use_groupnorm: false num_groups: 32 num_input_features: 64 } loss: { classification_loss: { weighted_sigmoid_focal: { alpha: 0.25 gamma: 2.0 anchorwise_output: true } } localization_loss: { weighted_smooth_l1: { sigma: 3.0 code_weight: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } classification_weight: 1.0 localization_weight: 2.0 } num_point_features: 4 # model's num point feature should be independent of dataset # Outputs use_sigmoid_score: true encode_background_as_zeros: true encode_rad_error_by_sin: true use_direction_classifier: true direction_loss_weight: 0.2 num_direction_bins: 2 direction_limit_offset: 1 # Loss pos_class_weight: 1.0 neg_class_weight: 1.0 loss_norm_type: NormByNumPositives # Postprocess #post_center_limit_range: [0, -19.84, -2.5, 47.36, 19.84, 0.5] nms_class_agnostic: false # only valid in multi-class nms box_coder: { ground_box3d_coder: { linear_dim: false encode_angle_vector: false } } target_assigner: { class_settings: { anchor_generator_stride: { sizes: [0.6, 0.6, 6.0] strides: [0.16, 0.16, 0.0] # if generate only 1 z_center, z_stride will be ignored offsets: [0.08, -19.76, -1.465] # origin_offset + strides / 2 rotations: [0, 1.57] # 0, pi/2 } matched_threshold : 0.5 unmatched_threshold : 0.35 class_name: "Post-Big" use_rotate_nms: false use_multi_class_nms: false nms_pre_max_size: 1000 nms_post_max_size: 300 nms_score_threshold: 0.3 nms_iou_threshold: 0.3 region_similarity_calculator: { nearest_iou_similarity: { } } } sample_positive_fraction : -1 sample_size : 512 assign_per_class: true } } } train_input_reader: { dataset: { dataset_class_name: "KittiDataset" kitti_info_path: "/datadrive/MENSCH_DATA_t59/kitti_infos_train.pkl" kitti_root_path: "/datadrive/MENSCH_DATA_t59" } batch_size: 5 preprocess: { max_number_of_voxels: 12000 shuffle_points: true num_workers: 2 groundtruth_localization_noise_std: [0.25, 0.25, 0.25] groundtruth_rotation_uniform_noise: [-0.15707963267, 0.15707963267] global_rotation_uniform_noise: [-0.78539816, 0.78539816] global_scaling_uniform_noise: [0.95, 1.05] global_random_rotation_range_per_object: [0, 0] global_translate_noise_std: [0.2, 0.2, 0.2] anchor_area_threshold: 1 remove_points_after_sample: false groundtruth_points_drop_percentage: 0.0 groundtruth_drop_max_keep_points: 15 remove_unknown_examples: false sample_importance: 1.0 random_flip_x: false random_flip_y: true remove_environment: false database_sampler { database_info_path: "/datadrive/MENSCH_DATA_t59/kitti_dbinfos_train.pkl" sample_groups { name_to_max_num { key: "Post-Big" value: 4 } } database_prep_steps { filter_by_min_num_points { min_num_point_pairs { key: "Post-Big" value: 10 } } } database_prep_steps { filter_by_difficulty { removed_difficulties: [-1] } } global_random_rotation_range_per_object: [0, 0] rate: 1.0 } } } train_config: { optimizer: { adam_optimizer: { learning_rate: { exponential_decay: { initial_learning_rate: 0.0002 decay_length: 0.1 decay_factor: 0.8 staircase: True } } weight_decay: 0.0001 } fixed_weight_decay: false use_moving_average: false } steps: 16640 # 104 steps per epoch * 160 epochs steps_per_eval: 520 # 104 steps per epoch * 5 epochs save_checkpoints_secs : 520 # half hour save_summary_steps : 10 enable_mixed_precision: false loss_scale_factor: -1 clear_metrics_every_epoch: true } eval_input_reader: { dataset: { dataset_class_name: "KittiDataset" kitti_info_path: "/datadrive/MENSCH_DATA_t59/kitti_infos_val.pkl" kitti_root_path: "/datadrive/MENSCH_DATA_t59" } batch_size: 1 preprocess: { max_number_of_voxels: 12000 shuffle_points: false num_workers: 3 anchor_area_threshold: 1 remove_environment: false } }