计算机应用   2017, Vol. 37 Issue (10): 2888-2894  DOI: 10.11772/j.issn.1001-9081.2017.10.2888
0

引用本文 

李肖, 葛宝臻, 罗其俊, 李云鹏, 田庆国. 自由双目立体视觉摄像机动态外参数的获取[J]. 计算机应用, 2017, 37(10): 2888-2894.DOI: 10.11772/j.issn.1001-9081.2017.10.2888.
LI Xiao, GE Baozhen, LUO Qijun, LI Yunpeng, TIAN Qingguo. Acquisition of camera dynamic extrinsic parameters in free binocular stereo vision system[J]. Journal of Computer Applications, 2017, 37(10): 2888-2894. DOI: 10.11772/j.issn.1001-9081.2017.10.2888.

基金项目

国家自然科学基金资助项目(61535008)

通信作者

葛宝臻, E-mail:gebz@tju.edu.cn

作者简介

李肖(1990—), 女, 河北石家庄人, 硕士研究生, 主要研究方向:双目立体视觉;
葛宝臻(1964—), 男, 内蒙古卓资人, 教授, 博士, 主要研究方向:激光三维彩色数字成像、光电检测、激光粒子测量;
罗其俊(1982—), 男, 湖北云梦人, 讲师, 博士研究生, 主要研究方向:计算机视觉、智能系统;
李云鹏(1987—), 男, 天津人, 博士研究生, 主要研究方向:激光三维彩色数字成像;
田庆国(1973—), 男, 河北唐山人, 讲师, 博士, 主要研究方向:计算机可视化、图像图形学

文章历史

收稿日期:2017-04-07
修回日期:2017-06-03
自由双目立体视觉摄像机动态外参数的获取
李肖1,2, 葛宝臻1,2, 罗其俊1,2,3, 李云鹏1,2, 田庆国1,2    
1. 天津大学 精密仪器与光电子工程学院, 天津 300072;
2. 光电信息技术教育部重点实验室, 天津 300072;
3. 中国民航大学 电子信息与自动化学院, 天津, 300300
摘要: 针对自由双目立体视觉中由于摄像机旋转导致的摄像机外参数变化的问题,提出一种基于旋转轴标定的动态外参数获取方法。在多个不同位置,立体标定得到多组旋转平移矩阵,利用最小二乘法求解旋转轴参数;结合初始位置左右摄像机的内、外参数及旋转角度,实时获取左右摄像机的外参数。利用所提方法获取动态外参数,并对棋盘角点进行三维重建,平均误差为0.241 mm,标准差为0.156 mm;与基于多平面标靶的标定方法相比,精度高且操作简单。所提方法无需实时标定,可完成摄像机旋转情况下动态外参数的获取。
关键词: 机器视觉    自由双目立体视觉    动态外参数    旋转轴标定    三维重建    
Acquisition of camera dynamic extrinsic parameters in free binocular stereo vision system
LI Xiao1,2, GE Baozhen1,2, LUO Qijun1,2,3, LI Yunpeng1,2, TIAN Qingguo1,2     
1. School of Precision Instrument and Opto-Electronics Engineering, Tianjin University, Tianjin 300072, China;
2. Key Laboratory of Opto-Electronics Information Technology of Ministry of Education, Tianjin 300072, China;
3. College of Electronic Information and Automation, Civil Aviation University of China, Tianjin 300300, China
Abstract: Aiming to solve the change of the extrinsic parameters between the two cameras in free binocular stereo vision system caused by the rotation of the cameras, a method for acquiring the dynamic extrinsic parameters based on calibration of rotation axis was proposed. Multiple rotation and translation matrixes were obtained by the calibration at different positions, then the parameters of rotation axis could be calculated by using least square method. Combined with the intrinsic and extrinsic parameters at initial position and rotation angle, the dynamic extrinsic parameters between the two cameras could be calculated in real time. The chessboard corners were reconstructed with the dynamic extrinsic parameters calculated by the proposed method, the result showed that the average error was 0.241 mm and the standard deviation was 0.156 mm. Compared with the calibration method based on multiple-plane calibration target, the proposed method is easier to implement and has higher precision, where dynamic extrinsic parameters can be acquired without real-time calibration.
Key words: machine vision    free binocular stereo vision    dynamic extrinsic parameter    calibration of rotation axis    3D reconstruction    
0 引言

传统双目立体视觉系统中, 双摄像机的相对位置固定不变[1-2], 受成像视场的限制, 单站点的测量区域较小, 对大场景的三维重建要通过扫描的方式来实现, 通常是直线扫描或旋转扫描。对于建筑物或近景测量的大型双目立体视觉系统, 由于成像距离较远, 为达到一定分辨率, 基线都较长, 难以实现系统的整体移动或转动。因此, 本文搭建了自由双目立体视觉系统, 其两个摄像机可独立自由旋转, 不同的旋转角度对应空间的不同位置, 通过多视场数据拼接, 可实现单站点的大场景三维重建。与传统双目立体视觉系统相比, 自由双目立体视觉系统的三维重建更为复杂, 由于左右摄像机的自由旋转, 左右摄像机之间的几何关系在不断变化, 即左右摄像机外参数在不断变化, 本文称之为动态外参数。因此, 解决自由双目立体视觉系统的关键问题之一, 就是能够实时获取每一个旋转位置的左右摄像机外参数。

动态外参数获取方法主要包括自标定方法和传统标定方法。自标定方法不依赖于标定靶, 利用场景中信息, 对每个旋转位置进行在线标定, 得到动态外参数, 主要包括三类:基于消失点的自标定方法[3-5]、基于图像匹配点的自标定方法[6]和基于极线约束的自标定方法[7]。传统标定方法借助精密的标定靶, 通过先验标定, 结合旋转信息实时获取动态外参数, 按照旋转轴的方位可分为两类。一类方法仅仅适用于旋转轴位于摄像机的特殊位置的情况, 例如旋转轴穿过摄像机光心[8-9], 旋转轴与坐标系平行[10], 但在实际应用中, 很难满足这种假设。另一类方法对旋转轴的方位没有限制。其中, 文献[11]利用均匀分布于被测空间的立体标定靶块来标定摄像机外参数, 该方法只能针对特殊系统结构进行; 文献[12]利用两个不同大小的标定靶和一个静止的大视场摄像机标定另一个摄像机和旋转轴之间的相对位置关系, 进而根据旋转角度得到摄像机旋转前后的相对位置关系; 文献[13]利用机器人手眼标定方法获取摄像机的旋转平移矩阵[14-15], 结合摄像机初始外参数, 计算得到旋转后摄像机的外参数。

针对旋转轴方位不受限制的自由双目立体视觉系统, 本文基于二维标定靶, 在多个位置标定得到多组旋转平移矩阵, 利用最小二乘法求解旋转轴参数的全局最优解, 结合摄像机初始外参数和旋转角度, 实时获取摄像机的动态外参数。该方法无需实时标定, 操作简单, 标定精度高。

1 自由双目立体视觉系统及动态外参数获取 1.1 自由双目立体视觉系统原理

图 1所示, 自由双目立体视觉系统由两个可独立自由旋转的摄像机构成。双目系统首先对区域Ω1的物体表面进行三维重建, 得到点云面片P1; 然后左右摄像机绕各自旋转轴NlNr旋转不同的角度, 对Ω1的邻近区域Ω2进行三维重建, 得到点云面片P2, 继续依次旋转左右摄像机, 在其视场可及范围内, 可以完成多个相邻区域Ω1, Ω2, …, Ωi的三维重建, 得到多片点云P1, P2, …, Pi, 通过对多片点云的拼接, 可完成整个区域的三维测量。因此, 在不移动双目立体视觉系统的情况下, 扩大了单站点的测量范围, 可以快速实现大区域的三维重建。

图 1 自由双目立体视觉系统原理 Figure 1 Schematic diagram of free binocular vision system

假定对应测量区域Ω1的位置为初始位置, P1为该区域内任意一点, 其坐标满足式(1):

$ {\mathit{\boldsymbol{P}}_{r1}} = {\mathit{\boldsymbol{R}}_1}{\mathit{\boldsymbol{P}}_{l1}} + {\mathit{\boldsymbol{T}}_1} $ (1)

其中:Pl1Pr1分别是P1点在左右摄像机坐标系ol1xl1yl1zl1or1xr1yr1zr1中的坐标; R1T1分别是坐标系ol1xl1yl1zl1or1xr1yr1zr1之间的旋转矩阵和平移向量, 即左右摄像机的外参数, 代表了左右摄像机的相对位置关系。

在已知旋转矩阵R1、平移向量T1以及P1点在左右像面上的投影点坐标(ul, vl)和(ur, vr)的情况下, 利用式(2) 可得P1点在坐标系ol1xl1yl1zl1下的三维坐标[16]

