def make_dataset(dir, train=True):
paths = None
poses = None
# ??? ? ??? ?
for target in os.listdir(dir):
target_dir = os.path.join(dir, target)
# if not os.path.isdir(target_dir) or target == "Street" or target == "GreatCourt":
# if not os.path.isdir(target_dir):
if not target == "KingsCollege":
continue
# ?? ??? ?? ??? ?? ???? ??? ? ?
if train:
path = np.genfromtxt(os.path.join(target_dir, 'dataset_train.txt'),
dtype=np.str_, delimiter=' ', skip_header=3,
usecols=[0])
pose = np.genfromtxt(os.path.join(target_dir, 'dataset_train.txt'),
dtype=np.float32, delimiter=' ', skip_header=3,
usecols=[1, 2, 3, 4, 5, 6, 7])
else:
path = np.genfromtxt(os.path.join(target_dir, 'dataset_test.txt'),
dtype=np.str_, delimiter=' ', skip_header=3,
usecols=[0])
pose = np.genfromtxt(os.path.join(target_dir, 'dataset_test.txt'),
dtype=np.float32, delimiter=' ', skip_header=3,
usecols=[1, 2, 3, 4, 5, 6, 7])
# order ? path ? ????? ???
order = path.argsort()
# order ? sorting
path1 = path[order]
pose1 = pose[order]
# reverse order ?? sorting
path2 = path[order[-2::-1]]
pose2 = pose[order[-2::-1]]
# concat
path = np.hstack((path1, path2))
pose = np.vstack((pose1, pose2))
path = np.core.defchararray.add(target + '/', path)
if paths is None:
paths = path
poses = pose
else:
paths = np.hstack((paths, path))
poses = np.vstack((poses, pose))
return paths, poses
评论列表
文章目录