相机外参的标定方法、装置、计算机设备和存储介质与流程

文档序号:14058362阅读:244来源:国知局
相机外参的标定方法、装置、计算机设备和存储介质与流程

本发明涉及机器视觉,特别是涉及一种相机外参标定方法、装置、计算机设备及存储介质。



背景技术:

随着现代机器视觉技术的发展,机器视觉技术在越来越多的领域得到广泛的应用,尤其是在无人驾驶车辆中,更是不可或缺的一部分。对于所有车载视觉技术,首先要解决的问题就是如何计算相机相对于车辆的相对位置,即相机外参的标定问题。

目前学术界一般采用的批量优化或者贝叶斯滤波器的方法,此类方法不仅计算量大,而且需要一个较为准确的初始值,来确保优化可以收敛至相机准确的外参。另外,虽然ransac(随机抽样一致算法)和直方图法等一系列算法能够有效的滤除不匹配的特征点,但大量的数据仍然带来的许多误差以及不稳定性。为了提高系统的精度与稳定性,业界通常使用一些辅助装置来辅助相机外参的标定,目前业界采用的辅助装置价格高昂、难以满足工业对外参数据的精度要求。



技术实现要素:

基于此,有必要针对辅助装置上述辅助装置价格高昂、难以满足工业对外参数据的精度要求的问题,提供一种相机外参标定方法、装置、计算机设备和存储介质。

一种相机外参标定方法,所述方法包括:

获取相机坐标系中的各个图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;

根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面中所述各个图像码的投影坐标集;

获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;

根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与相机的相对位置;

将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设模型,按照预设模型进行优化得到相机优化外参。

在其中一个实施例中,所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量的步骤之前,还包括:获取所述相机在各个观测点观测到的各个图像码;获取所述各个图像码与所述相机在图像坐标系的相对位置组成第一相对位置集;根据所述图像坐标系与相机坐标系之间的转换关系将所述第一相对位置集转换为所述相机坐标系中所述图像码与所述相机相对位置组成的第二相对位置集;通过所述第二相对位置集计算得到所述图像码在所述相机坐标系中的所述图像坐标集。

在其中一个实施例中,所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量的步骤,包括:获取所述图像坐标集,由所述图像坐标集按照预设规则构成矩阵,计算所述矩阵的特征值;选取所述特征值中最小特征值计算所述最小特征值对应的特征向量,所述特征向量的对应法向量作为所述法向量。

在其中一个实施例中,所述根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参的步骤,包括:获取所述投影坐标集中能够同时观测到同一个目标图像码的目标投影坐标集;获取目标里程计相对位置集,所述目标里程计相对位置集为所述同时观测到同一个目标图像码的不同观测点之间的相对位置集;根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参,所述初始外参包括所述相机与所述里程计之间的旋转角度和偏移量。

在其中一个实施例中,所述根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参的步骤,包括:获取所述目标里程计相对位置集中所述里程计相邻且角度在预设范围内的第一目标里程计相对位置集;获取与所述第一目标里程计相对位置集对应的观测点观测到的第一目标投影坐标集;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参。

在其中一个实施例中,所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参的步骤,包括:所述旋转角度包括俯仰角、横滚角和航偏角,所述偏移量包括水平偏移量和垂直分量;根据所述法向量与所述相机坐标系的中相机的光轴计算得到所述俯仰角;根据所述法向量投影的所述相机的光轴与所述光轴垂直的平面中第一坐标轴计算所述横滚角;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量;选取所述图像坐标集中至少一个目标图像码的图像坐标集,根据所述目标图像码与所述相机的相对位置集计算得到所述相机的所述垂直分量。

在其中一个实施例中,所述根据所述第一目标投影坐标集和所述里程计相对位置计算得到所述航偏角和所述水平偏移量的步骤,包括:根据第一预设条件获取所述第一目标里程计相对位置集中的多组第一目标里程计相对位置子集;根据所述第一目标里程计相对位置子集计算得到所述里程计之间的旋转角度集;获取与所述第一目标里程计相对位置子集对应的观测点集的第一观测点集的第一观测目标投影坐标集和第二观测点集的第二观测目标投影坐标集;根据第一观测目标投影坐标集计算得到所述目标图像码集与所述相机的第一图像码相对位置集;根据所述观第二观测目标投影坐标集与所述旋转角集计算得到所述目标图像码集与所述相机的第二图像码相对位置集;根据所述第一图像码相对位置集与所述第二图像码相对位置集计算得到所述相机相对位置集,所述相机相对位置集即为所述第一目标投影坐标集;根据所述第一目标投影坐标集与所述第一目标里程计相对位置子集计算得到所述航偏角;根据所述第一目标投影坐标集、所述航偏角以及所述第一目标里程计相对位置子集计算的到所述水平偏移量。

在其中一个实施例中,所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量的步骤,包括:根据第二预设条件所述第一目标里程计相对位置集中的多组第二目标里程计相对位置子集;获取根据所述第一目标投影坐标集计算得到所述目标图像码与所述相机的相对位姿集;根据所述相对位姿集与所述第二目标里程计相对位置子集计算得到所述航偏角和所述水平偏移量。

一种相机外参的标定装置,所述装置包括:

法向量计算模块,用于获取相机坐标系中的各个图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;

投影坐标集计算模块,用于根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面中所述各个图像码的投影坐标集;

里程计相对位置集获取模块,用于获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;

初始外参计算模块,用于根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与所述相机的相对位置;

外参优化模块,用于将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设优化模型,按照预设优化模型进行优化得到相机优化外参。

一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行上述相机外参标定方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时执行上述相机外参标定方法。

上述相机外参标定方法、装置、计算机设备和存储介质,通过获取相机坐标系中的图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面中所述图像码的投影坐标集;获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与相机的相对位置;将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设模型,按照预设模型进行优化得到相机优化外参。上述方法通过检测到图像上的图像码坐标集,将相机坐标系按照地平面法向量进行投影,根据投影坐标计算不同观测点相机的相机相对位置和根据所述里程计数据得到不同观测点所述里程计的里程计相对位置,根据上述相机相对位置和上述里程计相对位置计算得到所述相机与所述里程计之间的相对位置(即初始外参),将上述初始外参和坐标数据,以及里程计的测量数据进行优化得到相机优化外参降低成本,提高相机外参的精确度。

附图说明

图1为一个实施例中相机外参的标定的应用场景图;

图2为一个实施例中相机外参的标定流程图;

图3为一个实施例中获取图像坐标集的流程图;

图4为一个实施例中计算地平面的法向量的流程图;

图5为一个实施例中获取相机初始外参的流程图;

图6为另一个实施例中获取相机初始外参的流程图;

图7为又一个实施例中获取相机初始外参的流程图;

图8为一个实施例中获取航偏角和水平偏移量的流程图;

图9为另一个实施例中获取航偏角和水平偏移量的流程图;

图10为一个实施例中相机外参的标定装置的框架图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

如图1所示,在一个实施中,处理器510,相机520,里程计530,用于搭载处理器510,相机520和里程计530的设备540以及图像码550。相机520用来拍摄图片,里程计530用来计算里程计的相对位置,通过移动设备540,相机520获取不同时刻不同地点的图片。图像码550作为辅助工具用于增加环境的特征,在处理器510计算相机的外参中通过利用图像码的信息能够得到更精确的数据,提高系统的稳定性。里程计530的成本低,可以选择一个或者多个里程计530。通过里程计530的测量数据与根据相机拍摄的相片检测的图像码的图像信息,首先得到一个初始外参;再利用所有数据,以迭代的方法,优化相机外参以及里程计的相关参数。

如图2所示,在一个实施例中,提供了一种相机外参的标定方法,上述方法包括:

步骤s130,获取相机坐标系中的各个图像码的图像坐标集,根据图像坐标集计算得到相机坐标系中地平面的法向量。

具体地,相机坐标系中各个图像码的图像坐标集为各个图像码在各个坐标轴上的分量,其中,相机坐标系是以光轴与图像平面的交点为图像坐标系的原点所构成的直角坐标系,相机的光轴是相机坐标系的z轴,相机成像平面的横坐标对应相机坐标轴的x轴,相机成像平面的纵坐标对应相机坐标轴的y轴。由于移动机器人皆为轮式机器人,其运动都被限制在与地平面平行的一个平面内,因此上述相机对于各个图像码的在平行的观测平面运动,故观测平面有相同的法向量,根据上述坐标集计算出该法向量。其中,图像码携带的标识信息用于区分各个图像码,图像码可以是二维码和能够携带标识信息的编码图片,其中,二维码可以是人们熟识的二维码(例如:qrcode、datamatrix或者arucocode)或二维码阵,或其他种类人工标签,例如有特殊结构的反光标签,圆柱形人工标签等等。

步骤s140,根据法向量将相机坐标系投影到地平面中,获取地平面中各个图像码的投影坐标集。

具体地,根据步骤s130中得到地平面的法向量,根据该法向量将相机坐标系投影到地平面上,将三维的坐标系转换为二维的坐标系,根据相机组坐标系与地平面的投影关系计算得到各个图像码的投影坐标,由各个图像码的投影坐标组成投影坐标集为二维坐标。通过变换坐标系能够减少算法的复杂度。

步骤s150,获取里程计的测量数据,测量数据包括各个观测点之间的里程计的相对位置组成的里程计相对位置集。

其中,里程计是一种利用从移动传感器获得的数据来估计物体位置随时间的变化而改变的方法。该方法被用在许多种机器人系统(轮式或者腿式)上面,来估计,而不是确定这些机器人相对于初始位置移动的距离。这种方法对由速度对时间积分来求得位置的估计时所产生的误差十分敏感。快速、精确的数据采集,设备标定以及处理过程对于高效的使用该方法是十分必要的。具体地,根据移动传感器获得数据计算得到里程计的测量数据,从里程计的测量数据中获取各个观测点之间的里程计的相对位置,由各个观测点里程计的相对位置组成的集合为里程计相对位置集。其中,里程计包括所有可以推算移动机器人相对于初始位置的相对位置的系统,包括但不限于编码器组,惯性测量单元(imu)

步骤s160,根据投影坐标集、法向量和里程计相对位置集计算得到相机的初始外参,初始外参为里程计与相机的相对位置。