$ \left\{ {\begin{array}{*{20}{l}} \begin{array}{l} {x_l} = \frac{{{z_l}{u_l}}}{{{f_l}}}\\ {y_l} = \frac{{{z_l}{v_l}}}{{{f_l}}} \end{array}\\ {{z_l} = \frac{{{f_l}\left( {{f_r}{t_1} - {u_r}{t_3}} \right)}}{{{u_r}\left( {{r_{31}}{u_l} + {r_{32}}{v_l} + {f_l}{r_{33}}} \right) - {f_r}\left( {{r_{11}}{u_l} + {r_{12}}{v_l} + {f_l}{r_{13}}} \right)}}} \end{array}} \right. $ (2)

其中: flfr分别为左右摄像机的焦距; R1=(rmn)4×4, rmn为常数,m, n=1, 2, 3, 4;T1=(t1, t2, t3, 0)Tt1t2t3为常数。

对应测量区域Ωi的位置为第i次测量, 相对于初始位置, 左、右摄像机绕各自旋转轴分别旋转了αiβi, 左右摄像机坐标系分别变为olixliylizliorixriyrizri, 它们的相对位置关系发生了变化, 即外参数发生了变化。式(1) 可改写成:

$ {\mathit{\boldsymbol{P}}_{ri}} = {\mathit{\boldsymbol{G}}_{ri}}{\mathit{\boldsymbol{R}}_1}\mathit{\boldsymbol{G}}_{li}^{ - 1}{\mathit{\boldsymbol{P}}_{li}} + {\mathit{\boldsymbol{G}}_{ri}}{\mathit{\boldsymbol{T}}_1} $ (3)

其中:Pi为区域Ωi内任意一点;PliPri分别为Pi点在坐标系olixliylizliorixriyrizri中的坐标。Gli为坐标系ol1xl1yl1zl1olixliylizli的4×4坐标变换矩阵, Gri为坐标系or1xr1yr1zr1orixriyrizri的4×4坐标变换矩阵, 可分别由左右摄像机的旋转轴参数和旋转角度得到。

根据式(2)~(3), 可得Pi点在坐标系olixliylizli下的三维坐标。进而, 通过坐标变换可将P1点和Pi点的坐标统一到同一坐标系中, 实现点云拼接。

由式(3) 可知, 自由双目立体视觉系统中, 变化的外参数可在初始外参数的基础上, 由旋转轴的方向、位置及旋转角度确定。因此, 通过标定旋转轴在摄像机坐标系中的方位, 并由运动控制器读取旋转角度, 即可实时获取自由双目立体视觉系统摄像机的动态外参数。

1.2 动态外参数的获取方法

旋转轴在摄像机坐标系中的方位可用旋转轴的方向向量和轴上任意一点的坐标表示, 即旋转轴参数[17]。假设在左摄像机坐标系中, 旋转轴Nl的方向向量为Vl, 轴上任一点坐标为Al; 在右摄像机坐标系中, 旋转轴Nr的方向向量为Vr, 轴上任一点坐标为Ar。根据计算机图形学中的三维旋转变换原理[18]可得, 摄像机绕轴旋转前后, 空间任意一点P的坐标变换关系为:

$ {\mathit{\boldsymbol{P}}_{li}} = {\mathit{\boldsymbol{R}}_{li}}\left( {{\mathit{\boldsymbol{P}}_{l1}} - {\mathit{\boldsymbol{A}}_l}} \right) + {\mathit{\boldsymbol{A}}_l} $ (4)
$ {\mathit{\boldsymbol{P}}_{ri}} = {\mathit{\boldsymbol{R}}_{ri}}\left( {{\mathit{\boldsymbol{P}}_{r1}} - {\mathit{\boldsymbol{A}}_r}} \right) + {\mathit{\boldsymbol{A}}_r} $ (5)

其中:Rli为坐标系ol1xl1yl1zl1olixliylizli的旋转矩阵, 可由(Vl, αi)的罗德里格斯变换得到[19]401-403Rri为坐标系or1xr1yr1zr1orixriyrizri的旋转矩阵, 可由(Vr, βi)的罗德里格斯变换得到。

将式(4)~(5) 代入式(1) 可得左、右摄像机分别旋转αiβi角度后的外参数(Ri, Ti)为:

$ \left\{ \begin{array}{l} {\mathit{\boldsymbol{R}}_i} = {\mathit{\boldsymbol{R}}_{ri}}{\mathit{\boldsymbol{R}}_1}\mathit{\boldsymbol{R}}_{li}^T\\ {\mathit{\boldsymbol{T}}_i} = - {\mathit{\boldsymbol{R}}_{ri}}{\mathit{\boldsymbol{R}}_1}\mathit{\boldsymbol{R}}_{li}^T{\mathit{\boldsymbol{A}}_l} + {\mathit{\boldsymbol{R}}_{ri}}{\mathit{\boldsymbol{R}}_1}{\mathit{\boldsymbol{A}}_l} + {\mathit{\boldsymbol{R}}_{ri}}{\mathit{\boldsymbol{T}}_1} - {\mathit{\boldsymbol{R}}_{ri}}{\mathit{\boldsymbol{A}}_r} + {\mathit{\boldsymbol{A}}_r} \end{array} \right. $ (6)

因此, 第i次测量时的外参数(Ri, Ti)可根据式(6), 由初始外参数(R1, T1)、旋转轴参数(Vl, Al, Vr, Ar)及旋转角度(αi, βi)计算得到。

1.3 旋转轴参数的确定

旋转轴参数的确定是通过旋转轴的标定来实现的。常用的标定方法是将标定靶置于旋转平台上, 静止的摄像机拍摄不同位置的标定靶图像, 获取特征点的坐标, 通过拟合圆得到旋转轴上足够多的点, 再经过拟合直线得到旋转轴在摄像机坐标系中的方位[20-24]。考虑自由双目立体视觉系统的特点, 本文通过固定其中一个摄像机, 多次转动另一个摄像机, 每转一个位置对两个摄像机进行一次立体标定, 得到多组旋转矩阵和平移向量, 最后利用最小二乘法求解得到旋转轴参数。下面以左旋转轴为例说明旋转轴参数的确定方法。

图 1所示, 记初始左右摄像机坐标系ol1xl1yl1zl1or1xr1yr1zr1之间的旋转矩阵和平移向量分别为R1T1。当左摄像机转动一定角度后, 其坐标系变为ol2xl2yl2zl2, 记ol2xl2yl2zl2or1xr1yr1zr1之间的旋转矩阵和平移向量分别为R2T2

空间点P的坐标满足式(7)~(8):

$ {\mathit{\boldsymbol{P}}_{r1}} = {\mathit{\boldsymbol{R}}_1}{\mathit{\boldsymbol{P}}_{l1}} + {\mathit{\boldsymbol{T}}_1} $ (7)
$ {\mathit{\boldsymbol{P}}_{r1}} = {\mathit{\boldsymbol{R}}_2}{\mathit{\boldsymbol{P}}_{l2}} + {\mathit{\boldsymbol{T}}_2} $ (8)

其中:Pl1Pr1Pl2分别为点P在坐标系ol1xl1yl1zl1or1xr1yr1zr1ol2xl2yl2zl2中的坐标。

式(7)~(8) 消去Pr1可得:

$ {\mathit{\boldsymbol{P}}_{l2}} = \mathit{\boldsymbol{R}}_2^{\rm{T}}{\mathit{\boldsymbol{R}}_1}{\mathit{\boldsymbol{P}}_{l1}} + \mathit{\boldsymbol{R}}_2^{\rm{T}}\left( {{\mathit{\boldsymbol{T}}_1} - {\mathit{\boldsymbol{T}}_2}} \right) $ (9)

式(9) 是坐标系ol1xl1yl1zl1ol2xl2yl2zl2之间的坐标变换关系, 旋转矩阵和平移向量分别为R2TR1R2T(T1-T2)。以上旋转和平移是由左摄像机绕轴Nl旋转产生, 根据三维旋转变换原理, 坐标系ol1xl1yl1zl1ol2xl2yl2zl2之间的坐标变换关系又可以表示为式(10):

$ {\mathit{\boldsymbol{P}}_{l2}} = {\mathit{\boldsymbol{R}}_{l2}}\left( {{\mathit{\boldsymbol{P}}_{l1}} - {\mathit{\boldsymbol{A}}_l}} \right) + {\mathit{\boldsymbol{A}}_l} $ (10)

其中:Rl2为坐标系ol1xl1yl1zl1ol2xl2yl2zl2的旋转矩阵; Al为旋转轴Nl上任意一点在左摄像机坐标系中的坐标。

由于式(9) 和式(10) 对应系数应相等, 可得轴上点Al满足式(11):

$ \left( {{\mathit{\boldsymbol{R}}_2} - {\mathit{\boldsymbol{R}}_1}} \right){\mathit{\boldsymbol{A}}_l} = {\mathit{\boldsymbol{T}}_1} - {\mathit{\boldsymbol{T}}_2} $ (11)

式(11) 是未知数为Al, 系数矩阵为R2-R1, 常数项为T1-T2的线性方程组。由于系数矩阵R2-R1的秩为2, 利用最小二乘法进行求解, 得到点Al在左摄像机坐标系中满足的直线方程, 即旋转轴Nl。利用最小二乘法求解的过程如下:

$ {\rm{假设}}{\mathit{\boldsymbol{R}}_2} - {\mathit{\boldsymbol{R}}_1} = \left[ {\begin{array}{*{20}{l}} {{r_1}}&{{r_2}}&{{r_3}}\\ {{r_4}}&{{r_5}}&{{r_6}}\\ {{r_7}}&{{r_8}}&{{r_9}} \end{array}} \right],{\mathit{\boldsymbol{A}}_l} = \left[ \begin{array}{l} x\\ y\\ z \end{array} \right],{\mathit{\boldsymbol{T}}_1} - {\mathit{\boldsymbol{T}}_2} = \left[ \begin{array}{l} {t_x}\\ {t_y}\\ {t_z} \end{array} \right], $

r*t*均为已知常数;(xyz)为未知数。由于Al为直线上任意一点, 因此(x, y, z)满足$ \left\{ {\begin{array}{*{20}{c}} {x = ay + b}\\ {z = cy + d} \end{array}} \right. $, abcd为未知数, 则式(11) 变形为:

$ \left[ {\begin{array}{*{20}{l}} {{r_1}}&{{r_2}}&{{r_3}}\\ {{r_4}}&{{r_5}}&{{r_6}}\\ {{r_7}}&{{r_8}}&{{r_9}} \end{array}} \right]\left[ \begin{array}{l} ay + b\\ \;\;\;y\\ cy + d \end{array} \right] = \left[ \begin{array}{l} {t_x}\\ {t_y}\\ {t_z} \end{array} \right] $ (12)

由式(12) 可得:

$ \left[ {\begin{array}{*{20}{l}} {{r_1}}&{{r_2}}&{{r_3}}\\ {{r_4}}&{{r_5}}&{{r_6}}\\ {{r_7}}&{{r_8}}&{{r_9}} \end{array}} \right]\left[ \begin{array}{l} ay\\ y\\ cy \end{array} \right] = \left[ \begin{array}{l} 0\\ 0\\ 0 \end{array} \right] $ (13)
$ \left[ {\begin{array}{*{20}{l}} {{r_1}}&{{r_2}}&{{r_3}}\\ {{r_4}}&{{r_5}}&{{r_6}}\\ {{r_7}}&{{r_8}}&{{r_9}} \end{array}} \right]\left[ \begin{array}{l} b\\ 0\\ d \end{array} \right] = \left[ \begin{array}{l} {t_x}\\ {t_y}\\ {t_z} \end{array} \right] $ (14)

利用最小二乘法求解式(13)~(14) 可得abcd的值, 进而可得旋转轴的方向向量为(a, 1, c), 轴上一点坐标为(b, 0, d)。

通过将左摄像机转动多次, 可得多组旋转矩阵Ri(i=1, 2, …)和平移向量Ti(i=1, 2, …), 根据式(11) 可得:

$ \left[ \begin{array}{l} {\mathit{\boldsymbol{R}}_2} - {\mathit{\boldsymbol{R}}_1}\\ {\mathit{\boldsymbol{R}}_3} - {\mathit{\boldsymbol{R}}_2}\\ \;\;\;\; \vdots \\ {\mathit{\boldsymbol{R}}_i} - {\mathit{\boldsymbol{R}}_{i - 1}} \end{array} \right]{\mathit{\boldsymbol{A}}_l} = \left[ \begin{array}{l} {\mathit{\boldsymbol{T}}_1} - {\mathit{\boldsymbol{T}}_2}\\ {\mathit{\boldsymbol{T}}_2} - {\mathit{\boldsymbol{T}}_3}\\ \;\;\;\; \vdots \\ {\mathit{\boldsymbol{T}}_{i - 1}} - {\mathit{\boldsymbol{T}}_i} \end{array} \right] $ (15)

利用最小二乘法对式(15) 进行求解, 可得更加精确的点Al所在直线的方程, 进而可得左旋转轴Nl的旋转轴参数(Vl, Al)。同理, 左摄像机不动, 多次转动右摄像机, 利用式(15) 可得右旋转轴Nr的旋转轴参数(Vr, Ar)。

2 实验与分析 2.1 实验装置

自由双目立体视觉系统装置如图 2所示, 计算机利用运动控制软件和运动控制器控制旋转台转动, 并带动固定在旋转台上的摄像机旋转, 同时计算机控制图像采集卡同步采集图像。摄像机分辨率为1 920×1 080, 镜头焦距为8 mm, 系统基线长度约280 mm。

图 2 自由双目立体视觉系统装置图 Figure 2 Device diagram of free binocular stereo vision system

实验中所用棋盘标定靶如图 3所示, 标定靶长400 mm, 宽300 mm, 单个棋盘格尺寸为30 mm×30 mm, 选取标定靶中间部分6行9列共54个角点作为标志点, 如图 3中小圆圈标记所示。

图 3 实验中所用棋盘标定靶及选取的标志点 Figure 3 Chessboard target and selected feature points used in the experiment
2.2 旋转轴的标定

实验中, 首先利用张正友方法[25]对摄像机进行标定, 得到其内参数和畸变系数, 如表 1所示。旋转轴标定流程如图 4所示, 分别对初始位置和3次旋转后的位置进行立体标定[19]427-430, 得到4组旋转矩阵和平移向量, 由此计算旋转轴参数。

表 1 摄像机内参数和畸变系数标定结果 Table 1 Calibration results of intrinsic parameters and distortion coefficient of cameras
图 4 旋转轴标定的流程 Figure 4 Flow chart for calibration of rotation axis

对初始位置的左、右摄像机进行立体标定, 得到旋转矩阵R1和平移向量T1

$ {\mathit{\boldsymbol{R}}_1} = \left[{\begin{array}{*{20}{l}} {0.990\;763}&{0.014\;605}&{0.134\;819}\\ {-0.015\;114}&{0.999\;882}&{0.002\;758}\\ {-0.134\;763}&{-0.004\;771}&{0.990\;866} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_1} = \left[\begin{array}{l} -295.611\;817\\ \;\;2.487\;517\\ \;-2.129\;702 \end{array} \right] $

然后, 右摄像机保持不动, 将左摄像机依次向右转动三次, 每次转动3°, 三次分别对左、右摄像机进行立体标定, 得到旋转矩阵R2R3R4和平移向量T2T3T4

$ \begin{array}{l} {\mathit{\boldsymbol{R}}_2} = \left[{\begin{array}{*{20}{l}} {0.982\;585}&{0.014\;178}&{0.185\;271}\\ {-0.014\;853}&{0.999\;887}&{0.002\;255}\\ {-0.185\;218}&{-0.004\;967}&{0.982\;685} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_2} = \left[\begin{array}{l} -291.912\;751\\ \;\;2.639\;233\\ \;-2.768\;592 \end{array} \right] \end{array} $
$ \begin{array}{l} {\mathit{\boldsymbol{R}}_3} = \left[{\begin{array}{*{20}{l}} {0.971\;732}&{0.013\;717}&{0.235\;689}\\ {-0.014\;564}&{0.999\;892}&{0.001\;857}\\ {-0.235\;638}&{-0.005\;237}&{0.971\;827} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_3} = \left[\begin{array}{l} -288.579\;353\\ \;\;2.584\;603\\ \;-3.525\;592 \end{array} \right] \end{array} $
$ \begin{array}{l} {\mathit{\boldsymbol{R}}_4} = \left[{\begin{array}{*{20}{l}} {0.958393}&{0.013216}&{0.285147}\\ {-0.014206}&{0.999898}&{0.001404}\\ {-0.285100}&{-0.005396}&{0.958483} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_4} = \left[\begin{array}{l} -285.071954\\ \;\;2.55106\\ \;-4.766933 \end{array} \right] \end{array} $

R1T1R2T2R3T3R4T4代入式(15), 利用最小二乘法求解, 得到左旋转轴参数(Vl, A0l)。同理, 保持初始位置左摄像机不动, 依次转动右摄像机, 每次转动3°, 并对左、右摄像机进行立体标定, 得到4组旋转矩阵和平移向量, 将其代入式(15) 并利用最小二乘法求解, 得到右旋转轴参数(Vr, A0r)。

$ \begin{array}{l} {\mathit{\boldsymbol{V}}_l} = \left[\begin{array}{l} -0.005\;897\\ 0.999\;951\\ 0.007\;963 \end{array} \right]\;\;\;\;\;\;{\mathit{\boldsymbol{A}}_{0l}} = \left[\begin{array}{l} -2.352\\ \;\;\;\;\;0\\ -70.676 \end{array} \right]\\ {\mathit{\boldsymbol{V}}_r} = \left[\begin{array}{l} 0.007\;726\\ 0.999\;962\\ 0.004\;109 \end{array} \right]\;\;\;\;\;\;{\mathit{\boldsymbol{A}}_{0r}} = \left[\begin{array}{l} \;\;\;1.541\\ \;\;\;\;\;0\\ -65.712 \end{array} \right] \end{array} $
2.3 实验结果分析

为了验证本文所提动态外参数获取方法的有效性。对旋转后的左右摄像机进行立体标定得到外参数标定值, 由初始外参数、旋转轴参数和旋转角度得到外参数计算值, 分别利用这两组外参数, 计算棋盘角点的三维坐标, 比较两组三维坐标, 以平均误差和标准差评定结果, 实验流程如图 5所示。

图 5 实验流程 Figure 5 Flow chart for experimen

对初始位置的两个摄像机进行立体标定, 得到初始外参数(R1, T1)。

$ \begin{array}{l} {\mathit{\boldsymbol{R}}_1} = \left[{\begin{array}{*{20}{l}} {0.965\;671}&{0.006\;505}&{0.259\;688}\\ {-0.006\;962}&{0.999\;975}&{0.000\;839}\\ {-0.259\;676}&{-0.002\;618}&{0.965\;692} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_1} = \left[\begin{array}{l} -280.110\;725\\ \;\;\;\;1.916\;175\\ \;\;\;38.133\;797 \end{array} \right] \end{array} $

然后, 左摄像机旋转5.00°, 右摄像机旋转5.20°, 两个摄像机同时采集棋盘标定靶图像, 如图 6所示。

图 6 棋盘标定靶图像 Figure 6 Images of chessboard target

对旋转后的两个摄像机进行立体标定, 得到外参数标定值(R2, T2)。

$ \begin{array}{l} {\mathit{\boldsymbol{R}}_2} = \left[{\begin{array}{*{20}{l}} {0.966\;414}&{0.006\;668}&{0.256\;902}\\ {-0.007\;156}&{0.999\;974}&{0.000\;968}\\ {-0.256\;889}&{-0.002\;774}&{0.966\;437} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_2} = \left[\begin{array}{l} -282.813\;500\\ \;\;\;\;1.989\;929\\ \;\;\;11.288\;700 \end{array} \right] \end{array} $

由初始外参数、旋转轴参数和旋转角度,根据式(6) 计算得到旋转后的外参数计算值(R2c, T2c)。

$ \begin{array}{l} {\mathit{\boldsymbol{R}}_{2c}} = \left[{\begin{array}{*{20}{l}} {0.966571}&{0.006446}&{0.256316}\\ {-0.006920}&{0.999976}&{0.000947}\\ {-0.256304}&{-0.002689}&{0.966593} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_{2c}} = \left[\begin{array}{l} -282.277092\\ \;\;\;1.873924\\ \;\;10.349651 \end{array} \right] \end{array} $

分别利用(R2, T2)和(R2c, T2c), 计算图 6中棋盘标定靶角点的三维坐标(xw, yw, zw)和(xcw, ycw, zcw), 如表 2所示。以平均误差及其标准差作为评价指标[26], 其定义为:

$ \left\{ {\begin{array}{*{20}{l}} \begin{array}{l} {E_{{r_i}}} = \sqrt {{{\left( {{x_{w, i}} - {x_{cw, i}}} \right)}^2} + {{\left( {{y_{w, i}} - {y_{cw, i}}} \right)}^2} + {{\left( {{z_{w, i}} - {z_{cw, i}}} \right)}^2}} \\ {\overline E _r} = \frac{1}{n}\sum\limits_{i = 1}^n {{E_{{r_i}}}} \end{array}\\ {\sigma = \sqrt {\frac{{\sum\limits_{i = 1}^n {{{\left( {{E_{{r_i}}} - {{\overline E }_r}} \right)}^2}} }}{{n - 1}}} } \end{array}} \right. $ (16)
表 2 棋盘标定靶角点三维坐标(xw, yw, zw)和(xcw, ycw, zcw)的比较     mm Table 2 Comparison of three-dimensional coordinates of chessboard corners (xw, yw, zw) and (xcw, ycw, zcw)     mm

其中:(xw, i, yw, i, zw, i)是根据外参数标定值得到的三维坐标;(xcw, i, ycw, i, zcw, i)是根据外参数计算值得到的三维坐标;二者之间的距离即误差Eri, Er代表平均误差;σ代表误差标准差;n为角点个数。

表 2, 根据式(16) 计算可得, 棋盘标定靶角点的平均误差为0.241 mm, 标准差为0.156 mm。

为了进一步说明本文方法的标定精度, 将本文方法与文献[27]的标定方法进行对比。文献[27]提出了一种基于多平面靶标的旋转轴标定方法。摄像机多次旋转并采集标定靶图像, 通过立体标定获得每次旋转后的光心坐标, 拟合空间圆计算旋转轴参数。该方法利用多个标定靶增大摄像机旋转范围以提高标定精度。

在测量距离、摄像机焦距和基线长度等系统参数保持不变的情况下, 利用文献[27]中方法对旋转轴进行标定, 并采用与本文方法相同的评价指标对标定结果进行评价, 比较两种方法的标定精度。为了保证比较的客观性, 本文每次立体标定采集5组图像, 进行4次立体标定。因此, 在文献[27]的旋转轴标定实验中, 共采集20张图像, 利用20个圆心坐标拟合空间圆,进而可得旋转轴参数(Vl, A0l, Vr, A0r)。

$ \begin{array}{l} {\mathit{\boldsymbol{V}}_l} = \left[\begin{array}{l} 0.004\;582\\ 0.999\;987\\ 0.002\;060 \end{array} \right]\;\;\;\;\;\;{\mathit{\boldsymbol{A}}_{0l}} = \left[\begin{array}{l} \;\;2.731\\ \;\;3.830\\ -70.112 \end{array} \right]\\ {\mathit{\boldsymbol{V}}_r} = \left[\begin{array}{l} -0.076\;959\\ 0.995\;365\\ -0.057\;678 \end{array} \right]\;\;\;\;\;\;{\mathit{\boldsymbol{A}}_{0r}} = \left[\begin{array}{l} \;\;6.243\\ \;14.848\\ -67.685 \end{array} \right] \end{array} $

结合初始外参数和旋转角度, 根据式(6) 计算得到旋转后的外参数(R2f, T2f)。

$ \begin{array}{l} {\mathit{\boldsymbol{R}}_{2f}} = \left[{\begin{array}{*{20}{l}} {0.966\;482}&{0.001\;082}&{0.256\;731}\\ {0.000\;276}&{0.999\;986}&{-0.005\;252}\\ {-0.256\;733}&{0.005\;147}&{0.966\;469} \end{array}} \right]\\ {\mathit{\boldsymbol{T}}_{2f}} = \left[\begin{array}{l} -282.386\;114\\ \;-0.283\;012\\ \;\;10.694\;633 \end{array} \right] \end{array} $

利用外参数(R2f, T2f), 计算图 6中棋盘标定靶角点的三维坐标(xfw, yfw, zfw), 如表 3所示。

表 3 棋盘标定靶角点三维坐标(xw, yw, zw)和(xfw, yfw, zfw)的比较     mm Table 3 Comparison of the three-dimensional coordinates of chessboard corners (xw, yw, zw) and (xfw, yfw, zfw)     mm

根据式(16) 计算可得, 基于文献[27]方法得到的棋盘标定靶角点的平均误差为0.721 mm, 标准差为0.560 mm。而本文方法得到的棋盘标定靶角点的平均误差为0.241 mm, 标准差为0.156 mm,因此本文方法的标定精度较高。

3 结语

在自由双目立体视觉系统中, 摄像机的独立旋转提高了系统的灵活性, 可以实现大范围的测量, 同时也导致左右摄像机外参数不断变化, 需要解决实时获取问题。本文针对自由双目立体视觉系统, 提出了一种基于旋转轴标定的动态外参数获取方法, 无需实时标定, 即可得到摄像机旋转情况下的外参数。基于本文方法对自由双目立体视觉系统进行标定, 并利用棋盘标定靶的角点对标定结果进行验证, 实验结果表明, 棋盘标定靶角点的平均误差为0.241 mm, 标准差为0.156 mm; 与文献[27]中标定方法相比, 本文方法可靠有效, 精度高且操作简便, 可以应用到大场景的实时三维重建中。

参考文献(References)
[1] JENKIN M R M, JEPSON A D. The measurement of binocular disparity[M]//CANTONI V, GESÙ V D, LEVIALDI S. Image Analysis and Processing Ⅱ. Berlin: Springer, 1988: 237-244.
[2] 张旭苹, 汪家其, 张益昕, 等. 大尺度三维几何尺寸立体视觉测量系统实现[J]. 光学学报, 2012, 32(3): 0315002. (ZHANG X P, WANG J Q, ZHANG Y X, et al. Large-scale three-dimensional stereo vision geometric measurement system[J]. Acta Optical Sinica, 2012, 32(3): 0315002.)
[3] 马琳, 郑南宁, 李青, 等. 自主车辆视觉系统的摄像机动态自标定算法[J]. 西安交通大学学报, 2005, 39(10): 1072-1076. (MA L, ZHENG N N, LI Q, et al. Dynamic approach of camera auto-calibration for vision system on autonomous vehicle[J]. Journal of Xi'an Jiaotong University, 2005, 39(10): 1072-1076. DOI:10.3321/j.issn:0253-987X.2005.10.009)
[4] WANG L L, TSAI W H. Camera calibration by vanishing lines for 3-D computer vision[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1991: 370-376.
[5] LIU Y, WU Y, WU M, et al. Planar vanishing points based camera calibration[C]//ICIG 2004: Proceedings of the Third International Conference on Image and Graphics. Piscataway, NJ: IEEE, 2004: 460-463.
[6] 王涛, 谢少荣, 潘智昊, 等. 基于双目立体视觉的摄像机外参数快速在线自标定算法[J]. 机械工程师, 2009(1): 104-106. (WANG T, XIE S R, PAN Z H, et al. A quick and on-line self-calibration algorithm for external camera parameters based on binocular vision[J]. Mechanical Engineer, 2009(1): 104-106.)
[7] DANG T, HOFFMANN C, STILLER C. Self-calibration for active automotive stereo vision[C]//Proceedings of the 2006 IEEE Intelligent Vehicles Symposium. Piscataway, NJ: IEEE, 2006: 364-369.
[8] 尚倩, 阮秋琦, 李小利. 双目立体视觉的目标识别与定位[J]. 智能系统学报, 2011, 6(4): 303-311. (SHANG Q, RUAN Q Q, LI X L. Target recognition and location based on binocular stereo vision[J]. CAAI Transactions on Intelligent Systems, 2011, 6(4): 303-311.)
[9] 曾慧, 高伟, 胡占义. 四自由度双目视觉系统中的摄像机标定方法: CN103854291A [P]. 2014-06-11. (ZENG H, GAO W, HU Z Y. The calibration of camera in four-freedom binocular vision system: CN103854291A [P]. 2014-06-11.)
[10] 祝琨, 杨唐文, 阮秋琦, 等. 基于双目视觉的运动物体实时跟踪与测距[J]. 机器人, 2009, 31(4): 327-334. (ZHU K, YANG T W, RUAN Q Q, et al. Real-time tracking and measuring of moving objects based on binocular vision[J]. Robot, 2009, 31(4): 327-334.)
[11] 孔令富, 景荣, 赵立强. 圆轨双链主动视觉机构标定系统的设计[J]. 计算机工程与设计, 2010, 31(8): 1882-1885. (KONG L F, JING R, ZHAO L Q. Design of calibration system of double-stranded active vision on circular orbit[J]. Computer Engineering and Design, 2010, 31(8): 1882-1885.)
[12] NIU Z, LIU K, WANG Y, et al. Calibration method for the relative orientation between the rotation axis and a camera using constrained global optimization[J]. Measurement Science and Technology, 2017, 28(5): 055001. DOI:10.1088/1361-6501/aa5fd4
[13] LI X, JIN J, LI W. Stereovision measurement technology with rotation CCD camera of multi-object[J]. Proceedings of the SPIE, 2011, 8205(4): 14.
[14] TSAI R Y, LENZ R K. A new technique for fully autonomous and efficient 3D robotics hand/eye calibration[J]. IEEE Transactions on Robotics & Automation, 1989, 5(3): 345-358.
[15] DANIILIDIS K. Hand-eye calibration using dual quaternions[J]. International Journal of Robotics Research, 1998, 18(3): 286-298.
[16] 赖小波. 机器人双目立体视觉若干关键理论问题及其技术实现研究[D]. 杭州: 浙江大学, 2010. (LAI X B. Research on some key theoretical issues for robotic binocular stereo vision and its techniques implementation[D]. Hangzhou: Zhejiang University, 2010.)
[17] 王鹏, 孙长库. 双目视觉转轴标定方法: CN101216296 [P]. 2008-07-09. (WANG P, SUN C K. Calibration of rotation axis based on binocular vision: CN101216296 [P]. 2008-07-09.)
[18] 和青芳. 计算机图形学原理及算法教程[M]. 北京: 清华大学出版社, 2010: 94-96. (HE Q F. Principles of computer graphics and algorithms[M]. Beijing: Tsinghua University Press, 2010: 94-96.)
[19] BRADSKI G, KAEBLER A. Learning OpenCV[M]. Sebastopol: O'Reilly Media, 2008: 401, 427-403, 430.
[20] PARK S-Y, SUBBARAO M. A multiview 3D modeling system based on stereo vision techniques[J]. Machine Vision and Application, 2005, 16(3): 148-156. DOI:10.1007/s00138-004-0165-2
[21] SADLO F, WEYRICH T, PEIKERT R, et al. A practical structured light acquisition system for point-based geometry and texture[C]//SPBG 2005: Proceedings of the Second Eurographics, IEEE VGTC Conference on Point-Based Graphics. Piscataway, NJ: IEEE, 2005: 1-10.
[22] 李怀泽, 沈会良, 程岳. 基于旋转多视角深度配准的三维重建方法[J]. 计算机应用, 2012, 32(12): 3365-3368. (LI H Z, SHEN H L, CHENG Y. 3D reconstruction method based on turntable multiple-view registration[J]. Journal of Computer Applications, 2012, 32(12): 3365-3368.)
[23] 徐永安, 杨钦, 怀进鹏. 激光旋转扫描测量系统中转轴标定及多视拼合[J]. 中国激光, 2005, 32(5): 659-662. (XU Y A, YANG Q, HUAI J P. Calibration of the axis of the turntable in 4-axis laser measuring system and registration of multi-view[J]. Chinese Journal of Lasers, 2005, 32(5): 659-662.)
[24] 胡民政, 习俊通. 面向结构光三维测量的两轴转台标定[J]. 上海交通大学学报, 2010, 44(4): 506-511. (HU M Z, XI J T. Two-axis turntable calibration in three-dimensional structured light measurement system[J]. Journal of Shanghai Jiaotong University, 2010, 44(4): 506-511.)
[25] ZHANG Z Y. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. DOI:10.1109/34.888718
[26] 郭涛, 达飞鹏, 方旭. 小视场环境下的摄像机标定[J]. 中国激光, 2012, 39(8): 0808001. (GUO T, DA F P, FANG X. Camera calibration under small field of view[J]. Chinese Journal of Lasers, 2012, 39(8): 0808001.)
[27] 郑圣子, 李湘旭, 孙志超. 新型移动机器人激光测距雷达的研究[J]. 计算机测量与控制, 2011, 19(5): 1094-1097. (ZHENG S Z, LI X X, SUN Z C. Novel design of low cost moblie robot laser scanner[J]. Computer Measurement & Control, 2011, 19(5): 1094-1097.)