CN111415388B - 一种视觉定位方法及终端 - Google Patents
一种视觉定位方法及终端 Download PDFInfo
- Publication number
- CN111415388B CN111415388B CN202010185845.8A CN202010185845A CN111415388B CN 111415388 B CN111415388 B CN 111415388B CN 202010185845 A CN202010185845 A CN 202010185845A CN 111415388 B CN111415388 B CN 111415388B
- Authority
- CN
- China
- Prior art keywords
- data
- image
- pose
- target
- dimensional
- 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
- 230000000007 visual effect Effects 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000001514 detection method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 28
- 230000009466 transformation Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 9
- 238000005457 optimization Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007499 fusion processing Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 30
- 230000006854 communication Effects 0.000 description 30
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 15
- 238000010295 mobile communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000002366 time-of-flight method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000036541 health Effects 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
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开一种视觉定位方法及终端,能够提升视觉定位的效率。该方法应用于包括位姿检测装置、第一相机和第二相机的终端,具体为:获取位姿检测装置采集到的终端的原始位姿数据、第一相机对目标场景采集到的二维图像和第二相机对目标场景采集到的深度图像数据;对二维图像、原始位姿数据和深度图像数据进行帧同步处理,获得二维图像对应的目标位姿数据和目标深度数据,并根据目标深度数据和从二维图像提取的二维特征数据生成二维图像对应的目标点云数据;以目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将待视觉定位的拍摄图像和二维图像进行图像匹配,若相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
Description
技术领域
本申请涉及计算机视觉技术领域,尤其涉及一种视觉定位方法及终端。
背景技术
视觉定位技术是一种通过搜集和分析图像信息来进行方位判断的技术,视觉定位技术越来越多地被应用于工业测绘、无人驾驶等领域。在实际应用中,视觉定位技术需要预先采集必要的空间视觉信息,这些空间视觉信息通常会包括摄像机视角的位姿轨迹、摄像机采集的二维图像及其对应的视觉词典、特征点信息和三维点云信息。
目前,采集空间视觉信息时大多采用运动重构算法(structure from motion,SFM),该算法可以从摄像机采集到的二维图像中提取特征点信息以及计算出其视觉词典,并通过对多帧二维图像间进行特征点匹配,将这些特征点反投影到关联图像上求取全局投影误差,以及对全局投影误差进行最优化迭代,从而恢复各帧二维图像对应的三维点云信息和位姿轨迹。然而,在实践中发现,这种方式通常会花费较长的图像帧处理时间,从而导致空间视觉信息的采集效率较低。
发明内容
本申请实施例提供了一种视觉定位方法及终端,能够提高对视觉定位所需的空间视觉信息的采集效率,从而提升视觉定位的效率。
本申请实施例第一方面提供一种视觉定位方法,应用于终端,所述终端包括位姿检测装置、第一相机和第二相机,所述方法包括:
获取所述位姿检测装置采集的所述终端的原始位姿数据、获取所述第一相机对目标场景采集到的二维图像,以及获取所述第二相机对所述目标场景采集到的深度图像数据;
对所述二维图像、所述原始位姿数据和所述深度图像数据进行帧同步处理,获得所述二维图像对应的目标位姿数据和目标深度数据;
对所述二维图像进行特征提取,获得所述二维图像对应的二维特征数据;
根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据;
在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述二维图像进行图像匹配;
若所述拍摄图像和所述二维图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果。
本申请第二方面提供一种终端,所述终端包括位姿检测装置、第一相机、第二相机和视觉定位系统。其中,所述视觉定位系统包括:
获取模块,用于获取所述位姿检测装置采集到的所述终端的原始位姿数据、获取所述第一相机对目标场景采集到的二维图像,以及获取所述第二相机对所述目标场景采集到的深度图像数据;
同步模块,用于对所述二维图像、所述原始位姿数据和所述深度图像数据进行帧同步处理,获得所述二维图像对应的目标位姿数据和目标深度数据;
提取模块,用于对所述二维图像进行特征提取,获得所述二维图像对应的二维特征数据;
生成模块,用于根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据;
定位模块,用于在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述二维图像进行图像匹配;若所述拍摄图像和所述二维图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果。
本申请第三方面提供一种终端,所述终端包括位姿检测装置、第一相机、第二相机和视觉定位系统。其中,所述视觉定位系统包括:
一个或多个存储器;
一个或多个处理器,用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,还用于执行如本申请第一方面所述的方法。
本申请第四方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如本申请第一方面所述的方法。
本申请第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,终端包括位姿检测装置、第一相机和第二相机,通过获取位姿检测装置采集到的终端的原始位姿数据,以及获取第一相机和第二相机分别对目标场景采集到的二维图像和深度图像数据,从而通过帧同步方式快速匹配出与二维图像同步的目标位姿数据和目标深度数据,并对二维图像进行特征提取,获得二维图像对应的二维特征数据,可以结合上述目标深度数据和二维特征数据生成二维图像对应的目标点云数据,进而在对任一拍摄图像进行视觉定位时,以二维图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和二维图像进行图像匹配,若匹配,则根据目标场景确定对拍摄图像的视觉定位结果。可见,本申请能够代替现有技术中使用单一相机采集并处理二维图像的方式,使用多种不同的硬件装置分工采集到视觉定位所需的二维图像、原始位姿数据和深度图像数据,并直接基于三者的帧同步结果求得二维图像对应的目标位姿数据以及目标点云数据,无需全程对大量二维图像执行复杂的图像运算,且多种硬件装置可以同时进行数据采集,能够节省大量图像采集及处理所花费的时间,提高了空间视觉信息的采集效率,从而提升视觉定位的效率。此外,还能够减少复杂图像运算中存在的累积误差,改善了采集空间视觉信息的准确性和鲁棒性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
图1是本申请实施例中所应用的一种终端示意图;
图2是本申请实施例中一种视觉定位方法的实施例示意图;
图3是本申请实施例中另一种视觉定位方法的实施例示意图;
图4是本申请实施例中视觉定位系统的一种结构示意图;
图5是本申请实施例中视觉定位系统的另一种结构示意图;
图6是本申请实施例中终端的一种硬件架构图。
具体实施方式
本申请实施例提供了一种视觉定位方法及终端,能够提高对视觉定位所需的空间视觉信息的采集效率,从而提升视觉定位的效率。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
为了使本技术领域的人员更好地理解本申请方案,下面先对本申请实施例中涉及到的有关专业术语进行说明。
视觉词典是表征二维图像的视觉特征模型,主要用于图像检索;
二维特征点数据可以包括从二维图像中采集到的特征点和特征点描述子,特征点可以是二维图像中图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点),特征点描述子可以是特征点对应的编码结果,用于表示特征点的局部表观特性以及进行特征点匹配;
点云数据用于标识二维图像中特征点对应的三维空间特征。
视觉定位技术是一种通过搜集和分析图像信息来进行方位判断的技术,越来越多地被应用于工业测绘、无人驾驶等领域。视觉定位技术需要预先采集必要的空间视觉信息,这些空间视觉信息通常会包括摄像机视角的位姿轨迹、摄像机采集的二维图像及其对应的视觉词典、特征点信息和三维点云信息。
目前,采集空间视觉信息时大多采用运动重构算法,该算法可以从摄像机采集到的二维图像中提取特征点信息以及计算出其视觉词典,并通过对多帧二维图像间进行特征点匹配,将这些特征点反投影到关联图像上求取全局投影误差,以及对全局投影误差进行最优化迭代,从而恢复各帧二维图像对应的三维点云信息和位姿轨迹。
然而,在实践中发现,这种方式通常会花费较长的图像帧处理时间,从而导致空间视觉信息的采集效率较低。并且,当摄像机采集图像时运动旋转过快,或者运动干扰过大时,容易出现算法重建失败的情况,需要回到现场重新采集图像帧,这样无法及时得到数据采集的反馈信息,往往导致建图过程反复繁琐,难以大规模工程应用。
如图1所示,图1是本申请实施例中所应用的一种终端示意图。在图1中,终端10可以包括视觉定位系统11、位姿检测装置12、第一相机13、第二相机14和数据库15。其中,终端10可以包括但不限于智能手机、可穿戴设备、车载终端、便携式终端、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(personal media player,PMP)装置、笔记本电脑、笔记本(note pad)、无线宽带(wireless broadband,WiBro)终端、平板电脑(personal computer,PC)和智能PC等。位姿检测装置12可以是用于位姿采集与计算的设备,比如惯性传感器、陀螺仪、电子罗盘等。第一相机13可以是用于采集二维图像的相机,比如普通的RGB单目相机。第二相机14可以是用于采集深度图像数据的相机,比如结构光深度相机、RGB-D深度相机和基于光飞行时间法(time of flight depth camera,TOF)的深度相机(即TOF深度相机)等。此外,上述位姿检测装置12、第一相机13和第二相机14均可以是一个或者多个,对位姿检测装置12、第一相机13和第二相机14各自的类型及数量均不作具体限定。数据库15用于存储并管理终端10获得的空间视觉信息,且数据库15可以是终端10的本地数据库。在其他可选的实现方式中,数据库15还可以是与终端10预先关联的云端数据库。
此外,由图1可知,位姿检测装置12、第一相机13、第二相机14和数据库15均可以和视觉定位系统11建立数据通讯连接。在实际应用中,由于位姿检测装置12、第一相机13和第二相机14设于同一终端上,可以预先标定位姿检测装置12、第一相机13和第二相机14之间的相互位置关系。可选的,终端10可以设于可手持的定制支架或可移动工具(比如无人机、汽车)上,对此不作具体限定。示例性的,终端10可以为用于汽车的车辆终端,由汽车在某一目标场景中(比如商场内部、城市道路)按照采集路线进行移动,也可以由采集人员手持设有终端10的定制支架在目标场景中移动,以此对该目标场景进行空间视觉信息采集。此外,通过调整位姿检测装置12、第一相机13、第二相机14的数量及在终端10上配置的不同位置和朝向,保证多视角场和方位覆盖,还能够提高空间视觉信息采集的准确性和鲁棒性。
需要说明的是,图1所示的终端适用于下述实施例中所述的视觉定位方法。
如图2所示,图2是本申请实施例中一种视觉定位方法的实施例示意图。
201、获取位姿检测装置采集到的终端的原始位姿数据、获取第一相机对目标场景采集到的二维图像,以及获取第二相机对目标场景采集到的深度图像数据。
在本申请实施例中,可选的,第二相机采集深度图像数据可以基于光飞行时间法,通过发出经调制的近红外光,遇物体后反射,从而计算光线发射和反射时间差或相位差来换算图像中被拍摄物体的深度数据。可见,这样无需通过第一相机拍摄的二维图像来计算其对应的深度数据,而是由第二相机单独采集,能够减少图像帧处理的复杂度,且采集到的深度数据更加准确可靠。
在本申请实施例中,作为一种可选的实施方式,原始位姿数据可以包括定位数据和第二位姿数据,位姿检测装置可以包括姿态检测装置和定位装置。其中,姿态检测装置是用于采集姿态数据的装置,可以包括但不限于广角相机(比如视角接近或等于180°的鱼眼相机)和惯性传感器,广角相机用于对目标场景拍摄畸形图像,并对畸形图像进行特征提取与匹配,以获得姿态数据,即广角相机相对于世界坐标系的旋转变量和平移变量。惯性传感器用于测量终端在世界坐标系下的角速度和加速度,以获得姿态数据。定位装置用于对终端进行定位。故步骤201具体可以包括:
获取姿态检测装置采集到的终端的第一姿态数据,以及获取定位装置采集到的终端的定位数据;
根据定位数据,生成位姿轨迹数据;
利用位姿轨迹数据对第一姿态数据进行位姿优化处理,获得第二姿态数据。
其中,定位装置可以包括GPS模块、WIFI模块和蓝牙模块中至少一种模块,或者其他具备定位功能的模块,对此不作具体限定。定位数据用作分级空间定位策略的一级定位数据源,可以包括终端在世界坐标系下的定位坐标,比如经纬度位置。
可选的,定位数据可以包括对应于不同时间戳的多个子定位数据,第一姿态数据也可以包括对应于不同时间戳的多个子姿态数据。具体来说,利用位姿轨迹数据对第一姿态数据进行位姿优化处理,获得第二姿态数据,可以为:根据每个子定位数据所指示的定位坐标,将多个子定位数据进行坐标连接,可以生成位姿轨迹数据。根据每个子姿态数据对应的时间戳及位姿轨迹数据中对应于相同时间戳的姿态点,利用相应的姿态点调整每个子姿态数据,从而将多个调整后的子姿态数据作为第二姿态数据。可见,通过对大范围位姿轨迹的优化处理,能够进一步提高位姿数据采集的准确性。
还可选的,当姿态检测装置包括两种或两种以上的检测装置(比如广角相机和惯性传感器)时,可以对两种或两种以上的检测装置各自采集的姿态数据进行数据融合,获得第一姿态数据。用于姿态数据融合的算法包括但不限于互补滤波算法、卡尔曼滤波算法以及梯度下降法。可见,通过对多源姿态数据进行数据融合,这样能够消除单一检测装置在姿态检测时产生的偏差,提高姿态数据采集的精度和准确性。
202、对二维图像、原始位姿数据和深度图像数据进行帧同步处理,获得二维图像对应的目标位姿数据和目标深度数据。
203、对二维图像进行特征提取,获得二维图像对应的二维特征数据。
在本申请实施例中,二维图像对应的二维特征数据可以包括二维图像对应的视觉词典和二维特征点数据,二维特征点数据可以包括二维特征点及相应的特征点描述子,均不作具体限定。可选的,步骤203具体可以为:对二维图像进行特征提取,获得二维图像对应的二维特征点数据;根据二维图像对应的二维特征点数据,生成二维图像对应的视觉词典。
其中,可以使用尺度不变特征转换算法(scale-invariant feature transform,SIFT)、加速稳健特征算法(speeded up robust features,SURF)、方向梯度直方图算法(histogram of oriented gradient,HOG)、角点检测算法(features from acceleratedsegment test,FAST)和BRIEF(binary robust independent elementary features)等算法对第一相机拍摄到的当前二维图像和历史二维图像进行特征点提取和匹配,即可获得当前二维图像对应的二维特征点数据,具体选用的算法不作限定。
进一步可选的,根据二维图像对应的二维特征点数据,生成二维图像对应的视觉词典,具体可以为:根据二维图像对应的二维特征点数据,利用K-Means算法对二维特征点数据进行聚类,构造一个包含K个视觉词汇的单词表,其中K为正整数;之后,统计单词表中每个视觉词汇在二维图像中的出现频次,从而生成一个K维数值向量或BOW(Bag-of-word)直方图,K维数值向量或BOW直方图为该二维图像对应的视觉词典,可以结合分类器或者K最近邻分类算法(k-nearest neighbor,KNN)进行训练,以实现后续的图像快速匹配与检索。
204、根据二维图像对应的二维特征数据和目标深度数据,生成二维图像对应的目标点云数据。
在本申请实施例中,由于第一相机与第二相机均设于终端上,两者之间具有固定的标定位置关系,故第一相机对应的第一相机坐标系与第二相机对应的第二相机坐标系也具有坐标点映射关系。具体来说,根据二维特征点数据所包括的每一特征点在第一相机坐标系下对应的二维坐标值,经过标定位置关系的转换,获得转换后的二维坐标值,则可以根据转换后的二维坐标值获得该特征点在第二相机坐标系下所匹配的目标点,进而根据目标点对应的深度值获得特征点对应的深度值。
可选的,标定位置关系的具体形式可以为位姿变换参数,可以预先将第一相机与第二相机之间对应的位姿变换参数(比如位姿变换矩阵)存入数据库以供后续计算时直接调用,其中,位姿变换参数可以是由采集人员人为测量与标定后得到的参数,也可以是终端在第一相机和第二相机相对位置与姿态不变的情况下计算得到的历史参数。
示例性的,若第一相机拍摄的二维图像中一特征点的二维坐标值为(a,b),假设位姿变换参数指示x2=x1+5,y2=y1,z2=z1,其中x2、y2、z2为第二相机坐标系中任一点的二维坐标值和深度值,x1、y1、z1为第一相机坐标系中任一点的二维坐标值和深度值,则(a,b)经转换后可匹配到第二相机拍摄的深度图像中一目标点(a+5,b),因此目标点(a+5,b)对应的深度值d即为特征点(a,b)的深度值;或者,假设假设位姿变换参数指示x2=x1+5,y2=y1不变,但z2=z1+2,则特征点(a,b)的深度值应相应地调整为d+2。
类似的,在本申请实施例中,根据位姿检测装置、第一相机和第二相机中任意两个硬件装置之间的位姿变换参数,均可以确定两硬件装置输出数据的映射关系。比如,针对位姿检测装置采集到的位姿数据,可以根据位姿检测装置与第一相机之间的位姿变换参数,对位姿检测装置的位姿数据进行映射处理,获得第一相机的位姿数据,再以此求得第一相机对应的相机位姿矩阵。
205、在对任一拍摄图像进行视觉定位时,以二维图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和二维图像进行图像匹配。
在本申请实施例中,拍摄图像可以是本终端对某一场景拍摄到的图像,也可以是由与本终端建立通信连接的其他终端(比如用户手机端)拍摄并发送给本终端的图像,对此不作具体限定。
206、若拍摄图像和二维图像相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
在本申请实施例中,具体来说,将拍摄图像和二维图像进行匹配,可以包括以下至少一种方式:将拍摄图像对应的位姿数据与二维图像对应的目标位姿数据进行匹配、将拍摄图像对应的二维特征数据和二维图像对应的二维特征数据进行匹配,以及将拍摄图像对应的点云数据与二维图像对应的目标点云数据进行匹配。相应的,拍摄图像和二维图像相匹配可以满足以下至少一种条件:1、拍摄图像对应的位姿数据与二维图像对应的目标位姿数据相匹配;2、拍摄图像对应的二维特征数据和二维图像对应的二维特征数据相匹配;3、拍摄图像对应的点云数据与二维图像对应的目标点云数据相匹配。
示例性的,在视觉定位的一种应用中,假设二维图像为一商业区图像,该商业区图像对应的二维特征数据可以包括视觉词典,且视觉词典中用于辨识的视觉词汇通常可以包括商场门牌号、楼宇、标志性建筑物等。若从待视觉定位的拍摄图像中识别出的商场门牌号、楼宇及标志性建筑物等二维特征及出现频次与二维图像对应的视觉词典最为相近,则判定出拍摄图像与二维图像相匹配,即满足上述条件2,进而确定出该拍摄图像指示的地点即上述商业区。
在视觉定位的另一种应用中,假设用户使用任一终端(比如本终端,或者与本终端建立通信连接的其他终端)对某一场景拍摄了待视觉定位的拍摄图像,则该终端可以将拍摄时的定位数据(比如R街道)和三轴姿态数据关联为拍摄图像对应的位姿数据。如果二维图像是S餐厅的店面图像,二维图像对应的定位数据包括R街道,且其对应的三轴姿态数据还与拍摄图像对应的三轴姿态数据相匹配,则视觉定位系统在对拍摄图像进行视觉定位时,可以判定出拍摄图像与二维图像相匹配,即满足上述条件1,进而识别出拍摄图像指示的具体地点即S餐厅。
可见,实施上述步骤205和步骤206,既能够以二维图像对应的目标位姿数据、二维特征数据和目标点云数据中任一项数据为匹配依据进行图像匹配,进一步优化了视觉定位的效率,又能够集合其中任意两项或两项以上数据为匹配依据进行定位的一致性校验,改善了定位准确度。
可见,实施图2所描述的方法,能够节省大量图像采集及处理所花费的时间,提高了空间视觉信息的采集效率,从而提升视觉定位的效率,还能够减少复杂图像运算中存在的累积误差,改善了采集空间视觉信息的准确性和鲁棒性。
如图3所示,图3是本申请实施例中另一种视觉定位方法的实施例示意图。在图3所示的方法中,原始位姿数据包括多帧子位姿数据,二维图像包括多帧子图像,深度图像数据包括多帧子深度数据。该方法包括:
301、获取位姿检测装置采集到的终端的多帧子位姿数据、获取第一相机对目标场景采集到的多帧子图像,以及获取第二相机对目标场景采集到的多帧子深度数据。
在本申请实施例中,步骤301可参照对图2所示实施例中的步骤201的描述,此处不再赘述。
302、根据每帧子位姿数据对应的时间戳、每帧子图像对应的时间戳以及每帧子深度数据对应的时间戳,对多帧子位姿数据、多帧子图像和多帧子深度数据进行帧同步处理,获得每帧子图像对应的目标位姿数据和目标深度数据。
在本申请实施例中,每帧子图像与子图像对应的目标位姿数据和目标深度数据在时间戳上同步。
可以理解,位姿检测装置、第一相机和第二相机输出的数据均可以标记有时间戳。由于不同硬件装置的采集频率不尽相同,实施步骤302,可以用帧同步技术将所有硬件装置的输出数据在时间域上对齐,有利于提高后续视觉定位的准确性和鲁棒性。
303、对每帧子图像进行特征提取,获得每帧子图像对应的二维特征数据。
304、根据子图像对应的二维特征数据和目标深度数据,生成子图像对应的目标点云数据。
在本申请实施例中,步骤304可以直接参照对图2所示实施例中步骤204的描述单独生成每帧子图像对应的目标点云数据。
作为一种可选的实施方式,还可以结合多帧子图像各自对应的二维特征数据和目标深度数据,生成二维图像对应的目标点云数据,具体还可以为:
①根据每帧子图像对应的二维特征数据和目标深度数据,确定每帧子图像所对应的点云数据;
②基于截断有向距离体素结构,根据每帧子图像对应的目标位姿数据对多帧子图像对应的点云数据进行融合处理,生成二维图像对应的目标点云数据。
其中,截断有向距离体素结构(truncated signed distance function,TSDF)是由多个体素组成的三维模型,每个体素可以对应于一个在世界坐标系下的三维位置点,步骤②具体可以为:
构建包围盒体,其中,该包围盒体由多个体素组成;
针对每帧子图像对应的点云数据,根据相应的目标位姿数据,获得第二相机位姿矩阵,并利用第二相机位姿矩阵将该帧子图像对应的点云数据映射至包围盒体,从而基于下述更新公式更新包围盒体中所有体素的TSDF值以及权重,即:
其中,Wi(x,y,z)为当前帧对应的包围盒体中任一体素p的权重,体素p在世界坐标系下的坐标为(x,y,z),Wi-1(x,y,z)为上一帧对应的包围盒体中体素p的权重,max weight为最大权重,可取值为1,Di(x,y,z)为当前帧对应的包围盒体中体素p的TSDF值,Di-1(x,y,z)为上一帧对应的包围盒体中体素p的权重,Vz为匹配点s的z轴坐标,匹配点s为体素p转换到第二相机坐标系后获得的空间点,Di(u,v)为匹配点s基于第二相机的内部参数转换到图像坐标系后获得的图像点(u,v)的深度值,(min truncation,max truncation)为预设的截断范围。
可见,上述可选的实施方式能够对多帧子图像的点云数据进行融合,获得目标点云数据,这样既减少了多帧子图像均各自生成点云数据造成的冗余问题,也去除了因硬件装置的噪声而导致的信息误差和信息不一致现象。并且,TSDF数据结构相比一般的体素滤波方法,其保留了空间信息的方向性以及领域关系,方便快速索引空间视觉信息,也可以快速生成空间几何信息。这些空间几何信息同样可以辅助视觉定位,作为验证视觉定位算法的几何一致性优化的信息根据,提高视觉定位的算法鲁棒性。
进一步可选的,步骤①具体还可以为:
获取第一相机与第二相机之间对应的位姿变换参数;
根据位姿变换参数,对每帧子图像对应的二维特征数据和目标深度数据进行映射处理,确定每帧子图像所对应的点云数据。
其中,对每帧子图像对应的二维特征数据和目标深度数据进行映射处理的过程均可参照对图2所示实施例中步骤204的描述,不再赘述。
305、在对任一拍摄图像进行视觉定位时,以子图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和子图像进行图像匹配。
306、若拍摄图像和子图像相匹配,则根据目标场景确定对子图像的视觉定位结果。
作为一种可选的实施方式,步骤303具体可以为:
根据每帧子图像对应的目标位姿数据,从多帧子图像中确定出满足关键帧条件的M帧关键图像;其中,M为正整数,关键帧条件包括关键图像对应的目标位姿数据与历史位姿数据之间的位姿数据变化值大于或等于预设阈值,历史位姿数据为目标图像对应的目标位姿数据,目标图像为多帧子图像中与关键图像对应于相邻时间戳的图像;
对关键图像进行特征提取,获得关键图像对应的二维特征数据。
相应的,步骤304~步骤306可以为:根据关键图像对应的二维特征数据和目标深度数据,生成关键图像对应的目标点云数据;在对任一拍摄图像进行视觉定位时,以关键图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和关键图像进行图像匹配;
若拍摄图像和关键图像相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
其中,预设阈值可以为人为预先设定。易理解的是,计算二维图像对应的二维特征数据通常采用的是特征点匹配算法,其允许一定的视觉角度误差,故可以隔帧对二维图像进行计算。通过计算在时间戳上相邻的两帧子图像所对应的位姿数据变化值,当位姿数据变化值到达预设阈值时,确定出关键图像,并且后续只需计算关键图像对应的空间视觉信息,这样既保证了信息采集的实时性需求,又减少了信息冗余。
可见,实施图3所描述的方法,能够节省大量图像采集及处理所花费的时间,提高了空间视觉信息的采集效率,从而提升视觉定位的效率,并且减少复杂图像运算中存在的累积误差,改善了采集空间视觉信息的准确性和鲁棒性;此外,还能够通过信息同步技术得到采集时间上匹配准确的空间视觉信息,有利于提高后续视觉定位的准确性和鲁棒性。
上述对本申请实施例中视觉定位方法进行了说明,下面对本申请实施例中的视觉定位系统进行说明,如图4所示,图4是本申请实施例中视觉定位系统的一种结构示意图,该视觉定位系统包括:
获取模块401,用于获取位姿检测装置采集到的终端的原始位姿数据、获取第一相机对目标场景采集到的二维图像,以及获取第二相机对目标场景采集到的深度图像数据;
同步模块402,用于对二维图像、原始位姿数据和深度图像数据进行帧同步处理,获得二维图像对应的目标位姿数据和目标深度数据;
提取模块403,用于对二维图像进行特征提取,获得二维图像对应的二维特征数据;
生成模块404,用于根据二维特征数据和目标深度数据,生成二维图像对应的目标点云数据;
定位模块405,用于在对任一拍摄图像进行视觉定位时,以二维图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和二维图像进行图像匹配;若拍摄图像和二维图像相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
可选的,在本申请的一些实施例中,原始位姿数据包括多帧子位姿数据,二维图像包括多帧子图像,深度图像数据包括多帧子深度数据;同步模块402具体用于根据每帧子位姿数据对应的时间戳、每帧子图像对应的时间戳以及每帧子深度数据对应的时间戳,对多帧子位姿数据、多帧子图像和多帧子深度数据进行帧同步处理,获得每帧子图像对应的目标位姿数据和目标深度数据;其中,每帧子图像与子图像对应的目标位姿数据和目标深度数据在时间戳上同步。
进一步可选的,在本申请的一些实施例中,提取模块403,具体用于根据每帧子图像对应的目标位姿数据,从多帧子图像中确定出满足关键帧条件的M帧关键图像;其中,M为正整数,关键帧条件包括关键图像对应的目标位姿数据与历史位姿数据之间的位姿数据变化值大于或等于预设阈值,历史位姿数据为目标图像对应的目标位姿数据,目标图像为多帧子图像中与关键图像对应于相邻时间戳的图像;对关键图像进行特征提取,获得关键图像对应的二维特征数据。
相应的,生成模块404,具体用于根据关键图像对应的二维特征数据和目标深度数据,生成关键图像对应的目标点云数据;
定位模块405,具体用于在对任一拍摄图像进行视觉定位时,以关键图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和关键图像进行图像匹配;若拍摄图像和关键图像相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
可选的,在本申请的一些实施例中,生成模块404,具体还用于根据每帧子图像对应的二维特征数据和目标深度数据,确定每帧子图像所对应的点云数据;基于截断有向距离体素结构,根据每帧子图像对应的目标位姿数据对多帧子图像对应的点云数据进行融合处理,生成二维图像对应的目标点云数据。
可选的,在本申请的一些实施例中,生成模块404用于根据每帧子图像对应的二维特征数据和目标深度数据,确定每帧子图像所对应的点云数据的方式具体为:生成模块404,用于获取第一相机与第二相机之间对应的位姿变换参数;根据位姿变换参数,对每帧子图像对应的二维特征数据和目标深度数据进行映射处理,确定每帧子图像所对应的点云数据。
此外,可选的,在本申请的一些实施例中,位姿检测装置还包括姿态检测装置和定位装置,原始位姿数据可以包括第二姿态数据和定位数据。获取模块401,具体可以用于获取姿态检测装置采集到的终端的第一姿态数据,以及获取定位装置采集到的终端的定位数据;根据定位数据,生成位姿轨迹数据;利用位姿轨迹数据对第一姿态数据进行位姿优化处理,获得第二姿态数据。
可见,实施图4所描述的系统,能够节省大量图像采集及处理所花费的时间,提高了空间视觉信息的采集效率,从而提升视觉定位的效率,还能够减少复杂图像运算中存在的累积误差,改善了采集空间视觉信息的准确性和鲁棒性。
如图5所示,图5是本申请实施例中视觉定位系统的另一种结构示意图,该视觉定位系统包括:
一个或多个存储器501;
一个或多个处理器502,用于调用存储在存储器501中的指令执行上述图2或图3所示实施例中部分或全部方法步骤。
如图6所示,图6是本申请实施例中终端的一种硬件架构图。
终端600可以包括处理器610,外部存储器接口620,内部存储器621,通用串行总线(universal serial bus,USB)接口630,充电管理模块640,电源管理模块641,电池642,天线1,天线2,移动通信模块650,无线通信模块660以及传感器模块670等。其中传感器模块670可以包括惯性传感器670A、彩色相机670B、深度相机670C、鱼眼相机670D、陀螺仪传感器670E以及加速度传感器670F等。
可以理解的是,本申请实施例示意的结构并不构成对终端600的具体限定。在本申请另一些实施例中,终端600可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器610可以包括一个或多个处理单元,例如:处理器610可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器610中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器610中的存储器为高速缓冲存储器。该存储器可以保存处理器610刚用过或循环使用的指令或数据。如果处理器610需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器610的等待时间,因而提高了系统的效率。
在一些实施例中,处理器610可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器610可以包含多组I2C总线。处理器610可以通过不同的I2C总线接口分别耦合惯性传感器670A,充电器等。例如:处理器610可以通过I2C接口耦合惯性传感器670A,使处理器610与惯性传感器670A通过I2C总线接口通信,获取到惯性传感器采集的位姿数据。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器610与无线通信模块660。例如:处理器610通过UART接口与无线通信模块660中的蓝牙模块通信,实现蓝牙功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器610与无线通信模块660和传感器模块670等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口630是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口630可以用于连接充电器为终端600充电,也可以用于终端600与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端600的结构限定。在本申请另一些实施例中,终端600也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块640用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块640可以通过USB接口630接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块640可以通过终端600的无线充电线圈接收无线充电输入。充电管理模块640为电池642充电的同时,还可以通过电源管理模块641为终端供电。
电源管理模块641用于连接电池642,充电管理模块640与处理器610。电源管理模块641接收电池642和/或充电管理模块640的输入,为处理器610,内部存储器621和无线通信模块660等供电。电源管理模块641还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块641也可以设置于处理器610中。在另一些实施例中,电源管理模块641和充电管理模块640也可以设置于同一个器件中。
终端600的无线通信功能可以通过天线1,天线2,移动通信模块650,无线通信模块660,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端600中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块650可以提供应用在终端600上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块650可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块650可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块650还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块650的至少部分功能模块可以被设置于处理器610中。在一些实施例中,移动通信模块650的至少部分功能模块可以与处理器610的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器610,与移动通信模块650或其他功能模块设置在同一个器件中。
无线通信模块660可以提供应用在终端600的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块660可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块660经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器610。无线通信模块660还可以从处理器610接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端600的天线1和移动通信模块650耦合,天线2和无线通信模块660耦合,使得终端600可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端600在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端600的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口620可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端600的存储能力。外部存储卡通过外部存储器接口620与处理器610通信,实现数据存储功能。例如将传感器数据保存在外部存储卡中。
内部存储器621可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器621可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如图像播放功能等)等。存储数据区可存储终端600使用过程中所创建的数据(比如音频数据、电话本等)等。此外,内部存储器621可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器610通过运行存储在内部存储器621的指令,和/或存储在设置于处理器中的存储器的指令,执行终端600的各种功能应用以及数据处理。
在本申请的实现方案中,终端600可以包括位姿检测装置、第一相机和第二相机,处理器610可以获取位姿检测装置采集到的终端的原始位姿数据,其中原始位姿数据包括姿态数据和定位数据,比如,处理器610可以获取图6中的惯性传感器670A、鱼眼相机670D、陀螺仪传感器670E以及加速度传感器670F采集到的姿态数据,或者通过无线通信模块660中的无线局域网、蓝牙或全球导航卫星系统获取定位数据。处理器610还可以获取第一相机(比如图6中的彩色相机670B)对目标场景采集到的二维图像,以及获取第二相机(比如图6中的深度相机670C)对目标场景采集到的深度图像数据。处理器610可以对二维图像、原始位姿数据和深度图像数据进行帧同步处理,获得二维图像对应的目标位姿数据和目标深度数据;对二维图像进行特征提取,获得二维图像对应的二维特征数据;以及根据二维图像对应的二维特征数据和目标深度数据,生成二维图像对应的目标点云数据,并在对任一拍摄图像进行视觉定位时,以二维图像对应的目标位姿数据、二维特征数据和目标点云数据中至少一项数据为匹配依据将拍摄图像和二维图像进行图像匹配,若拍摄图像和二维图像相匹配,则根据目标场景确定对拍摄图像的视觉定位结果。
此外,处理器610还可以将二维图像对应的目标位姿数据、二维特征数据和目标点云数据存储至内部存储器621,或者通过外部存储器接口620存储至外部存储器,再或者通过移动通信模块650或无线通信模块660发送至云端数据库进行存储。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种视觉定位方法,其特征在于,应用于终端,所述终端包括位姿检测装置、第一相机和第二相机,所述方法包括:
获取所述位姿检测装置采集的所述终端的原始位姿数据、获取所述第一相机对目标场景采集到的二维图像,以及获取所述第二相机对所述目标场景采集到的深度图像数据;
对所述二维图像、所述原始位姿数据和所述深度图像数据进行帧同步处理,获得所述二维图像对应的目标位姿数据和目标深度数据;
对所述二维图像进行特征提取,获得所述二维图像对应的二维特征数据;
根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据;
在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述二维图像进行图像匹配;
若所述拍摄图像和所述二维图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果。
2.根据权利要求1所述的方法,其特征在于,所述原始位姿数据包括多帧子位姿数据,所述二维图像包括多帧子图像,所述深度图像数据包括多帧子深度数据;
所述对所述二维图像、所述原始位姿数据和所述深度图像数据进行帧同步处理,获得所述二维图像对应的目标位姿数据和目标深度数据,包括:
根据每帧所述子位姿数据对应的时间戳、每帧所述子图像对应的时间戳以及每帧所述子深度数据对应的时间戳,对多帧所述子位姿数据、多帧所述子图像和多帧所述子深度数据进行帧同步处理,获得每帧所述子图像对应的目标位姿数据和目标深度数据;其中,每帧所述子图像与所述子图像对应的目标位姿数据和目标深度数据在时间戳上同步。
3.根据权利要求2所述的方法,其特征在于,所述对所述二维图像进行特征提取,获得所述二维图像对应的二维特征数据,包括:
根据每帧所述子图像对应的目标位姿数据,从多帧所述子图像中确定出满足关键帧条件的M帧关键图像;其中,M为正整数,所述关键帧条件包括所述关键图像对应的目标位姿数据与历史位姿数据之间的位姿数据变化值大于或等于预设阈值,所述历史位姿数据为目标图像对应的目标位姿数据,所述目标图像为多帧所述子图像中与所述关键图像对应于相邻时间戳的图像;
对所述关键图像进行特征提取,获得所述关键图像对应的二维特征数据;
所述根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据,包括:
根据所述二维特征数据和所述目标深度数据,生成所述关键图像对应的目标点云数据;
所述在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述二维图像进行图像匹配;若所述拍摄图像和所述二维图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果,包括:
在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述关键图像进行图像匹配;若所述拍摄图像和所述关键图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果。
4.根据权利要求2所述的方法,其特征在于,所述根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据,包括:
根据每帧所述子图像对应的二维特征数据和目标深度数据,确定每帧所述子图像所对应的点云数据;
基于截断有向距离体素结构,根据每帧所述子图像对应的目标位姿数据对多帧所述子图像对应的点云数据进行融合处理,生成所述二维图像对应的目标点云数据。
5.根据权利要求4所述的方法,其特征在于,所述根据每帧所述子图像对应的二维特征数据和目标深度数据,确定每帧所述子图像所对应的点云数据,包括:
获取所述第一相机与所述第二相机之间对应的位姿变换参数;
根据所述位姿变换参数,对每帧所述子图像对应的二维特征数据和目标深度数据进行映射处理,确定每帧所述子图像所对应的点云数据。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述位姿检测装置还包括姿态检测装置和定位装置;所述原始位姿数据包括第二姿态数据和定位数据;
所述获取所述位姿检测装置采集到的所述终端的原始位姿数据,包括:
获取姿态检测装置采集到的所述终端的第一姿态数据,以及获取定位装置采集到的所述终端的定位数据;
根据所述定位数据,生成位姿轨迹数据;
利用所述位姿轨迹数据对所述第一姿态数据进行位姿优化处理,获得第二姿态数据。
7.一种终端,其特征在于,所述终端包括位姿检测装置、第一相机、第二相机和视觉定位系统,其中,所述视觉定位系统包括:
获取模块,用于获取所述位姿检测装置采集到的所述终端的原始位姿数据、获取所述第一相机对目标场景采集到的二维图像,以及获取所述第二相机对所述目标场景采集到的深度图像数据;
同步模块,用于对所述二维图像、所述原始位姿数据和所述深度图像数据进行帧同步处理,获得所述二维图像对应的目标位姿数据和目标深度数据;
提取模块,用于对所述二维图像进行特征提取,获得所述二维图像对应的二维特征数据;
生成模块,用于根据所述二维特征数据和所述目标深度数据,生成所述二维图像对应的目标点云数据;
定位模块,用于在对任一拍摄图像进行视觉定位时,以所述目标位姿数据、所述二维特征数据和所述目标点云数据中至少一项数据为匹配依据将所述拍摄图像和所述二维图像进行图像匹配;若所述拍摄图像和所述二维图像相匹配,则根据所述目标场景确定对所述拍摄图像的视觉定位结果。
8.一种终端,其特征在于,所述终端包括位姿检测装置、第一相机、第二相机和视觉定位系统,其中,所述视觉定位系统包括:
一个或多个存储器;
一个或多个处理器,用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,还用于执行如权利要求1至6任意一项所述的方法。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010185845.8A CN111415388B (zh) | 2020-03-17 | 2020-03-17 | 一种视觉定位方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010185845.8A CN111415388B (zh) | 2020-03-17 | 2020-03-17 | 一种视觉定位方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111415388A CN111415388A (zh) | 2020-07-14 |
CN111415388B true CN111415388B (zh) | 2023-10-24 |
Family
ID=71494343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010185845.8A Active CN111415388B (zh) | 2020-03-17 | 2020-03-17 | 一种视觉定位方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111415388B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749610A (zh) * | 2020-07-27 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 深度图像、参考结构光图像生成方法、装置及电子设备 |
CN112000225B (zh) * | 2020-08-25 | 2021-06-25 | 唯羲科技有限公司 | 一种定位建图优化方法、装置及定位建图优化芯片 |
CN112312113B (zh) * | 2020-10-29 | 2022-07-15 | 贝壳技术有限公司 | 用于生成三维模型的方法、装置和系统 |
CN112492292B (zh) * | 2020-11-27 | 2023-04-11 | 天目爱视(北京)科技有限公司 | 一种自由姿态的智能视觉3d信息采集设备 |
CN112799095B (zh) * | 2020-12-31 | 2023-03-14 | 深圳市普渡科技有限公司 | 静态地图生成方法、装置、计算机设备及存储介质 |
CN114827442B (zh) * | 2021-01-29 | 2023-07-11 | 华为技术有限公司 | 生成图像的方法和电子设备 |
WO2022190848A1 (ja) * | 2021-03-12 | 2022-09-15 | ソニーグループ株式会社 | 測距装置、測距システム及び測距方法 |
CN113237423B (zh) * | 2021-04-16 | 2023-09-05 | 北京京东乾石科技有限公司 | 物品体积测量设备 |
CN113192128A (zh) * | 2021-05-21 | 2021-07-30 | 华中科技大学 | 一种结合自监督学习的机械臂抓取规划方法和系统 |
CN113240656B (zh) * | 2021-05-24 | 2023-04-07 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
CN113310505B (zh) * | 2021-06-15 | 2024-04-09 | 苏州挚途科技有限公司 | 传感器系统的外参标定方法、装置及电子设备 |
CN113438416B (zh) * | 2021-06-21 | 2022-12-09 | 北京小米移动软件有限公司 | 图像数量获取方法和装置、电子设备、存储介质 |
CN115222808B (zh) * | 2021-06-30 | 2023-10-20 | 达闼机器人股份有限公司 | 基于无人机的定位方法、装置、存储介质和电子设备 |
CN113741698B (zh) * | 2021-09-09 | 2023-12-15 | 亮风台(上海)信息科技有限公司 | 一种确定和呈现目标标记信息的方法与设备 |
CN113987231A (zh) * | 2021-10-29 | 2022-01-28 | 北京爱笔科技有限公司 | 图像数据存储方法、装置、计算机设备和存储介质 |
CN117036663B (zh) * | 2022-04-18 | 2024-07-09 | 荣耀终端有限公司 | 视觉定位方法、设备和存储介质 |
CN115375855B (zh) * | 2022-10-25 | 2023-01-10 | 四川公路桥梁建设集团有限公司 | 工程项目的可视化方法、装置、电子设备和可读介质 |
CN115497087B (zh) * | 2022-11-18 | 2024-04-19 | 广州煌牌自动设备有限公司 | 一种餐具姿态的识别系统及其方法 |
CN115963917B (zh) * | 2022-12-22 | 2024-04-16 | 北京百度网讯科技有限公司 | 视觉数据处理设备及视觉数据处理方法 |
CN116630598B (zh) * | 2023-07-19 | 2023-09-29 | 齐鲁空天信息研究院 | 大场景下的视觉定位方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105225269A (zh) * | 2015-09-22 | 2016-01-06 | 浙江大学 | 基于运动机构的三维物体建模系统 |
CN107167139A (zh) * | 2017-05-24 | 2017-09-15 | 广东工业大学 | 一种变电站巡检机器人视觉定位导航方法及系统 |
WO2018119889A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 三维场景定位方法和装置 |
CN108871314A (zh) * | 2018-07-18 | 2018-11-23 | 江苏实景信息科技有限公司 | 一种定位定姿方法及装置 |
CN109506658A (zh) * | 2018-12-26 | 2019-03-22 | 广州市申迪计算机系统有限公司 | 机器人自主定位方法和系统 |
CN109949422A (zh) * | 2018-10-15 | 2019-06-28 | 华为技术有限公司 | 用于虚拟场景的数据处理方法以及设备 |
CN110136211A (zh) * | 2019-04-18 | 2019-08-16 | 中国地质大学(武汉) | 一种基于主动双目视觉技术的工件定位方法及系统 |
CN110390356A (zh) * | 2019-07-03 | 2019-10-29 | Oppo广东移动通信有限公司 | 视觉词典生成方法及装置、存储介质 |
CN110610520A (zh) * | 2019-08-29 | 2019-12-24 | 中德(珠海)人工智能研究院有限公司 | 一种基于双球幕相机的视觉定位方法及系统 |
CN110704562A (zh) * | 2019-09-27 | 2020-01-17 | Oppo广东移动通信有限公司 | 地图融合方法及装置、设备、存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846923B2 (en) * | 2018-05-24 | 2020-11-24 | Microsoft Technology Licensing, Llc | Fusion of depth images into global volumes |
-
2020
- 2020-03-17 CN CN202010185845.8A patent/CN111415388B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105225269A (zh) * | 2015-09-22 | 2016-01-06 | 浙江大学 | 基于运动机构的三维物体建模系统 |
WO2018119889A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 三维场景定位方法和装置 |
CN107167139A (zh) * | 2017-05-24 | 2017-09-15 | 广东工业大学 | 一种变电站巡检机器人视觉定位导航方法及系统 |
CN108871314A (zh) * | 2018-07-18 | 2018-11-23 | 江苏实景信息科技有限公司 | 一种定位定姿方法及装置 |
CN109949422A (zh) * | 2018-10-15 | 2019-06-28 | 华为技术有限公司 | 用于虚拟场景的数据处理方法以及设备 |
CN109506658A (zh) * | 2018-12-26 | 2019-03-22 | 广州市申迪计算机系统有限公司 | 机器人自主定位方法和系统 |
CN110136211A (zh) * | 2019-04-18 | 2019-08-16 | 中国地质大学(武汉) | 一种基于主动双目视觉技术的工件定位方法及系统 |
CN110390356A (zh) * | 2019-07-03 | 2019-10-29 | Oppo广东移动通信有限公司 | 视觉词典生成方法及装置、存储介质 |
CN110610520A (zh) * | 2019-08-29 | 2019-12-24 | 中德(珠海)人工智能研究院有限公司 | 一种基于双球幕相机的视觉定位方法及系统 |
CN110704562A (zh) * | 2019-09-27 | 2020-01-17 | Oppo广东移动通信有限公司 | 地图融合方法及装置、设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
陈宝华 ; 邓磊 ; 陈志祥 ; 段岳圻 ; 周杰 ; .基于即时稠密三维重构的无人机视觉定位.电子学报.2017,第45卷(第06期),第1294-1300页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111415388A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111415388B (zh) | 一种视觉定位方法及终端 | |
US9842282B2 (en) | Method and apparatus for classifying objects and clutter removal of some three-dimensional images of the objects in a presentation | |
CN111145339B (zh) | 图像处理方法及装置、设备、存储介质 | |
CN108332748B (zh) | 一种室内可见光定位方法及装置 | |
CN103440318A (zh) | 移动终端的景观识别系统 | |
WO2019084825A1 (zh) | 图像处理方法、设备及无人机 | |
CN109357679A (zh) | 一种基于显著性特征识别的室内定位方法 | |
CN116468917A (zh) | 图像处理方法、电子设备及存储介质 | |
WO2021088497A1 (zh) | 虚拟物体显示方法、全局地图更新方法以及设备 | |
CN112907658A (zh) | 视觉定位评估方法和电子设备 | |
CN117077073A (zh) | 一种多模态数据的处理方法及相关装置 | |
CN113468929A (zh) | 运动状态识别方法、装置、电子设备和存储介质 | |
Ahmad et al. | Computer Vision Techniques for Military Surveillance Drones | |
An et al. | Image-based positioning system using LED Beacon based on IoT central management | |
CN111709993A (zh) | 物体的位姿信息确定方法、装置、终端及存储介质 | |
WO2023051383A1 (zh) | 一种设备定位方法、设备及系统 | |
CN115423853A (zh) | 一种图像配准方法和设备 | |
CN113822102B (zh) | 一种姿态估计方法、装置、电子设备及存储介质 | |
CN113033590B (zh) | 图像特征匹配方法、装置、图像处理设备及存储介质 | |
CN117461056A (zh) | 3d地图的检索方法和装置 | |
CN116227471B (zh) | 一种纠错方法、装置及电子设备 | |
Feng et al. | Visual location recognition using smartphone sensors for indoor environment | |
WO2024083010A1 (zh) | 一种视觉定位方法及相关装置 | |
CN118623873A (zh) | 一种位姿优化方法及电子设备 | |
CN210781097U (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 |