其中,投影坐标集与步骤s140中得到投影坐标集一致,法向量与步骤s130中得到法向量一致,里程计相对位置集与步骤s150中计算得到的里程计相对位置集一致。具体地,按照第一预设条件选取投影坐标集中全部或者部分坐标构成第一坐标集,按照第二预设条件选取里程计相对位置集中全部或者部分构成第二相对位置集,根据第一坐标集、第二相对位置集和法向量计算得到里程计与相机的相对位置(即初始外参)。上述第一预设条件和第二预设条件可以相同也可以不相同。

步骤s170,将初始外参作为初始值按照预设模型将图像坐标集和里程计相对位置集输入预设优化模型,按照预设模型进行优化得到相机优化外参。

具体地,将初始外参作为初始值,将图像坐标集和里程计相对位置集输入用于优化数据的预设优化模型,根据预设优化模型对图像坐标集和里程计相对位置集按照预设优化模型的规则进行迭代计算得到相机外参,选取迭代到当总体误差最低时的相机外参作为相机优化外参。例如,初始外参作为初始值,然后将图像坐标集和里程计相对位置集输入各种非线性优化模型中进行优化得到相机优化外参,其中,非线性优化模型包括高斯-牛顿算法模型,莱文贝格-马夸特方法模型(levenberg–marquardtalgorithm)和基于遗传算法的优化算法模型等。

上述相机外参标定方法,通过获取相机坐标系中的图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面坐中所述图像码的投影坐标集;获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与相机的相对位置;将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设模型,按照预设模型进行优化得到相机优化外参。

上述方法通过图像码作为辅助装置辅助相机外参的标定降低成本,图像码包含的信息更为丰富能够检测到更多信息能够得到更为稳定的信息,根据检测到图像上的图像码坐标集计算相机坐标系的地平面的法向量,将相机坐标系按照地平面法向量进行投影,通过投影减低坐标维数,减少计算量。根据投影坐标计算不同观测点相机的相机相对位置和根据所述里程计数据得到不同观测点所述里程计的里程计相对位置,根据上述相机相对位置和上述里程计相对位置计算得到所述相机与所述里程计之间的相对位置(即初始外参),得到更为精确的相机外参。通过将计算过程分为初始外参,优化外参两个步骤进行计算,初始外参是一个相对准确的初始值,将较为准确的初始外采作为优化外参的初始值,并将上述坐标数据,以及里程计的测量数据进行优化能够较少计算误差,得到一个更为精确的相机外参。由于上述方法采用了稳定且成熟的图像码识别算法来获取环境中的特征点,提高了相机对特征点三维位姿或位置的测量精度,从而提高了系统的稳定性,降低了系统的误差。不仅如此,图像码的使用还大大降低了环境中使用的特征点数量,使得系统的计算量也大大降低。对图像码的布置并无太多要求,且无需测量其绝对位置,在使用图像码定位或者图像码和自然特征混合定位的场地上可以直接使用。再加上本方法可以在线进行外参标定,实现相机模块的即装即用,为视觉系统在移动机器人应用提供了极大的便利。

如图3所示,在一个实施例中,在步骤s130之前,还包括:

步骤s120,获取相机坐标系中的图像坐标集。

其中,相机坐标系与步骤s130中的相机坐标系定义相同。具体地,对各个观测点拍摄的图像进行处理得到图像坐标中相机与图像码的相对位置,根据相机坐标系与图像坐标系的对应关系,计算得到相机坐标中相机与图像码的相对位置,根据相机坐标中相机与图像码的相对位置计算得到各个图像码在相机坐标系中的三维坐标,上述三维坐标构成图像坐标集。

步骤s120的具体步骤,包括:

步骤s122,获取相机在各个观测点观测到的各个图像码。

具体地,对相机在各个观测点拍摄到的图像通过图像算法进行处理,得到图像坐标系中的各个图像码的坐标位置。其中的图像算法能够将各个图像码图像中提取出来,将各个图像的标识识别出来,根据各个图像码的标识信息区分不同的图像码,区分图像码,便于后续计算相机外参。在不同的观测点观测到的用一个图像码为目标图像码。

其中,图像码按照预设条件铺设,图像码的铺设位置可以但不限于铺设在在地平面,天花板,甚至是不在同一平面的墙面上,或者是能够被相机拍摄到的地方,通过相机拍摄图像。相机的放置姿态可以但不限于垂直向下,斜向下,向侧向,垂直向上等。根据不同的铺设方式,相机的放置位置也有所不一样。例如,将相机垂直向上放置,图像码铺设在天花板上或者将相机垂直向下放置,图像码铺设在地平面上,又或者相机斜向下放置,图像码铺设在底板上或者墙面上等。

步骤s124,获取各个图像码与相机在图像坐标系的相对位置组成第一相对位置集。

具体地,根据步骤s122中得到的各个图像码与相机的成像原理,计算得到各个图像码与相机在图像坐标系的相对位置,上述各个图像码与相机在图像坐标系的相对位置构成第一相对位置集。

步骤s126,根据图像坐标系与相机坐标系之间的转换关系将第一相对位置集转换为相机坐标系中图像码与相机相对位置组成的第二相对位置集。

