news 2026/6/26 3:22:31

【条纹结构光系列(1):系统搭建】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【条纹结构光系列(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 = 1536fx=1920×0.8=1536

相机

相机用于采集投射到物体上产生变形的条纹。笔者用以前购买的两台海康工业相机来搭建系统,相机主要参数如下表。

参数规格
传感器型号Sony IMX264
分辨率2448x2048
靶面尺寸2/3’’
帧率60FPS@Mono8
像素尺寸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/60fps=16667us)。

相机控制

相机控制使用海康的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输出同步信号的墙面重建效果对比,可以清楚的发现前者存在条纹失真导致的谐波误差,而后者更加平整。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 1:27:40

【C++11】常用特性总结

这篇文章系统梳理了C11的核心语法与新特性,适合具备一定C/C基础、需要进阶现代C的开发者阅读。本文将通过“是什么、有什么用、底层原理”的逻辑,把原本晦涩的语法转化为直观的开发利器,帮助你彻底掌握这些在日常工程和面试中最常遇到的关键技…

作者头像 李华
网站建设 2026/6/25 1:27:35

大模型烧穿预算?企业级 Token 限流与计费实战指南

大模型烧穿预算?企业级 Token 限流与计费实战指南前言 兄弟们,说实话,搞技术这条路真是各种坑。咱们做开发的,说白了就是要不断踩坑、不断成长,这才是技术人的常态。 上个月,老张的项目刚上线。第二天财务直…

作者头像 李华
网站建设 2026/6/25 2:01:02

Godot学习02 - 输入

Godot 是一款灵活且强大的游戏引擎,无论是 2D 还是 3D 游戏开发都游刃有余。在游戏中,玩家的输入是交互的核心,本篇文章将带你学习如何在 Godot 中高效处理各种输入事件。通过掌握这些技巧,你可以让角色控制、菜单操作和自定义交互…

作者头像 李华
网站建设 2026/6/25 2:22:10

STM32全局变量管理:三文件法实现类型安全与集中声明

1. 项目概述:为什么我们需要一种更优雅的全局变量管理方法?在嵌入式开发,尤其是基于STM32这类MCU的项目中,全局变量几乎是无法避免的存在。无论是用于模块间通信的状态标志、系统运行的时间戳,还是传感器采集的实时数据…

作者头像 李华
网站建设 2026/6/25 2:22:58

解锁音乐自由:5步掌握Unlock-Music的终极使用技巧

解锁音乐自由:5步掌握Unlock-Music的终极使用技巧 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://g…

作者头像 李华