WO2021121306A1 - 视觉定位方法和系统 - Google Patents
视觉定位方法和系统 Download PDFInfo
- Publication number
- WO2021121306A1 WO2021121306A1 PCT/CN2020/137132 CN2020137132W WO2021121306A1 WO 2021121306 A1 WO2021121306 A1 WO 2021121306A1 CN 2020137132 W CN2020137132 W CN 2020137132W WO 2021121306 A1 WO2021121306 A1 WO 2021121306A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- feature point
- image
- positioning
- visual
- area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- 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/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- 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/52—Scale-space analysis, e.g. wavelet analysis
-
- 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/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- 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/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30242—Counting objects in image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
一种视觉定位方法,所述方法包括获取定位图像,所述定位图像通过成像设备采集(410);获取与所述成像设备所在区域相关联的三维点云地图(420);基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
Description
交叉引用
本申请要求2019年12月18日递交的申请号为201911309118.1的中国申请,2019年12月18日递交的申请号为201911310246.8的中国申请,以及2019年12月18日递交的申请号为201911310236.4中国申请的优先权,其所有内容通过引用的方式包含于此。
本申请涉及导航技术领域,特别涉及一种视觉定位方法和系统。
随着技术的发展,导航定位功能越来越成为人们生活中必不可少的功能。增强现实(Augmented Reality,AR)导航技术由于其直观的导航方式,越来越受到用户的青睐,视觉定位的高精度和低时耗是保证AR导航正确性和流畅性的关键。因此,有必要提供一种视觉定位方法和系统,以便及时、准确地进行视觉定位。
发明内容
本说明书实施例之一提供一种视觉定位方法。所述方法包括:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
本说明书实施例之一提供一种视觉定位系统。包括:至少一个存储介质,所述存储介质包括用于视觉定位的指令集;至少一个处理器,所述至少一个处理器与所述至少一个存储介质通信,其中,在执行所述指令集时,所述至少一个处 理器被配置为:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
本说明书实施例之一提供一种视觉定位系统。所述系统包括:获取模块,用于获取定位图像,所述定位图像通过成像设备采集;以及获取与所述成像设备所在区域相关联的三维点云地图;确定模块,用于基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;以及基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如下方法,包括:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
本说明书实施例之一提供一种视觉定位方法。所述方法包括:获取定位图像,所述定位图像通过成像设备采集;提取所述定位图像中的至少一个视觉特征点;将所述至少一个视觉特征点与语义三维点云地图中的特征点进行匹配,得到至少一个特征点对;以及基于所述至少一个特征点对,确定所述成像设备的定位信息。
本说明书实施例之一提供一种视觉定位方法。所述方法包括:获取由成像设备采集的图像;对图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域;分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集;基于所述多个分块对应的多个特征点集确定所述图像中的至少一个视觉特征点;以及基于所述至少一个视觉特征点确定所述成像设备的定位信息。
本说明书实施例之一提供一种视觉定位方法,应用于电子设备,所述视觉定位方法包括:依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云;利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点;以及基于所述目标三维点计算定位信息。
在一些实施例中,所述依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云的步骤包括:基于所述视野图像,进行场景识别,以得到所述3D点云地图的二维投影图中与所述视野图像匹配的目标场景区域;从AR引擎定位得到的预估坐标中,筛选出位于所述目标场景区域内的目标预估坐标;根据所述目标预估坐标及所述二维投影图,从所述3D点云地图中确定出所述目标空间点云。
在一些实施例中,所述根据所述目标预估坐标及所述二维投影图,从所述3D点云地图中确定出所述目标空间点云的步骤包括:从所述AR引擎获取从起始导航点开始已导航的导航距离值;依据所述导航距离值,选择匹配的半径参数;其中,所述半径参数与所述导航距离值之间呈正比;基于所述目标预估坐标及所述半径参数,从所述二维投影图中划分出待选图像区域;从所述3D点云地图中获取投影至所述待选图像区域的三维点云,以得到所述目标空间点云。
在一些实施例中,在所述基于所述目标三维点计算定位信息的步骤之后,所述视觉定位方法还包括:依据计算得到的所述定位信息更新所述起始导航点,以便下一轮视觉定位时从新的所述起始导航点开始计算所述导航距离值。
在一些实施例中,所述基于所述目标预估坐标及所述半径参数,从所述二维投影图中划分出待选图像区域的步骤包括:依据所述目标预估坐标及所述半径参数,从所述二维投影图中划分出圆形图像区域;获取所述电子设备的运动方向;基于所述运动方向确定出目标方向角;以所述目标方向角为圆心角,从所述圆形图像区域中划分出所述待选图像区域。
在一些实施例中,所述二维投影图包括多个场景区域,所述基于所述视野图像,进行场景识别,以得到所述3D点云地图的二维投影图中与所述视野图像 匹配的目标场景区域的步骤包括:获取每个所述场景区域对应的重建图像;所述对应的重建图像为用于重建投影于所述场景区域的三维点的图像;根据所述视野图像与所述重建图像之间的相似度,从所述多个场景区域中确定出所述目标场景区域。
在一些实施例中,所述电子设备内存储有场景识别模型,所述场景识别模型用于分辨场景区域,所述基于所述视野图像,进行场景识别,以得到所述3D点云地图的二维投影图中与所述视野图像匹配的目标场景区域的步骤包括:利用所述场景识别模型对所述视野图像进行分类,以得到所述目标场景区域。
在一些实施例中,所述利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点的步骤包括:提取所述视野图像中的视觉特征点;从所述目标空间点云中获取与所述视觉特征点匹配的三维点,以作为所述目标三维点。
在一些实施例中,所述基于所述目标三维点计算定位信息的步骤包括:依据所述目标三维点计算出所述电子设备的位姿信息及位置坐标,以作为所述定位信息。
本说明书实施例之一提供一种视觉定位装置,应用于电子设备,所述视觉定位装置:划分模块,用于依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云;获取模块,用于利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点;定位模块,用于基于所述目标三维点计算定位信息。
在一些实施例中,所述划分模块包括:识别子模块,用于基于所述视野图像,进行场景识别,以得到所述3D点云地图的二维投影图中与所述视野图像匹配的目标场景区域;筛选子模块,用于从AR引擎定位得到的预估坐标中,筛选出位于所述目标场景区域内的目标预估坐标;确定子模块,用于根据所述目标预估坐标及所述二维投影图,从所述3D点云地图中确定出所述目标空间点云。
在一些实施例中,所述确定子模块还用于:从所述AR引擎获取从起始导航点开始已导航的导航距离值;依据所述导航距离值,选择匹配的半径参数;其中,所述半径参数与所述导航距离值之间呈正比;基于所述目标预估坐标及所述 半径参数,从所述二维投影图中划分出待选图像区域;从所述3D点云地图中获取投影至所述待选图像区域的三维点云,以得到所述目标空间点云。
在一些实施例中,所述视觉定位装置还包括:更新模块,用于依据计算得到的所述定位信息更新所述起始导航点,以便下一轮视觉定位时从新的所述起始导航点开始计算所述导航距离值。
在一些实施例中,所述确定子模块还用于:依据所述目标预估坐标及所述半径参数,从所述二维投影图中划分出圆形图像区域;获取所述电子设备的运动方向;基于所述运动方向确定出目标方向角;以所述目标方向角为圆心角,从所述圆形图像区域中划分出所述待选图像区域。
在一些实施例中,所述二维投影图包括多个场景区域,所述识别子模块还用于:获取每个所述场景区域对应的重建图像;所述对应的重建图像为用于重建投影于所述场景区域的三维点的图像;根据所述视野图像与所述重建图像之间的相似度,从所述多个场景区域中确定出所述目标场景区域。
在一些实施例中,所述电子设备内存储有场景识别模型,所述场景识别模型用于分辨场景区域,所述识别子模块还用于:利用所述场景识别模型对所述视野图像进行分类,以得到所述目标场景区域。
在一些实施例中,所述获取模块包括:提取子模块,用于提取所述视野图像中的视觉特征点;匹配子模块,用于从所述目标空间点云中获取与所述视觉特征点匹配的三维点,以作为所述目标三维点。
在一些实施例中,所述定位模块还用于:依据所述目标三维点计算出所述电子设备的位姿信息及位置坐标,以作为所述定位信息。
本说明书实施例之一提供一种电子设备。包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现本说明书任一实施例所述的方法。
本说明书实施例之一提供一种视觉定位方法。所述方法包括:提取视觉定位图像中的多个视觉特征点;根据预设语义三维点云地图,分别将各所述视觉定 位图像中的所述视觉特征点与所述预设语义三维点云地图中对应的特征点进行匹配,得到多个特征点对,其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对,所述预设语义三维点云地图根据训练样本集训练获取,所述训练样本集包括:多个二维图像、且所述二维图像的预设区域包含语义标注;根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息。
在一些实施例中,所述根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息,包括:根据多个所述特征点对获取预设个数的所述特征点对构成的解算集,所述解算集包括:未标注语义的特征点对;采用随机抽样一致算法迭代计算所述解算集,获取每次迭代对应的位姿和内点数,其中,内点表示所述视觉特征点与所述三维点云地图中对应的特征点之间的重投影值在预设重投影误差内的所述视觉特征点;根据所述位姿和内点数,获取所述视觉定位图像的定位信息。
在一些实施例中,所述解算集还包括:含有语义标注点的标注特征点;所述根据多个所述特征点对获取预设个数的所述特征点对构成的解算集,包括:判断多个所述特征点对中的含有语义标注的标注特征点对数量是否大于或等于第一预设值;若大于或等于第一预设值,则获取所述第一预设值个数的所述标注特征点对加入所述解算集中,并获取第二预设值个数的未标注语义的特征点对加入所述解算集中;或者,若小于所述第一预设值,则将多个所述特征点对中的所有含有语义标注的标注特征点对加入所述解算集,并获取计算值个数个所述未标注语义的特征点对加入所述解算集,其中,所述计算值为所述预设个数与所有含有语义标注的标注特征点对数量的差值。
在一些实施例中,所述方法还包括:根据预设关注率和所述预设个数,计算第一预设值和第二预设值。
在一些实施例中,所述根据多个所述特征点对获取预设个数的所述特征点对构成的解算集,包括:判断多个所述特征点对的数量是否大于或等于所述预 设个数;若大于或等于所述预设个数,则从多个所述特征点对中获取所述解算集;若小于所述预设个数,则确定定位失败。
在一些实施例中,所述根据所述位姿和内点数,获取所述视觉定位图像的定位信息,包括:判断当前迭代次数是否等于预设最大迭代次数;若所述当前迭代次数等于所述预设最大迭代次数,则选择多次迭代中,最多内点数对应的位姿为所述视觉定位图像的定位信息。
申请实施例之一提供一种视觉定位装置。所述装置包括:提取模块、匹配模块和计算模块,其中:所述提取模块,用于提取视觉定位图像中的多个视觉特征点;所述匹配模块,用于根据预设语义三维点云地图,分别将各所述视觉定位图像中的所述视觉特征点与所述预设语义三维点云地图中对应的特征点进行匹配,得到多个特征点对,其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对,所述预设语义三维点云地图根据训练样本集训练获取,所述训练样本集包括:多个二维图像、且所述二维图像的预设区域包含语义标注;所述计算模块,用于根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息。
在一些实施例中,所述计算模块,还用于根据多个所述特征点对获取预设个数的所述特征点对构成的解算集,所述解算集包括:未标注语义的特征点对;采用随机抽样一致算法迭代计算所述解算集,获取每次迭代对应的位姿和内点数,其中,内点表示所述视觉特征点与所述三维点云地图中对应的特征点之间的重投影值在预设重投影误差内的所述视觉特征点;根据所述位姿和内点数,获取所述视觉定位图像的定位信息。
在一些实施例中,所述解算集还包括:含有语义标注的标注特征点对;所述计算模块,还用于判断多个所述特征点对中的含有语义标注的标注特征点对数量是否大于或等于第一预设值;若大于或等于第一预设值,则获取所述第一预设值个数的所述标注特征点对加入所述解算集中,并获取第二预设值个数的未标注语义的特征点对加入所述解算集中;或者,若小于所述第一预设值,则将多 个所述特征点对中的所有含有语义标注的标注特征点对加入所述解算集,并获取计算值个数个所述未标注语义的特征点对加入所述解算集,其中,所述计算值为预设个数与所有含有语义标注的标注特征点对数量的差值。
在一些实施例中,所述计算模块还用于根据预设关注率和预设个数,计算第一预设值和第二预设值。
在一些实施例中,所述计算模块还用于判断多个所述特征点对的数量是否大于或等于预设个数;若大于或等于所述预设个数,则从多个所述特征点对中获取所述解算集;若小于所述预设个数,则确定定位失败。
在一些实施例中,所述计算模块还用于判断当前迭代次数是否等于预设最大迭代次数;若所述当前迭代次数等于所述预设最大迭代次数,则选择多次迭代中,最多内点数对应的位姿为所述视觉定位图像的定位信息。
本说明书实施例之一提供一种视觉定位设备。包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述视觉定位设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如本说明书任一实施例所述的方法。
本说明书实施例之一提供一种存储介质。所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如本说明书任一实施例所述的方法。
本说明书实施例之一提供一种图像的视觉特征点的提取方法。包括:对视觉定位图像进行图像划分,得到多个分块;所述多个分块中存在交叠区域;对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集;合并所述交叠区域中坐标参数相同的特征点,并根据所述多个分块对应的多个特征点集确定所述视觉定位图像对应的总特征点集。
在一些实施例中,所述对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集的步骤包括:并行地对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集;每个所述分块对应的特征点集的特征点数量位于预设数值范围内。
在一些实施例中,所述对所述视觉定位图像进行图像划分,得到多个分块的步骤包括:对视觉定位图像进行图像划分,得到多个分块,其中,任意相邻的两个分块之间存在交叠区域。
在一些实施例中,每个所述分块的大小为M×N,所述交叠区域的大小为m×n,并且m×n=γM×γN,γ为小于1且大于0的预设系数。
在一些实施例中,所述并行地对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集的步骤包括:并行地对每个所述分块进行视觉特征提取,得到每个所述分块对应的提取特征点集;所述提取特征点集的特征点数量大于或等于预设数值;从所述提取特征点集中确定所述特征点集,所述特征点集的特征点数量位于预设数值范围内。
在一些实施例中,所述从所述提取特征点集中确定所述特征点集,所述特征点集的特征点数量位于预设数值范围内的步骤包括:根据特征点的特征参数从所述提取特征点集中确定q个特征点作为所述特征点集;q位于预设数值范围内,所述特征参数包括响应值以及尺度参数中的至少一个参数。
在一些实施例中,每个特征点对应一个尺度参数,当所述多个特征点集合中存在多个坐标参数相同的特征点时,所述合并所述交叠区域中坐标参数相同的特征点,并根据所述多个分块对应的多个特征点集确定所述视觉定位图像对应的总特征点集的步骤包括:删除所述多个坐标参数相同的特征点中尺度参数较小的特征点;将删除后的所述多个特征点集合并为所述总特征点集。
本说明书实施例之一提供一种图像的视觉特征点的提取装置。包括:划分模块,用于对视觉定位图像进行图像划分,得到多个分块;所述多个分块中存在交叠区域;提取模块,用于对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集;所述提取模块,还用于合并所述交叠区域中坐标参数相同的特征点,并根据所述多个分块对应的多个特征点集确定所述视觉定位图像对应的总特征点集。
在一些实施例中,所述提取模块用于并行地对每个所述分块进行视觉特 征提取,得到每个所述分块对应的特征点集;每个所述分块对应的特征点集的特征点数量位于预设数值范围内。
在一些实施例中,所述划分模块用于对所述视觉定位图像进行图像划分,得到多个分块,其中,任意相邻的两个分块之间存在交叠区域。
在一些实施例中,每个所述分块的大小为M×N,所述交叠区域的大小为m×n,并且m×n=γM×γN,γ为小于1且大于0的预设系数。
在一些实施例中,所述提取模块用于并行地对每个所述分块进行视觉特征提取,得到每个所述分块对应的提取特征点集;所述提取特征点集的特征点数量大于或等于预设数值;所述提取模块还用于从所述提取特征点集中确定所述特征点集,所述特征点集的特征点数量位于预设数值范围内。
在一些实施例中,所述提取模块用于根据特征点的特征参数从所述提取特征点集中确定q个特征点作为所述特征点集;q位于预设数值范围内,所述特征参数包括响应值以及尺度参数中的至少一个参数。
在一些实施例中,每个特征点对应一个尺度参数,当所述多个特征点集合中存在多个坐标参数相同的特征点时,所述提取模块用于删除所述多个坐标参数相同的特征点中尺度参数较小的特征点;所述提取模块还用于将删除后的所述多个特征点集合并为所述总特征点集。
本说明书实施例之一提供一种电子设备。包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如本说明书任一实施例所述的方法。
申请实施例之一提供一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如本说明书任一实施例所述的方法。
本申请将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本申请一些实施例所示的视觉定位系统的应用场景示意图;
图2是根据本申请一些实施例所示的示例性计算设备的示意图;
图3是根据本申请一些实施例所示的处理设备的模块图;
图4是根据本申请一些实施例所示的视觉定位方法的示例性流程图;
图5是根据本申请一些实施例所示的目标区域确定方法的示例性流程图;
图6是根据本申请一些实施例所示的电子设备的示意图;
图7是根据本申请一些实施例所示的视觉定位方法的示例性流程图;
图8为图7中步骤S701的子步骤流程图;
图9为图8中步骤S701-3的子步骤流程图;
图10是根据本申请一些实施例所示的另一种视觉定位方法的示例性流程图;
图11为实例中二维投影图的示例图;
图12是根据本申请一些实施例所示的视觉定位装置的示意图;
图13是根据本申请一些实施例所示的定位信息确定方法的示例性流程图;
图14是根据本申请一些实施例所示的一种视觉定位方法的示例性流程图;
图15是根据本申请另一些实施例所示的视觉定位方法的示例性流程图;
图16是根据本申请另一些实施例所示的视觉定位方法的示例性流程图;
图17是根据本申请另一些实施例所示的视觉定位方法的示例性流程图;
图18是根据本申请另一些实施例所示的视觉定位方法的示例性流程图;
图19是根据本申请一些实施例所示的一些视觉定位装置的结构示意图;
图20是根据本申请一些实施例所示的视觉特征点提取方法的示例性流程图;
图21示出了现有的对图像进行视觉特征点提取的示意图;
图22示出了本申请实施例提供的一种应用场景示意图;
图23示出了本申请实施例提供的图像的视觉特征点的提取方法的一种流程示意图;
图24示出了本申请实施例提供的图像的视觉特征点的提取过程中的一种手机的用户界面示意图;
图25示出了本申请实施例提供的图像的视觉特征点的提取过程中的另一种手机的用户界面示意图;
图26示出了本申请实施例提供的方法对图像进行视觉特征点提取的一种示意图;
图27示出了本申请实施例提供的图像的视觉特征点的提取过程中的另一种手机的用户界面示意图;
图28示出了本申请实施例提供的图像的视觉特征点的提取方法中,图像的视觉特征点的提取具体方法的流程图;
图29示出了本申请实施例提供的方法对图像进行视觉特征点提取的另一种示意图;
图30示出了本申请实施例提供的方法对图像进行视觉特征点提取的另一种示意图;
图31示出了本申请实施例提供的图像的视觉特征点的提取方法中,图像的视觉特征点的提取具体方法的流程图;
图32示出了本申请实施例提供的图像的视觉特征点的提取方法中,图像的视觉特征点的提取具体方法的流程图;
图33示出了本申请实施例提供的方法对图像进行视觉特征点提取的另一种示意图;
图34示出了本申请实施例提供的一种图像的视觉特征点的提取装置的结构示意图;以及
图35示出了本申请实施例提供的一种电子设备的结构示意图。
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请的实施例可以应用于不同的运输系统,不同的运输系统包括但不限于陆地、海洋、航空、航天等中的一种或几种的组合。例如,出租车、专车、顺风车、巴士、火车、动车、高铁、船舶、飞机、热气球、无人驾驶的交通工具、收/送快递等应用了管理和/或分配的运输系统。本申请的不同实施例应用场景包括但不限于网页、浏览器插件、客户端、定制系统、企业内部分析系统、人工智能机器人等中的一种或几种的组合。应当理解的是,本申请的系统及方法的应用场景仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。
本申请描述的“用户”、“用户端”、“用户终端”、“拍摄设备”、“成像设备”、“成像设备端”、“消费者”、“消费方”、“使用需求者”等是可以互换的,是指需要或者使用服务的一方,可以是个人,也可以是工具。同样地,本申请描述的“司机”、“司机端”、“提供者”、“供应者”、“服务提供者”、“服务者”、“服务方”等也是可以互换的,是指提供服务或者协助提供服务的个人、工具或者其他实体等。另外,本申请描述的“用户”可以是需要或者使用服务的一方,也可以是提供服务或者协助提供服务的一方。
图1是根据本申请一些实施例所示的视觉定位系统的应用场景示意图。
视觉定位系统100可以用于根据成像设备采集的定位图像确定成像设备的定位信息。成像设备为具有拍摄图像功能的拍摄设备,成像设备可以包括摄像头、相机。在一些实施例中,成像设备可以为独立的拍摄设备,也可以为在智能设备(例如,智能手机、平板电脑、增强现实设备)上集成的拍摄设备。在一些实施例中,视觉定位系统100可以获取成像设备采集的定位图像以及与成像设备所在区域相关联的三维点云地图,并基于定位图像和三维点云地图,确定成像设备的定位信息。如本申请中使用的,视觉定位系统100可以用于机场、火车站、汽车站、商场、游乐场、学校、广场、道路等区域的定位。
在一些实施例中,视觉定位系统100可以是应用于提供互联网服务的线上服务平台。例如,视觉定位系统100可以应用于提供交通运输服务的网约车服务平台。所述网约车服务平台可以提供诸如出租车呼叫、快车呼叫、专车呼叫、小巴呼叫、拼车、公交服务、司机雇佣、接送服务、代驾等运输服务。又例如,视觉定位系统100还可以应用于快递、外卖、出行(如旅游)等服务平台。又例如,视觉定位系统100可以应用于导航服务平台。在一些实施例中,视觉定位系统100可以应用于无人驾驶系统。为方便描述,下文以导航服务平台为例来描述视觉定位系统100的应用。这并不旨在限定,视觉定位系统100可以应用于任何服务平台。
如图1所示,视觉定位系统100可以包括服务器110、第一用户终端120、 存储设备130、第二用户终端140、网络150和信息源160。
在一些实施例中,服务器110可以用于处理与视觉定位系统100有关的信息和/或数据,例如,用于确定三维点云地图中与成像设备相关联的目标区域,以及确定成像设备的定位信息。在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。服务器组可以是集中式的或分布式的(例如,服务器110可以是一分布式系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以经由网络150访问存储在第一用户终端120、第二用户终端140和/或存储设备130中的信息和/或数据。又例如,服务器110可以直接连接到第一用户终端120、第二用户终端140和/或存储设备130以访问存储信息和/或数据。在一些实施例中,服务器110可以在云平台或车载计算机上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
在一些实施例中,服务器110可以包括处理设备112。处理设备112可以处理与视觉定位系统100有关的信息和/或数据,以执行本申请中描述的一个或以上功能。例如,处理设备112可以获取第一用户终端120和/或第二用户终端140发送的定位请求以及第一用户终端120和/或第二用户终端140(或对应的成像设备)拍摄的定位图像,并获取与第一用户终端120和/或第二用户终端140(或对应的成像设备)所在区域相关联的三维点云地图,然后基于定位图像和三维点云地图,确定第一用户终端120和/或第二用户终端140(或对应的成像设备)的定位信息。在一些实施例中,处理设备112还可以通过GPS(Global Positioning System,全球定位系统)对成像设备进行初始定位。在一些实施例中,处理设备112可以包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理设备112可以包括中央处理单元(CPU)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、图形处理单元(GPU)、物理处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、 微处理器等或其任意组合。
存储设备130可以用于存储与视觉定位相关的数据和/或指令。在一些实施例中,存储设备130可以存储三维点云地图。在一些实施例中,存储设备130可以存储从第一用户终端120和/或第二用户终端140中获得/获取的定位图像。在一些实施例中,存储设备130可以储存服务器110用来执行或使用以完成本申请中描述的示例性方法的数据和/或指令。在一些实施例中,存储设备130可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,存储设备130可在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,存储设备130可以连接到网络150以与视觉定位系统100的一个或以上组件(例如,服务器110、第一用户终端120、第二用户终端140)通信。视觉定位系统100的一个或以上组件可以经由网络150访问存储在存储设备130中的数据或指令。在一些实施例中,存储设备130可以直接连接到视觉定位系统100的一个或以上组件(例如,服务器110、第一用户终端120、第二用户终端140)或与之通信。在一些实施例中,存储设备130可以是服务器110的一部分。在一些实施例中,存储设备130可以单独的存储器。
在一些实施例中,第一用户终端120可以是与视觉定位请求直接相关的 个人、工具或其他实体。用户可以是视觉定位请求者。在本申请中,“用户”、“用户终端”可以互换使用。在一些实施例中,第一用户终端120可以包括台式电脑120-1、笔记本电脑120-2、机动车辆中的车载设备120-3、以及移动设备120-4等或其任意组合。在一些实施例中,移动设备120-4可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等或其任意组合。在一些实施例中,可穿戴设备可以包括智能手镯、智能鞋袜、智能眼镜、智能头盔、智能手表、智能穿着、智能背包、智能配件等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)等或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强型虚拟现实头盔、增强现实眼镜、增强现实眼罩等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括Google Glass、Oculus Rift、HoloLens或Gear VR等。在一些实施例中,机动车辆中的车载设备120-3可以包括车载计算机、车载电视等。
在一些实施例中,第二用户终端140可以是与第一用户终端120类似或相同的设备。在一些实施例中,第二用户终端140可以包括台式电脑140-1、笔记本电脑140-2、机动车辆中的车载设备140-3、以及移动设备140-4等或其任意组合。
在一些实施例中,第一用户终端120和/或第二用户终端140可以包括具有定位技术的装置。在一些实施例中,第一用户终端120和/或第二用户终端140可以与另一定位设备通信以确定第一用户终端120和/或第二用户终端140的位置。在一些实施例中,第一用户终端120和/或第二用户终端140可以将定位信息发送到服务器110。在一些实施例中,第一用户终端120和/或第二用户终端140可以包括具有采集图像功能的设备。在一些实施例中,第一用户终端120和/或第二用户终端140可以包括图像采集设备。在一些实施例中,第一用户终端 120和/或第二用户终端140可以与图像采集设备通信连接,以通过图像采集设备进行图像采集。
在一些实施例中,第一用户终端120和/或第二用户终端140可以与运输工具对应。运输工具也可以称为车辆。可以设想,运输工具可以是电动运输工具、燃料电池运输工具、混合动力运输工具或常规内燃发动机运输工具,例如,运输工具、轿跑车、轿车、皮卡车、旅行车、运动型多功能车(Sports Utility Vehicle,SUV)、小型货车或改装车。
运输工具可以配备有安装到车身的各种传感器。当运输工具沿着轨迹行进时,传感器可以被配置为捕获数据。例如,传感器可以是被配置为扫描周围并获取点云的LiDAR扫描仪和/或获取数字影像的3-D摄影机的组合。又例如,传感器可以是导航单元中使用的传感器,例如GPS接收器和一个或多个IMU传感器。GPS是全球导航卫星系统,其向GPS接收器提供地理定位和时间信息。IMU是一种电子装置,其使用各种惯性传感器例如加速度计和陀螺仪,有时还有磁力计,测量并提供运输工具的特定力、角速率、有时运输工具周围的磁场。GPS接收器和IMU传感器以在运输工具行进时提供运输工具的实时姿态信息,包括运输工具在每个时间戳处的位置和方向。
网络150可以促进信息和/或数据的交换。在一些实施例中,视觉定位系统100的一个或以上组件(例如,服务器110、第一用户终端120、存储设备130、第二用户终端140)可以经由网络150将信息和/或数据发送至视觉定位系统100的其他组件。例如,服务器110可以经由网络150从第一用户终端120获得/获取定位请求。在一些实施例中,网络150可以是有线网络或无线网络等或其任意组合。仅作为示例,网络150可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通讯(NFC)网络、全球移动通讯系统(GSM)网络、码分多址(CDMA)网络、时分多址(TDMA)网络、通用分组无线服务(GPRS)网络、 增强数据速率GSM演进(EDGE)网络、宽带码分多址接入(WCDMA)网络、高速下行分组接入(HSDPA)网络、长期演进(LTE)网络、用户数据报协议(UDP)网络、传输控制协议/互联网协议(TCP/IP)网络、短讯息服务(SMS)网络、无线应用协议(WAP)网络、超宽带(UWB)网络、红外线等或其任意组合。在一些实施例中,视觉定位系统100可以包括一个或以上网络接入点。例如,基站和/或无线接入点150-1、150-2、…,视觉定位系统100的一个或以上组件可以连接到网络150以交换数据和/或信息。
信息源160是为视觉定位系统100提供其他信息的一个源。信息源160可以用于为系统提供与视觉定位相关的信息,例如,定位时间、天气信息、法律法规信息、新闻信息、生活资讯、生活指南信息等。信息源160可以是一个单独的中央服务器的形式存在,也可以是以多个通过网络连接的服务器的形式存在,还可以是以个人设备形式存在。当信息源160以个人设备形式存在时,这些设备可以通过一种用户生成内容(user-generated contents)的方式,例如向云端服务器上传文字、语音、图像、视频等,从而使云端服务器连通与其连接的个人设备一起组成信息源160。
应当注意视觉定位系统100仅仅是为了说明的目的而提供的,并不意图限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出多种修改或变化。例如,视觉定位系统100还可以包括数据库。又例如,视觉定位系统100可以在其他设备上实现类似或不同的功能。然而,这些变化和修改不会背离本申请的范围。
图2是根据本申请一些实施例所示的示例性计算设备的示意图。
在一些实施例中,服务器110和/或第一用户终端120和/或第二用户终端140可以在计算设备200上实现。例如,处理设备112可以在计算设备200上实施并执行本申请所公开的功能。如图2所示,计算设备200可以包括内部总线210、处理器220、只读存储器(ROM)230、随机存储器(RAM)240、通信端口250、输入/输出接口260和硬盘270。
处理器220可以执行计算指令(程序代码)并执行本申请描述的视觉定位系统100的功能。所述计算指令可以包括程序、对象、组件、数据结构、过程、模块和功能(所述功能指本申请中描述的特定功能)。例如,处理器220可以处理从视觉定位系统100的其他任何组件获取的图像或文本数据。在一些实施例中,处理器220可以包括微控制器、微处理器、精简指令集计算机(RISC)、专用集成电路(ASIC)、应用特定指令集处理器(ASIP)、中央处理器(CPU)、图形处理单元(GPU)、物理处理单元(PPU)、微控制器单元、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、高级RISC机(ARM)、可编程逻辑器件以及能够执行一个或多个功能的任何电路和处理器等,或其任意组合。
计算设备200的存储器(例如,只读存储器(ROM)230、随机存储器(RAM)240、硬盘270等)可以存储从视觉定位系统100的任何其他组件获取的数据/信息。示例性的ROM可以包括掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字通用盘ROM等。示例性的RAM可以包括动态RAM(DRAM)、双倍速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)和零电容(Z-RAM)等。
输入/输出接口260可以用于输入或输出信号、数据或信息。在一些实施例中,输入/输出接口260可以使用户与视觉定位系统100进行联系。在一些实施例中,输入/输出接口260可以包括输入装置和输出装置。示例性输入装置可以包括键盘、鼠标、触摸屏和麦克风等,或其任意组合。示例性输出装置可以包括显示设备、扬声器、打印机、投影仪等或其任意组合。示例性显示装置可以包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、曲面显示器、电视设备、阴极射线管(CRT)等或其任意组合。
通信端口250可以连接到网络以便数据通信。所述连接可以是有线连接、无线连接或两者的组合。有线连接可以包括电缆、光缆或电话线等或其任意组合。无线连接可以包括蓝牙、Wi-Fi、WiMax、WLAN、ZigBee、移动网络(例如, 3G、4G或5G等)等或其任意组合。在一些实施例中,通信端口250可以是标准化端口,如RS232、RS485等。在一些实施例中,通信端口250可以是专门设计的端口。
为理解方便,图2中仅示例性绘制了一个处理器。然而,需要注意的是,本申请中的计算设备200可以包括多个处理器,因此本申请中描述的由一个处理器实现的操作和/或方法也可以共同地或独立地由多个处理器实现。例如,如果在本申请中,计算设备200的处理器执行步骤1和步骤2,应当理解的是,步骤1和步骤2也可以由计算设备200的两个不同的处理器共同地或独立地执行(例如,第一处理器执行步骤1,第二处理器执行步骤2,或者第一和第二处理器共同地执行步骤1和步骤2)。
图3是根据本申请一些实施例所示的处理设备的模块图。
如图3所示,处理设备112可以包括获取模块310和确定模块320。
获取模块310可以获取定位图像,所述定位图像通过成像设备采集。关于获取定位图像的更多内容可以参见图4及其相关描述,在此不再赘述。
在一些实施例中,获取模块310可以获取与成像设备所在区域相关联的三维点云地图。关于获取三维点云地图的更多内容可以参见图4及其相关描述,在此不再赘述。
具体地,确定模块320还可以基于定位图像,确定与目标区域的范围相关联的一个或多个约束条件;以及基于一个或多个约束条件从三维点云地图中确定所述目标区域,一个或多个约束条件与定位像对应的场景、成像设备的初步预估位置或成像设备的方位信息中的至少一个有关。关于确定与定位图像相关联的目标区域的更多内容可以参见图4及其相关描述,在此不再赘述。
确定模块320可以基于定位图像和三维点云地图,确定成像设备的定位信息。在一些实施例中,确定模块320可以基于定位图像,从三维点云地图中确定与定位图像相关联的目标区域。确定模块320可以提取定位图像中的至少一个视觉特征点,并将至少一个视觉特征点与目标区域中的特征点进行匹配,得到 至少一个特征点对;然后基于至少一个特征点对,计算成像设备的定位信息。关于确定成像设备的定位信息的更多内容可以参见图4及其相关描述,在此不再赘述。
应当理解,图3所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,获取模块310、确定模块320可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本申请的保护范围之内。诸如此类的变形,均在本申请的保护范围之内。
图4是根据本申请一些实施例所示的视觉定位方法的示例性流程图。过程400可以由视觉定位系统100执行。例如,过程400可以由图3所述的处理设备112执行或由第一用户端120或第二用户端140执行。
步骤410,获取定位图像,定位图像通过成像设备采集。在一些实施例中,步骤410可以由获取模块310实现。
定位图像为用于确定成像设备位置的图像。定位图像可以反映成像设备的成像视野范围内的场景。场景可以是室内或室外。例如,场景可以是室外。定位图像中可以包括场景内一个或多个对象的图像表示。一个或多个对象可以包括人物、花草、树木、建筑物等。又例如,场景可以是室内,一个或多个对象可以包括标识牌(例如,门牌,广告牌等)。
在一些实施例中,定位图像可以包括成像设备采集定位图像时的初步定位信息。初步定位信息可以包括成像设备采集定位图像时的位姿信息,包括成像设备的初步预估位置、预估方向信息等。初步定位信息可以由成像设备相关联的定位装置获取。定位装置可以包括GPS接收器,IMU传感器等。例如,初步定位信息可以包括GPS定位信息、经过算法校正的定位信息等。
在一些实施例中,定位图像可以由成像设备拍摄得到。在一些实施例中,定位图像可以存储在成像设备、存储设备130、只读存储器(ROM)230或随机存储器(RAM)240中。成像设备为具有拍摄图像功能的拍摄设备。在一些实施例中,成像设备可以是独立的拍摄设备,也可以是在其他设备上集成的拍摄设备。例如,成像设备可以为独立的摄像头、相机。又例如,成像设备可以是在智能设备上集成的拍摄设备。在一些实施例中,智能设备可以是智能手机、平板电脑、无人机等,成像设备(例如,摄像头、相机)集成在智能设备上。在一些实施例中,智能设备可以包括增强现实(Augmented Reality,AR)设备、智能手环、智能眼镜、智能头盔、虚拟现实(virtual reality,VR)设备等。在一些实施例中,成像设备由行人携带,并在其行进时采集图像。在一些实施例中,成像设备可以每隔一段时间采集至少一张定位图像。例如,一段时间可以为0.5秒、1秒、2秒、10秒、60秒等,本申请对此不做限制。
在一些实施例中,获取模块310可以通过与第一用户终端、第二用户终端和/或存储设备130进行通信以获取定位图像。例如,获取模块310可以直接 或通过网络150从第一用户终端、第二用户终端获取定位图像。又例如,获取模块310可以直接或通过网络150从存储设备130或随机存储器(RAM)240中获取存储其中的定位图像。又例如,获取模块310可以调用数据接口直接从成像设备中获取定位图像。
步骤420,获取与成像设备所在区域相关联的三维点云地图。在一些实施例中,步骤420可以由获取模块310实现。
在一些实施例中,处理设备可以从存储设备130、只读存储器(ROM)230、随机存储器(RAM)240或其他存储设备或数据库中获取三维点云地图。
在一些实施例中,成像设备所在区域可以为成像设备所在位置的地理区域。例如,地理区域可以包括机场、火车站、汽车站、学校、医院、商场、道路等。
在一些实施例中,获取模块310可以根据成像设备采集的初步定位信息,确定成像设备所在区域。例如,初步定位信息中包括的初步预估位置位于某商场内,获取模块310可以确定成像设备所在区域为该商场。
三维点云地图可以是与地理区域相关的三维地图。例如,机场的三维地图、火车站的三维地图、汽车站的三维地图、商场的三维地图等。三维点云地图(或称为3D点云地图)为基于点云数据生成的表示地理区域的三维地图模型。点云数据可以包括与物体(例如,车辆、成像设备)的周围环境中的一个或以上对象相关联的一组数据点。物体的周围环境可以指物体周围的环境和一个或以上对象(包括生物和非生物对象)。点云数据的数据点可以与物体(例如,车辆、成像设备)的估计位置周围的空间中的对象的物理点或区域对应。物体周围的一个或以上对象可包括广告牌、行人、动物、植物、桌椅等。在一些实施例中,点云数据可以由安装在物体上的传感器(例如,LiDAR)获取。例如,传感器可以发射激光脉冲以扫描物体的周围环境。激光脉冲可以被周围环境中的物理点反射并返回到传感器。传感器可以基于返回的激光脉冲的一个或以上特征来生成表示周围环境的点云数据。在一些实施例中,可以在物体(例如,车辆、成像设备) 停在道路上或沿着道路行驶的时间段(例如,1秒、2秒)内收集点云数据。在点云数据的收集过程中,传感器可以在扫描角度范围(例如,360度、180度、120度)内旋转并且以特定扫描频率(例如,10Hz、15Hz、20Hz)扫描周围环境。
在一些实施例中,三维点云地图可以基于多个二维图像重建生成。在一些实施例中,二维图像可以为提前拍摄的图像。处理设备可以根据多个提前拍摄的二维图像,通过三维重建技术重建得到三维点云地图。示例性三维重建技术可以包括纹理形状(SFT)方法、明暗重构三维形状法、多视图立体声(MVS)方法、运动恢复结构(SFM)方法、飞行时间(ToF)方法、结构光方法、莫尔纹影法等,或其任何组合。
在一些实施例中,与成像设备所在区域相关联的三维点云地图可以是成像设备所在区域对应的三维点云地图,即,该三维点云地图描述成像设备所在区域内的场景。例如,成像设备所在区域为北京首都国际机场的候机厅,则三维点云地图可以描述北京首都国际机场内的场景,可以为以北京首都国际机场为中心点的周围50KM×50KM的三维点云地图,或者可以为北京市顺义区的三维点云地图。
在一些实施例中,获取模块310可以与第一用户终端、第二用户终端和/或成像设备进行通信以获取成像设备的初步定位信息,根据该初步定位信息确定成像设备所在区域。在一些实施例中,获取模块310可以基于成像设备所在区域,从存储设备130中获取包含成像设备所在区域的三维点云地图。
步骤430,基于定位图像和三维点云地图,确定成像设备的定位信息。在一些实施例中,步骤440可以由确定模块320实现。
在一些实施例中,成像设备的定位信息可以包括成像设备的位置信息和姿态信息(即位姿信息)。位姿信息可以指成像设备相对于坐标系的位置和/或方向。坐标系可以是具有固定原点和/或一个或以上固定轴的任何合适的坐标系,例如地理坐标系。坐标系可以具有任何数量的维度。例如,坐标系可以是二维 (2D)或三维(3D)坐标系。成像设备在坐标系中的位置可以表示为成像设备在坐标系中的坐标。例如,成像设备在地理坐标系中的位置信息可以由经度、纬度和/或海拔高度表示。成像设备的方向(即姿态信息)可以表示为坐标系中的一个或以上欧拉角。例如,成像设备的方向可以表示为横摆角(yaw angle)、俯仰角(pitch angle)和/或侧倾角(roll angle)中的一个或以上。
在一些实施例中,可以基于定位图像,从三维点云地图中确定与定位图像相关联的目标区域。在一些实施例中,与定位图像相关联的目标区域可以是三维点云地图中描述定位图像所反映或表示的场景的区域。在一些实施例中,确定模块320可以基于定位图像,从三维点云地图中确定与定位图像相关联的目标区域。具体地,确定模块320可以基于定位图像,确定与所述目标区域的范围相关联的一个或多个约束条件;以及基于一个或多个约束条件从三维点云地图中确定目标区域。一个或多个约束条件与定位图像对应的场景、成像设备的初步预估位置或成像设备的方位信息中的至少一个有关。关于确定与定位图像相关联的目标区域的更多内容可以参见图5及其相关描述,在此不作赘述。
在一些实施例中,确定模块320可以基于定位图像和目标区域确定成像设备的定位信息。具体地,确定模块320可以提取定位图像中的至少一个视觉特征点,并将至少一个视觉特征点与目标区域中的特征点进行匹配,得到至少一个特征点对;然后可以基于至少一个特征点对,计算成像设备的定位信息。关于基于目标区域内的点云数据确定成像设备的定位信息的更多内容可以参见图7-图12的描述及其相关描述,在此不作赘述。
在一些实施例中,模块320可以获取语义三维点云地图。确定模块320可以提取定位图像中的至少一个视觉特征点,并将至少一个视觉特征点与语义三维点云地图中的特征点进行匹配,得到至少一个特征点对;然后可以基于至少一个特征点对,计算成像设备的定位信息。关于基于语义三维点云地图确定成像设备的定位信息的更多内容可以参见图13-19的相关描述,在此不作赘述。关于视觉特征点的提取可以参考图20-35的详细描述。
应当注意的是,上述各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,在步骤410-步骤430中,可以获取连续拍摄的多张定位图像,以及获取与成像设备相关联的三维点云地图,并根据多张定位图像和三维点云地图,确定成像设备的定位信息,并根据多个定位信息确定最终的定位信息。
本申请一些实施例提出了一种视觉定位方法,实现对成像设备的精准定位。一般情况下,在视觉定位时,会根据设备所在位置在三维点云地图的整个空间中进行搜索,随着三维点云地图规模的增长,这样的搜索方式会增加定位耗时、降低定位精度。为了提高定位效率和定位精度,可以先从三维点云地图中确定出目标区域,然后在目标区域中进行搜索,从而得到定位信息。由于将搜索空间范围从整个三维点云地图缩小到目标区域,缩短了搜索时耗,提高了定位效率和准确性。
图5是根据本申请一些实施例所示的目标区域确定方法的示例性流程图。图4中的步骤430可以根据流程500执行。
步骤510,基于定位图像,确定与目标区域的范围相关联的一个或多个约束条件。在一些实施例中,步骤510可以由确定模块320实现。
在一些实施例中,目标区域的范围可以包括目标区域在三维点位地图中的位置、方位、空间范围。约束条件可以是对目标区域范围的约束。在一些实施例中,约束条件可以与定位图像所反映的场景、成像设备的初步预估位置或成像设备的方位信息中的至少一个有关。
在一些实施例中,当约束条件与定位图像场景有关时,约束条件可以为场景约束。场景约束可以包括对定位图像所反映或描述的场景进行识别,将定位图像所描述的场景与三维点云地图所描述的场景进行匹配以确定定位图像所对应的目标区域。例如,若定位图像所描述的场景包括商场的服装区、餐饮区或生鲜区等,对三维点云地图进行场景约束后确定的目标区域可以是三维点云地图中 描述商场的服装区、餐饮区或生鲜区等的区域。
在一些实施例中,当约束条件与成像设备的初步预估位置有关时,约束条件可以为预估位置约束。预估位置约束是根据成像设备的初步预估位置,在三维点云地图中确定定位图像所对应的目标区域。在对三维点云地图进行预估位置约束后确定的目标区域可以为以成像设备的初步预估位置为几何中心的任意形状的区域,例如,在对三维点云地图进行预估位置约束后的确定的目标区域可以是三维点云地图中以成像设备的初步预估位置为几何中心的圆形、矩形、菱形、椭圆形等区域。
在一些实施例中,当约束条件与定位图像的成像设备的方位信息有关时,约束条件可以为方位信息约束。方位信息约束是根据成像设备的方位信息在三维点云地图中确定定位图像所对应的目标区域。例如,在对三维点云地图进行方位信息约束后确定的目标区域包括三维点云地图中位于成像设备的运动方向两侧一定角度范围的区域。
步骤520,基于一个或多个约束条件从三维点云地图中确定目标区域。在一些实施例中,步骤520可以由确定模块320实现。
在一些实施例中,确定模块320可以基于一个或多个约束条件从三维点云地图中确定目标区域。例如,确定模块320可以基于约束条件中一个或多个约束条件确定目标区域。又例如,可以仅基于场景约束确定目标区域。又例如,可以基于场景约束和预估位置约束确定目标区域,又例如,可以基于场景约束、预估位置约束和方位信息约束确定目标区域。对约束条件的选取,本申请不作限制。
在一些实施例中,可以对定位图像进行场景识别,得到三维点云地图中与定位图像所描述的场景匹配的第一区域。如本文中所述,三维点云地图中与定位图像所描述的场景匹配的第一区域可以指三维点云地图中的第一区域所描述的场景包括定位图像所描述的场景或三维点云地图中的第一区域所描述的场景与定位图像所描述的场景相同或相似。
在一些实施例中,确定模块320可以获取用于重建三维点云地图的多个重建图像。每个重建图像可以对应一场景,每一场景可以对应三维点云地图中的一个区域,即每个重建图像可以对应三维点云地图中的一个区域。根据定位图像与多个重建图像之间的相似度,从多个重建图像中确定与定位图像匹配的重建图像。基于与定位图像匹配的重建图像对应的区域,从三维点云地图中的多个区域中确定出第一区域。例如,将相似度最高的重建图像所对应的区域作为第一区域。
在一些实施例中,可以使用训练好的场景识别模型对定位图像以及三维点云地图进行处理得到第一区域。例如,将定位图像和三维点云地图输入到场景识别模型中,输出得到第一区域。场景识别模型可以基于神经网络模型构建,场景识别模型为预先训练得到。关于场景识别模型的更多内容可以参见图7的描述,在此不作赘述。
在一些实施例中,确定模块320可以基于第一区域确定目标区域。例如,确定模块320可以将第一区域指定为目标区域。又例如,确定模块320可以获取成像设备的初步预估位置,并基于成像设备的初步预估位置从第一区域中确定第二区域。确定模块320可以基于第二区域确定目标区域。
在一些实施例中,成像设备的初步预估位置可以由成像设备相关联的定位模块(例如,成像设备中的定位芯片或与成像设备相关的用户终端中的定位芯片)获取。例如,可以基于成像设备的GPS定位信号确定成像设备的初步预估位置。
在一些实施例中,确定模块320可以基于初步预估位置将三维点云地图的第一区域中包括初步预估位置的几何区域作为第二区域。例如,第二区域为第一区域中距离初步预估位置在一定阈值内的区域。进一步的,例如,可以将三维点云地图的第一区域中以初步预估位置为圆心,半径为R的圆形区域作为第二区域。又例如,还可以将三维点云地图的第一区域中以初步预估位置为几何中心的其他形状(例如梯形、椭圆形、菱形、三角形、多边形等)的几何区域作为第 二区域。关于确定第二区域的更多内容可以参见图9。
在一些实施例中,确定模块320可以基于第二区域确定目标区域。例如,确定模块320可以将第二区域指定为目标区域。又例如,,确定模块320可以基于成像设备的方位信息从第二区域中确定第三区域。确定模块320可以将第三区域指定为目标区域。
在一些实施例中,方位信息可以包括成像设备运动方向的一个或多个区域。例如,确定模块320可以以成像设备的初步预估位置为起点,成像设备的运动方向为映射方向在第二区域中映射一个矩形区域,矩形区域的长为沿着成像设备的运动方向距离初步预估位置的长,矩形区域的宽为起点朝运动方向的左右两侧各90°延伸的边的长度之和。即运动方向在矩形区域的对角线上。可以将矩形区域执行为第三区域。在一些实施例中,确定模块320还可以以成像设备的初步预估位置为起点,成像设备的运动方向为映射方向在第二区域中映射一个任何形状的区域。任何形状的区域可以包括:三角形、菱形、椭圆形等,本申请对此不作限制。
在一些实施例中,成像设备的方位信息还可以包括成像设备运动方向的角度范围。成像设备运动方向的角度范围可以指的是成像设备的运动方向两侧的角度范围。在一些实施例中,确定模块320可以基于运动方向的角度范围从第二区域中确定第三区域。在一些实施例中,确定模块320可以以运动方向为线,向两侧分别转动一定角度得到成像设备运动的角度范围。在本实施例中,向两侧分别转动的角度可以相同或不同,例如,可以往左侧转动30度,右侧转动20度,又例如,可以往左侧转动40度,右侧转动40度。在一些实施例中,确定模块320可以将第二区域中在运动方向的角度范围内的区域作为第三区域。
关于利用一个或多个约束条件确定目标区域的更多内容可以参见图7、图8、图10的内容。在一些实施例中,确定模块320可以指定第三区域为目标区域。
步骤530,基于定位图像和目标区域确定成像设备的定位信息。在一些实 施例中,步骤530可以由确定模块320实现。
在一些实施例中,确定模块320可以基于定位图像和目标区域确定成像设备的定位信息。具体地,确定模块320可以提取定位图像中的至少一个视觉特征点,并将至少一个视觉特征点与目标区域中的特征点进行匹配,得到至少一个特征点对;然后可以基于至少一个特征点对,计算成像设备的定位信息。关于基于目标区域内的点云数据确定成像设备的定位信息的更多内容可以参见图7-图12的描述及其相关描述,在此不作赘述。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对各流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,可以连续拍摄多张定位图像,对多张定位图像基于一个或多个约束条件确定多个目标区域,基于多个目标区域求出平均区域,将平均区域作为目标区域。
下面将搜索空间范围从整个三维点云地图缩小到目标区域并进行视觉定位的方法进行详细阐述。
图6是根据本申请一些实施例所示的可以实现本申请实施例电子设备60的示例性硬件和软件组件的示意图。在一些实施例中,电子设备60可以包括服务器110、第一用户终端120或第二用户终端140等计算设备。
电子设备60包括:处理器61、存储器62和总线63。所述存储器62存储有所述处理器61可执行的机器可读指令(比如,图12中的装置中划分模块601、获取模块602、定位模块603对应的执行指令等),当电子设备60运行时,所述处理器61与所述存储器62之间通过总线63通信。
可以理解地,本发明实施例中提到的应用视觉定位方法的电子设备60可以是服务器110,也可以是第一用户终端120和/或第二用户终端140,还可以是服务器110和用户终端(第一用户终端120和/或第二用户终端140)之间的组合。也就是,本发明实施例提供的视觉定位方法可以由用户终端执行,也可以由服务器110执行,还可以由服务器110和用户终端配合执行。
比如,由用户终端(第一用户终端120和/或第二用户终端140)执行时,可以是用户终端响应用户请求后,从服务器110请求获取当前环境(如成像设备所在区域)对应的3D点云地图(或称为三维点云地图),基于3D点云地图执行本发明实施例提供的视觉定位方法。再比如,由服务器110执行时,可以是服务器110接收到用户终端反馈的视觉定位请求后,依据用户终端反馈的视野图像(或称为定位图像)或者由需定位者携带的其他图像采集设备采集到的视野图像,并基于上述视野图像执行本发明实施例提供的视觉定位方法。再比如,由服务器110和用户终端配合执行时,可以是用户终端响应用户请求后,采集视野图像并反馈至服务器110,由用户终端进行视觉定位,并将定位结果反馈用户终端进行展示,从而,实现服务器110和用户终端之间协作执行本发明实施例提供的视觉定位方法。
参照图7所示,图7是本申请一些实施例所示的视觉定位方法的示例性流程图。如图7所示,上述视觉定位方法包括以下步骤:
步骤S701,依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云。
步骤S702,利用视野图像,从目标空间点云中得到匹配的目标三维点。
步骤S703,基于目标三维点计算定位信息。
上述视野图像可以由置于需定位者所在位置的图像采集设备采集到的图像。比如,可以是需定位者所持有的第一用户终端120和/或第二用户终端140。再比如,还可以是需定位者携带的与电子设备60通信的摄像头。
上述3D点云地图可以是AR导航服务中所需的三维重建地图模型。上述3D点云地图可以是现实中可实现AR导航的可导航环境所对应的三维模型。上述3D点云地图可以预先通过三维重建生成,并存储于电子设备60。可以理解地,在一些实施例中,可导航环境会随着用户需求而不断增加,随着可导航环境的增加,3D点云地图也会随之更新,3D点云地图的规模也随之扩增。例如,对于机场或火车站等导航场景,随着机场或火车站的扩建或改造,其对应的3D点 云地图会随之更新,其对应的3D点云地图的规模也随之扩增。
可选地,上述生成3D点云地图的方式包括:在可导航环境中的多个位置上,在多个角度采集待重建图像信息(相当于图4中的二维图像,或图5中的重建图像),基于采集到的待重建图像信息进行三维重建,得到表征该可导航环境的3D点云地图。在一些实施例中,可以基于采集到的待重建图像信息使用训练好的神经网络模型进行三维重建得到3D点云地图。在一些实施例中,训练后的神经网络模型可以基于训练样本进行训练初始神经网络模型得到。训练样本可以包括待重建图像,可以作为初始神经网络模型训练的输入。训练样本可以包括还可以包括待重建图像对应的重建好的3D点云地图,作为标签(即期望输出)训练初始神经网络模型得到训练好的神经网络模型。
上述目标空间点云是3D点云地图中的一部分,也是评估出与视野图像相关的一部分3D点云地图。例如,3D点云地图为三维模型,目标空间点云可以是该三维模型中任意方向或任意大小的与视野图像相关的一部分3D点云地图。目标空间点云也可以称为目标区域。
上述目标三维点为目标空间点云中与视野图像中的视觉特征点存在对应关系的三维点。可以理解地,目标空间点云与3D点云地图均是由三维点构成。
上述定位信息可以是用于表征需定位者的位置、姿态的信息,比如,可以包括位姿信息及位置坐标。
在本发明实施例中,先通过视觉图像快速从3D点云地图中确定出目标空间点云,再利用视觉图像从目标空间点云中寻找匹配的目标三维点。最后利用目标三维点计算对应的定位信息。也就是,通过将搜索目标三维点的范围从整个3D点云地图缩小到目标空间点云,缩短搜索目标三维点的时耗,提高搜索出的目标三维点的准确性。进而,提高定位效率和准确性。
为了方便理解,下面以用户使用移动设备(例如,手机)进行AR导航的实例进行描述:
移动设备内存储有可导航的环境所对应的3D点云地图,用户启用了AR 导航服务的过程中,在每一个预设的时间间隔内将移动设备的摄像头视野内的实时画面作为视野图像。利用视野图像从3D点云地图中确定出用于搜索目标三维点的目标空间点云。再利用视野图像从目标空间点云中搜索匹配的目标三维点,以便利用目标三维点计算用户本轮定位的位姿信息及位置坐标。如此,移动设备能够快速得到用户当前较为准确的定位信息,以保证AR导航服务的准确性和流畅性。
下面对本发明实施例的具体细节进行描述:
上述步骤S701的目的在于获取到与视野图像相关且规模尽可能小的空间点云。为了达到这一目的,上述步骤S701可以采用以下任意一种方式实现:
第一种实现方式:基于视野图像进行场景识别,确定出目标空间点云。即利用场景识别技术从3D点云地图中确定出与视野图像相关的空间点云。
可选地,可以是对视野图像进行场景识别,以便从3D点云地图的二维投影图中确定出与视野图像匹配的场景区域(或称为第一区域),可以将场景区域指定为目标区域,将映射到目标区域中的三维点构成的空间点云作为目标空间点云。
上述二维投影图可以是将3D点云地图中的所有的三维点投影到水平面后,得到的投影图(即可以理解为所有三维点在Z轴方向上的位置坐标投影后相同,或都为0)。上述二维投影图中每一图像坐标(即二维图像上的每一个坐标点)对应多个在同一个Z方向上的三维点(即每一图像坐标对应的多个三维点的水平地理位置相同,在竖直方向上的位置不同),二维投影图的图像坐标与可导航的环境中的位置坐标存在对应关系。可以理解地,二维投影图中每一个图像坐标与可导航的环境(通过三维点为3D点云地图进行表征)中对应的位置坐标(即,X轴和Y轴位置相同)的所有三维点存在对应关系。
可以预先将上述二维投影图划分为多个图像区域,每一个图像区域所对应的三维点表征可导航的环境中的部分现实场景,为了方便描述,将二维投影图的图像区域称为场景区域。在一些实施例中,划分二维投影图的方法可以包括形 状划分、地势划分、功能划分等。形状划分为将二维投影图按照地理区域的形状进行划分,例如,划分为圆形的住宅区、方形学校、椭圆形的商场等。地势划分为根据二维投影图的图像坐标对应的三维点的海拔高低划分为不同的区域,例如,按三维点的竖直方向的坐标为-50~0米、0~10米、10~20米、20~30米进行划分成不同的区域等。功能划分为将二维投影图按照其中某些区域所属的功能来划分,例如餐饮区、服装区、生活超市区、公共通道区等。又例如,可导航的环境是商场时,商场中有商铺A、商铺B、商铺C及公共通道D等,那么可以预先将商场的三维点云地图所对应的二维投影图划分为多个场景区域A、场景区域B、场景区域C,场景区域D。投影于场景区域A的三维点表征商铺A,投影于场景区域B的三维点表征商铺B,投影于场景区域C的三维点表征商铺C,投影于场景区域D的三维点表征公共通道D。
在一些实施例中,对视野图像进行场景识别得到场景区域的方式可以包括以下任意一种:
1)利用图像之间的相似度进行场景识别:
首先,获取每个场景区域对应的重建图像(即二维图像)。可以理解地,上述重建图像为用于重建3D点云地图的图像,上述场景区域对应的重建图像包括用于重建投影于场景区域的三维点的图像。场景区域对应的重建图像是重建3D点云地图的图像的一部分。
其次,计算视野图像与重建图像之间的相似度。比如,计算视野图像与重建图像对应的特征相邻之间向量距离值,以作为二者之间的相似度。计算向量距离值的方法包括投影对比、分块对比等。又例如,还可以通过像素点对比、重心对比等确定计算视野图像与重建图像之间的相似度。
最后,依据视野图像与重建图像之间的相似度,从多个场景区域中确定出目标区域。比如,将相似度最高的重建图像所对应的场景区域作为目标区域。再比如,还可以是当一个场景区域所对应的重建图像中与上述视野图像的相似度平均值最高时,将其作为目标区域。
2)利用神经网络模型进行场景识别:
首先,获取场景识别模型。上述场景识别模型用于分辨场景区域。可以理解地,上述场景识别模型可以预先通过对选择的神经网络模型进行训练得到。可选地,训练场景识别模型的步骤可以是:将重建3D点云地图的重建图像作为样本图像,并将每一个重建图像所对应的场景区间作为其对应的样本标签,利用样本图像对神经网络模型进行训练,以得到用于场景区域分类的场景识别模型。
其次,将视野图像输入场景识别模型,将场景识别模型输出的场景区域作为目标区域。
第二种实现方式:该实现方式可以是在第一种实现方式的基础上进一步缩小与视野图像相关的空间点云的规模,以进一步减小目标三维点的匹配准确度和匹配速度。具体地,缩小空间点云的规模可以具体通过以下方式实现。
可选地,如图8所示,上述步骤S701可以包括以下子步骤:
子步骤S701-1,基于视野图像,进行场景识别,以得到3D点云地图的二维投影图中与所述视野图像匹配的场景区域(即第一区域)。该子步骤与第一种实现方式中对视野图像进行场景识别得到场景区域的原理一致,具体可以参见图7及其相关描述,在此不再赘述。
子步骤S701-2,从AR引擎定位得到的预估坐标中,筛选出位于场景区域内的目标预估坐标。
上述AR引擎可以是安装于电子设备60中用于提供AR导航服务的AR内核(比如,ARkit、ARcore、EasyAR)。在AR引擎提供AR导航服务的过程中,AR引擎会实时提供成像设备的估计的位置坐标和估计的位姿信息,将实时提供估计的位置坐标在二维投影图中对应的图像坐标作为预估坐标。在一些实施例中,每一轮定位周期内可以通过AR引擎得到的至少一个预估坐标。
可以理解地,AR引擎提供的预估坐标准确性不稳定。也就是,利用AR引擎输出的相邻两次的预估坐标也可能出现在二维投影图像内跳跃的情况,即可能出现与实际位置之间误差较大的预估坐标。故,将目标预估坐标限制于属于 目标区域内,能够减少AR引擎提供的估计的位置坐标准确性不稳定而带来的影响。
利用目标区域作为条件筛选目标预估坐标,避免AR引擎提供的位置坐标准确性不稳定而影响获取到的目标空间点云的准确性。
当然,在该子步骤S701-2执行时,可能存在未获取到目标预估坐标的情况。即,本轮定位周期通过AR引擎得到的预估坐标均不属于目标场景区域。针对这一情况,可以在得到的预估坐标均不属于目标场景区域时,判定本轮定位失败,流程结束,以等待下一次定位流程的启动。可以理解地,视觉定位的过程是周期性的且时间间隔较短,因此,在子步骤S701-2判定出现本轮定位失败并结束流程,节约本轮定位的时耗,也便于迅速启动下一轮视觉定位。因此,不仅不影响AR引擎导航的使用体验,还能确保视觉定位的准确性。
子步骤S701-3,根据目标预估坐标及二维投影图,从3D点云地图中确定出目标空间点云。
在一些实施例中,上述根据目标预估坐标及二维投影图,从3D点云地图中确定出目标空间点云的方式包括:依据目标预估坐标从二维投影图中确定出待选图像区域(即第二区域)。可以将待选图像区域指定为目标区域,再将投影于待选图像区域的三维点所构成的空间点云作为目标空间点云。
通过上述子步骤S701-1至S701-3,实现了结合了场景识别和预估坐标两项约束条件,从3D点云地图中确定出目标空间点云,确保得到的目标空间点云与视野图像之间的相关性,同时缩小了目标空间点云的规模。
可以理解地,上述待选图像区域越准确,那么确定出的目标空间点云也越准确性。上述待选图像区域的准确性主要体现在位置和大小等多个方面。
一方面,上述待选图像区域位置的准确性可以由目标预估坐标确保。
可选地,为了确保待选图像区域位置足够准确,在目标预估坐标为一个时,可以是以目标预估坐标为基点从二维投影图中确定出待选图像区域(也可以称为第二区域)。比如,上述待选图像区域可以是以目标预估坐标在二维投影图像 中对应的图像坐标作为圆心,在二维投影图像中确定出的圆形图像区域。又比如,上述待选图像区域可以是以目标预估坐标在二维投影图像中对应的图像坐标作为中心,在二维投影图像中确定出的任意形状(如,多边形、椭圆形、不规则形状)的图像区域。
可选地,为了确保待选图像区域位置足够准确,在目标预估坐标为多个时,可以是以目标预估坐标的均值作为基点,从二维投影图中确定出待选图像区域。比如,上述待选图像区域可以是:以多个目标预估坐标的均值在二维投影图像中对应的图像坐标作为圆心,在二维投影图像中确定出的圆形图像区域。又比如,上述待选图像区域可以是以多个目标预估坐标的均值在二维投影图像中对应的图像坐标作为中心,在二维投影图像中确定出的任意形状(如,多边形、椭圆形、不规则形状)的图像区域。
另一方面,上述待选图像区域大小可以由区域半径或中心到各边界的长度确定。
在一些实施例中,从二维投影图中确定出待选图像区域的大小可以是固定的。也就是,可以通过大量测试获得一个适用的区域半径作为半径参数。如此,在得到基点后,依据半径参数得到一包含基点的待选图像区域。比如,以基点为圆心、半径参数为半径,在二维投影图像中得到圆形图像区域,以作为待选图像区域。又例如,可以通过大量测试获得一个适用的待选图像区域形状和尺寸(例如,面积、中心到各边界的长度等)作为参考形状和尺寸。如此,在得到基点后,依据参考形状和尺寸得到一包含基点的待选图像区域。
在一些实施例中,为了提高自适应性,上述二维投影图中确定出待选图像区域的大小可以是不定。也就是,可以通过大量测试获得多个适用的区域半径。在得到基点后,从多个区域半径中确定出匹配的半径参数,并依据半径参数得到一包含基点的待选图像区域。
在一些实施例中,还可以以基点为区域中心,在二维投影图像中得到尺寸为M米×N米的矩形图像区域,以作为待选图像区域。其中M和N可以是正数 (例如,5、10、20、50、100、500)。待选图像区域也可以为其他形状或尺寸,本申请对此不作限制。下面以半径参数为一个具体的实施方式,对待选区域进行说明。
作为一种实现方式,为了确保待选区域对应的目标空间点云与视野图像之间的相关性,匹配半径参数可以是依据已导航的导航距离确定。通常已导航的导航距离越远,定位存在的累积误差越大,为了确保选择的待选区域的准确性,所对应的半径参数就需越大。故,如图9所示,上述子步骤S701-3可以包括以下步骤:
S701-3-1,从AR引擎获取从起始导航点开始已导航的导航距离值。
上述已导航的导航距离值为AR引擎输出的从起始导航点开始已导航的距离值。
S701-3-2,依据导航距离值,选择匹配的半径参数。
作为一种实施方式,可以划分多个距离区间,每个距离区间对应一个半径参数。可以理解地,距离区间对应的距离值越大,对应的半径参数越大。故,可以通过判断导航距离值所属的距离区间,选择出匹配的半径参数。比如,0-1米对应的半径参数为R,1-2米对应的半径参数为2R,3-4米对应的半径参数为3R。当AR引擎输出从起始导航点开始的已导航距离为2米时,匹配出的半径参数2R。在一些实施例中,导航距离值可以与半径参数形成线性相关的对应关系。例如,导航距离值=a×半径参数,a为大于2的正数。
S701-3-3,基于目标预估坐标及半径参数,从二维投影图中划分出待选图像区域。
S701-3-4,从3D点云地图中获取投影至所述待选图像区域的三维点云,以得到所述目标空间点云。
在一些实施例中,上述起始导航点可以是电子设备60启用AR导航的启示位置点。
在另一些实施例中,上述起始导航点还可以是最近一次视觉定位成功得 到的位置点。因此,在一些实施例中,如图10所示,上述视觉定位方法还可以包括步骤:
步骤S704,依据计算得到的定位信息更新起始导航点。
如此,在下一轮视觉定位时从新的起始导航点开始计算导航距离值。避免采用自适应选择半径参数机制时可能出现待选图像区域被不必要地扩大。下一轮视觉定位方法与上一轮视觉定位方法相似,具体可以参见前述步骤S701-S703,在此不作赘述。
第三种实现方式:该实现方式可以在第二种实现方式的基础上进一步地缩小目标空间点云的规模。其相对于第二种实现方式的区别在于,上述依据目标预估坐标从二维投影图中确定出目标区域的实现方式包括:
(1)依据目标预估坐标及半径参数,从二维投影图中划分出待选图像区域。比如,基于目标预估坐标及半径参数,从二维投影图中划分出圆形图像区域。
(2)获取电子设备60的运动方向。比如,可以是通过电子设备60内设置的磁力计感知到的速度方向。
(3)基于运动方向确定出目标方向角。可以理解地,电子设备60提供的运动方向也可能存在误差,为了减小这一误差,可以基于运动方向确定目标方向角。上述目标方向角用于表征实际运动方向可能的方向范围。作为一种实施方式,以运动方向为中线,向两侧转动指定角度后得到的第二方向和第三方向,将第二方向和第三方向之间的夹角为目标方向角。比如,运动方向与预设的第一方向之间的夹角为90度,指定角度为60度,那么第二方向与第一方向之间的夹角为30度、第三方向与第一方向之间的夹角为150度,如此,将相较于第一方向的30度至150度之间的夹角作为目标方向角。在一些实施例中,预设的第一方向可以为任意方向,也可以为具体某一方向(例如,正北向)。在一些实施例中,第二方向和第三方向与运动方向的夹角可以相同,也可以不同。即,以运动方向为中线,向两侧转动的指定角度可以相同,也可以不同。
(4)以目标方向角为圆心角,从待选图像区域中划分出目标区域。可选 地,以待选图像区域中依据目标预估坐标确定的基点为圆心角的定点,将待选图像区域中圆形角覆盖的范围作为目标区域。比如,以目标方向角为圆心角,将圆形图像区域的圆心为圆心角的定点,从圆形图像区域中划分出扇形的目标区域。
上述步骤S702的目的在于从目标空间点云中获得用于计算定位信息的三维点。可选地,上述步骤S702可以是:提取视野图像中的视觉特征点。从目标空间点云中获取与所述视觉特征点匹配的三维点,以作为目标三维点。在一些实施例中,视觉特征点的提取方式包括但不限于尺度不变特征变换(Scale-invariant feature transform,SIFT)、基于图形处理器的尺度不变特征变换(Graphics Processing Unit,Scale-invariant feature transform,siftGPU)、快速特征点提取和描述的算法(oriented fast and rotated brief,ORB)等特征提取方法。可以理解地,获取与视觉特征点匹配的三维点的方式为:计算每一个三维点对应的特征向量与每一个视觉特征点对应的特征向量之间的距离,并基于此确定出匹配的目标三维点。在一些实施例中,还可以是采用词袋树匹配方法或者暴力匹配等方法从目标空间点云中匹配与视觉特征点匹配的目标三维点。
可见,3D点云地图中的三维点的数据量非常大时,采用相关技术的视觉定位方式(即,直接将视觉特征点与每一个三维点进行比对),将存在巨大的工作量,不仅时耗增加,还会存在匹配出的目标三维点误差较大的问题。
上述步骤S703可以是依据目标三维点计算出电子设备60的位姿信息及位置坐标,以作为定位信息。所采用的方法包括但不限于RANSAC算法、P3P解法、直接线性变换法等。
本发明实施例中,视觉定位采用了多重条件将搜索目标三维点的范围限制到与视野图像相关且规模较小的目标空间点云。所用的限制条件可以是由AR引擎提供的先验信息,容易获取。
下面结合图11对上述视觉定位方法进行说明。需要说明的是,在此实例中,用户需采用手机从S点导航到E点,AR导航过程中以t为时间间隔周期性的进行视觉定位。
步骤S1,在时间点2t时,采集一帧视野图像。
步骤S2,通过场景识别,判断与该视野图像对应的场景区域为图11中的A区。
步骤S3,获取AR引擎提供的预估坐标,若预估坐标位于A区内,则流程进入步骤S4。比如,为A区内的O点。
步骤S4,从AR引擎获取从起始导航点开始的已导航的导航距离值。若时间点t并没成功定位,则已导航的导航距离值为从S点开始的已导航的距离值。若时间点t成功定位,且定位点为A点(图11中未示出),则已导航的导航距离值为从A点开始已导航的距离值。
步骤S5,依据已导航的导航距离,选择匹配的半径参数。
步骤S6,以O点为圆形,半径参数为半径确定出圆形的待选图像区域(如图11中所示的A区内圆形区域)。
步骤S7,获取电子设备60的运动方向。
步骤S8,以O点为顶点,运动方向为中线,在运动方向的两侧确定出第二方向Oa、第三方向Ob。
步骤S9,将角aOb作为圆心角,将角aOb在待选图像区域中对应的弧形区域作为目标区域。
步骤S10,将投影于目标区域的三维点所构成的三维点云作为目标空间点云。
步骤S11,提取视野图像中的视觉特征点。
步骤S12,利用词袋树匹配方法从目标空间点云中匹配出与视觉特征点匹配的目标三维点。
步骤S13,基于目标三维点计算当前用户的位姿信息及定位坐标。
基于同一发明构思,本申请实施例中还提供了与视觉定位方法对应的视觉定位装置600,由于本申请实施例中的装置解决问题的原理与本申请实施例上述视觉定位方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图12所示,是根据本申请一些实施例所示的视觉定位装置600的示意图,所述装置包括:划分模块601、获取模块602、定位模块603。视觉定位装置600可以是图3中除获取模块310和确定模块320外的一个或多个其他模块,也可以是处理设备112中的确定模块320。其中:
划分模块601,用于依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云。
获取模块602,用于利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点。
定位模块603,用于基于所述目标三维点计算定位信息。
一种可能的实施方式中,上述划分模块601包括:识别子模块、筛选子模块、确定子模块。
识别子模块,用于基于所述视野图像,进行场景识别,以得到所述3D点云地图的二维投影图中与所述视野图像匹配的场景区域。
筛选子模块,用于从AR引擎定位得到的预估坐标中,筛选出位于所述场景区域内的目标预估坐标。
确定子模块,用于根据所述目标预估坐标及所述二维投影图,从所述3D点云地图中确定出所述目标空间点云。
一种可能的实施方式中,确定子模块还用于:
从所述AR引擎获取从起始导航点开始已导航的导航距离值;
依据所述导航距离值,选择匹配的半径参数;其中,所述半径参数与所述导航距离值之间呈正比;
基于所述目标预估坐标及所述半径参数,从所述二维投影图中划分出待选图像区域;
从所述3D点云地图中获取投影至所述待选图像区域的三维点云,以得到所述目标空间点云。
一种可能的实施方式中,上述视觉定位装置600还包括:
更新模块,用于依据计算得到的所述定位信息更新所述起始导航点,以便下一轮视觉定位时从新的所述起始导航点开始计算所述导航距离值。
一种可能的实施方式中,确定子模块还用于:
依据所述目标预估坐标及所述半径参数,从所述二维投影图中划分出圆形图像区域。
获取所述电子设备60的运动方向。
基于所述运动方向确定出目标方向角。
以所述目标方向角为圆心角,从所述圆形图像区域中划分出所述待选图像区域。
一种可能的实施方式中,二维投影图包括多个场景区域,所述识别子模块还用于:
获取每个所述场景区域对应的重建图像;所述对应的重建图像为用于重建投影于所述场景区域的三维点的图像。
根据所述视野图像与所述重建图像之间的相似度,从所述多个场景区域中确定出所述目标场景区域。
一种可能的实施方式中,电子设备60内存储有场景识别模型,上述场景识别模型用于分辨场景区域,上述识别子模块还用于:
利用所述场景识别模型对所述视野图像进行分类,以得到所述目标场景区域。
一种可能的实施方式中,上述获取模块602包括:
提取子模块,用于提取所述视野图像中的视觉特征点;
匹配子模块,用于从所述目标空间点云中获取与所述视觉特征点匹配的三维点,以作为所述目标三维点。
一种可能的实施方式中,上述定位模块603还用于:
依据所述目标三维点计算出所述电子设备60的位姿信息及位置坐标,以作为所述定位信息。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器61运行时执行上述视觉定位方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述视觉定位方法,从而解决3D点云地图复杂且规模过大时定位精度降低、耗时长等问题,进而达到缩短视觉定位时长、确保定位精度的效果,确保AR导航的正确性和流畅性,提高用户体验。
本申请一些实施例提出了一种视觉定位方法。在一些实施例中,可以对二维图像进行语义标注,并基于二维重建图像与三维点云地图的对应关系得到语义三维点云地图。处理设备可以对图像进行特征提取,得到多个特征点。将该图像提取得到的多个特征点与语义三维点云地图进行特征匹配,将匹配后得到的特征点对作为解算集进行位姿计算。可以使用随机抽样一致算法迭代计算解算集,获取每次迭代对应的位姿和内点数。选择多次迭代过程中,最多内点数对应的位姿为所述视觉定位图像的定位信息。
图13是根据本申请一些实施例所示的定位信息确定方法的示例性流程图。
步骤1310,提取定位图像中的至少一个视觉特征点。
视觉特征点是图像中可以被处理设备(例如,处理设备112或确定模块320)识别并处理的特征点。特征点为表示图像特征的点,例如,特征点是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。例如,视觉特征点可以包括方向梯度直方图(Histogram of Oriented Gradient,HOG)、尺度不变特征变换(Scale-invariant feature transform,SIFT)、基于图形处理器的尺度不变特征变换(Graphics Processing Unit,Scale-invariant feature transform,siftGPU)、加速稳健特征(Speeded Up Robust Feature,SURF)、快速特征点提取和描述的算法(oriented fast and rotated brief,ORB)、局部二值模式(Local Binary Pattern, LBP)、哈尔特征(baiHaar-like features,HAAR)等提取的特征点。在一些实施例中,处理设备可以提取定位图像的至少一个视觉特征点。在一些实施例中,视觉特征点的提取方式包括但不限于尺度不变特征变换(Scale-invariant feature transform,SIFT)、基于图形处理器的尺度不变特征变换(Graphics Processing Unit,Scale-invariant feature transform,siftGPU)、快速特征点提取和描述的算法(oriented fast and rotated brief,ORB)等特征提取方法。
步骤1320,将至少一个视觉特征点与三维点云地图中的特征点进行匹配,得到至少一个特征点对。
在一些实施例中,三维点云地图包括语义三维点云地图,进一步处理设备可以将从定位图像中提取的视觉特征点与语义三维点云地图中的特征点进行匹配,得到至少一个特征点对。
在一些实施例中,处理设备可以从三维点云地图中确定目标区域,处理设备可以将视觉特征点与语义三维点云地图中目标区域的特征点进行匹配得到至少一个特征点对。匹配的方法可以包括但不限于词袋树匹配、暴力匹配等方法。特征点对表示定位图像的一个视觉特征点与对应的语义三维点云地图中的特征点组成的一对特征点。该一对特征点中的两个特征点所表示的是同一对象或对象的至少一部分。
语义三维点云地图指的是包括参考对象的语义信息的三维点云地图。语义三维点云地图也可以称为标注后的三维点云地图。如本文中所述,标注指的是在图像(例如,二维图像或三维点云地图)中识别参考对象并标注参考对象的语义信息。参考对象的语义信息包括参考对象的坐标信息、参考对象的属性信息等。参考对象可以包括场景中具有较高辨识性的对象,例如,标识牌。如本文中所述,辨识性可以表示或反映不同对象之间的区别。若场景中某一对象与场景中的其他对象区别较大,例如,大于某一阈值,可以认为该对象具有较高的辨识性,可以指定为参考对象。在一些实施例中,参考对象可以包括指示牌、广告牌、店铺标识等。参考对象的属性信息表示参考对象的特征属性。参考对象可以包括标识 牌。例如,参考对象的属性信息可以包括广告牌、广告牌的品牌方、广告牌的面积、广告类型(例如,公益广告、商业广告等)等信息。
语义三维点云地图可以理解为标注了参考对象的语义信息的三维点云地图。在一些实施例中,可以通过对未标注的三维点云地图进行语义标注得到语义三维点云地图。在一些实施例中,可以通过人工手动对未标注的三维点云地图进行语义标注得到语义三维点云地图。
在一些实施例中,可以获取用于重建三维点云地图的二维图像,并对二维图像进行标注;基于标注后的二维图像重建语义三维点云地图,从而实现三维点云地图的自动标注。
在一些实施例中,处理设备可以基于训练后的神经网络模型得到语义三维点云地图。具体地,可以获取训练后的神经网络模型以及未标注参考对象的多个二维图像,并基于训练后的神经网络模型对未标注参考对象的多个图像进行语义标注,输出已标注参考对象的多个二维图像,并基于已标注参考对象的多个二维图像进行三维重建得到语义三维点云地图。已标注参考对象的图像即为含有语义标注。在一些实施例中,训练后的神经网络模型是根据多组训练样本训练获取的,多组训练样本中的每组训练样本包括:一个或多个样本图像以及训练标签,样本图像包括未标注参考对象的样本图像,训练标签包括已标注参考对象的样本图像。
在一些实施例中,可以基于多个已标注语义的图像确定语义三维点云地图。具体地,处理设备可以获取一个或多个已标注参考对象的图像以及一个或多个未标注参考对象的图像,并提取多个未标注参考对象的图像中的与多个已标注参考对象的图像中的参考对象相关联(即,相对应)的视觉特征点。然后处理设备可以基于相关联的视觉特征点对未标注参考对象的图像进行标注,得到已标注参考对象的图像,基于多个已标注参考对象的图像进行三维重建,得到语义三维点云地图。
关于获取语义三维点云地图的更多内容可以参见图14的内容。
在一些实施例中,至少一个特征点对包括含有语义标注的特征点对和/或未标注语义的特征点对。含有语义标注的特征点对是特征点对中来自三维点云地图的特征点含有语义信息。
步骤1330,基于至少一个特征点对,计算成像设备的定位信息。
在一些实施例中,可以使用随机抽样一致算法(Random Sample Consensus,RANSAC)计算成像设备的定位信息。具体地,处理设备可以从至少一个特征点对中获取第一计数的特征点对,构成解算集;并采用随机抽样一致算法对解算集进行至少一次迭代计算,获取每次迭代对应的位姿和内点数;其中,内点表示视觉特征点与三维点云地图中对应的特征点之间的重投影值在重投影误差内的视觉特征点;处理设备可以根据位姿和内点数,确定成像设备的定位信息。在一些实施例中,解算集包括未标注语义的特征点对和含有语义标注点的特征点对。关于使用随机抽样一致算法计算成像设备的定位信息的更多内容可以参见图14-18的描述,在此不作赘述。
下面将对三维点云地图进行语义标注并使用语义三维点云地图进行视觉定位的方法进行详细阐述。
参照图14所示,是根据本申请一些实施例所示的一种视觉定位方法的示例性流程图。该方法可以由视觉定位系统中的服务器或服务终端来执行,如图14所示,该方法包括:
S1401:提取视觉定位图像中的多个视觉特征点。
其中,视觉定位图像(或称为定位图像或视野图像)可以为用户通过移动设备上传的待定位图像,可选地,用户可以通过移动设备直接拍摄图像作为视觉定位图像上传,也可以拍摄好后从相册中选取图像作为视觉定位图像上传;移动设备可以为手机、平板、智能手表等任何具有拍摄功能或图片存储功能的移动设备,具体视觉定位图像的上传方式和移动设备的选择根据用户需要设计,本申请在此不做任何限制。
可选地,视觉特征点的提取可以利用视觉特征提取方法,对输入的视觉定 位图像进行视觉特征点提取,其中,视觉特征提取方法包括但不限于:尺度不变特征变换(Scale-invariant feature transform,SIFT)、基于图形处理器的尺度不变特征变换(Graphics Processing Unit,Scale-invariant feature transform,siftGPU)、快速特征点提取和描述的算法(oriented fast and rotated brief,ORB)等特征提取方法,本申请在此不做任何限制,具体提取方法根据用户需要设置,并不以上述实施例为限。
S1402:根据预设语义三维点云地图,分别将各视觉定位图像中的视觉特征点与预设语义三维点云地图中对应的特征点进行匹配,得到多个特征点对。
其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对。在一些实施例中,预设语义三维点云地图根据训练样本集训练获取,训练样本集包括:多个二维图像且二维图像的预设区域包含语义标注。在一些实施例中,训练样本集包括:多个未包含语义标注二维图像,标签为语义三维点云地图。在一些实施例中,训练样本集包括:多个三维点云地图,标签为语义三维点云地图。在一些实施例中,训练样本集中的标签语义三维点云地图可以根据包含语义标注的二维图像重建得到,包含语义标注的二维图像可以手动进行标注,或自动进行标注。例如,可以根据训练后的神经网络模型进行二维图像的自动标注。用于标注二维图像的训练后的神经网络模型的训练样本集包括:多个未标注的二维图像,标签为包含语义标注的二维图像。
其中,语义标注可以为当前特征点对所在区域的位置信息(例如,经纬度、海拔高度等),或当前特征点对所在区域的区域相关信息(例如,商场中的服装区、生鲜区、餐饮区等)。
其中,将视觉定位图像中提取的视觉特征点与预设语义三维点云地图进行2D-3D匹配,即匹配视觉定位图像中的2D像素点与预设语义三维点云地图中的3D点,每一个视觉定位图像中的2D像素点与预设语义三维点云地图中对应的3D点即构成一个特征点对。具体地,2D-3D匹配可以为将视觉定位图像的2D像素点与用于重建预设语义三维点云地图的多个2D重建图像中的像素点进 行匹配,多个2D重建图像中的每个像素点与预设语义三维点云地图中的3D点具有对应关系,进而可以建立视觉定位图像的2D像素点与预设语义三维点云地图中的3D点的对应关系,即可以构成一个或多个特征点对。
可选地,采用的匹配方法包括但不限于词袋树匹配、暴力匹配等方法,具体匹配方法根据用户需要设计,本申请在此不做任何限制。
在一些实施例中,预设语义三维点云地图的训练过程如下:
首先需要对图像库中的二维图像进行人工标注,人工标注包括两步:逐一框选二维图像中的预设区域和对预设区域的标注;其中,框选二维图像中的预设区域可以为通过框选确定的:如通过矩形框定、多边形框定等,也可以为通过人工画出框选区域确定的,本申请在此不做任何限制;在框选了预设区域后,需要人工对该预设区域进行标注,标注的内容包括但不限于该标识对应的具体位置坐标、该标识表示的信息等。
随后将标注好的图像库输入至三维点云地图中,借助2D-3D匹配关系实现预设区域的视觉特征点在3D点云地图中对应3D点的自动标注。
最后根据标注好的三维点云地图生成本申请中使用的预设语义三维点云地图。
在一些实施例中,可以基于训练后的神经网络模型生成语义三维点云地图。在一些实施例中,该神经网络模型可以基于多个未标注语义的图像训练得到。具体地,该神经网络模型可以以一个或多个未标注语义的样本图像为训练样本,以一个或多个语义三维点云地图作为标签训练得到。
在一些实施例中,该神经网络模型可以以一个或多个三维点云地图为训练样本,以一个或多个语义三维点云地图作为标签训练得到。
在一些实施例中,该神经网络模型可以以一个或多个未标注语义的样本图像为训练样本,以一个或多个标注语义的样本图像作为标签训练得到。在一些实施例中,处理设备可以将多个二维图像输入训练后的神经网络模型实现对二维图像的自动标注。处理设备还可以基于多个已标注语义的图像进行三维重建 得到语义三维点云地图。
由于该预设语义三维点云地图中包含大量标注过的特征点,所以在使用过程中可以有效提升定位的精度和成功率。
可选地,在本申请的一个实施例中,二维图像的预设区域可以为标识牌区域、地标区域等,例如:商场中每个门店前都有标识牌,预设区域即为包含有标识牌的区域;语义标注可以为当前标识牌的位置信息,像所在楼层。例如在某一标识牌上标注有:3012,即标识当前标识牌所在门店位于3层的12号;也可以为当前标识表示的店面信息(例如,XXX店);由于预设区域为标识区域,所以在预设区域内所有视觉特征点也均含有对应的标识。
S1403:根据预设视觉定位算法和特征点对,进行位姿计算,获取视觉定位图像的定位信息。
可选地,在本申请的一个实施例中,通过改进的RANSAC算法进行位姿计算。
可选地,在对位姿进行计算后,需要对当前的计算结果进行保存,并根据保存的结果进一步确定最终的定位信息。
采用本申请实施例提供的视觉定位方法,可以通过匹配视觉定位图像中的视觉特征点和预设语义三维点云地图中对应的特征点,随后根据预设视觉定位算法和多个特征点对,进行位姿计算,由于特征点对的匹配过程中,采用的是预设语义三维点云地图,该预设语义三维点云地图由包含语义标注的二维图形训练获取,可以有效地将预设语义三维点云地图中的语义信息融合到视觉定位图像的位姿求解中,所以采用本申请提供的方法可以解决现有技术中在对一些室内场景进行视觉定位时,定位精度不高或是不易定位的问题,达到提高定位精度的效果。
图15是根据本申请另一些实施例所示的一种视觉定位方法的示例性流程图,如图15所示,步骤S1403,包括:
S1404:根据多个特征点对,获取预设个数(即第一计数)的特征点对构 成的解算集。
其中,解算集包括:未标注语义的特征点对。
可选地,解算集中还可以包括:含有语义标注的特征点对;即解算集中可以包括未标注语义的特征点对和含有语义标注的特征点对,也可以仅包括未标注语义的特征点对,也可以仅包括含有语义标注的特征点对,对于解算集中特征点对的情况,本申请在此不做任何限制。
可选地,在本申请的一个实施例中,预设个数(即第一计数)可以为12-20之间的任意整数,具体根据用户需要设计,本申请在此不做任何限制。在一些实施例中,预设个数(即第一计数)可以为12-20之外的其他任意整数(例如,1-11、21-100或120-150),并可以根据具体情况进行调整,本申请对此不作限制。
S1405:采用随机抽样一致算法迭代计算解算集,获取每次迭代对应的位姿和内点数。
其中,内点表示视觉特征点与三维点云地图中对应的特征点之间的重投影值在预设重投影误差内的视觉特征点。
在一些实施例中,内点可以为在运算中除解算集外其余的特征点与解算集中的特征点解算出来的位姿的误差小于重投影误差的点。其中,所有特征点对集合减去解算集得到的即为位姿计算集合,分别对解算出的位姿计算集合中的所有特征点对的重投影误差进行计算,当存在特征点对的误差小于预设重投影误差时,则该位姿对应的内点数加一,并且每次迭代后得到的位姿和内点数等信息都进行保存。
可选地,在本申请的一个实施例中,预设重投影误差为8~20像素之间的任一整数值,具体根据用户需要设计,本申请在此不做任何限制。在一些实施例中,预设重投影误差为8~20像素之外的任一整数值(例如,1-7、21-50),并可以根据具体情况进行调整,本申请对此不作限制。可以理解的,为了确保内点选取的准确性,预设重投影误差可以选择较小的像素值。
S1406:根据位姿和内点数,获取视觉定位图像的定位信息。
图16是根据本申请另一些实施例所示的一种视觉定位方法的示例性流程图,如图16所示,步骤S1404,包括:
S1407:判断多个特征点对中的含有语义标注的标注特征点对数量是否大于或等于第一预设值(即计数阈值)。
若大于或等于第一预设值(即计数阈值),则执行S1408a:获取第一预设值个数(即第二计数)的标注特征点对加入解算集中,并获取第二预设值个数(即第三计数)的未标注语义的特征点对加入解算集中。第一预设值个数和第二预设值个数均小于解算集中特征对的总数量(即,预设个数)。关于第一预设值、第二预设值和预设个数的更多内容可以参见下文的描述,在此不做限制。
其中,在解算集中包括第一预设值个数(即第二计数)的标注特征点对的情况下,由于标注特征点对的标识度高,所以基于该解算集进行的位姿计算得到的结果精度较高,可以很好地实现准确定位。
或者,若小于第一预设值(即计数阈值),则执行S1408b:将多个特征点对中的所有含有语义标注的标注特征点对加入解算集,并获取计算值个数(即,第四计数)个未标注语义的特征点对加入解算集。
其中,计算值为预设个数(即第一计数)与所有含有语义标注的标注特征点对数量的差值。在一些实施例中,计算值还可以为包含预设个数(即第一计数)与所有含有语义标注的标注特征点对数量的差值的范围值的某一值。具体地,可以从以该范围值中随机选取一个数作为计算值。例如预设个数(即第一计数)与所有含有语义标注的标注特征点对数量的差值为8,则计算值所属的范围可以加减2个特征点对,即为6-10,可以从中随机取出一个值(例如,7)作为计算值。
其中,第一预设值(即计数阈值)和第二预设值是根据预设关注率和预设个数(即第一计数)计算得到的。
其中,预设关注率(相当于图13中的关注率)即为:需要选择的语义标注的标注特征点对在预设个数(即第一计数)的特征点对中所占的比率;假设预 设个数(即第一计数)为N,预设关注率为ratio,则第一预设值根据N*ratio计算得到,第二预设值根据N*(1-ratio)计算得到。
可选地,在本申请的一个实施例中,预设关注率为0.5~0.8之间的任意值,具体预设关注率的设置根据用户需要设计,本申请在此不做任何限制。在一些实施例中,预设关注率可以为0.5~0.8之间的任意值(例如,0.1~0.5、0.8~1.0),并可以根据具体情况进行调整,本申请对此不作限制。在一些实施例中,可以基于第一预设值调整预设关注率。例如,可以设置固定的第一预设值从而调整预设关注率。又例如,预设关注率可以随着预设个数(即第一计数)的增加而变小,例如第一预设值为M,当预设个数增加时,为了保持第一预设值不变,可以减小预设关注率。
举例说明:若预设个数(即第一计数)为20,预设关注率为0.8,此时计算得到的第一预设值即为16,第二预设值即为4,即表示若语义标注的标注特征点对中包含的特征点对数量大于或等于16,则从语义标注的标注特征点对中任意取出16个特征点对加入解算集中,从未标注语义的特征点对中任意取出4个特征点对加入解算集中;若语义标注的标注特征点对中包含的特征点对数量为12,小于16,则将语义标注的标注特征点对中的所有特征点对均加入解算集中,此时计算值即为8(即,20-12=8),再从未标注语义的特征点对中任意8个取出特征点对加入解算集中。
图17是根据本申请另一些实施例所示的一种视觉定位方法的示例性流程图,如图17所示,S1404包括:
S1409:判断多个特征点对的数量是否大于或等于预设个数(即第一计数)。
若大于或等于预设个数(即第一计数),则从多个特征点对中获取解算集,即执行S1407。
若小于预设个数(即第一计数),则执行S1410:确定定位失败。
其中,当特征点对的数量小于预设个数时,代表解算匹配对数量不足,视觉定位失败;否则,解算集的匹配对数量等于或大于预设个数,进入后续步骤。
图18是根据本申请另一些实施例所示的一种视觉定位方法的示例性流程图,如图18所示,S106包括:
S1411:判断当前迭代次数是否等于预设最大迭代次数(相当于迭代次数阈值)。
若当前迭代次数等于预设最大迭代次数(相当于迭代次数阈值),则执行S1412:选择多次迭代中,最多内点数对应的位姿为视觉定位图像的定位信息。
其中,若当前迭代次数等于预设最大迭代次数(相当于迭代次数阈值),则停止迭代,同时根据迭代过程中,每一次保存的结果,选择迭代多次中内点数最多的解算位姿作为视觉定位图像的最终定位结果。
若当前迭代次数小于最大迭代次数,则返回S1407,继续获取新的解算集并进行位姿解算和对应的内点统计。
可选地,在本申请的一个实施例中,最大迭代次数取30-200中的任意整数即可,具体根据用户需要设计,本申请在此不做任何限制。在一些实施例中,最大迭代次数还可以取30-200之外的任意整数(例如,1-29、201-300),并可以根据具体情况进行调整,本申请对此不作限制。
基于同一发明构思,本申请实施例中还提供了与视觉定位方法对应的视觉定位装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述视觉定位方法相似,因此装置的实施可以参见方法的实施,有益效果的重复之处不再赘述。
参照图19所示,是根据本申请另一些实施例所示的一种视觉定位装置的结构示意图,如图19所示,该装置包括:提取模块1901、匹配模块1902和计算模块1903,该视觉定位装置可以是图3中除获取模块310和确定模块320外的一个或多个其他模块,也可以是处理设备112中的确定模块320。其中:
提取模块1901,用于提取视觉定位图像中的多个视觉特征点;
匹配模块1902,用于根据预设语义三维点云地图,分别将各所述视觉定位图像中的所述视觉特征点与所述预设语义三维点云地图中对应的特征点进行 匹配,得到多个特征点对,其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对,所述预设语义三维点云地图根据训练样本集训练获取,所述训练样本集包括:多个二维图像、且所述二维图像的预设区域包含语义标注;
计算模块1903,用于根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息。
可选地,计算模块1903,还用于根据多个特征点对获取预设个数(即第一计数)的特征点对构成的解算集,解算集包括:未标注语义的特征点对。
采用随机抽样一致算法迭代计算解算集,获取每次迭代对应的位姿和内点数,其中,内点表示视觉特征点与三维点云地图中对应的特征点之间的重投影值在预设重投影误差内的视觉特征点。
根据位姿和内点数,获取视觉定位图像的定位信息。
可选地,解算集还可以包括:含有语义标注点的标注特征点。
计算模块1903,还用于判断多个特征点对中的含有语义标注的标注特征点对数量是否大于或等于第一预设值(即计数阈值)。
若大于或等于第一预设值(即计数阈值),则获取第一预设值个数(即第二计数)的标注特征点对加入解算集中,并获取第二预设值个数(即第三计数)的未标注语义的特征点对加入解算集中;或者,
若小于第一预设值(即计数阈值),则将多个特征点对中的所有含有语义标注的标注特征点对加入解算集,并获取计算值个数(即,第四计数)个未标注语义的特征点对加入解算集,其中,计算值为预设个数与所有含有语义标注的标注特征点对数量的差值。
可选地,计算模块1903,还用于根据预设关注率和预设个数,计算第一预设值和第二预设值。
可选地,计算模块1903,还用于判断多个特征点对的数量是否大于或等于预设个数;
若大于或等于预设个数,则从多个所述点对中获取解算集。
若小于预设个数,则确定定位失败。
可选地,计算模块1903,还用于判断当前迭代次数是否等于预设最大迭代次数。
若当前迭代次数等于预设最大迭代次数,则选择多次迭代中,最多内点数对应的位姿为视觉定位图像的定位信息。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对各流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,可以从解算集中随机选取特征点对计算定位信息。
本申请一些实施例提出了一种图像的视觉特征点的提取方法,在视觉定位时可以提高视觉特征点提取的准确性。在进行视觉定位时,需对定位图像中的视觉特征点进行提取,对视觉特征点提取的准确性直接影响视觉定位的准确性。因此,为了提高定位准确性和定位精度,在视觉特征点时,可以将定位图像划分成存在交叠区域的多个分块,并控制每个分块中的特征点的数量,使得提取的特征点完整且特征点均匀分布于定位图像上。
图20是根据本申请一些实施例所示的视觉特征点提取方法的示例性流程图。图13中的步骤1310可以根据图20所述方法执行。
步骤2010,对定位图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域。
在一些实施例中,处理设备(例如,处理设备112、确定模块320)可以对定位图像进行图像划分得到多个分块。多个分块中的两个或多个分块有交叠区域。交叠区域指分块中的重合区域。划分的方式可以为任意可行的方式,能够使得定位图像被划分为多个分块即可。例如,可以将定位图像竖直或水平的划分为两块,两块中存在交叠区域。又例如,可以将定位图像竖直或水平划分为四块。又例如,还可以沿平行于对角线的方向将定位图像划分为四块。其中至少两块相 邻区域存在交叠区域。
在一些实施例中,还可以将图像划分为多个分块,多个分块中任意相邻的两个分块之间存在交叠区域。
在一些实施例中,可以将定位图像划分为多个相同大小和/或形状的分块,相邻两个分块有交叠区域。多个分块的大小为M×N,M可以为分块水平方向的长度,N可以为分块垂直方向的长度。交叠区域的大小为m×n,并且m×n=ρM×γN,ρ和γ为小于1且大于0的预设系数。在一些实施例中,可以根据情况设置ρ和γ的值。
步骤2020,分别对多个分块进行视觉特征提取,得到多个分块中每个分块对应的特征点集。
在一些实施例中,可以对划分后得到的多个分块的每个分块分别进行视觉特征提取得到每个分块对应的特征点集。特征点集表示特征点所形成的集合。视觉特征提取为提取多个分块的视觉特征点。
在一些实施例中,每个分块对应的特征点集中的特征点的数量可以相同。在一些实施例中,为保证每个分块提取出来的特征点集中特征点的数量相同,每个分块可以采用不同的提取标准。例如,可以指定从每个分块中提取出的特征点集中特征点的数量,每个分块由于分块内图像特征的明显程度不一样,可以对每个分块采用不同的提取标准(例如,特征明显程度高的分块采取的提取参数的梯度大,特征明显程度低的分块采取的提取参数的梯度小),以保证提取出来的特征点集数量相同。在一些实施例中,每个分块对应的特征点集中特征点的数量可以不相同。
在一些实施例中,处理设备可以并行地对每个分块进行视觉特征提取,得到多个分块对应的多个特征点集,每个分块的特征点集中特征点的数量位于预设数值范围内。预设数值范围可以是人为确定的或系统默认值,并可以根据不同情况进行调整。
具体地,处理设备可以并行地对多个分块进行视觉特征提取,得到多个分 块对应的多个候选特征点集,并从候选特征点集中确定特征点集。并行地对多个分块进行视觉特征提取可以是同时对多个分块进行视觉特征提取。候选特征点集为待处理的特征点集。候选特征点集的数量大于或等于预设数值。预设数值为预先设定的值。在一些实施例中,处理设备可以对候选特征点集中特征点的响应值和尺寸参数中的一个或两个进行排序,将响应值和尺寸参数中的一个或两个较大的特征点作为特征点集。特征点集中的特征点个数为第五计数。响应值和尺寸参数为用于表征特征点的参数,通过响应值或尺寸参数可以将该特征点与其他特征点相区别。例如,响应值可以对应于灰度值、亮度值或像素值。在一些实施例中,处理设备还可以随机地从候选特征点集中选出第五计数的特征点作为特征点集。第五计数位于预设数值范围内。
关于对多个分块进行视觉特征提取得到特征点集的更多内容可以参见图23、图31、图32的内容,在此不作赘述。
步骤2030,基于多个分块对应的多个特征点集确定定位图像中的至少一个视觉特征点。
在一些实施例中,处理设备可以基于多个分块对应的多个特征点集中,确定定位图像中的至少一个视觉特征点。每个特征点对应一个尺度参数。在一些实施例中,处理设备可以删除特征点集中坐标参数相同的多个特征点中尺度参数较小的特征点,并将删除后的多个特征点集合并为总特征点集。例如,处理设备可以删除特征点集中坐标参数相同的多个特征点中尺度参数排序大于阈值(如,1)的特征点。通过删除尺寸排序大于1的特征点,可以将尺寸参数排序最大的特征点筛选出来,作为该坐标参数下的特征点。关于删除尺度参数较小的特征点并合并特征点集的更多内容可以参见图32的内容,在此不作赘述。
下面将对定位图像的视觉特征点的提取的方法进行详细阐述。
在实现本申请实施例的技术方案的过程中,本申请发明人发现:
目前,在对图像进行视觉特征点提取前,通常会对图像进行预处理(如图21所示,对①所示的图像进行网格状的2×2划分,得到②所示的图像),然后 对预处理后的图像通过提取技术(例如SIFT、ORB等)进行视觉特征点的提取(如图21所示,对②所示的图像进行视觉特征点的提取,得到③所示的图像)。由于现有的图像预处理的处理方式非常简单,而视觉特征点需要根据该点附近的预设范围内的特征进行提取,在图像的划分线附近的视觉特征点常常因为没有提取到该点附近的预设范围内的特征而出现误匹配或失败匹配(如③所示的图像中的划分线附近的视觉特征点)。
故在通过现有的提取技术对图像进行的视觉特征点以完成视觉定位任务的过程中,由于现有的图像预处理的处理方式非常简单,在图像的划分线附近的视觉特征点常常会出现误匹配或失败匹配,进而造成视觉定位的精度大幅下降甚至失败。
因此,为了改善上述缺陷,本申请实施例提出一种图像的视觉特征点的提取方法及相关装置,其能够提升视觉特征点提取的准确性。需要说明的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
首先,本申请实施例提供的一种图像的视觉特征点的提取方法可应用于电子设备中,该电子设备的设备类型可以是服务器、手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)、可穿戴电子设备、虚拟现实设备、汽车中控台等电子设备,本申请实施例对此不做任何限制。
应理解,在具备有获取数据以及处理数据功能的电子设备(例如,服务器、手机、平板电脑等)上,都可以应用本申请提供的图像的视觉特征点的提取方法。
为便于理解,以该电子设备的设备类型为服务器为例,请参照图22,服务器2210可以与手机2220通信连接,服务器2210可以包括处理器。处理器可以处理与图像的视觉特征点的提取有关的信息和/或数据,以执行本申请中描述的一个或多个功能。例如,处理器可以从手机获取视觉定位图像相关的数据,并 对视觉定位图像进行视觉特征点的提取,进而实现本申请提供的图像的视觉特征点的提取方法。在一些实施例中,处理器可以包括一个或多个处理核(例如,单核处理器或多核处理器)。仅作为举例,处理器可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用指令集处理器(Application Specific Instruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(Reduced Instruction Set Computing,RISC)、或微处理器等,或其任意组合。
为了便于理解,本申请以下实施例将以图22所示的服务器和手机为例,结合附图和应用场景(用户通过手机等电子设备进行AR导航),对本申请实施例提供的图像的视觉特征点的提取方法进行具体阐述。应当理解的是,该服务器2210可以是图1中的服务器110,该手机2220可以是图1中的第一用户终端120和/或第二用户终端140。
请参照图23,图23为本申请实施例提供的图像的视觉特征点的提取的一种流程示意图。该方法可以应用于上述的电子设备(例如服务器),可以包括以下步骤:
S2310,对视觉定位图像进行图像划分,得到多个分块;多个分块中存在交叠区域。
在一些可能的实施例中,基于图22所示的手机以及服务器,并结合“用户通过手机等电子设备进行AR导航”的应用场景,如图24所示,该手机的屏幕显示系统显示了当前输出的界面内容2221,该界面内容2221为手机的主界面。该主界面上显示了多款应用程序,例如,“通讯录”、“定位”、“设备”、“便签”、“更新”、“信息”、“通话”、“设置”以及“导航”。应理解,该界面内容2221还可以包括其他应用程序,本申请对此不作限定。
当用户有询问路径的需求时,可以通过手机进行AR导航(即用户可以通过操作手机实现AR导航)。此时,手机可以响应用户操作,当手机检测到用户点击主界面上的“导航”应用程序的图标2222的操作后,可以启动“导航”应用程序,在启动“导航”应用程序后,如图25所示,手机的界面内容2221可以呈现如界面2223的内容。此时,手机可以打开摄像头,拍摄摄像头朝向的环境的图像,并可以将环境的图像通过显示屏显示出来。
手机在获取到环境的图像后,将该图像作为视觉定位图像,并通过网络将该视觉定位图像发送至服务器,由服务器对该视觉定位图像进行图像划分,得到多个分块。如图26所示,服务器在获取到手机发送的视觉定位图像后,首先可以按照①中所示的分块方式对视觉定位图像进行划分,得到②中所示的多个分块(即多个图像块),其中,①中所示的分块方式包括A、B、C、D四个划分块,A划分块为实线围成的区域,B、C、D划分块为不同密度的虚线围成的区域,该四个划分块的交叠关系为:A划分块与B划分块存在交叠部分,B划分块与A和D划分块存在交叠部分,D划分块与B和C存在交叠部分,C划分块与D和B划分块存在交叠部分。通过该四个划分块,服务器可以在对视觉定位图像进行划分后,得到对应的四个分块(A`、B`、C`、D`,图26中未示出),该四个分块的交叠关系与上述的四个划分块的交叠关系一致,即服务器对视觉定位图像进行图像划分,得到的多个分块中存在交叠区域。
需要说明的是,服务器既可以按图26所示的划分方式对视觉定位图像进行划分,也可以根据实际应用场景对视觉定位图像进行不同的划分,确保多个分块中存在交叠区域即可,因此本申请并未对服务器对视觉定位图像进行划分的方式进行限定。另外,上述的多个分块中存在交叠区域可以理解为:多个分块中至少存在一个交叠区域。也即是说,多个分块中,某两个分块之间可以不交叠。
在一些实施例中,可以基于视觉定位图像的特征数量进行图像划分,例如视觉定位图像中含有的特征数量多,则可以对视觉定位图像划分为更多的分块,分块的数量可以根据特征数量确定,本申请对此不作限制。
需要补充的是,手机在获取到环境的图像后,可以直接将该图像作为视觉定位图像,并对该视觉定位图像进行图像的视觉特征点的提取,进而可以理解,本申请对于本申请提供的方法所应用的电子设备的具体设备类型不作限定,本实施例仅以一种特定的场景示例性地将本申请提供的方法应用在服务器上。
应理解,在S2310之前,本申请提供的方法还可以包括:获取视觉定位图像,其中,该视觉定位图像可以是以表征一幅图像的数据,也可以是表征视频(即多副图像的数据)的数据,本申请对于视觉定位图像的具体形式不做限定。
S2320,对每个分块进行视觉特征提取,得到每个分块对应的特征点集。
在一些可能的实施例中,请继续参照图26,服务器在对视觉定位图像进行图像划分,得到多个分块后(即得到②中所示的多个分块后),服务器还可以对每个分块进行视觉特征提取,得到③中所示的视觉特征点,其中,a至m共同视觉特征点可以理解为坐标参数相同的特征点。具体的,A`、B`、C`、D`,A`分块对应的特征点集包括9个特征点,其中a至i特征点为A`分块与B`分块的交叠区域中的共同特征点;B`分块对应的特征点集包括25个特征点,其中a至i特征点为A`分块与B`分块的交叠区域中的共同特征点,j至m特征点为B`分块与C`分块的交叠区域中的共同特征点,m至o特征点为B`分块与D`分块的交叠区域中的共同特征点;C`分块对应的特征点集包括6个特征点,其中j至m特征点为C`分块与B`分块的交叠区域中的共同特征点,m特征点为C`分块与D`分块的交叠区域中的共同特征点;D`分块对应的特征点集包括3个特征点,其中m至o特征点为D`分块与B`分块的交叠区域中的共同特征点,m特征点为D`分块与C`分块的交叠区域中的共同特征点。可以理解,上述的共同特征点实际为重复提取的特征点。
需要说明的是,对每个分块进行视觉特征提取的提取方法可以是ORB提取方法、SIFT提取方法、siftGPU提取方法等。
应理解,由于多个分块中存在交叠区域,两个交叠的分块的交叠区域中会重复提取坐标参数相同的特征点,当两个交叠分块中的一个分块的交叠区域中 存在某一特征点位于或靠近该分块边界时,该特征点在两个交叠分块中的另一个分块实际并未位于或靠近该分块边界,即坐标参数相同的特征点中,总存在一个特征点不靠近分块边界。
在一些实施例中,可以对每个分块采取不同的提取参数(如,梯度)以提取特征点。在一些实施例中,可以对图像中特征数量较少的分块采取低标准的提取参数(如,梯度小)以提取更多的特征点。在一些实施例中,可以对图像中特征数量较多的分块采取高标准的提取参数(如,梯度大)以提取更少的特征点。
S2330,合并交叠区域中坐标参数相同的特征点,并根据多个分块对应的多个特征点集确定视觉定位图像对应的总特征点集。
在一些可能的实施例中,请再参照图26,由于交叠区域中存在重复提取的特征点(例如,A`分块和B`分块对应的特征点集中均包括了a至i特征点),因此,在得到每个分块对应的特征点集后,服务器还可以合并交叠区域中坐标参数相同的特征点,以合并A`分块与B`分块的交叠区域中的坐标参数相同的特征点(即共同特征点)为例,服务器可以随机保留A`分块对应的特征点集中的a特征点和B`分块对应的特征点集中的a特征点中的一个,即随机保留坐标参数相同的特征点中的一个,进而实现合并交叠区域中坐标参数相同的特征点。
在合并完交叠区域中坐标参数相同的特征点后,服务器可以将A`至D`分块对应的四个特征点集合并为一个特征点集作为视觉定位图像对应的总特征点集,以实现根据多个分块对应的多个特征点集确定视觉定位图像对应的总特征点集。
在一些可能的实施例中,当服务器确定出总特征点集后可以根据总特征点集确定出图像的视觉定位点,并根据视觉定位点确定出与用户需求对应的方位标识数据,进而有效地完成视觉定位任务。然后将该方位标识数据发送至手机,以支持手机进行AR导航,进而手机可以根据该方位标识数据在显示屏上显示出相应的路径指示(如图27所示,手机可以根据方位标识数据在显示屏上显示出“导航信息:直走30米到目的地。”),以实现用户的询问路径的需求,完 成用户可以通过操作手机实现AR导航。
应理解,由于多个分块中存在交叠区域,两个交叠的分块的交叠区域中会重复提取坐标参数相同的特征点,而坐标参数相同的特征点中,总存在一个特征点不靠近分块边界。从而通过将交叠区域中坐标参数相同的特征点进行合并的方式,可以实现对该特征点附近的预设范围内的特征进行正确提取,进而多个分块中存在交叠区域可以确保交叠的两个分块的划分线附近的视觉特征点能够被正确提取,故本申请能够提升视觉特征点提取的准确性。
进一步的,在图23的基础上,下面给出一种完整方案可能的实现方式,请参照图28,图28示出了本申请实施例提供的多轮对话的对话数据处理方法的另一种流程图。
对于如何对视觉定位图像进行图像划分,以进一步提升视觉特征点提取的准确性,S2310可以包括:
S2311,对视觉定位图像进行图像划分,得到多个分块,其中,任意相邻的两个分块之间存在交叠区域。
在一些可能的实施例中,基于图25所示的应用场景中的视觉定位图像,请参照图29,服务器可以分别按①、②、③、④中所示的划分块(1至4)对该视觉定位图像进行划分,得到如图30所示的多个分块(1至4),其中,分块1与分块2、3相邻,且分块1与分块2、3之间存在交叠区域;分块2与分块1、4相邻,且分块2与分块1、4之间存在交叠区域;分块3与分块1、4相邻,且分块3与分块1、4之间存在交叠区域;分块4与分块2、3相邻,且分块4与分块2、3之间存在交叠区域。即图30所示的多个分块,任意相邻的两个分块之间存在交叠区域。
由于任意相邻的两个分块之间存在交叠区域,任意靠近或位于分块边界的特征点总会存在一个坐标参数相同的特征点不靠近分块边界,进而可以完全避免图像的划分线附近的视觉特征点由于没有提取到该点附近的预设范围内的特征而出现误匹配或失败匹配的情况,故而进一步提升视觉特征点提取的准确 性。
进一步的,为了合理地对视觉定位图像进行图像划分,服务器对视觉定位图像进行图像划分所得到的每个分块的大小可以为M×N,交叠区域的大小可以为m×n,并且m×n=γM×γN,γ为小于1且大于0的预设系数。可选地,γ的取值范围可以为1/5~1/2,即0.2~0.5。在一些实施例中,每个分块的大小可以为M×N,交叠区域的大小可以为m×n,并且m×n=ρM×γN,ρ和γ为小于1且大于0的预设系数。可选地,ρ和γ的取值范围可以为0.2~0.5中的任意值。
还需要补充的是,上述的多个分块的数量可以是N1×N2,其中,N1、N2的范围可以是3~8,且N1、N2可以不相等。在一些实施例中,N1、N2的范围可以是3~8以外的任意值(例如,1-2、9-100),并可以根据具体情况进行调整,本申请对此不作限制。
在一些实施例中,处理设备可以基于其他方式对图像进行划分。在一些实施例中,处理设备可以将图像划分为多个三角形。在一些实施例中,处理设备可以对图像划分为多个菱形。在一些实施例中,处理设备可以对图像划分为多个圆形。在一些实施例中,处理设备可以对图像采取多种形式的划分,划分后的图像可以包括但不限于三角形、菱形、圆形等。
应理解,上述参数的设置均为发明人通过多次的试验得到的合理值,通过上述参数的设定,能够合理地对视觉定位图像进行图像划分,并且提升视觉特征点提取的准确性以及提取效率。
另外,在实现本申请实施例的技术方案的过程中,本申请发明人还发现:
在实际应用场景中,图像中通常存在大量的无效特征区域(如行人、动态物体等),当这些区域的纹理比较丰富时,现有的提取技术所提取的视觉特征点将集中在这些区域,再如图21所示,当采用SIFT或ORB等视觉特征点提取算法对②中所示的图像进行视觉特征点提取时,所提取出的视觉特征点通常的分布如③中所示,③所示的图像中的视觉特征点集中在行人等动态物体上,没有很 好的表示出该图像的总体特征。
故在通过现有的提取技术对图像进行的视觉特征点以完成视觉定位任务的过程中,现有的提取技术对图像进行的视觉特征点的提取常常会集中分布在如行人、动态物体等无效的特征区域,这会导致视觉定位出现大量误匹配或失败匹配,造成视觉定位的精度大幅下降甚至失败。
因此,为了改善上述缺陷,本申请实施例所提供的方法还能够进一步提升视觉特征点提取的准确性。需要说明的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
在图23的基础上,为了解决现有的提取技术对图像进行的视觉特征点的提取常常会集中分布在如行人、动态物体等无效的特征区域的技术问题,请参照图31,S2320可以包括:并行地对每个分块进行视觉特征提取,得到每个分块对应的特征点集;每个分块对应的特征点集的特征点数量位于预设数值范围内。
在一些可能的实施例中,为了提升图像的视觉特征点的提取速度,服务器在对视觉定位图像进行图像划分,得到多个分块后,还可以并行地对每个分块进行视觉特征提取,得到每个分块对应的特征点集,其中,每个分块对应的特征点集的特征点数量位于预设数值范围内。
应理解,由于通过并行地对每个分块进行视觉特征提取,本申请还可以提升图像的视觉特征点的提取速度,进而本申请能够提升视觉特征点提取的提取效率。由于确保每个分块对应的特征点集的特征点数量位于预设数值范围内,即每个分块中的特征点集的特征点数量相近,整个视觉定位图像的特征点分布较为均为,避免所提取的视觉特征点集中分布在如行人、动态物体等无效的特征区域,故而本申请所提取的总特征点集能够表示出该图像的总体特征,能够进一步提升视觉特征点提取的准确性。
进一步的,在图31的基础上,请参照图32,对于如何并行地对每个分块 进行视觉特征提取,得到每个分块对应的特征点集,S2321可以包括:
S2321-1,并行地对每个分块进行视觉特征提取,得到每个分块对应的提取特征点集;提取特征点集的特征点数量大于或等于预设数值。
在一些可能的实施例中,假设预设数值为250,则服务器可以在并行地对每个分块进行视觉特征提取时,对每个分块至少提取250个特征点作为该分块对应的特征点集。
S2321-2,从提取特征点集中确定特征点集,特征点集的特征点数量位于预设数值范围内。
在一些可能的实施例中,假设该预设数值范围为125±5,当得到每个分块对应的提取特征点集后,以对一个分块对应的提取特征点集中确定特征点集为例,服务器可以从该提取特征点集提取出125个特征点作为特征点集。
需要说明的是,上述的预设数值范围可以简化为一个预设值(例如,125)。
进一步的,每个特征点对应一个特征参数,对于如何从提取特征点集中确定特征点集,可以:根据特征点的特征参数从提取特征点集中确定q(相当于图20中的第五计数)个特征点作为特征点集;特征参数包括响应值以及尺度参数中的至少一个参数。
当特征参数包括响应值时,对于如何根据特征点的特征参数从提取特征点集中确定q个特征点作为特征点集,在一些可能的实施例中,可以:按响应值由大到小的顺序将提取特征点集中的前q个特征点的集合确定为特征点集。例如,假设预设数值范围为125±5,则从分块A中提取的提取特征点集包括250个特征点后,可以按特征点的响应值由大到小的顺序将该250个特征点依次排列,然后取前125个特征点作为特征点集。
当特征参数包括尺度参数时,对于如何根据特征点的特征参数从提取特征点集中确定q个特征点作为特征点集,在一些可能的实施例中,可以:按尺度参数由大到小的顺序将提取特征点集中的前q个特征点的集合确定为特征点集。例如,假设预设数值范围为125±5,则从分块A中提取的提取特征点集包括250 个特征点后,可以按特征点的尺度参数由大到小的顺序将该250个特征点依次排列,然后取前125个特征点作为特征点集。
当特征参数包括响应值以及尺度参数时,对于如何根据特征点的特征参数从提取特征点集中确定q个特征点作为特征点集,在一些可能的实施例中,可以:按响应值由大到小的顺序将提取特征点集中的前q1个特征点的集合,然后按尺度参数由大到小的顺序将前q1个特征点的集合中的q2个特征点的集合确定为特征点集,其中,q1大于q2,q2位于预设数值范围内。例如,假设预设数值范围为125±5,则从分块A中提取的提取特征点集包括250个特征点后,可以先按特征点的响应值由大到小的顺序将该250个特征点依次排列,然后取前200个特征点,然后按特征点的尺度参数由大到小的顺序将该200个特征点依次排列,取前125个特征点作为特征点集。
在一些实施例中,特征参数还可以包括像素值、亮度值、对比度值等。在一些实施例中,可以根据特征点的像素值、亮度值或对比度值从提取特征点集中确定q个特征点作为特征点集。根据特征点的像素值、亮度值或对比度值确定特征点集的方法与根据响应值以及尺度参数确定特征点集的方法类似,本申请对此不作赘述。
基于上述可能的实施例,可以理解,本申请对于根据特征点的特征参数从提取特征点集中确定q个特征点作为特征点集的具体形式未作限定,在实际的应用场景中,可以根据实际需求采用不同的实施方式实现根据特征点的特征参数从提取特征点集中确定q个特征点作为特征点集。
可选地,假设上述的多个分块的数量为N1×N2,一幅视觉定位图像需要提取的视觉特征点为Q,则每个分块需要提取的视觉特征点可以为Q/(N1×N2),上述的预设数值可以为α×Q/(N1×N2),其中α取值范围为1.0~2.0,Q的取值范围为500~4000。应理解,上述参数的设置均为发明人通过多次的试验得到的合理值,通过上述参数的设定,能够合理地对视觉定位图像进行图像划分,并且提升视觉特征点提取的准确性以及提取效率。在一些实施例中,上述α取值范 围还可以为小于1.0或大于2.0,Q的取值范围可以为小于500或大于4000,本申请对此不作限制。
对于如何合并交叠区域中坐标参数相同的特征点,并根据多个分块对应的多个特征点集确定视觉定位图像对应的总特征点集,每个特征点对应一个尺度参数,当多个特征点集合中存在多个坐标参数相同的特征点时,S2330可以包括:
S2331,删除多个坐标参数相同的特征点中尺度参数较小的特征点。
在一些可能实施例中,请参照图33,①所示的分块中包括a至h特征点(共同视觉特征点),②所示的分块中包括b至j特征点,③所示的分块中包括a至e以及k特征点,④所示的分块中包括b至e以及i、j特征点。也即是说,服务器在对每个分块进行视觉特征提取时,得到的多个特征点集中存在坐标参数相同的特征点,例如①所示的分块中包括的a特征点与③所示的分块中同样包括的a特征点,应理解,①所示的分块中包括的a特征点与③所示的分块中同样包括的a特征点仅是坐标参数相同。
以删除①所示的分块中包括的a特征点与③所示的分块中同样包括的a特征点中尺度参数较小的特征点为例,可以删除尺度参数较小的那个特征点,保留尺度参数较大的那个特征点。在一些实施例中,删除尺度参数较小的特征点可以为删除特征点集中坐标参数相同的多个特征点中尺度参数排序大于阈值(如,1)的特征点。通过删除尺寸排序大于1的特征点,可以将尺寸参数排序最大的特征点筛选出来,作为该坐标下的特征点。在一些实施例中,若相同的特征点的尺度参数相同,可以随机删除一个特征点。
S2332,将删除后的多个特征点集合并为总特征点集。
在一些可能实施例中,在删除多个坐标参数相同的特征点中尺度参数较小的特征点,或随机保留一个坐标参数(即,随机删除其他多个坐标参数)相同的特征点中尺度参数相同的特征点后,可以理解,此时的多个特征点集合中同一个坐标参数上仅存在一个特征点,进而可以将该多个特征点集合中的所有特征 点直接作为总特征点集。
应理解,本申请通过并行地对每个分块进行视觉特征提取,得到每个分块对应的提取特征点集,且每个分块中的特征点集的特征点数量相近,整个视觉定位图像的特征点分布较为均为,避免所提取的视觉特征点集中分布在如行人、动态物体等无效的特征区域。以及本申请通过将交叠区域中坐标参数相同的特征点进行合并的方式,可以实现对该特征点附近的预设范围内的特征进行正确提取,进而交叠的两个分块的划分线附近的视觉特征点能够被正确提取,进而本申请能够极大地提升视觉特征点提取的准确性以及提取效率。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种图像的视觉特征点的提取装置的实现方式2311,请参阅图34,图34示出了本申请实施例提供的图像的视觉特征点的提取装置的一种功能模块图。需要说明的是,本实施例所提供的图像的视觉特征点的提取装置3400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该图像的视觉特征点的提取装置3400包括:划分模块3410、提取模块3420。
可选地,上述模块可以软件或固件(Firmware)的形式存储于存储器中或固化于该电子设备的操作系统(Operating System,OS)中,并可由电子设备中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
其中,划分模块3410可以用于支持电子设备执行上述S2310、S2311等,和/或用于本文所描述的技术的其他过程。
提取模块320可以用于支持电子设备执行上述S2320、S2330、S2321、S2321-1、S2321-2、S2331、S2332等,和/或用于本文所描述的技术的其他过程。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
基于上述方法实施例,本申请实施例还提供了一种电子设备3500,如图 35所示,为本申请实施例提供的电子设备3500结构示意图,包括:处理器3510、存储介质3520和总线3530。存储介质3520可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令(比如,图34中的装置中划分模块3410、提取模块3420对应的执行指令等)。当电子设备3500运行时,所述处理器3510与所述存储介质3520之间通过总线3530通信,处理器3510可以通过运行存储在存储介质3520的上述指令,从而使得电子设备3500执行本申请一些实施例中所提供的图像的视觉特征点的提取,以及各种功能应用和数据处理等。应当理解,电子设备3500是可以实现图1中视觉定位系统100的电子设备。
基于上述方法实施例,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述图像的视觉特征点的提取方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述图像的视觉特征点的提取方法,从而解决如何提升视觉特征点提取的准确性是目前亟待解决的技术问题,进而达到提升视觉特征点提取的准确性的效果。
综上所述,本申请实施例提供的图像的视觉特征点的提取方法及相关装置。该方法包括:对视觉定位图像进行图像划分,得到多个分块;多个分块中存在交叠区域;对每个分块进行视觉特征提取,得到每个分块对应的特征点集;合并交叠区域中坐标参数相同的特征点,并根据多个分块对应的多个特征点集确定视觉定位图像对应的总特征点集。由于多个分块中存在交叠区域,两个交叠的分块的交叠区域中会重复提取坐标参数相同的特征点,而坐标参数相同的特征点中,总存在一个特征点不靠近分块边界,通过将交叠区域中坐标参数相同的特征点进行合并的方式,可以实现对特征点附近的预设范围内的特征进行正确提取,进而实现交叠的两个分块的划分线附近的视觉特征点能够被正确提取,故本申请能够提升视觉特征点提取的准确性。
本申请实施例可能带来的有益效果包括但不限于:(1)可以通过一个或 多个约束条件在定位过程中缩小三维点云地图的搜索区域,从而缩短定位所需时长,节省计算资源;(2)通过同时对图像中的已标注语义的特征点和未标注语义的特征点进行提取,可以避免算法只关注已标注语义的特征点从而造成最终使用随机抽样一致算法计算得到的误差。(3)通过对图像划分为含有叠合区域的多个分块,可以保证分块边缘特征点的正确提取。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至 一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。
Claims (66)
- 一种视觉定位方法,其中,所述方法包括:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
- 如权利要求1所述的方法,其中,所述基于所述定位图像,从所述三维点云地图中确定出目标区域包括:基于所述定位图像,确定与所述目标区域的范围相关联的一个或多个约束条件;以及基于所述一个或多个约束条件从所述三维点云地图中确定所述目标区域,所述一个或多个约束条件与所述定位图像对应的场景、所述成像设备的初步预估位置或所述成像设备的方位信息中的至少一个有关。
- 如权利要求2所述的方法,其中,所述基于所述一个或多个约束条件从所述三维点云地图中确定所述目标区域包括:对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域;以及基于所述第一区域确定所述目标区域。
- 如权利要求3所述的方法,其中,所述基于所述第一区域确定所述目标区域包括:获取所述成像设备的初步预估位置,所述初步预估位置由所述成像设备相关联的定位模块获取;基于所述成像设备的初步预估位置,从所述第一区域中确定第二区域,所述 第二区域为所述第一区域中距离所述初步预估位置在一定阈值内的区域;以及根据所述第二区域确定所述目标区域。
- 如权利要求4所述的方法,其中,所述根据所述第二区域确定所述目标区域包括:根据所述成像设备的方位信息,从所述第二区域中确定第三区域;以及指定所述第三区域为所述目标区域。
- 如权利要求5所述的方法,其中,所述根据所述成像设备的方位信息,从所述第二区域中确定第三区域包括:获取所述成像设备的运动方向;基于所述运动方向确定所述成像设备的方位信息,所述方位信息包括所述运动方向的角度范围;以及基于所述角度范围,从所述第二区域中确定在所述角度范围内的所述第三区域。
- 如权利要求3所述的方法,其中,所述对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域包括:获取用于重建所述三维点云地图的多个重建图像,所述多个重建图像中的每一个重建图像对应一个场景区域;以及根据所述定位图像与所述重建图像之间的相似度,从多个场景区域中确定出所述第一区域。
- 如权利要求3所述的方法,其中,所述对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域包括:利用场景识别模型对所述定位图像以及所述三维点云地图进行处理,得到 所述第一区域;其中,所述场景识别模型为预先训练得到。
- 如权利要求1所述的方法,其中,所述基于所述定位图像和所述目标区域,确定所述成像设备的定位信息,包括:提取所述定位图像中的至少一个视觉特征点;将所述至少一个视觉特征点与所述目标区域中的特征点进行匹配,得到至少一个特征点对;基于所述至少一个特征点对,计算所述成像设备的定位信息。
- 如权利要求9所述的方法,其中,所述三维点云地图包括语义三维点云地图,获取所述语义三维点云地图包括:获取训练后的神经网络模型;获取未标注参考对象的一个或多个图像;将所述一个或多个图像输入所述训练后的神经网络模型,得到已标注参考对象的一个或多个图像;基于所述一个或多个已标注参考对象的图像,确定所述语义三维点云地图;其中,所述训练后的神经网络模型根据多组训练样本训练获取,所述多组训练样本中的每组训练样本包括:一个或多个样本图像以及训练标签,所述样本图像包括未标注参考对象的样本图像,所述训练标签包括已标注参考对象的样本图像。
- 如权利要求9所述的方法,其中,所述三维点云地图包括语义三维点云地图,获取所述语义三维点云地图包括:获取多个图像,所述多个图像中包括一个或多个已标注参考对象的图像,以及一个或多个未标注参考对象的图像;提取所述一个或多个未标注参考对象的图像中的与所述已标注参考对象的图像中的所述参考对象相关联的视觉特征点;以及基于所述视觉特征点对所述未标注参考对象的图像进行标注,得到已标注参考对象的图像;基于所述多个已标注参考对象的图像,确定所述语义三维点云地图。
- 如权利要求9所述的方法,其中,所述至少一个特征点对包括含有语义标注的特征点对和未标注语义的特征点对。
- 如权利要求9所述的方法,其中,所述基于所述至少一个特征点对,计算所述成像设备的定位信息包括:从所述至少一个特征点对中获取第一计数的特征点对,构成解算集;所述解算集包括未标注语义的特征点对;采用随机抽样一致算法对所述解算集进行至少一次迭代计算,获取每次迭代对应的位姿和内点数;其中,所述内点表示所述视觉特征点与所述三维点云地图中对应的特征点之间的重投影值在重投影误差内的视觉特征点;根据所述位姿和所述内点数,确定所述成像设备的定位信息。
- 如权利要求13所述的方法,其中,所述解算集还包括含有语义标注点的特征点对;所述从所述至少一个特征点对中获取第一计数的特征点对,构成解算集,包括:判断所述至少一个特征点对中含有语义标注的特征点对的数量是否大于或等于计数阈值;若大于或等于所述计数阈值,则从所述至少一个特征点对中获取第二计数的所述含有语义标注的特征点对加入所述解算集中,并获取第三计数的未标注语义的特征点对加入所述解算集中;或者,若小于所述计数阈值,则将所述至少一个特征点对中所有含有语义标 注的特征点对加入所述解算集,并获取第四计数的所述未标注语义的特征点对加入所述解算集;其中,所述第四计数为所述第一计数与所述至少一个特征点对中含有语义标注的特征点对数量的差值。
- 如权利要求14所述的方法,其中,所述方法还包括:根据关注率和所述第一计数,计算所述第二计数和所述第三计数。
- 如权利要求13所述的方法,其中,所述从所述至少一个特征点对中获取第一计数的特征点对,构成解算集,包括:判断所述至少一个特征点对的数量是否大于或等于所述第一计数;若大于或等于所述第一计数,则从所述至少一个特征点对中获取所述解算集;或者若小于所述第一计数,则确定定位失败。
- 如权利要求13所述的方法,其中,所述根据所述位姿和所述内点数,确定所述成像设备的定位信息,包括:判断当前迭代次数是否等于迭代次数阈值;若所述当前迭代次数等于所述迭代次数阈值,则确定多次迭代中内点数最多的一次迭代对应的位姿以及对应的位置为所述成像设备的定位信息。
- 如权利要求9所述的方法,其中,所述提取所述定位图像中的至少一个视觉特征点,包括:对所述定位图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域;分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集;基于所述多个分块对应的多个特征点集确定所述定位图像中的至少一个视觉特征点。
- 如权利要求18所述的方法,其中,所述多个分块中每个分块对应的特征点集中特征点数量位于预设数值范围内。
- 如权利要求18所述的方法,其中,所述多个分块中任意相邻的两个分块之间存在交叠区域。
- 如权利要求18所述的方法,其中,所述多个分块的大小为M×N,所述交叠区域的大小为m×n,并且m×n=ρM×γN,ρ和γ为小于1且大于0的预设系数。
- 如权利要求19所述的方法,其中,所述分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集,包括:分别对所述多个分块进行视觉特征提取,得到所述多个分块对应的多个候选特征点集;所述候选特征点集的特征点数量大于或等于预设数值;从所述候选特征点集中确定所述特征点集,所述特征点集的特征点数量位于所述预设数值范围内。
- 如权利要求22所述的方法,其中,所述从所述候选特征点集中确定所述特征点集包括:根据特征点的特征参数从所述候选特征点集中确定第五计数的特征点作为所述特征点集;所述第五计数位于所述预设数值范围内,所述特征参数包括响应值以及尺度参数中的一个或两个。
- 如权利要求18所述的方法,其中,每个特征点对应一个尺度参数,所述基于所述多个分块对应的多个特征点集确定所述定位图像中的至少一个视觉特征点,包括:删除所述特征点集中坐标参数相同的多个特征点中尺度参数排序大于阈值的特征点;将删除后的所述多个特征点集合并为所述总特征点集;以及从所述总特征点集中确定所述至少一个视觉特征点。
- 一种视觉定位系统,包括:至少一个存储介质,所述存储介质包括用于视觉定位的指令集;至少一个处理器,所述至少一个处理器与所述至少一个存储介质通信,其中,在执行所述指令集时,所述至少一个处理器被配置为:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
- 如权利要求25所述的系统,其中,为了基于所述定位图像,从所述三维点云地图中确定出目标区域,所述一个或以上处理器被配置为使所述系统:基于所述定位图像,确定与所述目标区域的范围相关联的一个或多个约束条件;以及基于所述一个或多个约束条件从所述三维点云地图中确定所述目标区域,所述一个或多个约束条件与所述定位图像对应的场景、所述成像设备的初步预估位置或所述成像设备的方位信息中的至少一个有关。
- 如权利要求26所述的系统,其中,为了基于所述一个或多个约束条件从所述三维点云地图中确定所述目标区域,所述一个或以上处理器被配置为使所述系统:对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域;以及基于所述第一区域确定所述目标区域。
- 如权利要求27所述的系统,其中,为了基于所述第一区域确定所述目标区域,所述一个或以上处理器被配置为使所述系统:获取所述成像设备的初步预估位置,所述初步预估位置由所述成像设备相关联的定位模块获取;基于所述成像设备的初步预估位置,从所述第一区域中确定第二区域,所述第二区域为所述第一区域中距离所述初步预估位置在一定阈值内的区域;以及根据所述第二区域确定所述目标区域。
- 如权利要求28所述的系统,其中,为了根据所述第二区域确定所述目标区域,所述一个或以上处理器被配置为使所述系统:根据所述成像设备的方位信息,从所述第二区域中确定第三区域;以及指定所述第三区域为所述目标区域。
- 如权利要求29所述的系统,其中,为了根据所述成像设备的方位信息,从所述第二区域中确定第三区域,所述一个或以上处理器被配置为使所述系统:获取所述成像设备的运动方向;基于所述运动方向确定所述成像设备的方位信息,所述方位信息包括所述运动方向的角度范围;以及基于所述角度范围,从所述第二区域中确定在所述角度范围内的所述第三 区域。
- 如权利要求27所述的系统,其中,为了对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域,所述一个或以上处理器被配置为使所述系统:获取用于重建所述三维点云地图的多个重建图像,所述多个重建图像中的每一个重建图像对应一个场景区域;以及根据所述定位图像与所述重建图像之间的相似度,从多个场景区域中确定出所述第一区域。
- 如权利要求27所述的系统,其中,为了对所述定位图像进行场景识别以得到所述三维点云地图中与所述定位图像的场景匹配的第一区域,所述一个或以上处理器被配置为使所述系统:利用场景识别模型对所述定位图像以及所述三维点云地图进行处理,得到所述第一区域;其中,所述场景识别模型为预先训练得到。
- 如权利要求25所述的系统,其中,为了基于所述定位图像和所述目标区域,确定所述成像设备的定位信息,所述一个或以上处理器被配置为使所述系统:提取所述定位图像中的至少一个视觉特征点;将所述至少一个视觉特征点与所述目标区域中的特征点进行匹配,得到至少一个特征点对;基于所述至少一个特征点对,计算所述成像设备的定位信息。
- 如权利要求33所述的系统,其中,所述三维点云地图包括语义三维点云地图,为了获取所述语义三维点云地图,所述一个或以上处理器被配置为使所 述系统:获取训练后的神经网络模型;获取未标注参考对象的一个或多个图像;将所述一个或多个图像输入所述训练后的神经网络模型,得到已标注参考对象的一个或多个图像;基于所述一个或多个已标注参考对象的图像,确定所述语义三维点云地图;其中,所述训练后的神经网络模型根据多组训练样本训练获取,所述多组训练样本中的每组训练样本包括:一个或多个样本图像以及训练标签,所述样本图像包括未标注参考对象的样本图像,所述训练标签包括已标注参考对象的样本图像。
- 如权利要求33所述的系统,其中,所述三维点云地图包括语义三维点云地图,为了获取所述语义三维点云地图,所述一个或以上处理器被配置为使所述系统:获取多个图像,所述多个图像中包括一个或多个已标注参考对象的图像,以及一个或多个未标注参考对象的图像;提取所述一个或多个未标注参考对象的图像中的与所述已标注参考对象的图像中的所述参考对象相关联的视觉特征点;以及基于所述视觉特征点对所述未标注参考对象的图像进行标注,得到已标注参考对象的图像;基于所述多个已标注参考对象的图像,确定所述语义三维点云地图。
- 如权利要求33所述的系统,其中,所述至少一个特征点对包括含有语义标注的特征点对和未标注语义的特征点对。
- 如权利要求33所述的系统,其中,为了基于所述至少一个特征点对,计算所述成像设备的定位信息,所述一个或以上处理器被配置为使所述系统:从所述至少一个特征点对中获取第一计数的特征点对,构成解算集;所述解算集包括未标注语义的特征点对;采用随机抽样一致算法对所述解算集进行至少一次迭代计算,获取每次迭代对应的位姿和内点数;其中,所述内点表示所述视觉特征点与所述三维点云地图中对应的特征点之间的重投影值在重投影误差内的视觉特征点;根据所述位姿和所述内点数,确定所述成像设备的定位信息。
- 如权利要求37所述的系统,其中,所述解算集还包括含有语义标注点的特征点对;为了从所述至少一个特征点对中获取第一计数的特征点对,构成解算集,所述一个或以上处理器被配置为使所述系统:判断所述至少一个特征点对中含有语义标注的特征点对的数量是否大于或等于计数阈值;若大于或等于所述计数阈值,则从所述至少一个特征点对中获取第二计数的所述含有语义标注的特征点对加入所述解算集中,并获取第三计数的未标注语义的特征点对加入所述解算集中;或者,若小于所述计数阈值,则将所述至少一个特征点对中所有含有语义标注的特征点对加入所述解算集,并获取第四计数的所述未标注语义的特征点对加入所述解算集;其中,所述第四计数为所述第一计数与所述至少一个特征点对中含有语义标注的特征点对数量的差值。
- 如权利要求38所述的系统,其中,所述一个或以上处理器被配置为使所述系统:根据关注率和所述第一计数,计算所述第二计数和所述第三计数。
- 如权利要求37所述的系统,其中,为了从所述至少一个特征点对中获 取第一计数的特征点对,构成解算集,所述一个或以上处理器被配置为使所述系统:判断所述至少一个特征点对的数量是否大于或等于所述第一计数;若大于或等于所述第一计数,则从所述至少一个特征点对中获取所述解算集;或者若小于所述第一计数,则确定定位失败。
- 如权利要求37所述的系统,其中,为了根据所述位姿和所述内点数,确定所述成像设备的定位信息,所述一个或以上处理器被配置为使所述系统:判断当前迭代次数是否等于迭代次数阈值;若所述当前迭代次数等于所述迭代次数阈值,则确定多次迭代中内点数最多的一次迭代对应的位姿以及对应的位置为所述成像设备的定位信息。
- 如权利要求33所述的系统,其中,为了提取所述定位图像中的至少一个视觉特征点,所述一个或以上处理器被配置为使所述系统:对所述定位图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域;分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集;基于所述多个分块对应的多个特征点集确定所述定位图像中的至少一个视觉特征点。
- 如权利要求42所述的系统,其中,所述多个分块中每个分块对应的特征点集中特征点数量位于预设数值范围内。
- 如权利要求42所述的系统,其中,所述多个分块中任意相邻的两个分 块之间存在交叠区域。
- 如权利要求43所述的系统,其中,所述多个分块的大小为M×N,所述交叠区域的大小为m×n,并且m×n=ρM×γN,ρ和γ为小于1且大于0的预设系数。
- 如权利要求43所述的系统,其中,为了分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集,所述一个或以上处理器被配置为使所述系统:分别对所述多个分块进行视觉特征提取,得到所述多个分块对应的多个候选特征点集;所述候选特征点集的特征点数量大于或等于预设数值;从所述候选特征点集中确定所述特征点集,所述特征点集的特征点数量位于所述预设数值范围内。
- 如权利要求46所述的系统,其中,为了从所述候选特征点集中确定所述特征点集,所述一个或以上处理器被配置为使所述系统:根据特征点的特征参数从所述候选特征点集中确定第五计数的特征点作为所述特征点集;所述第五计数位于所述预设数值范围内,所述特征参数包括响应值以及尺度参数中的一个或两个。
- 如权利要求42所述的系统,其中,每个特征点对应一个尺度参数,为了基于所述多个分块对应的多个特征点集确定所述定位图像中的至少一个视觉特征点,所述一个或以上处理器被配置为使所述系统:删除所述特征点集中坐标参数相同的多个特征点中尺度参数排序大于阈值的特征点;将删除后的所述多个特征点集合并为所述总特征点集;以及从所述总特征点集中确定所述至少一个视觉特征点。
- 一种视觉定位系统,其中,所述系统包括:获取模块,用于获取定位图像,所述定位图像通过成像设备采集;以及获取与所述成像设备所在区域相关联的三维点云地图;确定模块,用于基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;以及基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
- 一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如下方法,包括:获取定位图像,所述定位图像通过成像设备采集;获取与所述成像设备所在区域相关联的三维点云地图;基于所述定位图像,从所述三维点云地图中确定与所述定位图像相关联的目标区域;基于所述定位图像和所述目标区域,确定所述成像设备的定位信息。
- 一种视觉定位方法,其中,所述方法包括:获取定位图像,所述定位图像通过成像设备采集;提取所述定位图像中的至少一个视觉特征点;将所述至少一个视觉特征点与语义三维点云地图中的特征点进行匹配,得到至少一个特征点对;以及基于所述至少一个特征点对,确定所述成像设备的定位信息。
- 如权利要求51所述的方法,其中,所述语义三维点云地图中的特征点包括:与定位图像相关联的目标区域的特征点;将所述至少一个视觉特征点与语义三维点云地图中的特征点进行匹配,得到至少一个特征点对包括:基于所述定位图像,确定与所述目标区域的范围相关联的一个或多个约束条件;以及基于所述一个或多个约束条件从所述语义三维点云地图中确定所述目标区域,所述一个或多个约束条件与所述定位图像对应的场景、所述成像设备的初步预估位置或所述成像设备的方位信息中的至少一个有关。
- 如权利要求51所述的方法,其中,所述提取所述定位图像中的至少一个视觉特征点包括:对所述定位图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域;分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集;基于所述多个分块对应的多个特征点集确定所述定位图像中的至少一个视觉特征点。
- 一种视觉定位方法方法,其中,所述方法包括:获取由成像设备采集的图像;对图像进行图像划分,得到多个分块;所述多个分块中至少两个分块存在交叠区域;分别对所述多个分块进行视觉特征提取,得到所述多个分块中每个分块对应的特征点集;基于所述多个分块对应的多个特征点集确定所述图像中的至少一个视觉特征点;以及基于所述至少一个视觉特征点确定所述成像设备的定位信息。
- 一种视觉定位方法,其中,应用于电子设备,所述视觉定位方法包括:依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云;利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点;以及基于所述目标三维点计算定位信息。
- 一种视觉定位装置,其中,应用于电子设备,所述视觉定位装置:划分模块,用于依据采集到的视野图像,从预设的3D点云地图中划分出目标空间点云;获取模块,用于利用所述视野图像,从所述目标空间点云中得到匹配的目标三维点;定位模块,用于基于所述目标三维点计算定位信息。
- 一种电子设备,其中,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求55所述的方法。
- 一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求55所述的方法。
- 一种视觉定位方法,其中,所述方法包括:提取视觉定位图像中的多个视觉特征点;根据预设语义三维点云地图,分别将各所述视觉定位图像中的所述视觉特征点与所述预设语义三维点云地图中对应的特征点进行匹配,得到多个特征点对,其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对,所述预设语义三维点云地图根据训练样本集训练获取,所述训练样本 集包括:多个二维图像、且所述二维图像的预设区域包含语义标注;根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息。
- 一种视觉定位装置,其中,所述装置包括:提取模块、匹配模块和计算模块,其中:所述提取模块,用于提取视觉定位图像中的多个视觉特征点;所述匹配模块,用于根据预设语义三维点云地图,分别将各所述视觉定位图像中的所述视觉特征点与所述预设语义三维点云地图中对应的特征点进行匹配,得到多个特征点对,其中,多个特征点对中包括:含有语义标注的标注特征点对和未标注语义的特征点对,所述预设语义三维点云地图根据训练样本集训练获取,所述训练样本集包括:多个二维图像、且所述二维图像的预设区域包含语义标注;所述计算模块,用于根据预设视觉定位算法和所述特征点对,进行位姿计算,获取所述视觉定位图像的定位信息。
- 一种视觉定位设备,其中,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述视觉定位设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求59所述方法的步骤。
- 一种存储介质,其中,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求59所述方法的步骤。
- 一种图像的视觉特征点的提取方法,其中,包括:对视觉定位图像进行图像划分,得到多个分块;所述多个分块中存在交叠区 域;对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集;合并所述交叠区域中坐标参数相同的特征点,并根据所述多个分块对应的多个特征点集确定所述视觉定位图像对应的总特征点集。
- 一种图像的视觉特征点的提取装置,其中,包括:划分模块,用于对视觉定位图像进行图像划分,得到多个分块;所述多个分块中存在交叠区域;提取模块,用于对每个所述分块进行视觉特征提取,得到每个所述分块对应的特征点集;所述提取模块,还用于合并所述交叠区域中坐标参数相同的特征点,并根据所述多个分块对应的多个特征点集确定所述视觉定位图像对应的总特征点集。
- 一种电子设备,其中,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求63所述方法的步骤。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求63所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/807,719 US20220319046A1 (en) | 2019-12-18 | 2022-06-18 | Systems and methods for visual positioning |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911309118.1 | 2019-12-18 | ||
CN201911310236.4 | 2019-12-18 | ||
CN201911309118.1A CN111862337B (zh) | 2019-12-18 | 视觉定位方法、装置、电子设备和计算机可读存储介质 | |
CN201911310246.8 | 2019-12-18 | ||
CN201911310246.8A CN111862205A (zh) | 2019-12-18 | 2019-12-18 | 一种视觉定位方法、装置、设备及存储介质 |
CN201911310236.4A CN111862204A (zh) | 2019-12-18 | 2019-12-18 | 图像的视觉特征点的提取方法及相关装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/807,719 Continuation US20220319046A1 (en) | 2019-12-18 | 2022-06-18 | Systems and methods for visual positioning |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021121306A1 true WO2021121306A1 (zh) | 2021-06-24 |
Family
ID=76476869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/137132 WO2021121306A1 (zh) | 2019-12-18 | 2020-12-17 | 视觉定位方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220319046A1 (zh) |
WO (1) | WO2021121306A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706613A (zh) * | 2021-08-06 | 2021-11-26 | 百度在线网络技术(北京)有限公司 | 快递定位方法及其装置 |
CN115631240A (zh) * | 2022-12-21 | 2023-01-20 | 速度时空信息科技股份有限公司 | 大规模场景的视觉定位数据处理方法 |
CN116946610A (zh) * | 2023-09-21 | 2023-10-27 | 中科源码(成都)服务机器人研究院有限公司 | 一种智能仓储系统货物拾取方法及装置 |
CN117173385A (zh) * | 2023-10-24 | 2023-12-05 | 四川思极科技有限公司 | 一种变电站的检测方法、装置、介质及设备 |
CN117252928A (zh) * | 2023-11-20 | 2023-12-19 | 南昌工控机器人有限公司 | 用于电子产品模块化智能组装的视觉图像定位系统 |
CN117274391A (zh) * | 2023-11-23 | 2023-12-22 | 长春通视光电技术股份有限公司 | 一种基于图神经网络的数字地图匹配目标定位方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019205069A1 (en) * | 2018-04-27 | 2019-10-31 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for updating 3d model of building |
CN113987228A (zh) * | 2018-06-20 | 2022-01-28 | 华为技术有限公司 | 一种数据库构建方法、一种定位方法及其相关设备 |
CN111340015B (zh) * | 2020-02-25 | 2023-10-20 | 北京百度网讯科技有限公司 | 定位方法和装置 |
CN115294204B (zh) * | 2022-10-10 | 2023-03-17 | 浙江光珀智能科技有限公司 | 一种户外目标定位方法及系统 |
CN115880690B (zh) * | 2022-11-23 | 2023-08-11 | 郑州大学 | 一种在三维重建辅助下进行点云中物体快速标注的方法 |
CN116664812A (zh) * | 2022-11-30 | 2023-08-29 | 荣耀终端有限公司 | 一种视觉定位方法、视觉定位系统及电子设备 |
CN117315030B (zh) * | 2023-10-18 | 2024-04-16 | 四川大学 | 基于渐进式点云-文本匹配的三维视觉定位方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
CN108415032A (zh) * | 2018-03-05 | 2018-08-17 | 中山大学 | 一种基于深度学习与激光雷达的点云语义地图构建方法 |
CN108550190A (zh) * | 2018-04-19 | 2018-09-18 | 腾讯科技(深圳)有限公司 | 增强现实数据处理方法、装置、计算机设备和存储介质 |
WO2019184600A1 (zh) * | 2018-03-26 | 2019-10-03 | 华为技术有限公司 | 一种基于用户场景感知触发服务的方法、终端设备及系统 |
CN110568447A (zh) * | 2019-07-29 | 2019-12-13 | 广东星舆科技有限公司 | 视觉定位的方法、装置及计算机可读介质 |
CN111862337A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 视觉定位方法、装置、电子设备和计算机可读存储介质 |
CN111862205A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 一种视觉定位方法、装置、设备及存储介质 |
CN111862204A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 图像的视觉特征点的提取方法及相关装置 |
-
2020
- 2020-12-17 WO PCT/CN2020/137132 patent/WO2021121306A1/zh active Application Filing
-
2022
- 2022-06-18 US US17/807,719 patent/US20220319046A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
CN108415032A (zh) * | 2018-03-05 | 2018-08-17 | 中山大学 | 一种基于深度学习与激光雷达的点云语义地图构建方法 |
WO2019184600A1 (zh) * | 2018-03-26 | 2019-10-03 | 华为技术有限公司 | 一种基于用户场景感知触发服务的方法、终端设备及系统 |
CN108550190A (zh) * | 2018-04-19 | 2018-09-18 | 腾讯科技(深圳)有限公司 | 增强现实数据处理方法、装置、计算机设备和存储介质 |
CN110568447A (zh) * | 2019-07-29 | 2019-12-13 | 广东星舆科技有限公司 | 视觉定位的方法、装置及计算机可读介质 |
CN111862337A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 视觉定位方法、装置、电子设备和计算机可读存储介质 |
CN111862205A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 一种视觉定位方法、装置、设备及存储介质 |
CN111862204A (zh) * | 2019-12-18 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 图像的视觉特征点的提取方法及相关装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113706613A (zh) * | 2021-08-06 | 2021-11-26 | 百度在线网络技术(北京)有限公司 | 快递定位方法及其装置 |
CN115631240A (zh) * | 2022-12-21 | 2023-01-20 | 速度时空信息科技股份有限公司 | 大规模场景的视觉定位数据处理方法 |
CN116946610A (zh) * | 2023-09-21 | 2023-10-27 | 中科源码(成都)服务机器人研究院有限公司 | 一种智能仓储系统货物拾取方法及装置 |
CN116946610B (zh) * | 2023-09-21 | 2023-12-12 | 中科源码(成都)服务机器人研究院有限公司 | 一种智能仓储系统货物拾取方法及装置 |
CN117173385A (zh) * | 2023-10-24 | 2023-12-05 | 四川思极科技有限公司 | 一种变电站的检测方法、装置、介质及设备 |
CN117173385B (zh) * | 2023-10-24 | 2024-01-26 | 四川思极科技有限公司 | 一种变电站的检测方法、装置、介质及设备 |
CN117252928A (zh) * | 2023-11-20 | 2023-12-19 | 南昌工控机器人有限公司 | 用于电子产品模块化智能组装的视觉图像定位系统 |
CN117252928B (zh) * | 2023-11-20 | 2024-01-26 | 南昌工控机器人有限公司 | 用于电子产品模块化智能组装的视觉图像定位系统 |
CN117274391A (zh) * | 2023-11-23 | 2023-12-22 | 长春通视光电技术股份有限公司 | 一种基于图神经网络的数字地图匹配目标定位方法 |
CN117274391B (zh) * | 2023-11-23 | 2024-02-06 | 长春通视光电技术股份有限公司 | 一种基于图神经网络的数字地图匹配目标定位方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220319046A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021121306A1 (zh) | 视觉定位方法和系统 | |
KR102145109B1 (ko) | 지도 생성 및 운동 객체 위치 결정 방법 및 장치 | |
US11105638B2 (en) | Method, apparatus, and computer readable storage medium for updating electronic map | |
US10339669B2 (en) | Method, apparatus, and system for a vertex-based evaluation of polygon similarity | |
WO2018157777A1 (en) | Systems and methods for recommending a pick-up location | |
US10332309B2 (en) | Method and apparatus for identifying buildings in textured 3D mesh data and generating 3D building models | |
KR102344012B1 (ko) | 관심 지점을 표시하기 위한 방법 및 장치 | |
CN107133325B (zh) | 一种基于街景地图的互联网照片地理空间定位方法 | |
US20200364554A1 (en) | Systems and methods for deep localization and segmentation with a 3d semantic map | |
US9129429B2 (en) | Augmented reality on wireless mobile devices | |
US20190340746A1 (en) | Stationary object detecting method, apparatus and electronic device | |
CN110832478B (zh) | 用于按需服务的系统和方法 | |
CN110345952A (zh) | 一种序列化车道线地图构建方法及构建系统 | |
CN110149804B (zh) | 用于确定兴趣点的父-子关系的系统和方法 | |
TWI725360B (zh) | 用於確定地圖上的新道路的系統和方法 | |
US10504283B2 (en) | Method and apparatus for regularizing building footprints using taxicab distance | |
US20170039450A1 (en) | Identifying Entities to be Investigated Using Storefront Recognition | |
US20160019223A1 (en) | Image modification | |
CN112750203A (zh) | 模型重建方法、装置、设备及存储介质 | |
CN112020630A (zh) | 用于更新建筑物的3d模型的系统和方法 | |
CN113378605B (zh) | 多源信息融合方法及装置、电子设备和存储介质 | |
EP4202833A1 (en) | Method, apparatus, and system for pole extraction from a single image | |
CN110377776B (zh) | 生成点云数据的方法和装置 | |
WO2023051383A1 (zh) | 一种设备定位方法、设备及系统 | |
CN114972599A (zh) | 一种对场景进行虚拟化的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20902849 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20902849 Country of ref document: EP Kind code of ref document: A1 |