《论文阅读》Point Cloud Completion by Skip-attention Network with Hierarchical Folding
留个笔记自用
Point Cloud Completion by Skip-attention Network with Hierarchical Folding
做什么
点云的概念:点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。
点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等,不一一列举。
一般的3D点云都是使用深度传感器扫描得到的,可以简单理解为相比2维点,点云是3D的采样
Point Cloud Completion点云补全
简单来说就是通过输入不完整的3D点云还原出完整的对象
做了什么
之前的补全论文的往往是使用的从不完全输入中提取的全局形状表示来预测完整的点云。然而,全局表示经常遭受不完整点云的局部区域上的结构细节的信息损失。所以这里的方法是提出了一种skip attention机制,在推断缺失部分的过程中有效地利用不完整点云的局部结构细节,选择性地利用这些不确定的区域来进行重建,也就是利用局部信息对全局进行attention改变
怎么做
整个结构由两个部分组成,一个部分是encoder编码器部分,一个部分是Structure-Preserving Decoder形状保持的decoder部分,两个部分间有skip-attention进行连接
首先是encoder模块,这里的作用就是提取点云特征
输入是一个不完整的点云∈RN×3(文章里假设的N是2048),具体结构由PointNet++作为baseline,这里展现了三个level的feature extractor,第一层sample出N1×M1的特征,第二层sample出N2×M2的特征(文章里假设的是512和256,M1和M2都是特征维度数),最后一个level将特征group成一个全局表示。
总的来说,encoder这里得到了两个局部特征和一个全局特征
然后是第二个模块,解码器模块
结构保持解码器分层折叠三个分辨率级别的点云,这等于编码器中分辨率级别的数量。解码器的每一个分辨率级别都由一个跳过关注点和一个折叠块组成,前者用于传达来自同一级别编码器的局部区域特征,后者用于增加点特征的数量。
然后是解码器中的主要部分,绿绿的folding block
这个block分为两个部分,up部分和down部分,也需要分开理解
首先是up部分
这里的输入是Ni+1D也就是decoder中的上一层结果,首先将其按照比例
进行复制,也就是复制出下一层的数量特征,然后取出一个复本与2D的grid concat起来,具体来说,对第i层的NiD大小的点特征,从一个46×46的2D平面中均匀采样出一个2D grid(就像图中展示的那样均匀)然后concat。
然后将concat的结果经过一个MLP得到所谓的3D潜在码字,再次与第i级解码器的点特征concat
为了整合这些点之间的语义和空间关系,采用了一个self-attention模块
这就是很常见的结构样子了,对第j个点特征pj,都计算它和其他所有点之间的attention权重aj,k
M的意思就是上图中的MLP,上标T是矩阵转置,这在attention中很常见,Θh和Θl表示两个MLP的不同模型参数
然后就可以对点特征进行attention更新
然后是down部分
简单来说将up特征和原特征进行高质量比较后再MLP成当前层特征维度
整体来说这个fold block的结构应该是借鉴的上一篇论文 Foldingnet: Point cloud auto-encoder via deep grid deformation》
所以也只需要大致理解它是一种baseline就行了,跟PointNet++同理
然后就是文章核心部分,skip-attention部分
上一次见到Skip-connection还是在Unet结构里
显而易见,这里skip-attention的作用是作为管道(pipeline),将编码器提取的局部区域特征与解码器生成的点特征进行通信。文中说明这个结构有两个意义
首先,当生成位于不完整输入的现有区域的点时,跳过注意应该将来自编码器的相同区域的特征融合到解码器中,并引导解码器在该区域中重建更一致的结构细节。简单来说这里的意思就是,直接引入decoder的局部区域特征能更好的指引decoder(相比于单纯decoder的全局重建,encoder的特征更加局部和细节,这也是skip-connection在Unet中的主要作用)
第二,当生成位于输入缺失区域的点时,跳过注意应该在原始输入点云中搜索可参考的相似区域,并引导解码器将这些相似区域的形状作为推断缺失区域形状的参考。
这里采用的方法是解码器中的点特征和编码器中的局部区域特征之间的语义相关性是通过注意力分数来测量的,分数越高,表示模式相似性越显著(飞机的机翼)。然后,通过加权求和将局部区域特征融合为点特征,最后用于预测完整点云中的相关区域(也是飞机的机翼)
然后采用了两种方法
这里的pj就是decoder中的点特征,rk是encoder中的所有局部区域特征,aj,k,这是直接采用上一模块中描述的可学习
的注意机制
这是计算计算余弦相似度的注意力得分
简单来说这里的skip-attention计算的是完整点云的局部区域和不完整点云的局部区域的模式相似度
总结
1.引入了一个skip-attention操作,还是局部和全局的结合,老套路了,文章有些部分写的有些许难懂,至于具体结构,那两个baseline(特征提取的pointnet++和重建的foldnet)值得mark