基于ORB-SLAM的多摄像机标定方法转让专利

申请号 : CN201610362072.X

文献号 : CN105976391B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨涛李广坡张艳宁李治刘小飞

申请人 : 西北工业大学

摘要 :

本发明公开了一种基于ORB‑SLAM的多摄像机标定方法,用于解决现有多摄像机标定方法复杂的技术问题。技术方案是采用ORB‑SLAM实时获取相机姿态,因此不需要依赖特定的硬件平台;通过多个摄像机在不同时刻采集的同一场景画面对多摄像机之间的位置关系进行解算。该方法设计简单,能够快速准确的实现无重叠或低重叠视野的多摄像机之间的标定。

权利要求 :

1.一种基于ORB-SLAM的多摄像机标定方法,其特征在于包括以下步骤:步骤一、采用张氏标定法对摄像机内参进行标定;连续采集15幅图像,在每幅图像上进行角点检测,计算15幅图像和棋盘格之间的单应变换H,利用棋盘格的几何关系,建立15幅图像中各角点的对应关系;棋盘格上的所有角点的空间坐标满足共面约束,假设其Z坐标为

0,对单应性进行计算:

其中,u,v为角点的像素坐标,X,Y为角点在棋盘格上的空间坐标;将H进行分解,得到:H=sK[r1 r2 t]       (2)

其中,r1,r2,t为棋盘的位置姿态,s为标量系数,K为摄像机内参矩阵;然后利用r1和r2的正交性求解K;

步骤二、保证多个摄像机之间的关系固定,打开摄像机后多个摄像机同时运动,使得多个摄像机在不同时刻捕捉到的视野具有不小于图像采集分辨率大小的一半的重叠区域;

步骤三、采用ORB-SLAM算法对数据进行处理,获取关键帧序列KAi和KBj、ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj、相对于初始坐标系的姿态PAi和PBj、用DBOW2表征当前关键帧的向量VAi和VBj,其中Ai∈[1,NA],Bj∈[1,NB]且均为整数;NA和NB分别为A摄像机和B摄像机关键帧数目;利用DBOW2信息计算KAi和KBj之间的相似度SAi-Bj,在B摄像机关键帧序列中找到与KAi相似度分值最大的SAi-max(Bj),若SAi-max(Bj)>scoreConf,则认为是一组可信数据,scoreConf的大小设置为0.04;

步骤四、利用步骤三提取的ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj信息,采用KNN算法进行特征点的初次匹配,得到匹配点对KPAi-Bj;设定匹配比率radio的大小为0.6,选取满足条件bestM/betterM<radio       (3)

的匹配点对KPradio{Ai-Bj},其中bestM和betterM分别为进行匹配的点的最优匹配和次优匹配;进一步使用RANSAC算法对KPradio{Ai-Bj}进行提纯,得到最终匹配点对KPransac(Ai-Bj),若KPs-ransac(Ai-Bj)>LKN,则认为当前提取的匹配点对有效,其中,KPs-ransac(Ai-Bj)表示KPransac(Ai-Bj)中匹配点的数目,LKN的大小设置为20;

步骤五、以A摄像机坐标系为基准,解算B摄像机相对A摄像机的外参矩阵PA-B;记KPransac(Ai)和KPransac(Bj)分别为KPransac(Ai-Bj)中KAi和KBj图像上的对应的点序列矩阵,得到方程:其中, 为KPransac(Bj)的转置矩阵,FAi-Bj为KAi和KBj之间的基本矩阵,通过上述方程求解得到;求解本质矩阵EAi-Bj:其中, 和KA分别为摄像机内参标定步骤中得到的B摄像机的内参转置矩阵和A摄像机的内参矩阵;EAi-Bj为一个3×3矩阵,其SVD分解为EAi-Bj=UDVT         (6)

,其中D=diag(a,b,c)且a≥b≥c,U和VT为SVD分解矩阵;对EAi-Bj进行修正:其中,E′Ai-Bj为EAi-Bj修正后的结果, 然后采用David Nistér的五点算法,从E′Ai-Bj中恢复出KBj图像相对于KAi图像的外参矩阵PAi-Bj;则B摄像机相对于A摄像机的外参矩阵Pm表示为:其中, 为PAi的逆矩阵,PAi和PBj是步骤三中用ORB-SLAM算法获取的姿态矩阵,m∈[1,Nm],Nm为步骤四中提取的有效匹配点对数目,规定:PA-B的精度受到累积误差和自然场景的影响,利用计算出来的Pm对PA-B进行以下估算:其中,Pt是在时间上进行的估算,Pp是根据图像信息进行的估算,则PA-B表示为:PA-B=tconf×Pt+pconf×Pp     (11)

其中,tconf的大小为0.55,pconf的大小为0.45。

说明书 :

基于ORB-SLAM的多摄像机标定方法

技术领域

[0001] 本发明涉及一种多摄像机标定方法,特别是涉及一种基于ORB-SLAM的多摄像机标定方法。

背景技术

[0002] 为了突破单个摄像机测量视角的限制,人们常常将多个摄像机进行组合,从而完成全景拼接、三维重建、大型工件和钢轨轮廓全面的测量等工作。如何精确的求解多个摄像机之间的位置关系是后期工作的关键。
[0003] 文献“Huang H,Li N,Guo H,et al.Calibration of non-overlapping cameras based on a mobile robot[C]//Information Science and Technology(ICIST),2015 5th International Conference on.IEEE,2015:328-333.”公开了一种多摄像机标定方法。该方法将棋盘格标定板放置在一个可以获取运动姿态的平台上,使得多个摄像机能够在不同的时刻拍摄到棋盘格并记录当前的姿态信息,进而求解多个摄像机之间的关系。该方法依赖特定平台,设计复杂,难以复现和推广。

发明内容

[0004] 为了克服现有多摄像机标定方法复杂的不足,本发明提供一种基于ORB-SLAM的多摄像机标定方法。该方法采用ORB-SLAM实时获取摄像机姿态,因此不需要依赖特定的硬件平台;通过多个摄像机在不同时刻采集的同一场景画面对多摄像机之间的位置关系进行解算。该方法设计简单,能够快速准确的实现无重叠或低重叠视野的多摄像机之间的标定。
[0005] 本发明解决其技术问题所采用的技术方案是:一种基于ORB-SLAM的多摄像机标定方法,其特点是包括以下步骤:
[0006] 步骤一、采用张氏标定法对摄像机参数进行标定。连续采集15幅图像,在每幅图像上进行角点检测,计算标定所用图像和棋盘格之间的单应变换H,利用棋盘格的几何关系,建立各视图图像中各角点的对应关系;棋盘格上的所有角点的空间坐标满足共面约束,假设其Z坐标为0,对单应性进行计算:
[0007]
[0008] 其中,u,v为角点的像素坐标,X,Y为角点在棋盘格上的空间坐标。将H进行分解,得到:
[0009] H=sK[r1 r2 t]         (2)
[0010] 其中,r1,r2,t位棋盘的位置姿态,s为标量系数,K为摄像机参数矩阵。然后利用r1和r2的正交性求解K。
[0011] 步骤二、保证多个摄像机之间的关系固定,打开摄像机后多个摄像机同时运动,使得多个摄像机在不同时刻捕捉到的视野具有不小于图像采集分辨率大小的一半的重叠区域。
[0012] 步骤三、采用ORB-SLAM算法对数据进行处理,获取关键帧序列KAi和KBj、ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj、相对于初始坐标系的姿态PAi和PBj、用DBOW2表征当前关键帧的向量VAi和VBj,其中Ai∈[1,NA],Bj∈[1,NB]且均为整数。NA和NB分别为A摄像机和B摄像机关键帧数目。利用DBOW2信息计算KAi和KBj之间的相似度SAi-Bj,在B摄像机关键帧序列中找到与KAi相似度分值最大的SAi-max(Bj),若SAi-max(Bj)>scoreConf,则认为是一组可信数据,scoreConf的大小设置为0.04。
[0013] 步骤四、利用步骤三提取的ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj信息,采用KNN算法进行特征点的初次匹配,得到匹配点对KPAi-Bj。设定匹配比率radio的大小为0.6,选取满足条件
[0014] bestM/betterM<radio            (3)
[0015] 的匹配点对KPradio{Ai-Bj},其中bestM和betterM分别为进行匹配的点的最优匹配和次优匹配。进一步使用RANSAC算法对KPradio{Ai-Bj}进行提纯,得到最终匹配点对KPransac(Ai-Bj),若KPs-ransac(Ai-Bj)>LKN,则认为当前提取的匹配点对有效,其中,KPs-ransac(Ai-Bj)表示KPransac(Ai-Bj)中匹配点的数目,LKN的大小设置为20。
[0016] 步骤五、以A摄像机坐标系为基准,解算B摄像机相对A摄像机的外参矩阵PA-B。记KPransac(Ai)和KPransac(Bj)分别为KPransac(Ai-Bj)中KAi和KBj图像上的对应的点序列矩阵,得到方程:
[0017]
[0018] 其中, 为KPransac(Bj)的转置矩阵,FAi-Bj为KAi和KBj之间的基本矩阵,通过上述方程求解得到。求解本质矩阵EAi-Bj:
[0019]
[0020] 其中, 和KA分别为摄像机内参标定步骤中得到的B摄像机的内参转置矩阵和A摄像机的内参矩阵。EAi-Bj为一个3×3矩阵,其SVD分解为
[0021] EAi-Bj=UDVT        (6)
[0022] ,其中D=diag(a,b,c)且a≥b≥c,U和VT为SVD分解矩阵。对EAi-Bj进行修正:
[0023]
[0024] 其中,E′Ai-Bj为EAi-Bj修正后的结果, 然后采用David Nistér的五点算法,从E′Ai-Bj中恢复出KBj图像相对于KAi图像的外参矩阵PAi-Bj。则B摄像机相对于A摄像机的外参矩阵Pm表示为:
[0025]
[0026] 其中, 为PAi的逆矩阵,PAi和PBj是步骤三中用ORB-SLAM算法获取的姿态矩阵,m∈[1,Nm],Nm为步骤四中提取的有效匹配点对数目,规定:
[0027]
[0028] PA-B的精度受到累积误差和自然场景的影响,利用计算出来Pm对PA-B进行以下估算:
[0029]
[0030] 其中,Pt是在时间上进行的估算,Pp是根据图像信息进行的估算,则PA-B表示为:
[0031] PA-B=tconf×Pt+pconf×Pp          (11)
[0032] 其中,tconf的大小为0.55,pconf的大小为0.45。
[0033] 本发明的有益效果是:该方法采用ORB-SLAM实时获取摄像机姿态,因此不需要依赖特定的硬件平台;通过多个摄像机在不同时刻采集的同一场景画面对多摄像机之间的位置关系进行解算。该方法设计简单,能够快速准确的实现无重叠或低重叠视野的多摄像机之间的标定。
[0034] 下面结合具体实施方式对本发明作详细说明。

具体实施方式

[0035] 本发明基于ORB-SLAM的多摄像机标定方法具体步骤如下:
[0036] 1、摄像机内参标定。
[0037] 采用标定中常用张氏标定法。连续采集15幅图像,在每幅图像上进行角点检测,计算标定所用图像和棋盘格之间的单应变换H,利用棋盘格的几何关系,建立各视图图像中各角点的对应关系;棋盘格上的所有角点的空间坐标是满足共面约束的,假设其Z坐标为0,对单应性进行计算:
[0038]
[0039] 其中,u,v为角点的像素坐标,X,Y为角点在棋盘格上的空间坐标。将H进行分解,得到:
[0040] H=sK[r1 r2 t]            (13)
[0041] 其中,r1,r2,t位棋盘的位置姿态,s为标量系数,K为摄像机参数矩阵。然后利用r1和r2的正交性求解K。
[0042] 2、数据采集。
[0043] 保证多个摄像机之间的关系固定,打开摄像机后多个摄像机同时运动,使得多个摄像机在不同时刻捕捉到的视野具有不小于图像采集分辨率大小的一半的重叠区域。
[0044] 3、数据选择。
[0045] 以两个摄像机A和B为例。采用ORB-SLAM算法对数据进行处理,获取关键帧序列KAi和KBj、ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj、相对于初始坐标系的姿态PAi和PBj、用DBOW2表征当前关键帧的向量VAi和VBj,其中Ai∈[1,NA],Bj∈[1,NB]且均为整数。NA和NB分别为A和B摄像机关键帧数目。利用DBOW2信息计算KAi和KBj之间的相似度SAi-Bj,在B摄像机关键帧序列中找到与KAi相似度分值最大的SAi-max(Bj),若SAi-max(Bj)>scoreConf,则认为是一组可信数据,scoreConf的大小设置为0.04。
[0046] 4、提取匹配点对。
[0047] 利用前面步骤提取的ORB描述子DesAi和DesBj及对应的特征点KPAi和KPBj信息,采用KNN(K-Nearest Neighbor)算法进行特征点的初次匹配,得到匹配点对KPAi-Bj。设定匹配比率radio的大小为0.6,选取满足条件
[0048] bestM/betterM<radio             (14)
[0049] 的匹配点对KPradio{Ai-Bj},其中bestM和betterM分别为进行匹配的点的最优匹配和次优匹配。进一步使用RANSAC(随机抽样一致)算法对KPradio{Ai-Bj}进行提纯,得到最终匹配点对KPransac(Ai-Bj),若KPs-ransac(Ai-Bj)>LKN,则认为当前提取的匹配点对有效,其中,KPs-ransac(Ai-Bj)表示KPransac(Ai-Bj)中匹配点的数目,LKN的大小设置为20。
[0050] 5、计算多摄像机之间的关系。
[0051] 仍以摄像机A和B为例,以A摄像机坐标系为基准,解算B摄像机相对A摄像机的外参矩阵PA-B。记KPransac(Ai)和KPransac(Bi)分别为KPransac(Ai-Bj)中KAi和KBj图像上的对应的点序列矩阵,得到方程:
[0052]
[0053] 其中, 为KPransac(Bj)的转置矩阵,FAi-Bj为KAi和KBj之间的基本矩阵,可通过上述方程求解得到。求解本质矩阵EAi-Bj:
[0054]
[0055] 其中, 和KA分别为摄像机内参标定步骤中得到的B摄像机的内参转置矩阵和A摄像机的内参矩阵。EAi-Bj为一个3×3矩阵,其SVD分解为
[0056] EAi-Bj=UDVT            (17)
[0057] ,其中D=diag(a,b,c)且a≥b≥c,U和VT为SVD分解矩阵。对EAi-Bj进行修正:
[0058]
[0059] 其中,E′Ai-Bj为EAi-Bj修正后的结果, 然后采用David Nistér所提出的五点算法从E′Ai-Bj中恢复出KBj图像相对于KAi图像的外参矩阵PAi-Bj。则B摄像机相对于A摄像机的外参矩阵Pm可表示为:
[0060]
[0061] 其中, 为PAi的逆矩阵,PAi和PBj是步骤三中用ORB-SLAM算法获取的姿态矩阵,m∈[1,Nm],Nm为步骤四中提取的有效匹配点对数目,规定:
[0062]
[0063] PA-B的精度受到累积误差和自然场景的影响,利用计算出来Pm对PA-B进行以下估算:
[0064]
[0065] 其中,Pt是在时间上进行的估算,Pp是根据图像信息进行的估算,则PA-B可表示为:
[0066] PA-B=tconf×Pt+pconf×Pp          (22)
[0067] 其中,tconf的大小为0.55,pconf的大小为0.45。其它摄像机之间的关系采用相同的方法依次求得。