【条纹结构光系列(1):系统搭建】
介绍条纹结构光是一种非接触光学3D测量技术在文献里通常被称为条纹投影轮廓术。它的特点是在近距能够实现高空间分辨率3D、高精度微米级的测量。凭借着这些特点条纹结构光被用于零部件缺陷检测、机械臂视觉引导、3D扫描等对测量精度要求较高的场景。本文开启一个新的博客系列介绍条纹结构光技术。笔者将分享条纹结构光系统搭建以及实现系统标定、三维重建的完整过程。本文主要介绍系统搭建过程。系统构成条纹结构光系统主要由投影仪、相机构成。根据所使用相机数量的不同条纹结构光主要可分为单目、双目两种系统。两种系统的标定和重建算法存在不少的差异在后续的博客中将会详细介绍。笔者用两台相机和一台投影仪搭建了结构光系统。实现单目系统时仅使用投影仪和两台中的一台相机实现双目系统时则同时使用投影仪和两台相机。以下是所用投影仪和相机的作用说明和核心参数。投影仪投影仪用于投射出条纹由于条纹结构光通常采用时序编码因此投射的条纹图案在不同帧是不同的。所以投影仪需要有投射可变图案的能力。笔者购买了工业级3D扫描专用的DLP投影仪来投射条纹图案其主要参数如下表。参数规格显示芯片DLP4710LC 0.47 1080p DMD分辨率1920x1080投射比0.8偏轴0%畸变1%价格~1.3W投射比的定义为投影距离D DD与画面宽度W WW的比值可以换算得到水平FOV约 64.0°竖直FOV约38.7°逆相机模型的焦距镜头焦距比像素大小约为f x 1920 × 0.8 1536 f_x 1920 \times 0.8 1536fx1920×0.81536。相机相机用于采集投射到物体上产生变形的条纹。笔者用以前购买的两台海康工业相机来搭建系统相机主要参数如下表。参数规格传感器型号Sony IMX264分辨率2448x2048靶面尺寸2/3’’帧率60FPSMono8像素尺寸3.45um镜头接口C-Mount价格~1.5K镜头使用的是已有12mm镜头最大光圈2.8。计算得到相机水平FOV和竖直FOV大约分别是38.8°和32.8°与投影仪FOV有明显差距。这里确实是搭建系统时没有做好的地方因为用的是已有相机和镜头FOV没有做到太匹配有些浪费投影仪的性能。不过这也保证了相机固定时有很大的结构自由度不用担心出现相机视场超出投影仪投射区域的情况。系统搭建下图是搭建的系统结构投影仪位于两台相机中间左相机到投影仪镜头的基线长度大约17.5cm两台相机的基线长度大概35cm。上图中两个相机和投影仪光轴是平行放置但后面调试发现在感兴趣测量范围内两个相机FOV没有很好重叠所以后来做了调整让左右两个相机朝投影仪光轴偏转了一定角度。投影仪控制使用TI官方的DLP EVM软件控制投影仪投射条纹。这个软件可以控制投影仪投射一些软件和固件中自带的图案或者自己添加的1bit、8bit一维横条纹或者竖条纹图像。下图是控制投影仪投射自带的棋盘格图像。下图是使用Light Control功能投射自己生成的一维8bit横条纹和竖条纹图案。添加完成后选择要投影的Pattern Set并设置前曝光、曝光、后曝光时间。前曝光、后曝光时间并不投射图案是为了DMD 数据加载、系统时序稳定、与外部相机同步并提供曝光与帧率分离的灵活性。只有曝光时间才是投射图案的。三个时间的和要大于相机最短采图间隔否则同步时相机采图会出现丢帧。观察Triger Out2图案可以看到当投影仪投射图案时会持续输出高电平这个信号可以用来控制相机同步采图。下图中三个时间分别设置成了20000us、2000us、20000us大于相机帧周期1/60fps16667us。相机控制相机控制使用海康的MVS软件。需要和投影仪同步拍摄时将相机设为外触发模式。相机对焦和光圈调节组装完成后需要调整相机与投影仪的对焦以及相机的光圈。相机对焦根据根据感兴趣的深度测量范围确定。笔者关注500mm到1000mm的测量区间所以将相机对焦于中间位置。将标定板放置于约750mm处调节相机光圈至最大这样景深最浅最能凸显对焦是否清晰然后调节对焦环直至标定板成像最为清晰。对焦完成后调小相机光圈让标定板在500mm和1000mm处也有合适的清晰度。最后拍摄白墙微调其中一个相机的光圈使两个相机图像灰度均值基本一致。投影仪对焦调节完成相机对焦和光圈调节后锁紧螺丝开始调节投影仪对焦。将投影仪放置于距离白墙500mm处控制投影仪投射棋盘格图案调节投影仪对焦至图案最清晰。此时查看相机图像通常可以观察到清晰的投影仪像素颗粒。这种像素颗粒会对测量质量产生不利需要消除。进一步调节投影仪对焦至更近的距离直至500mm处的相机图像恰无法观察到像素颗粒。这样基本上可以最大程度利用投影仪分辨率并能够保证500mm至更远的距离都无法观察到像素颗粒。投影仪和相机同步笔者所购投影仪同步信号高电平电压为3.3V恰与所购工业相机可用的最低同步信号电压一致所以可以直接把投影仪同步线接到相机的同步线输入上。投影仪在投射图案时输出持续的高电平信号。将相机设为外触发模式选择外触发端口并设置为检测到上升沿信号时采集图像这样就每当投影仪投射图案时相机就会采集图像从而实现了投射条纹和采集图像的同步。下面的视频展示了投影仪和双相机同步效果。投影仪和相机同步相机曝光时间设置相机的曝光时间不能小于投影仪曝光时间否则将出现图案失真的情况。这是因为DLP投影仪本质只能投射黑白二值图案投射8bit图案时会根据bit位的高低编码为多个二值图案并用不同的曝光时间依次投射这些二值图案在曝光时间进行能量累加后才能形成连续的8bit图案。相机曝光时间小于投影仪曝光时间时可以看到不同bit明显的阶梯图案。下图是投影仪曝光时间设为2000us相机曝光设置为500us、1000us、1500us、2000us时拍摄的8bit条纹图案。笔者在后续测试中发现最好将相机曝光时间A设置为略大于投影仪曝光时间B并将投影仪Triger Out2输出提前(A-B)/2这样可以避免上升沿触发误差导致的条纹图案失真。下图是投影仪曝光时间设置为3000us相机曝光时间设置为3000us和设置为3100us并提前50us输出同步信号的墙面重建效果对比可以清楚的发现前者存在条纹失真导致的谐波误差而后者更加平整。