Skip to content
Snippets Groups Projects
Commit 746ca158 authored by Iván del Pino's avatar Iván del Pino
Browse files

Add training details using matlab in the readme file

parent 07d3f446
No related branches found
No related tags found
No related merge requests found
......@@ -25,12 +25,25 @@ Features:
TERRAIN and VEGETATION Classification: This network classifies TERRAIN and VEGETATION as non-traversable classes.
The neural networks were trained in Matlab, and their weights were exported in .csv files.
Usage:
Usage Instructions:
Input Point Clouds:
The ROS node accepts two types of input point clouds:
XYZI Point Cloud (Topic: “lidar_points”): Use this for interfacing with LiDAR sensors.
XYZIRGBL Point Cloud: Use this for training. To generate this input, follow the instructions in the semantickitti2bag repository.
1. Input Point Clouds: The ROS node accepts two types of input point clouds:
XYZI Point Cloud (Topic: “lidar_points”): This is used for interfacing with LiDAR sensors.
XYZIRGBL Point Cloud (Topic: “ground_truth_lidar_points”): This is used for training. To generate this input, follow the instructions in the semantickitti2bag repository.
2. Algorithm Settings: The settings of the algorithm are in the params/iri_ground_segmentation.yaml file. Here, you can adjust all the parameters described in the paper. Additionally, you can select whether to use the shallow neural network, which network to load, and whether to generate a dataset for training a new network (and assign it a filename).
3. Neural Network Training: The shallow neural network training is carried out in Matlab. All the required scripts can be found in the gata_neural_net_training folder. The workflow for neural net training is as follows:
Step 1: You need a rosbag with labels (XYZIRGBL) mapped to the “ground_truth_lidar_points” topic.
Step 2: Specify the filename and path for the csv dataset that will be generated and set the param “extract_data_to_external_training_of_the_network” in the yaml file to true.
Step 3: Launch the iri_ground_segmentation.launch file and reproduce the training rosbag(s).
Step 4: Once finished, stop the iri_ground_segmentation node. The resulting dataset in csv format will be dumped to file.
Step 5: Open Matlab and navigate to the gata_neural_network. Modify the param_loader.m values to match your needs (pointing to your ros-generated dataset, selecting which classes are considered to be traversable, network layers dimensions, etc.).
Step 6: After adjusting the param_loader script, run the GATANeuralNetTraining.m script.
Step 7: Matlab will start the neural net training, opening some GUI to monitor the progress. Once you are satisfied with the results (or the max epoch number is reached), stop the training. The network will be dumped to a .csv file that is ready to be used for inference in the iri_ground_segmentation ros node.
Step 8: Try the new network by modifying the “neural_net_filename_with_global_path” value in the iri_ground_segmentation.yaml file, launch the node, and feed it with a rosbag (either annotated or not) or a LiDAR sensor.
We hope you find this work useful! For any questions or comments, please contact us at idelpino@iri.upc.edu. If you use this work, please remember to cite the paper.
......@@ -37,7 +37,7 @@ iri_ground_segmentation: {
# Neural Network related parameters
use_neural_network: true,
extract_data_to_external_training_of_the_network: true,
extract_data_to_external_training_of_the_network: false,
dataset_filename_with_global_path: '/home/idelpino/Documentos/dataset.csv', # This is the filename with path where the data for neural net training is dumped
neural_net_filename_with_global_path: '/home/idelpino/iri-lab/ground_segmentation_ws/src/iri_ground_segmentation/shallow_neural_nets/veg_terrain_and_obs_13_features_39_neurons.csv',
neural_net_number_of_features: 13,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment