结构光系统标定方法详解(二)

来源:CSDN

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

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

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

基于多项式拟合的结构光系统标定,是将本需要直接测量的结构光系统中的长度值,隐式地表达在一个多项式中,同时引入经典的摄像机小孔成像模型,结合张正友摄像机标定法,从而获得待标定的相位——深度映射中的相关参数,以恢复被测物体的三维形貌。实际上,研究者对基于多项式拟合的结构光系统标定提出了许多种不同的系统模型和标定方法,这里要讲的结构光系统标定方法是由达飞鹏和盖绍彦提出的,参考文献[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.


(0)

相关推荐