Skip to content

Commit

Permalink
Added config and hyperparameter files
Browse files Browse the repository at this point in the history
  • Loading branch information
nubertj committed Apr 28, 2021
1 parent 1b194bb commit 9845a5d
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 0 deletions.
65 changes: 65 additions & 0 deletions config/config_datasets.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# General ------------------------------------
## Deployment ------------
horizontal_field_of_view: [ -179.9, 179.9 ] # Always this for rotating LiDAR sensors

## Preprocessing ---------
### Neighborhood estimation
min_num_points_in_neighborhood_to_determine_point_class: 10 # neighborhood below this threshold --> no normal computed
epsilon_plane: 0.01 # 1e-2, this is the epsilon value when eigenvalues are considered to describe a plane
epsilon_line: 0.01 # 1e-2, -"- to describe a line
epsilon_range: 0.5 # Epsilon when points are removed from patch used for normal estimation

# KITTI --------------------------------------
kitti: # must be the same as dataset name specified in deployment_options.yaml
## Deployment --------
### Training/testing configuration
training_identifiers: [ 0 , 1, 2, 3, 4, 5, 6, 7, 8 ]
testing_identifiers: [ 9, 10 ]
### Sensor specs
vertical_field_of_view: [ -24.5, 2.0 ] # taken from the datasheet, in degrees
vertical_cells: 64 # Number of LiDAR rings
horizontal_cells: 720 # Can be defined, should not be larger than horizontal resolution of LiDAR
### Pre-processed file
preprocessed_path: "./datasets/kitti/preprocessed/sequences"
### Ground-truth poses
pose_data_path: "./datasets/kitti/data_odometry_poses/dataset/poses"

## Pre-processing ----
### Dataset type, currently supported: "kitti" and "rosbag"
dataset_type: "kitti"
### Specific configurations needed for pre-processing
horizontal_cells_preprocessing: 2250 # Calculated from 10Hz frequency of LiDAR
### Preprocessing hyperparameters
neighborhood_side_length: [ 7, 11 ] # Patch dimensions used for normal estimation
### Source files (before pre-processing)
data_path: "./datasets/kitti/data_odometry_velodyne/dataset/sequences" # Path to dataset
rosbag_path: "./datasets/kitti/rosbags/" # Only needed when converted to rosbag

# DARPA --------------------------------------
darpa:
## Deployment --------
### Training/testing configuration
training_identifiers: [ 0 ]
testing_identifiers: [ 0 ]
### Sensor specs
vertical_field_of_view: [ -22.5, 22.5 ]
vertical_cells: 64
horizontal_cells: 512
### Pre-processed file
preprocessed_path: "./datasets/darpa/preprocessed/sequences"
### Ground-truth poses
pose_data_path: null

## Pre-processing ----
### Dataset type, currently supported: "kitti" and "rosbag"
dataset_type: "rosbag"
topic: "/sherman/lidar_points"
### Specific configurations needed for pre-processing
horizontal_cells_preprocessing: 512
### Preprocessing hyperparameters
neighborhood_side_length: [ 7, 11 ]
### Source files (before pre-processing)
data_path: "./datasets/darpa"

# Custom dataset
custom: # etc.
21 changes: 21 additions & 0 deletions config/deployment_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Dataset
## Selection
datasets: ["kitti"] # Can contain multiple datasets, e.g. ["darpa", "kitti"]
mode: "training" # Valid options: "training" and "testing", will also be set by training/testing scripts
experiment: "trainings_experiments_1"

# System information
device: "cuda" # "cuda", "cpu", if multiple GPUs: select cuda device via CUDA_VISIBLE_DEVICES=...
store_dataset_in_RAM: False # If false, each scan and normal file will be read from disk
# For KITTI requires approximately 50GB RAM/SWAP
num_dataloader_workers: 0 # default: 0

## Comfort options
unsupervised_at_start: False # if False, it starts to train supervised in the first epoch (Identity matching)
inference_only: True # During testing, it does not compute any losses, during training: no impact
log_normals: True
visualize_images: True
visualize_single_img_preprocessing: False

## Performance options
use_jit: False # Only thoroughly tested for inference
33 changes: 33 additions & 0 deletions config/hyperparameters.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Training Parameters -------------------------------
## Loss Computation
batch_size: 1 # batch_size > 1 currently only supported if single image dims are used (vertical and horizontal cells)
# In general: larger batches currently implemented rather primitively
learning_rate: 0.00001 #1e-5
lambda_po2pl: 1.0 # 10.0
## Network training options
use_dropout: False
## Data Augmentation
random_point_cloud_rotations: False # Data augmentation by rotating point cloud during training
random_rotations_only_yaw: False # If set to true, and random_point_cloud_rotations set to true --> rotations only about yaw axis
magnitude_random_rot: 4.0 # in degrees
## Loss Functions
normal_loss: "squared" # "squared" or "linear"
rotation_losses_only_plane_to_plane: False
point_to_point_loss: False
point_to_plane_loss: True
plane_to_plane_loss: True
po2po_alone: False

# Network Parameters ---------------------------------
## Data Format
normalization_scaling: False # If set to true --> lambda_po2pl should be increased
## Model parameters
###############num_input_channels: 8 # No impact yet
activation_fct: "tanh" # "tanh" or "relu"
resnet_outputs: 1000 # Output of the resnet, then fed into the rot/trans fully connected networks
###############conv_size: [3, 5] # No impact yet
pre_feature_extraction: False # Additional feature extraction layers before concatenation of input
layers: [ 2, 2, 2, 2 ] # 4 down-sampling steps, num resnet blocks (2 layers each) per down-sampling (2 here)
# [ 1, 1, 1, 1 ] e.g. results in half as many layers
factor_fewer_resnet_channels: 1 # 4 leads to approximately 15 times fewer weights
use_single_mlp_at_output: False # Single big MLP at output

0 comments on commit 9845a5d

Please sign in to comment.