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

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

按我的理解来说,基于多项式拟合的结构光系统标定,是将本需要直接测量的结构光系统中的长度值,隐式地表达在一个多项式中,同时引入经典的摄像机小孔成像模型,结合张正友摄像机标定法,从而获得待标定的相位——深度映射中的相关参数,以恢复被测物体的三维形貌。

实际上,研究者对基于多项式拟合的结构光系统标定提出了许多种不同的系统模型和标定方法,这里要讲的结构光系统标定方法是由达飞鹏和盖绍彦提出的,参考文献[1]是原文,[2]后来他们出的书,其实是一样的。这个模型和标定方法具有较高的速度和可操作性。我在这尽可能详细地按照我的理解来分析他们的模型,以及实际操作计算中,并不需要做的文章里面一样复杂,可以用些工具简化中间步骤的计算,所以有些计算会和文章不一样,但道理是一样的。

这个系统模型要引入摄像机小孔成像模型,以及张正友标定,在这文章里我就默认各位读者都熟悉成像模型和相机标定了,这里直接用,而不会去介绍为什么,有需要就自己网上搜吧,这方面的解读多得数都数不过来。

系统模型

该方法主要建立摄像机坐标系和被测物体上某点的相位、相位和世界坐标系之间的关系。该系统模型区别于标准结构光系统模型,对摄像机和投影仪的摆放位置没有严格的要求。

分别表示世界坐标系和摄像机坐标系,组成摄像机成像面坐标系,为投影中心,为被测物体上一点。其中世界坐标系是根据投影仪的位置建立的,参考平面平行于投影平面,轴平行于正弦条纹的条纹方向,轴过投影中心。在该模型中,通过旋转矩阵和平移矩阵描述世界坐标系和摄像机坐标系之间的转换关系,通过小孔成像模型描述成像平面和摄像机坐标系之间的关系,如:点在世界坐标系中坐标为,在摄像机坐标系中坐标为,在成像平面上的坐标为,那么

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

为点在参考平面上的投影,平面交于点分别为、点轴上的投影。易知,,则,有

同时,,则,有

联立以上两式,可得

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

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

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

式中,

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

结构光系统标定步骤

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

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

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

以上用到的方法,在这里都默认大家已经熟悉了,这里不会再去讲,如果不清楚,PMP和相位解包裹可以翻我以往的文章,或者自己去看文献,张氏相机标定可以看网上的讲解。

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

