mmmmimic / diffConvNet

PyTorch Implementation of "diffConv: Analyzing Irregular Point Clouds with an Irregular View" (ECCV'22)
MIT License
26 stars 3 forks source link

The radius estimation of dilated_ball_query in your code is not consistent with the paper. #4

Closed BuLingBin closed 1 year ago

BuLingBin commented 1 year ago

radius = base_radius + (max_radius - base_radius)*kd_score

image

What max_radius means?

mmmmimic commented 1 year ago

Hi! max_radius here is 2(r^2), base_radius is r^2, thus radius = r^2 + (2r^2 - r^2)d = r^2*(1+d).

BuLingBin commented 1 year ago

Hi! max_radius here is 2(r^2), base_radius is r^2, thus radius = r^2 + (2*r^2 - r^2)d = r^2(1+d).

So, the root operation seems lost? Moreover, I find that the balanced renormalization is important in Table 5. Actually, after softmaxing, the range of A has been [0, 1], why further renormalize?

mmmmimic commented 1 year ago

Sorry for the confusion. The "radius" here means "r_i^2" in the equation. This is because when we are computing distance, we are actually using the square of the point distance (see get_dist()). I will correct the paper in an updated version when I am available. The renormalization is to balance the contribution of feature channels and neighbor points respectively (page 9). PCT also has a second normalization (Eq. 9).

BuLingBin commented 1 year ago

Sorry for taking your time, I just wanted to confirm if the article uses Laplacian smoothing (X-AX) instead of KNN algorithm to get more flexible neighbourhood points. Do you think that (X-AX) contains the local information of point cloud? Since I am reading GDANet, you all have a similar equation.

mmmmimic commented 1 year ago

Thank you for your interest! I think whether (X-AX) contains the local information depends on how the adjacency matrix is constructed. We are replacing KNN with the adjacency matrix A generated from the proposed density-dilated ball query and masked attention. Then, to aggregate the local information of the point cloud, we applied Laplacian smoothing to gather the neighbor features for each point, i.e., computing the difference between point and neighbor features, and taking a summation. GDANet also applies Laplacian smoothing for the local feature aggregation, but in the frequency domain as I remember - this is from the graph convolutional neural networks and requires the adjacency matrix to be positive semi-definite (can be simply achieved by constant ball query). The adjacency matrix in our paper is not symmetric, thus the Laplacian smoothing in our method is not meaningful in the frequency domain. We applied the Laplacian smoothing here to extend the DGCNN to adaptive neighborhoods. Laplacian smoothing can also be used for global point feature learning if there is no ball query/KNN (see paper PCT).

I am no longer working on point cloud processing. Please correct me if I am wrong. Thank you for the great discussion!

BuLingBin commented 1 year ago

Thank you for your interest! I think whether (X-AX) contains the local information depends on how the adjacency matrix is constructed. We are replacing KNN with the adjacency matrix A generated from the proposed density-dilated ball query and masked attention. Then, to aggregate the local information of the point cloud, we applied Laplacian smoothing to gather the neighbor features for each point, i.e., computing the difference between point and neighbor features, and taking a summation. GDANet also applies Laplacian smoothing for the local feature aggregation, but in the frequency domain as I remember - this is from the graph convolutional neural networks and requires the adjacency matrix to be positive semi-definite (can be simply achieved by constant ball query). The adjacency matrix in our paper is not symmetric, thus the Laplacian smoothing in our method is not meaningful in the frequency domain. We applied the Laplacian smoothing here to extend the DGCNN to adaptive neighborhoods. Laplacian smoothing can also be used for global point feature learning if there is no ball query/KNN (see paper PCT).

I am no longer working on point cloud processing. Please correct me if I am wrong. Thank you for the great discussion!

Thank you for your kind and patient reply. Have a nice weekend!