Ejemplo n.º 1
0
    def __init__(self):
        super(PointNetFeature, self).__init__()

        k = self.KERNEL_SIZES
        s = self.STRIDES
        c = self.CONV_CHANNELS

        self.stn = STN3d(D=3)
        self.block1 = nn.Sequential(
            ME.MinkowskiConvolution(6,
                                    c[0],
                                    kernel_size=k[0],
                                    stride=s[0],
                                    has_bias=False,
                                    dimension=3),
            ME.MinkowskiInstanceNorm(c[0]), ME.MinkowskiReLU())
        self.block2 = nn.Sequential(
            ME.MinkowskiConvolution(c[0],
                                    c[1],
                                    kernel_size=k[1],
                                    stride=s[1],
                                    has_bias=False,
                                    dimension=3),
            ME.MinkowskiInstanceNorm(c[1]), ME.MinkowskiReLU())
        self.block3 = nn.Sequential(
            ME.MinkowskiConvolution(c[1],
                                    c[2],
                                    kernel_size=k[2],
                                    stride=s[2],
                                    has_bias=False,
                                    dimension=3),
            ME.MinkowskiInstanceNorm(c[2]), ME.MinkowskiReLU())

        self.avgpool = ME.MinkowskiGlobalPooling()
        self.concat = ME.MinkowskiBroadcastConcatenation()
Ejemplo n.º 2
0
    def __init__(self):
        super(PointNetFeature, self).__init__()

        k = self.KERNEL_SIZES
        s = self.STRIDES
        c = self.CONV_CHANNELS

        self.stn = STN3d(D=3)
        self.conv1 = ME.MinkowskiConvolution(6,
                                             c[0],
                                             kernel_size=k[0],
                                             stride=s[0],
                                             has_bias=False,
                                             dimension=3)
        self.conv2 = ME.MinkowskiConvolution(c[0],
                                             c[1],
                                             kernel_size=k[1],
                                             stride=s[1],
                                             has_bias=False,
                                             dimension=3)
        self.conv3 = ME.MinkowskiConvolution(c[1],
                                             c[2],
                                             kernel_size=k[2],
                                             stride=s[2],
                                             has_bias=False,
                                             dimension=3)
        self.bn1 = ME.MinkowskiInstanceNorm(c[0], dimension=3)
        self.bn2 = ME.MinkowskiInstanceNorm(c[1], dimension=3)
        self.bn3 = ME.MinkowskiInstanceNorm(c[2], dimension=3)

        self.relu = ME.MinkowskiReLU(inplace=True)
        self.avgpool = ME.MinkowskiGlobalPooling()
        self.concat = ME.MinkowskiBroadcastConcatenation()