File size: 2,193 Bytes
45446db |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
#!/bin/bash
# Default values
matcher_type="exhaustive"
use_gpu="1"
verbose="0"
settings_yaml=""
sequence_path=""
exp_folder=""
exp_id=""
calibration_yaml=""
rgb_csv=""
camera_name="rgb_0"
# Function to split key-value pairs and assign them to variables
split_and_assign() {
local input=$1
local key=$(echo $input | cut -d':' -f1)
local value=$(echo $input | cut -d':' -f2-)
eval $key=$value
}
# Read Inputs
for ((i=1; i<=$#; i++)); do
split_and_assign "${!i}"
done
exp_id=$(printf "%05d" ${exp_id})
echo -e "\n================= Experiment Configuration ================="
echo " Sequence Path : $sequence_path"
echo " Experiment Folder : $exp_folder"
echo " Experiment ID : $exp_id"
echo " Verbose : $verbose"
echo " Matcher Type : $matcher_type"
echo " Use GPU : $use_gpu"
echo " Settings YAML : $settings_yaml"
echo " Calibration YAML : $calibration_yaml"
echo " RGB CSV : $rgb_csv"
echo " Camera Name : $camera_name"
echo "============================================================"
# Create folder to save colmap files
exp_folder_colmap="${exp_folder}/colmap_${exp_id}"
rm -rf "$exp_folder_colmap"
mkdir "$exp_folder_colmap"
# Run COLMAP scripts for matching and mapping
export QT_QPA_PLATFORM_PLUGIN_PATH="$CONDA_PREFIX/plugins/platforms"
colmap_args="$sequence_path $exp_folder $exp_id $settings_yaml $calibration_yaml $rgb_csv"
./Baselines/colmap/colmap_matcher.sh $colmap_args $matcher_type $use_gpu $camera_name
./Baselines/colmap/colmap_mapper.sh $colmap_args $camera_name
# Convert COLMAP outputs to a format suitable for VSLAM-LAB
python Baselines/colmap/colmap_to_vslamlab.py $sequence_path $exp_folder $exp_id $verbose $rgb_csv $camera_name
# Visualization with colmap gui
if [ "$verbose" -eq 1 ]; then
exp_folder_colmap="${exp_folder}/colmap_${exp_id}"
rgb_dir=$(awk -F, 'NR==2 { split($2,a,"/"); print a[1]; exit }' "$rgb_csv")
rgb_path="${sequence_path}/${rgb_dir}"
database="${exp_folder_colmap}/colmap_database.db"
colmap gui --import_path "${exp_folder_colmap}/0" --database_path ${database} --image_path ${rgb_path}
fi
# # Remove colmap data
# rm -rf ${exp_folder_colmap}
|