2.845

2023影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

EPnL: 一种高效且精确的PnL问题求解算法

王平 何卫隆 张爱华 姚鹏鹏 徐贵力

王平, 何卫隆, 张爱华, 姚鹏鹏, 徐贵力. EPnL: 一种高效且精确的PnL问题求解算法. 自动化学报, 2022, 48(10): 2600−2610 doi: 10.16383/j.aas.c200927
引用本文: 王平, 何卫隆, 张爱华, 姚鹏鹏, 徐贵力. EPnL: 一种高效且精确的PnL问题求解算法. 自动化学报, 2022, 48(10): 2600−2610 doi: 10.16383/j.aas.c200927
Wang Ping, He Wei-Long, Zhang Ai-Hua, Yao Peng-Peng, Xu Gui-Li. EPnL: An efficient and accurate algorithm to the PnL problem. Acta Automatica Sinica, 2022, 48(10): 2600−2610 doi: 10.16383/j.aas.c200927
Citation: Wang Ping, He Wei-Long, Zhang Ai-Hua, Yao Peng-Peng, Xu Gui-Li. EPnL: An efficient and accurate algorithm to the PnL problem. Acta Automatica Sinica, 2022, 48(10): 2600−2610 doi: 10.16383/j.aas.c200927

EPnL: 一种高效且精确的PnL问题求解算法

doi: 10.16383/j.aas.c200927
基金项目: 国家自然科学基金(62001198, 62073161, 61866021), 流程工业综合自动化国家重点实验室开放基金 (PAL-N201808), 甘肃省国际合作科技计划(18YF1WA068), 甘肃省青年科技基金(20JR10RA-186)资助
详细信息
    作者简介:

    王平:兰州理工大学电气工程与信息工程学院讲师. 2019年获南京航空航天大学博士学位. 主要研究方向为计算机视觉, 机器学习和信号处理. 本文通信作者. E-mail: pingwangsky@163.com

    何卫隆:兰州理工大学电气工程与信息工程学院硕士研究生. 主要研究方向为机器视觉和视觉测量. E-mail: heweilongd@163.com

    张爱华:兰州理工大学电气工程与信息工程学院教授. 2005年获西安交通大学博士学位. 主要研究方向为检测技术和模式识别与智能系统. E-mail: zhangaihua@lut.edu.cn

    姚鹏鹏:中国香港理工大学纺织与制衣学系博士研究生. 主要研究方向为多光谱颜色测量, 相机矫正和图像检索. E-mail: p.p.yao@connect.polyu.hk

    徐贵力:南京航空航天大学自动化学院教授. 2002年获江苏大学博士学位. 主要研究方向为光电检测, 计算机视觉和智能系统. E-mail: guilixu2002@163.com

EPnL: An Efficient and Accurate Algorithm to the PnL Problem

