drprojects / DeepViewAgg

[CVPR'22 Best Paper Finalist] Official PyTorch implementation of the method presented in "Learning Multi-View Aggregation In the Wild for Large-Scale 3D Semantic Segmentation"
Other
222 stars 24 forks source link

Dynamic-Size Image-Batching #18

Closed JonasSchult closed 1 year ago

JonasSchult commented 1 year ago

Hi Damien!

Thanks for releasing the code of your great paper! :)

Your Dynamic-Size Image-Batching of Section 3.3 sounds very interesting to me!

However, I could not find the code for it. Could you point me to the right file?

In particular, I'm very interested in the part where you iteratively select images with the probability proportional to the number of pixels vs. number of newly seen points in the cloud, up until a certain budget.

Do you still use the cropping technique for ScanNet even though you operate on full rooms and do not do any sampling of spheres as in S3DIS? In that case, do you still use Dynamic-Size Image-Batching for ScanNet?

Best, Jonas

drprojects commented 1 year ago

Hi @JonasSchult,

Thanks for your message ! I remember meeting you at CVPR'22 we talked about your to-be-published ECCV paper Mask3D (congrats by the way) :wink:

So, about Dynamic-Size Image-Batching, you will find it as a composition of several dataset transforms. If you look at conf/data/segmentation/multimodal/s3disfused-sparse.yaml for instance:

As you seem to have well-understood, for datasets such as ScanNet, CropImageGroups does not make sense because we take the whole room at once and the camera is located inside the room. However, if you have a look at conf/data/segmentation/multimodal/scannet-sparse.yaml, you will see we still use PickImagesFromMemoryCredit to mitigate GPU memory use. By default, PickImagesFromMemoryCredit will assign a "pixel cost" to each image, based on its size. But you can also specify k_coverage to balance-out the image cost based on how much additional coverage (ie how many unseen points) each image contains.

Hope that helps !

drprojects commented 1 year ago

Hi, assuming the last reply addressed the question, I am closing the issue.

JonasSchult commented 1 year ago

Hi Damien,

Sorry for the late reply. I caught the flu last week.

Thanks a lot for your super quick answer and all your code pointers! :)

Best. Jonas