【点云识别】Go Wider: An Efficient Neural Network for Point Cloud Analysis via Group Convolutions

Go Wider: An Efficient Neural Network for Point Cloud Analysis via Group Convolutions

本文介绍一篇想要更高效的处理点云识别的文章,思路比较新颖
论文
代码

1. 问题

自PointNet问世以后,基本所有的点云处理模型都要使用大量的MLP。
本文认为大量的的MLP操作是redundant, 提出一种sparse convolution的操作

2. 思想

提出了一种基于 group convolution 的卷积方法,并且为了完成group之间的特征传递,又提出了shuffle操作。
在这里插入图片描述
Group convolution
在这里插入图片描述
先给出group convolution 的示意图。
在这里插入图片描述
可以得到结论,group convolution 大幅减少了计算量和参数的个数。

Channel shuffle

为了实现各个group之间的特征传递,本文提出了channel shuffle。
下面贴下代码来理解一下

def channle_shuffle(edges, neighbors, group=2):
    """Shuffle the channel
    Args:
        inputs: 4D Tensor
        group: int, number of groups
    Returns:
        Shuffled 4D Tensor
    """
    inputs = tf.concat([neighbors, edges], axis=-1)

    in_shape = inputs.get_shape().as_list()
    h, w, in_channel = in_shape[1:]
    assert in_channel % group == 0
    l = tf.reshape(inputs, [-1, h, w, group, in_channel // group])
    l = tf.transpose(l, [0, 1, 2, 4, 3])
    l = tf.reshape(l, [-1, h, w, in_channel])

    return l

3. 网络架构

在这里插入图片描述
主体还是延续了PointNet++的结构,将DGCNN的EdgeConv也加了进去,作为对PointNet++缺点的改进。

4 实验结果

在这里插入图片描述
可以看出分类精度还是不错的,而且参数量减少很多。

再来看分割的结果
在这里插入图片描述
感觉分割的结果很差,个人推测原因是channel shuffle而导致的。在分割时,局部的特征是很重要的,shuffle 之后,造成了局部信息的混乱,破坏了encoding 信息。这里应该可以相应的改进一番。

总结

文章思路比较新。
目前看来这篇文章好像没有中顶会,不知道作者有没有继续完善一下。可能赶时间,论文的写作是比较粗造的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值