其中,图像坐标系与相机坐标系之间的转换关系可以根据相机内参得到。具体地,根据相机内参将图像坐标系中各个图像码与相机在图像坐标系的相对位置构成第一相对位置集转换为相机坐标系中图像码与相机相对位置组成的第二相对位置集。

步骤s128,通过第二相对位置集计算得到图像码在相机坐标系中的图像坐标集。

具体地,根据图像码与相机相对位置组成的第二相对位置集计算得到各个图像码在相机坐标系中的三维坐标,由上述三维坐标组成图像坐标集。其中,图像坐标集用于计算地平面的法向量和相机外参。

例如,根据图像算法计算得到m个图像码,其中m为各个观测点总观测数目,计算m个图像码与相机的第一相对位置集,根据相机内参将图像坐标系中的第一相对位置集转换为相机坐标系中的第二相对位置集,根据第二相对位置集得到图像坐标集,图像坐标集为m个图像码的在相机坐标系中的三维坐标集合。

如图4所示,在一个实施例中,步骤s130,包括:

步骤s132,获取图像坐标集,由图像坐标集按照预设规则构成矩阵,计算矩阵的特征值。

步骤s134,选取特征值中最小特征值计算最小特征值对应的特征向量取特征向量的对应法向量作为法向量。

具体地,将各个图像码在相机坐标系中的坐标按照预设的规则进行排列构成矩阵,按照计算矩阵特征值的方法计算出该矩阵的特征值。选取步骤s134中矩阵的特征值中最小特征值,根据最小特征值计算的出对应的特征向量。

例如,对于在第k个观测点观测到的第i个图像码,有以下方程:

其中,是第k个观测点时第i个图像码在相对相机的三维位置,(a,b,c)是地平面的法向量,hi是第i个图像码码距离地平面的高度。将所有观测都列出来,我们有以下矩阵方程:

av=0

其中,a是一个包含所有图像码在相机中的观测的m*(n+3)维的矩阵,n为铺设的图像码个数,m为图像码的总观测数目,同一个图像码可能被多次观察到,一个图像码只有一个高度。v则包含了地平面的法向量以及所有图像码高度的位置向量。

选取矩阵a对应的特征值中的最小特征值为λ1,根据av=λ1v得到最小特征值λ1对应的特征向量v1,将特征向量v1中对应的法向量部分作为地平面的法向量。

如图5所示,在一个实施例中,步骤s160,包括:

步骤s162,获取投影坐标集中能够同时观测到同一个目标图像码的目标投影坐标集。

具体地,选取步骤s140得到的投影坐标集中能够被多个观测点同时观测到的图像码的投影坐标,将所有能够被多个观测点同时观测到的图像码的投影坐标组成目标投影坐标集。同一个观测点可能观测到多个图像码,同一个图像码可以被多个观测点的相机观测到。

步骤s164,获取目标里程计相对位置集,目标里程计相对位置集为同时观测到同一个目标图像码的不同观测点之间的相对位置集。

具体地,对里程计相对位置集进行筛选得到能够同时观测到同一个目标图像码的里程计之间的相对位置子集,上述相对位置子集为目标里程计相对位置集。其中,里程计相对位置集与步骤s150中的得到的里程计相对位置集是一致的。

步骤s166,根据法向量、目标投影坐标集和目标里程计相对位置集计算得到相机与里程计的初始外参,初始外参包括相机与里程计之间的旋转角度和偏移量。

具体地,法向量与步骤s130中的法向量一致,根据法向量和投影坐标集合能够得到相机的俯仰角、横滚角和垂直分量。根据目标投影坐标集能够计算得到图像码与相机的相对位置集和/或相对位姿集,根据目标里程计相对位置集能够得到不同观测点之间的里程计相对位置集,根据里程计的相对位置集与相机的相对位置集和/或相对位姿集能够计算得到相机与里程计的之间的航偏角和水平偏移量。在本实施例中,通过投影后的坐标进行计算能够有效减少计算量,降低算法的复杂度。

如图6所示,在一个实施例中,步骤s166包括

步骤s1662,获取目标里程计相对位置集中里程计相邻且角度在预设范围内的第一目标里程计相对位置集。

具体地,选取目标里程计相对位置集中两个相邻时刻的里程计,且里程计之间的角度范围在于预设范围内,由所有满足上述条件的里程计相对位置组成第一目标里程计相对位置集。

步骤s1664,获取与第一目标里程计相对位置集对应的观测点观测到的第一目标投影坐标集。

具体地,根据与上述第一目标里程计相对位置集所对应的时刻的观测点的目标图像码的投影坐标,所有目标图像码的投影坐标组成第一目标投影坐标集。其中,第一目标做标集为上述目标投影坐标集按照与步骤s1662中一样的预设的筛选出来的子集。

步骤s1666,根据第一目标投影坐标集和第一目标里程计相对位置集和法向量计算得到初始外参。

具体地,根据上述第一目标投影坐标集计算得到图像码集与相机之间的相对位置集和/或相对位姿集,根据相对位置集和/或相对位姿集、第一目标里程计相对位置集和法向量计算得到相机与里程计之间的初始外参。其中,对数据的筛选能够减少运算量,提高稳定性,降低噪声。

如图7所示,在一个实施例中,步骤s1666包括:

步骤s1666a,根据法向量与相机坐标系的中相机的光轴计算得到俯仰角。

