来源:CSDN

作者:明天的阵雨(已授权)

编辑:3D视觉开发者社区

前言:上篇介绍了标准结构光系统和改进的结构光系统模型,这篇我们来讲结构光系统标定方法,结构光系统标定的方法实际上还挺多的,本篇我们只讨论分析我实现过的比较方便及运用较多的两种方法之一,我给其命名为基于多项式拟合的结构光系统标定。

基于多项式拟合的结构光系统标定

基于多项式拟合的结构光系统标定,是将本需要直接测量的结构光系统中的长度值,隐式地表达在一个多项式中,同时引入经典的摄像机小孔成像模型,结合张正友摄像机标定法,从而获得待标定的相位——深度映射中的相关参数,以恢复被测物体的三维形貌。实际上,研究者对基于多项式拟合的结构光系统标定提出了许多种不同的系统模型和标定方法,这里要讲的结构光系统标定方法是由达飞鹏和盖绍彦提出的,参考文献[1]是原文,[2]后来他们出的书。这个模型和标定方法具有较高的速度和可操作性。我在这尽可能详细地分析他们的模型,以及实际操作计算,但并不需要做到和文章里一样复杂,我们可以用些工具简化中间步骤的计算。

这个系统模型要引入摄像机小孔成像模型,以及张正友标定,在这里就不赘述了,大家有需要可以自行搜索相关文献查看。

一、系统模型

该方法主要建立摄像机坐标系和被测物体上某点的相位、相位和世界坐标系之间的关系。该系统模型区别于标准结构光系统模型,对摄像机和投影仪的摆放位置没有严格的要求。分别表示世界坐标系和摄像机坐标系,组成摄像机成像面坐标系,为投影中心,被测物体上一点。其中世界坐标系是根据投影仪的位置建立的,参考平面平行于投影平面,平行于正弦条纹的条纹方向,轴过投影中心。在该模型中,通过旋转矩阵和平移矩阵述世界坐标系摄像机坐标系之间的转换关系,通过小孔成像模型描述成像平面和摄像机坐标系之间的关系,如:点在世界坐标系中坐标为,在摄像机坐标系中坐标为,在成像平面上的坐标为,

那么

以上是几个坐标系之间的转换关系,接下来是通过几何关系,找出相位和世界坐标系之间的关系。

为点在参考平面上的投影,平面交于点,

分别为、点轴上的投影。易知,,则,有

同时,,则,有

联立以上两式,可得

上式中,分别为点在世界坐标系中坐标;由于为点轴上的投影,且轴平行于正弦条纹的条纹方向,所以的相位相等,也等于点的相位(摄像机拍到物体A点的相位,实际等于参考平面上B点的相位),因此

上式中,为光栅的周期,为原点处的相位。将式(2-53)代入式(2-52)中,可得到相位和点在世界坐标系的坐标之间的关系,

结合上面世界坐标系和摄像机坐标系的转换关系,可得相位和点在摄像机坐标系的坐标间的关系

式中:

得到以上关系后,可以看出,系统标定过程就是在求八个参数的过程。

二、结构光系统标定步骤

从上面推导的式子里可以看出来,要求八个参数,也就是解一组八元一次方程,需要得到至少8组相位和在摄像机坐标系的坐标的数据才能解出这个方程。可见有两类数据要获取,一个是相位,一个是三维坐标,我是通过下面的方式获得的:

1.获取相位,我会用PMP方法获取相位,用Multi-frequency相位解包裹获得连续相位图;

2.一系列在摄像机坐标系的坐标,我会通过检测图像中的棋盘角点,经过张正友相机标定,利用标定的外参,计算这些角点在摄像机坐标系中的三维坐标。

以上用到的方法,相信大家都已经熟悉,就不在多讲了。

下面我就列出标定的各个步骤:

步骤一,将棋盘摆放在被测范围内的任意位置,用摄像机拍摄棋盘,检测棋盘角点(OpenCV或者MATLAB都有对应的函数),记录各角点在成像平面中坐标

步骤二,保持棋盘不动,利用投影仪,将正弦条纹图样投影在棋盘上,获取此时的相位图,记录各角点位置的相位。文章中用的是标定板,因为标定板还挺贵的,所以我就直接用棋盘了。

步骤三,多次调整棋盘的摆放位置,重复步骤一和步骤二,获得多组角点坐标和对应的相位,为更精确标定摄像机,我建议获取9张或以上棋盘图像。

步骤四,通过张正友摄像机标定方法标定摄像机,获得摄像机内参,及各幅棋盘图像对应的外参,根据外参可以计算出各幅棋盘图像中的角点对应在摄像机坐标系下的坐标

步骤五,利用步骤三得到的棋盘角点位置的相位和步骤四得到的棋盘角点在摄像机坐标系下的坐标,就构造多项式

把所有数据写成矩阵形式

就能通过最小二乘法求出八个参数。

三、从相位到三维坐标

完成系统标定后即可得到八个参数当实际测量时,摄像机获取的图像上任意一点以及该点对应的相位,还有摄像机的内参,可以慢慢构造下面的矩阵。

所以最后的三维坐标和任意一点以及该点对应的相位的关系就是下面这个式子了。

四、实验中间步骤及结果

最后稍微放一点标定过程中的一些中间步骤图片,和最后的标定结果。但由于大家的系统不同,所以最后的数据也不会不同,仅在此提供一个参考。

PMP所用的条纹:我用MATLAB生成4个频率、纵向的三步相移条纹图样,尺寸为720×500像素,频率分别是1/400、1/80、1/20、1/6

棋盘的角点检测结果(用的是OpenCV的角点检测函数)

标定的相机内参,标定后的八个参数

