evo_ape 和 evo_res 自动处理
在做KITTI数据集的SLAM实验时遇到大量数据需要处理,因此写了脚本自动处理。
1. evo_ape 批量处理
同一个文件夹中创建evo_zip.sh ,该文件夹有orb00.txt,orb01.txt,…;dyna00.txt,dyna01.txt,… ;… 等文件
touch evo_zip.sh
gedit evo_zip.sh
# 写入下面脚本
for name in {"orb","dyna","our"}
do
index=0
for index in {0..9}
do
gtstr="gt0"${index}".txt"
orbstr=${name}"0"${index}".txt"
orbzipstr="zip/"${name}"0"${index}".zip"
evo_ape kitti ${gtstr} ${orbstr} -va --plot_mode=xz --save_results ${orbzipstr}
done
index=10
gtstr="gt"${index}".txt"
orbstr=${name}${index}".txt"
orbzipstr="zip/"${name}${index}".zip"
evo_ape kitti ${gtstr} ${orbstr} -va --plot_mode=xz --save_results ${orbzipstr}
done
执行
sudo chmod +x evo_zip.sh
./evo_zip.sh
2. evo_res 批量处理
同一个文件夹中创建evo_rej.sh,该文件夹有上一步生成的orb00.zip,orb01.zip,…;dyna00.zip,dyna01.zip,… ;…
touch evo_res.sh
gedit evo_res.sh
# 写入下面脚本
mkdir evo_res
index=0
for index in {0..10}
do
# 小于等于9
if [ $index -le 9 ];then
cd evo_res
mkdir ${index}
cd ..
savestr="evo_res/${index}/0"${index}".svg"
orbstr="orb0"${index}".zip"
dynastr="dyna0"${index}".zip"
ourstr="our0"${index}".zip"
evo_res ${orbstr} ${dynastr} ${ourstr} --use_rel_time --ignore_title --save_plot ${savestr}
# 等于10
elif [ $index -eq 10 ];then
cd evo_res
mkdir ${index}
cd ..
savestr="evo_res/${index}/"${index}".svg"
orbstr="orb"${index}".zip"
dynastr="dyna"${index}".zip"
ourstr="our"${index}".zip"
evo_res ${orbstr} ${dynastr} ${ourstr} --use_rel_time --ignore_title --save_plot ${savestr}
fi
done
执行
sudo chmod +x evo_res.sh
./evo_res.sh