
3D视觉检测三剑客:结构光、ToF与双目立体视觉原理与选型指南一、引言:当 2D 相机不够用了去年参与一个锂电池极片涂布产线改造项目,客户原有检测方案是 5 台 2D 面阵相机覆盖涂布宽度,缺陷检出率卡在 92% 上不去——涂层厚度不均、极片边缘翘曲这类三维缺陷,在二维图像里只是一片灰度异常,与正常区域的油污、色差根本无法区分。换成一套结构光 3D 相机后,检出率直接跳到 99.3%,产线速度还从 60m/min 提到了 85m/min。这就是 3D 视觉在工业检测中的价值:不是比 2D"看得更清晰",而是比 2D"多一个维度"——高度信息。对于变形、划痕深度、装配间隙、焊点高度等场景,2D 本质上就是盲的。目前工业 3D 视觉检测领域有三条主流技术路线:结构光(Structured Light)、飞行时间(ToF, Time of Flight)、双目立体视觉(Stereo Vision)。三者共享同一个底层数学框架(三角测量),但实现路径和适用场景截然不同。本文从原理出发,深入到工程实践,帮你建立选型直觉。二、统一的数学底座:三角测量三种方法殊途同归,都归结为三角测量(Triangulation)——利用两个视角之间的视差恢复深度。设相机光心OLO_LOL和投影仪/第二相机光心ORO_ROR间距为基线BBB,焦距为fff,空间点PPP在两视角下的成像坐标差为视差d=xL−xRd = x_L - x_Rd=xL−xR,则深度ZZZ满足:Z=B⋅fdZ = \frac{B \cdot f}{d}Z=dB⋅f这个公式简洁到令人发指,但工程落地中每一个变量都是坑。基线BBB的两难:BBB越大深度分辨率越高(相同Δd\Delta dΔd对应更小ΔZ\Delta ZΔZ),但视场重叠区越小、遮挡越严重。一个现实的经验法则:对于 300mm 工作距离的检测,结构光基线取 60-80mm,双目取 40-100mm(取决于被测物尺寸),ToF 则受限于光源功率,基线实际上是虚拟的——由调制频率和相位差的测量精度间接决定。深度分辨率推导:对ZZZ关于ddd求导:∂Z∂d=−B⋅fd2=−Z2B⋅f\frac{\partial Z}{\partial d} = -\frac{B \cdot f}{d^2} = -\frac{Z^2}{B \cdot f}∂d∂Z=−d2B⋅f=−B⋅fZ2这意味着深度误差随距离的平方增长。在 1 米处 0.1mm 精度的系统,到 3 米处精度退化到约 0.9mm——不是线性退化,是平方退化。所有 3D 传感器的规格书上那个"精度"数字背后都有一个隐藏的前提:“在参考工作距离下”。三、结构光:编码图案的精密测量3.1 工作原理结构光的核心思想:用已知编码的光学图案替代第二个"相机",主动给场景打上纹理。经典实现是相移法 + 多频外差:投影仪依次投射NNN张正弦条纹图,第nnn