其中,俯仰角pitch为物体绕坐标系中x轴旋转的角度,即与xoy平面的夹角,o为坐标系的原点。具体地,根据相机的光轴即相机坐表系中的z轴,根据z轴与法向量计算能够得到相机的俯仰角,因为里程计相对于地面平行,故相机与地平面的俯仰角即为相机与里程计之间的俯仰角。

步骤s1666b,根据法向量投影的相机的光轴与光轴垂直的平面中第一坐标轴计算横滚角。

其中,第一坐标轴是指相机坐标系的x轴,光轴与xoy平面垂直,相机坐标系与步骤s130中的相机坐标系定义一致。具体地根据法向量将相机的光轴投影到地平面中得到一个平面向量,计算x轴与平面向量的夹角,所得到的夹角为横滚角。其中,横滚角roll为围绕z轴旋转得到的角度。

步骤s1666c,根据第一目标投影坐标集和第一目标里程计相对位置集计算得到航偏角和水平偏移量。

具体地,根据上述第一目标投影坐标集计算得到图像码集与相机之间的相对位置集和/或相对位姿集,根据相对位置集和/或相对位姿集、第一目标里程计相对位置集和法向量计算得到相机与里程计之间的航偏角和水平偏移量。根据相对位置计算航偏角和水平偏移量时,对图像码的布置并无太多要求,且无需测量其绝对位置。采用相对位姿计算时对图像码的要求相对较高,比如尺寸需要在预设范围内,以能够得到比较精确的图像码位姿为准。

步骤s1666d,选取图像坐标集中至少一个目标图像码的图像坐标集,根据目标图像码与相机的相对位置集计算得到相机的垂直分量。

具体地,从所有的图像坐标集中选取其中至少一个目标图像码的图像坐标集,根据目标图像码坐标集的各个目标图像码坐标计算得到各个目标图像码与相机的相对位置,由各个目标图像码与相机的相对位置组成相对位置集,根据相对位置集计算相机的垂直分量。

如图8所示,在一个实施例中,步骤s1666c包括:

步骤s1666c-1,根据第一预设条件获取第一目标里程计相对位置集中的多组第一目标里程计相对位置子集。

其中,第一预设条件表示两个相邻时刻相机能够观测到同一个目标图像码,根据第一预设条件获取到的数据能够计算得到目标图像码与相机的相对位置或相对位姿。因为相对位姿中包含了相对位置,故能够计算得到相对位姿的数据就能够计算得到相对位置。具体地,选取第一目标里程计相对位置集中满足第一预设条件的里程计相对位置组成第一目标里程计相对位置子集。选取多组能够减少数据误差。

步骤s1666c-2,根据第一目标里程计相对位置子集计算得到里程计之间的旋转角度集。

具体地,根据第一目标里程计相对位置子集中各个第一目标里程计相对位置计算得到两个相邻时刻的里程计之间的旋转角度组成旋转角度集。例如,里程计在t1时刻的与原点的相对位置为s1,在t2时刻原点的相对位置为s2,根据s1与s2计算得到t1时刻里程计与t2时刻里程计之间的相对位置和旋转角度,满足第一预设条件下的各个旋转角度组成旋转角度集。例如,t1时刻与t2时刻里程之间的旋转角度的信息包含在中。其中,c1为t1时刻观测时的相机坐标系,c2为t2时刻观测时的相机坐标系。在平面内,相机和agv是相对固定的,agv旋转角度即为相机旋转角度,agv的旋转角度与里程计的旋转角度是一致的,故将计算得到的里程计的旋转角度作为相机的旋转角度。

步骤s1666c-3,获取与第一目标里程计相对位置子集对应的观测点集的第一观测点集的第一观测目标投影坐标集和第二观测点集的第二观测目标投影坐标集。

其中,第一观测点、第二观测点分别为第一目标里程计相对位置对应的第一个观测点和第二个观测点,第一个观测点表示t1时刻的观测点,第二个观测点表示t2时刻的观测点,t1时刻与t2时刻代表了里程计运行的先后顺序,t1时刻表示时间在前,t2时刻表示时间在后。具体地,选取满足第一预设条件时与第一目标里程计相对位置子集对应的观测点集中t1时刻观测点的第一观点目标投影坐标集和t2时刻观测点的第二观点目标投影坐标集。

步骤s1666c-4,根据第一观测目标投影坐标集计算得到目标图像码集与相机的第一图像码相对位置集。

具体地,根据第一观测目标投影坐标集计算各个目标图像码的各个目标投影坐标,并计算各个目标投影坐标与相机投影坐标计算得到相机与各个目标图像码之间的相对位置组成第一图像码相对位置集。例如,在t1时刻目标图像码与相机的相对位置为其中,m为图像码的二维坐标。

步骤s1666c-5,根据观第二观测目标投影坐标集与旋转角集计算得到目标图像码集与相机的第二图像码相对位置集。

