从0到1搭建一套属于你自己的高精度实时结构光3D相机(1):硬件搭建

1. 写在前面

在这篇博客中,博主将主要介绍结构光3D相机的硬件如何搭建,主要涉及到相机与投影仪的选型与配置。在开头,博主先给大家摘出一段语录:

能从硬件层面解决的问题,就别死磕算法了。

能从硬件层面解决的问题,死磕算法是没有意义的。例如,当你评估自己的3D相机精度却发现始终达不到理想水平时,不要在那两三句代码上死磕,回头想想,是不是自己的硬件搭建的不好,选型选的不对。就博主经验而言,大部分做结构光3D相机没几年的小萌新们,都对相机与投影仪的硬件特性毫无理解。在接下来的部分,本篇博客将对相机与投影仪的重要特性作必要介绍。

工欲善其事必先利其器。

2. 相机

相机作为结构光3D相机的主要成像设备,了解其成像原理及必要特性是极其重要的。由于网上有许多精彩的博客与文章,因此博主将列出必要的知识点与相关参考资源(主要是懒dog-face),供大家学习参考。

  • 工业相机的常用参数:https://zhuanlan.zhihu.com/p/119449860
    了解工业相机常用的参数对选型非常重要。
  • 镜头与光源:https://zhuanlan.zhihu.com/p/649956764
    了解镜头的主要参数以及光源对成像的影响非常有益。
  • 相机成像数学模型:https://zhuanlan.zhihu.com/p/356546894
    主要讲解针孔相机成像模型、径向畸变与切向畸变。
  • 对极几何:https://zhuanlan.zhihu.com/p/399190891
    详细介绍并推导了双目立体视觉中的对极几何。
  • Bodguet极线校正原理:https://zhuanlan.zhihu.com/p/498271577
    详细介绍了Bodguet极线校正原理。
  • 本质矩阵与基本矩阵详解:https://zhuanlan.zhihu.com/p/377794028
    详细介绍并推导了本质矩阵和基本矩阵。
  • 双目立体视觉系统的精度关系推导:https://blog.csdn.net/rs_lys/article/details/107102968
    详细介绍了影响双目立体视觉系统精度的相关因素,并给出了详细的推导与结论。
  • 双目立体匹配:https://ethanli.blog.csdn.net/article/details/83302323?spm=1001.2014.3001.5502
    详细介绍了立体匹配过程,李迎松的博客中有详细的原理介绍与代码实践,详细了解后绝对令你对双目视觉有很大的提升。
  • 张正友标定:https://zhuanlan.zhihu.com/p/136827980
    最经典,使用最为广泛的标定方法,了解其原理对理解相机标定非常重要。

在最后,博主想教给各位一个简单评估当前相机所能达到的测量精度的方法。我们以一个 1280 × 1024 1280×1024 1280×1024分辨率的相机为例,假设物距为 500 m m 500 mm 500mm下的幅面范围为 300 m m × 200 m m 300 mm × 200 mm 300mm×200mm,则在 x x x方向大致的精度为 300 / 1280 ≈ 0.23 m m 300 / 1280 ≈ 0.23 mm 300/12800.23mm,在 y y y方向大致的精度为 200 / 1024 ≈ 0.20 m m 200 / 1024 ≈ 0.20 mm 200/10240.20mm,那么 z z z方向呢?一般来说比上述两个方向略高点。所以大致可以估计以这个配置的相机和测量位姿,精度在 0.2 m m 0.2 mm 0.2mm左右。当然,这仅仅是硬件层面决定的,学习过亚像素插值算法的同学知道,我们可以通过算法层面进一步提升该精度。所以,当你发现自己的精度仅有 0.3 m m 0.3 mm 0.3mm时,完全不用进行任何比较,已经可以断定这是一次失败的三维重建dog-face

3. 投影仪

DLP投影仪由于具有可编程度好、对比度高等优点,已被广泛使用。网上关于投影仪的博客较少,因此本篇博客将着重介绍一下投影仪的工作原理及相关特性。博客将以DLP4710 EVM作为典型实例讲解,DLP3010 EVMDLP投影仪工作原理类似。其原理图如图1所示1
g

图1. DLP4710 EVM原理图

