CN112639883B - 一种相对位姿标定方法及相关装置 - Google Patents
一种相对位姿标定方法及相关装置 Download PDFInfo
- Publication number
- CN112639883B CN112639883B CN202080004815.0A CN202080004815A CN112639883B CN 112639883 B CN112639883 B CN 112639883B CN 202080004815 A CN202080004815 A CN 202080004815A CN 112639883 B CN112639883 B CN 112639883B
- Authority
- CN
- China
- Prior art keywords
- camera
- feature point
- relative pose
- pose
- rotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000008859 change Effects 0.000 claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims description 135
- 238000013519 translation Methods 0.000 claims description 85
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000005457 optimization Methods 0.000 claims description 41
- 230000004438 eyesight Effects 0.000 claims description 36
- 238000000354 decomposition reaction Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 25
- 230000000007 visual effect Effects 0.000 claims description 24
- 238000000605 extraction Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000005259 measurement Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000010267 cellular communication Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 2
- ATUOYWHBWRKTHZ-UHFFFAOYSA-N Propane Chemical compound CCC ATUOYWHBWRKTHZ-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000002485 combustion reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 241000287196 Asthenes Species 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000001294 propane Substances 0.000 description 1
- 230000000979 retarding effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Studio Devices (AREA)
Abstract
一种应用于自动驾驶汽车上的相机之间的相对位姿标定方法及相关装置,该相对位姿标定方法包括:通过第一相机和第二相机采集图像;对该第一相机采集的图像和该第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;根据该第一匹配特征点集,确定该第一相机和该第二相机之间的第一相对位姿;在该第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将该第二相对位姿更新为该第一相对位姿;该第二相对位姿为该自动驾驶装置当前存储的该第一相机和该第二相机之间的相对位姿。本申请提供的相对位姿标定方法,标定精度高,并且可靠性高。
Description
技术领域
本申请涉及自动驾驶领域,尤其涉及一种应用于自动驾驶汽车上的相机之间的相对位姿标定方法及相关装置。
背景技术
自动驾驶汽车需要对车身360°的环境都具有较高的感知能力,对不同场景、不同光照条件、不同距离的障碍物都需要有稳定可靠的感知结果。单个相机由于受到相机参数、安装位置等因素影响,不能实现360°度范围的全覆盖。因此,自动驾驶车辆一般配备有多个相机以提高视觉感知能力。不同的相机一般具有不同的相机参数(如焦距、分辨率、动态范围等),并安装于车身的不同位置,以获得更全面的感知结果。举例来说,自动驾驶车辆在前向、侧向、后向均配备至少一个相机,以覆盖车身周围360°的环境。同时,不同相机的视野不同,不同相机之间均具有部分重叠视野。
自动驾驶汽车上的相机之间的相对位姿会随着使用时间的增加而发生变化,此时就需要对各相机的标定参数(即相机的外参)进行修正,修正相机外参的过程称为重标定。随着具备自动驾驶功能的车辆越来越多,对相机的标定参数重标定的需求也大大增加,不能及时重标定各相机的外参的自动驾驶车辆存在很大的安全隐患。当前采用的一种在线重标定相机的外参的方案如下:自动驾驶车辆获取表征当前分布于道路附近的已知城建标志物之间的相对位置的先验位置信息,并与传感器实时感知到的城建标志物的位置比对,进而进行在线标定。然而,这种方案存在以下多个缺点:需要获取周围环境的先验位置信息,先验不满足时易失效;需要采集大量数据以得到先验位置信息,工作量大。因此,需要研究新的多相机标定方案。
发明内容
本申请实施例提供了一种相对位姿标定方法,能够准确地确定相机之间的相对位姿,并且可靠性高。
第一方面,本申请实施例提供了一种相对位姿标定方法,该方法包括:通过第一相机和第二相机采集图像;所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;对所述第一相机采集的图像和所述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数;根据所述第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。
由于第一相机的视野和第二相机的视野存在重叠,因此第一相机采集的图像中的至少部分特征点与第二相机采集的图像中的至少部分特征点相匹配。所述第一匹配特征点集为对从所述第一相机采集的图像中提取的特征点和从所述第一相机采集的图像中提取的特征点进行特征点匹配得到的。所述自动驾驶装置可以是自动驾驶汽车(也称无人驾驶汽车),也可以是无人机,还可以是其他需要标定相机之间的相对位姿的装置。本申请实施例中,根据第一匹配特征点集,确定第一相机和第二相机之间的第一相对位姿,不依赖于特定的场地或标志物,对周围环境没有先验假设。相比业界常用的在线标定方案,本申请实施例提供的相对位姿标定方法,不需要先验假设,对环境有更强的适应性。另外,本申请实施例提供的相对位姿标定方法,能够达到0.1°以下的重复精度,并有效减少重标定相对位姿的次数,可靠性高。
在一个可选的实现方式中,所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:确定所述第一相机和所述第二相机之间的本质矩阵;根据所述本质矩阵的奇异值分解结果,计算所述第一相机和所述第二相机之间的5自由度DOF相对位姿;将第一距离和第二距离之间的比值,作为尺度因子;所述第一距离和所述第二距离分别为所述自动驾驶装置上的非视觉传感器和视觉传感器测量同一距离得到的结果,所述视觉传感器包括所述第一相机和/或所述第二相机;合并所述5自由度相对位姿和所述尺度因子以得到所述第一相对位姿。
在该实现方式中,通过分解本质矩阵得到两相机之间的5自由度相对位姿,再由该5自由度相对位姿和尺度因子得到6自由度相对位姿,对周围环境无先验假设,也不需要采集周边场景的3D信息,工作量少。
在一个可选的实现方式中,所述根据所述本质矩阵作的奇异值分解结果,计算得到所述第一相机和所述第二相机之间的5自由度相对位姿包括:将所述本质矩阵进行奇异值分解以得到所述奇异值分解结果;根据所述奇异值分解结果,得到所述第一相机和所述第二相机之间的至少两个相对位姿;分别利用所述至少两个相对位姿计算所述第一匹配特征点集中的特征点的三维坐标位置;将所述至少两个相对位姿中使得所述第一匹配特征点集中的各特征点的三维坐标位置均位于所述第一相机和所述第二相机前方的相对位姿作为所述5自由度相对位姿。
在该实现方式中,可以准确、快速地确定第一相机和第二相机之间的5自由度相对位姿。
在一个可选的实现方式中,所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:迭代求解目标方程以得到所述第一相对位姿;在所述目标方程中,所述第一相对位姿包括的参数为未知数,所述第一匹配特征点集中的特征点对、所述第一相机的内参以及所述第二相机的内参为已知数。
在该实现方式中,通过迭代求解目标方程以得到所述第一相对位姿,可以快速、准确地的计算出第一相对位姿,不需要计算本质矩阵。
在一个可选的实现方式中,所述自动驾驶装置安装有M个相机,所述M个相机包括所述第一相机、所述第二相机以及第三相机,所述第三相机的视野与所述第一相机的视野和所述第二相机的视野均存在重叠,所述M为大于2的整数;所述方法还包括:获得M个第一旋转矩阵、M个第二旋转矩阵、M个第一平移矩阵以及M个第二平移矩阵;所述M个第一旋转矩阵为所述第一相机和所述第二相机之间的旋转矩阵且所述M个第一旋转矩阵中至少两个旋转矩阵不同,所述M个第二旋转矩阵为所述第二相机和所述第三相机之间的旋转矩阵且所述M个第二旋转矩阵中至少两个旋转矩阵不同,所述M个第一平移矩阵为所述第一相机和所述第二相机之间的平移矩阵且所述M个第一平移矩阵中至少两个平移矩阵不同,所述M个第二平移矩阵为所述第二相机和所述第三相机之间的平移矩阵且所述M个第二平移矩阵中至少两个平移矩阵不同,所述M个第一旋转矩阵与所述M个第一平移矩阵一一对应,所述M个第二旋转矩阵与所述M个第二平移矩阵一一对应,所述M为大于1的整数;求解第一方程组以得到第三旋转矩阵;所述第一方程组中包括M个第一方程,所述M个第一方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第一方程中,第一旋转矩阵和第二旋转矩阵为已知数,所述第三旋转矩阵为未知数;所述第三旋转矩阵为所述第一相机和所述第三相机之间的旋转矩阵;求解第二方程组以得到第三平移矩阵;所述第二方程组中包括M个第二方程,所述M个第二方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第二方程中,第一旋转矩阵、第二旋转矩阵、第一平移矩阵以及第二平移矩阵为已知数,所述第三平移矩阵为未知数;所述第三平移矩阵为所述第一相机和所述第三相机之间的平移矩阵;将包括所述第三旋转矩阵和所述第三平移矩阵的位姿作为所述第一相机和所述第三相机之间的相对位姿。
在该实现方式中,将多相机两两之间的相对位姿矩阵构成闭环方程,并利用该闭环方程实现无公共视野的相机之间的位姿标定并进行整体优化,从而获得更为精准的相机相对位姿。
在一个可选的实现方式中,所述第一匹配特征点集包括所述第一相机从至少两帧图像中提取出的特征点以及所述第二相机从至少两帧图像中提取出的特征点;所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:根据所述第一匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第一中间位姿;将所述第一匹配特征点集中各特征点对代入至第一公式,得到所述第一匹配特征点集中各特征点对对应的残差,所述第一公式表征中包括所述第一中间位姿;剔除所述第一匹配特征点集中的干扰特征点对以得到第二匹配特征点集;所述干扰特征点对为所述第一匹配特征点集中对应的残差大于残差阈值的特征点对;根据所述第二匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第二中间位姿;将目标中间位姿作为所述第一相机和所述第二相机之间的所述第一相对位姿;所述目标中间位姿为根据目标匹配特征点集中的特征点对确定的所述第一相机和所述第二相机之间的相对位姿,所述目标匹配特征点集中的特征点对的个数小于数量阈值或者所述目标匹配特征点集中的特征点对的个数与所述第一匹配特征点集中的特征点对的个数的比值小于比例阈值。
可选的,所述第一匹配特征点集包括的特征点为第一相机采集的第一图像和第二相机采集的第二图像中相匹配的特征点。当该第一图像和该第二图像中相匹配的特征点对的个数不低于8个时,可以获得两相机相对位姿的一个估计。当第一相机采集的一帧图像和第二相机采集的一帧图像中相匹配的特征点个数较少时,该估计不稳定,可以通过多帧累加减少误差影响。在一些实施例中,自动驾驶装置可提取第i帧两幅图中的特征点,分别记为x′i和xi,将其加入特征点集合X1和X2;持续F帧后,特征点集合X1和X2中保存了F帧中两图像中匹配的特征点(即第一匹配特征点集),使用特征点集合X1和X2进行两相机相对位姿的估计;由于特征点集合X1和X2中的特征点数远远多于单帧的特征点数,因此可以采用迭代优化的方式:首先利用特征点集合X1和X2中全部点进行位姿估计以得到第一中间位姿,之后将该第一中间位姿代入公式(14)计算残差,并将残差大于残差阈值的特征点剔除,利用剩余的特征点重新进行位姿估计以得到第二中间位姿;重复以上过程,直到待剔除的特征点的个数小于数量阈值(如总数的5%)。此时可获得一组F帧数据下的最优解。应理解,一帧中两图像是指第一相机采集的一个图像和第二相机采集的一个图像,并且这一帧中两图像被拍摄的时间间隔小于时间阈值,例如0.5ms、1ms等。根据中心极限定理,假设在长时间的观测中,不同帧之间计算得到的R和是独立同分布的,则随着F的增大,R和将趋于平稳。选取适当的F使得R和的方差满足需求即可。
在该实现方式中,利用多帧累加方式,可以避免单帧计算引发的抖动问题,使标定结果趋于稳定。
在一个可选的实现方式中,所述方法还包括:在所述第一相对位姿与所述第二相对位姿之间的差值不大于所述位姿变化阈值的情况下,输出提醒信息;所述提醒信息用于提示所述第一相机和所述第二相机之间的相对位姿异常。
在该实现方式中,可及时提醒乘客,相机的标定参数异常。
第二方面,本申请实施例提供了另一种相对位姿标定方法,该方法包括:服务器接收来自自动驾驶装置的重标定参考信息,所述重标定参考信息用于所述服务器确定所述自动驾驶装置的第一相机和第二相机之间的相对位姿,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于所述自动驾驶装置的不同位置;所述服务器根据所述重标定参考信息,得到第一匹配特征点集,所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数;所述服务器根据所述第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;所述服务器将所述第一相对位姿发送给所述自动驾驶装置。
可选的,所述重标定参考信息包括第一相机和第二相机同步采集的图像或者所述第一匹配特征点集。所述服务器可存储有所述第一相机的内参和所述第二相机的内参或者接收来自所述自动驾驶装置的所述第一相机的内参和所述第二相机的内参,并根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿。
本申请实施例中,自动驾驶装置不需要自身来标定相机之间的相对位姿,仅需将标定相机之间的相对位姿所需的数据发送给服务器,服务器对自动驾驶装置上的相机之间的相对位姿进行重标定,效率高。
在一个可选的实现方式中,所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿之前,所述方法还包括:所述服务器接收来自所述自动驾驶装置的位姿标定请求,所述位姿标定请求用于请求重标定所述自动驾驶装置的所述第一相机和所述第二相机之间的相对位姿,所述位姿标定请求携带有所述第一相机的内参以及所述第二相机的内参;所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:根据第一匹配特征点集、所述第一相机的内参以及所述第二相机的内参,确定所述第一相机和所述第二相机之间的所述第一相对位姿。
第三方面,本申请实施例提供了另一种相对位姿标定方法,该方法包括:自动驾驶装置向服务器发送重标定参考信息,所述重标定参考信息用于服务器确定所述自动驾驶装置的第一相机和第二相机之间的相对位姿,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;所述自动驾驶装置接收来自所述服务器的所述第一相对位姿;所述自动驾驶装置在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。可选的,所述重标定参考信息包括第一匹配特征点集,所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数。可选的,所述重标定参考信息包括所述第一相机和所述第二相机同步采集的图像。
本申请实施例中,自动驾驶装置不需要自身来标定相机之间的相对位姿,仅需将标定相机之间的相对位姿所需的数据发送给服务器,工作量少。
在一个可选的实现方式中,所述自动驾驶装置向服务器发送重标定参考信息之前,所述方法还包括:所述自动驾驶装置向所述服务器发送位姿标定请求,所述位姿标定请求用于请求重标定所述自动驾驶装置的所述第一相机和所述第二相机之间的相对位姿,所述位姿标定请求携带有所述第一相机的内参以及所述第二相机的内参。
第四方面,本申请实施例提供了一种自动驾驶装置,包括:图像采集单元,用于分别通过第一相机和第二相机采集图像;所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;图像特征点提取单元,用于对所述第一相机采集的图像和所述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数;位姿计算单元,用于根据所述第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置,所述H为不小于8的整数;
标定参数更新单元,用于在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。
在一个可选的实现方式中,所述位姿计算单元,具体用于确定所述第一相机和所述第二相机之间的本质矩阵;根据所述本质矩阵的奇异值分解结果,计算所述第一相机和所述第二相机之间的5自由度DOF相对位姿;所述装置还包括:尺度计算单元,用于将第一距离和第二距离之间的比值,作为尺度因子;所述第一距离和所述第二距离分别为所述自动驾驶装置上的非视觉传感器和视觉传感器测量同一距离得到的结果,所述视觉传感器包括所述第一相机和/或所述第二相机;所述位姿计算单元,还用于合并所述5自由度相对位姿和所述尺度因子以得到所述第一相对位姿。
在一个可选的实现方式中,所述位姿计算单元,具体用于将所述本质矩阵进行奇异值分解以得到所述奇异值分解结果;根据所述奇异值分解结果,得到所述第一相机和所述第二相机之间的至少两个相对位姿;分别利用所述至少两个相对位姿计算所述第一匹配特征点集中的特征点的三维坐标位置;将所述至少两个相对位姿中使得所述第一匹配特征点集中的各特征点的三维坐标位置均位于所述第一相机和所述第二相机前方的相对位姿作为所述5自由度相对位姿。
在一个可选的实现方式中,所述位姿计算单元,具体用于迭代求解目标方程以得到所述第一相对位姿;在所述目标方程中,所述第一相对位姿包括的参数为未知数,所述第一匹配特征点集中的特征点对、所述第一相机的内参以及所述第二相机的内参为已知数。
在一个可选的实现方式中,所述自动驾驶装置安装有M个相机,所述M个相机包括所述第一相机、所述第二相机以及第三相机,所述第三相机的视野与所述第一相机的视野和所述第二相机的视野均存在重叠,所述M为大于2的整数;所述装置还包括:闭环优化单元,用于获得M个第一旋转矩阵、M个第二旋转矩阵、M个第一平移矩阵以及M个第二平移矩阵;所述M个第一旋转矩阵为所述第一相机和所述第二相机之间的旋转矩阵且所述M个第一旋转矩阵中至少两个旋转矩阵不同,所述M个第二旋转矩阵为所述第二相机和所述第三相机之间的旋转矩阵且所述M个第二旋转矩阵中至少两个旋转矩阵不同,所述M个第一平移矩阵为所述第一相机和所述第二相机之间的平移矩阵且所述M个第一平移矩阵中至少两个平移矩阵不同,所述M个第二平移矩阵为所述第二相机和所述第三相机之间的平移矩阵且所述M个第二平移矩阵中至少两个平移矩阵不同,所述M个第一旋转矩阵与所述M个第一平移矩阵一一对应,所述M个第二旋转矩阵与所述M个第二平移矩阵一一对应,所述M为大于1的整数;求解第一方程组以得到第三旋转矩阵;所述第一方程组中包括M个第一方程,所述M个第一方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第一方程中,第一旋转矩阵和第二旋转矩阵为已知数,所述第三旋转矩阵为未知数;所述第三旋转矩阵为所述第一相机和所述第三相机之间的旋转矩阵;求解第二方程组以得到第三平移矩阵;所述第二方程组中包括M个第二方程,所述M个第二方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第二方程中,第一旋转矩阵、第二旋转矩阵、第一平移矩阵以及第二平移矩阵为已知数,所述第三平移矩阵为未知数;所述第三平移矩阵为所述第一相机和所述第三相机之间的平移矩阵;将包括所述第三旋转矩阵和所述第三平移矩阵的位姿作为所述第一相机和所述第三相机之间的相对位姿。
在一个可选的实现方式中,所述第一匹配特征点集包括所述第一相机从至少两帧图像中提取出的特征点以及所述第二相机从至少两帧图像中提取出的特征点;所述位姿计算单元,具体用于根据所述第一匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第一中间位姿;将所述第一匹配特征点集中各特征点对代入至第一公式,得到所述第一匹配特征点集中各特征点对对应的残差,所述第一公式表征中包括所述第一中间位姿;剔除所述第一匹配特征点集中的干扰特征点对以得到第二匹配特征点集;所述干扰特征点对为所述第一匹配特征点集中对应的残差大于残差阈值的特征点对;根据所述第二匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第二中间位姿;将目标中间位姿作为所述第一相机和所述第二相机之间的所述第一相对位姿;所述目标中间位姿为根据目标匹配特征点集中的特征点对确定的所述第一相机和所述第二相机之间的相对位姿,所述目标匹配特征点集中的特征点对的个数小于数量阈值或者所述目标匹配特征点集中的特征点对的个数与所述第一匹配特征点集中的特征点对的个数的比值小于比例阈值。
在一个可选的实现方式中,所述装置还包括:提醒单元,用于在所述第一相对位姿与所述第二相对位姿之间的差值不大于所述位姿变化阈值的情况下,输出提醒信息;所述提醒信息用于提示所述第一相机和所述第二相机之间的相对位姿异常。
第五方面,本申请实施例提供了一种服务器,包括:获取单元,用于获得第一匹配特征点集,所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从第一相机采集的图像中提取的特征点,另一个特征点为从第二相机采集的图像中提取的特征点,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置,所述H为不小于8的整数;位姿计算单元,用于根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;发送单元,用于将所述第一相对位姿发送给所述自动驾驶装置。
在一个可选的实现方式中,所述服务器还包括:接收单元,用于接收来自所述自动驾驶装置的位姿标定请求,所述位姿标定请求用于请求重标定所述自动驾驶装置的所述第一相机和所述第二相机之间的相对位姿,所述位姿标定请求携带有所述第一相机的内参以及所述第二相机的内参;所述位姿计算单元,具体用于根据第一匹配特征点集、所述第一相机的内参以及所述第二相机的内参,确定所述第一相机和所述第二相机之间的所述第一相对位姿。
第六方面,本申请实施例提供了一种自动驾驶装置,包括:发送单元,用于向服务器发送重标定参考信息,所述重标定参考信息用于服务器确定所述自动驾驶装置的第一相机和第二相机之间的相对位姿,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;接收单元,用于接收来自所述服务器的所述第一相对位姿;标定参数更新单元,用于在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。
在一个可选的实现方式中,所述发送单元,还用于向所述服务器发送位姿标定请求,所述位姿标定请求用于请求重标定所述自动驾驶装置的所述第一相机和所述第二相机之间的相对位姿,所述位姿标定请求携带有所述第一相机的内参以及所述第二相机的内参。
第七方面,本申请实施例提供了一种汽车,该汽车包括存储器和处理器,该存储器用于存储代码;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行上述第一方面或上述第三方面以及可选的实现方式的方法。
第八方面,本申请实施例提供了一种服务器,该服务器包括存储器和处理器,该存储器用于存储代码;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行上述第二方面以及可选的实现方式的方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面至第三方面以及可选的实现方式的方法。
第十方面,本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面至第三方面以及任一种可选的实现方式的方法。
第十一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面至第三方面以及任一种可选的实现方式的方法。
附图说明
图1是本申请实施例提供的自动驾驶装置的功能框图;
图2为本申请实施例提供的一种自动驾驶系统的结构示意图;
图3为本申请实施例提供的一种相对位姿标定方法流程图;
图4为本申请实施例提供的一种相机之间的公共视野示意图;
图5为本申请实施例提供的一种自动驾驶装置的结构示意图;
图6为本申请实施例提供的另一种自动驾驶装置的结构示意图;
图7为本申请实施例提供的另一种自动驾驶装置的结构示意图;
图8为本申请实施例提供的另一种相对位姿标定方法流程图;
图9为本申请实施例提供的另一种相对位姿标定方法流程图;
图10为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。“和/或”用于表示在其所连接的两个对象之间选择一个或全部。例如“A和/或B”表示A、B或A+B。
如背景技术所述,自动驾驶汽车上的相机之间的相对位姿会随着使用时间的增加而发生变化,此时就需要对各相机的标定参数(即相机的外参)进行修正。随着具备自动驾驶功能的车辆越来越多,对相机的标定参数重标定的需求也大大增加,不能及时重标定各相机的外参的自动驾驶车辆存在很大的安全隐患。本申请实施例提供的相对位姿标定方法可以应用到自动驾驶场景。下面对驾驶场景进行简单的介绍。
驾驶场景1:自动驾驶装置根据具有公共视野的两个相机同步采集的图像中相匹配的特征点,确定这两个相机之间的相对位姿;在重新确定的这两个相机之间的相对位姿与该自动驾驶装置当前标定的这两个相机之间的相对位姿的差值不大于位姿变化阈值的情况下,更新当前标定的相对位姿。
驾驶场景2:自动驾驶装置向服务器发送位姿标定请求以及用于确定该自动驾驶装置上的至少两个相机之间的相对位姿所需的信息,上述位姿标定请求用于请求重标定自动驾驶装置上的至少两个相机之间的相对位姿;该自动驾驶装置根据来自服务器的相对位姿,更新其当前存储的该至少两个相机之间的相对位姿
图1是本申请实施例提供的自动驾驶装置的功能框图。在一个实施例中,将自动驾驶装置100配置为完全或部分地自动驾驶模式。例如,自动驾驶装置100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定自动驾驶装置100及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定该其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制自动驾驶装置100。在自动驾驶装置100处于自动驾驶模式中时,可以将自动驾驶装置100置为在没有和人交互的情况下操作。
自动驾驶装置100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。可选地,自动驾驶装置100可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,自动驾驶装置100的每个子系统和元件可以通过有线或者无线互连。
行进系统102可包括为自动驾驶装置100提供动力运动的组件。在一个实施例中,推进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。
能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为自动驾驶装置100的其他系统提供能量。
传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
传感器系统104可包括感测关于自动驾驶装置100周边的环境的信息的若干个传感器。例如,传感器系统104可包括定位系统122(定位系统可以是全球定位(globalpositioning system,GPS)系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,IMU)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视自动驾驶装置100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主自动驾驶装置100的安全操作的关键功能。
定位系统122可用于估计自动驾驶装置100的地理位置。IMU 124用于基于惯性加速度来感测自动驾驶装置100的位置和朝向变化。在一个实施例中,IMU 124可以是加速度计和陀螺仪的组合。
雷达126可利用无线电信号来感测自动驾驶装置100的周边环境内的物体。
激光测距仪128可利用激光来感测自动驾驶装置100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。
相机130可用于捕捉自动驾驶装置100的周边环境的多个图像。相机130可以是静态相机或视频相机。相机130可以实时或周期性的捕捉自动驾驶装置100的周边环境的多个图像。相机130包括至少两个视野存在重叠的相机,即至少两个相机具有公共视野。
控制系统106为控制自动驾驶装置100及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。
转向系统132可操作来调整自动驾驶装置100的前进方向。例如在一个实施例中可以为方向盘系统。
油门134用于控制引擎118的操作速度并进而控制自动驾驶装置100的速度。
制动单元136用于控制自动驾驶装置100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制自动驾驶装置100的速度。
计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别自动驾驶装置100周边环境中的物体和/或特征。上述物体和/或特征可包括交通信号、道路边界和障碍物。计算机视觉系统140可使用物体识别算法、自动驾驶方法、运动中恢复结构(Structure from Motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。计算机视觉系统140可使用激光雷达获取的点云以及相机获取的周围环境的图像,定位障碍物的位置。
路线控制系统142用于确定自动驾驶装置100的行驶路线。在一些实施例中,路线控制系统142可结合来自传感器138、GPS 122和一个或多个预定地图的数据以为自动驾驶装置100确定行驶路线。
障碍物避免系统144用于识别、评估和避免或者以其他方式越过自动驾驶装置100的环境中的潜在障碍物。
当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
自动驾驶装置100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器152。
在一些实施例中,外围设备108提供自动驾驶装置100的用户与用户接口116交互的手段。例如,车载电脑148可向自动驾驶装置100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108可提供用于自动驾驶装置100与位于车内的其它设备通信的手段。例如,麦克风150可从自动驾驶装置100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向自动驾驶装置100的用户输出音频。
无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用3G蜂窝通信,或者4G蜂窝通信,例如LTE,或者5G蜂窝通信。无线通信系统146可利用WiFi与无线局域网(wireless local area network,WLAN)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙或ZigBee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicated short range communications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
电源110可向自动驾驶装置100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为自动驾驶装置100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。
自动驾驶装置100的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式方式控制自动驾驶装置100的个体组件或子系统的多个计算设备。
处理器113可以是任何常规的处理器,诸如商业可获得的中央处理器(centralprocessing unit,CPU)。替选地,该处理器可以是诸如ASIC或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、存储器和在相同块中的计算机系统112的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机系统112的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,上述处理器只执行与特定于组件的功能相关的计算。
在此处所描述的各个方面中,处理器可以位于远离该自动驾驶装置并且与该自动驾驶装置进行无线通信。在其它方面中,此处所描述的过程中的一些操作在布置于自动驾驶装置内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115可被处理器113执行来执行自动驾驶装置100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向推进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。
除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其他信息。这些信息可在自动驾驶装置100在自主、半自主和/或手动模式中操作期间被自动驾驶装置100和计算机系统112使用。
用户接口116,用于向自动驾驶装置100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车载电脑148、麦克风150和扬声器152。
计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制自动驾驶装置100的功能。例如,计算机系统112可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统112可操作来对自动驾驶装置100及其子系统的许多方面提供控制。
可选地,上述这些组件中的一个或多个可与自动驾驶装置100分开安装或关联。例如,数据存储装置114可以部分或完全地与自动驾驶装置100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。
可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本申请实施例的限制。
在道路行进的自动驾驶汽车,如上面的自动驾驶装置100,可以识别其周围环境内的物体以确定对当前速度的调整。上述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。
可选地,自动驾驶装置100或者与自动驾驶装置100相关联的计算设备(如图1的计算机系统112、计算机视觉系统140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰等等)来预测上述识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。自动驾驶装置100能够基于预测的上述识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定自动驾驶装置100的速度,诸如,自动驾驶装置100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。
除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改自动驾驶装置100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。
上述自动驾驶装置100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本发明实施例不做特别的限定。
自动驾驶装置100可通过相机130实时或者周期性的采集图像。相机130包括的两个或者两个以上相机可同步采集图像。两个相机同步采集图像是指这两个相机采集图像的最短时间小于时间阈值,例如10ms。可选的,自动驾驶装置100将通过相机130采集的图像以及用于确定相机130包括的至少两个相机之间的相对位姿所需的信息发送给服务器;接收来自服务器的相对位姿,并更新相机130包括的至少两个相机之间的相对位姿。可选的,自动驾驶装置100根据相机130采集的图像,确定相机130包括的至少两个相机之间的相对位姿。
图1介绍了自动驾驶装置100的功能框图,下面介绍一种自动驾驶系统101。图2为本申请实施例提供的一种自动驾驶系统的结构示意图。图1和图2是从不同的角度来描述自动驾驶装置100。如图2所示,计算机系统101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中,每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(I/O)总线113耦合。I/O接口115和I/O总线耦合。I/O接口115和多种I/O设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121,多媒体接口等。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉景田和动态数字视频图像)和外部USB接口125。可选的。和I/O接口115相连接的接口可以是USB接口。
其中,处理器103可以是任何传统处理器,包括精简指令集计算(“RISC”)处理器、复杂指令集计算(“CISC”)处理器或上述的组合。可选的,处理器可以是诸如专用集成电路(“ASIC”)的专用装置。可选的,处理器103可以是神经网络处理器(Neural-networkProcessing Unit,NPU)或者是神经网络处理器和上述传统处理器的组合。可选的,处理器103挂载有一个神经网络处理器。
计算机系统101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络。可选的,网络127还可以是无线网络,比如WiFi网络,蜂窝网络等。
硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存135和系统总线105耦合。运行在系统内存135的数据可以包括计算机系统101的操作系统137和应用程序143。
操作系统包括壳(Shell)139和内核(kernel)141。壳139是介于使用者和操作系统之内核(kernel)间的一个接口。壳139是操作系统最外面的一层。壳139管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。
应用程序141包括自动驾驶相关程序,比如,管理自动驾驶装置和路上障碍物交互的程序,控制自动驾驶装置的行车路线或者速度的程序,控制自动驾驶装置100和路上其他自动驾驶装置交互的程序。应用程序141也存在于软件部署服务器(deploying server)149的系统上。在一个实施例中,在需要执行应用程序141时,计算机系统101可以从软件部署服务器149下载应用程序141。
传感器153和计算机系统101关联。传感器153用于探测计算机系统101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。可选的,如果计算机系统101位于自动驾驶装置上,传感器可以是摄像头(即相机),激光雷达,红外线感应器,化学检测器,麦克风等。传感器153在激活时按照预设间隔感测信息并实时或接近实时地将所感测的信息提供给计算机系统101。可选的,传感器可以包括激光雷达,该激光雷达可以实时或接近实时地将获取的点云提供给计算机系统101,即将获取到的一系列点云提供给计算机系统101,每次获取的点云对应一个时间戳。可选的,摄像头实时或接近实时地将获取的图像提供给计算机系统101,每帧图像对应一个时间戳。应理解,计算机系统101可得到来自摄像头的图像序列。
可选的,在本文上述的各种实施例中,计算机系统101可位于远离自动驾驶装置的地方,并且可与自动驾驶装置进行无线通信。收发器123可将自动驾驶任务、传感器153采集的传感器数据和其他数据发送给计算机系统101;还可以接收计算机系统101发送的控制指令。自动驾驶装置可执行收发器接收的来自计算机系统101的控制指令,并执行相应的驾驶操作。在其它方面,本文上述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。
自动驾驶装置在自动驾驶过程中及时更新其部署的相机之间的相对位姿。后续会详述自动驾驶装置如何更新其部署的相机之间的相对位姿的方式。另外,本申请实施例提供的相对位姿标定方法,不仅可应用于自动驾驶装置,还可以应用于未部署自动驾驶系统的车辆。下面来介绍本申请实施例提供的相对位姿标定方法。
图3为本申请实施例提供的一种相对位姿标定方法流程图。如图3所示,该方法包括:
301、自动驾驶装置通过第一相机和第二相机采集图像。
上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置。自动驾驶装置可以是自动驾驶汽车;也可以是无人机,还可以是其他需要标定相机之间的相对位姿的装置。
302、自动驾驶装置对上述第一相机采集的图像和上述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集。
上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从上述第一相机采集的图像中提取的特征点,另一个特征点为从上述第二相机采集的图像中提取的特征点,上述H为不小于8的整数。自动驾驶装置对上述第一相机采集的图像和上述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集可以是分别对第一相机和第二相机同步采集的两帧图像进行特征点匹配以得到上述第一匹配特征点集。举例来说,第一相机在第一时间点采集到图像1,第二相机在第一时间点采集到图像2;自动驾驶装置提取图像1中的特征点得到第一图像特征点集1,提取图像2中的特征点得到图像特征点集2;然后,对图像特征点集1和图像特征点集2中的特征点进行匹配,得到匹配特征点集(对应于第一匹配特征点集)。
在一些实施例中,自动驾驶装置实现步骤302的一种方式如下:自动驾驶装置利用第一相机和第二相机同步采集图像,得到第一图像序列和第二图像序列,其中,该第一图像序列中的多个图像与该第二图像序列中的图像一一对应;对该第一图像序列和该第二图像序列中一一对应的图像进行特征点匹配,得到上述第一匹配特征点集。举例来说,第一图像序列中的图像1至图像5与第二图像序列中的图像6至图像10一一对应,自动驾驶装置可对从该图像1提取出的特征点与从图像6提取出的特征点进行特征匹配,将得到的特征点对加入上述第一匹配特征点集;对从该图像2提取出的特征点与从图像7提取出的特征点进行特征匹配,将得到的特征点对加入上述第一匹配特征点集;以此类推。应理解,图像1和图像6为第一相机和第二相机同步采集的图像(即对应于同一帧图像),图像2与图像7为第一相机和第二相机同步采集的图像(即对应于同一帧图像),以此类推。在实际应用中,自动驾驶装置可对第一相机和第二相机同步采集的多帧图像进行特征点匹配,将得到的特征点对存入第一匹配特征点集。一帧图像可包括第一相机采集的一个图像和第二相机采集的一个图像。
303、自动驾驶装置根据第一匹配特征点集,确定第一相机和第二相机之间的第一相对位姿。
上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从上述第一相机采集的图像中提取的特征点,另一个特征点为从上述第二相机采集的图像中提取的特征点,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置,上述H为不小于8的整数。
304、自动驾驶装置在上述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将上述第二相对位姿更新为上述第一相对位姿。
上述第二相对位姿为上述自动驾驶装置当前存储的上述第一相机和上述第二相机之间的相对位姿。位姿变化阈值可以是多相机系统能够正常工作所允许的最大的偏差阈值,例如第一相对位姿与第二相对位姿之间的旋转角度偏差不超过0.5度。图3中的方法流程描述了确定具有公共视野的第一相机和第二相机之间的相对位姿的方式。应理解,自动驾驶装置可采用类似图3中的方法流程确定任意两个具有公共视野的相机之间的相对位姿。在自动驾驶装置的多相机视觉系统(对应于图1中的相机130)中,不同安装位置的两个相机之间一般会具有公共视野,根据相机之间的公共视野分布情况,可以将具有公共视野的两相机组成一对(默认左侧相机在前,右侧相机在后)。图4为本申请实施例提供的一种相机之间的公共视野示意图。如图4所示,具有公共视野的相机包括:相机3和相机1,相机3和相机2,相机1和相机2。图4中仅展示了相机1和相机2之间的公共视野。在一些实施例中,可以将多相机系统中的相机均按以上方式分组,得到多对相机,即将各具有公共视野的两个相机分为一组;然后,采用图3中的方法流程以得到每对相机之间的相对位姿。
本申请实施例提供的相对位姿标定方法,能够达到0.1°以下的重复精度,并有效减少重标定相对位姿的次数,可靠性高。
图3中未详述如何根据第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿的实现方式。下面介绍步骤303的一些可选的实现方式。
方式一
自动驾驶装置根据第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿的方式如下:确定上述第一相机和上述第二相机之间的本质矩阵;根据上述本质矩阵的奇异值分解结果,计算上述第一相机和上述第二相机之间的5自由度(Degreeof Freedom,DOF)相对位姿;将第一距离和第二距离之间的比值,作为尺度因子;上述第一距离和上述第二距离分别为上述自动驾驶装置上的非视觉传感器(例如激光雷达)和视觉传感器(例如相机130)测量同一距离得到的结果,上述视觉传感器包括上述第一相机和/或上述第二相机;合并上述5自由度相对位姿和上述尺度因子以得到上述第一相对位姿。
示例性的,自动驾驶装置可采用如下步骤确定上述第一相机和上述第二相机之间的本质矩阵:
1)从第一匹配特征点集中获取从第一相机采集的图像中提取的特征点x′和从第二相机采集的图像中提取的特征点x。例如,x=[x y 1]T,x′=[x′ y′ 1]T。
由两相机之间的基本矩阵的性质可知,有以下公式成立:
x′Fx=0 (1);
将上式(1)展开则有:
x′xf11+x′yf12+x′f13+y′xf21+y′yf22+y′f23+xf31+yf32+f33=0 (2);
将上式写成矩阵形式则有:
(x′x,x′y,x′,y′x,y′y,y′,x,y,1)f=0 (3);
其中,f=[f11 f12 f13 f21 f22 f23 f31 f32 f33]T。
对于g组特征点对可得到如下矩阵方程:
2)求解以上矩阵方程(4)可得基本矩阵F的线性解。
3)采用如下公式将基本矩阵F进行奇异值分解:
F=UDVT (5);
其中D为对角阵,除对角线元素外都为0,对角线元素以r、s、t表示,则有:D=diag(r,s,t),且满足r≥s≥t。令t=0得到:F′=udiag(r,s,0)VT,F′即为基本矩阵F满足奇异性约束的一个最优估计。
4)利用基本矩阵和本质矩阵之间的转换关系计算得到本质矩阵E:
E=K′TFK (6):
其中,K为第一相机的内参矩阵,K′为第二相机的内参矩阵,K和K′均为已知量。根据上式(6)可得到本质矩阵E。
可选的,自动驾驶装置根据上述本质矩阵的奇异值分解结果,计算上述第一相机和上述第二相机之间的5自由度DOF相对位姿的步骤如下:
(1)、采用如下公式将本质矩阵进行奇异值分解以得到奇异值分解结果:
(2)根据上述奇异值分解结果,得到上述第一相机和上述第二相机之间的至少两个相对位姿。
假定第一相机的位姿为P=Rt[I 0],其中,Rt是第一相机相对车身坐标系的变换矩阵,I是3*3的单位矩阵。第二相机的位姿P′的四种可能的形式如下:
(3)分别利用三角法对第一匹配特征点集中的各特征点进行测距,将使得全部特征点的三维坐标位置同时位于第一相机和第二相机前方的位姿P’作为第二相机的位姿。
利用三角法对第一匹配特征点集中的各特征点进行测距可以是:采用三角化公式根据第一匹配特征点集中的每组特征点对确定一个三维空间坐标。由一组特征点对计算得到的一个三维空间坐标即为该组特征点对包括的两个特征点对应的空间坐标。三角化最早由高斯提出,并应用于测量学中。简单来讲就是:在不同的位置观测同一个三维点P(x,y,z),已知在不同位置处观察到的三维点的二维投影点X1(x1,y1),X2(x2,y2),利用三角关系,恢复出该三维点的深度信息,即三维空间坐标。三角化主要是通过匹配的特征点(即像素点)来计算特征点在相机坐标系下的三维坐标。确定P’的表达形式后,由于P’的平移部分(最后一列)由确定,而是归一化的单位向量,因此P’的平移部分与真实值相差一个尺度因子。此时两相机之间的5自由度位姿被确定。通过这种方式,可以准确、快速地确定第一相机和第二相机之间的5自由度相对位姿。
两相机之间的相对位姿共有6个自由度,通过对本质矩阵的分解可获得两相机之间的5DOF相对位姿,即其中,两相机之间的相对转角可以通过R精确获得,而两相机之间的相对位置只能获得归一化结果,即与真实值相差一个尺度因子。确定尺度因子需要依赖其他传感器的输出。可选的,记某非视觉传感器获得测量距离s,利用获得的相机相对位姿,可以通过多相机三维重构技术获得同样的测量距离s′,则尺度因子为两相机之间的6DOF相对位姿为
一种可行的确定尺度因子的方案如下:利用激光雷达或毫米波雷达测量某个目标与自动驾驶装置之间的距离s,同时使用相机利用双目(或多目)视觉测量得到同一目标到自动驾驶装置的距离s′,从而获得尺度因子。
另一种可行的确定尺度因子的方案如下:利用惯性测量单元(InertialMeasurement Unit,IMU)或轮速计测量自动驾驶装置的移动距离s,同时利用双目(或多目)视觉测量得到某静止目标在第一时刻与自动驾驶装置之间的第一距离和该静止目标在第二时刻与该自动驾驶装置之间的第二距离的距离差值s′,同样可获得尺度因子。其中,该第一时刻为该自动驾驶装置移动距离s的起始时刻,该第二时刻为该自动驾驶装置移动距离s的结束时刻。
在该实现方式中,通过分解本质矩阵得到两相机之间的5自由度相对位姿,再由该5自由度相对位姿和尺度因子得到6自由度相对位姿,对周围环境无先验假设,也不需要采集周边场景的3D信息,工作量少。
方式二
自动驾驶装置根据第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿的方式如下:迭代求解目标方程以得到上述第一相对位姿;在上述目标方程中,上述第一相对位姿包括的参数为未知数,上述第一匹配特征点集中的特征点对、上述第一相机的内参以及上述第二相机的内参为已知数。
假定第一匹配特征点集中,从第一相机采集的图像中提取的特征点为x′,从第二相机采集的图像中提取的特征点为x。例如,x=[x y 1]T,x′=[x′ y′ 1]T。
第一相机和第二相机之间的本质矩阵E有如下等式成立:
上式等号两侧均为E的表达式,其中,K为第一相机的内参矩阵,K′为第二相机的内参矩阵,R表示第一相机和第二相机之间的旋转矩阵,t表示第一相机和第二相机之间的平移向量,t=[t1 t2 t3]T。第一相机和第二相机之间的基本矩阵F有如下等式成立:
x′Fx=0 (13);
利用公式(12)消去公式(13)中的F可得如下目标方程:
可选的,利用梯度下降法采用如下公式迭代求解目标方程以得到上述第一相对位姿:
其中α为步长参数,可根据经验设置。将x′和x代入公式(15),优化更新该步骤不依赖于x′和x点的个数,即使第一匹配特征点集中特征点数很少(如在隧道等特殊场景下),仍然可以对进行优化,直至获得稳定结果。
在该实现方式中,通过迭代求解目标方程以得到上述第一相对位姿,可以快速、准确地的计算出第一相对位姿,不需要计算本质矩阵。
在一些实施例中,自动驾驶装置得到具有公共视野的两个相机之间的相对位姿(例如通过执行图1中的方法流程)之后,可以利用各对具有公共视野的两两相机之间的相对位姿组成的闭环构建方程组,进行整体优化。下面以相机1(即第一相机),相机2(即第二相机),相机3(即第三相机)为例,来介绍如何对得到的两两相机之间的相对位姿进行优化。
假设相机i和相机j之间的位姿为Rtij表示从相机i转到相机j坐标系下的转换矩阵,Rij表示相机i和相机j之间的旋转矩阵,表示相机i和相机j之间的平移矩阵。示例性的,相机1,相机2,相机3之间的位姿关系如下:
Rt31Rt23=Rt21 (16);
其中三个Rt构成闭环,可以通过整体优化获得更优的结果。三个转换矩阵都可以通过公共视野关系(例如采用图1中的方法流程)单独计算得出,因此,公式(16)是一个闭环方程。通过优化以上方程即可得到更优的结果。对于更多的相机组成的系统而言,只要两两相机具有公共视野且可构成闭环,都可以采用以上方式进行优化。如相机a,相机b,相机c,...,相机z,两两相邻相机有公共视野,则有闭环方程:RtabRtbcRtcd...RtyzRtza=0。下面介绍如何利用相机之间的变换矩阵构成的闭环方程,优化相机之间的相对位姿的方式。
以相机1(即第一相机),相机2(即第二相机)以及相机3(即第三相机)为例,这三个相机组成的闭环方程如公式(16),将公式(16)展开可得如下两个方程:
R31R23=R21 (17);
应理解,若已知R23和R21,可求得R31,之后可利用R31求得在一些实施例中,可将Rt31视为未知量,Rt23为利用相机2和相机3同步拍摄的一组图像(对应于一帧)中相匹配的特征点得到的相对位姿,Rt21为利用相机2和相机1同步拍摄的一组图像中相匹配的特征点得到的相对位姿。利用公式(17)和公式(18)可得到如下方程:
示例性的,R21为第一旋转矩阵,R23为第二旋转矩阵,为第一平移矩阵,为第二平移矩阵。假定自动驾驶装置利用不同组图像得到了M个Rt23以及M个Rt21,则由公式(19)和公式(20)可得到如下方程组:
从方程组(21)可知,R21和R23为已知数,仅与R31有关,可以通过牛顿法或梯度下降法求解部分得到R31的最优解。其中,方程组(21)为第一方程组,R31为第三旋转矩阵。从方程组(22)可知,和为已知数,在R31已知时,仅与有关,求解获得的最优解。其中,方程组(22)为第二方程组,为第三平移矩阵。在一些实施例中,自动驾驶装置可利用相机1和相机2同步采集的两个图像(对应于一帧)确定一个Rt21。应理解,自动驾驶装置利用同步采集的M组图像(对应于M帧)可确定M个Rt21。同理,自动驾驶装置可确定M个Rt23。
可选的,将Rt31视为已知量,将上一步求得的结果代入公式(17)和(18),使用类似的方法构建方程组并将Rt21视为待优化量,可以求得Rt31已知情况下Rt21的最优解。
可选的,将Rt31和Rt21都视为已知量,采用类似方法构建方程组并将Rt23视为待优化量,可以求得Rt23的最优解。至此,一组闭环优化完成。应理解,这种方式的主要原理是:先将一对具有公共视野的两相机之间的旋转矩阵视为未知数,其他各对具有公共视野的两相机之间的旋转矩阵和平移矩阵视为已知数,通过方程组(21)求解未知数;再将该对具有公共视野的两相机之间的平移矩阵视为未知数,其他各对具有公共视野的两相机之间的旋转矩阵和平移矩阵视为已知数,该对具有公共视野的两相机之间的旋转矩阵视为已知数,通过方程组(22)求解未知数。
应理解,相机之间的编号是任意指定的,因此可变换相机的顺序并重复以上步骤,获得多组相机之间位姿的不同解,并选取一组误差最小的解作为输出。以4个相机为例,记为A、B、C、D,假设4个相机两两之间都有公共视野,则构成闭环方程有多种形式,如RtADRtDCRtCBRtBA=0,RtADRtDBRtBCRtCA=0等,分别求取不同的闭环方程可以得到不同的解,选取最优的即可。误差即为方程的残差大小。
在实际应用中,自动驾驶装置在得到多对两两相机之间的相对位姿之后,可采用类似的方式对两两相机之间的相对位姿进行优化,以便于得到精度更高的相对位姿。
前述实施例描述了利用第一相机和第二相机同步采集的两个图像来确定该第一相机和该第二相机之间的相对位姿的方式。当第一相机和第二相机同步采集的两个图像相匹配的特征点对的个数不低于8时,可获得一个较准确的相对位姿。然而,当第一相机和第二相机同步采集的两个图像相匹配的特征点对的个数低于8时,不能得到一个准确地相对位姿,即位姿估计不稳定。下面介绍一种通过多帧累加来确定两相机之间相对位姿的方式,通过这种方式可得到较准确的相对位姿。一种通过多帧累加来确定两相机之间相对位姿的方式如下:
1)提取第i帧两幅图中的特征点,分别记为x′i和xi,将其加入特征点集合X1和特征点集合X2。
第i帧两幅图包括第一相机在第i帧采集的一幅图像和第二相机在第i帧采集的一幅图像。提取第i帧两幅图中的特征点可以是提取第一相机在第i帧采集的一幅图像中的特征点,得到x′i;提取第二相机在第i帧采集的一幅图像中的特征点,得到xi。i为大于0的整数。应理解,一帧中两幅图像包括第一相机采集的一个图像和第二相机采集的一个图像,并且这一帧中两图像被拍摄的时间间隔小于时间阈值,例如0.5ms、1ms等。
2)提取第j帧两幅图中的特征点,分别记为x′j和xj,将其加入特征点集合X1和特征点集合X2。
j为大于1且不等于i的整数。应理解,持续提取N帧两幅图像中的特征点后,特征点集合X1和特征点集合X2中保存了N帧两幅图像中匹配的特征点。
3)使用特征点集合X1和特征点集合X2进行两相机相对位姿的估计。
可选的,步骤3)的一种实现方式可以是对特征点集合X1中的特征点和特征点集合X2中的特征点进行特征点匹配,以得到多组特征点对;利用该多组特征点对,确定两相机之间的相对位姿。利用该多组特征点对,确定两相机之间的相对位姿的实现方式可以与步骤303的实现方式类似。
由于特征点集合X1和X2中的特征点数远远多于单帧的特征点数,因此可以采用迭代优化的方式进行两相机相对位姿的估计:首先利用特征点集合X1和X2中全部点进行位姿估计以得到第一中间位姿;然后,将该第一中间位姿代入公式(14)计算残差,并将残差大于残差阈值的特征点剔除;再利用剩余的特征点重新进行位姿估计以得到第二中间位姿;重复以上过程,直到待剔除的特征点的个数小于数量阈值(如总数的5%)。公式(14)的单位为像素,残差阈值可以是0.8、1、1.2等,本申请不作限定。最终可获得多帧图像下的一个较准确地相对位姿。这里位姿估计的实现方式可与步骤303相同。
其中N(0,1)表示标准正态分布。记可以看到,X的方差与成反比。n为时间窗大小(对应于采集的n帧图像),随着时间窗增大,X的方差可不断减小,在实际应用中会稳定于某一值。根据中心极限定理,假设在长时间的观测中,不同帧之间计算得到的R和是独立同分布的,则随着n的增大,R和将趋于平稳。选取适当的n使得R和的方差满足需求即可。
采用多帧累加的方式确定两相机之间的相对位姿,可以避免单帧计算引发的抖动问题,使标定结果趋于稳定。
下面结合自动驾驶装置的结构来描述如何实现两两相机之间的相对位姿的重标定。图5为本申请实施例提供的一种自动驾驶装置的结构示意图。如图5所示,自动驾驶装置包括:图像采集单元(对应于第一相机和第二相机)501、图像特征点提取单元502、位姿计算单元503、闭环优化单元504、多帧累加优化单元505、尺度计算单元506以及标定参数更新单元507。其中,闭环优化单元504和多帧累加优化单元505均为可选的,而非必要的。在一些实施例中,图像特征点提取单元502、位姿计算单元503、闭环优化单元504、多帧累加优化单元505、尺度计算单元506以及标定参数更新单元507的功能均由处理器112(对应于车载处理器)实现。在一些实施例中,位姿计算单元503、闭环优化单元504、多帧累加优化单元505、尺度计算单元506以及标定参数更新单元507的功能均由处理器112(对应于车载处理器)实现;图像特征点提取单元502的功能由图形处理器实现。图像特征点提取单元502、位姿计算单元503、闭环优化单元504、多帧累加优化单元505、尺度计算单元506以及标定参数更新单元507为自动驾驶装置中用于确定两两相机之间的相对位姿的单元,即在线标定部分(用于实现相对位姿重标定的部分)。下面分别介绍各单元的功能。
图像采集单元501,用于获取多个相机采集的图像。示例性的,图像采集单元用于获取各相机同步采集的图像。该多个相机对应于图1中的相机130。
图像特征点提取单元502,用于提取多个相机采集的图像中的特征点,并对提取的特征点进行匹配以得到第一匹配特征点集。举例来说,图像特征点提取单元,用于提取第一相机采集的第一图像中的特征点以得到第一特征点集,以及提取第二相机采集的第二图像中的特征点以得到第二特征点集;对该第一特征点集中的特征点和该第二特征点集中的特征点进行匹配以得到多组特征点对(对应于第一匹配特征点集)。又举例来说,图像特征点提取单元,用于提取第一相机和第二相机同步采集的多组图像中的特征点,并进行特征点匹配以得到多组特征点对(对应于第一匹配特征点集),每组图像(对应于一帧)包括第一相机采集的一个图像和第二相机采集的一个图像。
位姿计算单元503,用于根据第一匹配特征点集(即匹配后的特征点)确定两两相机之间的基本矩阵,并将基本矩阵分解获得5DOF相对位姿。应理解,位姿计算单元可对多相机系统中所有具有公共视野的相机进行位姿计算,即确定多相机系统中所有具有公共视野的两相机之间的相对位姿。在自动驾驶装置未包括闭环优化单元505和多帧累加优化单元506的情况下,位姿计算单元503还用于合并尺度因子和5DOF相对位姿以得到完整的6DOF相对位姿。示例性的,位姿计算单元503,具体用于确定上述第一相机和上述第二相机之间的本质矩阵;根据上述本质矩阵的奇异值分解结果,计算上述第一相机和上述第二相机之间的5自由度DOF相对位姿。可选的,位姿计算单元503,具体用于将上述本质矩阵进行奇异值分解以得到上述奇异值分解结果;根据上述奇异值分解结果,得到上述第一相机和上述第二相机之间的至少两个相对位姿;分别利用上述至少两个相对位姿计算上述第一匹配特征点集中的特征点的三维坐标位置;将上述至少两个相对位姿中使得上述第一匹配特征点集中的各特征点的三维坐标位置均位于上述第一相机和上述第二相机前方的相对位姿作为上述5自由度相对位姿。
尺度计算单元504,用于将第一距离和第二距离之间的比值,作为尺度因子;上述第一距离和上述第二距离分别为上述自动驾驶装置上的非视觉传感器和视觉传感器测量同一距离得到的结果,上述视觉传感器包括上述第一相机和/或上述第二相机。示例性的,尺度计算单元504,具体用于利用激光雷达或毫米波雷达测量某个目标距离自动驾驶装置的距离s,同时使用相机利用双目(或多目)视觉测量得到同一目标到自动驾驶装置的距离s′,从而获得尺度因子。应理解,合并尺度因子和5DOF相对位姿可得到完整的6DOF相对位姿。
闭环优化单元505,用于根据多相机系统中两两相机的相对位姿组成的闭环构建方程组,进行整体优化。示例性的,闭环优化单元505通过先后求解方程组(21)和方程组(21)来对执行图3中的方法流程得到的相对位姿进行优化。在自动驾驶装置包括闭环优化单元505且未包括多帧累加优化单元506的情况下,闭环优化单元505还用于合并尺度因子和5DOF相对位姿可得到完整的6DOF相对位姿。
多帧累加优化单元506,用于对多帧计算结果进行累加、滤波和优化,获得稳定的标定参数(对应于相对位姿)。示例性的,多帧累加优化单元406用于实现通过多帧累加来确定两相机之间相对位姿的方式。在自动驾驶装置包括多帧累加优化单元505的情况下,多帧累加优化单元505可合并尺度因子和5DOF相对位姿可得到完整的6DOF相对位姿。
标定参数更新单元507,用于在计算得到的相对位姿与自动驾驶装置当前使用的相对位姿之间的差值不大于位姿变化阈值的情况下,将自动驾驶装置当前使用的相对位姿更新为计算得到的相对位姿。也就是说,标定参数更新单元507,用于将计算得到的相对位姿(对应于标定参数)与自动驾驶装置当前使用的相对位姿进行比对,若差值过大则动态更新当前使用的相对位姿(或同时发出提醒)。
图5中的自动驾驶装置可采用方式一来确定两两相机之间的相对位姿。下面介绍一种可采用方式二来确定两两相机之间的相对位姿的自动驾驶装置的结构。图6为本申请实施例提供的另一种自动驾驶装置的结构示意图。如图6所示,该自动驾驶装置包括:
图像采集单元601,用于分别通过第一相机和第二相机采集图像;上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置;
图像特征点提取单元602,用于对上述第一相机采集的图像和上述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从上述第一相机采集的图像中提取的特征点,另一个特征点为从上述第二相机采集的图像中提取的特征点,上述H为不小于8的整数;
位姿计算单元603,用于根据第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿;上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从上述第一相机采集的图像中提取的特征点,另一个特征点为从上述第二相机采集的图像中提取的特征点,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置,上述H为不小于8的整数;
标定参数更新单元604(对应于标定参数更新单元507),用于在上述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将上述第二相对位姿更新为上述第一相对位姿;上述第二相对位姿为上述自动驾驶装置当前存储的上述第一相机和上述第二相机之间的相对位姿。
在一些实施例中,位姿计算单元603和标定参数更新单元604的功能均由处理器112(对应于车载处理器)实现。
可选的,图6中的自动驾驶装置还包括:闭环优化单元605、多帧累加优化单元606。其中,闭环优化单元605和多帧累加优化单元606是可选的,而非必要的。图像采集单元601的功能可与图像采集单元501的功能相同,图像特征点提取单元602的功能可与图像特征点提取单元502的功能相同,闭环优化单元605的功能可与闭环优化单元505的功能相同,多帧累加优化单元606的功能可与多帧累加优化单元506的功能相同。
示例性的,位姿计算单元603,具体用于迭代求解目标方程以得到上述第一相对位姿;在上述目标方程中,上述第一相对位姿包括的参数为未知数,上述第一匹配特征点集中的特征点对、上述第一相机的内参以及上述第二相机的内参为已知数。应理解,位姿计算单元603可采用方式二来确定具有公共视野的两两相机之间的相对位姿。
应理解以上自动驾驶装置中的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成在自动驾驶装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digital signal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gate array,简称:FPGA)等。
图7为本申请实施例提供的另一种自动驾驶装置的结构示意图。如图7所示,该自动驾驶装置包括:多相机视觉系统701、图像处理器702、图像特征提取器703、车载处理器704、存储器705、标定参数更新装置706以及参数异常提醒装置707。
多相机视觉系统701,用于通过多个相机同步采集的图像。多相机视觉系统701对应于图1中的相机130。多相机视觉系统由多个相机组成,可以分别同步地采集图像数据。
图像处理器702,用于对多相机视觉系统701采集的图像数据进行缩放等预处理。
图像特征提取器703,用于对图像处理器702预处理后的图像进行特征点提取。
为提高速度,预处理后的图像可进入专门的图像特征提取器703进行特征点提取。图像特征提取器703可以是具备通用计算能力的图形处理器或专门设计的ISP等硬件。
车载处理器704,用于根据图像特征提取器703提取的特征点,确定两两相机之间的相对位姿。
车载处理器(对应于图1中的处理器113)可以为具备通用计算能力的硬件平台。可选的,车载处理器包含位姿估计部分和优化处理部分。位姿估计部分(对应于图6中的位姿计算单元601或者图5中的位姿计算单元503和尺度计算单元504)用于确定两两相机之间的相对位姿,即相对位姿估计。优化处理部分,用于实现闭环约束优化和/或多帧累加优化。可选的,车载处理器包含位姿估计部分且未包含优化处理部分。车载处理器,还用于从存储器705(对应于图1中的存储器114)中读取标定参数(即当前存储的相对位姿),以及比对读取的标定参数(即相对位姿)和计算得到的标定参数(即相对位姿)。之后车载处理器将比对结果分别发送至标定参数更新装置706和参数异常提醒装置707。标定参数更新装置706(对应于图5中的标定参数更新单元507以及图6中的标定参数更新单元602)可根据需要更新存储器中的标定参数。参数异常提醒装置707可以通过声音或图像提醒驾驶员相机的标定参数异常情况。例如,车载处理器确定第一相机和第二相机之间的相对位姿与自动驾驶装置当前使用的第一相机和第二相机之间的相对位姿相差较大时,提醒驾驶员该第一相机和该第二相机之间的相对位姿异常。以车载应用场景为例,如果车载处理器计算得到的标定参数与本车出厂时标定的参数差距过大,如角度偏差超过0.3度,即可认为传感器安装松动,可能导致自动驾驶系统性能下降,需要提醒车主到4s店重新标定(如中控弹出警告窗口)。如果车主长时间没有进行重新标定且角度偏差不大,如大于0.3度但小于0.5度,可在车主允许的情况下以在线标定的参数代替出厂标定参数运行自动驾驶系统。
图7中的自动驾驶装置既可采用方式一确定两两相机之间的相对位姿,也可采用方式二确定两两相机之间的相对位姿。
图8为本申请实施例提供的另一种相对位姿标定方法流程图。图8中的方法是对图3中的方法的进一步细化和完善。如图8所示,该方法包括:
801、自动驾驶装置确定具有公共视野的一对相机。
802、从一对相机同步采集的图像中提取特征点,并进行特征点匹配。
举例来说,第一相机和第二相机具有公共视野,第一图像和第二图像为该第一相机和该第二相机同步采集的图像(对应于一帧),提取该第一图像中的特征点以得到第三特征点集,以及提取该第二图像中的特征点以得到第四特征点集;对该第三特征点集中的特征点和该第四特征点集中的特征点进行匹配以得到多组特征点对。应理解,利用每一对相机同步采集的图像可得到该对相机对应的多组特征点对。
803、通过一对相机对应的多组特征点对,计算该对相机之间的本质矩阵。
804、通过一对相机之间的本质矩阵,确定该对相机之间的5DOF相对位姿。
步骤803和步骤804的实现方式可与方式一中确定具有公共视野的一对相机之间的5DOF相对位姿的方式相同,这里不再详述。可选的,步骤802至步骤804可替换为前述实施例中采用多帧累加的方式确定两相机之间的相对位姿。应理解,自动驾驶装置每执行一次步骤801至步骤804可确定一对具有公共视野的相机之间的5DOF相对位姿。
805、构建多相机系统闭环方程。
示例性的,方程(19)和方程(20)为构建的一组多相机系统闭环方程。
806、求解符合多相机系统闭环方程的解。
步骤805和步骤806为利用各对具有公共视野的两两相机之间的相对位姿组成的闭环构建方程组,优化计算得到的两两相机之间的5DOF相对位姿的方式。前述实施例描述了利用各对具有公共视野的两两相机之间的相对位姿组成的闭环构建方程组,进行整体优化的方式。
807、计算尺度因子,并合并5DOF相对位姿和该尺度因子以得到6DOF相对位姿。
808、判断是否更新当前使用的标定参数(即相对位姿)。
若是,执行步骤809;若否,执行步骤810。
809、更新当前使用的标定参数。
更新当前使用的标定参数可以是将当前使用的标定参数更新为计算得到的相对位姿(即新的标定参数)。
810、输出用于提醒驾驶员相机的标定参数异常情况的信息。
811、结束本流程。
本申请实施例中,利用多相机两两之间的公共视野,构建相机之间的位姿约束方程,例如公式(4),通过对本质矩阵的分解获得两相机的5DOF相对位姿,充分利用了相机之间的公共视野信息。另外,利用特征点匹配技术获得5DOF的位姿信息并通过闭环方程进行优化,达到了较高的重标定精度。
前述实施例描述了自动驾驶装置确定两两相机之间的相对位姿的方式。在一些实施例中,自动驾驶装置可向服务器发送用于确定两两相机之间的相对位姿所需的信息,由服务器根据自动驾驶装置发送的信息来确定该自动驾驶装置上的两两相机之间的相对位姿。下面来介绍由服务器确定自动驾驶装置上的两两相机之间的相对位姿的方案。
图9为本申请实施例提供的另一种相对位姿标定方法流程图。如图9所示,该方法包括:
901、自动驾驶装置向服务器发送位姿标定请求。
可选的,上述位姿标定请求用于请求重标定上述自动驾驶装置的上述第一相机和上述第二相机之间的相对位姿,上述位姿标定请求携带有上述第一相机的内参以及上述第二相机的内参。可选的,上述位姿标定请求用于请求重标定上述自动驾驶装置上的各相机之间的相对位姿,上述位姿标定请求携带有上述自动驾驶装置上各相机的内参。
902、服务器向自动驾驶装置发送针对位姿标定请求的确认信息。
服务器在确定接受来自自动驾驶装置的位姿标定请求的情况下,向自动驾驶装置发送针对位姿标定请求的确认信息。可选的,服务器根据上述位姿标定请求确定上述自动驾驶装置为授权装置的情况下,接受来自自动驾驶装置的位姿标定请求,并向自动驾驶装置发送针对位姿标定请求的确认信息。授权装置是指服务器需要向其提供位姿标定服务(即重标定相对位姿)的自动驾驶装置。
903、自动驾驶装置向服务器发送重标定参考信息。
可选的,上述重标定参考信息用于服务器确定上述自动驾驶装置的第一相机和第二相机之间的相对位姿,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置。示例性的,重标定参考信息包括第一相机和第二相机同步采集的图像或者上述自动驾驶装置根据上述第一相机和上述第二相机同步采集的图像进行特征点匹配得到的多对特征点对(对应于第一匹配特征点集)。可选的,上述重标定参考信息用于服务器确定上述自动驾驶装置上的各相机之间的相对位姿,上述各相机安装于自动驾驶装置的不同位置。示例性的,重标定参考信息包括各相机同步采集的图像或者自动驾驶装置根据各对相机同步采集的图像进行特征点匹配得到的多对特征点对。
904、上述服务器根据上述重标定参考信息,得到第一匹配特征点集。
可选的,上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从第一相机采集的图像中提取的特征点,另一个特征点为从第二相机采集的图像中提取的特征点,上述H为不小于8的整数。可选的,上述重标定参考信息包括第一匹配特征点集。可选的,上述重标定参考信息包括第一相机和第二相机同步采集的图像,上述服务器可对第一相机和第二相机同步采集的图像进行特征点匹配以得到上述第一匹配特征点集。
905、服务器根据上述第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿。
步骤905的实现方式可以同步骤303的实现方式相同。服务器既可采用方式一或者方式二确定上述第一相机和上述第二相机之间的第一相对位姿,也可以采用其他方式确定上述第一相机和上述第二相机之间的第一相对位姿,本申请实施例不作限定。
906、服务器将上述第一相对位姿发送给上述自动驾驶装置。
907、自动驾驶装置在上述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将上述第二相对位姿更新为上述第一相对位姿。
上述第二相对位姿为上述自动驾驶装置当前存储的上述第一相机和上述第二相机之间的相对位姿。应理解,服务器可根据自动驾驶装置发送的信息,确定该自动驾驶装置上的两两相机之间的相对位姿。也就是说,前述实施例中自动驾驶装置确定两两相机之间的相对位姿的方式均可以有服务器来实现,例如利用各对具有公共视野的两两相机之间的相对位姿组成的闭环构建方程组,优化计算得到的两两相机之间的5DOF相对位姿的方式以及采用多帧累加的方式确定两相机之间的相对位姿。
本申请实施例中,自动驾驶装置不需要自身来标定相机之间的相对位姿,仅需将标定相机之间的相对位姿所需的数据发送给服务器,工作量少。
图10为本申请实施例提供的一种服务器的结构示意图,如图10所示,该服务器包括:存储器1001、处理器1002、通信接口1003以及总线1004;其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。通信接口1003用于与自动驾驶装置进行数据交互。
处理器1003通过读取该存储器中存储的该代码以用于执行如下操作:接收来自自动驾驶装置的重标定参考信息,上述重标定参考信息用于上述服务器确定上述自动驾驶装置的第一相机和第二相机之间的相对位姿,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于上述自动驾驶装置的不同位置;根据上述重标定参考信息,得到第一匹配特征点集,上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从第一相机采集的图像中提取的特征点,另一个特征点为从第二相机采集的图像中提取的特征点,上述H为不小于8的整数;根据上述第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿;将上述第一相对位姿发送给上述自动驾驶装置。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述实施例所提供的相对位姿标定方法。
可选的,上述指令在计算机上运行时可实现:根据第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿;上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从上述第一相机采集的图像中提取的特征点,另一个特征点为从上述第二相机采集的图像中提取的特征点,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于自动驾驶装置的不同位置,上述H为不小于8的整数;在上述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将上述第二相对位姿更新为上述第一相对位姿;上述第二相对位姿为上述自动驾驶装置当前存储的上述第一相机和上述第二相机之间的相对位姿。
可选的,上述指令在计算机上运行时可实现:接收来自自动驾驶装置的重标定参考信息,上述重标定参考信息用于上述服务器确定上述自动驾驶装置的第一相机和第二相机之间的相对位姿,上述第一相机的视野和上述第二相机的视野存在重叠,上述第一相机和上述第二相机安装于上述自动驾驶装置的不同位置;根据上述重标定参考信息,得到第一匹配特征点集,上述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从第一相机采集的图像中提取的特征点,另一个特征点为从第二相机采集的图像中提取的特征点,上述H为不小于8的整数;根据上述第一匹配特征点集,确定上述第一相机和上述第二相机之间的第一相对位姿;将上述第一相对位姿发送给上述自动驾驶装置。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例所提供的相对位姿标定方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种相对位姿标定方法,其特征在于,包括:
通过第一相机和第二相机采集图像;所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;
对所述第一相机采集的图像和所述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数;
根据所述第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;
在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。
2.根据权利要求1所述的方法,其特征在于,所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:
确定所述第一相机和所述第二相机之间的本质矩阵;
根据所述本质矩阵的奇异值分解结果,计算所述第一相机和所述第二相机之间的5自由度相对位姿;
将第一距离和第二距离之间的比值,作为尺度因子;所述第一距离和所述第二距离分别为所述自动驾驶装置上的非视觉传感器和视觉传感器测量同一距离得到的结果,所述视觉传感器包括所述第一相机和/或所述第二相机;
合并所述5自由度相对位姿和所述尺度因子以得到所述第一相对位姿。
3.根据权利要求2所述的方法,其特征在于,所述根据所述本质矩阵作的奇异值分解结果,计算得到所述第一相机和所述第二相机之间的5自由度相对位姿包括:
将所述本质矩阵进行奇异值分解以得到所述奇异值分解结果;
根据所述奇异值分解结果,得到所述第一相机和所述第二相机之间的至少两个相对位姿;
分别利用所述至少两个相对位姿计算所述第一匹配特征点集中的特征点的三维坐标位置;
将所述至少两个相对位姿中使得所述第一匹配特征点集中的各特征点的三维坐标位置均位于所述第一相机和所述第二相机前方的相对位姿作为所述5自由度相对位姿。
4.根据权利要求1所述的方法,其特征在于,所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:
迭代求解目标方程以得到所述第一相对位姿;在所述目标方程中,所述第一相对位姿包括的参数为未知数,所述第一匹配特征点集中的特征点对、所述第一相机的内参以及所述第二相机的内参为已知数。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述自动驾驶装置安装有M个相机,所述M个相机包括所述第一相机、所述第二相机以及第三相机,所述第三相机的视野与所述第一相机的视野和所述第二相机的视野均存在重叠,所述M为大于2的整数;所述方法还包括:
获得M个第一旋转矩阵、M个第二旋转矩阵、M个第一平移矩阵以及M个第二平移矩阵;所述M个第一旋转矩阵为所述第一相机和所述第二相机之间的旋转矩阵且所述M个第一旋转矩阵中至少两个旋转矩阵不同,所述M个第二旋转矩阵为所述第二相机和所述第三相机之间的旋转矩阵且所述M个第二旋转矩阵中至少两个旋转矩阵不同,所述M个第一平移矩阵为所述第一相机和所述第二相机之间的平移矩阵且所述M个第一平移矩阵中至少两个平移矩阵不同,所述M个第二平移矩阵为所述第二相机和所述第三相机之间的平移矩阵且所述M个第二平移矩阵中至少两个平移矩阵不同,所述M个第一旋转矩阵与所述M个第一平移矩阵一一对应,所述M个第二旋转矩阵与所述M个第二平移矩阵一一对应,所述M为大于1的整数;
求解第一方程组以得到第三旋转矩阵;所述第一方程组中包括M个第一方程,所述M个第一方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第一方程中,第一旋转矩阵和第二旋转矩阵为已知数,所述第三旋转矩阵为未知数;所述第三旋转矩阵为所述第一相机和所述第三相机之间的旋转矩阵;
求解第二方程组以得到第三平移矩阵;所述第二方程组中包括M个第二方程,所述M个第二方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第二方程中,第一旋转矩阵、第二旋转矩阵、第一平移矩阵以及第二平移矩阵为已知数,所述第三平移矩阵为未知数;所述第三平移矩阵为所述第一相机和所述第三相机之间的平移矩阵;
将包括所述第三旋转矩阵和所述第三平移矩阵的位姿作为所述第一相机和所述第三相机之间的相对位姿。
6.根据权利要求1所述的方法,其特征在于,所述第一匹配特征点集包括所述第一相机从至少两帧图像中提取出的特征点以及所述第二相机从至少两帧图像中提取出的特征点;所述根据第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿包括:
根据所述第一匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第一中间位姿;
将所述第一匹配特征点集中各特征点对代入至第一公式,得到所述第一匹配特征点集中各特征点对对应的残差,所述第一公式表征中包括所述第一中间位姿;
剔除所述第一匹配特征点集中的干扰特征点对以得到第二匹配特征点集;所述干扰特征点对为所述第一匹配特征点集中对应的残差大于残差阈值的特征点对;
根据所述第二匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第二中间位姿;
将目标中间位姿作为所述第一相机和所述第二相机之间的所述第一相对位姿;所述目标中间位姿为根据目标匹配特征点集中的特征点对确定的所述第一相机和所述第二相机之间的相对位姿,所述目标匹配特征点集中的特征点对的个数小于数量阈值或者所述目标匹配特征点集中的特征点对的个数与所述第一匹配特征点集中的特征点对的个数的比值小于比例阈值。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
在所述第一相对位姿与所述第二相对位姿之间的差值不大于所述位姿变化阈值的情况下,输出提醒信息;所述提醒信息用于提示所述第一相机和所述第二相机之间的相对位姿异常。
8.一种自动驾驶装置,其特征在于,包括:
图像采集单元,用于分别通过第一相机和第二相机采集图像;所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置;
图像特征点提取单元,用于对所述第一相机采集的图像和所述第二相机采集的图像进行特征点匹配,以得到第一匹配特征点集;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述H为不小于8的整数;
位姿计算单元,用于根据所述第一匹配特征点集,确定所述第一相机和所述第二相机之间的第一相对位姿;所述第一匹配特征点集包括H组特征点对,每组特征点对包括两个相匹配的特征点,其中一个特征点为从所述第一相机采集的图像中提取的特征点,另一个特征点为从所述第二相机采集的图像中提取的特征点,所述第一相机的视野和所述第二相机的视野存在重叠,所述第一相机和所述第二相机安装于自动驾驶装置的不同位置,所述H为不小于8的整数;
标定参数更新单元,用于在所述第一相对位姿与第二相对位姿之间的差值不大于位姿变化阈值的情况下,将所述第二相对位姿更新为所述第一相对位姿;所述第二相对位姿为所述自动驾驶装置当前存储的所述第一相机和所述第二相机之间的相对位姿。
9.根据权利要求8所述的装置,其特征在于,
所述位姿计算单元,具体用于确定所述第一相机和所述第二相机之间的本质矩阵;根据所述本质矩阵的奇异值分解结果,计算所述第一相机和所述第二相机之间的5自由度相对位姿;所述装置还包括:
尺度计算单元,用于将第一距离和第二距离之间的比值,作为尺度因子;所述第一距离和所述第二距离分别为所述自动驾驶装置上的非视觉传感器和视觉传感器测量同一距离得到的结果,所述视觉传感器包括所述第一相机和/或所述第二相机;
所述位姿计算单元,还用于合并所述5自由度相对位姿和所述尺度因子以得到所述第一相对位姿。
10.根据权利要求9所述的装置,其特征在于,
所述位姿计算单元,具体用于将所述本质矩阵进行奇异值分解以得到所述奇异值分解结果;根据所述奇异值分解结果,得到所述第一相机和所述第二相机之间的至少两个相对位姿;分别利用所述至少两个相对位姿计算所述第一匹配特征点集中的特征点的三维坐标位置;将所述至少两个相对位姿中使得所述第一匹配特征点集中的各特征点的三维坐标位置均位于所述第一相机和所述第二相机前方的相对位姿作为所述5自由度相对位姿。
11.根据权利要求8所述的装置,其特征在于,
所述位姿计算单元,具体用于迭代求解目标方程以得到所述第一相对位姿;在所述目标方程中,所述第一相对位姿包括的参数为未知数,所述第一匹配特征点集中的特征点对、所述第一相机的内参以及所述第二相机的内参为已知数。
12.根据权利要求8至11任一项所述的装置,其特征在于,所述自动驾驶装置安装有M个相机,所述M个相机包括所述第一相机、所述第二相机以及第三相机,所述第三相机的视野与所述第一相机的视野和所述第二相机的视野均存在重叠,所述M为大于2的整数;所述装置还包括:
闭环优化单元,用于获得M个第一旋转矩阵、M个第二旋转矩阵、M个第一平移矩阵以及M个第二平移矩阵;所述M个第一旋转矩阵为所述第一相机和所述第二相机之间的旋转矩阵且所述M个第一旋转矩阵中至少两个旋转矩阵不同,所述M个第二旋转矩阵为所述第二相机和所述第三相机之间的旋转矩阵且所述M个第二旋转矩阵中至少两个旋转矩阵不同,所述M个第一平移矩阵为所述第一相机和所述第二相机之间的平移矩阵且所述M个第一平移矩阵中至少两个平移矩阵不同,所述M个第二平移矩阵为所述第二相机和所述第三相机之间的平移矩阵且所述M个第二平移矩阵中至少两个平移矩阵不同,所述M个第一旋转矩阵与所述M个第一平移矩阵一一对应,所述M个第二旋转矩阵与所述M个第二平移矩阵一一对应,所述M为大于1的整数;
求解第一方程组以得到第三旋转矩阵;所述第一方程组中包括M个第一方程,所述M个第一方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第一方程中,第一旋转矩阵和第二旋转矩阵为已知数,所述第三旋转矩阵为未知数;所述第三旋转矩阵为所述第一相机和所述第三相机之间的旋转矩阵;
求解第二方程组以得到第三平移矩阵;所述第二方程组中包括M个第二方程,所述M个第二方程与所述M个第一旋转矩阵一一对应,且与所述M个第二旋转矩阵一一对应;在每个第二方程中,第一旋转矩阵、第二旋转矩阵、第一平移矩阵以及第二平移矩阵为已知数,所述第三平移矩阵为未知数;所述第三平移矩阵为所述第一相机和所述第三相机之间的平移矩阵;
将包括所述第三旋转矩阵和所述第三平移矩阵的位姿作为所述第一相机和所述第三相机之间的相对位姿。
13.根据权利要求8所述的装置,其特征在于,所述第一匹配特征点集包括所述第一相机从至少两帧图像中提取出的特征点以及所述第二相机从至少两帧图像中提取出的特征点;
所述位姿计算单元,具体用于根据所述第一匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第一中间位姿;
将所述第一匹配特征点集中各特征点对代入至第一公式,得到所述第一匹配特征点集中各特征点对对应的残差,所述第一公式表征中包括所述第一中间位姿;
剔除所述第一匹配特征点集中的干扰特征点对以得到第二匹配特征点集;所述干扰特征点对为所述第一匹配特征点集中对应的残差大于残差阈值的特征点对;
根据所述第二匹配特征点集中的特征点对,确定所述第一相机和所述第二相机之间的相对位姿以得到第二中间位姿;
将目标中间位姿作为所述第一相机和所述第二相机之间的所述第一相对位姿;所述目标中间位姿为根据目标匹配特征点集中的特征点对确定的所述第一相机和所述第二相机之间的相对位姿,所述目标匹配特征点集中的特征点对的个数小于数量阈值或者所述目标匹配特征点集中的特征点对的个数与所述第一匹配特征点集中的特征点对的个数的比值小于比例阈值。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述装置还包括:
提醒单元,用于在所述第一相对位姿与所述第二相对位姿之间的差值不大于所述位姿变化阈值的情况下,输出提醒信息;所述提醒信息用于提示所述第一相机和所述第二相机之间的相对位姿异常。
15.一种汽车,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至7任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至7任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/079780 WO2021184218A1 (zh) | 2020-03-17 | 2020-03-17 | 一种相对位姿标定方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112639883A CN112639883A (zh) | 2021-04-09 |
CN112639883B true CN112639883B (zh) | 2021-11-19 |
Family
ID=75291186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080004815.0A Active CN112639883B (zh) | 2020-03-17 | 2020-03-17 | 一种相对位姿标定方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112639883B (zh) |
WO (1) | WO2021184218A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113223077A (zh) * | 2021-05-21 | 2021-08-06 | 广州高新兴机器人有限公司 | 基于视觉辅助激光自动初始定位的方法及装置 |
CN113504385B (zh) * | 2021-06-30 | 2023-07-14 | 安徽爱观视觉科技有限公司 | 复数相机测速方法及测速装置 |
CN113204661B (zh) * | 2021-07-06 | 2021-09-21 | 禾多科技(北京)有限公司 | 实时路况更新方法、电子设备和计算机可读介质 |
CN113739819B (zh) * | 2021-08-05 | 2024-04-16 | 上海高仙自动化科技发展有限公司 | 校验方法、装置、电子设备、存储介质及芯片 |
CN113724303B (zh) * | 2021-09-07 | 2024-05-10 | 广州文远知行科技有限公司 | 点云与图像匹配方法、装置、电子设备和存储介质 |
CN114283447B (zh) * | 2021-12-13 | 2024-03-26 | 北京元客方舟科技有限公司 | 一种动作捕捉系统及方法 |
CN116952190A (zh) * | 2022-04-14 | 2023-10-27 | 华为技术有限公司 | 多目测距方法及电子设备 |
CN114675657B (zh) * | 2022-05-25 | 2022-09-23 | 天津卡雷尔机器人技术有限公司 | 一种基于红外摄像头模糊控制算法回巢充电的方法 |
CN114882115B (zh) * | 2022-06-10 | 2023-08-25 | 国汽智控(北京)科技有限公司 | 车辆位姿的预测方法和装置、电子设备和存储介质 |
CN115115704B (zh) * | 2022-06-24 | 2024-07-23 | 合众新能源汽车股份有限公司 | 确定汽车位姿信息的方法及装置 |
CN115272494B (zh) * | 2022-09-29 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 相机与惯性测量单元的标定方法、装置和计算机设备 |
CN115375890A (zh) * | 2022-10-25 | 2022-11-22 | 苏州千里雪智能科技有限公司 | 一种基于5g四目立体视觉摄像机调节系统 |
CN116468804B (zh) * | 2023-04-21 | 2024-04-02 | 湖南佑湘网联智能科技有限公司 | 激光雷达与相机外参标定精度评定方法及装置 |
CN118379368A (zh) * | 2024-06-27 | 2024-07-23 | 苏州魔视智能科技有限公司 | 车载相机的行车参数标定方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015085779A1 (en) * | 2013-12-10 | 2015-06-18 | Tsinghua University | Method and system for calibrating surveillance cameras |
CN105953796A (zh) * | 2016-05-23 | 2016-09-21 | 北京暴风魔镜科技有限公司 | 智能手机单目和imu融合的稳定运动跟踪方法和装置 |
EP3249576A1 (en) * | 2016-05-27 | 2017-11-29 | Fujitsu Limited | Biometric information processing device, biometric information processing method and biometric information processing program |
CN110375732A (zh) * | 2019-07-22 | 2019-10-25 | 中国人民解放军国防科技大学 | 基于惯性测量单元和点线特征的单目相机位姿测量方法 |
CN110720113A (zh) * | 2018-08-01 | 2020-01-21 | 深圳市大疆创新科技有限公司 | 一种参数处理方法、装置及摄像设备、飞行器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4820221B2 (ja) * | 2006-06-29 | 2011-11-24 | 日立オートモティブシステムズ株式会社 | 車載カメラのキャリブレーション装置およびプログラム |
CN101419055B (zh) * | 2008-10-30 | 2010-08-25 | 北京航空航天大学 | 基于视觉的空间目标位姿测量装置和方法 |
CN102506757B (zh) * | 2011-10-10 | 2014-04-23 | 南京航空航天大学 | 双目立体测量系统多视角测量中的自定位方法 |
KR102209008B1 (ko) * | 2014-02-17 | 2021-01-28 | 삼성전자주식회사 | 카메라 포즈 추정 장치 및 카메라 포즈 추정 방법 |
JP2018125706A (ja) * | 2017-02-01 | 2018-08-09 | トヨタ自動車株式会社 | 撮像装置 |
JP2019161278A (ja) * | 2018-03-07 | 2019-09-19 | 株式会社リコー | 校正基準点取得システム、及び校正基準点取得方法 |
CN108648240B (zh) * | 2018-05-11 | 2022-09-23 | 东南大学 | 基于点云特征地图配准的无重叠视场相机姿态标定方法 |
CN110660098B (zh) * | 2018-06-28 | 2022-08-12 | 北京京东叁佰陆拾度电子商务有限公司 | 基于单目视觉的定位方法和装置 |
CN109141442B (zh) * | 2018-09-07 | 2022-05-17 | 高子庆 | 基于uwb定位与图像特征匹配的导航方法和移动终端 |
CN109658457B (zh) * | 2018-11-02 | 2021-09-17 | 浙江大学 | 一种激光与相机任意相对位姿关系的标定方法 |
CN110580720B (zh) * | 2019-08-29 | 2023-05-12 | 天津大学 | 一种基于全景图的相机位姿估计方法 |
CN110851770A (zh) * | 2019-08-30 | 2020-02-28 | 中国第一汽车股份有限公司 | 车载相机位姿校正装置、方法、控制设备及校正系统 |
CN110672094B (zh) * | 2019-10-09 | 2021-04-06 | 北京航空航天大学 | 一种分布式pos多节点多参量瞬间同步标校方法 |
-
2020
- 2020-03-17 CN CN202080004815.0A patent/CN112639883B/zh active Active
- 2020-03-17 WO PCT/CN2020/079780 patent/WO2021184218A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015085779A1 (en) * | 2013-12-10 | 2015-06-18 | Tsinghua University | Method and system for calibrating surveillance cameras |
CN105953796A (zh) * | 2016-05-23 | 2016-09-21 | 北京暴风魔镜科技有限公司 | 智能手机单目和imu融合的稳定运动跟踪方法和装置 |
EP3249576A1 (en) * | 2016-05-27 | 2017-11-29 | Fujitsu Limited | Biometric information processing device, biometric information processing method and biometric information processing program |
CN110720113A (zh) * | 2018-08-01 | 2020-01-21 | 深圳市大疆创新科技有限公司 | 一种参数处理方法、装置及摄像设备、飞行器 |
CN110375732A (zh) * | 2019-07-22 | 2019-10-25 | 中国人民解放军国防科技大学 | 基于惯性测量单元和点线特征的单目相机位姿测量方法 |
Non-Patent Citations (1)
Title |
---|
工业机器人视觉定位系统的实现;冯志刚 等;《航空科学技术》;20180615;第29卷(第6期);48-53 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021184218A1 (zh) | 2021-09-23 |
CN112639883A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112639883B (zh) | 一种相对位姿标定方法及相关装置 | |
CN112640417B (zh) | 匹配关系确定方法及相关装置 | |
CN110543814B (zh) | 一种交通灯的识别方法及装置 | |
CN113168708B (zh) | 车道线跟踪方法和装置 | |
US11531354B2 (en) | Image processing apparatus and image processing method | |
US11294387B2 (en) | Systems and methods for training a vehicle to autonomously drive a route | |
CN112512887B (zh) | 一种行驶决策选择方法以及装置 | |
CN113261274B (zh) | 一种图像处理方法及相关终端装置 | |
CN113498529B (zh) | 一种目标跟踪方法及其装置 | |
CN112534483B (zh) | 预测车辆驶出口的方法和装置 | |
WO2020116195A1 (ja) | 情報処理装置、情報処理方法、プログラム、移動体制御装置、及び、移動体 | |
CN112543877B (zh) | 定位方法和定位装置 | |
WO2022089577A1 (zh) | 一种位姿确定方法及其相关设备 | |
CN112810603B (zh) | 定位方法和相关产品 | |
EP4307251A1 (en) | Mapping method, vehicle, computer readable storage medium, and chip | |
US20200230820A1 (en) | Information processing apparatus, self-localization method, program, and mobile body | |
CN113859265A (zh) | 一种驾驶过程中的提醒方法及设备 | |
CN114167404A (zh) | 目标跟踪方法及装置 | |
WO2021159397A1 (zh) | 车辆可行驶区域的检测方法以及检测装置 | |
CN114092898A (zh) | 目标物的感知方法及装置 | |
CN115164910B (zh) | 行驶路径生成方法、装置、车辆、存储介质及芯片 | |
CN115100630A (zh) | 障碍物检测方法、装置、车辆、介质及芯片 | |
CN114549610A (zh) | 一种点云数据的处理方法及相关装置 | |
CN112639910B (zh) | 交通元素的观测方法和装置 | |
CN115082886B (zh) | 目标检测的方法、装置、存储介质、芯片及车辆 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |