CN111627065B - 一种视觉定位方法及装置、存储介质 - Google Patents
一种视觉定位方法及装置、存储介质 Download PDFInfo
- Publication number
- CN111627065B CN111627065B CN202010414734.XA CN202010414734A CN111627065B CN 111627065 B CN111627065 B CN 111627065B CN 202010414734 A CN202010414734 A CN 202010414734A CN 111627065 B CN111627065 B CN 111627065B
- Authority
- CN
- China
- Prior art keywords
- image
- determining
- feature
- similar
- trained
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000000007 visual effect Effects 0.000 title claims abstract description 53
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000012549 training Methods 0.000 claims description 54
- 238000013527 convolutional neural network Methods 0.000 claims description 32
- 239000013598 vector Substances 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 claims description 12
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004807 localization Effects 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 50
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012216 screening Methods 0.000 description 9
- 238000005286 illumination Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C11/00—Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
- G01C11/04—Interpretation of pictures
- G01C11/06—Interpretation of pictures by comparison of two or more pictures of the same area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Library & Information Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请一示例性实施例公开了一种视觉定位方法,包括获取应用层中的待编译应用;采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;根据所述匹配对集合,确定所述待定位图像的预测位置信息;根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息:本申请一示例性实施例还同时提供了一种视觉定位装置及计算机存储介质。
Description
技术领域
本申请涉及定位技术,涉及但不限于一种视觉定位方法及装置、存储介质。
背景技术
在相关技术中,对大尺度环境下的鲁棒性特征提取,难以准确获得检索图像位置,最终导致输入图像的误匹配甚至定位失败。同时,在视觉图像数据库里检索出与输入图像的相似图像,准确的定位输入图像的六自由度位置仍需要采用手工描述子来进行特征点匹配,耗时较长,且定位精度不够。
发明内容
有鉴于此,本申请一示例性实施例为解决相关技术中存在的至少一个问题而提供一种视觉定位方法及装置、存储介质。
本申请一示例性实施例的技术方案是这样实现的:
本申请一示例性实施例提供了一种视觉定位方法,所述方法包括:
采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;其中,所述已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;
根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;
根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;
根据所述匹配对集合,确定所述待定位图像的预测位置信息;
根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息。
本申请一示例性实施例提供了一种视觉定位装置,所述装置包括:
第一确定模块,用于采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;其中,所述已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;
第一匹配模块,用于根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;
第二匹配模块,用于根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;
第二确定模块,用于根据所述匹配对集合,确定所述待定位图像的预测位置信息;
第三确定模块,用于根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息。
对应地,本申请一示例性实施例提供一种视觉定位设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述视觉定位方法中的步骤。
本申请一示例性实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述视觉定位方法中的步骤。
本申请一示例性实施例一示例性提供了一种视觉定位方法及装置、存储介质,其中,通过首先采用已训练的定位网络,确定待定位图像的全局特征描述符和特征点信息;而且该定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;这样,采用针对大尺度环境下的地标性数据集训练得到定位网络,因为训练集包括不同场景下的图像数据,从而已训练的定位网络能够适用于更加复杂的环境,进而即使待定位图像内的环境较为复杂,仍然能够准确的提取到该图像的全局特征描述符和特征点信息。然后,依据全局特征描述符,从图像数据库中找到相似图像;依据特征点信息,从相似图像中匹配出多对匹配对;基于此,能够基于匹配对预测出待定位图像的位置信息,然后,根据预测位置信息和相似图像的位置信息,自动确定出待定位图像的目标位置,从而实现了通过视觉特征匹配的方式输出待定位图像的位置,提高了定位精度。
附图说明
图1为本申请一示例性实施例视觉定位方法实现流程示意图;
图2为本申请一示例性实施例视觉定位方法实现流程示意图;
图3为本申请一示例性实施例提供的定位网络的模型结构图;
图4为本申请一示例性实施例提供的解码器的模型结构图;
图5为本申请一示例性实施例视觉定位网络的另一模型结构图;
图6为本申请一示例性实施例视觉定位方法的又一实现流程示意图;
图7为本申请一示例性实施例视觉定位方法的应用场景图;
图8为本申请一示例性实施例视觉定位装置的组成结构示意图;
图9为本申请一示例性实施例的一种设备硬件实体示意图。
具体实施方式
下面将结合本申请一示例性实施例中的附图,对本申请一示例性实施例中的技术方案进行清楚、完整地描述。
本申请一示例性实施例提出一种视觉定位方法,该方法应用于通信设备,另外,该方法所实现的功能可以通过设备的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该设备还包括处理器和存储介质。
对本申请一示例性实施例进行进一步详细说明之前,对本申请一示例性实施例中涉及的名词和术语进行说明,本申请一示例性实施例中涉及的名词和术语适用于如下的解释。
1)局部聚合描述符向量(Vector of locally Aggregated Descriptors,VLAD),对于视频每帧的局部描述符,在大规模视频搜索中不可能将这些局部描述符一次都存在内存中,即使每个局部描述符都只需要几比特大小,但是一般来说,每帧都会有数百上千的局部描述符。因此,将这些局部描述符聚合到一个单独的向量中去。并利用费舍尔内核算法对于图像表示的变形,得到的结果向量,叫做局部聚合描述符。
2)多点透视成像(Perspective-n-Point,PnP),PnP算法的输入是第二地图中的三维(3dimensional,3D)点和这些3D点在第一地图中的投影得到的2D点,输出是第一地图相对于第二地图所在的全局坐标系的原点的位姿变换(其中,第一地图和第二地图为两个不同的地图)。PnP算法根据匹配对序列先求出对应的2D点在第一地图所在的坐标系下的3D坐标,然后根据3D点在全局坐标系下的坐标和2D点在第一地图所在的坐标系下的3D坐标求解第一地图中稀疏点的全局坐标。
3)全局特征描述符,包含一个段的基址、界限以及属性内容。其中段基址和16位系统中的段地址意思是一样的,只是在16位系统中段地址必须是16的倍数,但是在32位系统中可以是任意的地址。段界限可以认为是一个段的长度。
4)局部特征描述符,基本格式和全局特征描述符一样,只是其中的意义不一样。一般局部特征描述符是作为段描述符放在全局特征描述符中,然后使用段选择子来使用局部特征描述符。
5)六自由度,物体在空间具有六个自由度,即沿X、Y、Z三个直角坐标轴方向的移动自由度和绕这三个坐标轴的转动自由度。
6)重投影误差,关于重投影误差,通过特征匹配对可知,观测值A和B是一组特征匹配对,它们是同一个空间点C的投影,A属于第一地图,B属于第二地图,B`为将A转换为在第二地图中的第一全局坐标之后在第二地图上的投影点。C的投影B`与观测值B之间有一定的距离,这就是重投影误差。
图1为本申请一示例性实施例视觉定位方法实现流程示意图,如图1所示,所述方法包括以下步骤:
步骤S101,采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息。
这里,已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的。比如,训练图像集拥有不同光照如白天、晚上、各个季节、不同视点和不同场景下的图像数据,能够满足更加复杂环境下的网络训练条件。待定位图像可以是采集的任意图像,比如,用户在室内的图像,或者其他的室外场景的图像等。步骤S101中可以通过多种方式确定待定位图像的全局特征描述符和特征点信息,比如,通过神经网络,确定待定位图像的全局特征描述符和特征点信息;还可以是通过其他的特征提取的方式确定待定位图像的全局特征描述符和特征点信息。其中,特征点信息至少包括待定位图像的特征点坐标和特征点的描述符,可以理解为是局部特征描述符。
步骤S102,根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像。
这里,参考图像库可以是包含任意场景的参考图像库。在步骤S102之前,还可以是先对参考图像库进行筛选,比如,根据待定位图像的画面内容,确定所处的场景,然后,依据确定的场景,对参考图像库进行筛选,选出与确定的场景相匹配的图像库,最后,从筛选后的图像库中,确定出与待定位图像相匹配的相似图像。在一个具体例子中,待定位图像是用户在商场一楼采集的图像,那么可以从参考图像库中筛选出,画面内容为商场一楼的图像;这样,就降低了需要进行图像匹配的次数,提高了图像匹配效率。
步骤S103,根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合。
在一些实施例中,先获取相似图像的特征点信息,然后,基于待定位图像的特征点信息中的特征点的描述符和相似图像的特征点的描述符,确定多对相匹配的特征点,得到匹配对集合。在本申请一示例性实施例中,一个匹配对中是两个特征点,即待定位图像中的一个特征点和参考图像中的一个特征点。比如,依据待定位图像的特征点信息中的特征点的描述符和相似图像的特征点的描述符,计算待定位图像中的特征点与相似图像中每一个像素点的相似度(比如,计算范数距离),如果相似度较大,说明这两个点是匹配的,作为一个匹配对。
步骤S104,根据所述匹配对集合,确定待定位图像的预测位置信息。
这里,待定位图像的预测位置信息可以理解为是匹配对中待定位图像的特征点的位置信息。采用匹配对集合中待定位图像的特征点信息中的特征点的坐标,采用PnP算法,确定待定位图像的预测位置信息,比如,将特征点的二维坐标和参考图像的三维坐标作为PnP算法的输入,输出为是待定位图像的当前帧在地图坐标系中的位置。待定位图像的预测位置信息,可以理解为是待定位图像的六自由度位置。
在一些实施例中,根据所述匹配对集合中的所述待定位图像的每一特征点信息,确定所述待定位图像的预测六自由度位置,得到多个预测六自由度位置。比如,对于每一个匹配对,都预测该匹配对中待定位图像的特征点的六自由度位置,得到预测六自由度位置,以及该匹配对中相似图像的特征点的六自由度位置;通过判断这样一个匹配对中两个特征点的六自由度位置之间的重投影误差,确定该预测六自由度位置是否为待定位图像中这一特征点的目标位置信息。
在一些可能的实现方式中,根据匹配对集合中待定位图像的每一个特征点的特征点信息,确定该特征点所属帧的预测位置信息。比如,将匹配对集合中待定位图像的第一个特征点的坐标,输入PnP算法,以得到待定位图像中第一个特征点所属的当前帧的六自由度;这样,对于每一个匹配对来说,都可确定一个当前帧的预测位置信息。
步骤S105,根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息。
这里,首先获取相似图像的位置信息,相似图像的位置信息可以是依据相似图像的特征点信息计算得到的,还可以是参考图像库中已经保存了每一个参考图像的位置信息,这样当需要使用相似图像的位置信息时,可以随时从参考图像库中获取。比如,参考图像中保存了每一个参考图像的特征点坐标和数据库图像对应的三维点云;这样,对于每一个匹配对来说,都确定了一个相似图像的位置信息和一个待定位图像的预测位置信息。比如,某一个匹配对是待定位图像中的第一特征点与相似图像中的第一特征点,分别确定出待定位图像中的第一特征点对应的帧的六自由度位置,和,相似图像中的第一特征点对应的帧的六自由度位置;通过计算每一匹配对的这样两个位置之间的重投影误差,得到多个重投影误差,将最小的重投影误差对应的预测位置信息,作为待定位图像的目标位置信息。
在本申请一示例性实施例中,采用训练好的神经网络获得待定位图像的全局特征描述符和特征点信息,然后,依据全局特征描述符,从图像数据库中找到相似图像;并依据特征点信息,从相似图像中匹配出多对匹配对;最后,通过确定预测位置信息和相似图像的位置信息之间的重投影误差,将最小的重投影误差对应的预测位置信息,作为待定位图像的目标位置信息,实现了自动确定出待定位图像的目标位置,进而实现了通过视觉特征匹配的方式输出待定位图像的位置,提高了定位精度。
在一些实施例中,为了准确的且快速的得到待定位图像的全局特征描述符和特征点信息,步骤S101可以通过采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息。
在一些可能的实现方式中,首先,搭建待训练的定位网络,然后,采用包含多个场景下的图像的数据集对待训练的定位网络进行训练,从而得到训练好的定位网络。其中:
首先,待训练的定位网络的训练过程如下:
第一步,获取已训练的卷积神经网络。
这里,卷积神经网络可以是任意类型的神经网络,比如,视觉几何小组(VisualGeometry Group,VGG)网络、残差网络等。在一个具体例子中,采用VGG网络,首先采用包含多种场景图像的训练图像库对VGG网络进行训练,得到已训练的卷积神经网络。
第二步,采用所述卷积神经网络、特征解码器和局部聚合描述符向量层,搭建待训练的定位网络。
将卷积神经网络的最后一层卷积层处对卷积神经网络进行截断,接入特征解码器和局部聚合描述符向量层,即特征解码器和局部聚合描述符向量层共享卷积神经网络输出的特征图,这样搭建完成了待训练的定位网络。
在一些可能的实现方式中,搭建待训练的定位网络的过程如下:
步骤A,从所述卷积神经网络中的最后一层卷积层处,接入特征解码器。
这里,首先确定卷积升级网络中的最后一层卷积层,然后,在此处进行截断,将这最后一层卷积层作为特征编码器,并且将最后一层卷积层与特征解码器相连接,以使特征解码器对作为特征编码器的最后一层卷积层的输出进行解码。
步骤B,将所述神经网络的输出端作为所述特征解码器的输入端,以使所述特征解码器确定所述卷积神经网络的输出结果的特征点信息。
这里,将所述神经网络的输出端可以是最后一层卷积层,输出为图像的特征图;这样将最后一层卷积层的输出,输入到特征解码器,以使解码器对最后一层卷积层的输出进行解码,从而将高维特征图进行解码以恢复原输入图像大小。在一些可能的实现方式中,特征解码器会对每个像素点计算特征点概率(比如,特征图中每一个像素点的浮点数)。概率越大,则可认为该像素点越有可能为特征点,并使用对像素点进行插值和L2正则化得到单位长度的特征点描述符。
步骤C,将所述神经网络的输出端作为局部聚合描述符向量VLAD层的输入端,以使所述VLAD层确定所述卷积神经网络的输出结果的全局特征描述符,继而完成所述待训练的定位网络的搭建。
这里,神经网络的输出端还要接入VLAD层。也就是说,VLAD层与特征解码器共享卷积神经网络的最后一层卷积层的输出结果(比如,VLAD层与特征解码器共享特征图),即,最后一层卷积层的输出结果也要输入到VLAD层中,以使VLAD层输出全局特征描述符。比如,将最后一层卷积层输出的特征图作为VLAD层的输入,VLAD层通过对特征图进行处理,输出全局特征描述符。
第三步,将至少包括两类场景下图像的训练图像集中的训练图像,输入所述待训练的定位网络中,得到所述训练图像的损失。
这里,训练图像集中包括多种场景下的图像,即包多种类别的图像,比如,采用三类室内外场景数据集作为训练图像集;采用这样的训练图像集对待训练的定位网络进行训练,保证了训练样本的多样性和丰富性,从而使得训练好的定位网络具有更强的鲁棒性。这样,将训练图像集中的图像输入到待训练的定位网络中,根据输出结果和训练图像的真值信息,确定训练图像的损失。
第四步,采用所述训练图像的损失,对所述待训练的定位网络的网络参数进行调整,以使调整后的待训练的定位网络输出的结果的损失满足收敛条件,得到所述已训练的定位网络。
在一些可能的实现方式中,待训练的定位网络的网络参数至少包括:待训练的定位网络的权重、学习率和正则化参数等。采用训练图像的损失,对这些网络参数进行调整,比如,通过参考训练图像的损失函数,对某一分类结果的权重进行调大或者调小等,以使得调整后的待训练的定位网络输出的结果的损失满足收敛条件;如此,便得到了已训练的定位网络。
这样,将定位网络训练完成之后,可以采用已训练的定位网络中的VLAD层,确定待定位图像的全局特征描述符;采用所述已训练的定位网络中的特征解码器,确定所述待定位图像的特征点信息。比如,将待定位图像输入已训练的定位网络中,通过该网络中的卷积神经网网络对待定位图像进行处理,输出待定位图像的特征图,然后VLAD层和特征解码器共享该特征图,VLAD层通过对特征图进行处理,得到待定位图像的全局特征描述符;特征解码器通过对特征图进行处理,得到待定位图像的特征点坐标和特征点描述符,即特征点信息。如此,通过采用针对大尺度环境下的地标性数据集对网络模型进行训练。该数据集拥有不同光照如白天/晚上、各个季节,不同视点,不同场景下的图像数据,可满足更加复杂环境下的网络训练条件;而且在卷积神经网络尾端添加了特征解码器和NetVLAD层,可同时获得输入图像的全局特征描述符、局部特征点及其描述符,从而能够在视觉图像数据库中检索到相似图像,还能利用局部特征关键点进行特征匹配与PnP算法,从而获得图像的六自由度位置。
在一些实施例中,获得参考图像的全局特征描述符和待定位图像的全局特征描述符之后,基于二者的全局特征描述符,确定二者之间的相似度,以确定出与待定位图像的相似度较高的相似图像,即步骤S102可以通过如图2所示的步骤实现,图2为本申请一示例性实施例视觉定位方法实现流程示意图,结合图1进行以下说明:
步骤S201,获取所述参考图像库中的参考图像的全局特征描述符。
这里,获取参考图像库中的参考图像的全局特征描述符,可以通过以下两种方式实现:
方式一:可以是针对参考图像库中的每一个参考图像进行全局特征描述符的获取,比如,将参考图像库中的参考图像分批次的输入到已训练的定位网络中,首先得到第一个参考图像的全局特征描述符;然后,判断第一个参考图像与待定位图像之间的相似度,如果相似度大于相似度阈值,则第一个参考图像为相似图像;然后,判断该第一个参考图像的特征点信息与待定位图像之间的特征的匹配对集合。显然,如果第一个参考图像不是相似图像(即第一个参考图像与待定位图像之间的相似度小于相似度阈值),那么将第二个参考图像输入到已训练的定位网络中,判断第二个参考图像是不是待定位图像的相似图像,依次类推,逐个的分析参考图像库中的每一个参考图像是否为相似图像,并得到最终多个相似图像与待定位图像之间的特征匹配对集合。
方式二:首先,对待定位图像的画面内容进行分析,确定待定位图像的画面内容的位置信息(比如,是在商场一楼采集的图像);然后,依据待定位图像的画面内容的位置信息对参考图像库进行筛选,选出采集位置与该位置信息邻近(比如该位置100米以内)的参考图像,得到优化的参考图像库;这样,就减少了许多干扰图像,从而加快了查找相似图像的速度。最后,逐一的判断优化的参考图像库中的相似图像。
在其他实施例中,还可以通过对参考图像库进行多级筛选,得到优化的参考图像库;比如,首先基于待定位图像的位置信息对参考图像库进行一级筛选;然后,再基于待定位图像的画面背景对一级筛选后的参考图像库再次进行筛选,即进行二级筛选,这样,对原始的参考图像库进行多级筛选后,剩余的少量的且可能为相似度的概率较大的参考图像,从而能够更加准确且快速的确定出相似图像。
步骤S202,根据所述参考图像的全局特征描述符和所述待定位图像的全局特征描述符,确定所述参考图像与所述待定位图像之间的相似度。
这里,将参考图像的全局特征描述符和所述待定位图像的全局特征描述符,输入到计算相似度的网络中,确定出参考图像与待定位图像之间的相似度。比如,通过计算参考图像的全局特征描述符和所述待定位图像的全局特征描述符之间的L2范数,用得到的L2范数表征二者之间的相似度,如果L2范数大于事先设定的相似度阈值,则将该参考图像确定为相似图像。
步骤S203,如果所述相似度大于等于相似度阈值,确定所述参考图像为所述相似图像。
上述步骤S201至步骤S203给出了一种实现“确定与所述待定位图像相匹配的相似图像”的方式,在该方式中,通过采用已训练的定位网络中的VLAD层,确定待定位图像的全局特征描述符和参考图像的全局特征描述符,然后基于二者的全局特征描述符快速确定参考图像和待定位图像之间的相似度,从而能够准确且快速的确定出与待定位图像相似的相似图像。
步骤S204,获取相似图像的特征点信息。
这里,通过逐一比对参考图像库中的参考图像,确定出第一个相似图像之后,获取该相似图像的特征点信息,比如,将将相似图像输入已训练的定位网络中,通过该网络的特征解码器,输入该第一个相似图像的特征点信息。
步骤S205,根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的范数距离。
这里,范数距离至少包括两个范数距离。将相似图像中的特征点与待定位图像的特征点进行匹配,通过确定相似图像的特征点描述符和待定位图像的特征点描述符之间的范数距离。比如,采用K最近邻(k-Nearest Neighbor,KNN)算法,确定相似图像的特征点描述符和待定位图像的特征点描述符之间的范数距离。
在一些可能的实现方式中,根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述参考图像的特征点与所述待定位图像的特征点之间的最小范数距离和第二小范数距离;比如,将相似图像的任一特征点的特征描述符和待定位图像的任一特征点的特征描述符,作为KNN算法的输入,那么输出的是这两个特征点之间的最小范数距离和第二小范数距离;这样,就能够得到多对特征点之间的最小范数距离和第二小范数距离,从而通过判断一对特征点之间的最小范数距离和第二小范数距离是否满足预设条件,来确定这一堆特征点是否为匹配对。
步骤S206,当所述范数距离满足预设条件时,确定所述参考图像的特征点与待定位图像的特征点相匹配,以得到匹配对集合。
在一些可能的实现方式中,范数距离满足预设条件,可以是该范数距离中包含的多个距离之间成预设倍数,比如,如果所述最小范数距离和所述第二小范数距离之间的倍数满足预设倍数,确定所述参考图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合。
上述步骤S204至步骤S206提供了一种实现“根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合”的方式,在该方式中,对参考图像库中的图像逐个进行判断,对一个相似图像判断完,才会继续下一个相似图像。
在一些实施例中,获取待定位图像的预测位置信息和相似图像的位置信息之后,根据这样的两个位置信息,确定待定位图像的当前帧和相似图像的点云之间的重投影误差,通过判断重投影误差的大小,确定出当前帧的目标位置信息,过程如下:
第一步,获取所述相似图像的位置信息。
在一些可能的实现方式中,获取相似图像的位置信息可以通过多种方式,比如,在参考图像库中已经存储了每一个参考图像的位置信息,那么可以直接从参考图像库中获取相似图像的位置信息;或者,将相似图像的特征点的坐标作为PnP算法的输入,得到相似图形的该特征点的六自由度位置。相似图像的位置信息可以理解为相似图像中匹配对集合中这些特征点的六自由度位置。这里,根据所述匹配对集合中所述相似图像的每一特征点信息,确定每一所述特征点信息对应特征点的六自由度位置,得到多个六自由度位置。比如,根据匹配对集合中相似图像的每一个特征点的坐标,确定出每一个特征点的六自由度位置,这样,就得到了匹配对集合中相似图像中每一个特征点的六自由度位置。
第二步,根据所述预测位置信息和所述相似图像的位置信息,确定待定位图像和所述相似图像之间的重投影误差。
在一些可能的实现方式中,根据待定位图像的特征点的预测位置信息,和同属一个匹配对中的特征点所属的相似图像的位置信息,确定这两个特征点得出位置信息之间的重投影误差。比如,根据所述预测六自由度位置和同属于一个匹配对的所述六自由度位置,确定每一所述匹配对中特征点之间的重投影误差,得到多个重投影误差。也就是说,针对每一个匹配对,根据这个匹配对中待定位图像的特征点的预测六自由度位置和相似图像的特征点的六自由度位置,确定这两个特征点之间的重投影误差;如此,得到每一个匹配对下两个特征点的重投影误差。
第三步,根据所述重投影误差,确定所述待定位图像的目标位置信息。
在一些可能的实现方式中,对于每一个特征点,将所述多个重投影误差中最小的重投影误差对应的预测六自由度,确定为所述目标位置信息。
在相关技术中,关于大尺度环境下的视觉特征提取方案主要分为传统手工描述符和基于深度学习的学习型描述符,通过尺度空间的极值检测来提取输入图像上物体的局部外观的角点和兴趣点,并在每个特征点周围的邻域内选取梯度向量生成特征点描述符;学习型描述符则是通过深度学习网络训练来提取图像特征点极其特征描述符。在一些可能的实现方式中,采用了一种优化的HOG手工描述符,在这种方式中,将图像划分为若干块,然后对每个块进行稀疏信号分解,得到每个对应的稀疏向量。通过对稀疏信号分解后的图像提取HOG特征。根据图像的中心点和采样点,建立了一种局部坐标系,从而提取采样点的局部不变特征。将所述采样点处的局部不变特征进行融合从而得到图像特征。上述两个专利所提及的方案均是建立在传统手工描述符上,对大尺度环境下的复杂纹理和光照变化较为敏感,定位成功率和定位精度均受限于环境因素。在其他实施例中,建立在学习型描述符上,首先采用深度卷积神经网络对场景(Places205)公开数据集进行训练,以获得具有特征学习的网络模型。其次,在网络模型的尾端添加一层自编码器网络并进行数据集训练,从而对提取的特征进行降维处理。将图像输入到该降维神经网络中,获得的模型输出即为图像特征。最后,将检测图像与离线视觉数据库图像输入到网络模型获得其对应的图像特征,若图像特征的相似度高于自设阈值,即可认为两张图像具有较高的相似性,从而完成视觉定位。
由此可见,相关技术中使用的多种手工描述符在处理大尺度环境存在鲁棒性问题,而采用学习型描述符来解决图像检索的相似性问题,在处理大尺度环境下的图像特征提取和定位问题上仍存在不足,主要体现在以下两个方面:一、训练网络模型使用的场景分类数据集(Places205)缺乏光照变化和视点变化的数据,因此网络模型在更复杂的大尺度环境下缺乏鲁棒性;二、该网络模型输出为一种全局特征描述符,仅能在离线视觉图像数据库中检索到相似图像,无法进一步获得检索图像确切的六自由度位置。
综上所述,上述方案缺乏对大尺度环境下的鲁棒性特征提取,造成在光照变化明显、纹理特征复杂的环境下难以准确获得检索图像位置,最终导致输入图像的误匹配甚至定位失败。同时,仅能在视觉图像数据库里检索出与输入图像的相似图像,准确的定位输入图像的六自由度位置仍需要采用SIFT等传统手工描述子来进行特征点匹配。
基于此,本申请一示例性实施例提供一种视觉定位方法,首先,采用针对大尺度环境下的地标性数据集对网络模型进行训练。该数据集拥有不同光照如白天/晚上、各个季节,不同视点,不同场景下的图像数据,可满足更加复杂环境下的网络训练条件;其次,设计的定位网络在卷积神经网络尾端添加了特征解码器和NetVLAD层,可同时获得输入图像的全局特征描述符、局部特征点及其描述符。这三类模型输出不仅能够在视觉图像数据库中检索到相似图像,还能利用局部特征点进行特征匹配与PnP算法,从而获得图像的六自由度位置,进而实现对输入图像的视觉定位。
图3为本申请一示例性实施例提供的定位网络的模型结构图,如图3所示,该网络包括三个部分:
卷积神经网络301:采用多种卷积核级联的方式来对输入图片31进行降维处理,从而产生高维度的特征图。
其中,卷积神经网络的模型框架选择为轻量级的MobileNetV2模型,并在最后一层1*1卷积层进行截断,用作特征编码器。其详细的模型结构参数如表1所示。模型输入为待检测的灰度图像,输出为7*7*1280的特征图。该特征图将共享为特征编码层和NetVLAD层的输入来进行层间级联。
表1 MobileNetV2详细结构说明
输入通 | 操作数 | 扩张系 | 输出通 | 重复次 |
224*224 | Conv2d | - | 32 | 1 |
112*112 | Backbon | 1 | 16 | 1 |
56*56*1 | Backbon | 6 | 24 | 2 |
28*28*2 | Backbon | 6 | 32 | 3 |
14*14*3 | Backbon | 6 | 64 | 4 |
14*14*6 | Backbon | 6 | 96 | 3 |
14*14*9 | Backbon | 6 | 160 | 3 |
7*7*160 | Backbon | 6 | 320 | 1 |
7*7*320 | Conv2d | - | 1280 | 1 |
特征解码器302:接收卷积神经网络301输出的特征图,作为特征解码器的输入,特征解码器302的输出为局部特征关键点305和局部特征描述符306。
特征解码器的网络结构如图4所示,从图4可以看出,特征解码器包括:
输入单元401,用于输入卷积神经网络301输出的特征图。
下采样单元402,用于对输入的特征图进行下采样。
分类单元403,采用softmax函数对下采样的结果进行处理,将处理结果输入变形(reshape)单元404中,以实现形变。
特征点输出单元405,用于针对形变单元404处理后到结果,输出输入图片的特征点。
双三次插值算法(bicubic interpolation)单元406,用于对卷积神经网络301输出的特征图进行插值。
正则化单元(L2-normalization)407,用于对插值的结果进行正则化。
描述符输出单元408,用于针对正则化的结果,输出特征点描述符。
在本实施例中,特征解码器是一种逆向的编码网络,作用是将高维特征图进行解码以恢复原输入图像大小,同时,特征解码器会对每个像素点计算特征点概率。概率越大,则可认为该像素点越有可能为特征点,并使用插值和L2-Norm得到单位长度的特征点描述符。
因此,特征解码器的损失函数可表示为特征点概率损失和描述符损失的加权和,如公式(1)所示:
L(M)=Lp(X,Y)+λ·Ld(D,D′) (1);
其中,
ld(dhw,d′h′w′,s)=s*max(0,mp-dTd′)+(1-s)*max(0,dTd′-mn)
在公式(1)中,Lp(x,y)为特征点概率损失函数,Ld(D,D′)为描述符的损失函数,λ为平衡损失函数之间的权重,s为损失函数计算参数,mn和mp分别为Hinge-Loss的边缘参数,H、W和D分别为输入图像的高度、宽度和通道数。最后,输出局部特征点坐标(即特征点坐标)和其对应的特征描述符。
VLAD层303:将特征图表征为全局特征的编码方式,输出的全局特征描述符304可用来描述图像之间的相似性和图像检索。
NetVLAD层的网络结构如图5所示,其中。卷积神经网络输出的特征图作为网络输入。从图5可以看出,NetVLAD层的网络结构包括:
输入单元501,用于将输入图片输入。
卷积单元502,用于对输入图片进行卷积操作。
分类单元503,采用softmax函数对卷积单元输出的结果进行分类,并输入到VALD-核504(VALD-core)。
VALD-核504,用于针对分类单元的输出,确定全局特征。
正则化单元505,用于对VALD-核504的输出,进行正则化处理。
输出单元506,用于输出全局特征描述符。
其中,在图5中的x,s,a和v分别表示不同的变量。
NetVLAD层是将传统VLAD进行可微设计,用卷积网络的形式让VLAD进行参数学习。该可微公式如公式(2)所示:
其中,参数Wk,bk,ck分别为网络参数,D,K分别为VLAD的特征向量维度和聚类数。NetVLAD的损失函数采用Triple-loss函数,如公式(3)所示:
因此,定位网络的最后的输出有三类:全局特征描述符、局部特征点坐标和局部特征描述符,最终获得的全局损失函数可表示为如公式(4)所示:
其中,ωi为加权和参数,用以平衡各层网络的权重。
上述过程完成了定位网络的构建,然后对构建好的定位网络进行网络模型训练:
采用场景数据集对网络模型进行训练。网络的训练数据集可以采用三类室内外场景数据集。这三类数据集包含了不同视点、不同光照下的各类场景图像,拥有丰富的纹理信息和照度信息,因此适宜用来作为大尺度环境下的定位网络训练。网络训练模型采用MINI-Batch更新模型参数,并采用Adam算法对网络的参数进行反向传播和迭代更新。Adam算法设置的总训练步数为90000步,学习率分别为0.001,0.0001和0.00001,并在60000步和80000步改变。完成训练后,将网络模型输出的模型参数和结构进行固化,生成.pb文件用以下一步骤。
对网络模型训练完成之后,将需要定位的图像输入到该模型中,实现对图像中画面的定位,即,完成模型训练获得定位网络的.pb固化文件后,即可对视觉图像进行六自由度定位。该视觉定位算法流程,如图6所示,其中离线图像数据库包含了该大尺度场景下采集到的视觉图像数据、位置信息和稠密三维点云。从图6可以看出,该视觉定位流程包括以下步骤:
步骤S601,将待定位图像输入到定位网络。
步骤S602,加载已训练好的.pb文件。
步骤S603,定位网络经前向计算后获得该待定位图像的全局描述符Dp、特征点坐标∑(x,y)群和局部描述符dp。
步骤S604,将离线数据库中的图像按批次输入到定位网络。
步骤S605,定位网络经前向计算后获得该离线数据库中每张图像对应的三类网络输出Dd,∑(x′,y′)和d′。
步骤S606,判断d2(Dq,Dd)<δ是否成立。
这里,将待定位图像的Dp和每张数据库图像的Dd进行相似度计算,即计算二者之间的L2范数。L2范数可以表示为:d2(Dq,Dd)=||Dq-Dd||2,若d2(Dq,Dd)<δ(δ为预先设定的阈值参数),则认为输入图像与该数据库图像的相似度较高,标注该图像并执行步骤S607,否则输入下一张数据库图像。
步骤S607,利用局部特征描述符,对待定位图像与数据库图像进行特征点匹配。
在本申请一示例性实施例中,匹配方法采用KNN匹配。KNN匹配方法会计算输入图像与数据库图像的特征描述符之间的L2范数距离。当最小距离小于倒数第二小距离的0.8倍时,则认为描述符对应的特征点显著性较好。通过KNN匹配,可以获得待定位图像与该数据库图像之间的一组匹配对,每个匹配对包含了待定位图像的特征点坐标、数据库图像的特征点坐标和数据库图像对应的三维点云。
步骤S608,采用PnPRansac算法对特征点匹配对进行筛选,得到正确的匹配对,并输出待定位图像的六自由度位置。
这里,对特征点匹配对进行PnPRansac算法,筛选正确的匹配对,并输出待定位图像的六自由度位置。PnPRansac算法是对当前匹配对进行随机采样,每组存4个匹配对,根据每组特征点,分别计算当前待定位图像的六自由度位置,再计算数据库点云和当前帧中对应特征的重投影误差。最后,选择重投影误差最小的作为待定位图像的六自由度位置。
在本申请一示例性实施例中,定位网络包含了多种输出,不仅能够对视觉图像进行图像检索,查找数据库里的相似图像,还能通过视觉特征匹配的方式输出图像的六自由度位置;而且使用的学习型特征描述符相较于SIFT等传统手工描述符,鲁棒性更好,定位精度更高;另外,视觉定位可以只使用手机,不需要其他设备,成本较低;网络模型采用多种场景数据集进行训练,适用于各类大尺度场景的视觉定位。在光照不足的夜晚或图像锐利的环境下仍拥有鲁棒的特征匹配效果,如图7所示,将待定位图像701输入到训练好的分层网络中,输出待定位图像701中,可以得到匹配对,即图7中用直线703连接的数据库中的图像702与待定位图像701中相匹配的像素点。从图7中的定位结果来看,本申请一示例性实施例提供的视觉定位方法具有较高的鲁棒性,在复杂的大尺度环境下仍拥有很高的定位精度和重复精度。
本申请一示例性实施例提供一种视觉定位装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图8为本申请一示例性实施例视觉定位装置的组成结构示意图,如图8所示,所述装置800包括:
第一确定模块801,用于采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;其中,所述已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;
第一匹配模块802,用于根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;
第二匹配模块803,用于根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;
第二确定模块804,用于根据所述匹配对集合,确定所述待定位图像的预测位置信息;
第三确定模块805,用于根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息。
在上述装置中,所述装置还包括:
第一获取模块,用于获取已训练的卷积神经网络;
第一搭建模块,用于采用所述卷积神经网络、特征解码器和局部聚合描述符向量VLAD层,搭建待训练的定位网络;
第一输入模块,用于将至少包括两类场景下图像的训练图像集中的训练图像,输入所述待训练的定位网络中,得到所述训练图像的损失;
第一调整模块,用于采用所述训练图像的损失,对所述待训练的定位网络的网络参数进行调整,以使调整后的待训练的定位网络输出的结果的损失满足收敛条件,得到所述已训练的定位网络。
在上述装置中,所述第一搭建模块,包括:
第一接入子模块,用于从所述卷积神经网络中的最后一层卷积层处,接入特征解码器;
第一确定子模块,用于将所述神经网络的输出端作为所述特征解码器的输入端,以使所述特征解码器确定所述卷积神经网络的输出结果的特征点信息;
第二确定子模块,用于将所述神经网络的输出端作为VLAD层的输入端,以使所述VLAD层确定所述卷积神经网络的输出结果的全局特征描述符,继而完成所述待训练的定位网络的搭建。
在上述装置中,所述第一确定模块801,包括:
第三确定子模块,用于采用所述已训练的定位网络中的VLAD层,确定所述待定位图像的全局特征描述符;
第四确定子模块,用于采用所述已训练的定位网络中的特征解码器,确定所述待定位图像的特征点信息。
在上述装置中,所述第一匹配模块802,包括:
第一获取子模块,用于获取所述参考图像库中的参考图像的全局特征描述符;
第五确定子模块,用于根据所述参考图像的全局特征描述符和所述待定位图像的全局特征描述符,确定所述参考图像与所述待定位图像之间的相似度;
第六确定子模块,用于如果所述相似度大于等于相似度阈值,确定所述参考图像为所述相似图像。
在上述装置中,所述第二匹配模块803,包括:
第二获取子模块,用于获取所述相似图像的特征点信息;
第七确定子模块,用于根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的范数距离;
第八确定子模块,用于当所述范数距离满足预设条件时,确定所述相似图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合。
在上述装置中,所述第七确定子模块,还用于:根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的最小范数距离和第二小范数距离;
第八确定子模块,还用于:如果所述最小范数距离和所述第二小范数距离之间的倍数满足预设倍数,确定所述相似图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合。
在上述装置中,所述第二确定模块804,还用于:根据所述匹配对集合中的所述待定位图像的每一特征点信息,确定所述待定位图像中的特征点的预测六自由度位置,得到多个预测六自由度位置。
在上述装置中,所述装置还包括:
第二获取模块,用于获取所述相似图像的位置信息;
第一重投影模块,用于根据所述预测位置信息和所述相似图像的位置信息,确定待定位图像和所述相似图像之间的重投影误差;
第四确定模块,用于根据所述重投影误差,确定所述待定位图像的目标位置信息。
在上述装置中,所述第二获取模块,包括:
第九确定子模块,用于根据所述匹配对集合中所述相似图像的每一特征点信息,确定每一所述特征点信息对应特征点的六自由度位置,得到多个六自由度位置;
第一重投影子模块,用于根据所述预测六自由度位置和同属于一个匹配对的所述六自由度位置,确定所述匹配对中特征点之间的重投影误差,得到多个重投影误差;
第十确定子模块,用于将所述多个重投影误差中最小的重投影误差对应的预测六自由度,确定为所述目标位置信息。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请一示例性实施例中,如果以软件功能模块的形式实现上述的视觉定位方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请一示例性实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请一示例性实施例不限制于任何特定的硬件和软件结合。
图9为本申请一示例性实施例的一种设备硬件实体示意图,如图9所示,本申请一示例性实施例提供了一种设备900,包括:
处理器91以及存储有所述处理器91可执行指令的存储介质92,所述存储介质92通过通信总线93依赖所述处理器91执行操作,当所述指令被所述处理器91执行时,执行上述实施例一所述的视觉定位方法。
需要说明的是,实际应用时,设备中的各个组件通过通信总线93耦合在一起。可理解,通信总线93用于实现这些组件之间的连接通信。通信总线93除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为通信总线93。
这里,需要说明的是,所述设备通常为具有前置双摄或者后置双摄功能的移动设备,所述移动设备可以以各种形式来实施。例如,本申请一示例性实施例中所描述的移动设备可以包括手机、平板电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等。
对应地,本申请一示例性实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的视觉定位方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请一示例性实施例的实施过程构成任何限定。上述本申请一示例性实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请一示例性实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请一示例性实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种视觉定位方法,其特征在于,所述方法包括:
采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;其中,所述已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;
根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;
根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;
根据所述匹配对集合,确定所述待定位图像的预测位置信息;
根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息;
所述采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息,包括:
采用所述已训练的定位网络中的VLAD层,确定所述待定位图像的全局特征描述符;
采用所述已训练的定位网络中的特征解码器,确定所述待定位图像的特征点信息。
2.根据权利要求1所述的方法,其特征在于,所述采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息之前,所述方法还包括:
获取已训练的卷积神经网络;
采用所述卷积神经网络、特征解码器和局部聚合描述符向量VLAD层,搭建待训练的定位网络;
将至少包括两类场景下图像的训练图像集中的训练图像,输入所述待训练的定位网络中,得到所述训练图像的损失;
采用所述训练图像的损失,对所述待训练的定位网络的网络参数进行调整,以使调整后的待训练的定位网络输出的结果的损失满足收敛条件,得到所述已训练的定位网络。
3.根据权利要求2所述的方法,其特征在于,所述采用所述卷积神经网络、特征解码器和局部聚合描述符向量VLAD层,搭建待训练的定位网络,包括:
从所述卷积神经网络中的最后一层卷积层处,接入特征解码器;
将所述神经网络的输出端作为所述特征解码器的输入端,以使所述特征解码器确定所述卷积神经网络的输出结果的特征点信息;
将所述神经网络的输出端作为VLAD层的输入端,以使所述VLAD层确定所述卷积神经网络的输出结果的全局特征描述符,继而完成所述待训练的定位网络的搭建。
4.根据权利要求1所述的方法,其特征在于,所述根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像,包括:
获取所述参考图像库中的参考图像的全局特征描述符;
根据所述参考图像的全局特征描述符和所述待定位图像的全局特征描述符,确定所述参考图像与所述待定位图像之间的相似度;
如果所述相似度大于等于相似度阈值,确定所述参考图像为所述相似图像。
5.根据权利要求1所述的方法,其特征在于,所述根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合,包括:
获取所述相似图像的特征点信息;
根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的范数距离;
当所述范数距离满足预设条件时,确定所述相似图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合。
6.根据权利要求5所述的方法,其特征在于,所述根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的范数距离,包括:
根据所述相似图像的特征点信息和所述待定位图像的特征点信息,确定所述相似图像的特征点与所述待定位图像的特征点之间的最小范数距离和第二小范数距离;
对应地,所述当所述范数距离满足预设条件时,确定所述相似图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合,包括:如果所述最小范数距离和所述第二小范数距离之间的倍数满足预设倍数,确定所述相似图像的特征点与所述待定位图像的特征点相匹配,以得到所述匹配对集合。
7.根据权利要求1所述的方法,其特征在于,所述根据所述匹配对集合,确定所述待定位图像的预测位置信息,包括:
根据所述匹配对集合中的所述待定位图像的每一特征点信息,确定所述待定位图像中的特征点的预测六自由度位置,得到多个预测六自由度位置。
8.根据权利要求1所述的方法,其特征在于,在所述根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息之前,所述方法还包括:
获取所述相似图像的位置信息;
对应地,根据所述预测位置信息和所述相似图像的位置信息,确定待定位图像和所述相似图像之间的重投影误差;
根据所述重投影误差,确定所述待定位图像的目标位置信息。
9.根据权利要求8所述的方法,其特征在于,所述获取所述相似图像的位置信息,包括:
根据所述匹配对集合中所述相似图像的每一特征点信息,确定每一所述特征点信息对应特征点的六自由度位置,得到多个六自由度位置;
对应地,根据预测六自由度位置和同属于一个匹配对的所述六自由度位置,确定所述匹配对中的特征点之间的重投影误差,得到多个重投影误差;
将所述多个重投影误差中最小的重投影误差对应的预测六自由度,确定为所述目标位置信息。
10.一种视觉定位装置,其特征在于,所述装置包括:
第一确定模块,用于采用已训练的定位网络,确定获取的待定位图像的全局特征描述符和特征点信息;其中,所述已训练的定位网络是采用至少包括两类场景下图像的训练图像集进行训练得到的;
第一匹配模块,用于根据所述全局特征描述符,从参考图像库中,确定与所述待定位图像相匹配的相似图像;
第二匹配模块,用于根据所述特征点信息,确定所述相似图像与所述待定位图像之间相匹配的特征点,得到匹配对集合;
第二确定模块,用于根据所述匹配对集合,确定所述待定位图像的预测位置信息;
第三确定模块,用于根据所述预测位置信息和所述相似图像的位置信息,确定所述待定位图像的目标位置信息;
所述第一确定模块,包括:
第三确定子模块,用于采用所述已训练的定位网络中的VLAD层,确定所述待定位图像的全局特征描述符;
第四确定子模块,用于采用所述已训练的定位网络中的特征解码器,确定所述待定位图像的特征点信息。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述视觉定位方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414734.XA CN111627065B (zh) | 2020-05-15 | 2020-05-15 | 一种视觉定位方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414734.XA CN111627065B (zh) | 2020-05-15 | 2020-05-15 | 一种视觉定位方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111627065A CN111627065A (zh) | 2020-09-04 |
CN111627065B true CN111627065B (zh) | 2023-06-20 |
Family
ID=72258902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010414734.XA Active CN111627065B (zh) | 2020-05-15 | 2020-05-15 | 一种视觉定位方法及装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111627065B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114283297A (zh) * | 2020-09-18 | 2022-04-05 | 虫极科技(北京)有限公司 | 图像匹配的方法和系统、以及计算机可读介质 |
CN112182264B (zh) * | 2020-10-10 | 2024-05-10 | 书行科技(北京)有限公司 | 地标信息的确定方法、装置、设备及可读存储介质 |
CN112328715B (zh) * | 2020-10-16 | 2022-06-03 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关模型的训练方法及相关装置、设备 |
CN112270760B (zh) * | 2020-11-03 | 2023-07-25 | 北京百度网讯科技有限公司 | 一种定位方法、装置、电子设备及存储介质 |
CN112489119B (zh) * | 2020-12-21 | 2023-01-31 | 北京航空航天大学 | 一种增强可靠性的单目视觉定位方法 |
TWI764542B (zh) * | 2021-01-27 | 2022-05-11 | 國立臺灣大學 | 智慧型載具之實時視覺定位與不確定性估測系統 |
CN112907663B (zh) * | 2021-02-03 | 2024-08-13 | 阿里巴巴集团控股有限公司 | 定位方法、计算机程序产品、装置及系统 |
CN113112547A (zh) * | 2021-04-23 | 2021-07-13 | 北京云迹科技有限公司 | 机器人及其重定位方法、定位装置及存储介质 |
CN113298871B (zh) * | 2021-05-14 | 2022-05-24 | 视辰信息科技(上海)有限公司 | 地图生成方法、定位方法及其系统、计算机可读存储介质 |
CN113409470A (zh) * | 2021-06-18 | 2021-09-17 | 杭州灵伴科技有限公司 | 基于ar的场景导览方法、ar眼镜、电子装置和存储介质 |
CN113570535B (zh) * | 2021-07-30 | 2024-07-12 | 深圳市慧鲤科技有限公司 | 视觉定位方法及相关装置、设备 |
CN113688928B (zh) * | 2021-08-31 | 2022-09-27 | 禾多科技(北京)有限公司 | 图像匹配方法、装置、电子设备和计算机可读介质 |
CN114092559A (zh) * | 2021-11-30 | 2022-02-25 | 中德(珠海)人工智能研究院有限公司 | 一种全景图像特征点描述符生成网络的训练方法以及装置 |
CN116295466A (zh) * | 2022-03-31 | 2023-06-23 | 北京百度网讯科技有限公司 | 地图生成方法、装置、电子设备、存储介质、及车辆 |
CN115049845A (zh) * | 2022-06-10 | 2022-09-13 | 北京理工大学 | 非局部信息匹配加速方法及装置 |
CN117115238B (zh) * | 2023-04-12 | 2024-06-25 | 荣耀终端有限公司 | 一种确定位姿的方法、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109658445A (zh) * | 2018-12-14 | 2019-04-19 | 北京旷视科技有限公司 | 网络训练方法、增量建图方法、定位方法、装置及设备 |
CN110175615A (zh) * | 2019-04-28 | 2019-08-27 | 华中科技大学 | 模型训练方法、域自适应的视觉位置识别方法及装置 |
CN110361005A (zh) * | 2019-06-26 | 2019-10-22 | 深圳前海达闼云端智能科技有限公司 | 定位方法、定位装置、可读存储介质及电子设备 |
CN110781790A (zh) * | 2019-10-19 | 2020-02-11 | 北京工业大学 | 基于卷积神经网络与vlad的视觉slam闭环检测方法 |
CN111046125A (zh) * | 2019-12-16 | 2020-04-21 | 视辰信息科技(上海)有限公司 | 一种视觉定位方法、系统及计算机可读存储介质 |
CN111078940A (zh) * | 2019-12-16 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机存储介质及电子设备 |
CN111144349A (zh) * | 2019-12-30 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种室内视觉重定位方法及系统 |
-
2020
- 2020-05-15 CN CN202010414734.XA patent/CN111627065B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109658445A (zh) * | 2018-12-14 | 2019-04-19 | 北京旷视科技有限公司 | 网络训练方法、增量建图方法、定位方法、装置及设备 |
CN110175615A (zh) * | 2019-04-28 | 2019-08-27 | 华中科技大学 | 模型训练方法、域自适应的视觉位置识别方法及装置 |
CN110361005A (zh) * | 2019-06-26 | 2019-10-22 | 深圳前海达闼云端智能科技有限公司 | 定位方法、定位装置、可读存储介质及电子设备 |
CN110781790A (zh) * | 2019-10-19 | 2020-02-11 | 北京工业大学 | 基于卷积神经网络与vlad的视觉slam闭环检测方法 |
CN111046125A (zh) * | 2019-12-16 | 2020-04-21 | 视辰信息科技(上海)有限公司 | 一种视觉定位方法、系统及计算机可读存储介质 |
CN111078940A (zh) * | 2019-12-16 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机存储介质及电子设备 |
CN111144349A (zh) * | 2019-12-30 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种室内视觉重定位方法及系统 |
Non-Patent Citations (1)
Title |
---|
陈承隆 ; 邱志成 ; 杜启亮 ; 田联房 ; 林斌 ; 李淼 ; .基于Netvlad神经网络的室内机器人全局重定位方法.计算机工程与应用.2020,第56卷(第09期),正文175-182. * |
Also Published As
Publication number | Publication date |
---|---|
CN111627065A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111627065B (zh) | 一种视觉定位方法及装置、存储介质 | |
Zhu et al. | Vpfnet: Improving 3d object detection with virtual point based lidar and stereo data fusion | |
CN109522942B (zh) | 一种图像分类方法、装置、终端设备和存储介质 | |
CN109658445A (zh) | 网络训练方法、增量建图方法、定位方法、装置及设备 | |
WO2022193335A1 (zh) | 点云数据处理方法、装置、计算机设备和存储介质 | |
WO2019018063A1 (en) | FINAL GRAIN IMAGE RECOGNITION | |
US10152828B2 (en) | Generating scene reconstructions from images | |
CN112328715B (zh) | 视觉定位方法及相关模型的训练方法及相关装置、设备 | |
Wang et al. | A novel GCN-based point cloud classification model robust to pose variances | |
CN111831844A (zh) | 图像检索方法、图像检索装置、图像检索设备及介质 | |
CN113240012B (zh) | 一种基于二维图像的无监督多视角三维目标检索方法及装置 | |
CN115439694A (zh) | 一种基于深度学习的高精度点云补全方法及装置 | |
Xin et al. | A review of visual-based localization | |
CN115272599A (zh) | 一种面向城市信息模型的三维语义地图构建方法 | |
Cheng et al. | A two-stage outlier filtering framework for city-scale localization using 3D SfM point clouds | |
CN113177592A (zh) | 一种图像分割方法、装置、计算机设备及存储介质 | |
CN115409896A (zh) | 位姿预测方法、装置、电子设备和介质 | |
CN114663880A (zh) | 基于多层级跨模态自注意力机制的三维目标检测方法 | |
CN110717405A (zh) | 人脸特征点定位方法、装置、介质及电子设备 | |
Liu et al. | CMLocate: A cross‐modal automatic visual geo‐localization framework for a natural environment without GNSS information | |
Zhang et al. | Hierarchical Image Retrieval Method Based on Bag-of-Visual-Word and Eight-point Algorithm with Feature Clouds for Visual Indoor Positioning | |
CN116524357A (zh) | 高压线路鸟巢检测方法、模型训练方法、装置及设备 | |
CN114943766A (zh) | 重定位方法、装置、电子设备及计算机可读存储介质 | |
Yang et al. | Keyframe-based camera relocalization method using landmark and keypoint matching | |
CN114612572A (zh) | 一种基于深度学习的激光雷达与相机外参标定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |