【点云识别】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 信息。这里应该可以相应的改进一番。

总结

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

发布了131 篇原创文章 · 获赞 6 · 访问量 6919

猜你喜欢

转载自blog.csdn.net/Orientliu96/article/details/105067497