CN117576494A - 特征地图生成方法、装置、存储介质和计算机设备 - Google Patents
特征地图生成方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN117576494A CN117576494A CN202210945938.5A CN202210945938A CN117576494A CN 117576494 A CN117576494 A CN 117576494A CN 202210945938 A CN202210945938 A CN 202210945938A CN 117576494 A CN117576494 A CN 117576494A
- Authority
- CN
- China
- Prior art keywords
- feature
- image
- feature points
- point set
- feature point
- 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 72
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000005259 measurement Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 28
- 239000013598 vector Substances 0.000 claims description 25
- 238000000605 extraction Methods 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 21
- 230000033001 locomotion Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000001629 suppression Effects 0.000 claims description 8
- 230000001174 ascending effect Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 5
- 230000000875 corresponding effect Effects 0.000 description 190
- 230000008569 process Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 8
- 238000004140 cleaning Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 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
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/36—Applying a local operator, i.e. means to operate on image points situated in the vicinity of a given point; Non-linear local filtering operations, e.g. median filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/757—Matching configurations of points or features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/771—Feature selection, e.g. selecting representative features from a multi-dimensional feature space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Nonlinear Science (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及一种特征地图生成方法、装置、存储介质和计算机设备,可应用于地图领域或者自动驾驶领域,包括:获得多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点确定对应的特征描述子;将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异;基于计算得到的差异确定位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;基于更新后的特征点集合确定空间特征点,以生成用于定位的特征地图。采用本方法能够提高定位精度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种特征地图生成方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了视觉定位技术,在视觉定位技术中,可以通过构建特征地图,特征地图是一种数据结构,可以用有关的几何特征(如点、直线、面)表示观测环境,进而辅助待定位的运动设备进行定位。例如,在自动驾驶中,可以通过构建特征地图对自动驾驶车辆进行定位。
随着自动驾驶等应用越来越广泛,对定位的精度要求越来越高,然而相关技术中构建的特征地图在使用过程中经常存在定位精度低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高定位精度的特征地图生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种特征地图生成方法。所述方法包括:获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的所述图像特征点在所属图像的位置确定对应的特征描述子;将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;从所述特征点集合中确定代表特征点,计算所述特征点集合中剩余的图像特征点对应的特征描述子与所述代表特征点对应的特征描述子之间的差异;基于计算得到的差异确定所述特征点集合的位置误差,基于所述位置误差迭代更新所述特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;基于所述更新后的特征点集合中各个图像特征点在所属图像的位置,确定所述更新后的特征点集合对应的空间特征点,基于所述空间特征点生成特征地图,所述特征地图用于对待定位的运动设备在所述目标场景中进行定位。
另一方面,本申请还提供了一种特征地图生成装置。所述装置包括:特征提取模块,用于获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的所述图像特征点在所属图像的位置确定对应的特征描述子;特征点集合确定模块,用于将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;差异计算模块,从所述特征点集合中确定代表特征点,计算所述特征点集合中剩余的图像特征点对应的特征描述子与所述代表特征点对应的特征描述子之间的差异;位置更新模块,用于基于计算得到的差异确定所述特征点集合的位置误差,基于所述位置误差迭代更新所述特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;特征地图生成模块,用于基于所述更新后的特征点集合中各个图像特征点在所属图像的位置,确定所述更新后的特征点集合对应的空间特征点,基于所述空间特征点生成特征地图,所述特征地图用于对待定位的运动设备在所述目标场景中进行定位。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述特征地图生成方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述特征地图生成方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述特征地图生成方法的步骤。
上述特征地图生成方法、装置、计算机设备、存储介质和计算机程序产品,通过获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子,将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合,从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异,基于计算得到的差异确定特征点集合的位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,基于空间特征点生成特征地图,由于在生成特征地图的过程中,基于图像特征点的特征描述子对图像特征点进行了位置优化,可以使得生成的特征地图更加鲁棒,从而利用该特征地图在定位的过程中定位精度得到了大大提升。
附图说明
图1为一个实施例中特征地图生成方法的应用环境图;
图2为一个实施例中特征地图生成方法的流程示意图;
图3为一个实施例中特征点集合的组成示意图;
图4为一个实施例中基于空间特征点生成特征地图的流程示意图;
图5为一个实施例中在输入图像中确定对应位置的示意图;
图6为一个实施例中特征提取模型的结构示意图;
图7为一个实施例中定位信息确定步骤的流程示意图;
图8为一个实施例中特征地图生成装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的特征地图生成方法可应用于智能交通系统(IntelligentTraffic System,ITS),以及智能车路协同系统(Intelligent Vehicle InfrastructureCooperative Systems,IVICS)。其中:
智能交通系统(Intelligent Traffic System,ITS)又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。或者;
智能车路协同系统(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS),简称车路协同系统,是智能交通系统(ITS)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
本申请实施例提供的特征地图生成方法,可以应用于如图1所示的应用环境中。其中,运动设备102通过网络与服务器104进行通信。其中,运动设备102指的是可以自主运动的设备或者被动运动的设备中的其中一种,自主运动的设备可以是各种交通工具、机器人等等,被动运动的设备例如可以是由用户携带并跟随用户的移动而移动的终端,被动运动的设备例如可以是智能手机、平板电脑和便携式可穿戴设备。运动设备102上安装有拍摄设备。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。具体地,在特征地图生成阶段,任意一个运动设备上的拍摄设备可以对目标场景进行拍摄得到多帧图像并将拍摄得到的多帧图像发送至服务器,服务器基于各帧图像生成特征地图并保存,在定位信息确定阶段,待定位的运动设备可以将惯性测量数据、速度测量数据以及在该目标场景中拍摄得到的目标图像发送至服务器,服务器可以基于这些数据以及保存的特征地图,确定待定位的运动设备的定位信息,将定位信息发送至待定位的运动设备。
可以理解的是,在其他实施例中,任意一个运动设备在目标场景中运动时,该运动设备上的拍摄设备可以对目标场景进行拍摄得到多帧图像,然后基于各帧图像生成特征地图并保存,从而当该运动设备再次在该目标场景中运动时,可以基于保存的特征地图确定定位信息。同时,该运动设备生成的特征地图还可以发送至服务器,其他待定位的运动设备在该目标场景中运动时,可以下载该特征地图,基于下载的特征地图确定定位信息,或者其他待定位的运动设备在该运动场景中运动时,可以将惯性测量数据、速度测量数据以及在该目标场景中拍摄得到的目标图像发送至服务器,服务器可以基于这些数据以及保存的特征地图,确定待定位的运动设备的定位信息,将定位信息返回至该待定位的运动设备。
在一个实施例中,如图2所示,提供了一种特征地图生成方法,以该方法应用于图1中的服务器为例进行说明,可以理解的是,该特征地图生成方法还可以应用于图1中的运动设备,或者应用于服务器和运动设备所组成的系统,由服务器和运动设备交互实现。具体地,该方法包括以下步骤:
步骤202,获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子。
其中,目标场景指的是所要生成的特征地图所针对的具体的场景,目标场景具体可以是车辆所处的环境,例如,目标场景可以是车辆的可能行驶路线所确定的场景,车辆在该场景中行驶的过程中通过摄像头采集获得周边的多帧图像。图像特征点是图像上的某些可用于描述场景的特征的像素点,例如显著的边缘点、方向梯度直方图特征、Haar特征等。特征描述子与图像特征点是一一对应的,特征描述子是对特征点附近邻域内高斯图像梯度统计结果的一种表示,特征描述子可以用于描述对应的图像特征点。
具体地,运动设备可以采集多帧图像,实时传输给服务器进行处理,或者运动设备可以只负责将采集到的多帧图像存储起来,在图像采集完成后,将存储的多帧图像以某种方式输入至服务器进行处理。服务器在获得针对目标场景拍摄得到的多帧图像后,可以从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子,从而可以得到各帧图像各自的图像特征点,以及各个图像特征点各自的特征描述子。
在一个实施例中,对图像特征点的提取可以采用,但不限于Good Features toTrack等算法实现,在计算机视觉库OpenCV里提供了相应的函数。在其他实施例中,还可以通过训练机器学习模型对图像进行特征点提取,机器学习模型包括多个卷积层,各个卷积层对原始图像进行不同的处理后,输出特征图像,该特征图像上表征了原始图像中各个位置为特征点的可能性,进而基于特征图像可以确定原始的特征点。可以理解的是,每帧图像上都可以提取出多个图像特征点。多个指的是至少两个。
步骤204,将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合。
其中,具有匹配关系的图像特征点指的是相似的图像特征点。在一个实施例中,具有匹配关系的图像特征点可以通过其特征描述子进行判断,在两个图像特征点的特征描述子达到一定的近似程度时认为二者是匹配的。
具体地,服务器可以将各帧图像中具有匹配关系的图像特征点组成特征点集合,从而可以得到多个特征点集合。举例说明,如图3所示,假设总共有3帧图像,第一帧图像包括图像特征点A1、A2和A3,第二帧图像包括图像特征点B1、B2、B3和B4,第三帧图像包括图像特征点C1、C2和C3,假设其中A1、B1和C1为相互之间具有匹配关系的图像特征点,A2、B2和C2为相互之间具有匹配关系的图像特征点,A3、B3和C3为相互之间具有匹配关系的图像特征点,则A1、B1和C1可以组成特征点集合1,A2、B2和C2可以组成特征点集合2,A3、B3和C3可以组成特征点集合。
在一个实施例中,假设多帧图像共有M帧,取i为1至M,首先提取出第i帧图像上的N个图像特征点,提取图像特征点的方法可以参考前文。若i=1,即对于第一帧图像,可以对其中的每个图像特征点均创建一个对应的特征点集合。若i>1,取j为1至N,判断第i-1帧图像中是否存在与第i帧图像中的第j个图像特征点匹配的图像特征点,若存在与之匹配的图像特征点,则将第j个图像特征点加入到与之匹配的图像特征点对应的特征点集合中(由于第i-1帧已经处理完毕,该特征点集合必然已经存在);若不存在与之匹配的图像特征点,创建与第j个图像特征点对应的特征点集合。一旦某个特征点集合不再有新的图像特征点加入,即可以认为该特征点集合构建完成。采用上述方法逐帧处理图像,在第M帧图像处理完成后,得到多个特征点集合,每个特征点集合中包括至少一个图像特征点,或者包括一个相互之间具有匹配关系的图像特征点序列。可以理解但是,在实际应用中,如果是实时构建特征地图,M未必是已知的,但具体的步骤和上面是类似的,只需要一直将i进行递增直至处理完所有图像即可。
步骤206,从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异。
其中,代表特征点集合指的是特征点集合中可以对特征点集合进行代表的图像特征点。特征点集合中剩余的图像特征点指的是特征点集合中除代表特征点之外的图像特征点。举例说明,假设某个特征点集合包括A1,B1,C1和D1总共四个图像特征点,其中A1为代表特征点,则B1,C1和D1为剩余的图像特征点。在一个实施例中,服务器可以从各个特征点集合中随机选择一个图像特征点,作为各个特征点集合各自的代表特征点。在其他实施例中,服务器可以计算各个特征点集合各自的平均特征点,将各个特征点集合中与各自的平均特征点相隔最近的图像特征点确定为代表特征点。
具体地,为防止对特征点集合中的图像特征点迭代更新的过程中发生整体偏移,本实施例中,可以在每个特征点集合中确定一个代表特征点,在迭代更新的过程中,保持该代表特征点的位置固定不动,从而计算各个特征点集合中剩余的图像特征点对应的特征描述子与各特征点集合各自的代表特征点对应的特征描述子之间的差异,得到各个剩余的图像特征点各自对应的差异。
在一个实施例中,对于每一个特征点集合,服务器可以计算该特征点集合中各个剩余的图像特征点对应的特征描述子与该特征点集合对应的特征描述子之间的绝对差值,得到各个剩余的图像特征点各自对应的差异。在其他实施例中,服务器在计算得到绝对差值后,可以计算绝对差值的平方,得到各个剩余的图像特征点各自对应的差异。
步骤208,基于计算得到的差异确定特征点集合的位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合。
其中,迭代停止条件例如可以是位置误差达到最小值,迭代次数达到预设次数,或者迭代时长达到最小时长中的其中一种。
具体地,由于在确定图像特征点时,每个特征点集合确定一个空间特征点,为提高所确定的空间特征点的精度,需要减少特征点集合的整体的位置误差,基于此,本实施例中,对于每一个特征点集合,服务器可以统计该特征点集合中各个剩余的图像特征点对应的差异,基于统计得到的差异确定特征点集合的位置误差,朝着最小化该位置误差的方向迭代更新代表特征点之外的各个图像特征点的位置,每更新一次,相当于对图像特征点的位置进行了一次优化,基于优化得到的图像特征点对应的描述子重新计算位置误差,进行下一次更新,不断重复该步骤对图像特征点的位置进行多次优化,当满足迭代停止条件时,将属于同一个特征点集合中的各个更新后的图像特征点和代表特征点组成更新后的特征点集合。在更新的过程中,可以采用梯度下降算法对图像特征点的位置进行更新。
在一个实施例中,为了防止优化过程中发生退化,服务器可以计算海森矩阵的奇异值,如果最大的奇异值除以最小的奇异值大于预设阈值,则放弃更新。
步骤210,基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,基于空间特征点生成特征地图,特征地图用于对待定位的运动设备在目标场景中进行定位。
其中,空间特征点指的是三维特征点,即图像上的特征点在三维空间中的对应点。本实施例中的特征地图可以是包括多个空间特征点的一种数据结构,其具体形式不作限定。待定位的运动设备指的是需要进行定位的运动设备,待定位的运动设备与发送多帧图像的运动设备可以是相同的运动设备,也可以是不相同的运动设备。图像特征点所属图像的位姿是指拍摄该帧图像时摄像头的位姿,这一位姿可以基于同一时刻运动设备的位姿,以及摄像头与运动设备之间的相对位姿关系,经由姿态变换而获得。
具体地,对于每一个更新后的特征点集合,服务器可以基于更新后的特征点集合中各个图像特征点在所属图像的位置,以及所属图像的位姿进行三角化计算,得到各个特征点集合各自对应的空间特征点。进一步地,服务器可以基于各个空间特征点生成特征地图,将特征地图进行存储,进而在后续的定位过程中,可以利用该特征地图对待定位的运动设备进行辅助定位。其中,三角化(Triangulation)计算是一种将二维的图像特征点映射到三维的空间特征点的现有方法,此处不进行详细阐述。可以理解的是,空间特征点的描述子可以为生成该空间特征点的所有图像特征点的描述子的平均值。
在一个实施例中,服务器具体可以通过以下步骤确定图像特征点所属图像的位姿:首先,获得运动设备与摄像头之间的相对位姿,该相对位姿在运动设备的运动过程中通常是保持不变的,可以通过标定获得。然后,根据运动设备上传的惯性测量数据和速度测量数据确定运动设备在各个时刻的位姿。之后,将运动设备在各个时刻的位姿与多帧图像的采集时间进行对齐,这里的对齐指的是确定每帧图像对应的运动设备的位姿,该位姿对应的数据采集时刻(采集惯性测量数据和速度测量数据的时刻)与该帧图像的采集时刻相同(或者在误差允许范围内相同)。最后,基于与每帧图像对应的运动设备的位姿以及运动设备与摄像头之间的相对位姿进行姿态变换,即可获得该帧图像的位姿。
上述特征地图生成方法中,通过获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子,将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合,从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异,基于计算得到的差异确定特征点集合的位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,基于空间特征点生成特征地图,由于在生成特征地图的过程中,基于图像特征点的特征描述子对图像特征点进行了位置优化,可以使得生成的特征地图更加鲁棒,从而利用该特征地图在定位的过程中定位精度得到了大大提升。
在一个实施例中,基于计算得到的差异确定特征点集合的位置误差,包括:将特征点集合中各个剩余的图像特征点分别作为目标特征点,分别计算各个目标特征点和代表特征点之间的匹配置信度;基于各个目标特征点各自对应的匹配置信度和差异,计算各个目标特征点各自对应的位置误差;统计各个目标特征点各自对应的位置误差,得到特征点集合的位置误差。
其中,目标特征点和代表特征点之间的匹配置信度是用于表征目标特征点和代表特征点之间的匹配程度的,匹配程度越高,代表两个特征点越相似。
具体地,对于每一个特征点集合,服务器可以将该特征点集合中各个剩余的图像特征点分别作为目标特征点,对于每一个目标特征点,服务器可以计算该目标特征点和代表特征点之间的匹配置信度,进而将匹配置信度和差异相乘,得到该目标特征点对应的位置误差,最后统计各个目标特征点各自对应的位置误差,得到该特征点集合的位置误差。其中,统计可以是加和、计算平均值或者计算中位值中的其中一种。
在一个具体的实施例中,服务器可以通过以下公式(1)计算得到位置误差,其中,为位置误差,u和v代表图像特征点,i(u)代表i帧图像的第u个图像特征点,k(v)代表第k帧图像的第v个特征点,wuv为匹配置信度,pu代表图像特征点u在图像上的位置,pv代表图像特征点v在图像上的位置,Fi(u)[pu]代表pu的描述子,Fk(v)[pv]代表pv的描述子:
本实施例中,通过计算图像特征点的匹配置信度,基于匹配置信度和差异得到图像特征点的位置误差,可以使得各个图像特征点的位置误差更加准确,从而最后通过统计特征点集合中各个图像特征点的位置误差得到的特征点集合的位置误差更加准确,从而可以得到精度更高的特征地图,进一步提升定位精度。
在一个实施例中,分别计算各个目标特征点和代表特征点之间的匹配置信度,包括:分别获取各个目标特征点各自的特征描述子,并获取代表特征点的特征描述子;分别计算各个目标特征点各自的特征描述子和代表特征点的特征描述子之间的向量相似度,将各个向量相似度作为各自对应的目标特征点与代表特征点之间的匹配置信度。
其中,向量相似度是用于描述两个向量之间的相似程度的,特征描述子为向量形式,因此可以进行向量相似度的计算。在一个实施例中,向量相似度例如可以是余弦相似度。
具体地,服务器可以分别获取各个目标特征点各自的特征描述子,并获取代表特征点的特征描述子,然后分别计算各个目标特征点各自的特征描述子和代表特征点的特征描述子之间的向量相似度,将各个向量相似度作为各自对应的目标特征点的匹配置信度。举例说明,假设某个特征点集合中包括图像特征点A1、B1和C1,其中C1为代表特征点,则可以分别获取A1、B1和C1各自的特征描述子,计算图像特征点A1的特征描述子与代表特征点C1之间的向量相似度,作为图像特征点A1和代表特征点C1之间的匹配置信度,计算图像特征点B1的特征描述子与代表特征点C1之间的向量相似度,作为图像特征点B1和代表特征点C1之间的匹配置信度。
上述实施例中,通过计算特征描述子之间的向量相似度作为匹配置信度,由于特征描述子是对图像特征点进行描述的,因此得到的匹配置信度更加准确。
在一个实施例中,从特征点集合中确定代表特征点,包括:基于特征点集合中的各个图像特征点在所属图像中的位置,计算特征点集合对应的平均特征点位置;从特征点集合中确定与平均特征点位置之间的距离满足距离条件的图像特征点,将确定的图像特征点作为代表特征点。
其中,距离条件包括与平均特征点位置之间的距离小于或者距离阈值,或者按照与平均特征点位置之间的距离升序排列时排序在排序阈值之前中的其中一种。
具体地,对于每一个特征点集合,服务器可以获取该特征点集合中的各个图像特征点在所属图像中的位置,将同一维度的位置数值相加再求平均值得到该维度的目标数值,各个维度的目标数值即确定了该特征点集合对应的平均特征点位置。举例说明,假设某个特征点集合中包括图像特征点A1,B1和C1,其中A1在所属图像中的位置为(x1,y1),B1在所属图像中的位置为(x2,y2),C1在所属图像中的位置为(x3,y3),则该特征点集合对应的平均特征点位置为((x1+x2+x3)/3,(y1+y2+y3)/3)。
对于每一个特征点集合,服务器在计算得到该特征点集合对应的平均特征点位置后,可以计算该特征点集合中各个图像特征点的位置与该平均特征点位置之间的距离,根据计算得到的距离筛选满足距离条件的图像特征点,将筛选得到的图像特征点确定为代表特征点。
在一个具体的实施例中,距离条件包括与平均特征点位置之间的距离小于或者距离阈值,那么服务器在计算得到各个图像特征点与所属特征点集合对应的平均特征点位置之间的距离后,分别与距离阈值进行比较,若只有一个图像特征点与所属特征点集合对应的平均特征点位置之间的距离小于距离阈值,则将该图像特征点确定为代表特征点,若是有多个图像特征点与所属特征点集合对应的平均特征点位置之间的距离小于距离阈值,则可以在这些图像特征点中选择一个作为代表特征点,例如,可以选择距离最小的图像特征点作为代表特征点。
在另一个具体的实施例中,距离条件包括按照与平均特征点位置之间的距离升序排列时排序在排序阈值之前,那么服务器在计算得到各个图像特征点与所属特征点集合对应的平均特征点位置之间的距离后,可以按照距离对各个图像特征点进行升序排列,从排序在排序阈值之前的图像特征点中选择得到代表特征点,例如,排序阈值为2,则可以选择排序在第一位的图像特征点作为代表特征点。
上述实施例中,基于特征点集合中的各个图像特征点在所属图像中的位置,计算特征点集合对应的平均特征点位置,从特征点集合中确定与平均特征点位置之间的距离满足距离条件的图像特征点,将确定的图像特征点作为代表特征点,确定的代表特征点可以更好的体现特征点集合的整体位置特性。
在一个实施例中,特征点集合包括多个;从特征点集合中确定代表特征点,包括:对于每一个特征点集合,在特征点集合满足过滤条件的情况下,对特征点集合进行过滤;在特征点集合不满足过滤条件的情况下,进入从特征点集合中确定代表特征点的步骤。
本实施例中,过滤条件包括以下至少一种:基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄相机之间的距离大于第一预设距离阈值;基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄设备之间的距离小于第二预设距离阈值,第二预设距离阈值小于第一预设距离阈值;基于特征点集合计算得到的视差大于预设视差阈值;基于特征点集合计算得到的平均重投影误差大于预设误差阈值。
其中,初始空间特征点指的是基于未更新的特征点集合中各个图像特征点在所属图像的位置确定的空间特征点。对特征点集合进行过滤即从多个特征点集合中去除该特征点集合。
具体地,服务器可以计算初始空间特征点与多帧图像的拍摄设备之间的距离,若距离大于第一预设距离阈值,即空间特征点距离拍摄设备太远时,过滤该特征点集合;若距离小于第二预设距离阈值,即空间特征点距离拍摄设备太近时,过滤该特征点集合,第二预设距离阈值小于第一预设距离阈值。
进一步,服务器还可以基于特征点集合进行视差计算,若计算得到的视差大于预设视差阈值,则过滤掉该特征点集合。
进一步,服务器还可以将基于特征点集合计算得到的初始空间特征点投影至该特征点集合中各个图像特征点所属图像上,计算各个图像特征点与投影至各自所属图像上的投影特征点之间的距离,得到各个投影距离,然后计算投影距离的平均值,得到平均重投影误差,若平均重投影误差大于预设误差阈值,则过滤掉该特征点集合。
对于未被过滤的特征点集合,服务器可以进入上述步骤“从特征点集合中确定代表特征点”,以从这些特征点集合中确定代表特征点,从而通过上文实施例提供的方法对这些特征点集合的图像特征点进行位置优化,得到各个更新后的特征点集合,最终基于各个更新后的特征点集合中各个图像特征点在所属图像的位置,确定各个更新后的特征点集合对应的空间特征点,得到多个空间特征点从而生成特征地图。
上述实施例中,通过设置过滤条件,将满足过滤条件的特征点集合进行过滤,进一步提升了特征地图的鲁棒性,从而进一步提升了利用特征地图进行辅助定位时的定位精度。
在一个实施例中,如图4所示,基于空间特征点生成特征地图包括:
步骤402,基于更新后的特征点集合中各个图像特征点各自的特征描述子,确定更新后的特征点集合对应的平均描述子。
具体地,对于每一个更新后的特征点集合,服务器可以参考以下公式(2)计算得到该特征点集合对应的平均描述子:
其中,uj为平均描述子,j代表第j个特征点集合(更新后的特征点集合),f为第j个特征点集合中图像特征点的描述子,代表第j个特征点集合对应的特征描述子集合。
步骤404,从更新后的特征点集合中各个图像特征点各自的特征描述子中,选择与平均描述子之间的相似度满足相似度条件的特征描述子,将选择到的特征描述子作为参考描述子。
其中,相似度条件可以是相似度大于预设相似度阈值或者按照相似度降序排列时排序在排序阈值之前中的其中一种。
在一个具体的实施例中,相似度条件包括相似度大于预设相似度阈值,那么对于每一个更新后的特征点集合,服务器在计算得到该特征点集合对应的平均描述子后,分别计算该特征点集合中各个图像特征点的特征描述子与该平均描述子之间的相似度,然后将各个相似度分别与相似度阈值进行比较,若只有一个图像特征点对应的相似度大于预设相似度阈值,则将该图像特征点的特征描述子确定为参考描述子,若是有多个图像特征点对应的相似度均大于预设相似度阈值,则可以在这些图像特征点对应的特征描述子中选择一个作为参考描述子,例如,可以选择相似度最大的特征描述子作为参考描述子。
在另一个具体的实施例中,距离条件包括按照相似度降序排列时排序在排序阈值之前,那么对于每一个更新后的特征点集合,服务器在计算得到该特征点集合中各个图像特征点的特征描述子与该平均描述子之间的相似度后,可以按照相似度对各个图像特征点的特征描述子进行降序排列,从排序在排序阈值之前的特征描述子中选择得到参考描述子,例如,排序阈值为2,则可以选择排序在第一位的特征描述子作为参考描述子。
在另一个具体的实施例中,服务器可以参考以下公式(3)计算得到参考描述子:
其中,fj为参考描述子,j代表第j个特征点集合(更新后的特征点集合),f代表第j个特征点集合中图像特征点的描述子,代表第j个特征点集合对应的特征描述子集合。
步骤406,将空间特征点投影至更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于投影特征点在所属图像上的位置确定投影特征点对应的特征描述子。
步骤408,基于投影特征点对应的特征描述子和参考描述子之间的差异,确定投影特征点对应的重投影误差。
步骤410,统计各个投影特征点各自对应的重投影误差得到目标误差,基于目标误差迭代更新空间特征点,当满足迭代停止条件时,得到更新后的特征点集合对应的目标空间特征点,基于目标空间特征点生成特征地图。
具体地,对于每一个更新后的特征点集合,服务器在确定了其对应的空间特征点后,可以将该空间特征点投影至该特征点集合中各个图像特征点所属图像上,得到该空间特征点对应的多个投影特征点,进一步基于各个投影特征点在所属图像上的位置可以确定各个投影特征点各自对应的特征描述子,然后分别计算各个投影特征点和步骤404中计算得到的该更新后的特征点集合对应的参考描述子之间的差异,得到各个投影特征点各自对应的重投影误差,最后统计各个重投影误差得到该更新后的特征点集合对应的目标误差,朝着最小化该目标误差的方向迭代更新该更新后的特征点集合对应的空间特征点,即将更新得到的空间特征点作为当前空间特征点,再次进入步骤406中,不断重复步骤406-步骤410,直至满足迭代停止条件时,得到的空间特征点即为目标空间特征点,进而可以基于目标空间特征点生成特征地图。其中,迭代停止条件可以是目标误差达到最小值、迭代次数达到预设次数或者迭代时长达到预设时长中的其中一种。
在一个具体的实施例中,服务器在执行上述步骤406至步骤410时可以参考以下公式(4)计算得到目标误差:
其中,为目标误差,j为第j个特征点集合(更新后的特征点集合),Z(j)表示第j个特征点集合中各个图像特征点所属图像的集合,i表示第i帧图像,Ci表示第i帧图像对应的相机内参,Pj指的是第j个特征点集合对应的空间特征点,Ri为第i帧图像对应的旋转矩阵,ti为第i帧图像对应的平移矩阵,fj为第j个特征点集合对应的参考描述子。
上述实施例中,通过确定了参考描述子,将空间特征点投影至更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于投影特征点在所属图像上的位置确定投影特征点对应的特征描述子,基于投影特征点对应的特征描述子和参考描述子之间的差异,确定投影特征点对应的重投影误差,统计各个投影特征点各自对应的重投影误差得到目标误差,基于目标误差迭代更新空间特征点,当满足迭代停止条件时,得到目标空间特征点,实现了对空间特征点的位置优化,基于优化后得到的目标空间特征点生成的特征地图在用于定位时,可以进一步提升定位精度。
在一个实施例中,多帧图像是由安装于目标运动设备上的摄像头拍摄的;上述特征地图生成方法还包括:获取目标运动设备在拍摄多帧图像时的惯性测量数据和速度测量数据,利用惯性测量数据和速度测量数据,计算待定位的运动设备的初始位姿;基于惯性测量数据确定预积分信息,基于预积分信息和速度测量数据构建因子图,基于因子图对初始位姿进行调整,得到目标位姿;基于空间特征点生成特征地图,包括:建立空间特征点和目标位姿之间的对应关系,基于对应关系和空间特征点生成特征地图。
在一个实施例中,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子,包括:将图像输入已训练的特征提取模型中,通过特征提取模型输出图像特征点对应的第一张量以及特征描述子对应的第二张量;第一张量用于描述图像中各个区域出现特征点的可能性;基于第一张量对图像进行非极大值抑制处理,以从图像中确定图像的图像特征点;将第二张量转换为与图像尺寸一致的第三张量,将第三张量中与图像特征点在所属图像中的位置匹配处的向量确定为图像特征点对应的描述子。
具体地,服务器将图像输入已训练的特征提取模型中,通过特征提取模型输出图像特征点对应的第一张量以及特征描述子对应的第二张量,该第一张量和第二张量均为多通道的张量,并且在每一个通道上的尺寸都是小于原始的输入图像的,其中第一张量中各个位置的值用于描述原始的输入图像中各个对应区域出现特征点的可能性,即概率值。举例说明,假设输入特征提取模型的图像尺寸为HxW,则输出的第一张量可以为H/N1 x W/N1x X1,第二张量可以为H/N2 x W/N2 x X2,其中N1、N2、X1以及X2均为大于1的正整数。
在一个实施例中,在基于第一张量对图像进行非极大值抑制处理时,服务器可以首先将第一张量转换成与输入图像尺寸相同的概率图,在该概率图中搜索局部最大值,将局部最大值所在的位置确定为目标位置,由于该概率图和输入图像的尺寸是一致的,从而可以直接将输入图像中与该目标位置相同位置处的像素点确定为输入图像的图像特征点。
在另一个实施例中,考虑到将第一张量转换成与输入图像尺寸相同的概率图这一过程比较耗时,在基于第一张量对图像进行非极大值抑制处理时,服务器可以通过以下步骤实现:
1、沿多个通道的方向获取第一张量在各个位置处的最大值以及各个最大值对应的通道索引,分别得到第三张量和第四张量。
具体地,假设第一张量包括N(N大于或者等于2)个通道,则对于第一张量中的每一个像素位置,服务器可以沿N个通道的方向搜索最大值,将各个像素位置处搜索到的最大值作为第三张量中对应位置处的数值,从而可以得到第三张量,同时将各个像素位置处搜索到的最大值所在通道索引作为第三张量中对应位置处的数值,从而可以得到第四张量。
2、从第三张量中确定目标数值,并对第三张量中目标数值所在位置的邻域进行搜索,目标数值所在位置的邻域包括多个目标位置,目标位置在图像中的对应位置,与目标数值所在位置在图像中的对应位置之间的图像距离小于预设距离阈值。
具体地,服务器可以将第三张量中各个数值按照从小到大进行排序,得到数值集合,然后依次遍历数值集合中的各个数值,对于遍历到的数值,判断是否小于预设阈值,如果小于预设阈值,则继续遍历下一个数值,如果大于预设阈值,则将遍历到的数值确定为目标数值,从而第三张量中目标数值所在位置的邻域进行搜索。由于第三张量相对于原始的输入图像尺寸是减小的,而图像特征点指的是输入图像中的像素点,因此目标数值所在位置的邻域需要根据目标数值在第三张量中的像素位置在原始的输入图像中的对应位置进行确定,也就是说,如果目标数值所在位置的邻域包括多个目标位置,那么其中每一个目标位置在输入图像中的对应位置,与目标数值所在位置在图像中的对应位置之间的图像距离小于预设距离阈值,即每一个目标位置在输入图像中的对应位置落在目标数值所在位置在图像中的对应位置的邻域范围内。举例说明,如图5所示,假设目标数值所在位置为A点,A点在输入图像中的对应位置为B点,如果图5中的虚线框代表B点的邻域,则A点在第三张量中的邻域内的每个目标位置在输入图像中的对应位置都落在该虚线框内。
在一个实施例中,考虑到第一张量中不同的通道提取的特征是不相同的,那么第三张量中的像素位置在原始图像中的对应位置与该像素位置所在的通道是相关,对于第三张量中的像素位置(i,j),从第四张量中对应位置处确定索引值为D[i,j],则其在原始图像中的对应位置为(N x i+D[i,j]/8,Nx j+D[i,j]%8),其中N为第三张量相对于原始输入图像的缩小比例。举例说明,假设原始的输入图像是640x480,第一张量是80x60x64,第二张量是80x60x256,第三张量是80x60(每个数值表示第一张量64维度最大值,小数类型),D是80x60(每个数值表示第一张量64维度最大值对应索引,整数类型),第一张量64维度对应原图每8x8区域,那么第一张量的一个坐标(32,53,35)对应原图上坐标是(32x8+35/8,53x8+35%8)=(260,427)。
因此,可以通过计算两个像素位置在第四张量中对应位置之间的距离,作为这两个像素位置在原始的输入图像中对应位置之间的距离。举例说明,对于第三张量中某个像素位置(i,j)和另外一个像素位置(i+n,j+n),这两个像素位置在原始图像上对应位置之间的距离可以通过计算第四张量中像素位置(i,j)和像素位置(i+n,j+n)之间的距离得到。
3、在搜索结果指示目标数值大于邻域内的其他位置对应的数值的情况下,将图像中与目标数值所在位置相对应的目标像素点确定为图像的图像特征点。
其中,目标像素点是基于目标数值所在位置及对应的通道索引值从图像中确定的,通道索引值是基于目标数值所在位置从第四张量中确定。举例说明,假设第三张量中某个目标数值所在像素位置坐标为(i,j),那么该像素位置在第四张量中的对应位置同样为(i,j),假设第四张量中该位置处的数值为D[i,j],则在搜索结果指示目标数值大于邻域内的其他位置对应的数值的情况下,将原始的输入图像中坐标为(N x i+D[i,j]/8,Nx j+D[i,j]%8)的像素点确定为与目标数值所在位置相对应的目标像素点,其中N为第三张量相对于原始输入图像的缩小比例。
在一个具体的实施例中,上述实施例中的特征提取模型的具体结构可以如图6所示,其中,第一卷积块为3*3的全卷积层,步长stride=1,输出通道为64;第一池化块为3*3的最大池化层,步长stride=1,输出通道为64;第二卷积块为3*3的全卷积层,步长stride=2,输出通道为64;第三卷积块为3*3的全卷积层,步长stride=1,输出通道为64;第四卷积块为3*3的全卷积层,步长stride=2,输出通道为64;第五卷积块为3*3的全卷积层,步长stride=1,输出通道为64;第六卷积块为3*3的全卷积层,步长stride=2,输出通道为128;第七卷积块为3*3的全卷积层,步长stride=1,输出通道为128;第八卷积块为3*3的全卷积层,步长stride=1,输出通道为128;第九卷积块为3*3的全卷积层,步长stride=1,输出通道为128;第十卷积块为1*1的全卷积层,步长stride=2,输出通道为64;第十一卷积块为1*1的全卷积层,步长stride=2,输出通道为64;第十二卷积块为1*1的全卷积层,步长stride=2,输出通道为128;第十三卷积块为1*1的全卷积层,步长stride=2,输出通道为128;第十四卷积块为3*3的全卷积层,步长stride=1,输出通道为128;第十五卷积块为3*3的全卷积层,步长stride=1,输出通道为64;第十六卷积块为3*3的全卷积层,步长stride=1,输出通道为128;第十七卷积块为3*3的全卷积层,步长stride=1,输出通道为256。
假设输入图像维度为HxW,特征提取模型的第十五卷积块输出是特征点的张量A,维度是H/8xW/8x64,右边输出的是描述子的张量B,维度是H/8xW/8x256。则提取特征点和描述子的具体步骤如下:
1、沿着64通道维度,获取最大值以及最大值对应的索引,由此可得到两个H/8xW/8的张量C和D。
2、对张量C中的概率值做从大到小排列为集合E,设定目标集合F,用于存放特征点下标和置信度。
3、遍历集合E,并获取对应值在张量D中的下标i和j。
4、如果C[i,j]小于一定阀值(例如可以是0.05)跳过。
5、对C[i,j]的邻域n进行遍历。
6、计算D[i+n,j+n](或D[i-n,j-n])与D[i,j]的距离,也就是原图上坐标(8x(i+n)+D[i+n,j+n]/8,8x(j+n)+D[i+n,j+n]%8)和坐标(8x i+D[i,j]/8,8x j+D[i,j]%8)之间的距离,如果大于一定阀值则跳过。
7、如果C[i+n,j+n](或C[i-n,j-n])大于C[i,j],则退出步骤5的遍历,否则继续执行步骤5。
8、如果步骤5执行完,且C[i,j]大于任意的C[i+n,j+n](或C[i-n,j-n]),则将C[i,j]和(ix8+D[i,j]/8,jx8+D[i,j]%8)放在目标集合F中。
9、继续执行步骤3。
10、对张量B进行双线性插值,得到张量G,维度为HxWx256,并且沿着通道方向进行L2范数计算。
11、根据目标集合F的结果去张量G中寻找对应的描述子,即对于目标集合F中的每一个图像特征点的下标,从张量G中找到与之下标相同的位置,将该位置处各个通道的值所组成的向量作为该图像特征点的特征描述子,则特征描述子为256维的向量。例如,对于目标集合F中的某个图像特征点的下标(10,13),从张量G中找到与(10,13)所在位置,将该位置处各个通道的值所组成的向量确定为该图像特征点的特征描述子。
上述实施例中,由于不需要将第一张量转换成与输入图像尺寸相同的概率图,提高了图像特征点的提取效率。
在一个实施例中,获得针对目标场景拍摄得到的多帧图像,包括:获得由鱼眼相机拍摄的针对目标场景的多帧原始图像,对多帧原始图像进行畸变矫正,得到针对目标场景拍摄得到的多帧图像。
本实施例中,服务器获得的针对目标场景拍摄得到的多帧图像时通过鱼眼相机拍摄得到的,鱼眼相机成像模型近似为单位球面投影模型。一般将鱼眼相机成像过程分解成两步:先将三维空间点线性的投影到虚拟单位球面上;随后将单位球面上的点投影到图像平面上,这个过程是非线性的。鱼眼相机的设计引入了畸变,因此鱼眼相机所成影像存在畸变,其中径向畸变非常严重,因此其畸变模型主要考虑径向畸变。鱼眼相机的投影函数是为了尽可能将庞大的场景投影到有限的图像平面所设计的。根据投影函数的不同将鱼眼相机的设计模型大致分为等距投影模型、等立体角投影模型、正交投影模型和体视投影模型四种。本申请实施例中,可以采用这四种模型中的任意一种对鱼眼相机拍摄得到的多帧原始图像进行畸变矫正,得到针对目标场景拍摄得到的多帧图像。
上述实施例中,由于多帧图像是由鱼眼相机拍摄得到的,鱼眼相机相较于针孔相机视角更大,可以感知更多的环境信息,提取更多的图像特征点,从而进一步提升所生成的特征地图的鲁棒性,进而提升定位精度。
在一个实施例中,如图7所示,为应用本申请实施例生成的特征地图进行定位信息确定的流程示意图,包括以下步骤:
步骤702,获取待定位的运动设备的惯性测量数据、速度测量数据以及运动设备在目标场景中拍摄得到的目标图像,利用惯性测量数据和速度测量数据确定待定位的运动设备的初始位姿。
其中,惯性测量数据可以是通过(Inertial Measurement Unit,IMU)测量得到的数据。速度测量数据可以是通过速度传感器测量得到数据,例如,当待定位的运动设备为车辆时,速度测量数据可以是通过轮速计测量得到的数据。这里的惯性测量数据以及速度测量数据均是在待定位的运动设备在目标场景中运动时测量得到的数据。
具体地,服务器可以接收待定位的运动设备发送的惯性测量数据、速度测量数据以及待定位的运动设备在目标场景中拍摄得到的目标图像,基于预设的运动学模型,利用惯性测量数据和速度测量数据计算待定位的运动设备的初始位姿。其中,预设的运动学模型可以反映车辆位置、速度、加速度等与时间的关系,本实施例对该模型的具体形式不作限定,在实际应用中,可以根据需求进行合理设置,例如可以在现有的单车模型上进行改进,得到所需模型。
步骤704,基于初始位姿从已生成的特征地图中确定位置匹配的空间特征点,得到目标空间特征点。
在一个实施例中,服务器可以根据初始位姿所表征的位置从特征地图中找到位置匹配的空间特征点,作为目标空间特征点。在其他实施例中,特征地图中还包括保存各个空间特征点对应的位姿,空间特征点对应的位姿可以是在生成特征地图的过程中,运动设备在拍摄多帧图像时的位姿,进而在确定定位信息的过程中,服务器可以将待定位的运动设备的初始位姿和各个空间特征点各自对应的位姿进行比对,将匹配度最高的位姿对应的空间特征点确定为目标特征点。
步骤706,从目标图像上确定与目标空间特征点匹配的图像特征点,将确定的图像特征点与目标空间特征点组成匹配对,根据匹配对确定运动设备的定位信息。
具体地,服务器可以将目标空间特征点对应的描述子和目标图像上各个图像特征点各自对应的特征描述子进行比对,将相似度最高的特征描述子对应的图像特征点确定为与目标空间特征点匹配的图像特征点,将确定的图像特征点与目标空间特征点组成匹配对,进而可以根据匹配对确定运动设备的定位信息。其中,目标空间特征点对应的描述子可以是目标空间特征点对应的特征点集合中各个图像特征点的特征描述子的平均值。
在一个实施例中,基于匹配对确定定位信息具体可以采用PnP算法,PnP算法是一种现有方法,此处不作详细阐述。在另一个实施例中,基于匹配对确定定位信息具体包括:将匹配对中的空间特征点投影到目标图像上,得到投影特征点,通过投影特征点和匹配对中的图像特征点,计算重投影误差,将重投影误差的最小二乘函数取值最小时对应的位姿,确定为修正位姿,通过所述修正位姿对所述初始位姿进行修正,得到定位信息。进一步地,服务器可以将定位信息返回至待定位的运动设备。
上述实施例中,由于在生成特征地图的过程中,基于图像特征点的特征描述子对图像特征点进行了位置优化,生成的特征地图更加鲁棒,从而利用该特征地图在定位的过程中定位精度得到了大大提升。
在一个具体的实施例中,本申请的特征地图生成方法可以应用于泊车应用场景中,具体包括以下步骤:
一、服务器生成特征地图
1、获得由鱼眼相机拍摄的针对目标场景的多帧原始图像,对多帧原始图像进行畸变矫正,得到针对目标场景拍摄得到的多帧图像。
具体地,安装有鱼眼相机的目标车辆可以在车库中行驶,通过鱼眼相机对车库中的环境进行拍摄,得到多帧原始图像,并发送至服务器,服务器对多帧原始图像进行畸变矫正,得到针对目标场景拍摄得到的多帧图像。
需要说明的是,这里的目标车辆与需要泊车的车辆可以是相同的车辆,也可以是不同的车辆。
2、从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子。
具体地,对于每一帧图像,服务器可以将该图像输入已训练的特征提取模型中,通过特征提取模型输出图像特征点对应的第一张量以及特征描述子对应的第二张量;第一张量用于描述图像中各个区域出现特征点的可能性;基于第一张量对图像进行非极大值抑制处理,以从图像中确定图像的图像特征点;将第二张量转换为与图像尺寸一致的第三张量,将第三张量中与图像特征点在所属图像中的位置匹配处的向量确定为图像特征点对应的描述子。
其中,第一张量包括多个通道,基于第一张量对图像进行非极大值抑制处理,以从图像中确定图像的图像特征点,包括:沿多个通道的方向获取第一张量在各个位置处的最大值以及各个最大值对应的通道索引,分别得到第三张量和第四张量;从第三张量中确定目标数值,并对第三张量中目标数值所在位置的邻域进行搜索,目标数值所在位置的邻域包括多个目标位置,目标位置在图像中的对应位置,与目标数值所在位置在图像中的对应位置之间的图像距离小于预设距离阈值;在搜索结果指示目标数值大于邻域内的其他位置对应的数值的情况下,将图像中与目标数值所在位置相对应的目标像素点确定为图像的图像特征点;目标像素点是基于目标数值所在位置及对应的通道索引值从图像中确定的,通道索引值是基于目标数值所在位置从第四张量中确定。
3、将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合。
4、对于每一个特征点集合,在该特征点集合满足过滤条件的情况下,对特征点集合进行过滤;在该特征点集合不满足过滤条件的情况下,进入步骤5。其中,过滤条件包括以下至少一种:基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄设备之间的距离大于第一预设距离阈值;基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄设备之间的距离小于第二预设距离阈值,第二预设距离阈值小于第一预设距离阈值;基于特征点集合计算得到的视差大于预设视差阈值;基于特征点集合计算得到的平均重投影误差大于预设误差阈值。
5、从该特征点集合中确定代表特征点,计算该特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异。
具体地,服务器通过以下步骤从特征点集合中确定代表特征点:基于特征点集合中的各个图像特征点在所属图像中的位置,计算特征点集合对应的平均特征点位置;从特征点集合中确定与平均特征点位置之间的距离满足距离条件的图像特征点,将确定的图像特征点作为代表特征点;其中,距离条件包括与平均特征点位置之间的距离小于或者距离阈值,或者按照与平均特征点位置之间的距离升序排列时排序在排序阈值之前中的其中一种。
6、将该特征点集合中各个剩余的图像特征点分别作为目标特征点,分别计算各个目标特征点和代表特征点之间的匹配置信度,基于各个目标特征点各自对应的匹配置信度和差异,计算各个目标特征点各自对应的位置误差,统计各个目标特征点各自对应的位置误差,得到该特征点集合的位置误差。
其中,分别计算各个目标特征点和代表特征点之间的匹配置信度,包括:分别获取各个目标特征点各自的特征描述子,并获取代表特征点的特征描述子;分别计算各个目标特征点各自的特征描述子和代表特征点的特征描述子之间的向量相似度,将各个向量相似度作为各自对应的目标特征点与代表特征点之间的匹配置信度。
7、基于位置误差迭代更新该特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合。
具体地,服务器可以朝着最小化位置误差的方向,采用梯度下降算法更新该特征点集合中剩余的图像特征点的位置,从第三张量中确定所得到的图像特征点对应的描述子,然后重新计算位置误差,不断地重复该过程,直至满足迭代停止条件。
通过以上步骤,可以得到多个更新后的特征点集合,服务器可以再次判断这些特征点集合中是否存在满足过滤条件的特征点集合,对于满足过滤条件的特征点集合进行过滤,对过滤后剩下的特征点集合,继续执行后续步骤。过滤条件可以参考上文实施例中的描述。
8、基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,从而可以得到多个空间特征点。
9、对每一个空间特征点进行位置优化,具体包括以下步骤:
9.1、对于每一个空间特征点,基于该空间特征点对应的更新后的特征点集合中各个图像特征点各自的特征描述子,确定更新后的特征点集合对应的平均描述子。
9.2、从更新后的特征点集合中各个图像特征点各自的特征描述子中,选择与平均描述子之间的相似度满足相似度条件的特征描述子,将选择到的特征描述子作为参考描述子。
9.3、将空间特征点投影至更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于投影特征点在所属图像上的位置确定投影特征点对应的特征描述子。
9.4、基于投影特征点对应的特征描述子和参考描述子之间的差异,确定投影特征点对应的重投影误差。
9.5、统计各个投影特征点各自对应的重投影误差得到目标误差,基于目标误差迭代更新空间特征点,当满足迭代停止条件时,得到目标空间特征点,该目标特征点即为位置优化后的空间特征点。
10、基于优化后得到的各个目标空间特征点生成特征地图,保存该特征地图。
二、基于特征地图进行泊车
1、需要泊车的车辆在驶入车库入口时,可以从服务器下载该特征地图,用户可以输入所要泊车的目标车位位置,从而车辆可以基于特征地图为用户规划从车库入口至目标车位位置的泊车路线。
2、车辆按照规划的泊车路线自动行驶,在行驶过程中,车辆按照以下方式进行定位:
2.1、通过IMU获得当前惯性测量数据、通过轮速传感器获得当前速度测量数据以及通过安装于该车辆上的摄像机拍摄得到当前目标图像。
2.2、利用惯性测量数据和速度测量数据确定当前初始位姿。
2.3、基于当前初始位姿从保存的特征地图中确定位置匹配的空间特征点,得到目标空间特征点。
3.4、从目标图像上确定与目标空间特征点匹配的图像特征点,将确定的图像特征点与目标空间特征点组成匹配对,根据匹配对确定当前位置。
4、当当前位置达到目标车位位置处时,自动驶入该目标车位位置处,完成泊车。
在另一个具体的实施例中,本申请的特征地图生成方法可以应用于扫地机器人自动清扫的应用场景中,在该应用场景中,扫地机器人首先在需要清扫的区域内行走,采集该区域内的多帧图像,按照本申请实施例提供的特征地图生成方法生成特征地图,进而,在后续的自动清扫过程中,可以通过特征地图规划清扫路线,在自动清扫的过程中,基于特征地图进行自动定位,以按照规划的清扫路线执行清扫任务。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的特征地图生成方法的特征地图生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个特征地图生成装置、定位信息确定装置实施例中的具体限定可以参见上文中对于特征地图生成方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种特征地图生成装置800,包括:
特征提取模块802,用于获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子;
特征点集合确定模块804,用于将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;
差异计算模块806,从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异;
位置更新模块808,用于基于计算得到的差异确定特征点集合的位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;
特征地图生成模块810,用于基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,基于空间特征点生成特征地图,特征地图用于对待定位的运动设备在目标场景中进行定位。
上述特征地图生成装置,通过获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的图像特征点在所属图像的位置确定对应的特征描述子,将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合,从特征点集合中确定代表特征点,计算特征点集合中剩余的图像特征点对应的特征描述子与代表特征点对应的特征描述子之间的差异,基于计算得到的差异确定特征点集合的位置误差,基于位置误差迭代更新特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;基于更新后的特征点集合中各个图像特征点在所属图像的位置,确定更新后的特征点集合对应的空间特征点,基于空间特征点生成特征地图,由于在生成特征地图的过程中,基于图像特征点的特征描述子对图像特征点进行了位置优化,可以使得生成的特征地图更加鲁棒,从而利用该特征地图在定位的过程中定位精度得到了大大提升。
在一个实施例中,位置更新模块808,用于将特征点集合中各个剩余的图像特征点分别作为目标特征点,分别计算各个目标特征点和代表特征点之间的匹配置信度;基于各个目标特征点各自对应的匹配置信度和差异,计算各个目标特征点各自对应的位置误差;统计各个目标特征点各自对应的位置误差,得到特征点集合的位置误差。
在一个实施例中,位置更新模块808,还用于分别获取各个目标特征点各自的特征描述子,并获取代表特征点的特征描述子;分别计算各个目标特征点各自的特征描述子和代表特征点的特征描述子之间的向量相似度,将各个向量相似度作为各自对应的目标特征点与代表特征点之间的匹配置信度。
在一个实施例中,差异计算模块806,还用于基于特征点集合中的各个图像特征点在所属图像中的位置,计算特征点集合对应的平均特征点位置;从特征点集合中确定与平均特征点位置之间的距离满足距离条件的图像特征点,将确定的图像特征点作为代表特征点;其中,距离条件包括与平均特征点位置之间的距离小于或者距离阈值,或者按照与平均特征点位置之间的距离升序排列时排序在排序阈值之前中的其中一种。
在一个实施例中,特征点集合包括多个;差异计算模块806,还用于对于每一个特征点集合,在特征点集合满足过滤条件的情况下,对特征点集合进行过滤;在特征点集合不满足过滤条件的情况下,进入从特征点集合中确定代表特征点的步骤;其中,过滤条件包括以下至少一种:基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄设备之间的距离大于第一预设距离阈值;基于特征点集合计算得到的初始空间特征点与多帧图像的拍摄设备之间的距离小于第二预设距离阈值,第二预设距离阈值小于第一预设距离阈值基于特征点集合计算得到的视差大于预设视差阈值;基于特征点集合计算得到的平均重投影误差大于预设误差阈值。
在一个实施例中,特征地图生成模块,还用于:基于更新后的特征点集合中各个图像特征点各自的特征描述子,确定更新后的特征点集合对应的平均描述子;从更新后的特征点集合中各个图像特征点各自的特征描述子中,选择与平均描述子之间的相似度满足相似度条件的特征描述子,将选择到的特征描述子作为参考描述子;将空间特征点投影至更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于投影特征点在所属图像上的位置确定投影特征点对应的特征描述子;基于投影特征点对应的特征描述子和参考描述子之间的差异,确定投影特征点对应的重投影误差;统计各个投影特征点各自对应的重投影误差得到目标误差,基于目标误差迭代更新空间特征点,当满足迭代停止条件时,得到更新后的特征点集合对应的目标空间特征点,基于目标空间特征点生成特征地图。
在一个实施例中,特征提取模块,还用于将图像输入已训练的特征提取模型中,通过特征提取模型输出图像特征点对应的第一张量以及特征描述子对应的第二张量;第一张量用于描述图像中各个区域出现特征点的可能性;基于第一张量对图像进行非极大值抑制处理,以从图像中确定图像的图像特征点;将第二张量转换为与图像尺寸一致的第三张量,将第三张量中与图像特征点在所属图像中的位置匹配处的向量确定为图像特征点对应的描述子。
在一个实施例中,第一张量包括多个通道,特征提取模块,还用于:沿多个通道的方向获取第一张量在各个位置处的最大值以及各个最大值对应的通道索引,分别得到第三张量和第四张量;从第三张量中确定目标数值,并对第三张量中目标数值所在位置的邻域进行搜索,目标数值所在位置的邻域包括多个目标位置,目标位置在图像中的对应位置,与目标数值所在位置在图像中的对应位置之间的图像距离小于预设距离阈值;在搜索结果指示目标数值大于邻域内的其他位置对应的数值的情况下,将图像中与目标数值所在位置相对应的目标像素点确定为图像的图像特征点;目标像素点是基于目标数值所在位置及对应的通道索引值从图像中确定的,通道索引值是基于目标数值所在位置从第四张量中确定。
在一个实施例中,特征提取模块,还用于:获得由鱼眼相机拍摄的针对目标场景的多帧原始图像,对多帧原始图像进行畸变矫正,得到针对目标场景拍摄得到的多帧图像。
在一个实施例中,上述装置还包括:定位信息确定模块,用于初始获取待定位的运动设备的惯性测量数据、速度测量数据以及运动设备在目标场景中拍摄得到的目标图像,利用惯性测量数据和速度测量数据确定待定位的运动设备的初始位姿;基于初始位姿从已生成的特征地图中确定位置匹配的空间特征点,得到目标空间特征点;从目标图像上确定与目标空间特征点匹配的图像特征点,将确定的图像特征点与目标空间特征点组成匹配对,根据匹配对确定运动设备的定位信息。
上述特征地图生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储特征地图数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种特征地图生成方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是安装于上述运动设备内的终端,例如可以是车载终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种特征地图生成方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9、图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述特征地图生成方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述特征地图生成方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述特征地图生成方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种特征地图生成方法,其特征在于,所述方法包括:
获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的所述图像特征点在所属图像的位置确定对应的特征描述子;
将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;
从所述特征点集合中确定代表特征点,计算所述特征点集合中剩余的图像特征点对应的特征描述子与所述代表特征点对应的特征描述子之间的差异;
基于计算得到的差异确定所述特征点集合的位置误差,基于所述位置误差迭代更新所述特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;
基于所述更新后的特征点集合中各个图像特征点在所属图像的位置,确定所述更新后的特征点集合对应的空间特征点,基于所述空间特征点生成特征地图,所述特征地图用于对待定位的运动设备在所述目标场景中进行定位。
2.根据权利要求1所述的方法,其特征在于,所述基于计算得到的差异确定所述特征点集合的位置误差,包括:
将所述特征点集合中各个剩余的图像特征点分别作为目标特征点,分别计算各个所述目标特征点和所述代表特征点之间的匹配置信度;
基于各个所述目标特征点各自对应的匹配置信度和差异,计算各个所述目标特征点各自对应的位置误差;
统计各个所述目标特征点各自对应的位置误差,得到所述特征点集合的位置误差。
3.根据权利要求2所述的方法,其特征在于,所述分别计算各个所述目标特征点和所述代表特征点之间的匹配置信度,包括:
分别获取各个所述目标特征点各自的特征描述子,并获取所述代表特征点的特征描述子;
分别计算各个所述目标特征点各自的特征描述子和所述代表特征点的特征描述子之间的向量相似度,将各个向量相似度作为各自对应的目标特征点与所述代表特征点之间的匹配置信度。
4.根据权利要求1所述的方法,其特征在于,所述从所述特征点集合中确定代表特征点,包括:
基于所述特征点集合中的各个图像特征点在所属图像中的位置,计算所述特征点集合对应的平均特征点位置;
从所述特征点集合中确定与所述平均特征点位置之间的距离满足距离条件的图像特征点,将确定的图像特征点作为代表特征点;
其中,所述距离条件包括与所述平均特征点位置之间的距离小于或者距离阈值,或者按照与所述平均特征点位置之间的距离升序排列时排序在排序阈值之前中的其中一种。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述特征点集合包括多个;所述从所述特征点集合中确定代表特征点,包括:
对于每一个特征点集合,在所述特征点集合满足过滤条件的情况下,对所述特征点集合进行过滤;
在所述特征点集合不满足过滤条件的情况下,进入所述从所述特征点集合中确定代表特征点的步骤;
其中,所述过滤条件包括以下至少一种:
基于所述特征点集合计算得到的初始空间特征点与所述多帧图像的拍摄设备之间的距离大于第一预设距离阈值;
基于所述特征点集合计算得到的初始空间特征点与所述多帧图像的拍摄设备之间的距离小于第二预设距离阈值,所述第二预设距离阈值小于所述第一预设距离阈值;
基于所述特征点集合计算得到的视差大于预设视差阈值;
基于所述特征点集合计算得到的平均重投影误差大于预设误差阈值。
6.根据权利要求1所述的方法,其特征在于,所述基于所述空间特征点生成特征地图,包括:
基于所述更新后的特征点集合中各个图像特征点各自的特征描述子,确定所述更新后的特征点集合对应的平均描述子;
从所述更新后的特征点集合中各个图像特征点各自的特征描述子中,选择与所述平均描述子之间的相似度满足相似度条件的特征描述子,将选择到的特征描述子作为参考描述子;
将所述空间特征点投影至所述更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于所述投影特征点在所属图像上的位置确定所述投影特征点对应的特征描述子;
基于所述投影特征点对应的特征描述子和所述参考描述子之间的差异,确定所述投影特征点对应的重投影误差;
统计各个投影特征点各自对应的重投影误差得到目标误差,基于所述目标误差迭代更新所述空间特征点,当满足迭代停止条件时,得到所述更新后的特征点集合对应的目标空间特征点,基于所述目标空间特征点生成特征地图。
7.根据权利要求1所述的方法,其特征在于,所述从各帧图像上分别提取图像特征点,基于提取的所述图像特征点在所属图像的位置确定对应的特征描述子,包括:
将所述图像输入已训练的特征提取模型中,通过所述特征提取模型输出图像特征点对应的第一张量以及特征描述子对应的第二张量;所述第一张量用于描述所述图像中各个区域出现特征点的可能性;
基于所述第一张量对所述图像进行非极大值抑制处理,以从所述图像中确定所述图像的图像特征点;
将所述第二张量转换为与所述图像尺寸一致的第三张量,将所述第三张量中与所述图像特征点在所属图像中的位置匹配处的向量确定为所述图像特征点对应的描述子。
8.根据权利要求7所述的方法,其特征在于,所述第一张量包括多个通道,所述基于所述第一张量对所述图像进行非极大值抑制处理,以从所述图像中确定所述图像的图像特征点,包括:
沿所述多个通道的方向获取所述第一张量在各个位置处的最大值以及各个最大值对应的通道索引,分别得到第三张量和第四张量;
从所述第三张量中确定目标数值,并对所述第三张量中所述目标数值所在位置的邻域进行搜索,所述目标数值所在位置的邻域包括多个目标位置,所述目标位置在所述图像中的对应位置,与所述目标数值所在位置在所述图像中的对应位置之间的图像距离小于预设距离阈值;
在搜索结果指示所述目标数值大于所述邻域内的其他位置对应的数值的情况下,将所述图像中与所述目标数值所在位置相对应的目标像素点确定为所述图像的图像特征点;
所述目标像素点是基于所述目标数值所在位置及对应的通道索引值从所述图像中确定的,所述通道索引值是基于所述目标数值所在位置从所述第四张量中确定。
9.根据权利要求1至8任意一项所述的方法,其特征在于,所述获得针对目标场景拍摄得到的多帧图像,包括:
获得由鱼眼相机拍摄的针对目标场景的多帧原始图像,对所述多帧原始图像进行畸变矫正,得到所述针对目标场景拍摄得到的多帧图像。
10.根据权利要求1至9任意一项所述的方法,其特征在于,所述方法包括:
获取待定位的运动设备的惯性测量数据、速度测量数据以及所述运动设备在目标场景中拍摄得到的目标图像,利用所述惯性测量数据和所述速度测量数据确定所述待定位的运动设备的初始位姿;
基于所述初始位姿从所述特征地图中确定位置匹配的空间特征点,得到目标空间特征点;
从所述目标图像上确定与所述目标空间特征点匹配的图像特征点,将确定的所述图像特征点与所述目标空间特征点组成匹配对,根据所述匹配对确定所述运动设备的定位信息。
11.一种特征地图生成装置,其特征在于,所述装置包括:
特征提取模块,用于获得针对目标场景拍摄得到的多帧图像,从各帧图像上分别提取图像特征点,基于提取的所述图像特征点在所属图像的位置确定对应的特征描述子;
特征点集合确定模块,用于将各帧图像的图像特征点中具有匹配关系的图像特征点,组成特征点集合;
差异计算模块,从所述特征点集合中确定代表特征点,计算所述特征点集合中剩余的图像特征点对应的特征描述子与所述代表特征点对应的特征描述子之间的差异;
位置更新模块,用于基于计算得到的差异确定所述特征点集合的位置误差,基于所述位置误差迭代更新所述特征点集合中剩余的图像特征点,当满足迭代停止条件时,得到更新后的特征点集合;
特征地图生成模块,用于基于所述更新后的特征点集合中各个图像特征点在所属图像的位置,确定所述更新后的特征点集合对应的空间特征点,基于所述空间特征点生成特征地图,所述特征地图用于对待定位的运动设备在所述目标场景中进行定位。
12.根据权利要求11所述的装置,其特征在于,所述特征地图生成模块还用于:
基于所述更新后的特征点集合中各个图像特征点各自的特征描述子,确定所述更新后的特征点集合对应的平均描述子;
从所述更新后的特征点集合中各个图像特征点各自的特征描述子中,选择与所述平均描述子之间的相似度满足相似度条件的特征描述子,将选择到的特征描述子作为参考描述子;
将所述空间特征点投影至所述更新后的特征点集合中各个图像特征点所属图像上,得到多个投影特征点,基于所述投影特征点在所属图像上的位置确定所述投影特征点对应的特征描述子;
基于所述投影特征点对应的特征描述子和所述参考描述子之间的差异,确定所述投影特征点对应的重投影误差;
统计各个投影特征点各自对应的重投影误差得到目标误差,基于所述目标误差迭代更新所述空间特征点,当满足迭代停止条件时,得到所述更新后的特征点集合对应的目标空间特征点,基于所述目标空间特征点生成特征地图。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210945938.5A CN117576494A (zh) | 2022-08-08 | 2022-08-08 | 特征地图生成方法、装置、存储介质和计算机设备 |
PCT/CN2023/097112 WO2024032101A1 (zh) | 2022-08-08 | 2023-05-30 | 特征地图生成方法、装置、存储介质和计算机设备 |
US18/633,850 US20240257501A1 (en) | 2022-08-08 | 2024-04-12 | Feature map generation method and apparatus, storage medium, and computer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210945938.5A CN117576494A (zh) | 2022-08-08 | 2022-08-08 | 特征地图生成方法、装置、存储介质和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117576494A true CN117576494A (zh) | 2024-02-20 |
Family
ID=89850552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210945938.5A Pending CN117576494A (zh) | 2022-08-08 | 2022-08-08 | 特征地图生成方法、装置、存储介质和计算机设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240257501A1 (zh) |
CN (1) | CN117576494A (zh) |
WO (1) | WO2024032101A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117990058B (zh) * | 2024-04-07 | 2024-06-11 | 国网浙江省电力有限公司宁波供电公司 | 一种提高rtk测量精度的方法、装置、计算机设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110657803B (zh) * | 2018-06-28 | 2021-10-29 | 深圳市优必选科技有限公司 | 机器人定位方法、装置以及存储装置 |
CN111260779B (zh) * | 2018-11-30 | 2022-12-27 | 华为技术有限公司 | 地图构建方法、装置及系统、存储介质 |
CN110648397B (zh) * | 2019-09-18 | 2023-05-16 | Oppo广东移动通信有限公司 | 场景地图生成方法、装置、存储介质及电子设备 |
CN111780764B (zh) * | 2020-06-30 | 2022-09-02 | 杭州海康机器人技术有限公司 | 一种基于视觉地图的视觉定位方法、装置 |
CN114565777A (zh) * | 2022-02-28 | 2022-05-31 | 维沃移动通信有限公司 | 数据处理方法和装置 |
CN116295466A (zh) * | 2022-03-31 | 2023-06-23 | 北京百度网讯科技有限公司 | 地图生成方法、装置、电子设备、存储介质、及车辆 |
-
2022
- 2022-08-08 CN CN202210945938.5A patent/CN117576494A/zh active Pending
-
2023
- 2023-05-30 WO PCT/CN2023/097112 patent/WO2024032101A1/zh unknown
-
2024
- 2024-04-12 US US18/633,850 patent/US20240257501A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240257501A1 (en) | 2024-08-01 |
WO2024032101A1 (zh) | 2024-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Walch et al. | Image-based localization using lstms for structured feature correlation | |
CN104299244B (zh) | 基于单目相机的障碍物检测方法及装置 | |
CN113819890B (zh) | 测距方法、装置、电子设备及存储介质 | |
CN110135455A (zh) | 影像匹配方法、装置及计算机可读存储介质 | |
WO2022183657A1 (zh) | 点云模型构建方法、装置、电子设备、存储介质和程序 | |
CN109683699A (zh) | 基于深度学习实现增强现实的方法、装置及移动终端 | |
CN110276768B (zh) | 图像分割方法、图像分割装置、图像分割设备及介质 | |
US20240257501A1 (en) | Feature map generation method and apparatus, storage medium, and computer device | |
CN112750203A (zh) | 模型重建方法、装置、设备及存储介质 | |
CN111127522B (zh) | 基于单目相机的深度光流预测方法、装置、设备及介质 | |
CN111144349A (zh) | 一种室内视觉重定位方法及系统 | |
CN115272494B (zh) | 相机与惯性测量单元的标定方法、装置和计算机设备 | |
CN110889349A (zh) | 一种基于vslam的稀疏三维点云图的视觉定位方法 | |
CN111612898B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
WO2022052782A1 (zh) | 图像的处理方法及相关设备 | |
CN113902802A (zh) | 视觉定位方法及相关装置、电子设备和存储介质 | |
CN116222577A (zh) | 闭环检测方法、训练方法、系统、电子设备及存储介质 | |
CN115423863A (zh) | 相机位姿估计方法、装置及计算机可读存储介质 | |
CN113298871B (zh) | 地图生成方法、定位方法及其系统、计算机可读存储介质 | |
CN117132737B (zh) | 一种三维建筑模型构建方法、系统及设备 | |
CN117470246A (zh) | 路径规划方法、装置、存储介质及电子设备 | |
EP4293622A1 (en) | Method for training neural network model and method for generating image | |
CN114868154A (zh) | 包括多分辨率体素中的协方差的地图 | |
CN116823966A (zh) | 相机的内参标定方法、装置、计算机设备和存储介质 | |
CN107240149A (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 |