《论文阅读》End-to-end 3D Point Cloud Instance Segmentation without Detection

留个笔记自用

End-to-end 3D Point Cloud Instance Segmentation without Detection

做什么

Instance segmentation实例分割
在这里插入图片描述
目标检测( Object detection)不仅需要提供图像中物体的类别,还需要提供物体的位置(bounding box)。语义分割( Semantic segmentation)需要预测出输入图像的每一个像素点属于哪一类的标签。实例分割( instance segmentation)在语义分割的基础上,还需要区分出同一类不同的个体。
在这里插入图片描述
这里就是从2D图像的分割转移到了点云上的分割,无非就是在位置信息上多了一维

做了什么

在这里插入图片描述
大部分的分割框架分为这几种,第一种是基于detection的,也就是基于目标检测的,先进行目标检测然后再进行分割。第二种是无检测的,通过预测3D点云的feature后直接进行对应点的分割。第三种就是本文的框架,最为直接的一种方法,无需检测和单独的分组步骤。核心思想是将实例分割作为一个候选分配问题,不是为不同的实例检测大量的对象,而是抽取一小部分候选实例作为实例代表

怎么做

在这里插入图片描述
首先还是定义输入输出,X={xj}为N个点的点云输入,每个点是一个三维的坐标值,输出Y={yi}为输出的实例结果,也就是分割的分类结果。
描述一下整体流程,首先经过一个backbone骨干网络,其实也就是feature extractor,得到语义特征,这里的维度是128个通道的特征,这些特征经过一个refine模块也就是精炼一下得到一个256个通道的特征。
在这里插入图片描述
然后是一个二分支,首先是上分支assignment,第一步是采样K个实例的候选,Lc={1,2,3…K},对每个点进行一个打分,也就是对每个点属于每个采样出来的实例的所属程度,得到一个矩阵WN×K,也就是N个点对K个sample类的score。然后是下分支,mask分支,分配给N个中的每一个,也就是让它mask掉一些不可能的候选
在这里插入图片描述
最后就是argmax对每个点进行实例分类
在这里插入图片描述
然后就是具体的一些部分解释
在这里插入图片描述
首先是特征提取的backbone网络,这里选取的是PointNet
在这里插入图片描述
这就是人人都爱的PointNet的基础结构了,具体好像也没什么可以探究的,然后就是第二个模块,refine模块
在这里插入图片描述
在这里插入图片描述
这里是将点特征馈送到四个分支,用四个MLP来进行不同的视野特征感知,第一个分支学习全局语义特征,第二个分支学习实例感知特征,第三个分支学习质心感知特征,第四个分支学习质心距离,将第一二三分支concat起来得到最后的refined features
然后就是本文就奇特的一个部分,sample部分
在这里插入图片描述
这里是Sample个K个实例,sample的方法是常见的最远点采样FPS,为了能获得更大的覆盖率,这里的距离使用的是前面的实例感知特征之间的距离,显然sample的实例数非常的关键,像下图,abc就是234的区别
在这里插入图片描述
这里为了出现第一种情况,选择将K的值选的很大,但这样就会出现第三种情况也就是实例冗余的情况,所以给出了一个抑制模块,也就是Suppression,而上面的sample部分则是Assignment
在这里插入图片描述
在这里插入图片描述
这就是抑制模块,产生一个对K个实例的mask,因为有些是冗余实例情况,简单来说就是对于任意的两个sample实例j和k,首先先直接计算两者实例感知特征之间的绝对差,然后输入一个MLP去得到一个相似度矩阵S∈RK×K,这个矩阵然后被二进制化,比如1表示j和k是同一个实例
之后是assignment模块
在这里插入图片描述
首先将两个特征经过一个MLP编码,然后计算候选实例特征和点特征之间的绝对差值,最后再经过一个MLP估计分配分数,最后结合上面的mask得到最后的分配结果
在这里插入图片描述
这里M就是MASK,α设置为较大的值来删除冗余实例候选,得到N×K的结果,最后就是argmax了,没什么特殊的地方
在这里插入图片描述
然后是各部分的LOSS,整个结构用到了好多个loss来进行限制,语义损失Lsem、实例质心损失Lc、质心距离损失Lcd、嵌入损失Le、实例分组损失Lg、候选相似性损失Lsim
首先是语义损失
在这里插入图片描述
在这里插入图片描述
就是计算语义标签和GT之间的cross-entropy
然后是实例质心损失
在这里插入图片描述
在这里插入图片描述
也就是预测的实例质心和GT质心之间的距离损失
然后是质心距离损失
在这里插入图片描述
在这里插入图片描述
也就是点到质心的距离的损失
然后是候选相似性损失
在这里插入图片描述
这里是用于对K个候选的抑制,所以采用二分cross-entropy对这个mask和GT来进行损失计算
然后是实例分组损失,这个LOSS计算的是预测的实例分组和GT之间的损失,但由于预测数量和顺序等会产生不同,所以这里设计了一个映射方式
在这里插入图片描述
在这里插入图片描述
简单来说,a的左边是预测的实例分组,右边是GT的实例分组。设计一个映射,假设K为4的情况下,GT的K确实3,所以设计映射1->1,2->3,3->2。这样就会产生C的情况。C原来是(3,2,2,1)经过这个映射关系后变成了(2,3,3,1)也就是K=4的情况,这样就可以跨过考虑顺序的这个步骤
在这里插入图片描述
映射的计算方式通过最小化匹配得到,bj,k是一个二进制判断j和k是否匹配的(0或1),cost得到一个j和k的匹配程度
在这里插入图片描述
ymc是对于点m的预测实例分配,ymi是对点m的GT实例分配,后面那个I就是判断两个点是否相等罢了。然后通过匈牙利算法进行分配。
最后是嵌入损失
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
pull是牵引损失,这个损失是为了最小化实例感知特征和其所有实例采样的特征的平均值之间的距离,这里的f就是实例感知特征,m就是平均值
而pull损失是推进损失,这个损失是为了最大化两个不同实例之间的平均特征,这里的两个m都是平均值
最后一个reg可以理解成是正则化,控制实例特征在一个合理的值范围内

总结

1.不知道为什么说这种sample方式很创新,感觉跟很多别的做法都没差,3D-MPA: Multi Proposal Aggregation for 3D Semantic Instance Segmentation都有sample成分在,又好像把整个问题转换成另一类问题,首先采样的分组方式可以改变,其次映射方面也可以进行改进,引出了一系列新问题后一系列的改进方法也会有很多种

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值