基于深度学习的Lidar 3D点云表面缺陷检测方法

1. 点云缺陷检测

三维点云异常检测旨在从训练集中检测异常数据点,常用的点云异常检测方法通常采用多个特征记忆库来完全保留局部和全局表示,这种要考虑高昂的计算复杂度和特征间的不匹配问题。

2.实现方法

当前的异常检测方法大多是无监督的,主要针对二维图像,其模型通常在具有成熟架构的图像上进行训练。与二维图像相比,三维点云具有更丰富的结构信息,但也存在无序、高度稀疏和不规则分布的问题。

Real3D-AD

在这里插入图片描述
Real3D-AD一个大规模、高分辨率的三维异常检测数据集Real3D-AD被提出。该数据集中的对象具有0.001mm-0.0015mm的分辨率、360度覆盖范围和完美的原型。Real3D-AD将图像异常检测中的PatchCore应用于点云异常检测,并开发了一种通用的基于配准的点云异常检测器Reg3D-AD。Reg3D-AD采用双特征表示方法来保留训练原型的局部和全局特征,虽然检测精度显著,但推理速度较慢。当前的点云异常检测器主要分为两类:
(1)基于重建的方法,通过自动编码器重建输入点云数据,并通过比较原始数据和重建数据之间的偏差来识别异常。然而,这些方法对分辨率敏感,导致推理速度较慢且精度较低。
(2)基于记忆库的方法,其中记忆库用于存储代表性特征,以隐式构建正态分布并寻找分布外的缺陷。与前者相比,直接使用预训练的特征提取器构建记忆库具有训练速度快且不受点云分辨率影响的优点。
(3)现有的点云异常检测器通常采用多个特征记忆库来完全保留局部和全局表示,这会带来高昂的计算复杂度和特征间的不匹配问题。
在这里插入图片描述

3. PointCore

为优化当前点云异常检测算法存在的问题,如计算复杂、特征不匹配等,可参考PointCore框架对算法进行改进和升级。

3.1全局和局部配准

使用FPFH特征描述符和随机抽样一致性(RANSAC)算法来实现点云的全局配准。为了增强点云配准的稳定性,引入了点到平面ICP算法来对全局配准的输出进行局部优化。假设需要配准的两个点云分别为 X s X_s Xs(源点云)和 X t X_t Xt(目标点云),配准过程如下:

  1. 应用从全局配准获得的旋转矩阵和平移向量来变换 X s X_s Xs
  2. X t X_t Xt中搜索与 X s X_s Xs中的 p i p_i pi最接近的 q i q_i qi,其中 q i q_i qi的法向量表示为 n i n_i ni
  3. 假设最优旋转欧拉角 α \alpha α β \beta β γ \gamma γ接近0,则 cos ⁡ ( θ ) → 1 \cos(\theta)\to1 cos(θ)1 sin ⁡ ( θ ) → 0 \sin(\theta)\to0 sin(θ)0 θ → 0 \theta\to0 θ0。旋转矩阵 R R R可以近似表示为: R ≈ [ 1 − γ β γ 1 − α − β α 1 ] R\approx\begin{bmatrix}1&-\gamma&\beta\\\gamma&1&-\alpha\\-\beta&\alpha&1\end{bmatrix} R 1γβγ1αβα1
  4. 假设最优平移向量为 t = [ t x , t y , t z ] t = [t_x, t_y, t_z] t=[tx,ty,tz]。损失函数通过Moore-Penrose逆表示为最小二乘问题: E ( R , t ) = ∑ i = 1 n ( ( R p i + t − q i ) T n i ) 2 E(R,t)=\sum_{i = 1}^{n}((Rp_i + t - q_i)^Tn_i)^2 E(R,t)=i=1n((Rpi+tqi)Tni)2
  5. 应用计算得到的旋转矩阵和平移向量来变换 X s X_s Xs,并重复,直到损失值低于预定义的阈值。注意,用于配准的目标点云(X_t)是固定的。
    在这里插入图片描述

3.2记忆库构建

  • 坐标采样:采用贪婪下采样算法对输入点云进行采样。给定输入点云(X)和点集 C a C_a Ca α \alpha α C a C_a Ca中的点数。我们的目标是从 C a C_a Ca中获得 S m a x S_{max} Smax个均匀分布的点。具体步骤如下:
    1. C a C_a Ca中随机选择 S i n i t S_{init} S<

猜你喜欢

转载自blog.csdn.net/matt45m/article/details/145269132