从图中可以看到DLP4710 EVM主要包含三个子系统:

  • 1) 光学模块
    光学模块主要包括光源和DLP4710 DMD
  • 2) 驱动模块
    驱动模块主要包含由DLPC3479控制器和DLPA3005 MPIC/LED驱动组成的DLP芯片组。此外它还包含一个触发口,用于相机捕获和其它系统控制的触发器I/O信号。
  • 3.)前端模块
    前端模块主要包含MSP430单片机、ITE HDMI接收器、USB串行控制器和几个外部输入连接器(如HDMIUSB)。

例如,我们打开DLPDLC-GUI软件控制投影仪时,就是通过前端模块中的MSP430单片机进行连接;当我们对投影仪进行内部图案的烧录时,则是通过驱动模块中的DLPC3479控制器对Flash进行烧录;而当我们选择投影功能时,则是通过驱动模块中的DLPC3479控制器使光学模块中的光源工作并通过DLP4710 DMD投射光出去。仔细思考该段话,可以得到以下结论:

  • 当投影仪与DLPDLC-GUI连接失败时,排除电源等问题,极大概率可能是由于MSP430单片机程序丢失等原因导致的。此时需要重新烧录单片机程序解决,可购买MSP430单片机烧录器并烧录相应的开机程序。
  • 当你需要定制投影仪的开机程序时,通过烧录MSP430单片机的程序即可。
  • 当你需要通过代码控制投影仪的工作方式时,找到DLPC 3479对应的SDK程序即可。
  • 最最最重要的来了,前端和驱动模块都是为光学模块服务的,因此,选择什么样的光源与DMD型号是至关重要的。

那么,如何选择DMD型号呢,在这里我们先介绍一下DMD是如何通过编程的方式将光投影出去的。如图2所示2

DLP投影仪工作原理

图2. DLP投影仪工作原理

DMD由数以万计的小镜子组成,例如DLP 4710 DMD分辨率为1920×1080,则每个像素都是一面小镜子。每个小镜子都可以通过电压控制它的角度偏转,而我们烧录图像的目的就是通过编码的方式控制电压,继而控制小镜子的偏转角度(当然,如何转换为控制电压不需要你担心,固件已经帮你做好了)。当数以万计的DMD小镜子同时工作时,光源的光经过光学通路打在DMD上,然后经由DMD将光反射出去,这就形成了我们的投影图像。

想要进一步了解DLP投影仪的工作方式,可以观看完整的德州仪器系列视频,附上连接👉DLP投影仪工作原理

原来如此!看来高大上复杂的投影仪也不过如此!

重点来了,开始敲黑板,需要做笔记了!

那我们如何发挥出投影仪的最高性能呢?例如,我们想要投影仪投射的图案和我们的编码图案误差最小,或是我们想要以最高的投影速率投影图案。我们将对这两个问题分别探讨,毕竟,这也是很多同学经常会犯的错误。

1. 如何减少投影误差?

1)性能参数
以图3的DLP4710B投影仪参数为例,与投影误差相关的重要参数有:分辨率、对比度、亮度、畸变、DMD阵列方式。总的来说,除了畸变率越低越好,其它的几个参数都是越高越好。在这里我们着重强调一下DMD阵列方式,总共有方形阵列菱形阵列两种方式,例如DLP 4500 DMD就是菱形阵列,这种阵列方式精度相比方形阵列较低,总的一句话,选方形阵列DMD就完事了。再接着就是光源问题,一般来说,和相机结合使用时蓝光精度较高,原因是工业相机的响应频谱图一般在蓝光波长范围内干扰较低。

在这里插入图片描述

图3. DLP 4710投影仪性能参数

2)曝光时间。
曝光时间也能影响投影误差?是的,博主发现很多同学似乎并不在意曝光时间的长短,调整曝光时间的依据仅仅是看图像有没有过曝,过曝了就直接降低投影仪的曝光时间,这是极其不规范的操作!我们以德州仪器官方给出的DLPC3479固件(这个固件就是上述投影仪工作原理中所提到的通过固件将编码值转化为小镜子控制电压)所支持的曝光时间为例,如图4所示:
DLPC3479固件所支持的曝光时间

图4. DLP 4710 v8.3.0固件所支持的曝光时间范围

可以看到,在8位深度图案下的内部图片可供烧录的曝光时长范围为2084~4169,什么?竟然只能设置这么低的曝光时间,是不是瞬间感觉非常鸡肋,我们来看看如果曝光时长设置为其它范围会导致什么现象。

Notes:
For internal patterns, there will be an additional variable delay of ~3000 us at the beginning of every pattern set.
Exposure times shorter than the above values are not possible. Longer exposure times will operate with decreased timing accuracy and behavior is not guaranteed.

