2、3D视觉基础:深度相机原理(结构光、ToF、激光三角)、点云数据表示、坐标系与标定基础
在边缘破损检测项目中,2D视觉往往受限于光照变化、表面纹理缺失和遮挡,难以稳定提取缺陷的深度与轮廓信息。3D视觉通过直接获取物体表面的空间坐标,为破损检测提供了几何层面的判据。本章围绕深度相机的三大主流原理、点云数据组织方式以及坐标系与标定基础展开,帮助学员建立从硬件选型到数据预处理的核心知识框架。
2.1 深度相机三大主流原理
2.1.1 结构光原理
结构光技术通过投影仪向被测物体表面投射编码后的光斑、条纹或网格图案,相机同步采集被物体表面调制后的图案。由于物体表面的凹凸变化,投影图案会发生几何畸变,通过图像中特征点的位移量,结合投影仪与相机之间的基线距离,利用三角测量原理即可计算出每个像素对应的深度值。
在边缘破损检测中,结构光相机(如iPhone的FaceID、Intel RealSense D435)常用于近距离、高精度的表面缺陷检测。其优势在于空间分辨率高,能够捕捉细微的划痕、崩边和凹陷。但需要注意,结构光对物体表面的反射特性敏感,高反光金属或透明材料会产生测量噪声,因此在实际项目中通常需要喷涂显影剂或选用其他原理的相机。
2.1.2 ToF(飞行时间)原理
ToF相机通过发射连续或脉冲式红外光,测量光从发射到接收的相位差或飞行时间,直接计算每个像素的距离。ToF传感器(如TI OPT8241、索尼DepthSense系列)采用CMOS工艺,能够在VGA分辨率下实现30fps以上的实时深度输出,且对环境光有较好的抑制能力。
在边缘破损检测项目中,ToF相机适合检测较大尺寸的工件(如汽车零部件、家具板材),其测量范围可达数米,且帧率高,能够适应传送带上的动态检测。但ToF的深度分辨率相对较低(通常为1cm左右),对于微米级的破损缺陷(如细小裂纹)难以直接识别,更适合作为粗定位或分拣引导。
2.1.3 激光三角原理
激光三角法利用一束或多束激光线投射到物体表面,相机从另一角度拍摄激光线在表面的成像位置。当物体表面高度变化时,激光线在图像中的位置发生横向位移,通过标定好的几何关系即可计算出高度信息。该技术精度极高(可达微米级),是工业在线检测中应用最广泛的方案。
例如,基恩士(Keyence)LJ-X系列、康耐视(Cognex)3D-Laser系列均采用此原理。在边缘破损检测中,激光轮廓传感器可以扫描产品边缘,获取完整的边缘轮廓点云,通过轮廓比对算法识别缺口、毛刺、塌边等缺陷。其缺点是必须配合运动机构(如直线模组、旋转台)进行扫描,检测节拍受扫描速度限制。
| 对比维度 | 结构光 | ToF | 激光三角 |
|---|---|---|---|
| 精度范围 | 0.1~1mm | 1~3cm | 1~50μm |
| 测量距离 | 0.1~3m | 0.1~10m | 0.01~1m |
| 帧率/速度 | 中(10-30fps) | 高(30-60fps) | 低(需扫描) |
| 抗环境光 | 弱 | 强 | 中(需滤光片) |
| 典型应用 | 消费电子、近距离缺陷 | AGV避障、大尺寸定位 | 精密加工、边缘轮廓检测 |
2.2 点云数据表示与处理
深度相机输出的原始数据通常以深度图(Depth Map)或点云(Point Cloud)形式呈现。深度图是灰度图像,每个像素值代表该点的深度距离;点云则是三维空间中的离散点集合,每个点包含三维坐标和可选属性(颜色、强度、法向量等)。
在边缘破损检测中,点云数据需要经过预处理才能用于缺陷分析。首先进行滤波去噪(如统计滤波、半径滤波),去除离群点和飞点;然后进行下采样(体素滤波)以降低数据量,提高处理速度;最后通过法向量估计和区域生长算法提取边缘轮廓。
// PCL 点云预处理示例(C++)
pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
sor.setInputCloud(cloud);
sor.setMeanK(50);
sor.setStddevMulThresh(1.0);
sor.filter(*cloud_filtered);
pcl::VoxelGrid<pcl::PointXYZ> voxel;
voxel.setInputCloud(cloud_filtered);
voxel.setLeafSize(0.001f, 0.001f, 0.001f); // 1mm体素
voxel.filter(*cloud_downsampled);
点云数据的组织方式直接影响算法效率。对于有序点云(如ToF相机输出),可以直接利用像素邻域关系进行快速处理;对于无序点云,需要构建KD-Tree或Octree来加速最近邻搜索。在边缘检测场景中,通常将点云转换为深度图或高度图(Height Map),将三维问题降维为二维图像处理问题,从而复用成熟的图像算法。
2.3 坐标系与标定基础
3D视觉系统的坐标系包括:世界坐标系(描述物体在空间中的绝对位置)、相机坐标系(以相机光心为原点)、图像坐标系(以光轴与成像平面交点为原点)和像素坐标系(以图像左上角为原点)。从世界坐标到像素坐标的转换涉及刚体变换(外参)和透视投影(内参)。
标定分为内参标定和外参标定。内参标定通常使用棋盘格或圆点标定板,通过拍摄多角度图像计算焦距、主点、畸变系数。外参标定则确定相机相对于机器人基座或传送带的位置关系。在边缘破损检测项目中,如果相机安装在机械臂上,还需要进行手眼标定(Eye-in-Hand),以将检测到的缺陷坐标转换到机器人坐标系下进行精确打磨或剔除。
2.3.1 标定流程与操作步骤
- 准备标定板:选用高精度陶瓷或玻璃基板,图案为7x9棋盘格(格边长10mm),确保表面平整度优于0.01mm。
- 采集图像:在检测工位的光照条件下,从不同角度(倾斜、平移、旋转)采集15~20张标定板图像,覆盖整个视场范围。
- 角点提取:使用OpenCV或Halcon自动提取棋盘格角点,剔除模糊或反光的图像。
- 计算内参:采用张正友标定法计算内参矩阵和畸变系数,重投影误差应小于0.1像素。
- 外参标定:将标定板固定在检测平面上,采集一张图像,计算相机到该平面的旋转矩阵R和平移向量t。
- 验证:测量已知高度的标准量块,对比点云测量值与真实值,误差应在系统精度范围内。
2.3.2 案例拆解:激光三角系统标定与边缘破损检测
背景与约束:某3C电子元器件生产商需要检测手机中框的边缘毛刺和崩边,要求检测精度±0.02mm,节拍小于3秒/件。选用基恩士LJ-X8400激光轮廓仪,安装于直线模组上,扫描速度50mm/s。
初始现象:首次调试时,点云数据出现周期性波浪状畸变,导致边缘轮廓提取失败。初步怀疑是运动平台振动或激光反射干扰。
关键数据与参数:激光轮廓仪采样周期为10kHz,扫描行程200mm,点云间距0.005mm。通过频谱分析发现畸变频率为25Hz,与模组丝杠导程(5mm)和转速(300rpm)吻合。
分析判断过程:确认畸变来源于丝杠运动时的轴向窜动,导致扫描过程中Z轴高度周期性变化。进一步检查发现模组联轴器松动,且导轨润滑不足。
实际操作步骤:①紧固联轴器并重新校准模组水平度;②更换高精度直线导轨润滑油;③在软件中增加低通滤波(截止频率10Hz)抑制残余振动;④重新进行外参标定,将标定板固定于检测平面,采集100帧点云取平均。
结果对比:处理后点云平面度从±0.08mm提升至±0.015mm,边缘毛刺检测准确率从82%提升至97.5%,误检率降低至0.3%。
风险与代价:增加滤波会损失部分高频细节,对于小于0.05mm的微细裂纹可能漏检。因此后续在滤波参数上做了自适应调整,根据边缘区域的梯度幅值动态决定滤波强度。
复盘经验:激光三角系统的精度不仅取决于传感器本身,更依赖于运动机构的刚性和稳定性。在项目设计阶段,应优先评估机械传动误差,并预留标定补偿接口。
2.4 常见误区与总结复盘
误区一:盲目追求高精度传感器。实际检测中,系统精度受限于机械运动、环境振动、标定误差等多方面因素。选择传感器时,应综合评估整体系统精度,而非只看传感器标称精度。
误区二:忽略环境光影响。结构光和激光三角对环境光敏感,在产线中应加装遮光罩或窄带滤光片。ToF虽然抗环境光能力强,但在强阳光下仍可能产生多路径干扰。
误区三:点云处理流程固化。不同材质、不同缺陷类型需要不同的预处理参数。建议建立参数库,针对不同产品型号自动加载对应配置。
误区四:标定一次永不更新。相机镜头松动、温度漂移、机械碰撞都会导致标定参数失效。应建立标定状态监控机制,当重投影误差超过阈值时自动报警。
总结而言,深度相机的选型需要结合检测精度、节拍、物体材质和成本综合权衡。点云数据的质量直接决定了后续缺陷检测算法的上限,而精确的坐标系标定则是实现高精度定位和测量的基石。在边缘破损检测项目中,建议采用“激光三角+高精度运动平台”作为核心方案,辅以结构光进行二次确认,同时建立完善的标定维护流程,确保系统长期稳定运行。