具体地,根据第二观测目标投影坐标集计算各个目标图像码的各个目标投影坐标,根据各个目标投影坐标与相机的投影坐标得到各个目标图像码与相机的相对位置组成第三图像码相对位置集,根据第三图像码相对位置集与对应的旋转角集计算能得到第二图像码相对位置集。其中第三图像码相对位置为当前时刻相机系中目标图像码与相机的相对位置,第二图像码相对位置为第一观测点相机作坐标系中目标图像码与相机的相对位置。例如,在t2时刻相机坐标系下,相机与目标图像码的相对位置为根据旋转角与t2时刻相机坐标系下,相机与目标图像码的相对位置计算在t1时刻相机坐标系下t2时刻里程计与目标图像码的相对位置,即

步骤s1666c-6,根据第一图像码相对位置集与第二图像码相对位置集计算得到相机相对位置集,相机相对位置集即为第一目标投影坐标集。

具体地,根据第一图像码相对位置集中各个第一图像码相对位置与第二图像码相对位置集中各个第二图像码相对位置计算得到相机的各个相对位置组成相机相对位置集。例如,根据上述计算得到t1时刻相机与t2时刻相机的相对位置为则有其中,为将t2时刻相机坐标系旋转到t1时刻相机坐标系的旋转矩阵。其中,c1表示t1时刻的相机的投影坐坐标,c2表示t2时刻的相机的投影坐标,为目标图像码与t1时刻时的相机在投影坐标系中的相对位置,为目标图像码与t2时刻时的相机在投影坐标系中的相对位置。

步骤s1666c-7,根据第一目标投影坐标集与第一目标里程计相对位置子集计算得到航偏角。

具体地,选取相对位置集中两个相邻时刻相机能够观测同一个目标图像码且里程计之间的变化角度相对较大的各个相机相对位置与对应的第一目标里程计相对位置子集中的各个第一目标里程计相对位置计算得到各个航偏角组成航偏角集,其中,航偏角为里程计的相位位置与相机的相对位置之间的夹角,从得到的多个航偏角中按照航偏角预设规则选取一个最优航偏角。例如,计算其中一个航偏角的具体过程为:根据相机在t1时刻与t2时刻的相对位置里程计在t1时刻与t2时刻的相对位置计算的夹角即为航偏角θ。

步骤s1666c-8,根据第一目标投影坐标集、航偏角以及第一目标里程计相对位置子集计算的到水平偏移量。

具体地,选取相邻里程计之间变换角度较小且能够观测到同一目标图像的第一目标投影坐标集、第一目标里程计相对位置子集以及步骤s1666c-7中计算得到的航偏角计算各个时刻目标图像码的相对位置计算得到目标图像码在第一时刻相机坐标系下的坐标,例如,目标图像码在t1时刻和t2时刻的观测得到的齐次坐标分别为分别表示在t1时刻的相机和t2时刻的相机与图像码的相对位置,利用下列公式计算得到图像码在agv坐标系中agv与图像码的相对位置。

计算在t1时刻的相机与图像码的相对位置,如公式(1)所示:

其中,为agv坐标系中agv与图像码的相对位置,为相机坐标系与agv坐标系的变换矩阵,将相机坐标转换为agv坐标。

计算在t1时刻agv坐标系下agv与图像码的相对位置,如公式(2)所示:

其中,为t2时刻agv坐标系与t1时刻坐标系的变换矩阵,通过变换矩阵将t2时刻的agv坐标转换为t1时刻的agv坐标,变换矩阵通过里程计数据计算得到。

因为两次观测的图像码是同一个图像码,所以通过两次观测数据计算的图像码的在agv坐标系的坐标相等,则有具体形式如公式(3)所示:

其中,θ为步骤s1666c-7中计算得到的航偏角,t1时刻图像码测量位置在地平面投影坐标,为t2时刻图像码测量位置在地平面投影坐标。将能够观测到同一个目标图像码的里程计相对位置集和图像码相对位置集和航偏角带入公式(3),利用最小二乘法即可计算出整个方程组水平偏移的最优解。得到的水平偏移的最优解为相机与里程计之间的水平偏移量。

如图9所示,在另一个实施例中,步骤s1666c包括:

步骤s1666c-a,根据第二预设条件第一目标里程计相对位置集中的多组第二目标里程计相对位置子集。

其中,第二预设条件表示两个相邻时刻相机能够观测到同一个目标图像码。根据第二预设条件获得的里程计数据和相机的观测数据能够计算得到目标图像码与相机的相对位姿。具体地,选取第一目标里程计相对位置集中两个相邻时刻相机能够观测到同一个目标图像码的里程计相对位置组成第一目标里程计相对位置子集。选取多组数据是为了减少数据误差。

步骤s1666c-b,获取根据第一目标投影坐标集计算得到目标图像码与相机的相对位姿集。

具体地,对投影后的目标图像码的相机的相对位置进行计算,根据投影坐标系与相机坐标系的变换矩阵将相机坐标系中的图像码坐标转换为目标投影坐标。投影坐标系与相机坐标系的变换矩阵为如,具体形式如公式(4)所示:

其中,为图像码相对于相机的角度,用于表示图像码相对于相机的相对位置,根据变换矩阵计算得到图像码与相机的相对位姿。将所有的满足第二预设条件的相对位姿组成相对位姿集。

步骤s1666c-c,根据相对位姿集与第二目标里程计相对位置子集计算得到航偏角和水平偏移量。