翻译过来就是,哥们儿,如果你的曝光时间小于上述值,那是不允许的,如果你的曝光时间高于上述值,不好意思,精度会下降,并且我们不保证会导致的任何意外情况。所以,同学们在使用一款投影仪时,一定得先知道它的所有参数,检查它的固件,看看允许的曝光时间范围是多少。

曝光时间的选择就这个要求吗?还远远不够呢!重点来了:图案的位深度会影响投影仪曝光的行为方式!

我们以图5来说明投影仪曝光的行为方式:
投影仪曝光的行为方式

图5. 投影仪曝光的行为方式

可以看到,当我们设置好曝光时间后,固件会根据编码图案的位深图将曝光时间进行分区间划分,事实上,我们称投影仪产生的灰度是根据时间积分所得来的。以8位深度图案下的某一像素值为例,假设该像素值为 10000000 10000000 10000000,我们设置的曝光时间为 10000 u s 10000 us 10000us,则根据上图,第7个bit的曝光时长为 10000 ∗ 2 7 / ( 2 8 − 1 ) ≈ 5019.6 u s 10000 * 2^7 / (2^8 - 1) ≈5019.6 us 1000027/(281)5019.6us。假设你将相机的曝光时长设置为 4000 u s 4000 us 4000us,尽管可以正确同步捕图,但此时的第7个bit并没有成功捕获到,也就是说,通过相机捕获到的像素值为 00000000 00000000 00000000,导致精度大幅下降。

所以,在8位深度图案下,相机与投影仪的曝光时间要求严格一致!否则将丢失精度!

那有同学就会产生疑问,1位深度图案下呢?
显然,根据上图,1位深度图案只有一个区间,因此,此时不再要求相机与投影仪的曝光时间严格一致。

2. 如何提升投影速率?

投影速率与最后3D相机的重建速率息息相关,当然,相机也是,不过我们先来探讨一下如何把现有的投影仪速率发挥至极致,毕竟投影仪价钱贵多了dog-face。我们以几款典型的DLP投影仪在不同位深度图案下的投影速率作为比较:

DMD型号位深度投影速率
DLP 30101位深度2500 Hz
DLP 30108位深度360 Hz
DLP 45001位深度4225 Hz
DLP 45008位深度120 Hz
DLP 47101位深度1440 Hz
DLP 47108位深度120 Hz

图6. DLP投影仪在不同位深度图案下的投影速率

可以看到,在1位深度图案下的投影速率相较于8位深度图案下的投影速率有着几倍甚至数十倍的提升,竟然差距如此之大!原因很简单,8位深度图案的数据量可大多了,255个灰度也需要更长更复杂的控制算法去产生灰度。所以,当我们想要发挥出投影仪的最高投影速率时,烧录1位深度图案即可!那问题来了,我们则么产生像8位深度图案一样的255个灰阶呢,相信很多人已经知道了,采用离焦投影技术!通过轻微离焦投影仪,产生我们所需的灰度,如图7所示。
在这里插入图片描述

图7. 二维误差扩散法下的离焦投影技术(左图为8位深度图案,右图为1位深度图案)

4. 总结

在这篇博客中,博主主要介绍了结构光相机中的相机与投影仪硬件,分别对其主要的成像原理与相关重要特性作出了介绍。知己知彼,方能百战不殆,因此,快去了解你手头的硬件吧!在下一篇博客中,博主将开始着手搭建我们的结构光3D相机,你将了解其硬件组成、触发方式和硬件布局。

本系列文章将持续更新,如果有等不及想要获得代码的小伙伴,可访问博主Github中的SLMaster项目,动动你的小手指,follow and star⭐!你们的关注是博主持续的动力!

Github:https://github.com/Practice3DVision
QQ群:229441078

公众号:实战3D视觉

在这里插入图片描述


参考文献

[1]: 德州仪器. DLP4710EVM-LC Light Control EVM (Rev. A). [EB/OL].[2024-03-11].https://https://www.ti.com.cn/tool/cn/DLP4710EVM-LC. How To Display Video & Control Light Using TI DLP® Technology

[2]: 德州仪器. How To Display Video & Control Light Using TI DLP® Technology. [EB/OL].[2024-03-11].https://www.ti.com.cn/zh-cn/video/series/precision-labs/ti-precision-labs-dlp-labs-technology.html#transcript-tab.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值