MetaSLAM / ALITA

ALITA: A Large-scale Incremental Dataset for Long-term Autonomy
BSD 3-Clause "New" or "Revised" License
93 stars 4 forks source link

Something wrong with poses #1

Closed IaroslavS closed 2 years ago

IaroslavS commented 2 years ago

Hi, I'm analyzing dataset GPR for lidar global place recognition and found that all poses within one subfolder (train_1, train_2 ... train_15) in TRAIN folder begin at zero pose, look at the picture below train here are trajectories, made of x translation against y translation. Different colors refer to different subfolders: train_1, train_2 ... as you can see all colored trajectories begin at approximately zero.

The same problem is with VAL folder, look at the trajectories of VAL/DATABASE subfolders VAL

My code:

base_path_dataset = '/media/user/ExternalDisk/Datasets/GPR_dataset/UGV/VAL/QUERY/'

x = []
y = []
z = []
for subfolder in sorted(os.listdir(base_path_dataset)):
    x_sub = []
    y_sub = []
    z_sub = []
    paths = list(Path(os.path.join(base_path_dataset, subfolder)).glob('**/'+"*.npy"))
    for pose_filename in sorted(paths):
        pose = np.load(str(pose_filename))
        x_sub.append(pose[0])
        y_sub.append(pose[1])
        z_sub.append(pose[2])
    x.append(x_sub)
    y.append(y_sub)
    z.append(z_sub)

import matplotlib.pylab as plt

plt.rcParams["figure.figsize"] = (18,12)
for i in range(len(y)):
    plt.plot(y[i],x[i])

I cannot understand how participants divided this map geographically, except that they had other data of UGV dataset. I downloaded dataset from https://www.dropbox.com/sh/q1w5dmghbkut553/AAAsS8F_QZ_QPVyzMpkzF66ea/UGV?dl=0&subfolder_nav_tracking=1 Could you comment about it ?

Prof-pengyin commented 2 years ago

@IaroslavS do we have this problem?

IaroslavS commented 2 years ago

@maxtomCMU, I think it's a problem because it's impossible to find close frames across tracks "train_1", "train_2", and across TRAIN and VAL. Maybe we are assumed to split each track ("train_1", "train_2" ...) into train and val. But the mechanism of training would be definitely different from Point-NetVLAD training pipeline, where train and val samples should be in different track.

IaroslavS commented 2 years ago

I'm closing this issue, because I've understood that training pipeline should consist of pair (query-database) only within each track (train_1, train_2 and so on) and this should work, because tracks do not cross geographically mostly and hence model shouldn't give answer from another track.