Funds: Supported by National Natural Science Foundation of China (62001198, 62073161, 61866021), State Key Laboratory of Synthetical Automation for Process Industries (PAL-N201808), International Cooperation Science and Technology Program of Gansu Province (18YF1WA068), and Gansu Province Science Foundation for Youths (20JR10RA186)
More Information
    Author Bio:

    WANG Ping Lecturer at the College of Electrical and Information Engineering, Lanzhou University of Technology. He received his Ph.D. degree from Nanjing University of Aeronautics and Astronautics in 2019. His research interest covers computer vision, machine learning and signal processing. Corresponding author of this paper

    HE Wei-Long Master student at the College of Electrical and Information Engineering, Lanzhou University of Technology. His research interest covers machine vision and vision measurement

    ZHANG Ai-Hua Professor at the College of Electrical and Information Engineering, Lanzhou University of Technology. She received her Ph.D. degree from Xi'an Jiaotong University in 2005. Her research interest covers detection technology, pattern recognition and intelligent system

    YAO Peng-Peng Ph.D. candidate at the Institute of Textile and Clothing, Hong Kong Polytechnic University, China. His research interest covers multi-spectral color measurement, camera calibration and image retrieval

    XU Gui-Li Professor at the College of Automation Engineering, Nanjing University of Aeronautics and Astronautics. He received his Ph.D. degree from Jiangsu University in 2002. His research interest covers photoelectric detection, computer vision and intelligent system

  • 摘要: 现有Perspective-n-line (PnL)问题求解算法无法在获得高求解精度的同时保证高求解效率. 为解决这个缺点, 提出了同时兼具求解效率和求解精度算法EPnL. 该方法首先将PnL问题转换为求二次曲面方程组交点的问题, 然后利用单位四元数中变量不同时为零的特性, 分类参数化PnL问题中的旋转矩阵. 最后, 为克服常规优化方法可靠性和效率较低的问题, 同时兼具求解效率和求解精度算法利用二次曲面方程组自身的结构信息, 采用低次项参数化高次项的方式将二次曲面方程组的求解问题转换为单变量多项式的求解问题. 实验表明, 相比于现有算法, 该算法在具有高求解精度的同时也兼具有高求解效率.
  • 基于直线特征的摄像机绝对位姿估计问题在计算机视觉领域称之为Perspective-n-line (PnL)问题, 目的是通过目标物体上的n条已知直线和其所对应的图像投影来计算相机和目标之间的相对位置和姿态关系. PnL问题是视觉导航[1-2]、机器人视觉定位[3]、传感器标定[4]、现实增强[5] 等领域中的关键核心问题之一. 到目前为止, 现有解决PnL问题的方法可以粗略分为迭代法和非迭代法:

    迭代法将PnL求解问题转换为非线性最优化问题, 并利用Gauss-Newton法或Levenberg-Mar-quardt法[6]迭代求解这个非线性最优化问题. 然而, 迭代法对初值的选取比较敏感, 初值选择不合理将导致迭代法收敛速度较慢, 影响算法的实时性. 除此之外, 当使用特征直线较少的时候, 迭代法容易陷入局部最优, 影响PnL问题求解的精度和可靠性.

    在非迭代法中, 最直接的当属直接线性变换(Direct linear transformation, DLT)方法[7]. DLT方法简单高效, 但抗噪能力不强, 在空间参考直线较少的情况下求解精度不高. Přibyl等[8]通过将直线在欧氏空间的坐标表示转换到普吕克(Plücker)空间, 提出了解决PnL问题的DLT-Plücker-lines方法. 相比于DLT算法, DLT-Plücker-lines算法具有更好的抗噪能力和求解精度, 但其求解时需要至少9条以上的空间参考直线. 随后, Xu等[9]通过借鉴Perspective-n-point (PnP)算法原理, 提出了一系列线性求解PnL的方法, 但这些方法仍需要6条以上的空间参考直线才可以求解. 最近, Přibyl等[10]基于DLT的方法, 提出了DLT-combined-lines的方法, 该方法将线性求解PnL问题的直线数目缩减到了5条. DLT-combined-lines方法求解效率高, 在直线数目较多的时候, 具有很高的求解精度, 但是在直线数目较少的情况下, 求解精度较差.

    虽然直接线性求解PnL的方法具有简单、效率高的特点. 但是由于其抗噪能力差、不适合参考直线较少的情况(尤其不适合参考直线少于6条以下的情况). 为了克服这些问题, Ansar等[11]将PnL问题转换为非迭代优化 开发了一种通用的PnL求解算法, 该算法能够处理从4到n条所有的空间参考直线. 然而, 文献[11]算法在空间直线较少的时候求解精度不高, 这主要是因为其最优化求解过程中采用了线性化的策略. 为了提高PnL算法的求解精度, Mirzaei等[12]提出了一种直接求解PnL问题全局最优解的方法, 通过Cayley参数的方式参数化旋转矩阵, 然后通过矩阵分解和合成的方式, 将PnL位姿测量问题转换为最优化问题, 最后通过矩阵合成技术求解这个最优化问题, 得到PnL问题的解. 然而, 文献[12]的方法由于使用了Cayley参数表示旋转矩阵, 求解过程中容易出现矩阵奇异值, 导致求解稳定性不好. 为了克服这个问题, Zhang等[13]提出了RPnL方法求解PnL问题, 该方法将空间参考直线三条线为一组, 然后利用Perspective-3-line (P3L)约束构建多项式方程组来求解PnL问题. 然而, RPnL是一种次优化的方法, 其求解精度还有提升的空间. 2017年, Xu等[9]改进了RPnL方法, 提出了ASPnL算法. 到目前为止, ASPnL是求解精度最高, 最稳定的PnL算法之一. 然而, ASPnL随着直线数量的增加, 其求解消耗时间将快速增长, 不利于其应用在实时性较高的任务中. 2019年, Wang等[14]对RPnL算法增加优化步骤, 并且使用矩阵化的方式替代RPnL算法中的循环步骤, 提出了改进的SRPnL算法, 该算法求解精度和可靠性类似于ASPnL算法, 但效率远高于ASPnL算法.

    从以上文献分析可以看出, 线性求解PnL问题的方法效率高, 但精度低, 通常无法适用于直线数量小于6的情况. 非线性求解PnL的方法适应性较广(适应4 ~ n条直线求解), 求解精度高, 但是求解过程复杂, 效率低下. 针对以上问题, 本文提出了一种同时兼具求解效率和求解精度的方法(命名为EPnL方法). 本文的主要贡献有:

    1)提出了分类表示旋转的方法: 最近的PnL问题求解中多使用Cayley参数[13-15]和四元数表示[16]旋转, 然而利用Cayley参数求解PnL问题容易出现奇异值, 导致求解结果不稳定. 利用四元数表示旋转则存在解的符号模糊问题, 会增加PnL问题求解的复杂性, 降低求解效率. 针对以上缺点, 本文基于四元数参数中变量不同时为零的特性, 提出了分类表示旋转的方法, 在保证不损失旋转正交约束信息的前提下, 避免了Cayley参数求解奇异性和四元数参数对解符号模糊的问题, 提升了求解PnL问题的可靠性和效率.

    2)将PnL问题转换为了二次曲面(曲线)方程组求交点的问题: 本文首先通过矩阵变化的方式统一求解参数的度量空间, 消除求解参数度量空间不同可能引起的算法不稳定因素. 然后, 不同于现有文献[12-14]直接最优化求解PnL问题的方式, 本文基于1)中分类表示旋转的方法, 将PnL问题转换为二次曲面(或曲线)求交点的问题来解决, 有效地降低了PnL问题求解的复杂度.

    3)利用方程组低次项参数化高次项的方式将复杂二次曲面(曲线)方程组求交点问题转换为单变量多项式求解问题: 针对迭代法求解耗时且容易陷入局部最优, 而Gröbner基方法[17]求解复杂, 无法保障可靠性的问题. 本文利用二次曲面方程组自身的结构信息, 将方程组划分为高次项和低次项部分, 并通过引入恒等式的方式将高次项用低次项表示, 最终将复杂的多变量二次曲面求解问题转换为简单的单变量多项式(最高为8次)求解问题来解决. 同时, 本文利用少量Gauss-Newton法对结果进行精定位, 以进一步提升最终的求解精度.

    4)本文提出的算法实现了求解精度和效率的统一. 实验部分选择和主流及最新的PnL算法对比, 结果表明, EPnL适用于3 ~ n条直线的位姿求解, 具有通用性. 在所有对比算法中, EPnL算法求解精度最高, 效率仅次于线性DLT的方法(排名第2). 本文中所有方法的源代码已公布1, 读者可以下载验证.

    基于相机的透视成像模型, PnL问题如图1表示, 其中${L_i} = ({{{v}}_i},{P_i})$表示3D空间中的某条已知直线, ${{{v}}_i} \in {{\bf{R}}^3}$${L_i}$的方向向量, ${P_i} \in {{\bf{R}}^3}$${L_i}$上的任意一点. ${l_i} = ({s_i},{p_i})$${L_i}$在图像平面上的投影直线, ${s_i}$${p_i}$分别为${l_i}$的两个端点. 直线${L_i}$, ${l_i}$和相机光心$O$共同形成平面${\pi _i}$, 且${{{n}}_i}$为平面${\pi _i}$的法向量. 当相机内参数标定的情况下, ${{{n}}_i}$很容易由光心和投影直线两个端点所形成向量的外积得到, 即:

    图 1  PnL问题
    Fig. 1  PnL problem
    $$\begin{array}{*{20}{c}} {{{{n}}_i} = O{s_i} \times O{p_i},}&{i = 1,2,\cdots,n} \end{array}$$ (1)

    由于直线${L_i}$在平面${\pi _i}$内, 因此其和平面法向量${{{n}}_i}$满足垂直的关系, 即:

    $$\begin{array}{*{20}{c}} {{{{ n}}_i} = \left( {{{R}}{P_i} + {{t}}} \right) \times \left( {{{R}}{{{v}}_i}} \right),}&{i = 1,2,\cdots,n} \end{array}$$ (2)

    式中, ${{R}} \in SO(3)$为3 × 3矩阵, 表示相机坐标系和空间直线所在坐标系(世界坐标系)之间的旋转关系; ${{t}} \in {{\bf{R}}^3}$为3 × 1向量, 表示相机坐标系和世界坐标系之间的平移关系. 式(2)可进一步展开为:

    $$\begin{array}{*{20}{c}} {{{n}}_i^{\rm{T}} {{ R{ v}}_i} = 0,}&{i = 1,2,\cdots,n} \end{array}$$ (3)
    $$\begin{array}{*{20}{c}} {{{n}}_i^{\rm{T}} \left( {{{R}}{P_i} + {{t}}} \right) = 0,}&{i = 1,2,\cdots,n} \end{array}$$ (4)

    PnL问题的目标就是在空中直线${L_i}$和其投影${l_i}$已知的情况下, 利用式(3)和式(4)计算${{R}}$${{t}}$.

    PnL问题中旋转矩阵${{R}}$和平移向量${{t}}$的度量空间是不同的, 这在优化求解过程中容易导致系数矩阵中元素数值的差异过大, 最终影响PnL问题的求解精度. 由式(4)可以看出, 平移${{t}}$和旋转${{R}}$之间呈现线性关系. 因此, 本文采用矩阵变化的方式, 基于空间所有的直线信息, 利用旋转${{R}}$参数化平移${{t}}$, 进而统一PnL问题中待求解参数变量的度量空间, 以最终提升求解PnL问题的可靠性和精度. 式(3)进一步可以表示为:

    $$\begin{array}{*{20}{c}} {{{n}}_i^{\rm{T}} {{{R}{ v}}_i} - 0 \cdot {{t}} = 0,}&{i = 1,2,\cdots,n} \end{array}$$ (5)

    综合式(4)和式(5), 将其写为矩阵形式:

    $$\begin{array}{l} \underbrace {\left[ {\begin{array}{*{20}{c}} {{{n}}_i^{\rm{T}} }&0 \\ 0&{{{n}}_i^{\rm{T}} } \end{array}} \right]}_{{{{A}}_i}}\underbrace {\left[ {\begin{array}{*{20}{c}} {{R}}&0 \\ 0&{{R}} \end{array}} \right]}_{{C}}\underbrace {\left[ {\begin{array}{*{20}{c}} {{{{v}}_i}} \\ {{P_i}} \end{array}} \right]}_{{{{D}}_i}} = \underbrace {\left[ {\begin{array}{*{20}{c}} 0 \\ { - {{n}}_i^{\rm{T}}} \end{array}} \right]}_{{{{B}}_i}}{{t}} \\ \begin{array}{*{20}{c}} { \Leftrightarrow {{{A}}_i}{{{CD}}_i} = {{{B}}_i}{{t}},}&{i = 1,2,\cdots,n} \end{array} \end{array} $$ (6)

    式(6)对空间中的每一条参考直线都满足, 因此有:

    $$ \begin{array}{l} \underbrace {\left[ {\begin{array}{*{20}{c}} {{{{A}}_1}}&{}&{} \\ {}& \ddots &{} \\ {}&{}&{{{{A}}_n}} \end{array}} \right]}_A\underbrace {\left[ {\begin{array}{*{20}{c}} {{C}}&{}&{} \\ {}& \ddots &{} \\ {}&{}&{{C}} \end{array}} \right]}_{{W}}\underbrace {\left[ {\begin{array}{*{20}{c}} {{{{D}}_1}} \\ \vdots \\ {{{{D}}_n}} \end{array}} \right]}_{{D}} = \underbrace {\left[ {\begin{array}{*{20}{c}} {{{{B}}_1}} \\ \vdots \\ {{{{B}}_n}} \end{array}} \right]}_{{B}}{{t}} \\ \Leftrightarrow {{AWD}} = {{Bt}} \end{array} $$ (7)

    基于式(7), ${{t}}$可以表示为:

    $${{t}} = {{{B}}^ + }{{AWD}}$$ (8)

    式中, ${{{B}}^ + } = {\left( {{{{B}}^{\rm{T}}}{{B}}} \right)^{ - 1}}{{{B}}^{\rm{T}}}$${{B}}$的广义逆. 由式(8)中可以看出, ${{{B}}^ + }$, ${{A}}$${{D}}$中包含空间所有直线提供的已知信息, ${{W}}$由旋转${{R}}$构成. 因此基于式(8), 平移向量${{t}}$可以表示为旋转${{R}}$的参数化形式. 进一步将式(8)代入式(6)得到:

    $$\begin{array}{*{20}{c}} {{{{A}}_i}{{{CD}}_i} = {{{B}}_i}{{{B}}^ + }{{AWD}},}&{i = 1,2,\cdots,n} \end{array}$$ (9)

    式(9)依旧对空间的$n$条直线都满足, 将式(9)变为矩阵形式得到:

    $$\left[ {\begin{array}{*{20}{c}} {{{{A}}_1}{{{CD}}_1} - {{{B}}_1}{{{B}}^ + }{{AWD}}} \\ {{{{A}}_2}{{{CD}}_2} - {{{B}}_2}{{{B}}^ + }{{AWD}}} \\ \vdots \\ {{{{A}}_n}{{{CD}}_n} - {{{B}}_n}{{{B}}^ + }{{AWD}}} \end{array}} \right] = 0$$ (10)

    由式(10)可以看出, ${{A}}$${{D}}$${{{B}}^ + }$${{{A}}_i}$${{{D}}_i}$${{{B}}_i}\;(i = 1,2,\cdots,n)$均可以由已知的${{{n}}_i}$${{{v}}_i}$${P_i}$提前计算得到. 式(10)中的未知数仅由${{C}}$${{W}}$提供, 而${{C}}$${{W}}$由旋转未知变量${{R}}$构成. 此时, 如果能够利用式(10)求解得到旋转变量${{R}}$, 则平移向量${{t}}$可以由式(8)给出, 即PnL问题得到求解. ${{R}}$${{t}}$的具体求解方法, 本文将在第4节重点展开研究.

    由式(10)可以看出, ${{R}}$的表示形式直接影响着式(10)的复杂程度和求解系数矩阵的奇异性, 进而间接影响优化求解PnL算法的精度、可靠性和效率. ${{R}}$的表示形式通常包括: 欧拉角表示形式、旋转矩阵表示形式、Cayley参数表示形式、四元数表示形式、对偶四元数表示形式、角轴参数表示形式. 其中四元数表示含有正交约束信息, 且其形式不具有奇异性, 因此利用四元数解决PnL问题具有精度和可靠性高的特点. 四元数表示${{R}}$的形式如下:

    $${{ R}} = \left[ {\begin{array}{*{20}{c}} {{a^2} + {b^2} - {c^2} - {d^2},2bc - 2ad,2bd + 2ac} \\ {2bc + 2ad,{a^2} - {b^2} + {c^2} - {d^2},2cd - 2ab} \\ {2bd - 2ac,2cd + 2ab,{a^2} - {b^2} - {c^2} + {d^2}} \end{array}} \right]$$ (11)

    式中, $a$$b$$c$$d$为变量且满足约束条件${a^2} + {b^2} + {c^2} + {d^2} = 1$. 由式(11)可以看出, 利用四元数求解旋转时, ${[a,b,c,d]^{\rm{T}}}$${[ - a, - b, - c, - d]^{\rm{T}}}$表示相同的旋转, 这说明四元数对变量的正、负号无法分辨, 这无疑将扩大求解PnL问题时解的搜索空间, 增加求解问题时的复杂性, 降低求解问题的效率.

    由四元数约束${a^2} + {b^2} + {c^2} + {d^2} = 1$可以看出, 四元数在表示旋转时, 参数$a$$b$$c$$d$是不同时为0的. 基于这个特点, 根据$a$$b$$c$$d$的取值, 本文提出基于四元数的旋转${{R}}$分类表示方法:

    1)形式1. 当$a$$b$$c$$d$都不为0, 任选一个变量(如$a$), 在${{R}}$右端提取出${1 / {{a^2}}}$且令${s_1} = {b / a}$, ${s_2} = {c / d}$${s_3} = {d / a}$, 则${{R}}$变为:

    $${{R}} = \frac{1}{H} \left[ {\begin{array}{*{20}{c}} {1 + s_1^2 - s_2^2 - s_3^2,2{s_1}{s_2} - 2{s_3},2{s_1}{s_3} + 2{s_2}} \\ {2{s_1}{s_2} + 2{s_3},1 - s_1^2 + s_2^2 - s_3^2,2{s_2}{s_3} - 2{s_1}} \\ {2{s_1}{s_3} - 2{s_2},2{s_2}{s_3} + 2{s_1},1 - s_1^2 - s_2^2 + s_3^2} \end{array}} \right]$$ (12)

    式中, $H = 1 + s_1^2 + s_2^2 + s_3^2$. 式(12)本质上就是旋转的Cayley参数表示形式, 可以看出, 当变量$a$的值为零的时候, Cayley参数表示矩阵没有意义, 这将导致位姿求解出现奇异性.

    2)形式2. 当$a$$b$$c$$d$中有一个变量为0, 例如$a = 0$, $b \ne 0$, $c \ne 0$$d \ne 0$. 则任选一个不为0的变量, 例如用$b$来化简${{R}}$, 则可得:

    $${{R}} = \frac{1}{H}\left[ {\begin{array}{*{20}{c}} {1{\rm{ - s}}_2^2 - s_3^2}&{2{s_2}}&{2{s_3}} \\ {2{s_2}}&{ - 1 + s_2^2 - s_3^2}&{2{s_2}{s_3}} \\ {2{s_3}}&{2{s_2}{s_3}}&{ - 1 - s_2^2 + s_3^2} \end{array}} \right]$$ (13)

    式中, ${s_2} = {c / b}$, ${s_3} = {d / b}$, 且$H = 1 + s_2^2 + s_3^2$.

    3)形式3. 当$a$$b$$c$$d$中有两个变量为0, 例如$a = 0$, $b = 0$, $c \ne 0$$d \ne 0$. 任选$c$$d$中的一个变量, 如$c$化简${{R}}$得到:

    $${{R}} = \frac{1}{H}\left[ {\begin{array}{*{20}{c}} {{\rm{ - }}1{\rm{ - }}s_3^2}&0&0 \\ 0&{1 - s_3^2}&{2{s_3}} \\ 0&{2{s_3}}&{ - 1 + s_3^2} \end{array}} \right]$$ (14)

    式中, ${s_3} = {d / c}$, 并且有$H = 1 + s_3^2$.

    4)形式4. 当$a$$b$$c$$d$中仅有一个变量不为0, 例如$a = 0$, $b = 0$, $c = 0$$d \ne 0$, 则${{R}}$直接表示为:

    $${{R}} = \left[ {\begin{array}{*{20}{c}} { - 1}&0&0 \\ 0&{ - 1}&0 \\ 0&0&1 \end{array}} \right]$$ (15)

    通过以上分类表示${{R}}$的方式, 在保证不损失四元数正交约束信息的前提下, 避免了四元数对解符号模糊的问题, 有效降低了求解PnL问题时未知变量的个数和解空间的维度, 在理论层面保障了求解PnL问题的可靠性和效率.

    本节将旋转${{R}}$的4种形式分别代入式(10)进行求解.

    1)对于形式1. 将式(12)代入式(10), 进一步展开, 合并同类项得到:

    $${{{E}}_1}{{{\beta}}_1} = 0$$ (16)

    式中, ${{{E}}_1}$为已知的$2n \times 10$矩阵, 可以由${{A}}$${{D}}$${{{B}}^ + }$${{{A}}_i}$${{{D}}_i}$${{{B}}_i}\;(i = 1,2,\cdots,n)$计算得到. ${{{\beta}}_1} = [1,{s_1}, {s_2},{s_3}, s_1^2,{s_1}{s_2},{s_1}{s_3},s_2^2,{s_2}{s_3},s_3^2]^{\rm{T}}$为式(12)的向量形式. 对于式(16), 可以采用Newton法和Gauss-Newton法[6]等迭代法求解. 然而, 迭代法对初值的选择敏感, 初值选取不好的时候容易导致迭代陷入局部最优. 此外, 迭代法求解过程中需要耗费较多的时间. 为克服此问题, 最近的研究[15-16]中将类似式(16)的等式转换为无约束最优化问题, 通过Gröbner基方法[17]构建矩阵消去模板来求解. 然而, Gröbner基方法求解式(16)时需要对其两端取平方, 这将引入较多高次未知数, 导致Gröbner基方法构建的矩阵消去模板过于复杂, 无法保证求解的可靠性. 除此之外, 矩阵消去模板越复杂, 算法的计算效率也越低, 并且复杂的矩阵消去模版更不利于算法的工程实现.

    由式(16)可以看出, ${{{\beta}}_1}$中含有3个未知数, 且所含未知数的最高次数为2. 因此式(16)中每一行都代表着一个二次曲面, 可以将求解式(16)看作为求解一组二次曲面交点的问题. 观察式(16)结构可以发现, 将变量${s_1}$看作为常量, ${s_2}$${s_3}$为变量, 则${{{E}}_1}$可以被${\left[ {s_2^2,s_3^2,{s_2}{s_3}} \right]^{\rm{T}} }$${\left[ {{s_2},{s_3},1} \right]^{\rm{T}} }$划分为两部分:

    $$\begin{split} & \left[ {{{{E}}_1}(8),{{{E}}_1}(10),{{{E}}_1}(9)} \right]\left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] = - [ {{{E}}_1}(3) +\\ &\qquad{{{E}}_1}(6){s_1}, {{{E}}_1}(4) + {{{E}}_1}(7){s_1},{{{E}}_1}(1) + {{{E}}_1}(2){s_1} + \\ &\qquad{{{E}}_1}(5)s_1^2 ]\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] \Leftrightarrow {{{F}}_1}\left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] = \\ &\qquad{{{G}}_1}({s_1})\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] \\[-25pt] \end{split} $$ (17)

    式中, ${{{E}}_1}(i),i = 1,2,\cdots,10$表示${{{E}}_1}$i列, ${{{G}}_1}(s)$中的每一个元素都是变量${s_1}$的多项式. 式(17)进一步可变为:

    $$\left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] = {{{H}}_1}({s_1})\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right]$$ (18)

    式中, ${{{H}}_1}({s_1}) = {\left( {{{F}}_1^{\rm{T}} {{{F}}_1}} \right)^{ - 1}}{{F}}_1^{\rm{T}} {{{G}}_1}({s_1})$$3 \times 3$的矩阵, 其中的每一分量都是${s_1}$的函数, 可以表示为:

    $${{{H}}_1}({s_1}) = \left[ {\begin{aligned} {{H_{11}}({s_1})}\;\;\;{{H_{12}}({s_1})}\;\;\;{{H_{13}}({s_1})} \\ {{H_{21}}({s_1})}\;\;\;{{H_{22}}({s_1})}\;\;\;{{H_{23}}({s_1})} \\ {{H_{31}}({s_1})}\;\;\;{{H_{32}}({s_1})}\;\;\;{{H_{33}}({s_1})} \end{aligned}} \right]$$

    通过以上划分方式, 可以将式(16)中的高次项部分通过低次项部分来表示. 利用式(16)中高次项和低次项之间的关系引入以下恒等式:

    $$\begin{split} &\left( {s_2^2} \right){s_3} = \left( {{s_2}{s_3}} \right){s_2} \\ &\left( {{s_2}{s_3}} \right){s_3} = \left( {s_3^2} \right){s_2} \\ &\left( {{s_2}{s_3}} \right)\left( {{s_2}{s_3}} \right) = \left( {s_2^2} \right)\left( {s_3^2} \right) \end{split} $$ (19)

    通过式(19)的恒等式, 可以建立起式(16)中高次项之间的联系. 将式(18)再次代入式(19), 展开可得:

    $$\begin{split} &\left( {{H_{11}}({s_1}){s_2} + {H_{12}}({s_1}){s_3} + {H_{13}}({s_1})} \right){s_3} = \\ &\qquad\left( {{H_{31}}({s_1}){s_2} + {H_{32}}({s_1}){s_3} + {H_{33}}({s_1})} \right){s_2} \end{split} $$ (20)
    $$\begin{split} &\left( {{H_{31}}({s_1}){s_2} + {H_{32}}({s_1}){s_3} + {H_{33}}({s_1})} \right){s_3} = \\ &\qquad\left( {{H_{21}}({s_1}){s_2} + {H_{22}}({s_1}){s_3} + {H_{23}}({s_1})} \right){s_2} \end{split} $$ (21)
    $$\begin{split} &{\left( {{H_{31}}({s_1}){s_2} + {H_{32}}({s_1}){s_3} + {H_{33}}({s_1})} \right)^2} = \\ & \qquad\left( {{H_{11}}({s_1}){s_2} + {H_{12}}({s_1}){s_3} + {H_{13}}({s_1})} \right) \cdot \\ & \qquad\left( {{H_{31}}({s_1}){s_2} + {H_{32}}({s_1}){s_3} + {H_{33}}({s_1})} \right) \end{split} $$ (22)

    将式(20)、式(21)和式(22)展开为:

    $$\begin{split} &{e_{11}}s_2^2 + {e_{12}}{s_2}{s_3} + {e_{13}}{s_2} + {e_{14}}s_3^2 + {e_{15}}{s_3} = 0 \\ &{e_{21}}s_2^2 + {e_{22}}{s_2}{s_3} + {e_{23}}{s_2} + {e_{24}}s_3^2 + {e_{25}}{s_3} = 0 \\ &{e_{31}}s_2^2 + {e_{32}}{s_2}{s_3} + {e_{33}}{s_2} + {e_{34}}s_3^2 + {e_{35}}{s_3} + {e_{36}} = 0 \end{split} $$ (23)

    式中, ${e_{ij}},i,j \in \{ 1,2,\cdots,6\}$${s_1}$的多项式. 式(23)中再次包含$s_2^2$$s_3^2$${s_2}{s_3}$项, 将式(18)再次代入式(23), 整理可得:

    $$\left[ {\begin{array}{*{20}{c}} {{k_{11}}}&{{k_{12}}}&{{k_{13}}} \\ {{k_{21}}}&{{k_{22}}}&{{k_{23}}} \\ {{k_{31}}}&{{k_{32}}}&{{k_{33}}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] = 0 \Leftrightarrow {{{K}}_1}({s_1})\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] = 0$$ (24)

    ${{{K}}_1}({s_1})$$3 \times 3$的矩阵, 其中每一项是${s_1}$的多项式. 由式(24)可以看出, 要使式(24)存在非零解, ${{{K}}_1}({s_1})$ 的行列式 $\left| {{{{K}}_1}({s_1})} \right|$必须为零. 将$| {{{{K}}_1}({s_1})}|= 0$进一步展开可得一个${s_1}$的单变量多项式:

    $$\begin{split} &{U_8}s_1^8 + {U_7}s_1^7 + {U_6}s_1^6 + {U_5}s_1^5 + {U_4}s_1^4 + \\ &\qquad{U_3}s_1^3 + {U_2}s_1^2 + {U_1}{s_1} + {U_0} = 0 \end{split} $$ (25)

    式中, ${U_i},i = 1,2,\cdots,8$为已知的系数. 采用特征值分解[18]方法, ${s_1}$可以很容易由式(25)求解得到. 将${s_1}$代入式(24), 求解其形成的线性方程组, 可得${s_2}$${s_3}$.

    实际上, 由于噪声的影响, 式(16)的关系不能完全满足, 因此通过以上方式求解得到的${s_1}$${s_2}$${s_3}$还不是最优解. 为进一步提升${s_1}$${s_2}$${s_3}$的求解精度, 将式(16)转换为不带约束的最优化形式:

    $$\left\{ {{s_1},{s_2},{s_3}} \right\} = \arg \min \left( {{{\beta}}_1^{\rm{T}} {{E}}_1^{\rm{T}} {{{E}}_1}{{{\beta}}_1}} \right)$$ (26)

    式中, ${{E}}_1^{\rm{T}} {{{E}}_1}$$10 \times 10$的已知对称矩阵. 由于${s_1}$${s_2}$${s_3}$已经和全局最优值非常接近了, 因此通过单步Gauss-Newton法依照如下规则进行精定位:

    $${\left[ {{s_1},{s_2},{s_3}} \right]^{\rm{T}} } = {\left[ {{s_1},{s_2},{s_3}} \right]^{\rm{T}} } + \Delta s$$ (27)

    式中, $\Delta s = - {[{{{J}}^{\rm{T}} }{{J}} + \lambda {{{I}}_{3 \times 3}}]^{ - 1}}{{{J}}^{\rm{T}} }{{{E}}_1}{{{\beta}}_1}$表示增量, ${{J}}$${{{E}}_1}$的雅克比矩阵, $\lambda $为更新时的下降因子, ${{{I}}_{3 \times 3}}$$3 \times 3$的单位矩阵. 得到最优的${s_1}$, ${s_2}$${s_3}$后, 将其代回式(12)和式(8), 则可得最终需要的${{R}}$${{t}}$.

    2)对于形式2. 类似于步骤1), 将式(13)代入式(10), 整理可得:

    $${{{E}}_2}{{{\beta}}_2} = 0$$ (28)

    式中, ${{{E}}_2}$$2n \times 6$的对称矩阵, 且${{{\beta}}_2} = [1,{s_2},$ ${s_3},s_2^2, {s_2}{s_3},s_3^2{]^{\rm{T}} }$. 同样, ${{{\beta}}_2}$中含有2个未知数, 且所含未知数的最高次数为2. 因此式(28)中每一行都代表着一个二次曲线, 可以将式(28)的求解看作是二次曲线交点的求解. 式(28)同样可以表示为两部分:

    $$\begin{split} & \left[ {{{{E}}_2}(4),{{{E}}_2}(6),{{{E}}_2}(5)} \right]\left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] = \\ &\quad - [ {{{{E}}_2}(2)} ,{{{E}}_2}(3),{{{E}}_2}(1) ]\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] \Leftrightarrow {{{F}}_1}\left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] =\\ &\quad{{{G}}_2}\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] \Leftrightarrow \left[ {\begin{array}{*{20}{c}} {s_2^2} \\ {s_3^2} \\ {{s_2}{s_3}} \end{array}} \right] = {{{H}}_2}\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] \\[-15pt] \end{split} $$ (29)

    式中, ${{{H}}_2} = {\left( {{{F}}_2^{\rm{T}} {{{F}}_2}} \right)^{ - 1}}{{F}}_2^{\rm{T}} {{{G}}_2}$是一个3 × 3的系数矩阵. 将式(29)再次代入恒等式, 即式(19)可得:

    $$\begin{split} &{m_{11}}s_2^2 + {m_{12}}{s_2}{s_3} + {m_{13}}{s_2} + {m_{14}}s_3^2 + {m_{15}}{s_3} = 0 \\ & {m_{21}}s_2^2 + {m_{22}}{s_2}{s_3} + {m_{23}}{s_2} + {m_{24}}s_3^2 + {m_{25}}{s_3} = 0 \\ & {m_{31}}s_2^2 + {m_{32}}{s_2}{s_3} + {m_{33}}{s_2} + {m_{34}}s_3^2 + {m_{35}}{s_3} + \\ &\qquad {m_{36}} = 0 \\[-10pt] \end{split} $$ (30)

    式中, ${m_{ij}},i,j \in \{ 1,2,\cdots,6\}$为已知系数. 可以发现, 式(30)的形式和式(23)的形式相同, 但其中${m_{ij}}$${e_{ij}}$所表示的具体意义不同. 式(30)中同样包含$s_2^2$$s_3^2$${s_2}{s_3}$项, 将式(29)再次代入式(30)可得:

    $$\left[ {\begin{array}{*{20}{c}} {{q_{11}}}&{{q_{12}}}&{{q_{13}}} \\ {{q_{21}}}&{{q_{22}}}&{{q_{23}}} \\ {{q_{31}}}&{{q_{32}}}&{{q_{33}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{s_2}} \\ {{s_3}} \\ 1 \end{array}} \right] = 0$$ (31)

    式中, ${q_{ij}},i,j \in \{ 1,2,3\} $为常系数, 可以由${{{H}}_2}$${m_{ij}}$计算得到, 求解式(31)容易得到${s_2}$${s_3}$. 同样, 为进一步提升${s_2}$${s_3}$的求解精度, 首先将式(28)转换为无约束优化形式:

    $$\left\{ {{s_2},{s_3}} \right\} = \arg \min \left( {{{\beta}}_2^{\rm{T}} {{E}}_2^{\rm{T}} {{{E}}_2}{{{\beta}}_2}} \right)$$ (32)

    式中, ${{E}}_2^{\rm{T}} {{{E}}_2}$$6 \times 6$的已知对称矩阵. 此时${s_2}$${s_3}$可以按照如下式子进行精定位:

    $${\left[ {{s_2},{s_3}} \right]^{\rm{T}} } = {\left[ {{s_2},{s_3}} \right]^{\rm{T}} } + \Delta s$$ (33)

    式中, $\Delta s = - {[{{{J}}^{\rm{T}} }{{J}} + \lambda {{{I}}_{2 \times 2}}]^{ - 1}}{{{J}}^{\rm{T}} }{{{E}}_2}{{{\beta}}_2}$, 各变量的定义类似于式(27). 得到最优的${s_2}$${s_3}$以后, 将其代入式(13)和式(8)则可得需要求解的${{R}}$${{t}}$.

    3)对于形式3. 式(14)中仅含有一个变量${s_3}$, 将式(14)代入式(10), 最终得到一个${s_3}$的多项式:

    $${U_4}s_3^4 + {U_3}s_3^3 + {U_2}s_3^2 + {U_1}{s_3} + {U_0} = 0$$ (34)

    式中, ${U_i},i = 0,1,\cdots,4$为系数. 采用特征值分解的方法, 式(34)很容易求解, 一旦得到${s_3}$, 将其代入式(14)和式(8)可得完整的${{R}}$${{t}}$.

    4)对于形式4. 式(15)中${{R}}$的值已知, 将其直接代入式(8)可得${{t}}$.

    由以上求解可以看出, 式(25)有8个解, 式(31)有1个解, 式(34)有4个解, 求解形式4有1个解. 因此, 求解以上形式最多得到14个解, 其分别对应着14组${{R}}$${{t}}$. 将每组${{R}}$${{t}}$分别代入式(10), 选择其误差最小的那组${{R}}$${{t}}$作为最终结果输出. 表1列出了文献中各非线性求解PnL问题算法解的个数. 从表1可以看出, 本文提出方法解的个数最少, 有利于提升算法的求解效率和求解可靠性.

    表 1  解的个数对比
    Table 1  Comparison of the number of solutions
    文献 [9]文献 [12]文献 [13]文献 [14]本文方法
    1527156014
    下载: 导出CSV 
    | 显示表格

    本节通过实验验证本文提出的EPnL算法性能, 并与现有主流算法进行对比. 对比算法主要分为线性算法和非线性算法两类, 其中线性算法有DLT-Lines[7]和LPnL-Bar-LS[9]算法; 非线性算法有 Lift[11]、AlgLS[12]、RPnL[13]、ASPnL[9]和SRPnL[14]算法.

    实验中的源代码可以从作者个人网站https://sites.google.com/view/ping-wang-homepage下载.

    合成分辨率为640 × 480像素, 焦距为800像素的虚拟相机. 在相机坐标系下产生空间3D直线: 在普通情况下, 空间直线随机分布在$[ - 2,2]$ × $[ - 2,2]$ × $[4,8]$的范围内; 在共面情况下, 空间3D直线随机分布在$[ - 2,2]$ × $[ - 2,2]$ × $[0,0]$内. 利用随机产生的旋转矩阵${{{R}}_{true}}$和平移向量${{{t}}_{true}}$将相机坐标系下的3D直线转换到世界坐标系. 利用合成的虚拟相机, 将相机坐标系下的3D直线投影到图像平面上, 并根据仿真实验参数的不同, 给投影直线增加不同等级的噪声$\delta $. 为了误差评估的一致性, 本文使用文献[9-15]的误差定义形式:

    $$\left\{\begin{aligned} & {e_{rot}}(degrees) = \mathop {\max }\limits_{k \in \{ 1,2,3\} } {{\rm{arccos}} }(r_{k,true}^{\rm{T}} {r_k}) \times \frac{{180}}{\pi } \\ &{e_{trans}} = \frac{{\left\| {{{t}} - {{{t}}_{true}}} \right\|}}{{\left\| {{{{t}}_{true}}} \right\|}} \times 100{\text{%}} \end{aligned} \right.$$ (35)

    式中, ${r_{k,true}}$${r_k}$分别表示${{{R}}_{true}}$${{R}}$的第$k$列.

    1)直线数量对算法精度的影响. 首先设置仿真噪声$\delta = 5$, 通过改变输入参考直线数量4 ~ 20来验证各PnL算法的求解精度, 结果如图2所示 (部分算法共面情况下幅度超出显示范围). 由图2可以看出, 线性的DLT-Lines和LPnL-Bar-LS方法在普通和共面情况下求解精度都不高, 且在直线数量少于6时无法正常求解. Lift是一种非迭代的方法, 但由于其求解过程中使用了线性化的策略, 因此在普通情况(共面情况下无法求解)下求解精度不高. AlgLS的中值求解精度很高, 但是其平均求解精度反而较低, 原因是AlgLS方法采用了Cayley参数表示旋转矩阵, 导致计算的时候容易出现奇异性, 影响算法的整体计算精度. RPnL是一种次优化方法, 在普通情况下求解精度较高, 在共面情况下求解精度较差. ASPnL算法作为RPnL算法的改进版本, 在普通情况下能取得很高的求解精度, 但在共面情况下平均求解精度较低. SRPnL方法作为RPnL方法的另一种改进版本, 在普通和共面情况下都能取得较高的求解精度. 相比之下, 本文的EPnL采用了全局优化的方式求解, 并且在求解过程中分类考虑了旋转的情况, 避免了求解过程中的奇异性, 因此在普通和共面情况下都能保证最好的求解精度.

    图 2  当直线数目变化时旋转和平移误差的均值和中值
    Fig. 2  The mean and median of rotation and translation errors when the number of lines varies

    2)噪声对算法精度的影响. 固定空间直线数量为10, 改变噪声等级$\delta $为1 ~ 15来验证各PnL算法的求解精度, 结果如图3所示. 可以看出, 随着噪声等级的增加, 各算法的求解精度都在下降, 且噪声等级和求解误差的增加近似符合线性关系. 由图2 ~ 3可以看出, 本文PnL算法在普通情况和共面情况下都能取得最好的求解精度.

    图 3  当噪声等级变化时旋转和平移误差的均值和中值
    Fig. 3  The mean and median of rotation and translation errors when the noise level varies

    3)对比P3L算法. 本文算法虽然不是为求解P3L问题设计的, 但是可以处理P3L问题. 图4为本文算法和现有最新P3L算法[13, 19]的对比结果. 由图4可以看出, 本文EPnL算法不仅能够处理P3L问题, 而且还具有较高的求解精度.

    图 4  最小情况下(n = 3)旋转和平移误差的均值和中值
    Fig. 4  The mean and median of rotation and translation errors in the minimal case (n = 3)

    4)对比运行效率. 图5为各PnL算法的运行效率曲线图. 测试直线的数量从4到2000条, 足够覆盖大多数的实际应用场合. 测试时每种算法分别执行500次, 并统计其平均运行时间. 由图5可以看出, RPnL和ASPnL算法初期运行效率高于AlgLS的方法, 但是随着直线数目增加, 其消耗的时间呈指数状增加, 效率反倒低于AlgLS方法. DLT-Lines和LPnL-Bar-LS由于是线性求解的方法, 因此求解效率很高. SRPnL方法相比于RPnL和ASPnL方法具有较高的求解效率, 但是随着直线数量的增加, 其时间消耗也急剧增加. 相比之下, 本文提出的EPnL方法具有很高的求解效率, 当直线数量超过300条的时候, 求解效率甚至高于线性的DLT-Lines的方法, 仅次于LPnL-Bar-LS方法. 综合考虑EPnL算法的求解精度、求解效率和求解通用性, 其在所有对比方法中综合性能更优, 非常适合于实际项目应用.

    图 5  对比算法的计算效率
    Fig. 5  The computational efficiency of compared the methods

    牛津大学视觉测量组(Visual Geometry Group)建立了以其团队命名的(VGG)图像数据集2. VGG数据集中包含7组图像数据, 每组数据中包含若干张采集的建筑物图像, 图像中建筑物边缘直线的图像坐标及其对应世界坐标系中的位置、相机相对于世界坐标系之间的位姿关系都是已知的. 因此可以使用VGG数据集来测试各PnL算法的求解精度. 测试过程中各算法的求解误差定义如下:

    $$\left\{\begin{aligned} &\Delta \theta = \left| {Angle({R_{estimation}}) - Angle({R_{true}})} \right|\\ &\Delta T = \left| {{t_{estimation}} - {t_{true}}} \right| \end{aligned} \right.$$ (36)

    式中, $Angle( \cdot ) $表示将旋转矩阵转换为欧拉角, ${R_{estimation}} $${t_{estimation}} $表示各算法计算得到的旋转矩阵和平移向量, ${R_{true}} $${t_{true}} $为数据集中真实的旋转矩阵和平移向量. 分别利用各PnL算法按式(36)计算每组图像数据的误差平均值, 结果如表2所示, 每组中平均误差最小的值加粗表示. 由表2可以看出, 本文提出的EPnL算法在能够在4组测试集上同时获得最高的角度(旋转)和位置(平移)求解精度, 并且能够在6组测试集上获得最高的位置求解精度, 其整体求解精度最好. 为进一步验证EPnL算法的求解精度, 利用EPnL算法求解的位姿信息将世界坐标系下建筑物的边缘投影到图像上, 结果如图6所示, 其中青色直线为投影直线. 由图6可见, EPnL算法能够准确的恢复位姿信息.

    表 2  各算法在VGG数据集上的旋转和平移误差均值
    Table 2  The mean of rotation and translation errors for each method on the VGG dataset
    数据集名称Model-HouseCorridorMerton-College- ⅠMerton-College- ⅡMerton-College-ⅢUniversity-LibraryWadham-College
    图像数量101133335
    AlgLS$\Delta \theta [ \circ ]$0.42200.19833.620055.80373.74951.883860.0517
    $\Delta T[m]$0.03840.08881.150414.18791.36830.95199.8801
    DLT-Lines$\Delta \theta [ \circ ]$0.86510.11040.08690.21170.17510.17360.1343
    $\Delta T[m]$0.08340.04150.02740.12240.06250.07510.0809
    LPnL-Bar-LS$\Delta \theta [ \circ ]$0.41350.11780.02410.02610.06520.36420.1526
    $\Delta T[m]$0.04030.04400.00990.01490.02330.16320.0909
    RPnL$\Delta \theta [ \circ ]$0.55210.36521.08700.32491.75282.97310.4200
    $\Delta T[m]$0.06310.11500.32150.16600.91211.56130.1909
    ASPnL$\Delta \theta [ \circ ]$0.22650.09110.11410.15151.55843.66620.4227
    $\Delta T[m]$0.01620.02980.03140.06000.55711.66830.1955
    SRPnL$\Delta \theta [ \circ ]$0.2258158.9520.43810.115136.40344.18480.0880
    $\Delta T[m]$0.016017.5570.10640.04953.93982.06320.0407
    EPnL$\Delta \theta [ \circ ]$0.22650.09690.03060.01700.05040.08710.0808
    $\Delta T[m]$0.01620.02520.00970.01230.01470.03430.0375
    下载: 导出CSV 
    | 显示表格
    图 6  VGG数据集中的图片
    Fig. 6  Images from the VGG dataset

    本文提出了一种精确且高效的PnL问题求解算法(EPnL算法). EPnL首先通过矩阵变化的方式统一PnL问题的度量空间, 并将PnL求解问题转换为求二次曲面(曲线)交点的问题. 然后, 针对现有Cayley参数和四元数参数表示旋转时存在的问题, 本文提出了基于四元数的旋转分类表示方法, 该表示法在不损失旋转正交约束的前提下, 能够有效提升求解PnL问题的可靠性和效率. 最后, 针对现有迭代法和Gröbner基法求解问题效率不高且无法保障可靠性的问题. 本文提出利用二次项曲面方程组低次项参数化高次项的方法, 将二次项曲面方程组求交点问题转换为单变量多项式求解问题解决. 仿真和实际实验表明, 相比于现有的PnL算法, 本文算法在具有高求解精度的同时兼具高求解效率.


  • 1 https://sites.google.com/view/ping-wang-homepage
  • 2 http://www.robots.ox.ac.uk/~vgg/
  • 图  1  PnL问题

    Fig.  1  PnL problem

    图  2  当直线数目变化时旋转和平移误差的均值和中值

    Fig.  2  The mean and median of rotation and translation errors when the number of lines varies

    图  3  当噪声等级变化时旋转和平移误差的均值和中值

    Fig.  3  The mean and median of rotation and translation errors when the noise level varies

    图  4  最小情况下(n = 3)旋转和平移误差的均值和中值

    Fig.  4  The mean and median of rotation and translation errors in the minimal case (n = 3)

    图  5  对比算法的计算效率

    Fig.  5  The computational efficiency of compared the methods

    图  6  VGG数据集中的图片

    Fig.  6  Images from the VGG dataset

    表  1  解的个数对比

    Table  1  Comparison of the number of solutions

    文献 [9]文献 [12]文献 [13]文献 [14]本文方法
    1527156014
    下载: 导出CSV

    表  2  各算法在VGG数据集上的旋转和平移误差均值

    Table  2  The mean of rotation and translation errors for each method on the VGG dataset

    数据集名称Model-HouseCorridorMerton-College- ⅠMerton-College- ⅡMerton-College-ⅢUniversity-LibraryWadham-College
    图像数量101133335
    AlgLS$\Delta \theta [ \circ ]$0.42200.19833.620055.80373.74951.883860.0517
    $\Delta T[m]$0.03840.08881.150414.18791.36830.95199.8801
    DLT-Lines$\Delta \theta [ \circ ]$0.86510.11040.08690.21170.17510.17360.1343
    $\Delta T[m]$0.08340.04150.02740.12240.06250.07510.0809
    LPnL-Bar-LS$\Delta \theta [ \circ ]$0.41350.11780.02410.02610.06520.36420.1526
    $\Delta T[m]$0.04030.04400.00990.01490.02330.16320.0909
    RPnL$\Delta \theta [ \circ ]$0.55210.36521.08700.32491.75282.97310.4200
    $\Delta T[m]$0.06310.11500.32150.16600.91211.56130.1909
    ASPnL$\Delta \theta [ \circ ]$0.22650.09110.11410.15151.55843.66620.4227
    $\Delta T[m]$0.01620.02980.03140.06000.55711.66830.1955
    SRPnL$\Delta \theta [ \circ ]$0.2258158.9520.43810.115136.40344.18480.0880
    $\Delta T[m]$0.016017.5570.10640.04953.93982.06320.0407
    EPnL$\Delta \theta [ \circ ]$0.22650.09690.03060.01700.05040.08710.0808
    $\Delta T[m]$0.01620.02520.00970.01230.01470.03430.0375
    下载: 导出CSV
  • [1] 于鲲, 从明煜, 段佳佳, 李向宇. 星箭对接环抓捕点单目视觉导航方法. 仪器仪表学报, 2018, 39(12): 228--236.

    Yu Kun, Cong Min-Yu, Duan Jia-Jia, Li Xiang-Yu. Monocular visual navigation method for capture point of docking ring. Chinese Journal of Scientific Instrument, 2018, 39(12): 228--236.
    [2] 马艳阳, 叶梓豪, 刘坤华, 陈龙. 基于事件相机的定位与建图算法: 综述. 自动化学报, 2020, 46(x): 1--11.

    Ma Yan-Yang, Ye Zi-Hao, Liu Kun-Hua, Chen Long. Event-based visual localization and mapping algorithms: a survey. Acta Automatica Sinica, 2020, 46(x): 1--11.
    [3] 俞毓锋, 赵卉菁. 基于相机与摇摆激光雷达融合的非结构化环境定位. 自动化学报, 2019, 45(9): 1791--1798.

    YU Yu-Feng, ZHAO Hui-Jing. Off-road localization using monocular camera and nodding LiDAR. Acta Automatica Sinica, 2019, 45(9): 1791--1798.
    [4] 郝洁, 李高峰, 孙雷, 卢翔, 张森, 刘景泰. 基于视觉标志间相对位姿的可变形臂标定方法. 自动化学报, 2018, 44(8): 1413--1424.

    HAO Jie, LI Gao-Feng, SUN Lei, LU Xiang, ZHANG Sen, LIU Jing-Tai. Relative-pose-of-markers based calibration method for a deformable manipulator. Acta Automatica Sinica, 2018, 44(8): 1413--1424.
    [5] Alhaija H A, Mustikovela S K, Mescheder L, Geiger A, Rother C. Augmented reality meets computer vision: efficient data generation for urban driving scenes. International Journal of Computer Vision, 2018, 126(9): 961--972. doi: 10.1007/s11263-018-1070-x
    [6] Griva I, Nash S G, Sofer A. Linear and Nonlinear Optimization. Philadelphia: Siam, 2009. 355−478
    [7] Abdel-Aziz Y I, Karara H M, Hauck M. Direct linear transformation from comparator coordinates into object space coordinates in close-range photogrammetry. Photogrammetric Engineering and Remote Sensing, 2015, 81(2): 103--107. doi: 10.14358/PERS.81.2.103
    [8] Přibyl B, Zemčík P, Čadík M. Camera pose estimation from lines using Plücker coordinates. In: Proceedings of the 2015 British Machine Vision Conference, Swansea, United Kingdom: 2015. 45: 1−12
    [9] Xu C, Zhang L, Cheng L, Koch R. Pose estimation from line correspondences: a complete analysis and a series of solutions. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1209--1222. doi: 10.1109/TPAMI.2016.2582162
    [10] Přibyl B, Zemčík P, Čadík M. Absolute pose estimation from line correspondences using direct linear transformation. Computer Vision and Image Understanding, 2017, 161: 130--144. doi: 10.1016/j.cviu.2017.05.002
    [11] Ansar K, Daniilidis K. Linear pose estimation from points or lines. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(5): 578--589. doi: 10.1109/TPAMI.2003.1195992
    [12] Mirzaei F M, Roumeliotis S I. Globally optimal pose estimation from line correspondences. In: Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China: 2011. 5581−5588
    [13] Zhang L, Xu C, Lee K M, Koch R. Robust and efficient pose estimation from line correspondences. In: Proceedings of the 2012 Asian Conference on Computer Vision, Heidelberg, Berlin: 2012. 217−230
    [14] Wang P, Xu G L, Cheng Y H, Yu Q D. Camera pose estimation from lines: a fast, robust and general method. Machine Vision and Applications, 2019, 30: 603--614. doi: 10.1007/s00138-019-01012-0
    [15] Yu, Q D, Xu G L, Zhang L M, Shi J C. A consistently fast and accurate algorithm for estimating camera pose from point correspondences, Measurement, 2020, 172: 108914.
    [16] Zheng Y Q, Kuang Y B, Sugimoto S, Astrom K, Okutomi M. Revisiting the PnP problem: A Fast, general and optimal solution. In: Proceedings of the 2013 International Conference on Computer Vision, Sydney, Australia: 2013. 2344−2351
    [17] Kukelova Z, Bujnak M, Pajdla T. Automatic generator of minimal problem solvers. In: Proceedings of the 2008 European Conference on Computer Vision, Heidelberg, Berlin: 2008. 302−315
    [18] Press W, Teukolsky S, Vetterling W, Flannery B. Numerical recipes 3rd edition: The art of scientific computing. Cambridge: Cambridge University Press, 2007.
    [19] Wang P, Xu G L, Cheng Y H. A novel algebraic solution to the perspective-three-line pose problem, Computer Vision and Image Understanding, 2020, 191: 102711. doi: 10.1016/j.cviu.2018.08.005
  • 期刊类型引用(4)

    1. 方归,刘怀广. 面向板料精准堆垛的线特征位姿标定方法. 包装工程. 2024(09): 185-192 . 百度学术
    2. 陈长俊,唐丹,杨浩,游安清,潘旭东. 基于神经网络特征线提取的飞机位姿识别方法研究. 强激光与粒子束. 2024(06): 161-169 . 百度学术
    3. 马宁,曹云峰. 面向无人机自主着陆的视觉感知与位姿估计方法综述. 自动化学报. 2024(07): 1284-1304 . 本站查看
    4. 魏振忠,冯广堃,周丹雅,马岳鸣,刘明坤,罗启峰,黄腾达. 位姿视觉测量方法及应用综述. 激光与光电子学进展. 2023(03): 144-176 . 百度学术

    其他类型引用(4)

  • 加载中
  • 图(6) / 表(2)
    计量
    • 文章访问数:  2347
    • HTML全文浏览量:  893
    • PDF下载量:  172
    • 被引次数: 8
    出版历程
    • 收稿日期:  2020-11-09
    • 录用日期:  2021-03-05
    • 网络出版日期:  2021-05-12
    • 刊出日期:  2022-10-14

    目录

    /

    返回文章
    返回