Issues about dataset
Hello Sir, thanks for your excellent work. When I try to implement this work with S3DIS dataset. I met some issues:
- When the dataset was given, I printed the shape of elements in the first data:
print(len(training_dataset[0]))
for i in range(len(training_dataset[0]):
print(training_dataset[0][i].shape)
32 (8806, 3) (2995, 3) (1026, 3) (191, 3) (59, 3) (7763, 38) (3393, 37) (363, 31) (202, 202) (63, 63) (1961, 32) (241, 33) (239, 41) (43, 126) (0, 1) (12302, 51) (3595, 40) (1226, 61) (322, 73) (0, 1) (1,) (1,) (1,) (1,) (1,) (5680, 5) (6462,) (1, 3) (1, 3, 3) (1,) (1,) (3799,)
It seems that the number of points is not aligned with the feature, could you tell me why this happen?
- If I didn't use batch sampler here, the point shape feature shape of the training dataloader is shown below:
for i , data in enumerate(training_loader):
print(data.points[0].shape)
print(data.features.shape)
torch.Size([7892, 3]) torch.Size([7892, 5]) torch.Size([10299, 3]) torch.Size([10299, 5]) torch.Size([11009, 3]) torch.Size([11009, 5]) torch.Size([7321, 3]) torch.Size([7321, 5]) torch.Size([9102, 3]) torch.Size([9102, 5]) Why the size is different from the training set, and why points and features can align in training loader with this dataset?
-
If I set the use_potential = True, it works well. However, if use_potential = False, it is easy to meet this error: It seems the dataset only contains the empty sphere. Why this error occurs easier when I didn't use potential?
-
Could you give some advice if I try to train S3DIS at room level instead of area level?
print(len(training_dataset[0]))
what is training_dataset in this case? If it is the one defined in the training script, you should not use training_dataset[i] to access data this is not the way to do it and it will not work. Instead you should always be using the data loader like this:
for i , data in enumerate(training_loader):
this is the only way that should work.
Could you give some advice if I try to train S3DIS at room level instead of area level?
If you want to do this, you should save one .ply file per room and modify the S3DIS dataset file:
https://github.com/HuguesTHOMAS/KPConv-PyTorch/blob/3a774ff8d54a4d080fe65093b2299ede35d9735d/datasets/S3DIS.py#L107-L116
change the cloud names etc like you want to use your own room names
Thanks for your explanation.