Closed Ritchizh closed 2 years ago
Hi @Ritchizh
These codes were directly from the official HAIS for processing scannetv2 here. From my understanding, crop() is trying to make sure the number of points does not exceed 'max_npoint' as mentioned by the author of HAIS from the issue you previously opened under HAIS.
getCroppedInstLabel() seems like doing a process to make sure the instance label is starting from 0 and is continues since from crop() it is possible some instances were getting removed and there is a gap in the instance label.
It is hard for me to say what problem you are facing with your data... From my experience when working on HAIS with STPLS3D, the issues were always related to the parameters in the config file or the data itself that contains some quality issue that was not in scannetv2.
Thank you @meidachen your comment really helped: I've understood what crop is doing. So as a quick fix, I am running training now with increased max_npoint parameter. Later I will crop and downsample my pointclouds more accurately than crop() does.
I've also noticed that you had changed voxel size to ~30 cm (2 cm in original HAIS), batch size to 12 (4 in original HAIS), point_aggr_radius, cluster_shift_meanActive - have you grid-searched these parameters, are they optimal for your data?
I didn't really grid-search these parameters but only compared them with a few other settings. The main thing I found that helped a lot was the data augmentation and adding the class weight to compute the semantic loss. So I can't say they are optimal, but here we only provide a baseline and hope to see better results in the future.
Got it, thank you! :)
Hi! I have changed the input data and am trying to run train.py. When it comes to trainMerge(), I get the following error:
Running _stpls3dinst.py line-by-line showed that for some input data files, the function
raises an error.
So, could you please clarify: 1) Why do we crop data in _stpls3dinst.py, weren't it already cropped by _prepare_data_inst_instancestpls3d.py ? What are valid_idx returned by crop()? 2) What does getCroppedInstLabel() function do?
UPD.: For some files, crop() function outputs valid_idxs - all False. What can be the problem?