-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Enhance] Move ScanNet point alignment from data pre-processing to pipeline #439
Conversation
|
Codecov Report
@@ Coverage Diff @@
## master #439 +/- ##
==========================================
+ Coverage 50.66% 51.24% +0.57%
==========================================
Files 189 187 -2
Lines 14455 13857 -598
Branches 2366 2243 -123
==========================================
- Hits 7324 7101 -223
+ Misses 6638 6280 -358
+ Partials 493 476 -17
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
6e2400b
to
4cac315
Compare
After discussing with Wenwei @ZwwWayne, we decided to extract both aligned and unaligned_bbox during pre-processing of ScanNet dataset. For the aligned bbox, they are stored in info with the same key as before (e.g. As aligned bbox are stored with the same keys, we can keep most of the code unchanged (e.g. |
I have checked the correctness of processed data by testing a pre-trained VoteNet on it and got mAP_25, mAP_50 close to the originally reported values (<1%). I think the data is OK to use. The visualization is also correct. |
4ad1a51
to
957a838
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -197,9 +219,6 @@ def _convert_to_label(self, mask): | |||
mask = np.load(mask) | |||
else: | |||
mask = np.fromfile(mask, dtype=np.long) | |||
# first filter out unannotated points (labeled as 0) | |||
mask = mask[mask != 0] | |||
# then convert to [0, 20) labels |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove these lines to be consistent with data pre-processing steps.
…dify ScanNet config file
de3c878
to
14e6e08
Compare
I have trained a VoteNet on the new processed ScanNet data. The results are as follows:
I think this result is very close to original training behavior. |
In the original ScanNet pre-processing script for the detection task, the point cloud scene is aligned according to axis_align_matrix in the annotation (see here). However, ScanNet test set doesn't have such alignment matrix, so people don't do such alignment in the semantic segmentation task (because they need to submit the test set results to online benchmark, while det only test and reports on val set). In order for ScanNet seg and set to share one pre-processed data, we decided to move the alignment step to pipeline.