CN116894876A - 基于实时图像的6-dof的定位方法 - Google Patents
基于实时图像的6-dof的定位方法 Download PDFInfo
- Publication number
- CN116894876A CN116894876A CN202311162984.9A CN202311162984A CN116894876A CN 116894876 A CN116894876 A CN 116894876A CN 202311162984 A CN202311162984 A CN 202311162984A CN 116894876 A CN116894876 A CN 116894876A
- Authority
- CN
- China
- Prior art keywords
- image
- local
- global
- points
- pose
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000001514 detection method Methods 0.000 claims abstract description 8
- 238000004064 recycling Methods 0.000 claims abstract description 4
- 238000012216 screening Methods 0.000 claims abstract description 4
- 238000013507 mapping Methods 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 16
- 238000005070 sampling Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 13
- 230000004807 localization Effects 0.000 claims description 12
- 230000005484 gravity Effects 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 9
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 8
- 238000000605 extraction Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 239000013598 vector Substances 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000001351 cycling effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 26
- 230000003190 augmentative effect Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000009499 grossing Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 102100037651 AP-2 complex subunit sigma Human genes 0.000 description 1
- 101000806914 Homo sapiens AP-2 complex subunit sigma Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- 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/77—Determining position or orientation of objects or cameras using statistical methods
-
- 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/10016—Video; Image sequence
-
- 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/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
-
- 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/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Library & Information Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Remote Sensing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Graphics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于实时图像的6‑DOF的定位方法,步骤为:S1:搭建场景,录制视频,解析视频;S2:创建图像数据库,对图像进行筛选匹配,顺序侦察,回收重建;S3:提取图像的特征点,进行匹配再三角化;S4:生成场景文件,部署本地定位服务器;S5:启动本地定位服务器;S6:在移动设备启动应用沿着场景进行移动检测,进行局部相机姿态估计及全局姿态匹配,使本地模型与全局模型对齐,发送全局信息到移动设备;S7:切换功能再次进行移动检测,再发送当前帧图像及当前帧图像信息至本地定位服务器,将图像的特征与场景3D点建立匹配,获得相机位姿;S8:更新本地地图。该方法能真正扩展,既具有实时跟踪,又能节约内存。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于实时图像的6-DOF的定位方法。
背景技术
现有的一些基于图像的定位工作都采用了图像检索方法来解决这一问题,并将其用于城市场景导航和城市尺度位置识别。然而,这些方法通常会输出一个近似的位置估计,甚至可能无法计算出一个完整的6-DOF位姿。现有的关于无标记增强现实的工作解决了实时3D相机跟踪问题,但通常只针对特定的对象,这通常需要对象的CAD模型,然而这些CAD模型通常很难构建。现有的还有基于离线特征的场景建模和在线摄像机跟踪,由于依赖SIFT特征提取和匹配,它以低帧率运行,同时还依赖于它的独特性,因此仅限于相对较小的空间。
用于增强现实的相机姿态估计方法、装置、设备及介质,根据采集到的现实图像重建目标对象的三维模型,从增强现实图像和现实图像中获取预设第一数量个2D-2D匹配对,并从增强现实图像和三维模型中获取预设第二数量个2D-3D匹配对,根据2D-2D匹配对和2D-3D匹配对,通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态;对于用于增强现实的相机姿态估计方法、装置、设备及介质,虽然与我们的方法相关,但它在以下方面有所不同:我们使用二进制描述符显示跟踪关键点,以随着时间摊销特征匹配的成本,我们使用带有跟踪的2D-3D匹配对代替了上述发明中提及得第一数量个2D-2D匹配对和第二数量个2D-3D匹配对通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态的方法,这使我们能够在同一时间内节约对于每帧处理得算力,同时还具备降低延迟性和误差性得能力。
中国专利文献(CN110047106A)公开了一种用于增强现实的相机姿态估计方法、装置、设备及介质,该方法包括:采集目标对象的增强现实图像和对应的现实图像,并根据采集到的现实图像重建目标对象的三维模型,从增强现实图像和现实图像中获取预设第一数量个2D-2D匹配对,并从增强现实图像和三维模型中获取预设第二数量个2D-3D匹配对,根据2D-2D匹配对和2D-3D匹配对,通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态,从而提高了估计出的相机姿态的精确度,进而提高了在增强现实系统中图像配准的精确度和实时性。但该技术方案使用根据2D-2D匹配对和2D-3D匹配对,通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态得方法增加了处理得算力,同时具有延迟和误差。
因此,有必要发明一种能实现低算力,且具有实时跟踪定位能力的基于实时图像的6-DOF(物体移动的不同基本方式)的定位的方法。
发明内容
本发明要解决的技术问题是提出一种基于实时图像的6-DOF的定位方法,该方法能真正扩展,定位误差更小,既具有实时跟踪定位能力,又节约内存,因此非常适合移动设备。
为了解决上述技术问题,本发明采用的技术方案是:该基于实时图像的6-DOF(物体移动的不同基本方式)的定位方法,具体包括以下步骤:
S1:搭建本地需要采集的场景环境,录制视频文件,解析视频文件,获得若干帧图像文件和图像信息文件;
S2:对获得的若干帧图像文件创建图像数据库,以及对生成的图像数据库进行图像检索;并对图像进行筛选匹配,对图像信息文件进行顺序侦察,再对图像进行回收重建;
S3:再重新提取图像的特征点,并进行匹配特征点;将生成特征的二进制文件和匹配的二进制文件进行重新三角化测量处理;
S4:将生成特征的二进制文件和图像数据库中的数据转换成定位服务所需的文件类型,即生成场景文件,部署好本地定位服务器;
S5:启动已部署好的本地定位服务器,将本地定位服务器上的地图目录指定为所述步骤S4中生成的场景文件的路径;
S6:在移动设备启动应用,采用移动设备的图像采集装置沿着场景进行移动检测,并进行局部相机姿态估计,以及全局姿态匹配,使本地模型与全局模型对齐,发送全局信息到移动设备;
S7:移动设备上的应用切换功能再次对当前场景进行移动检测,再发送当前帧图像及当前帧图像信息至本地定位服务器,本地定位服务器接收到图像后将接收的图像中的特征与场景中的3D点建立匹配,使用3D点绝对位姿求解器获得相机位姿;
S8:移动设备接收到相机位姿,更新本地地图至本地定位服务器上的地图目录。
采用上述技术方案,将运行在移动设备上构建的小型局部地图来执行实时姿态估计,用于重建的关键帧也被发送到定位服务器,以将本地映射与服务器重建对齐得方法;系统相对于本地地图跟踪相机,使用基于关键帧的SLAM(即时定位与地图构建)在移动设备上实时构建和维护,然后,本地定位服务器为关键帧提供全局位置估计,并将本地地图与全局地图对齐;由于移动设备只需要场景中相关部分的小地图,因此生成算法的运行时间与全局模型的大小无关,由于全局姿态估计是无偏移,所以不需要显式处理闭环。在服务器上运行的全局定位系统的可扩展性与移动设备上的局部姿态跟踪器的速度和精度相结合,该方法既具有实时能力,定位误差更小,还具有节约内存的特性,因此非常适合应用在移动设备上。
优选地,所述步骤S1的具体步骤为:
S11:搭建本地需要采集的场景环境,设置真几个不同ID的AprilTag码(通过AprilTag码矫正真实世界的公制尺度)在场景(房间)中;
S12:使用移动设备的图像采集装置录制场景搭建好的场景,获得视频文件,并将其转换成二进制文件发送至本地定位服务器;
S13:对二进制文件进行数据解包操作,获得若干帧图像和图像信息文件。
采用二进制描述符显示跟踪关键点,以随着时间摊销特征匹配的成本。
优选地,图像采集装置为相机,所述步骤S6的具体步骤为:
S61:在移动设备上启动应用,将移动设备的相机面向前方,沿着场景移动检测;
S62:进行局部相机姿态估计获得初始化的局部地图,确定当前帧的姿态,并检查当前帧是否满足关键帧属性,获得关键帧;
S63:发送关键帧到本地定位服务,获得当前帧相对于全局模型的本地化信息;
S64:将本地模型与全局模型对齐,发送对齐后得全局位姿信息到移动设备,并显示;再接收新的关键帧,并返回步骤S62,直至运行结束。
优选地,所述步骤S62的具体步骤为:
S621:给定不同的图像,从不同的视点进行拍摄,以保证一定的基线,并足够相似,以共享足够的特征匹配,再使用SFM技术(通过相机的移动来确定目标的空间和几何关系的三维重建方法)初始化场景的局部3D模型;
S622:利用重力方向,使用随机抽样一致算法(RANSAC)循环内部的基本矩阵,然后进行三角剖分,后再进行集束调整,获得初始的本地地图;
S623:采用强度补丁作为局部描述符来跟踪已经匹配的3D点,再使用随机抽样一致算法(RANSAC)循环内的3点绝对位姿解算器估计相机的位姿;
S624:确定当前帧的姿态,并检查是否满足关键帧属性,若满足,则当前帧成为关键帧,即获得关键帧,用于本地地图更新。其中,关键帧的属性要满足自身质量要好,不能是非常模糊的图像、特征点数量要充足、特征点分布要尽量均匀等特点,在当前帧扩展至本地地图后,且与之前所有关键帧都有一定的最小距离,那么当前帧就会成为关键帧。
优选地,所述步骤S621中使用SFM技术初始化场景的局部3D模型的具体步骤为:
S6211:对给定的每张图像提取特征点,并计算特征点的描述子;
S6212:将不同图像中的特征点进行匹配,找出不同图像之间的对应关系;
S6213:再通过特征点匹配,得到不同图像之间的几何变换关系,通过几何变换关系进行相机位姿估计;
S6214:在相机姿态估计的基础上,通过三角测量的方法来估计场景中每个图像的特征点的三维位置,即三角化;
S6215:在完成了每个图像的三维重建后,将每个图像进行融合构建整个场景的三维模型。
优选地,所述步骤S6211中使用 SIFT算法进行特征点的提取,具体步骤为:
S62111创建图像高斯金字塔:即创建图像的尺度空间;图像高斯金字塔的组数的
公式为:,其中M 为原始图像的行高,N 为原始图像的列宽;S=n+
3,n 为待提取图像特征的图像数,S为图像高斯金字塔每组的层数;当从0开始记录组数或
层数,计算公式为:, ,o为组索引序
号,r为层索引序号, 为对应的图像的高斯模糊系数,为高斯模糊初始值;()为伪极值点; 为偏导数,在一元函数中,导数就是函数的变化率;=代
表相对插值中心得偏移量,当它在任一维度上即x或y或的偏移量大于0.5时,则表示插值
中心已经偏移到它的邻近点上,所以必须改变当前关键点的位置;
S62112检测图像的极值点:创建好图像高斯金字塔后,将每一组内的相邻层相减
得到高斯差分金字塔,再设定像素阈值,在高斯差分金字塔中检测图像的极值点,即寻找图
像的关键点;极值点的计算公式为:,其中,T为常数;n为待提取特征的图像
数;abs(val)为图像的像素值;当检测到极值点之后,若高斯差分金字塔是离散的,则利用
泰勒展开进行更正极值点位置,在目前检测到的极值点的位置处,作三元二阶泰勒展开,公
式为:
;
其中,, 为高斯模糊初始值;()为伪极值点; 为偏导
数,在一元函数中,导数就是函数的变化率;=代表相对插值中心得偏移量,当它
在任一维度上即x或y或的偏移量大于0.5时,则表示插值中心已经偏移到它的邻近点上,
所以必须改变当前关键点的位置;
若,则舍去当前点X;即当判定值小于0.03时(即对比度低),当前点
则舍弃,此处采用的阈值是T/n,其中T=0.04,n为待提取特征的图像数;再确定极值点的方
向,统计以特征点为圆心,以该特征点所在的高斯图像的尺度的1.5倍为半径的圆内的所有
的像素的梯度方向及其梯度幅值,并作1.5σ的高斯滤波;
S62113构建极值点描述符:对极值点进行数学层面的特征描述,首先,确定计算描
述子所需的图像区域,描述子梯度方向直方图由极值点所在尺度的高斯图像计算产生,图
像区域的半径的计算公式为:radius=,其中d代表子块的数量,即将图像区域划
分为d×d个子块;每个子块区域的矩形为;为高斯模糊值,对每一子块进行8个方向的
直方图统计操作,获得每个方向的梯度幅值。
优选地,所述步骤S6213中采用随机抽样一致算法(RANSAC算法)进行特征点匹配得到几何变换关系,具体步骤为:
S62131:从原始数据集中随机采样出一个子集,把该子集叫做假设内点(hypothetical inliers);即先假设随机一抽,抽出来的子集全部都为内点,都能用模型来表达;
S62132:用一个模型来拟合所述步骤S62131中所有假设的内点;
S62133:将步骤S62131中没有被随机采样到作为假设内点的数据作为测试数据,用于测试步骤S62132中拟合好的模型,当测试数据中符合该拟合好的模型的点则归类为共识集;若测试数据中有超过设定的阈值的点被归类在该共识集中,则表明该拟合好的模型精度符合要求;
S62134:再采用共识集的所有数据对该拟合好的模型进行重新估计进而改进模型;
S62135:重复步骤S62131~S62134,直至获得优化模型。
优选地,在所述步骤S63中选择一个帧作为关键帧,若姿势内嵌点的数量低于设定的阈值,则将2D-2D匹配到之前的关键帧的新地图点三角化,并应用集束调整。
优选地,所述步骤S63的具体步骤为:
S631:将关键帧发送到本地定位服务器;
S632:所述本地定位服务器收到关键帧后,则查询关键帧中的SIFI特征并于场景中的每个3D点之间建立2D-3D匹配;
S633:将相机的内参发送至本地定位服务器,并使用3点绝对位姿解算器来估计随机抽样一致算法(RANSAC)循环内的相机位姿,获取相机位姿和用于估计位姿匹配的内点的2D特征和3D点的位置。使用带有跟踪的2D-3D匹配对代替了上述发明中提及得第一数量个2D-2D匹配对和第二数量个2D-3D匹配对通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态的方法,这使我们能够在同一时间内节约对于每帧处理得算力,同时还具备降低延迟性和误差性得能力。
优选地,在所述步骤S631中设和分别表示局部图像和全局图像中第j个3D点
的位置;因此,设为第i个关键帧中第j个点的观测图像位置;关键帧的局部位姿和全局位
姿分别由旋转矩阵,和位置,在局部坐标系和全局坐标系中定义;
再设表示第i个关键帧的相机内参矩阵,集束调整适应相机参数,和点的
位置,以使重投影误差的平方和最小;公式为:
;
其中,∈{0,1}表示第j个点在第i个关键帧中是否可见,d(x, y)是二维位置x
和y之间的二维欧氏距离,d(x, y)为公式中d();第二项是
第j个点在第i个关键帧上的投影。
优选地,在所述步骤S64中使用全局关键帧的位置对齐时,若本地定位服务器返回
的全局关键帧位置准确率大于设定的阈值,则调整本地和全局3D模型的策略采用的是强
制执行本地关键帧位置与本地定位服务器提供的估计值进行紧密匹配;从而最小化局部
关键帧和全局关键帧位置之间的欧氏距离平方和,公式为:
;
为了使全局定位中的误差具有稳健性,在当和之间的欧氏距离小于2米时,才
对添加关键帧约束;因此,在细化局部地图时,需要同时最小化重投影误差和
关键帧位置之间的距离,从而得到能量泛函,公式为:
;
其中,为将几何误差最小化,为将代数误差最小化;为了结合这两种误差类
型,使用初始值,对目标函数进行规范化,初始值,是分别通过使用原始的相机
姿势和未优化的相机姿势对术语进行评估获得的,以规范化这两种误差项;因此目标函数
变成下式:
;
其中,参数∈[0,1]用于对能量泛函和进行不同的加权;值越高,本地关键
帧和全局关键帧的位置的对齐越强,同时能降低本地地图的质量;另一方面,较低的值保
留了局部映射的一致性,但可能导致较差的对齐;因此,的选择强烈影响全局位姿估计的
质量;
其中的极小化必须由非线性最小二乘求解器迭代进行,因此需要进行初始化;
为此,计算一个具有比例因子、旋转R和平移t的仿射变换,公式为:
;其中s缩放因子,每级缩放因子均为1或2或4或8;
使最小化,则初始化目标函数;此转换仅适应仿射得局部映射,
因此这为我们提供了充分的初始对齐,同时保持了局部映射的一致性;
在所述步骤S64中当本地定位服务器重构与重力对齐时,则再次利用移动设备的
惯性测量单元传感器提供的重力向量,将T1的自由度从7降低到5,这使得能够仅从两对计算得到T1;计算完T1后,当 =,将每个局部点替换为,将每个
摄像机姿势替换为;计算完T1后,将每个局部点替换
为,将每个相机姿势替换为;
其中=。
此处需要注意,当本地映射尚未与全局坐标帧对齐时,这种初始对齐只能执行一
次。对于以后的映射更新,可以直接用作最小化的初始化。
优选地,在所述步骤S64中使用全局2D-3D匹配进行对齐时,将全局内嵌匹配合并到束调整中,使用全局重投影误差平方和产生未加权目标函数和加权的目标函数;其中全局重投影误差平方和的公式为:
;
其中,为全局3D点位置;
未加权的目标函数为:;
加权的目标函数为:;
其中,nL是局部匹配的数量,nG是全局匹配的数量;使用框架参数∈[0,1]对和进行不同的加权;虽然和都表示相同类型的误差,但是需要进行规范化,因为本地
匹配通常比全局匹配多得多;注意,我们没有细化全局3D点位置;由于全局SFM点云是使
用最先进的SFM技术进行重建的,这是高度准确的,因此不需要进行细化;因此,合并全局匹
配点可以防止局部映射中的偏移,而不会为优化过程增加额外的自由度;
与不同,对姿态的误差高度敏感,在没有适当初始化的情况下,我们
观察到收敛到较差的局部极小值;因此,我们必须采取进一步的预防措施,以确保初始和
所有后续映射对齐的良好初始化,去避免新插入的关键帧可能有较差的局部姿态估计;
对于第一次对齐,初始化之后则进行第二个仿射映射,公式为:
;
其中,∈{0,1}表示第k个点在第i个关键帧中是否可见,d(, )是二维位置和之间的二维欧氏距离;第二
项是全局点在对齐后的第i个关键帧的局部位姿上的投影;为全局
3D点位置;该映射由非线性最小二乘求解器计算。该映射由非线性最小二乘求解器计算;由
于不影响局部重投影误差,但使全局重投影误差最小化,从而使 的最小化得到较好的
初始化。对于后续的对齐,我们必须确保新插入关键帧的姿态估计不仅对局部匹配最优,而
且对全局匹配也是最优的。
优选地,在所述步骤S7中先在移动设备上的应用上切换至VLOC功能,将移动设备的相机面向前方,对着之前录制二进制文件的场景,移动相机对当前场景进行检测。
与现有技术相比,本发明具有的有益效果为:该方法在服务器上运行的全局定位系统的可扩展性与移动设备上的局部姿态跟踪器的速度和精度相结合;这个方法既具有实时定位跟踪能力,定位误差更小,还具有节约内存的特性,因此非常适合应用在移动设备上;该方法使用二进制描述符显示跟踪关键点,以随着时间摊销特征匹配的成本,使用带有跟踪的2D-3D匹配对代替了上述发明中提及得第一数量个2D-2D匹配对和第二数量个2D-3D匹配对通过预先改进的随机抽样一致算法获得增强现实图像对应的相机姿态的方法,使得能够在同一时间内节约对于每帧处理得算力,同时还具备降低延迟性和误差性得能力。
附图说明
图1是本发明基于实时图像的6-DOF的定位方法的流程示意图;
图2是本发明基于实时图像的6-DOF的定位方法中的图像高斯金字塔构建示意图;
图3是本发明基于实时图像的6-DOF的定位方法中的极值点偏离情况图;
图4是本发明基于实时图像的6-DOF的定位方法中的确定关键点方向图;
图5是本发明基于实时图像的6-DOF的定位方法的关键点所在的半径区域移至关键点方向;
图6(a)-图6(e)是本发明基于实时图像的6-DOF的定位方法的RANSAC算法的代过程;其中,图6(a)为从原始数据进行RANSAC算法迭代过程;图6(b)为RANSAC算法第1次迭代的结果;图6(c)为RANSAC算法第4次迭代的结果;图6(d)为RANSAC算法第254次迭代的结果;图6(e)为RANSAC算法最终迭代的结果;
图7是本发明基于实时图像的6-DOF的定位方法的重投影误差图。
具体实施方式
下面将结合本发明的实施例图中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
实施例:如图1所示,该基于实时图像的6-DOF的定位方法,具体包括以下步骤:
该基于实时图像的6-DOF的定位方法,具体包括以下步骤:
S1:搭建本地需要采集的场景环境,录制视频文件,解析视频文件,获得若干帧图像文件和图像信息文件;
所述步骤S1的具体步骤为:
S11:搭建本地需要采集的场景环境,设置几个(本实施例中设置2-3个)不同ID的AprilTag码(通过AprilTag码矫正真实世界的公制尺度)在场景(房间)中;
S12:使用移动设备的图像采集装置录制场景搭建好的场景,获得视频文件,并将其转换成二进制文件发送至本地定位服务器;
S13:对二进制文件进行数据解包操作,获得若干帧图像和图像信息文件 (包括图片名,相机类型,相机内参),本实施中获得的是录制过程按帧计数的png格式图像;
S2:对获得的若干帧图像文件创建图像数据库,以及对生成的图像数据库进行图像检索;并对图像进行筛选匹配,对图像信息文件进行顺序侦察,再对图像进行回收重建;
S3:再重新提取图像的特征点,并进行匹配特征点;将生成特征的二进制文件和匹配的二进制文件进行重新三角化测量处理;
S4:将生成特征的二进制文件和图像数据库中的数据转换成定位服务所需的文件类型,即生成场景文件(场景文件包括数据库文件、特征文件、图片文件、3D点文件),部署好本地定位服务器;
S5:启动已部署好的定位服务器,将定位服务器上的地图目录指定为所述步骤S4中生成的场景文件的路径(场景文件也即地图文件,包括数据库文件,特征文件,图片文件,3D点文件);
S6:在移动设备启动应用,采用移动设备的图像采集装置沿着场景进行移动检测,并进行局部相机姿态估计,以及全局姿态匹配(包括位姿匹配和2D-3D匹配),使本地模型与全局模型对齐,发送全局模型的位姿信息到移动设备;
本实施例中,图像采集装置为相机,所述步骤S6的具体步骤为:
S61:在移动设备上启动应用,点击start,将移动设备的相机面向前方,沿着场景移动检测;
S62:在当前应用中进行局部相机姿态估计,使用简单的8×8强度补丁作为局部描述符来跟踪已经匹配的3D点,提取24×24窗口中围绕投影到前一帧的3D点位置的BRISK关键点的强度补丁;使用RANSAC(随机抽样一致算法)循环内的3D点绝对位姿求解器估计相机位姿,本实施中,当前位姿至少包含10个内嵌点,那么此位姿即为有效的;从而获得初始化的局部地图,确定当前帧的姿态,并检查当前帧是否满足关键帧属性,获得关键帧;根据前面的到的当前帧的地图点来找到能观测到当前帧的一级共视关键帧,并将这些一级共视关键帧的二级共视关键帧,子关键帧,父关键帧一起作为局部关键帧;将局部地图点和当前帧特征点进行匹配,对匹配结果做优化进行局部姿态跟踪,获得初始化的局部地图和能够成功定位的关键帧,关键帧的条件要满足关键帧自身质量要好,例如不能是非常模糊的图像、特征点数量要充足、特征点分布要尽量均匀且关键帧自身质量要好,例如不能是非常模糊的图像、特征点数量要充足、特征点分布要尽量均匀等特点;
所述步骤S62的具体步骤为:
S621:给定不同的图像,从不同的视点拍摄,以保证一定的基线,并足够相似,以共享足够的特征匹配,再使用SFM技术(通过相机的移动来确定目标的空间和几何关系的三维重建方法)初始化场景的局部3D模型;
所述步骤S621中使用SFM技术初始化场景的局部3D模型的具体步骤为:
S6211:对给定的每张图像提取特征点,并计算特征点的描述子;在特征点提取过程中可以使用 SIFT、SURF 等算法,一般来说,一个好的特征点需要具备旋转不变性、尺度不变性和灰度不变性;
本实施例中,所述步骤S6211中使用 SIFT算法进行特征点的提取,具体步骤为:
S62111创建图像高斯金字塔:即创建图像的尺度空间;尺度的概念用来模拟观察
者距离物体的远近程度,在模拟物体远近的同时,还得考虑物体的粗细程序,图像高斯金字
塔的组数的公式为:,其中M为原始图像的行高,N为原始图像的列
宽;S=n+3,n为待提取图像特征的图像数,S为图像高斯金字塔每组的层数;当从0开始记录
组数或层数,计算公式为:, ,o为组
索引序号,r为层索引序号, 为对应的图像的高斯模糊系数,为高斯模糊初始值;
初始值设置为1.6,考虑相机实际已对图像进行的模糊处理,故实际;将σ乘以一个比例系数k,k=2^(1/n),得到一个新的平滑因子σ=
k*σ,用它来平滑第1组第2层图像,结果图像作为第3层;如此这般重复,最后得到n层图像,
在同一组中,每一层图像的尺寸都是一样的,只是平滑系数不一样,它们对应的平滑系数分
别为σ,kσ,k^2σ,k^3σ……k^(n-2)σ;将第1组倒数第三层图像作比例因子为2的降采样,得
到的图像作为第2组的第1层,然后对第2组的第1层图像做平滑因子为σ的高斯平滑,得到第
2组的第2层,重复上述步骤,如此得到第2组的n层图像,同组内它们的尺寸是一样的,对应
的平滑系数分别为:σ,kσ,k^2σ,k^3σ……k^(n-2)σ,但是在尺寸方面第2组是第1组图像的
一半,这样反复执行,就可以得到一共O组,每组n层,共计O*n个图像,这些图像一起就构成
了高斯金字塔,结构如图2所示;
S62112检测图像的极值点(极值点也即关键点):创建好图像高斯金字塔后,将每
一组内的相邻层相减得到高斯差分金字塔,是后期检测图像极值点的前提;设定像素阈值,
在高斯差分金字塔检测图像的极值点,极值点的计算公式为:,其中,T为常
数,此处T = 0.04,也可设定为其它值,n为待提取特征的图像数;为图像的像素值;
设定像素阈值,是为了去除一些噪点或其它一些不稳定像素点;在高斯差分金字塔中寻找
极值点,除了考虑x,y方向的点,还要考虑方向的点,所以判断一个像素点是否为极值点,
要与周围的26个点进行比较;当检测到极值点之后,若高斯差分金字塔是离散的(因为尺度
空间和像素点都是离散的),则检测到的极值点是不准确的,很大可能在真正极值点附近,
为了找到更高亚像素位置精度的极值点,需则利用泰勒展开进行更正极值点位置,在目前
检测到的极值点的位置处,作三元二阶泰勒展开,如图3为极值点偏离的情况,公式为:;其中,, 为高斯模糊初始值;()
为伪极值点; 为偏导数,在一元函数中,导数就是函数的变化率;=代表相对插
值中心得偏移量,当它在任一维度上即x或y或的偏移量大于0.5时,则表示插值中心已经
偏移到它的邻近点上,所以必须改变当前关键点的位置;
若,则舍去当前点X;即当判定值小于0.03时(即对比度低),当前点
则舍弃,此处采用的阈值是T/n,其中T=0.04,n表示图像中特征的图像数;再确定极值点(关
键点)的方向,统计以特征点为圆心,以该特征点所在的高斯图像的尺度的1.5倍为半径的
圆内的所有的像素的梯度方向及其梯度幅值,并作1.5σ的高斯滤波(高斯加权,离圆心也就
是关键点近的幅值所占权重较高);如图4为确定关键点方向图;
S62113构建极值点描述符:步骤S62112中只是找到关键点并确定了其方向,但
SIFT算法的核心用途在于图像的匹配,因此,对关键点进行数学层面的特征描述,即构建关
键点描述符首先,确定计算描述子所需的图像区域,描述子梯度方向直方图由关键点所在
尺度的高斯图像计算产生,图像区域的半径的计算公式为:radius=,其中d代表
子块的数量,即将图像区域划分为d×d个子块;每个子块区域的矩形为3σ;σ为高斯模糊值,
对每一子块进行8个方向的直方图统计操作,获得每个方向的梯度幅值;本实施例中d=4,代
表4×4个子块;关键点所在的半径区域,移至关键点方向,如图5所示,即将区域划分为4×4
的子块,对每一子块进行8个方向的直方图统计操作,获得每个方向的梯度幅值,总共可以
组成128维描述向量;
S6212:将不同图像中的特征点进行匹配,找出不同图像之间的对应关系;可以使用输入没有标签的数据后,将这个没有标签的数据的每个特征与样本集中的数据对应的特征进行比较,然后提取样本中特征最相近的数据(最近邻)的分类标签得方式进行特征匹配;需要注意的是,在匹配的过程中,需要使用一些鲁棒的技巧来避免匹配误差的影响;
S6213:再通过特征点匹配,得到不同图像之间的几何变换关系,通过几何变换关系进行相机位姿估计;通过这些变换关系,可以估计出相机的姿态,包括相机的位置和方向;
本实施例中,通过RANSAC算法进行特征点匹配得到几何变换关系,RANSAC算法的输入是一组观测数据,一种将某种模型拟合到观测值的方法,以及一些置信参数;RANSAC算法通过重复以下具体步骤来实现目标;
所述步骤S6213中采用随机抽样一致算法(RANSAC算法)进行特征点匹配得到几何变换关系,具体步骤为:
S62131:从原始数据集中随机采样出一个子集,把该子集叫做假设内点(hypothetical inliers);即先假设随机一抽,抽出来的子集全部都为内点,都能用模型来表达;
S62132:用一个模型来拟合所述步骤S62131中所有假设的内点;
S62133:将步骤S62131中没有被随机采样到作为假设内点的数据作为测试数据,用于测试步骤S62132中拟合好的模型,当测试数据中符合该拟合好的模型的点则为共识集一部分;这些用来测试的数据中可以很好地符合步骤2中的估算模型的点被看作是共识集(consensus set)的一部分(是否很好地符合模型要根据模型特定的损失函数来判断);若测试数据中有超过设定的阈值的点被归类在该共识集中,则表明该拟合好的模型精度符合要求(即有足够多的点被归类为该共识集的一部分,那么说明这个模型很不错);
S62134:再采用共识集的所有数据对该拟合好的模型进行重新估计进而改进模型;
S62135:重复步骤S62131~S62134,直至获得优化模型;这个过程重复固定的次数,每次产生一个模型,对于产生的这个模型,不是因为共识集的点太少而被拒绝,就是生成一个具有相应共识集大小的优化模型;因此,通过如图6(a)-图6(e)所示的从原始数据进行算法迭代过程:
如图6(a)所示,虚线长方形框内的点为内群点(包含高斯分布的误差),而虚线长方形框外的点为不符合回归模型的离群点,虚线长方形框内的中线为通过内群点拟合出的回归模型(也就是理想中的拟合模型),与虚线长方形框相交的直线为所有点的拟合模型,可见,所有点的拟合模型与内群点拟合出的回归模型之间存在较大的差距,结果不可信;如图6(b)所示,RANSAC算法第1次迭代的结果,如图6(c)所示,为RANSAC算法第4次迭代的结果;如图6(d)所示,为RANSAC算法第254次迭代的结果,如图6(e)所示,为RANSAC算法最终迭代的结果;最终迭代的结果可以看到,虚线长方形框内的中线和双向箭头线重合,算法收敛于准确范围,成功排除了离群点对于模型拟合的影响;
S6214:在相机姿态估计的基础上,通过三角测量的方法来估计场景中每个图像的特征点的三维位置,即三角化;需要使用两个相机的视角来进行三角测量,这个过程叫做三角化;
S6215:在完成了每个图像的三维重建后,将每个图像进行融合构建整个场景的三维模型;可以使用 BA(Bundle Adjustment)等算法对重建结果进行优化;其中BA算法是指从视觉重建中提炼出最优的3D模型和相机参数(内参和外参),从每个特征点反射出来的几束光线(bundles of light rays),在我们把相机姿态和特征点的位置做出最优的调整(adjustment)之后,最后收束到光心的这个过程,简称BA;如图7所示,这些五颜六色的线就是光束线,重投影指的是二次投影;重投影误差是指的真实三维空间点在图像平面上的投影(也就是图像上的像素点)和重投影(其实是用我们的计算的3D点得到的虚拟的像素点)的差值,因为种种原因计算得到的值和实际情况不会完全相符,也就是这个差值不可能恰好为0,此时也就需要将这些差值的和最小化获取最优的相机参数及三维空间点的坐标;
S622:利用重力方向相关知识,使用随机抽样一致算法(RANSAC)循环内部的基本矩阵,然后进行三角剖分,后再进行集束调整,获得初始的本地地图;此步骤中的采用的随机抽样一致算法和三角剖分与步骤S621中方法一样;
S623:采用简单的强度补丁作为局部描述符来跟踪已经匹配的3D点,再使用随机抽样一致算法(RANSAC)循环内的3点绝对位姿解算器估计相机的位姿;此步骤中的采用的随机抽样一致算法与步骤S621中方法一样;
S624:确定当前帧的姿态,并检查是否满足关键帧属性,若满足,则当前帧成为关键帧,即获得关键帧,用于本地地图更新;关键帧的属性要满足自身质量要好,不能是非常模糊的图像、特征点数量要充足、特征点分布要尽量均匀等特点,在当前帧扩展至本地地图后,且与之前所有关键帧都有一定的最小距离,那么当前帧就会成为关键帧;
S63:发送关键帧到本地定位服务,获得当前帧相对于全局模型的本地化信息(包括全局位姿估计和用于估计位姿匹配的内点的2D特征和3D点的位置);
在所述步骤S63中选择一个帧作为关键帧,若姿势内嵌点的数量低于设定的阈值(即如果姿势内嵌点的数量很低,并且大多数内嵌点位于图像的下、上、左或右一半),则将2D-2D匹配到之前的关键帧的新地图点三角化,并应用集束调整;在本实施例中,为了限制维护局部映射及其在内存中的大小的计算负载,将关键帧的数量限制为k,这是一个附加的框架参数;若存在大于k的关键帧,则删除与新关键帧距离最大的那个关键帧;删除的关键帧与本地映射点之间的所有关联将被删除;最后,剩余关键帧中至少两个未观察到的3D点将被完全删除;
所述步骤S63的具体步骤为:
S631:将关键帧发送到本地定位服务器;
在所述步骤S631中设和分别表示局部图像和全局图像中第j个3D点的位置;
因此,设为第i个关键帧中第j个点的观测图像位置;关键帧的局部位姿和全局位姿分别
由旋转矩阵,和位置,在局部坐标系和全局坐标系中定义;
再设表示第i个关键帧的相机内参矩阵,集束调整适应相机参数,和点的
位置,以使重投影误差的平方和最小;公式为:
;
其中,∈{0,1}表示第j个点在第i个关键帧中是否可见,d(x, y)是二维位置x
和y之间的二维欧氏距离,d(x, y)为公式中d(),第二项是
第j个点在第i个关键帧上的投影;
S632:所述本地定位服务器收到关键帧后,则查询关键帧中的SIFI特征并于场景中的每个3D点之间建立2D-3D匹配;
S633:将相机的内参发送至本地定位服务器,并使用3点绝对位姿解算器来估计随机抽样一致算法(RANSAC)循环内的相机位姿,获取相机位姿和用于估计位姿匹配的内点的2D特征和3D点的位置;
S64:将本地模型与全局模型对齐,发送对齐后得全局位姿信息到移动设备,并显示;再接收新的关键帧,并返回步骤S62,直至运行结束;
在所述步骤S64中使用全局关键帧的位置对齐时,若本地定位服务器返回的全局
关键帧位置准确率大于设定的阈值,则调整本地和全局3D模型的策略采用的是强制执行
本地关键帧位置与本地定位服务器提供的估计值进行紧密匹配;从而最小化局部关键帧
和全局关键帧位置之间的欧氏距离平方和,公式为:
;
为了使全局定位中的误差具有稳健性,在当和之间的欧氏距离小于2米时,才
对添加关键帧约束;因此,在细化局部地图时,需要同时最小化重投影误差和
关键帧位置之间的距离,从而得到能量泛函,公式为:
;
其中,为将几何误差最小化,为将代数误差最小化;为了结合这两种误差类
型,使用初始值,对目标函数进行规范化,初始值,是分别通过使用原始的相机
姿势和未优化的相机姿势对术语进行评估获得的,以规范化这两种误差项;因此目标函数
变成下式:
;
其中,参数∈[0,1]用于对能量泛函和进行不同的加权;值越高,本地关键
帧和全局关键帧的位置的对齐越强,同时能降低本地地图的质量;另一方面,较低的值保
留了局部映射的一致性,但可能导致较差的对齐;因此,的选择强烈影响全局位姿估计的
质量;
其中的极小化必须由非线性最小二乘求解器迭代进行,因此需要进行初始化;
为此,计算一个具有比例因子、旋转R和平移t的仿射变换,公式为:
;其中s缩放因子,每级缩放因子均为1或2或4或8;
使最小化,则初始化目标函数;此转换仅适应仿射的局部映射,
因此这为我们提供了充分的初始对齐,同时保持了局部映射的一致性;
在所述步骤S64中当本地定位服务器重构与重力对齐时,则再次利用移动设备的
惯性测量单元传感器提供的重力向量,将T1的自由度从7降低到5,这使得能够仅从两对计算得到;计算完后,当 =,将每个局部点替换为,将每个
摄像机姿势替换为;计算完T1后,将每个局部点替换
为,将每个相机姿势替换为;
其中=。
注意,当本地映射尚未与全局坐标帧对齐时,这种初始对齐只能执行一次;对于以
后的映射更新,可以直接用作最小化的初始化;
在所述步骤S64中使用全局2D-3D匹配进行对齐时,将全局内嵌匹配合并到束调整中,使用全局重投影误差平方和产生未加权目标函数和加权的目标函数;其中全局重投影误差平方和的公式为:
;
其中,为全局3D点位置;
未加权的目标函数为:;
加权的目标函数为:;
其中,nL是局部匹配的数量,nG是全局匹配的数量;使用框架参数∈[0,1]对和进行不同的加权;虽然和都表示相同类型的误差,但是需要进行规范化,因为本地
匹配通常比全局匹配多得多;注意,我们没有细化全局3D点位置;由于全局SFM点云是使
用最先进的SFM技术进行重建的,这是高度准确的,因此不需要进行细化;因此,合并全局匹
配点可以防止局部映射中的偏移,而不会为优化过程增加额外的自由度;
与不同,对姿态的误差高度敏感,在没有适当初始化的情况下,我们
观察到收敛到较差的局部极小值;因此,我们必须采取进一步的预防措施,以确保初始和
所有后续映射对齐的良好初始化,去避免新插入的关键帧可能有较差的局部姿态估计;
对于第一次对齐,初始化之后则进行第二个仿射映射,公式为:
;
其中,∈{0,1}表示第k个点在第i个关键帧中是否可见;
其中,d(, )是二维位置和之间
的二维欧氏距离;第二项是全局点在对齐后的第i个关键帧的局部位
姿上的投影;为全局3D点位置;该映射由非线性最小二乘求解器计算。该映射由非线性最
小二乘求解器计算;由于不影响局部重投影误差,但使全局重投影误差最小化,从而使
的最小化得到较好的初始化。对于后续的对齐,我们必须确保新插入关键帧的姿态估计不
仅对局部匹配最优,而且对全局匹配也是最优的;
S7:移动设备上的应用切换功能再次对当前场景进行移动检测,再发送当前帧图像及当前帧图像信息至本地定位服务器,图像信息包括分辨率、类型、相机内参;本地定位服务器接收到图像后将接收的图像中的特征与场景中的3D点建立匹配,使用3D点绝对位姿求解器获得相机位姿;在所述步骤S7中先在移动设备上的应用上切换至VLOC功能,点击start,将移动设备的相机面向前方,对着之前录制二进制文件的场景,移动相机对当前场景进行检测;该步骤中的本地定位服务器接收到图像后将接收的图像中的特征与场景中的3D点建立匹配,使用3D点绝对位姿求解器获得相机位姿的方法与详细过程与步骤S63相同;如果得到的姿态至少满足有12个内点,那此姿态即为当前相机位姿;
S8:移动设备接收到相机位姿,更新本地地图至本地定位服务器上的地图目录。
以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种基于实时图像的6-DOF的定位方法,其特征在于,具体包括以下步骤:
S1:搭建本地需要采集的场景环境,录制视频文件,解析视频文件,获得若干帧图像文件和图像信息文件;
S2:对获得的若干帧图像文件创建图像数据库,以及对生成的图像数据库进行图像检索;并对图像进行筛选匹配,对图像信息文件进行顺序侦察,再对图像进行回收重建;
S3:再重新提取图像的特征点,并进行匹配特征点;将生成特征的二进制文件和匹配的二进制文件进行重新三角化测量处理;
S4:将生成特征的二进制文件和图像数据库文件中的数据转换成定位服务所需的文件类型,即生成场景文件,部署好本地定位服务器;
S5:启动已部署好的本地定位服务器,将本地定位服务器上的地图目录指定为步骤S4中生成的场景文件的路径;
S6:在移动设备启动应用,采用移动设备的图像采集装置沿着场景进行移动检测,并进行局部相机姿态估计,以及全局姿态匹配,使本地模型与全局模型对齐,发送全局信息到移动设备;
S7:移动设备上的应用切换功能再次对当前场景进行移动检测,再发送当前帧图像及当前帧图像信息至本地定位服务器,本地定位服务器接收到图像后将接收的图像中的特征与场景中的3D点建立匹配,使用3D点绝对位姿求解器获得相机位姿;
S8:移动设备接收到相机位姿,更新本地地图至本地定位服务器上的地图目录。
2.根据权利要求1所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S1的具体步骤为:
S11:搭建本地需要采集的场景环境,设置几个不同ID的AprilTag码在场景中;
S12:使用移动设备的图像采集装置录制场景搭建好的场景,获得视频文件,并将其转换成二进制文件发送至本地定位服务器;
S13:对二进制文件进行数据解包操作,获得若干帧图像和图像信息文件。
3.根据权利要求1所述的基于实时图像的6-DOF的定位方法,其特征在于,图像采集装置为相机,所述步骤S6的具体步骤为:
S61:在移动设备上启动应用,将移动设备的相机面向前方,沿着场景移动检测;
S62:进行局部相机姿态估计获得初始化的局部地图,确定当前帧的姿态,并检查当前帧是否满足关键帧属性,获得关键帧;
S63:发送关键帧到本地定位服务,获得当前帧相对于全局模型的本地化信息;
S64:将本地模型与全局模型对齐,发送对齐后得全局位姿信息到移动设备,并显示;再接收新的关键帧,并返回步骤S62,直至运行结束。
4.根据权利要求3所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S62的具体步骤为:
S621:给定不同的图像,从不同的视点进行拍摄,再使用SFM技术初始化场景的局部3D模型;
S622:利用重力方向,使用随机抽样一致算法循环内部的矩阵,然后进行三角剖分,后再进行集束调整,获得初始的本地地图;
S623:采用强度补丁作为局部描述符来跟踪已经匹配的3D点,再使用随机抽样一致算法循环内的3点绝对位姿解算器估计相机的位姿;
S624:确定当前帧的姿态,并检查是否满足关键帧属性,若满足,则当前帧成为关键帧,即获得关键帧,用于本地地图更新。
5.根据权利要求4所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S621中使用SFM技术初始化场景的局部3D模型的具体步骤为:
S6211:对给定的每张图像提取特征点,并计算特征点的描述子;
S6212:将不同图像中的特征点进行匹配,找出不同图像之间的对应关系;
S6213:再通过特征点匹配,得到不同图像之间的几何变换关系,通过几何变换关系进行相机位姿估计;
S6214:在相机姿态估计的基础上,通过三角测量的方法来估计场景中每个图像的特征点的三维位置,即三角化;
S6215:在完成了每个图像的三维重建后,将每个图像进行融合构建整个场景的三维模型。
6.根据权利要求5所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S6211中使用 SIFT算法进行特征点的提取,具体步骤为:
S62111创建图像高斯金字塔:即创建图像的尺度空间,图像高斯金字塔的组数的公式为:,其中M 为原始图像的行高,N为原始图像的列宽,S=n+3,n 为待提取图像特征的图像数,S为图像高斯金字塔每组的层数;当从0开始记录组数或层数,计算公式为:/>, />,o为组索引序号,r为层索引序号,/> 为对应的图像的高斯模糊系数,/>为高斯模糊初始值;
S62112检测图像的极值点:创建好图像高斯金字塔后,将每一组内的相邻层相减得到高斯差分金字塔,再设定像素阈值,在高斯差分金字塔中检测图像的极值点,即寻找图像的关键点;极值点的计算公式为:,其中,T为常数,n为待提取特征的图像数;abs(val)为图像的像素值;当检测到极值点之后,若高斯差分金字塔是离散的,则利用泰勒展开进行更正极值点位置,在目前检测到的极值点的位置处,作三元二阶泰勒展开,公式为:
;
其中,, />为高斯模糊初始值;(/>)为伪极值点; />为偏导数,在一元函数中,导数就是函数的变化率;/>=/>代表相对插值中心得偏移量,当它在任一维度上即x或y或/>的偏移量大于0.5时,则表示插值中心已经偏移到它的邻近点上,所以必须改变当前关键点的位置;
若,则舍去当前点X;再确定极值点的方向,统计以特征点为圆心,以该特征点所在的高斯图像的尺度的1.5倍为半径的圆内的所有的像素的梯度方向及其梯度幅值,并作1.5σ的高斯滤波;
S62113构建极值点描述符:对极值点进行数学层面的特征描述,首先,确定计算描述子所需的图像区域,描述子梯度方向直方图由极值点所在尺度的高斯图像计算产生,图像区域的半径的计算公式为:radius=,其中d代表子块的数量,即将图像区域划分为d×d个子块,每个子块区域的矩形为3/>;/>为高斯模糊值;对每一子块进行8个方向的直方图统计操作,获得每个方向的梯度幅值。
7.根据权利要求6所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S6213中采用随机抽样一致算法进行特征点匹配得到几何变换关系,具体步骤为:
S62131:从原始数据集中随机采样出一个子集,把该子集叫做假设内点;即先假设随机一抽,抽出来的子集全部都为内点,均用模型来表达;
S62132:用一个模型来拟合所述步骤S62131中所有假设的内点;
S62133:将步骤S62131中没有被随机采样到作为假设内点的数据作为测试数据,用于测试步骤S62132中拟合好的模型,当测试数据中符合该拟合好的模型的点则归类在共识集中;若测试数据中有超过设定的阈值的点被归类在该共识集中,则表明该拟合好的模型精度符合要求;
S62134:再采用共识集的所有数据对该拟合好的模型进行重新估计进而改进模型;
S62135:重复步骤S62131~S62134,直至获得优化的模型。
8.根据权利要求4所述的基于实时图像的6-DOF的定位方法,其特征在于,
在所述步骤S63中选择一个帧作为关键帧,若姿势内嵌点的数量低于设定的阈值,则将2D-2D匹配到之前的关键帧的新地图点三角化,并应用集束调整。
9.根据权利要求8所述的基于实时图像的6-DOF的定位方法,其特征在于,所述步骤S63的具体步骤为:
S631:将关键帧发送到本地定位服务器;
S632:所述本地定位服务器收到关键帧后,则查询关键帧中的SIFI特征并于场景中的每个3D点之间建立2D-3D匹配;
S633:将相机的内参发送至本地定位服务器,并使用3点绝对位姿解算器来估计随机抽样一致算法循环内的相机位姿,获取相机位姿和用于估计位姿匹配的内点的2D特征和3D点的位置。
10.根据权利要求9所述的基于实时图像的6-DOF的定位方法,其特征在于,在所述步骤S631中设和/>分别表示局部图像和全局图像中第j个3D点的位置;因此,设/>为第i个关键帧中第j个点的观测图像位置;关键帧的局部位姿和全局位姿分别由旋转矩阵/>,/>和位置/>,/>在局部坐标系和全局坐标系中定义;
再设表示第i个关键帧的相机内参矩阵,集束调整适应相机参数/>,/>和点/>的位置,以使重投影误差的平方和最小化;公式为:
;
其中,∈{0,1}表示第j个点在第i个关键帧中是否可见,d(x, y)是二维位置x和y之间的二维欧氏距离,d(x, y)为公式中d(/>),第二项/>是第j个点在第i个关键帧上的投影。
11.根据权利要求4所述的基于实时图像的6-DOF的定位方法,其特征在于,在所述步骤S64中使用全局关键帧的位置对齐时,若本地定位服务器返回的全局关键帧位置准确率大于设定的阈值,则调整本地模型和全局3D模型的策略;即采用强制执行本地关键帧位置与本地定位服务器提供的估计值进行匹配;从而得到最小化局部关键帧和全局关键帧位置之间的欧氏距离平方和,公式为:
;
在当和/>之间的欧氏距离小于2米时,再对/>添加关键帧约束/>;因此,在细化局部地图时,同时最小化重投影误差和关键帧位置之间的距离,从而得到能量泛函,公式为:
;
其中,为将几何误差最小化,/>为将代数误差最小化;为了结合这两种误差类型,使用初始值/>,/>对目标函数进行规范化,初始值/>,/>是分别通过使用原始的相机姿势和未优化的相机姿势对术语进行评估获得的,以规范化这两种误差项;因此目标函数变成下式:
;
其中,参数∈[0,1]用于对能量泛函/>和/>进行不同的加权;/>值越高,本地关键帧和全局关键帧的位置的对齐越强;
其中的极小化必须由非线性最小二乘求解器迭代进行,因此需要进行初始化;为此,计算一个具有比例因子、旋转R和平移t的仿射变换,公式为:
;其中,s缩放因子,使/>最小化,则初始化目标函数;
在所述步骤S64中当本地定位服务器重构与重力对齐时,则再次利用移动设备的惯性测量单元传感器提供的重力向量,将T1的自由度从7降低到5,这使得仅从两对计算得到T1;计算完T1后,当 />=/>,将每个局部点/>替换为/>,将每个摄像机姿势替换为/>;计算完T1后,将每个局部点/>替换为/>,将每个相机姿势/>替换为/>;
其中=/>。
12.根据权利要求11所述的基于实时图像的6-DOF的定位方法,其特征在于,在所述步骤S64中使用全局2D-3D匹配进行对齐时,将全局内嵌匹配合并到束调整中,使用全局重投影误差平方和产生未加权目标函数和加权的目标函数;其中全局重投影误差平方和的公式为:
;
其中,为全局3D点位置;
未加权的目标函数为:;
加权的目标函数为:;
其中,nL是局部匹配的数量,nG是全局匹配的数量;使用框架参数∈[0,1]对/>和/>进行不同的加权;/>和/>均表示相同类型的误差;
对于第一次对齐,初始化之后则进行第二个仿射映射,公式为:
;
其中,∈{0,1}表示第k个点在第i个关键帧中是否可见;
其中,d(, />)是二维位置/>和/>之间的二维欧氏距离;第二项/>是全局点在对齐后的第i个关键帧的局部位姿上的投影;/>为全局3D点位置;该映射由非线性最小二乘求解器计算。
13.根据权利要求11所述的基于实时图像的6-DOF的定位方法,其特征在于,在所述步骤S7中先在移动设备上的应用上切换至VLOC功能,将移动设备的相机面向前方,对着之前录制二进制文件的场景,移动相机对当前场景进行检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162984.9A CN116894876A (zh) | 2023-09-11 | 2023-09-11 | 基于实时图像的6-dof的定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162984.9A CN116894876A (zh) | 2023-09-11 | 2023-09-11 | 基于实时图像的6-dof的定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116894876A true CN116894876A (zh) | 2023-10-17 |
Family
ID=88315288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311162984.9A Pending CN116894876A (zh) | 2023-09-11 | 2023-09-11 | 基于实时图像的6-dof的定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116894876A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117830301A (zh) * | 2024-03-04 | 2024-04-05 | 青岛正大正电力环保设备有限公司 | 基于红外可见光融合特征的捞渣区域检测方法 |
-
2023
- 2023-09-11 CN CN202311162984.9A patent/CN116894876A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117830301A (zh) * | 2024-03-04 | 2024-04-05 | 青岛正大正电力环保设备有限公司 | 基于红外可见光融合特征的捞渣区域检测方法 |
CN117830301B (zh) * | 2024-03-04 | 2024-05-14 | 青岛正大正电力环保设备有限公司 | 基于红外可见光融合特征的捞渣区域检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110070615B (zh) | 一种基于多相机协同的全景视觉slam方法 | |
CN109631855B (zh) | 基于orb-slam的高精度车辆定位方法 | |
CN109345588B (zh) | 一种基于Tag的六自由度姿态估计方法 | |
CN111780764B (zh) | 一种基于视觉地图的视觉定位方法、装置 | |
CN110853075B (zh) | 一种基于稠密点云与合成视图的视觉跟踪定位方法 | |
KR101532864B1 (ko) | 모바일 디바이스들에 대한 평면 맵핑 및 트래킹 | |
CN112419497A (zh) | 基于单目视觉的特征法与直接法相融合的slam方法 | |
CN109613974B (zh) | 一种大场景下的ar家居体验方法 | |
Nousias et al. | Large-scale, metric structure from motion for unordered light fields | |
CN112767546B (zh) | 移动机器人基于双目图像的视觉地图生成方法 | |
Wang et al. | Feature-based RGB-D camera pose optimization for real-time 3D reconstruction | |
CN116894876A (zh) | 基于实时图像的6-dof的定位方法 | |
Ekekrantz et al. | Adaptive iterative closest keypoint | |
CN114882106A (zh) | 位姿确定方法和装置、设备、介质 | |
Ventura et al. | P1ac: Revisiting absolute pose from a single affine correspondence | |
CN117870659A (zh) | 基于点线特征的视觉惯性组合导航算法 | |
KR101766823B1 (ko) | 불규칙한 조도 변화에 강건한 영상 기반 주행거리 측정 시스템 및 방법 | |
Luo et al. | Improved ORB‐SLAM2 Algorithm Based on Information Entropy and Image Sharpening Adjustment | |
CN116843754A (zh) | 一种基于多特征融合的视觉定位方法及系统 | |
Megyesi et al. | Dense 3D reconstruction from images by normal aided matching | |
Chen et al. | End-to-end multi-view structure-from-motion with hypercorrelation volume | |
CN114399547B (zh) | 一种基于多帧的单目slam鲁棒初始化方法 | |
CN109118576A (zh) | 基于bds位置服务的大型场景三维重建系统及重建方法 | |
CN112146647B (zh) | 一种地面纹理的双目视觉定位方法及芯片 | |
CN113570667A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20231017 |
|
RJ01 | Rejection of invention patent application after publication |