velodyne odometry的02数据集的000326.bin有问题,无法解压,因此只把其余文件解压出来,velodyne里面有一些莫名奇妙的隐藏文件夹,按 Ctrl+h 键显示出来,然后删掉(这也是我调试以下代码的时候才发现的),把labels文件夹、times.txt、02.txt中对应的label、时间戳、位姿都删掉。
semantickitti2baghttps://github.com/amslabtech/semantikitti2bag
下载semantickitti2bag代码以后进入该文件夹,按照图片中的方式对数据进行解压之后,执行以下命令就ok了
python __main__.py -p /home/xcy/hdl/SemanticKitti/odometry_velodyne -s 02
以下代码是由于刚开始以为是必须按照连续序号才能用semantickittitobag,所以对labels和velodyne两个文件夹里面000325之后的所有文件序号都减去1,并重命名,调了一些bug,以下是完全跑通的代码,只是不是这次问题的根本原因,用是可以用的。
import os
from shutil import copyfile
import shutil
def myrename(path,backup,i):
file_list=os.listdir(path)
for fi in file_list:
old_name=fi
print("name",old_name)
old_num=str(fi[:-4])
try:
old_num_int=int(old_num)
except:
print("fault_old:",old_num)
new_num=old_num_int-1
try:
new_num_str=str(new_num)
except:
print("fault_new:",new_num)
print("oldpath",path+old_name)
print("newpath",backup+old_name)
os.rename(path+old_name,path+new_num_str+'.bin')
shutil.move(path+new_num_str+'.bin',backup+new_num_str+'.bin')
i=i+1
print(i)
def myrename1(path):
file_list=os.listdir(path)
for fi in file_list:
old_name=fi
old_num=old_name[:-4]
try:
new_num=int(old_num)
new_str=str("%06d"%(new_num))
except:
print("fault:",old_num)
try:
os.rename(path+old_name,path+new_str+'.bin')
except:
print("fault:",old_name)
if __name__=="__main__":
i=0
path='velodyne1/'
backup='velobak/'
myrename(path,backup,i)
myrename1(backup)