重建结果可以用直接用深度图来显示,不过应该要阈值化后才能正常显示,图(a),我还用PCL库做了3D点云可视化,图(b)。

参考文献:

[1] 盖绍彦, 达飞鹏. 一种新的相位法三维轮廓测量系统模型及其标定方法研究[J]. 自动化学报, 2007, 33(9): 902-910.

[2]  达飞鹏, 盖绍彦. 光栅投影三维精密测量[M]. 北京: 科学出版社, 2011.

[3] 刘顺涛, 骆华芬, 陈雪梅, 等. 结构光测量系统的标定方法综述[J]. 激光技术, 2015, 39(2): 252-258.

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

结构光系统标定方法详解相关推荐

  1. 基于多项式拟合的结构光系统标定

    前言:上篇介绍了标准结构光系统和改进的结构光系统模型,这篇我们来讲结构光系统标定方法,结构光系统标定的方法实际上还挺多的,本篇我们只讨论分析我实现过的比较方便及运用较多的两种方法之一,我给其命名为基于 ...

  2. 结构光系统标定(三)基于多项式拟合的结构光系统标定

    结构光系统标定的方法实际上还挺多的,我只讨论分析我读过且实现过的两种,两种方法都比较经典.应用较多.速度较快且操作简便的.这篇文章会讨论第一种,基于多项式拟合的结构光系统标定.当然这名字是我自己给它取 ...

  3. 结构光系统标定(四)基于双目视觉的结构光系统标定

    上一篇文章讲了基于多项式拟合的结构光系统标定,实际上就是将一系列待测的长度值,隐式地表达在一个多项式里面,通过拟合的方式去求出从相位计算三维坐标所需的参数.当然,这个名字是我自己取的,不一定准确. 这 ...

  4. 华硕笔记本系统重装之后需要输入用户名和计算机名称是怎么回事,华硕笔记本电脑重装系统【方法详解】...

    大家平时用电脑的时候都会遇到过 电脑蓝屏 或死机的情况,很多人的做法就会重启电脑,或者是去找专业人士重装系统,现在的很多电脑再购买的时候就已经预装了windows系统,还有的用户会买Dos系统自己进行 ...

  5. 预览版win11系统下载方法详解

    自从微软宣布要推出win11系统后,各位粉丝们都跃跃欲试想要体验新版的win11系统,而在6月29日微软也是推出了第一版win11预览版系统.很多网友想下载体验win11预览版,但是不知道win11预 ...

  6. 怎样用计算机xp命令修复软件,windowsxp系统怎么修复 windowsxp系统修复方法详解【图文】...

    自从电脑上市以来,随着电脑不断融入我们的生活,电脑的周边产品也受到了许多关注.包括电脑系统,windows作为最初的电脑系统,这些年来它也在不断的更新进步.虽然市面上也是出现过不少电脑系统,但目前为止 ...

  7. 双目结构光系统论文阅读总结

    双目结构光系统总结 1.一般的立体匹配的方法是基于左右两幅图像各像素的灰度相似性进行同名点判断的,哈尔滨工业大学的赵焕谦2017年的硕士毕业论文<基于结构光和双目视觉的三维重建系统研究>中 ...

  8. 【论文笔记】投影仪-相机系统标定方法

    文章目录 Simple, Accurate, and Robust Projector-Camera Calibration 摘要 1.介绍 背景 所提方法 配套软件 相关工作 2.方法^*^ A.投 ...

  9. for根据ID去重_汽车ECU参数标定之配置Overlay RAM实现Qorivva MPC57xx系列MCU参数在线标定和代码重映射原理和方法详解...

    内容提要 引言 1. MPC5744P的Overlay RAM工作原理介绍 2 MPC5744P的Flash Overlay配置详解 2.1 平台Flash标定区域描述字寄存器配置字0--PFLASH ...

最新文章

  1. C++11中头文件atomic的使用
  2. 3.2 为超参数选择合适的范围-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. 微服务实践沙龙-上海站
  4. Python基础--Python3基础语法
  5. Spring异常重试框架Spring Retry
  6. 2017.10.30 覆盖问题 思考记录
  7. Arctic Network UVA - 10369 (最小生成树,适合prim)
  8. OpenCV彩色目标跟踪
  9. python之三元表达式、列表生成式、字典表达式、生成器表达式
  10. 局域网中两台电脑通信
  11. 一文解读时间序列基本概念
  12. 第一篇:呼叫中心发展史
  13. html文字破碎特效,AE怎么制作破碎文字特效? ae文字破碎效果的制作方法
  14. 如何删除PDF水印?PDF删除水印怎么操作
  15. 深度神经网络和循环神经网络,深层循环神经网络
  16. 获取当前时间和一年后时间(中国标准时间)时间处理
  17. 阿里云对象云存储oss
  18. 基于Android的校园综合服务App平台毕业设计源码181042
  19. 开放式耳机有什么好处,分享几款知名度高的开放式耳机
  20. 做了Firefox下的一个扩展,它的设计理念真的是非常超前啊

热门文章

  1. 【138天】尚学堂高淇Java300集视频精华笔记(84)
  2. 【Unity 3D】学习笔记三十六:物理引擎——刚体
  3. iOS -- UIApplication
  4. 设计模式----模板方法模式UML和实现代码
  5. postgresql基本操作
  6. DreamWeaver文件保存时,提示发生共享违例问题的解决方法
  7. 回头再学Asp.net系列--基础篇(一)
  8. 平滑无损!引入Elasticsearch的系统架构实战
  9. 网关限流了,躲在后面的服务就能高枕无忧啦?
  10. Netflix这公司居然没有运维,也没有CTO