步骤一,将棋盘摆放在被测范围内的任意位置,用摄像机拍摄棋盘,检测棋盘角点(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.

声明:本文中的图片、公式等都和作者本人的毕业论文有关,如果抄袭盗用吃亏是你自己哦~实在有需要,这里建议你自己码一下公式,自己做一下相关的图哦亲。作者水平有限,如文中有错,请务必留言指正。如有学习交流需要,也可通过邮箱zhenyuchung@m.scnu.edu.cn联系我,大家一起讨论学习。

结构光系统标定(三)基于多项式拟合的结构光系统标定相关推荐

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

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

  2. 如何确定matlab多项式拟合的阶数,基于多项式拟合函数趋势项与阶数估计加速度、速度、位移的方法与流程...

    本发明属于信号处理领域,尤其涉及一种基于多项式拟合函数趋势项与阶数估计加速度.速度.位移的方法. 背景技术: 目前信号处理领域常用的加速度积分方法主要有时域积分和频域积分两种.时域积分常数项经积分会产 ...

  3. ad15原理图中变压器种类_「知识」共轭结构整流变压器低压输出三排八列短网结构引线布置...

    来源:变压器技术杂志 共轭结构整流变压器低压输出三排八列短网结构引线布置 康洁,牛振忠 康洁.青岛华东电缆电器有限公司 牛振忠.青岛青波变压器股份有限公司 摘要:介绍一种共轭铁心整流变压器低压输出为三 ...

  4. PDM系统服务器管理,基于PDM的异地协同设计系统

    基于PDM的异地协同设计系统 随着经济全球化的不断发展,产品设计分工越来越细,产品协同设计团队越来越分散.由于产品设计的需要,分布在不同地方的设计人员和其他相关人员都要参与产品的开发过程,各自承担相应 ...

  5. 基于html的网上点餐系统,一种基于客户端的网上点餐系统的制作方法

    本发明涉及互联网技术领域,具体为一种基于客户端的网上点餐系统. 背景技术: 互联网是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一且巨大的全球化网络,在这个网络中有交 ...

  6. 可视化服务器集群管理与调度系统,一种基于Slurm作业管理的可视化调度系统技术方案...

    [技术实现步骤摘要] 一种基于Slurm作业管理的可视化调度系统 本专利技术涉及高性能集群作业调度领域,尤其涉及一种基于Slurm作业管理的可视化调度系统. 技术介绍 高性能计算集群是一组通过网络连接 ...

  7. java城市公交查询系统案例_基于JAVA的城市公共交通查询系统的设计与实现

    科技与信息 2018.12 计算机产品与流通 159 基于 JAVA 的城市公共交通查询系统的设计与实现 □ 苏楠 摘要:公共交通查询系统是城市交通的组成部分之一,也是一个城市实现现代化发展的必然产物 ...

  8. 基于android餐馆点餐系统报告感想,基于Android的餐厅点餐系统的设计与实现

    摘要: 民以食为天,在日常的生活中,我们经常需要与家人,朋友,同事在一起就餐以便促进相互之间的感情.但是现在多数的餐厅企业基本上还是手工点餐操作,无法更好地适应新时期下人们对餐饮业服务的人性化和高效率 ...

  9. oracle系统计算工资,基于Oracle EBS的工资核算系统的设计与实现

    摘要: 随着信息技术的发展,越来越多的企业将会实施ERP系统.因各企业的业务差异,对系统将进行一定的二次开发.目前ERP实施过程中的二次开发存在诸多问题,经常导致项目延期及实施费用超出预算,所以总结一 ...

最新文章

  1. 实例分割最新最全面综述:从Mask R-CNN到BlendMask
  2. 专属于教育界的定律,你知道哪一些?
  3. Name Error Connection “:1.33“ is not allowed to own the service “x“ due to security policies in the
  4. UEFI主板GPT方式安装CentOS 6.4
  5. hybris backoffice和产品主数据相关的一些sample data
  6. Java IO: 字节和字符数组
  7. 链表的代码实现【数据结构F】
  8. fun(1),fun(2),fun(3)
  9. 开发物体识别桌、_Tofu3 热红外可见光双光AI目标识别跟踪
  10. notion自建服务器,最详细的NOTION功能模块列表
  11. 《Lua程序设计》第7章 迭代器与泛型for 学习笔记
  12. 2021-09-01175. 组合两个表 SQL
  13. java poi jar包下载_poi.jar包下载
  14. 网站域名DNS被劫持了如何解决?
  15. 什么是溢出?补码加法运算如何判断是否溢出?
  16. sdut-3386 小雷的冰茶几
  17. 超融合之VMware vSAN企业级超融合解决方案
  18. 组件图知识点(UML)
  19. CTF题库RSA实践 (RSA-Tool2 by tE! 工具的使用)
  20. jquery轮播图无缝连接实现

热门文章

  1. 产品经理修炼手册-经验分享
  2. 在微信小程序中,如果自动通过fastadmin来获取用户所在的省市地区?
  3. 安卓实现沉浸式状态栏,兼容小米、魅族
  4. 具象的东西_具象是什么意思?
  5. java实现弹球游戏_Java swing版弹球游戏源代码下载
  6. Android自己定义控件2-简单的写字板控件
  7. 流媒体分析之srt 测试环境搭建
  8. 13 蜡烛图与移动平均线
  9. 社交媒体分析:洞察希拉里面对的性别歧视
  10. 新的RA Group勒索软件针对美国组织进行双重勒索攻击