IMRNet阅读记录
来源:CVPR2024
基于重建的异常检测方法
主要贡献
提出了一个高质量的合成3D异常数据集,Anomaly-ShapeNet
提出了一个自监督的点云缺陷检测方法:迭代掩模重建网络IMRNet
主要包括三个部分:
(1)几何感知样本模块(GPS)
基于点云的几何结构提取关键点,能尽可能全面地对异常点进行采样,然后使用KNN将采样的关键点转换成patch,并以迭代的方式发送到PMR
(2)点补丁掩模重建网络(PMR)
执行重建过程
(3)密集特征连接和比较模块(DFC)
比较重建的样本和输入的原始点云的特征和点,以获取异常分数
对(2)和(3)的有效性给出证明
实现细节
这边比较值得借鉴的是几何感知的点云下采样,之前从来没遇到过。
做毕设的时候我也有过类似的想法(重点采样异常区域 )
几何感知的下采样(GPS)
-
几何特征抓取
通过局部曲面拟合方法计算某点法向量
通过协方差矩阵计算某点曲率
然后可以计算两点之间的法向量和曲率的变化率
-
几何感知下采样
定义Memory Bank,存储每个点的法向量变化率和曲率变化率。
而某个点的总变化率定义为邻域内所有点两种变化率加和的均值
然后对Memeory Bank中的变化率进行排序,选择变化率在某范围内的点作为采样点。
点补丁掩模重建网络(PMR)
-
点面片生成
根据GPS形成N个被采样点,然后使用KNN选择N个点的最近邻形成Patch
-
随机进行掩码和嵌入
掩码的对象是patch而不是某个点。设置掩模比例m,随机对patch进行掩码然后使用pointNet对可见的patch和掩蔽的patch进行embedding
-
重建目标
重建的主干是PT+一个用于预测掩蔽点的全连接层。训练阶段的预测过程如下:
损失函数为:
计算了预测值和gt之间的L2倒角距离。
测试阶段的伪代码:
密集特征连接与比较
对比有两个方面:1)原始输入和重建点云;2)原始输入的特征和重建点云的特征
-
点patch对比
通过计算输入和输出点云的倒角距离作为异常分数。先将输入和输出点云进行一个KNN聚合得到patch,然后计算patch的倒角距离
-
特征融合和比对
分别提取PT解码器中第一层、第二层、第三层的特征,然后进行融合和比较得到特征级异常分数。
-
模板正则化
为了减轻迭代过多导致“正常点漂移”。使用训练时保存的特征模板来正则化重建的点云特征。
具体做法是:对于重建点云的特征F,计算F中每个向量到模板中相应向量的距离,并保存至M。
超过阈值的距离使用模板中的相应向量替换。
最后将两个异常分数进行插值,然后聚合成最终的异常分数。
缺点
该模型无法检测出没有被重建的异常区域