File size: 2,193 Bytes
a5f2fdf
 
744b072
a5f2fdf
 
 
 
744b072
 
 
 
d7e30ae
e8ace62
a5f2fdf
744b072
a5f2fdf
 
 
 
 
 
 
744b072
a5f2fdf
 
 
 
 
 
744b072
 
 
 
 
 
 
 
 
d7e30ae
e8ace62
744b072
a5f2fdf
744b072
a5f2fdf
 
 
 
 
744b072
d7e30ae
e8ace62
 
a5f2fdf
744b072
e8ace62
a5f2fdf
744b072
a5f2fdf
 
d7e30ae
 
a5f2fdf
 
 
 
744b072
 
a5f2fdf
 
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}