CN108592919B - 制图与定位方法、装置、存储介质和终端设备 - Google Patents
制图与定位方法、装置、存储介质和终端设备 Download PDFInfo
- Publication number
- CN108592919B CN108592919B CN201810391851.1A CN201810391851A CN108592919B CN 108592919 B CN108592919 B CN 108592919B CN 201810391851 A CN201810391851 A CN 201810391851A CN 108592919 B CN108592919 B CN 108592919B
- Authority
- CN
- China
- Prior art keywords
- frame
- constraint
- sliding window
- image
- prior
- 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 92
- 230000004807 localization Effects 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000033001 locomotion Effects 0.000 claims description 82
- 230000005484 gravity Effects 0.000 claims description 49
- 238000005259 measurement Methods 0.000 claims description 40
- 238000005457 optimization Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 33
- 230000000007 visual effect Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000000059 patterning Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/48—Matching video sequences
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Automation & Control Theory (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Computer Graphics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提出一种制图与定位方法、装置、存储介质和终端设备,其中,所述方法包括:接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;控制本地集束调整的滑动窗口沿图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,首帧是在移出首帧前滑动窗口中的最早帧;尾帧是图像帧序列中未曾移入滑动窗口的最早帧;判断首帧是否为关键帧;当首帧为关键帧时,生成全局集束调整的相对约束和作用于下一首帧的本地集束调整的先验约束,并调整所述边缘化处理的参考坐标系为移出的首帧,否则生成作用于下一首帧的本地集束调整的先验约束,最后再进行全局集束调整以及本地集束调整。采用本发明,能够避免边缘化处理产生的先验约束的误差不断累积。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种制图与定位方法、装置、存储介质和终端设备。
背景技术
随着仓储、物流等配送服务的发展需求,机器人、无人车、无人机等移动机器人能够协助或取代人类工作,有着广泛的应用前景,是目前科学技术发展最为活跃的领域之一。
在移动机器人的应用中一个至关重要的环节是,实时定位机器人在实际工作场景中的方位,准确地获取了机器人的方位信息,并基于获取到的方位信息控制机器人的移动。目前主流的方案一般需要依靠激光雷达、差分GPS、高精度惯量系统等昂贵的硬件设备来获取方位信息,成本高。或者,事先在工作场景中部署信号源或电磁轨道,机器人通过获取信号源发送的信号或确定电磁轨道信息才能实现精确定位和导航,如此也会因信息源或电磁轨道的布置限制而限制了移动机器人的应用场景。
基于以上情况,定位与制图(Simultaneous Localization and Mapping,SLAM)技术能通过低成本的相机、惯量测量单元(Inertial measurement unit,IMU)传感器等硬件设备获取信息,通过获取的信息在未知环境中实现移动机器人的自身定位,从而突破上述方案在硬件成本、应用场景方面的局限。
但是,基于纯视觉的SLAM和只靠IMU的定位方式各有优劣。基于纯视觉的V-SLAM(Visual SLAM,基于视觉的定位与制图)精度较高,可以通过闭合循环回路消除累积误差,但是其缺点在于严重依赖于场景特征,如果摄像头只看到一面没有纹理的白墙,那么V-SLAM将会失效,无法进行定位。此外单目摄像头无法确定场景尺度,需要多目摄像头来确定场景尺度。IMU提供加速度、角速度信息,可以通过积分得到真实尺度下的运动方位信息。然而,仅依赖IMU来定位,累积误差较为严重,无法闭合循环回路。因而,只有将V-SLAM与IMU紧密融合,才能互相取长补短,同时满足提升定位精度、闭合循环回路、获得真实尺度、缓解特征依赖这些需求。V-SLAM与IMU紧密融合的SLAM算法称为VI-SLAM(Visual-Inertial SLAM,基于视觉与惯量的定位与制图)。
机器人在一场景内移动,并通过摄像机、惯量测量单元获取图像帧,图像帧用于跟踪场景中的地图点以规划场景地图,每一图像帧对应一相机的运动状态。利用VI-SLAM算法跟踪到的地图点进行优化以及优化场景地图。如图1所示,对于第i帧图像帧来说,其运动状态Ci=(Ti,Mi),i=1,2,…,其中,Ti=[Ri|ti]为相机方位,Ri为旋转矩阵、ti为平移向量,Mi=(vi,bi)为惯量测量参数,vi为速度,bi为IMU读数的漂移。对于每一帧图像来说,都会受到视觉约束和IMU约束的限制,如图1,方型块为视觉约束,若不同帧图像观测到同一场景,则存在视觉约束;圆型块为IMU约束,约束了相邻帧图像之间的相机方位和IMU运动参数;梯型块为对第一帧图像的先验约束,用于确定全局坐标系,以及防止欠约束导致的病态优化问题。其中,图1中的连续线表示约束。以此利用上述约束优化图像帧观察到的场景三维结构。
但是,发明人在实施前述方案时,发现随着待优化变量运行参数Ci的数量随时间的不断增长,同时优化所有变量并不现实,采用了以下方法来进行简化:
方案一,基于滑动窗口及边缘化的方法。设置一个随时间不断向前滑动的窗口,窗口大小为包含n帧图像。对于溢出滑动窗口的图像的变量,以及与该图像关联的约束全部被边缘化,并产生对滑动窗口内部图像的运行参数变量的先验约束。如图2,在n+1时刻,第1帧图像移出滑动窗口,第n+1帧图像移进滑动窗口。此时边缘化变量C1(图2所示对变量C1画个叉进行示意)及其关联的约束(图2所示对变量C1关联的约束上方画个箭头进行示意),同时产生对与边缘化前C1间存在约束的变量C2、变量C3的一个先验约束(图2所示的菱形)。这种方法通过滑动窗口控制优化变量的个数,通过边缘化将移除滑动窗口的信息保留下来。
方案二,基于关键帧信息抽取的方法。从稠密帧序列中抽取稀疏的关键帧组成新的序列,并将抽取的所有关键帧信息全部保留下来,非关键帧信息全部丢弃。可选地,IMU约束可以保留,作用于连续关键帧之间。如果检测到循环回路,则为回路两端的关键帧间添回循环回路约束。由于关键帧会随着时间不断增加,全局优化时间也随之增加,故通常在后台线程中进行。
但是上述所采用的简化方法,仍存在以下问题:
对于方案一来说,其提供的基于滑动窗口及边缘化的方法无法引入回路约束,定位误差会不断累积。
对于方案二来说,其提供的基于关键帧信息抽取的方法只能在后台进行,优化结果无法及时反应至前台跟踪,使得前台跟踪容易累积误差,甚至跟踪丢失;以及直接丢弃非关键帧信息也会降低定位精度。
因而,为了解决这两技术问题,提出以下方案三:
方案三,基于滑动窗口及边缘化的方法和基于关键帧信息抽取的方法两者结合的方法。前台线程采用方案一提供的方法,对滑动窗口进行局部优化,对移出滑动窗口的信息进行边缘化;后台线程采用方案二提供的方法对移出滑动窗口之外的关键帧进行全局优化。由于关键帧与滑动窗口内的帧之间存在视觉约束,由此将全局优化的结果反应至局部优化结果中。以及,后台线程在检测到循环回路时为回路两端的关键帧间添回循环回路约束,减少定位误差。
但是,对于方案三来说,在对滑动窗口进行局部优化过程,边缘化产生的先验约束仍然存在误差累积现象且无法消除。另一方面,即使后台线程检测到回路,由于存在累积误差的先验约束,该先验约束也会与回路约束冲突,导致回路无法完全闭合。如此,在利用先验约束对滑动窗口的图像帧跟踪的地图点进行优化,以及利用回路约束和提取的关键帧对帧序列中观察到的场景三维结构进行优化的过程中,均会因上述现象引起场景三维结构的优化精度下降。
发明内容
本发明实施例提供一种制图与定位方法、装置、存储介质和终端设备,以解决或缓解现有技术中的以上一个或多个技术问题。
第一方面,本发明实施例提供了一种制图与定位方法,包括:
接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;
控制本地集束调整的滑动窗口沿所述图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,所述首帧用于表示在移出所述首帧前所述滑动窗口中的最早帧;所述尾帧用于表示所述图像帧序列中未曾移入所述滑动窗口的最早帧;
判断所述首帧是否为关键帧;
当所述首帧为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成相对约束和下一首帧的先验约束,并在生成所述下一首帧的先验约束的过程中调整所述边缘化处理的参考坐标系为所述首帧;其中,所述运动状态用于描述拍摄到所述首帧时摄像机的运行;所述约束因子包括所述首帧的先验约束;所述相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在所述本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
结合第一方面,在第一方面的第一种实施方式中,所述方法还包括:
当所述首帧不为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成下一首帧的先验约束。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述运动状态包括在采集到所述首帧时的摄像机的相机方位,以及当所述首帧不为关键帧时生成所述下一首帧的先验约束的过程包括:
对所述首帧的运动状态、用于约束所述首帧的相机方向的视觉约束、用于约束所述首帧与所述下一首帧两者的运动状态的惯量约束以及所述首帧的先验约束进行边缘化处理,生成所述下一首帧的先验约束。
结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述运动状态还包括在采集到所述首帧时传感器测量到的惯量测量参数,以及当所述首帧为关键帧时生成所述相对约束的过程包括:
对所述首帧的先验约束和所述首帧的惯量测量参数进行边缘化处理,生成相对约束。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述运动状态还包括重力方向;以及当所述首帧为关键帧时生成所述下一首帧的先验约束的过程包括:
对所述首帧的相机方位、重力方向和先验约束以及用于约束所述首帧的相机方向的视觉约束进行边缘化处理,生成用于约束所述首帧的惯量测量参数的间接约束;
以所述首帧为所述参考坐标系调整所述滑动窗口内的图像帧的相机方位和重力方向,并对所述重力方向设置重力约束;以及
对生成的间接约束、设置的重力约束、所述首帧的惯量测量参数以及用于约束所述首帧与所述下一首帧两者的运动状态的惯量约束进行边缘化处理,生成所述下一首帧的先验约束。
结合第一方面,在第一方面的第五种实施方式中,在生成所述下一首帧的先验约束之后,所述方法还包括:
根据生成的所述下一首帧的先验约束,调整本地优化方程;以及
根据调整后的本地优化方程,对所述滑动窗口内的图像帧观察到场景三维结构进行优化。
结合第一方面,在第一方面的第六种实施方式中,在生成所述相对约束之后,所述方法还包括:
根据所述首帧跟踪的地图点,统计从未出现在从所述滑动窗口移出的关键帧中的地图点数量;
判断统计的地图点数量是否超出预设阈值;
当统计的地图点数量超出所述预设阈值时,以所述图像帧序列的最早帧为参考坐标系调整所述相对约束,并根据调整后的相对约束,调整全局优化方程;以及
根据调整后的全局优化方程,对从所述滑动窗口移出的关键帧观察到场景三维结构进行优化。
结合第一方面,在第一方面的第七种实施方式中,在生成所述相对约束之后,所述方法还包括:
将所述首帧跟踪的地图点与从所述滑动窗口移出且为关键帧的每一图像帧跟踪的地图点分别进行图像相似性匹配;
当满足图像相似性标准时,以所述图像帧序列的最早帧为参考坐标系调整所述相对约束,并根据调整后的相对约束,调整全局优化方程;以及
根据调整后的全局优化方程,对从所述滑动窗口移出的关键帧观察到场景三维结构进行优化。
第二方面,本发明实施例还提供一种制图与定位装置,包括:
图像帧采集模块,用于接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;
滑动窗口移动模块,用于控制本地集束调整的滑动窗口沿所述图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,所述首帧用于表示在移出所述首帧前所述滑动窗口中的最早帧;所述尾帧用于表示所述图像帧序列中未曾移入所述滑动窗口的最早帧;
关键帧判断模块,用于判断所述首帧是否为关键帧;
第一约束生成模块,用于当所述首帧为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成相对约束和下一首帧的先验约束,并在生成所述下一首帧的先验约束的过程中调整所述边缘化处理的参考坐标系为所述首帧;其中,所述运动状态用于描述拍摄到所述首帧时摄像机的运动;所述约束因子包括所述首帧的先验约束;所述相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
结合第二方面,在第二方面的第一种实施方式中,所述装置还包括:
第二约束生成模块,用于当所述首帧不为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成下一首帧的先验约束。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述运动状态包括在采集到所述首帧时的摄像机的相机方位;以及所述第二约束生成模块具体用于:
对所述首帧记载的运动状态、用于约束所述首帧的相机方向的视觉约束、用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束以及用于约束所述首帧记载的运动状态的首帧先验约束进行边缘化处理,以生成所述下一首帧的先验约束。
结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述运动状态还包括在采集到所述首帧时传感器测量到的惯量测量参数,所述第一约束生成模块,包括:
相对约束生成单元,用于对所述首帧先验约束和所述首帧的惯量测量参数进行边缘化处理,生成相对约束。
结合第二方面的第二种实施方式,在第二方面的第四种实施方式中,所述运动状态还包括重力方向;以及所述第一约束生成模块,还包括:
间接约束生成单元,用于对所述首帧的相机方位、重力方向和先验约束以及用于约束所述首帧的相机方向的视觉约束进行边缘化处理,生成用于约束所述首帧的惯量测量参数的间接约束;
坐标系调整单元,用于以所述首帧为所述参考坐标系调整所述滑动窗口内的图像帧的相机方位和重力方向,并对所述重力方向设置用于约束所述重力方向的重力约束;以及
先验约束生成单元,用于对生成的间接约束、设置的重力约束、所述首帧的惯量测量参数以及用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束进行边缘化处理,生成所述下一首帧的先验约束。
所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,相对边缘化的制图与定位结构中包括处理器和存储器,所述存储器用于制图与定位装置执行上述第一方面中制图与定位方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述制图与定位装置还可以包括通信接口,用于制图与定位装置与其他设备或通信网络通信。
上述技术方案中的任一个技术方案具有如下优点或有益效果:
本发明实施例在每当采集到一图像帧时即会按时间先后顺序将述图像帧加入图像帧序列的尾端,而且滑动窗口也会沿着图像帧序列向后移动一帧以移出首帧以及移入尾帧,根据首帧关联的信息进行边缘化处理来生成当前帧先验约束,可以约束滑动窗口内的图像帧观察到场景三维结构。以及,在移出的首帧为关键帧时不仅生成相对约束并在生成当前帧先验约束的过程中调整边缘化处理的参考坐标系统为该移出的首帧。如此不仅可以利用相对约束来优化移出滑动窗口的关键帧,而且由于此边缘化处理的参考坐标系设置为从所述滑动窗口中移出最晚的且为关键帧的图像帧,生成的当前帧先验约束和相对约束都不会一直依赖于图像帧序列的第一帧,而会随着移出滑动窗口的关键帧而改变。如此,一方面可以避免边缘化处理产生的先验约束或相对约束附带的误差不断累积,进而提高场景三维结构的优化效果,另一方面由于相对约束的生成所基于的信息包括了从滑动窗口中移出的非关键帧的运动状态,使得在利用相对约束进行优化时可以避免非关键帧的信息丢失。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1是现有技术提供的视觉特征与惯量测量特征结合的制图与定位方法的约束示意图;
图2是现有技术提供的基于边缘化的制图与定位方法的约束示意图;
图3是本发明提供的制图与定位方法的一个实施例的流程示意图;
图4是本发明提供的公寓楼层地图与跟踪轨迹的一个实施例的示意图;
图5是本发明提供的制图与定位方法的简易流程示意图;
图6是本发明提供的本地边缘化处理的一个实施例的流程示意图;
图7-1至图7-6是本发明提供的相对边缘化的处理流程的示意图;
图8是本发明提供的本地集束调整的一个实施例的流程示意图;
图9是本发明提供的全局集束调整的一个实施例的流程示意图;
图10是本发明提供的全局集束调整的另一个实施例的流程示意图;
图11是本发明提供的制图与定位装置的一个实施例的结构示意图;
图12是本发明提供的终端设备的一个实施例的结构示意图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
实施例一
请参阅图3,本发明实施例提供了一种制图与定位方法,由机器人或移动机器人的处理器执行,该机器人设置有单目或多目摄像机以及惯量测量单元,本实施例包括步骤S110至步骤S140,具体如下:
S110,接收采集到的图像帧,并将图像帧加入图像帧序列的尾端。
在本发明实施例中,图像帧序列按时间先后顺序排列,每当采集到一新的图像帧时将该图像帧放置在图像帧序列的尾端。其中,每一帧图像帧都会观察到相应的场景三维结构以及对应于一摄像机的相机运动状态,整个图像帧序列观察到的场景三维结构以及对应的相机运动状态可构建成一地图以及定位到移动机器人或相机的运动轨迹,如图4所示的公寓楼层地图以及地图中的轨迹线。其中,虚线(包括实线部分)用于表示根据图像帧序列进行全局集束调整而优化得到的完整轨迹,实线用于表示根据滑动窗口内的图像帧进行本地集束调整而优化得到的轨迹,菱形块用于表示机器人或或移动机器人。集束调整(bundle adjustment,BA),可以以地图点在图像中的投影作为标准,同时提炼出描述场景结构的3D点坐标、相对运动参数和相机的光学参数。如图5所示,在本发明实施例提出的用于构建地图的制图与定位方法包括本地集束调整101和全局集束调整102,其中,本地集束调整设置有滑动窗口,该滑动窗口是虚构的并不是实体窗口,用于容纳图像帧,并对滑动窗口之外的图像帧进行边缘化处理,以图101的虚线框进行示意。本地集束调整对滑动窗口内的图像帧以及图像帧观察到场景三维结构进行优化,全局集束调整对移出滑动窗口的关键帧以及关键帧观察到场景三维结构进行优化。
S120,控制本地集束调整的滑动窗口沿图像帧序列向后移动一帧以移出首帧以及移入尾帧。其中,此处的首帧用于表示移出首帧前滑动窗口中的最早帧,尾帧用于表示图像帧序列中未曾移入滑动窗口的最早帧。优选地,每采集到一图像帧时即控制滑动窗口向后移动一帧,以使滑动窗口内包括的图像帧为最新采集到的若干个图像帧,此处若干的数值可以是10、20、30等,优选地为50。
示例性地,滑动窗口设置在图像帧序列的尾部区域,图像帧序列的最后一帧图像帧为滑动窗口的最后一帧,滑动窗口内的帧数固定,则滑动窗口随图像帧采集频率而移动,每当图像帧序列加入一个图像帧,则滑动窗口溢出一最早帧。
S130,判断移出的首帧是否为关键帧。
需要说明的是,图像帧序列中且从滑动窗口移出的图像帧会提交给后台线程,从移出的图像帧中提取关键帧,以对提取的关键帧观察到的场景三维结构进行优化,即全局集束调整。具体,可以根据图像帧序列中相邻图像帧中观察到的地图点的相关性或者每一图像帧与其他图像帧序列之间的相关性,来提取关键帧。
S140,根据移出的首帧的运动状态和该首帧的约束因子进行边缘化处理,以生成相对约束以及下一首帧的先验约束,并在生成先验约束的过程中调整边缘化处理的参考坐标系为移出的首帧。其中,运动状态用于描述拍摄到所述首帧时摄像机的运行;约束因子包括首帧的先验约束;下一首帧是移出首帧后滑动窗口中的最早帧;相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在所述本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
其中,本发明实施例所执行步骤S110至步骤S140都为前台线程执行,而后台线程仍会对滑动窗口移出后的图像帧进行筛选,从中选取出关键帧,以对关键帧中的观察到场景三维结构进行优化,即全局集束调整。
需要说明的是,本发明实施例的边缘化处理的计算过程的参考坐标系为从滑动窗口中移出最晚的且为关键帧的图像帧,因而当判定移出的首帧是关键帧时需要在生成先验约束的过程中调整参考坐标系。另一方面,由于全局集束调整的优化过程可以与本地集束调整的优化过程平行独立地执行,因而,全局集束调整的优化过程的坐标系可以不调整,仍然以全局坐标系为准,即图像帧序列中的第一帧,那么生成相对约束之后,还需要将相对约束的参考坐标系调整全局坐标系,再提交给全局集束调整。那么基于此特点,前述在生成先验约束的过程中可以不调整相对约束的参考坐标系,降低计算复杂度,提高优化效率。
每当滑动窗口移出一帧时会对该帧相关的约束因子以及该帧记载的运动状态进行边缘化处理,其中,边缘化处理是指将移出的首帧所携带的信息转化成线性的先验约束,而该转化后的先验约束可以继续作用于或约束滑动窗口内的最早帧。
需要说明的是,在首帧不为关键帧时,即不被选取为关键帧时,参考坐标系不调整,直接生成下一首帧的先验约束。其中,下一首帧的先验约束是作用于约束移出首帧后滑动窗口内的最早帧,首帧的先验约束是用于该首帧。
示例性地,如图5所示,滑动窗口101移出首帧Ct-n后,Ct-n+1为滑动窗口内的最早帧,其表示为最早帧的运动状态。采用步骤S140对虚线框103进行边缘化处理,Ct-n的运动状态以及其相关的约束因子均被边缘化,且在首帧Ct-n为关键帧时生成一相对约束,提交给全局集束调整,以及生成一下一首帧的先验约束,并在此生成下一首帧的先验约束的过程中将边缘化处理的参考坐标系调整为该移出的首帧。
另一方面,在首帧为关键帧时,参考坐标系发生变化,此时有两种实施方式,其中一者是将整体的运动状态以及约束因子进行调整,调整之后再进行边缘化处理,则生成的下一首帧的先验约束以及相对约束的参考坐标系也随之更改。另一种实施方式则是以首帧为参考坐标系调整边缘化处理的参考坐标系,以使生成的下一首帧的先验约束的坐标系随之更改;以及暂不更改生成相对约束的参考坐标系,直接生成原参考坐标系的相对约束,此实施方式可以降低计算复杂度。以上两种实施方式都实现了下一首帧的先验约束的参考坐标系的调整,而相对约束的生成也依赖于首帧先验约束,暗含着其坐标系也是随参考的关键帧的变化而变化,避免生成先验约束或相对约束的误差不断累积。另外,上述实施方式的边缘化处理计算过程的参数都可以以相对坐标表示,可以避免在后续全局集束调整或本地集束调整中调整所有的参数。
对于一个图像帧来说,其运动状态包括在采集到首帧时的摄像机的相机方位和传感器测量到的惯量测量参数,表示为Ci=(Ti,Mi),i=1,2,…,其中,Ti=[Ri|ti]为相机方位,Ri为旋转矩阵、ti为平移向量,Mi=(ui,bi)为惯量测量参数,ui为速度,bi为IMU读数的漂移。另外,对于首帧(图5所示的Ct-n)或滑动窗口的最早帧来说,约束因子除了包括下一首帧的先验约束(图5所示的梯形块)之外,还可以包括视觉约束(图5所示的方形块)和惯量约束(图5所示的圆形块),其中,视觉约束用于约束记载有同一地图点的所有图像帧的相机方位,惯量约束用于约束相邻的两个图像帧记载的运动状态,即同时约束这两个图帧之间的相机方位和惯量测量参数。因而在移出首帧且首帧不为关键帧时,进行的边缘化处理过程为:
对首帧记载的运动状态(相机方位和惯量测量参数)、用于约束首帧的相机方向的视觉约束、用于约束首帧与滑动窗口内的最早帧两者之间的运动状态的惯量约束以及用于约束首帧记载的运动状态的首帧先验约束进行边缘化处理,以生成下一首帧的先验约束。其中,由于首帧不为关键帧,坐标系不调整,则此边缘化处理的过程不对重力方向进行边缘化处理。
另一方面,在移出首帧且首帧为关键帧时,由于坐标系调整了,全局集束调整所处理的对象纳入了新的图像帧,即移出的首帧,那么在生成作用于本地集束调整的下一首帧的先验约束的同时,还要生成作用于全局集束调整的相对约束。此时进行的边缘化处理过程可以分为两条路径,其一是生成相对约束作用于全局集束调整;其二是生成下一首帧的先验约束作用于本地集束调整,并完成边缘化处理的参考坐标系的调整。
对于其一的全局边缘化路径为:对首帧先验约束和首帧的惯量测量参数进行边缘化处理,生成相对约束。由于相对约束的生成基于首帧的首帧先验约束,而该首帧先验约束中的生成过程包含了从滑动窗口中移出的非关键帧的视觉约束信息,即相对约束包含了非关键帧信息。另一方面,相对约束是用于约束关键帧的运动状态,那么在后续的全局集束调整过程中因选取关键帧而丢弃的非关键帧信息可以在此处的相对约束中进行再次获取,避免了非关键帧信息的丢失。
对于其二的本地边缘化路径可以如图6所示,本地边缘化路径的边缘化过程可以包括如下步骤S131至步骤S133:
S131,对首帧的相机方位、重力方向和先验约束以及用于约束首帧的相机方向的视觉约束进行边缘化处理,生成用于约束首帧的惯量测量参数的间接约束。需要说明的是,由于当前的参考坐标系改变了,那么相对于原坐标系的相机方位、重力方向、先验约束以及视觉约束均需要进行边缘化处理,而惯量测量参数是相对于其自身坐标系,因而生成的间接约束与惯量测量参数的坐标系相同。
S132,以首帧为参考坐标系调整滑动窗口内的图像帧的相机方位和重力方向,并对重力方向设置用于约束重力方向的重力约束。需要说明的是,本步骤基于首帧的参考坐标系提供一重力方向,并提供一微弱的预设的约束作为重力约束。此重力约束的参考坐标系为首帧,以及此重力方向作用于约束首帧与滑动窗口内的最早帧两者之间的运动状态的惯量约束。
S133,对生成的间接约束、设置的重力约束、首帧的惯量测量参数以及用于约束首帧与下一首帧两者之间的运动状态的惯量约束进行边缘化处理,生成下一首帧的先验约束。此时生成的下一首帧的先验约束的参考坐标系为首帧。
以下将以Ci=(Ti,Mi)表示图像帧i的运动状态、hvis表示视觉约束、himu表示惯量约束、hprior表示先验约束为例,结合图7-1至图7-6描述本发明实施例提出的相对边缘化的处理流程:
(a)对于图像帧序列给定的第一帧t0=0,以第一帧为参考坐标系,重力方向变得可观察,此时系统给定其一微弱的先验约束:用于约束第一帧的运动状态。当第一帧移出滑动窗口(图7-1至图7-5的虚线框)时,假设第一帧不是关键帧,则对连续至先验约束的惯量测量参数M′0和惯性约束进行边缘化,以产生先验约束该生成的先验约束用于约束下一帧的运行状态。需要说明的是,对于第一帧的运动状态不包括相机方位,此时无视觉约束。具体如图7-1所示,其中,阴影梯形块表示先验约束,阴影圆形块表示惯性约束,箭头两端表示边缘化前和边缘化后。对于本发明实施例设置的参考坐标系,相机方位的相对表示为:在附图7-1至图7-6以相机方位的左上标方便示意,而相对应于说明书,则以相机方位的右上标方便示意,例如:附图中的0T1与说明书中的是相同的。重力方向的相对表示在附图与说明书中均以左下标示意,例如:g0。对于某一帧的运动状态的相对表示,可以简要地以'在右上标示意,例如:第一帧的运动状态C′1。
(b)对于图像帧序列给定的下一帧t0=1,与(a)区别在于,本帧以及后续的帧均存在视觉约束,本帧的视觉约束为当C′1移出滑动窗口时,C′1的参考坐标系仍为第一帧,本帧的相机方位表示为而惯量测量参数由相机的运动速度和读取运动速度的读数的漂移构成,因而惯量测量参数是相对其自身的参考,本帧的惯量测量参数表示为M′1。对于本帧,对M′1、与相关视觉约束、先验约束、惯性约束均进行边缘化,以产生先验约束:具体如图7-2。因而对于移出滑动窗口的图像帧不为关键帧时,其边缘化生成下一先验约束的流程均相类似步骤(b)。
(c)假设当前边缘化处理的参考坐标系为关键帧k0。对于帧t0来说,其关联的视觉约束会涉及除关键帧k0之外的更多图像帧,因而,帧t0的视觉约束可以表示为 是指帧t0的跟踪的地图点,即sj为与帧t0的跟踪的地图点相同的图像帧。因而,对这些的视觉约束进行边缘化,针对所有相关的关键帧引入了相关性,如图7-3所示的阴影区域的在滑动窗口移出的图像帧t0不为关键帧,则其边缘化过程均类似步骤(b)。
(d)当移出的图像帧t0为关键帧时,具体如图图7-4所示。此时可以分别对全局集束调整以及本地集束调整生成相应的约束,即生成作用于滑动窗口内的图像帧的先验约束(执行步骤(f))以及作用于移出滑动窗口的关键帧的相对约束(执行步骤(e))。
(e)对于全局集束调整来说,会对当前的先验约束,即用于约束图像帧t0的先验约束以及惯量测量参数进行边缘化,产生一相对约束其中,是随演变的相关图像帧的集合,而生成相对约束的过程,暂不涉及参考坐标变更的计算,相对约束提给全局集束调整时也有触发条件,因而在满足触发条件并基于相对约束进行全局集束调整的情况下,将相对约束的参考坐标系转化为全局帧。此时重力方向变为不可观察,转化后的相对约束如下:其中,
(f)对于本地集束调整来说,对除帧t0的惯量测量参数之外的运动状态以及约束因子均进行边缘化处理,以生成一间接约束,用于约束惯量测量参数此时由于帧t0是关键帧,边缘化处理过程的参考坐标系更改为帧t0,则随同参考坐标系的改变,新的重力方向及用于约束该重力方向的重力约束也一同出现,滑动窗口内的图像帧的相机方位参考图像帧t0进行调整,例如:最后,将间接约束、惯量测量参数以及惯性约束进行边缘化处理,生成当前帧约束,作用于和具体如图7-6所示,在(e)和(f)完成之后,系统返回执行与(b)相似的步骤。
实施例二
请参阅图8,基于前述实施例,本实施例还提供一种制图与定位方法,在生成下一首帧的先验约束之后,还会执行以下本地集束调整的步骤:
S210,根据生成的下一首帧的先验约束,调整本地优化方程。
结合图5,以图像帧i的运动状态Ci=(Ti,Mi)为例,帧t0=t-n+1是滑动窗口内的第一帧,n为滑动窗口容纳的图像帧数量,即滑动窗口的大小。Vi是图像帧i跟踪的一组地图点。则本地优化方程为:
其中,为视觉约束,为先验约束,为惯量约束。
S220,根据调整后的本地优化方程,对滑动窗口内的图像帧观察到场景三维结构进行优化。
从而完成本地集束调整,优化滑动窗口内图像帧观察到场景三维结构,并扩展地图中的地图点。
实施例三
请参阅图9,基于前述实施例,本实施例还提供一种制图与定位方法,在生成相对约束之后,还会执行以下全局集束调整的步骤:
S310,根据首帧跟踪的地图点,统计从未出现在从滑动窗口中移出且为关键帧的图像帧的地图点数量。需要说明的是,此处的首帧为关键帧。
S320,判断统计的地图点数量是否超出预设阈值。优选地,预设阈值为20个,图像帧中提炼出来的特征点即为地图点,当从滑动窗口移的首帧为关键帧时,且该首帧携带超过20个或其他预设值未从其他图像帧中看到的特征,此时触发全局集束调整,即执行步骤S330和步骤S340。
S330,当统计的地图点数据超出预设阈值时,以图像帧序列的最早帧为参考坐标系调整相对约束,并根据调整后的相对约束,调整全局优化方程。由于全局集束调整的参考坐标系为全局帧,即图像帧序列的最早帧,因而需要将相对约束转换为以图像帧序列的最早帧为参考坐标系,方便进行全局集束调整。
S340,根据调整后的全局优化方程,对从滑动窗口中移出且为关键帧的图像帧观察到场景三维结构进行优化。从而完成全局集束调整,优化本图像帧序列观察到场景三维结构。
在本实施例中,结合图5,图5中的Ck1至Ckm均为关键帧的运行状态,全局优化方程为:
前述的边缘化处理为相对边缘化,此过程会在本地集束调整中的最后一个关键帧与从本地集束调整中移出的最新的一帧(该帧为关键帧)之间产生相对约束,以及方程中的γi是第i个相对约束中涉及的关键帧集合,为相对约束。此相对约束可以帮助摄像机位置固定在本地集束调整中,防止由于误差累积引起的漂移。
实施例四
请参阅图10,基于前述实施例,本实施例还提供一种制图与定位方法,在生成相对约束之后,还会执行以下全局集束调整的步骤:
S410,将首帧跟踪的地图点与从滑动窗口移出且为关键帧的每一图像帧跟踪的地图点分别进行图像相似性匹配。需要说明的是,此处的首帧为关键帧。
S420,当满足图像相似性标准时,以图像帧序列的最早帧为参考坐标系调整相对约束,并根据调整后的相对约束,调整全局优化方程。当满足图像相似性标准时,说明此时跟踪路径出现的闭环,触发全局集束调整。由于全局集束调整的参考坐标系为全局帧,即图像帧序列的最早帧,因而需要将相对约束转换为以图像帧序列的最早帧为参考坐标系,方便进行全局集束调整。
S430,根据调整后的全局优化方程,对从滑动窗口中移出且为关键帧的图像帧观察到场景三维结构进行优化。
从而完成全局集束调整,优化本图像帧序列观察到场景三维结构。本实施例的全局集束调整效果与实施例三一致,在此不再赘述。
实施例五
请参阅图11,本发明实施例还提供一种制图与定位装置,包括:
图像帧采集模块100,用于接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;
滑动窗口移动模块200,用于控制本地集束调整的滑动窗口沿所述图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,所述首帧用于表示在移出所述首帧前所述滑动窗口中的最早帧;所述尾帧用于表示所述图像帧序列中未曾移入所述滑动窗口的最早帧;
关键帧判断模块300,用于判断所述首帧是否为关键帧;
第一约束生成模块400,用于当所述首帧为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成相对约束和下一首帧的先验约束,并在生成所述下一首帧的先验约束的过程中调整所述边缘化处理的参考坐标系为所述首帧;其中,所述运动状态用于描述拍摄到所述首帧时摄像机的运行;所述约束因子包括所述首帧的先验约束;所述相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
进一步地,所述装置还包括:
第二约束生成模块,用于当所述首帧不为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成下一首帧的先验约束。
进一步地,所所述运动状态包括在采集到所述首帧时的摄像机的相机方位;以及所述第二约束生成模块具体用于:
对所述首帧记载的运动状态、用于约束所述首帧的相机方向的视觉约束、用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束以及用于约束所述首帧记载的运动状态的首帧先验约束进行边缘化处理,以生成所述下一首帧的先验约束。
进一步地,所述运动状态还包括在采集到所述首帧时传感器测量到的惯量测量参数,所述第一约束生成模块,包括:
相对约束生成单元,用于对所述首帧先验约束和所述首帧的惯量测量参数进行边缘化处理,生成相对约束。
进一步地,所述运动状态还包括重力方向;以及所述第一约束生成模块,还包括:
间接约束生成单元,用于对所述首帧的相机方位、重力方向和先验约束以及用于约束所述首帧的相机方向的视觉约束进行边缘化处理,生成用于约束所述首帧的惯量测量参数的间接约束;
坐标系调整单元,用于以所述首帧为所述参考坐标系调整所述滑动窗口内的图像帧的相机方位和重力方向,并对所述重力方向设置用于约束所述重力方向的重力约束;以及
先验约束生成单元,用于对生成的间接约束、设置的重力约束、所述首帧的惯量测量参数以及用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束进行边缘化处理,生成所述下一首帧的先验约束。
所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,相对边缘化的制图与定位结构中包括处理器和存储器,所述存储器用于制图与定位装置执行上述第一方面中制图与定位方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述制图与定位装置还可以包括通信接口,用于制图与定位装置与其他设备或通信网络通信。
实施例六
本发明实施例还提供一种终端设备,如图12所示,该设备包括:存储器21和处理器22,存储器21内存储有可在处理器22上的计算机程序。处理器22执行计算机程序时实现上述实施例中的客户端信息分析的方法。存储器21和处理器22的数量可以为一个或多个。
该设备还包括:
通信接口23,用于处理器22与外部设备之间的通信。
存储器21可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器21、处理器22和通信接口23独立实现,则存储器21、处理器22和通信接口23可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器21、处理器22及通信接口23集成在一块芯片上,则存储器21、处理器22及通信接口23可以通过内部接口完成相互间的通信。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
本发明实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种制图与定位方法,其特征在于,包括:
接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;
控制本地集束调整的滑动窗口沿所述图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,所述首帧用于表示在移出所述首帧前所述滑动窗口中的最早帧;所述尾帧用于表示所述图像帧序列中未曾移入所述滑动窗口的最早帧;
判断所述首帧是否为关键帧;
当所述首帧为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成相对约束和下一首帧的先验约束,并在生成所述下一首帧的先验约束的过程中调整所述边缘化处理的参考坐标系为所述首帧;其中,所述运动状态用于描述拍摄到所述首帧时摄像机的运行;所述约束因子包括所述首帧的先验约束;所述相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在所述本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
2.如权利要求1所述的制图与定位方法,其特征在于,所述方法还包括:
当所述首帧不为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成下一首帧的先验约束。
3.如权利要求2所述的制图与定位方法,其特征在于,所述运动状态包括在采集到所述首帧时的摄像机的相机方位,以及当所述首帧不为关键帧时生成所述下一首帧的先验约束的过程包括:
对所述首帧的运动状态、用于约束所述首帧的相机方向的视觉约束、用于约束所述首帧与所述下一首帧两者的运动状态的惯量约束以及所述首帧的先验约束进行边缘化处理,生成所述下一首帧的先验约束。
4.如权利要求3所述的制图与定位方法,其特征在于,所述运动状态还包括在采集到所述首帧时传感器测量到的惯量测量参数,以及当所述首帧为关键帧时生成所述相对约束的过程包括:
对所述首帧的先验约束和所述首帧的惯量测量参数进行边缘化处理,生成相对约束。
5.如权利要求4所述的制图与定位方法,其特征在于,所述运动状态还包括重力方向;以及当所述首帧为关键帧时生成所述下一首帧的先验约束的过程包括:
对所述首帧的相机方位、重力方向和先验约束以及用于约束所述首帧的相机方向的视觉约束进行边缘化处理,生成用于约束所述首帧的惯量测量参数的间接约束;
以所述首帧为所述参考坐标系调整所述滑动窗口内的图像帧的相机方位和重力方向,并对所述重力方向设置重力约束;以及
对生成的间接约束、设置的重力约束、所述首帧的惯量测量参数以及用于约束所述首帧与所述下一首帧两者的运动状态的惯量约束进行边缘化处理,生成所述下一首帧的先验约束。
6.如权利要求1所述的制图与定位方法,其特征在于,在生成所述下一首帧的先验约束之后,所述方法还包括:
根据生成的所述下一首帧的先验约束,调整本地优化方程;以及
根据调整后的本地优化方程,对所述滑动窗口内的图像帧观察到场景三维结构进行优化。
7.如权利要求1所述的制图与定位方法,其特征在于,在生成所述相对约束之后,所述方法还包括:
根据所述首帧跟踪的地图点,统计从未出现在从所述滑动窗口移出的关键帧中的地图点数量;
判断统计的地图点数量是否超出预设阈值;
当统计的地图点数量超出所述预设阈值时,以所述图像帧序列的最早帧为参考坐标系调整所述相对约束,并根据调整后的相对约束,调整全局优化方程;以及
根据调整后的全局优化方程,对从所述滑动窗口移出的关键帧观察到场景三维结构进行优化。
8.如权利要求1所述的制图与定位方法,其特征在于,在生成所述相对约束之后,所述方法还包括:
将所述首帧跟踪的地图点与从所述滑动窗口移出且为关键帧的每一图像帧跟踪的地图点分别进行图像相似性匹配;
当满足图像相似性标准时,以所述图像帧序列的最早帧为参考坐标系调整所述相对约束,并根据调整后的相对约束,调整全局优化方程;以及
根据调整后的全局优化方程,对从所述滑动窗口移出的关键帧观察到场景三维结构进行优化。
9.一种制图与定位装置,其特征在于,包括:
图像帧采集模块,用于接收采集到的图像帧,并将所述图像帧加入图像帧序列的尾端;
滑动窗口移动模块,用于控制本地集束调整的滑动窗口沿所述图像帧序列向后移动一帧以移出首帧以及移入尾帧;其中,所述首帧用于表示在移出所述首帧前所述滑动窗口中的最早帧;所述尾帧用于表示所述图像帧序列中未曾移入所述滑动窗口的最早帧;
关键帧判断模块,用于判断所述首帧是否为关键帧;
第一约束生成模块,用于当所述首帧为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成相对约束和下一首帧的先验约束,并在生成所述下一首帧的先验约束的过程中调整所述边缘化处理的参考坐标系为所述首帧;其中,所述运动状态用于描述拍摄到所述首帧时摄像机的运动;所述约束因子包括所述首帧的先验约束;所述相对约束用于在全局集束调整中优化从所述滑动窗口中移出的所有关键帧观察到场景三维结构;以及所述先验约束用于在本地集束调整中优化所述滑动窗口中的图像帧观察到场景三维结构。
10.如权利要求9所述的制图与定位装置,其特征在于,所述装置还包括:
第二约束生成模块,用于当所述首帧不为关键帧时,根据所述首帧的运动状态和约束因子进行边缘化处理,生成下一首帧的先验约束。
11.如权利要求10所述的制图与定位装置,其特征在于,所述运动状态包括在采集到所述首帧时的摄像机的相机方位;以及所述第二约束生成模块具体用于:
对所述首帧记载的运动状态、用于约束所述首帧的相机方向的视觉约束、用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束以及用于约束所述首帧记载的运动状态的首帧先验约束进行边缘化处理,以生成所述下一首帧的先验约束。
12.如权利要求11所述的制图与定位装置,其特征在于,所述运动状态还包括在采集到所述首帧时传感器测量到的惯量测量参数,所述第一约束生成模块,包括:
相对约束生成单元,用于对所述首帧先验约束和所述首帧的惯量测量参数进行边缘化处理,生成相对约束。
13.如权利要求12所述的制图与定位装置,其特征在于,所述运动状态还包括重力方向;以及所述第一约束生成模块,还包括:
间接约束生成单元,用于对所述首帧的相机方位、重力方向和先验约束以及用于约束所述首帧的相机方向的视觉约束进行边缘化处理,生成用于约束所述首帧的惯量测量参数的间接约束;
坐标系调整单元,用于以所述首帧为所述参考坐标系调整所述滑动窗口内的图像帧的相机方位和重力方向,并对所述重力方向设置用于约束所述重力方向的重力约束;以及
先验约束生成单元,用于对生成的间接约束、设置的重力约束、所述首帧的惯量测量参数以及用于约束所述首帧与所述下一首帧两者之间的运动状态的惯量约束进行边缘化处理,生成所述下一首帧的先验约束。
14.一种制图与定位的终端设备,其特征在于,所述终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-8中任一所述的制图与定位方法。
15.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的制图与定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810391851.1A CN108592919B (zh) | 2018-04-27 | 2018-04-27 | 制图与定位方法、装置、存储介质和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810391851.1A CN108592919B (zh) | 2018-04-27 | 2018-04-27 | 制图与定位方法、装置、存储介质和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108592919A CN108592919A (zh) | 2018-09-28 |
CN108592919B true CN108592919B (zh) | 2019-09-17 |
Family
ID=63610792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810391851.1A Active CN108592919B (zh) | 2018-04-27 | 2018-04-27 | 制图与定位方法、装置、存储介质和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108592919B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109326006B (zh) * | 2018-09-30 | 2023-03-28 | 阿波罗智联(北京)科技有限公司 | 地图融合方法和装置 |
CN109917644B (zh) * | 2018-12-26 | 2022-06-14 | 达闼科技(北京)有限公司 | 一种提高视觉惯导系统鲁棒性的方法、装置和机器人设备 |
CN113094545B (zh) * | 2020-01-09 | 2023-05-16 | 舜宇光学(浙江)研究院有限公司 | 冗余关键帧剔除方法和slam方法及其系统和电子设备 |
CN111121774B (zh) * | 2020-01-14 | 2021-04-06 | 上海曼恒数字技术股份有限公司 | 一种可实时检测自身姿态的红外定位相机 |
CN115507839A (zh) * | 2022-09-09 | 2022-12-23 | 广东汇天航空航天科技有限公司 | 一种建图方法、装置、设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9275267B2 (en) * | 2012-10-23 | 2016-03-01 | Raytheon Company | System and method for automatic registration of 3D data with electro-optical imagery via photogrammetric bundle adjustment |
EP3008694B1 (en) * | 2013-06-11 | 2021-01-27 | Qualcomm Incorporated | Interactive and automatic 3-d object scanning method for the purpose of database creation |
CN103646391B (zh) * | 2013-09-30 | 2016-09-28 | 浙江大学 | 一种针对动态变化场景的实时摄像机跟踪方法 |
US10185775B2 (en) * | 2014-12-19 | 2019-01-22 | Qualcomm Technologies, Inc. | Scalable 3D mapping system |
CN106157367B (zh) * | 2015-03-23 | 2019-03-08 | 联想(北京)有限公司 | 三维场景重建方法和设备 |
CN104881869A (zh) * | 2015-05-15 | 2015-09-02 | 浙江大学 | 一种移动平台上的实时全景跟踪与拼接方法 |
US9460513B1 (en) * | 2015-06-17 | 2016-10-04 | Mitsubishi Electric Research Laboratories, Inc. | Method for reconstructing a 3D scene as a 3D model using images acquired by 3D sensors and omnidirectional cameras |
CN105096386B (zh) * | 2015-07-21 | 2017-11-17 | 中国民航大学 | 大范围复杂城市环境几何地图自动生成方法 |
CN106097436B (zh) * | 2016-06-12 | 2019-06-25 | 广西大学 | 一种大场景对象的三维重建方法 |
CN106204595B (zh) * | 2016-07-13 | 2019-05-10 | 四川大学 | 一种基于双目摄像机的机场场面三维全景监视方法 |
CN106408653B (zh) * | 2016-09-06 | 2021-02-02 | 合肥工业大学 | 一种面向大规模三维重建的实时鲁棒的集束调整方法 |
CN106446815B (zh) * | 2016-09-14 | 2019-08-09 | 浙江大学 | 一种同时定位与地图构建方法 |
-
2018
- 2018-04-27 CN CN201810391851.1A patent/CN108592919B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108592919A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108592919B (zh) | 制图与定位方法、装置、存储介质和终端设备 | |
US11668571B2 (en) | Simultaneous localization and mapping (SLAM) using dual event cameras | |
CN109727288B (zh) | 用于单目同时定位与地图构建的系统和方法 | |
US8199977B2 (en) | System and method for extraction of features from a 3-D point cloud | |
KR101725060B1 (ko) | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US10762643B2 (en) | Method for evaluating image data of a vehicle camera | |
US10307910B2 (en) | Apparatus of recognizing position of mobile robot using search based correlative matching and method thereof | |
KR101776621B1 (ko) | 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US8229249B2 (en) | Spatial motion calculation apparatus and method for the same | |
JP5012615B2 (ja) | 情報処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
WO2020104423A1 (en) | Method and apparatus for data fusion of lidar data and image data | |
CN108519102B (zh) | 一种基于二次投影的双目视觉里程计算方法 | |
CN114623817B (zh) | 基于关键帧滑窗滤波的含自标定的视觉惯性里程计方法 | |
CN112115980A (zh) | 基于光流跟踪和点线特征匹配的双目视觉里程计设计方法 | |
CN111932616B (zh) | 一种利用并行计算加速的双目视觉惯性里程计方法 | |
CN111340922A (zh) | 定位与地图构建的方法和电子设备 | |
WO2021195939A1 (zh) | 一种双目拍摄装置的外参的标定方法、可移动平台及系统 | |
CN111983636A (zh) | 位姿融合方法、系统、终端、介质以及移动机器人 | |
CN114494462A (zh) | 一种基于Yolov5和改进跟踪算法的双目相机测距方法 | |
US11866056B2 (en) | Ballistic estimation of vehicle data | |
Xian et al. | Fusing stereo camera and low-cost inertial measurement unit for autonomous navigation in a tightly-coupled approach | |
CN115930989A (zh) | 视觉里程计、车辆及定位方法 | |
CN114690226A (zh) | 基于载波相位差分技术辅助的单目视觉测距方法及系统 | |
CN113701766B (zh) | 一种机器人地图的构建方法、机器人的定位方法及装置 | |
CN113034538A (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 |