pointnet_sa_module_msg代码里可以看到,是把不同半径的特征concat在一起,作为一层SA的特征输出(比如 l1 points 、l2 points) (3)MRG 多分辨率 这个没在代码里面找到,但可以看论文描述 左边Branch 1: SA(512, 0.2, [64, 64, 128]) → SA(64, 0.4, [128, 128, 256]) 右边Branch 2: SA(512, 0.4,...
PointNet2SAModuleMSG(npoint=512, radii=[0.1, 0.2, 0.4], nsamples=[16, 32, 64], mlps=[[64, 64, 128], [128, 128, 256], [256, 256, 512]], use_xyz=True), PointNet2SAModuleMSG(npoint=128, radii=[0.2, 0.4, 0.8], nsamples=[16, 32, 64], mlps=[[128, 128, 256], [256,...
而且根据论文的分割实验可以看到,MSG+DP是整体性能最好的. 上代码: 分类层具体实现: 在代码中的关于网络结构的Set Abstraction(SAmodules)部分设置如下: self.SA_modules.append( PointnetSAModuleMSG( npoint=512, #点的数量 512 radii=[0.1, 0.2, 0.4], #采样的不同尺度的半径 nsamples=[16, 32, 128],...
pointnet_cls_basic.py是基础pointnet的框架 pointnet2_cls_ssg.py和pointnet2_cls_msg.py分别是single-scale-group和multi-scale-group的代码。 核心公共模块 先来看cls和seg公用的核心模块pointnet_sa_module,该函数定义位于./utils/pointnet_util.py pointnet_sa_module (PointNet Set Abstraction Layer) defpoint...
class PointNet2MSGModule(nn.Module): def init(self, mlp1, mlp2, mlp3): super(PointNet2MSGModule, self).init() self.conv_blocks = nn.ModuleList() self.conv_blocks.append(self.get_conv_block(mlp1)) self.conv_blocks.append(self.get_conv_block(mlp2)) self.conv_blocks.append(self.get...
point=F.relu(bn(conv(point)))returnpointclassPointNet_add(nn.Module):def__init__(self): super().__init__() self.sa1= PointNetSetAbstractionMsg(512, [0.1, 0.2, 0.4], [32, 64, 128], 3, [[32, 32, 64], [64, 64, 128], [64, 96, 128]]) ...
defpointnet_sa_module(xyz, points, npoint, radius, nsample, mlp, mlp2, group_all, is_training, bn_decay, scope, bn=True, pooling='max', knn=False, use_xyz=True, use_nchw=False):''' PointNet Set Abstraction (SA) Module Input: ...
FPS最远点采样:基于cuda的并行计算实现.tf_ops/sampling/tf_sampling_g.cu 用SSG分类网络进行采样与分组后进行pointnet, pointnet体现在conv2d、池化、全连接。其中全连接在模型文件pointnet2_cls_ssg等中操作,ssg网络和conv2d、池化都在pointnet_util文件的pointnet_sa_module方法里。 可视化?
self.SA_modules.append( PointnetSAModuleMSG( npoint=128, radii=[0.2, 0.4, 0.8], nsamples=[32, 64, 128], mlps=[ [input_channels, 64, 64, 128], [input_channels, 128, 128, 256], [input_channels, 128, 128, 256], ], use_xyz=use_xyz, use_se=False, ) ) self.SA_modules....
All the layers defined for this project can be found in the Layers Module, like the MSG abstraction layer or the standard one, as well as the redount layer (GloabalSAModule). The checkpoint will be automatically stored in the folder relatives to the models, so for example the weights of ...