qq456cvb / Point-Transformers

Point Transformers
MIT License
651 stars 101 forks source link

The issue of “Transition up” in Partseg #46

Closed leafyseay closed 4 months ago

leafyseay commented 4 months ago

In the original paper on Point Transformer v1, the Transition Up module maps the features of the downsampled point set P1​ to its superset P2​, and then fuses the features of P2​ with those of P1​ (the paper describes this as summation, while your code implements it as concatenation). However, in the code implementation, you actually did not perform the fusion(from the fact that one parameter of 'self.fp' is 'None'). Could this be a reason why Partseg’s accuracy is lower than what is advertised in the paper (see #29)?"

    def forward(self, xyz1, points1, xyz2, points2):
        feats1 = self.fc1(points1)
        feats2 = self.fc2(points2)
        feats1 = self.fp(xyz2.transpose(1, 2), xyz1.transpose(1, 2), None, feats1.transpose(1, 2)).transpose(1, 2)
        return feats1 + feats2
        if points1 is not None:
            points1 = points1.permute(0, 2, 1)
            # new_points = torch.cat([points1, interpolated_points], dim=-1)
            new_points = points1 + interpolated_points   # This line is my addition
        else:
            new_points = interpolated_points