具体地,将满足第二预设条件的相对位姿集与第二目标里程计相对位置子集,根据计算得到的目标图像码坐标相同列出方程,根据多个方程计算得到航偏角和水平偏移量。例如,根据计算得到的目标图像码坐标相同列出的方程如公式(5)所示:

其中,分别为t1时刻和t2时刻图像码相对于相机的相对位置,可以通过里程计数据计算得到,为t1时刻和t2时刻里程计之间的变换矩阵,的具体形式如公式(6)所示:

将能够观测到同一个目标图像码的里程计相对位置集和图像码相对位置集带入公式(5),通过非线性最小二乘计算得到航偏角和水平偏移量,水平偏移量用x,y表示,航偏角为θ。通过非线性最小二乘法是为了得到一个误差平方和最小的水平偏移量和航偏角,若只是选取单组数据或者几组数据得到的误差会比较大,通过非线性最小二乘法能够有效的利用已有的数据,且得到更为精确的航偏角和水平偏移量。

初始外参包括俯仰角、横滚角、航偏角和垂直分量和水平偏移量。相机的初始外参是对筛选的数据进行处理的,得到一个较为准确的相机外参,为了得到更为精确的初始外参,以初始外参作为优化外参的初始值,将所有的相机观测数据和里程计测量数据作为优化系统的输入,再保证精度的前提下,提升了系统稳定性。

如图10所示,提供一种相机外参的标定装置100,所述装置包括:

法向量计算模块130,用于获取相机坐标系中的各个图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量。

投影坐标集计算模块140,用于根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面坐标中所述各个图像码的投影坐标集。

里程计相对位置集获取模块150,用于获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集。

初始外参计算模块160,用于根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与所述相机的相对位置。

外参优化模块170,用于将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设优化模型,按照预设优化模型进行优化得到相机优化外参。

一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取相机坐标系中的各个图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面中所述各个图像码的投影坐标集;获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与相机的相对位置;将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设模型,按照预设模型进行优化得到相机优化外参。

在一个实施例中,所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量的步骤之前,所述处理器执行所述计算机程序时还用于实现以下步骤:获取所述相机在各个观测点观测到的各个图像码;获取所述各个图像码与所述相机在图像坐标系的相对位置组成第一相对位置集;根据所述图像坐标系与相机坐标系之间的转换关系将所述第一相对位置集转换为所述相机坐标系中所述图像码与所述相机相对位置组成的第二相对位置集;通过所述第二相对位置集计算得到所述图像码在所述相机坐标系中的所述图像坐标集。

在一个实施例中,所述处理器所执行的所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量,包括:获取所述图像坐标集,由所述图像坐标集按照预设规则构成矩阵,计算所述矩阵的特征值;选取所述特征值中最小特征值计算所述最小特征值对应的特征向量,所述特征向量的对应法向量作为所述法向量。

在一个实施例中,所述处理器所执行的所述根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,包括:获取所述投影坐标集中能够同时观测到同一个目标图像码的目标投影坐标集;获取目标里程计相对位置集,所述目标里程计相对位置集为所述同时观测到同一个目标图像码的不同观测点之间的相对位置集;根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参,所述初始外参包括所述相机与所述里程计之间的旋转角度和偏移量。

在一个实施例中,所述处理器所执行的所述根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参,包括:获取所述目标里程计相对位置集中所述里程计相邻且角度在预设范围内的第一目标里程计相对位置集;获取与所述第一目标里程计相对位置集对应的观测点观测到的第一目标投影坐标集;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参。

在一个实施例中,所述处理器所执行的所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参的步骤,包括:所述旋转角度包括俯仰角、横滚角和航偏角,所述偏移量包括水平偏移量和垂直分量;根据所述法向量与所述相机坐标系的中相机的光轴计算得到所述俯仰角;根据所述法向量投影的所述相机的光轴与所述光轴垂直的平面中第一坐标轴计算所述横滚角;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量;选取所述图像坐标集中至少一个目标图像码的图像坐标集,根据所述目标图像码与所述相机的相对位置集计算得到所述相机的所述垂直分量。

在一个实施例中,所述处理器所执行的所述根据所述第一目标投影坐标集和所述里程计相对位置计算得到所述航偏角和所述水平偏移量,包括:根据第一预设条件获取所述第一目标里程计相对位置集中的多组第一目标里程计相对位置子集;根据所述第一目标里程计相对位置子集计算得到所述里程计之间的旋转角度集;获取与所述第一目标里程计相对位置子集对应的观测点集的第一观测点集的第一观测目标投影坐标集和第二观测点集的第二观测目标投影坐标集;根据第一观测目标投影坐标集计算得到所述目标图像码集与所述相机的第一图像码相对位置集;根据所述观第二观测目标投影坐标集与所述旋转角集计算得到所述目标图像码集与所述相机的第二图像码相对位置集;根据所述第一图像码相对位置集与所述第二图像码相对位置集计算得到所述相机相对位置集,所述相机相对位置集即为所述第一目标投影坐标集;根据所述第一目标投影坐标集与所述第一目标里程计相对位置子集计算得到所述航偏角;根据所述第一目标投影坐标集、所述航偏角以及所述第一目标里程计相对位置子集计算的到所述水平偏移量。

