用于 3D 表面检测的光度立体 | 计算机视觉 | Euresys
简介
尽管绝大多数机器视觉应用都是采用二维成像解决的,但采用或需要3D测量和检查的机器视觉应用在显著增多。为了从场景中提取3D信息,要用到很多种技术。在此我们要提一下结构光(包括基于激光扫描的三角测量)、立体或立体视觉和飞行时间传感器。
其中一种可能鲜为人知的技术就是光度立体。Euresys的光度立体功能从单个视点采集不同方向照明下拍摄的同一表面的多幅图像,来估计表面每个点的方向和反照率。这些不同的图像按顺序采集,与照明同步,因此只需使用一台相机。
光度立体适用于检测或检查物体表面的细节(无论是缺陷还是信息)。
Euresys Open eVision Easy3D库提供光度立体算法。它可以用作执行其它操作之前的预处理,例如读码(使用 EasyMatrixCode、EasyQRCode或 EasyBarcode库)、光学字符识别 (EasyOCR)、对齐 (EasyMatch或 EasyFind)、测量 (EasyGauge)或缺陷检测 (EasyObject或 EasySegment)。
它是怎样实现的?
对于给定的视觉设置(待检测物体的位置和角度、照明(通常为3或4个)和相机),软件工具首先需要校准参照物体[(半)球],或者手动引入设置的精确几何特征。
图 1.在相机前有多个照明角度的被检测物体。
处理
此后,被检测物体的图像分多个步骤捕获,并采用不同的照明角度。
根据用户的要求,光度立体单独提取多个变量(表面法线、反照率、X和Y梯度、平均曲率和高斯曲率)。这些用于重建/渲染2D域中的3D信息,从而为其它库的进一步处理做好准备。
图 2.不同照明条件和检测下的泡罩图像。
上图2说明了整个过程:
- 相机在四种照明条件下拍摄的物体(图像1至4)
- 基于所选测量值的重建图像(图像A)
- 对所选检测有用的一部分孤立数据(图像B)(这里我们选择使用高斯曲率信息)
- 对(B)中图像使用Open eVision EasySegment库和监督模式(图像C)的深度学习检测结果。可以清楚地识别出两个穿刺点。
优化
在一些测试中,用户可以确定为其应用恢复的最合适的变量。执行这些步骤后将得到优化,并可能加快时间至关重要的过程。
例如某些检测需要特定的线性检测或可选的锐边检测。也可能需要特定兴趣区域 (ROI) 的规范。 根据实际应用调整这些参数会显著提高速度。
考虑到偶尔不甚完美的物体位置、观察条件或照明,该功能还支持进行以下补偿:
- 环境照明(深色图像)和
- 非均匀照明(平面参照图像)
结论
我们可以看出,最初无法从原始图像中检测出来的有用信息如何通过光度立体得到增强,从而由标准eVision库(在本例中为 EasySegment)加以有效利用。
Euresys Open eVision Easy3D库提供光度立体成像仪功能。