在一个实施例中,所述处理器所执行的所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量,包括:根据第二预设条件所述第一目标里程计相对位置集中的多组第二目标里程计相对位置子集;获取根据所述第一目标投影坐标集计算得到所述目标图像码与所述相机的相对位姿集;根据所述相对位姿集与所述第二目标里程计相对位置子集计算得到所述航偏角和所述水平偏移量。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时执行以下步骤:获取相机坐标系中的各个图像码的图像坐标集,根据所述图像坐标集计算得到所述相机坐标系中地平面的法向量;根据所述法向量将所述相机坐标系投影到所述地平面中,获取所述地平面中所述各个图像码的投影坐标集;获取里程计的测量数据,所述测量数据包括所述各个观测点之间的所述里程计的相对位置组成的里程计相对位置集;根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,所述初始外参为所述里程计与相机的相对位置;将所述初始外参作为初始值按照预设模型将所述图像坐标集和所述里程计相对位置集输入预设模型,按照预设模型进行优化得到相机优化外参。

在一个实施例中,所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量的步骤之前,所述计算机程序被处理器执行时还执行以下步骤:获取所述相机在各个观测点观测到的各个图像码;获取所述各个图像码与所述相机在图像坐标系的相对位置组成第一相对位置集;根据所述图像坐标系与相机坐标系之间的转换关系将所述第一相对位置集转换为所述相机坐标系中所述图像码与所述相机相对位置组成的第二相对位置集;通过所述第二相对位置集计算得到所述图像码在所述相机坐标系中的所述图像坐标集。

在一个实施例中,所述计算机程序被处理器执行的所述根据相机坐标系中的图像码的坐标集计算所述相机坐标系中地平面的法向量,包括:获取所述图像坐标集,由所述图像坐标集按照预设规则构成矩阵,计算所述矩阵的特征值;选取所述特征值中最小特征值计算所述最小特征值对应的特征向量,所述特征向量的对应法向量作为所述法向量。

在一个实施例中,所述计算机程序被处理器执行的所述根据所述投影坐标集、所述法向量和所述里程计相对位置集计算得到所述相机的初始外参,包括:获取所述投影坐标集中能够同时观测到同一个目标图像码的目标投影坐标集;获取目标里程计相对位置集,所述目标里程计相对位置集为所述同时观测到同一个目标图像码的不同观测点之间的相对位置集;根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参,所述初始外参包括所述相机与所述里程计之间的旋转角度和偏移量。

在一个实施例中,所述计算机程序被处理器执行的所述根据所述法向量、所述目标投影坐标集和所述目标里程计相对位置集计算得到所述相机与里程计的初始外参,包括:获取所述目标里程计相对位置集中所述里程计相邻且角度在预设范围内的第一目标里程计相对位置集;获取与所述第一目标里程计相对位置集对应的观测点观测到的第一目标投影坐标集;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参。

在一个实施例中,所述计算机程序被处理器执行的所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集和所述法向量计算得到所述初始外参的步骤,包括:所述旋转角度包括俯仰角、横滚角和航偏角,所述偏移量包括水平偏移量和垂直分量;根据所述法向量与所述相机坐标系的中相机的光轴计算得到所述俯仰角;根据所述法向量投影的所述相机的光轴与所述光轴垂直的平面中第一坐标轴计算所述横滚角;根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量;选取所述图像坐标集中至少一个目标图像码的图像坐标集,根据所述目标图像码与所述相机的相对位置集计算得到所述相机的所述垂直分量。

在一个实施例中,所述计算机程序被处理器执行的所述根据所述第一目标投影坐标集和所述里程计相对位置计算得到所述航偏角和所述水平偏移量,包括:根据第一预设条件获取所述第一目标里程计相对位置集中的多组第一目标里程计相对位置子集;根据所述第一目标里程计相对位置子集计算得到所述里程计之间的旋转角度集;获取与所述第一目标里程计相对位置子集对应的观测点集的第一观测点集的第一观测目标投影坐标集和第二观测点集的第二观测目标投影坐标集;根据第一观测目标投影坐标集计算得到所述目标图像码集与所述相机的第一图像码相对位置集;根据所述观第二观测目标投影坐标集与所述旋转角集计算得到所述目标图像码集与所述相机的第二图像码相对位置集;根据所述第一图像码相对位置集与所述第二图像码相对位置集计算得到所述相机相对位置集,所述相机相对位置集即为所述第一目标投影坐标集;根据所述第一目标投影坐标集与所述第一目标里程计相对位置子集计算得到所述航偏角;根据所述第一目标投影坐标集、所述航偏角以及所述第一目标里程计相对位置子集计算的到所述水平偏移量。

在一个实施例中,所述计算机程序被处理器执行的所述根据所述第一目标投影坐标集和所述第一目标里程计相对位置集计算得到所述航偏角和所述水平偏移量,包括:根据第二预设条件所述第一目标里程计相对位置集中的多组第二目标里程计相对位置子集;获取根据所述第一目标投影坐标集计算得到所述目标图像码与所述相机的相对位姿集;根据所述相对位姿集与所述第二目标里程计相对位置子集计算得到所述航偏角和所述水平偏移量。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

据此,在一个实施例中还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述各实施例中的任意一个实施例的方法。

以上所述实施例的各技术特征可以进行任意的组,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组都进行描述,然而,只要这些技术特征的组不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1