CN111813971A - 哈希表构建及图像匹配方法和装置,存储介质和电子设备 - Google Patents
哈希表构建及图像匹配方法和装置,存储介质和电子设备 Download PDFInfo
- Publication number
- CN111813971A CN111813971A CN201910284520.2A CN201910284520A CN111813971A CN 111813971 A CN111813971 A CN 111813971A CN 201910284520 A CN201910284520 A CN 201910284520A CN 111813971 A CN111813971 A CN 111813971A
- Authority
- CN
- China
- Prior art keywords
- hash
- data
- feature
- hash bucket
- image
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 110
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000010276 construction Methods 0.000 title claims abstract description 46
- 238000013500 data storage Methods 0.000 claims abstract description 108
- 230000001174 ascending effect Effects 0.000 claims description 17
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 238000011065 in-situ storage Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- 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/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种哈希表的构建方法及装置,图像匹配方法及装置,计算机存储介质和电子设备;其中,构建方法包括:获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量;根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表;基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。从而能够使得特征数据被连续的存储在数据存储表中,避免出现内存空间浪费的情况,并能够通过偏移表中记录的存储位置信息能够确定所述特征数据在数据存储表中位置。
Description
技术领域
本申请涉及计算机科学技术领域,具体涉及一种哈希表的构建方法和装置,以及图像匹配方法和装置,计算机存储介质和电子设备。
背景技术
图像匹配是通过将两张图像的特征元素进行比较,判断出二者是否为相似或相同图像。匹配的方式可以包括哈希匹配,即:根据特征元素计算出用于存放所述特征元素的哈希函数,即:Addr=H(key),根据存储地址提取相应的特征元素与待匹配的图像特征元素进行比较,从而完成图像匹配的目的。然而,该种匹配方法在对特征元素以哈希值存储时会造成不同的存储地址存储相同的特征元素,进而产生哈希冲突。
为解决图像匹配过程中出现的哈希冲突问题,现有技术采用哈希桶的方式对特征元素进行相应存储处理,即:对图像的所有特征元素建立哈希索引,并对图像的所述特征元素进行分类,相同类型放入到具有相同哈希索引的哈希桶内,从而避免不同存储地址存储相同哈希值(特征元素)的冲突问题,在匹配时,只需要根据待匹配图像的特征的类型去查找对应的哈希桶类型,之后从对应的哈希桶里面进行匹配,从而完成快速检索。
因此,采用哈希桶的图像匹配方式,不但能够解决哈希冲突的问题,还能够提高匹配速度。然而,在采用动态数组来存储哈希桶后面对应的特征元素时,由于哈希桶后面的特征元素数量不能确定,因此会导致针对特征元素建立哈希表的过程中存在无效的内存浪费,如图1所示,图1中的哈希桶0-7中包括:存储有特征元素的哈希桶为0、1、2、3、6、7,同时也存在没有存储特征元素的哈希桶4、5,当哈希桶内没有存储特征元素时,其却始终占用着一定的内存空间,造成内存浪费。
发明内容
本申请提供一种哈希表的构建方法,以解决现有技术内存浪费的技术问题。本申请另外提供一种哈希表的构建装置以及图像匹配的方法和装置。
本申请提供一种一种哈希表的构建方法,包括:
获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量;
根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表;
基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
在一些实施例中,还包括:
获取所述特征数据信息;
确定用于存储所述特征数据信息的所述哈希桶的总数量;
按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中。
在一些实施例中,所述获取所述特征数据信息,包括:
获取所述特征数据的特征编号;
所述确定用于存储所述特征数据信息的所述哈希桶的总数量,包括:
确定用于存储描述所述特征数据的特征编号的所述哈希桶的总数量;
所述按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中,包括:
按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的哈希桶中。
在一些实施例中,所述按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的所述哈希桶中,包括:
确定所述哈希桶的索引编号;
将同类型的所述特征数据对应的所述特征编号存储在所述索引编号相同的所述哈希桶中,获得用于存储特征数据信息的哈希桶。
在一些实施例中,还包括:
按照设置的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序以及与所述哈希桶顺序相对应的排序后的特征编号顺序。
在一些实施例中,所述按照设定的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序,包括:
按照设置的升序或降序排序要求,对所述哈希桶的索引编号进行排序。
在一些实施例中,所述获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量,包括:
对所述特征数据信息按照设置的排序要求进行排序,获得排序后的特征数据信息以及对应的所述哈希桶的索引编号;
对所述索引编号按照所述排序要求进行排序,获得排序后的哈希桶和对应的特征数据信息;
对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量。
在一些实施例中,所述排序要求为按照设置的升序或降序排序要求,采用原位快速排序方式对所述索引编号进行排序。
在一些实施例中,对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量,包括:
按照排序顺序扫描有效哈希桶的索引编号;
当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号不相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量分别记为1;
当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量的数量之和记为2;
当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号不相等时,则将所述第三有效哈希桶的索引编号的数量记为1;
当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号相等时,在所述第二有效哈希桶的索引编号的数量的基础上累加1;
统计所有所述索引编号后,获得所述有效哈希桶数量的数组。
在一些实施例中,还包括:
按照统计顺序,确定与所述索引编号对应的所述特征数据的特征编号;
根据所述特征编号提取所述特征数据;
按照与所述统计顺序相同的顺序,将提取的所述特征数据存储到所述数据存储表内。
在一些实施例中,还包括:
当所述确定与所述索引编号对应的所述特征数据的特征编号为空时,将所述索引编号对应的所述哈希桶标识为无效状态。
在一些实施例中,还包括:
当所述确定与所述索引编号对应的所述特征数据的特征编号不为空时,将所述索引编号对应的所述哈希桶标识为有效状态。
在一些实施例中,所述基于所述哈希桶的信息和所述哈希桶中存储的特征数据信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表,包括:
对所述哈希桶的索引编号按照设置的排序要求进行排序,获得排序后的哈希桶以及对应的所述特征编号;
根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置。
在一些实施例中,所述根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置,包括:
当扫描首位哈希桶的状态标识为有效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
当扫描首位哈希桶的状态标识为无效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度置为0;
依序扫描下一个哈希桶,当扫描的当前哈希桶的状态标识为有效状态或为无效状态时,所述哈希桶针对所述数据存储表中的特征数据的起始位置确定为相邻哈希桶存储位置的数值与存储长度的数值之和,将当前哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
根据扫描所有哈希桶后,获得用于描述所述特征数据在所述数据存储表中起始位置和存储长度的偏移表。
本申请还提供一种哈希表的构建装置,包括:
获取单元,用于获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量;
第一构建单元,用于根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表;
第二构建单元,用于基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
本申请还提供一种图像匹配方法,包括:
获取目标匹配图像的特征数据;
确定所述特征数据所位于的哈希桶的信息;
根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置;
提取所述存储位置上存储的图像特征数据;
将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
在一些实施例中,17、根据权利要求16所述的图像匹配方法,其特征在于,所述将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果,包括:
计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值;
将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据。
在一些实施例中,还包括:
从所述图像特征数据与所述目标匹配图像的特征数据之间的距离值中选取最小距离值;
所述将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据,包括:
判断所述最小距离值是否小于或等于设定的距离阈值,若是,则确定匹配结果为所述图像特征数据和目标匹配图像的特征数据匹配。
在一些实施例中,还包括:
将所述匹配结果为匹配的特征数据添加到匹配特征数据集合中。
在一些实施例中,所述计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值,包括:
采用海明距离的计算方式,计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
本申请还提供一种图像匹配装置,包括:
获取单元,用于获取目标匹配图像的特征数据;
第一确定单元,用于确定所述特征数据所位于的哈希桶的信息;
第二确定单元,用于根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置;
提取单元,用于提取所述存储位置上存储的图像特征数据;
匹配单元,用于将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
本申请还提供一种计算机存储介质,用于存储程序;
所述程序在被处理器执行时,能够使得处理器执行如上所述的哈希表的构建方法中的步骤,或者如上所述的图像匹配方法中的步骤。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储程序,所述程序在被所述处理器读取执行时,使得所述电子设备执行如上所述的哈希表的构建方法中的步骤,或者如上所述的图像匹配方法中的步骤。
与现有技术相比,本申请具有以下优点:
本申请提供的一种哈希表的构建方法,通过获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表,再基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表,从而能够使得特征数据被连续的存储在数据存储表中,不会出现内存空间浪费的情况,并能够通过偏移表中记录的存储位置信息能够确定所述特征数据在数据存储表中位置。
本申请提供的一种图像匹配方法,通过根据获取的目标匹配图像的特征数据确定所述特征数据位于哈希桶的信息,根据哈希桶的信息和偏移表确定位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,由于所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置,因此通过提取所述存储位置上存储的图像特征数据,并将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果,进而使得在进行图像匹配时,不存在内存空间浪费的情况,并且匹配速度能够通过偏移表的定位快速获得匹配结果。
附图说明
图1是现有技术哈希桶存储特征元素的结构示意图;
图2是本申请提供的一种哈希表的构建方法实施例的流程图;
图3是本申请提供的一种哈希表的构建方法实施例中以特征编号进行排序后的特征编号和索引编号的示意图;
图4是本申请提供的一种哈希表的构建方法实施例中以索引编号进行排序后的索引编号和特征编号的示意图;
图5是本申请提供的一种哈希表的构建方法实施例中统计有效哈希桶的数组结构示意图;
图6是本申请提供的一种哈希表的构建方法实施例中数据存储表和偏移表的结构关系示意图;
图7是本申请提供的一种哈希表的构建装置实施例的结构示意图;
图8是本申请提供的一种图像匹配方法实施例的流程图;
图9是本申请提供的一种图像匹配装置实施例的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
在对本申请提供的一种哈希表的构建方法进行说明前,首先,对本申请提供的一种哈希表的构建方法的研发初衷进行说明,随着互联网、大数据以及人工智能等产业的不断发展,对通过计算机处理数据提出了更高的要求,例如:计算速度、存储空间等等。在该背景下,对于图像匹配所采用的哈希方式提出了存储空间以及匹配速度的相关需求。本申请提供的一种哈希表的构建方法正好解决了存储空间以及匹配速度的需求。
请参考图2所示,图2是本申请提供的一种哈希表的构建方法实施例的流程图,所述构建方法包括:
步骤S101:获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量。
在所述步骤S101中所有有效哈希桶可以是指存储有特征数据信息的哈希桶,例如:针对特征数据信息分配了n个哈希桶,n为自然数。每个哈希桶中不一定均存储有特征数据信息,因此,需要获取n个哈希桶中存储有特征数据信息的哈希桶。
所述特征数据信息可以理解为描述所述特征数据相关的特征信息,例如:图像特征的特征编号,或者是能够表示图像特征的其他信息。
所述哈希桶可以理解为用来存储与特征数据信息之间存在映射关系的信息,例如:不同哈希桶存储不同特征数据信息类型,可以通过哈希桶的信息来确定存储的特征数据信息类型。可以理解的是,特征数据信息类型可以根据特征数据的描述内容或描述方式或描述位置等进行分类。
基于上述概念的介绍,可以获知获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量,还需要对特征数据信息进行聚类,将特征数据信息按照类别存储至哈希桶中,因此,还包括:
步骤S001:获取所述特征数据信息;
所述步骤S001中获取所述特征数据信息可以是获取特征点的集合,例如:获取源数据中的特征点的集合。所述源数据可以根据不同的应用需求确定,如:对于图像匹配应用环境需求下,源数据可以是表达图像信息的数据,而特征点的集合可以是描述图像特征的数据点的集合。因此,获取所述特征数据信息可以在不同的应用环境下,提取源数据中的特征点,将所有提取的特征点看做特征数据信息的集合。
在本实施例中,获取所述特征数据信息可以包括:
步骤S001-1:获取所述特征数据的特征编号,即:获取针对所述特征数据或者是说针对特征点集合中的特征点对应的特征编号,通过该特征编号即可知道对应的特征数据内容。
步骤S002:确定用于存储所述特征数据信息的所述哈希桶的总数量。
所述步骤S002中的哈希桶的总数量包括:存储有所述特征数据信息的哈希桶数量和没有存储所述特征数据信息的哈希桶数量。基于所述步骤S001中获取的所述特征数据的特征编号,所述步骤S002的具体实现过程可以是:
步骤S002-1:确定用于存储描述所述特征数据的特征编号的所述哈希桶的总数量。
所述步骤S002-1目的是通过所述特征编号确定用于存储描述所述特征数据的所述哈希桶的总数量。
步骤S003:按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中。
所述步骤S003的目的在于,哈希桶中存储所述特征编号,该特征编号根据特征类型进行存储,而存储的哈希桶范围是在哈希桶总数量范围内,从而实现对所述特征数据的聚类。具体是的实现过程可以包括:
步骤S003-1:按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的哈希桶中。
在本实施例中,在将特征编号存储在相同的哈希桶中需要确定哈希桶的信息,因此,所述步骤S003-1包括:
步骤S003-11:确定所述哈希桶的索引编号。
其中,所述步骤S003-11可以通过计算哈希函数计算所述哈希桶的索引编号,哈希函数的大小可以随机任选,例如:选取8比特(bit),根据选取的哈希函数的大小能够确定出所述哈希桶所需要的存储大小,即为256。
步骤S003-12:将同类型的所述特征数据对应的所述特征编号存储在所述索引编号相同的所述哈希桶中,获得用于存储特征数据信息的哈希桶。
基于上述确定的哈希桶的索引编号,将类型相同的所述特征数据的特征编号存储在所述索引编号相同的哈希桶中,也就是说,在确定哈希桶的存储大小后,可以将获取的特征数据信息分配的哈希桶中,分配的过程是将类型相同的分配到同一个哈希桶中,分配的过程可以是现将所有的特征数据信息分别分配到与特征数据信息数量相对应的哈希桶中,之后在调整,将相同类型的特征数据信息放置同一个哈希桶中。当然也可以相对获取的特征数据信息进行分类之后在放入哈希桶中。
为了便于统计哈希桶中有效哈希桶的数量,还可以包括:
步骤S004:按照设置的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序以及与所述哈希桶顺序相对应的排序后的特征编号顺序。
所述步骤S004的目的在于便于对能够快速的构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。因此,所述步骤S004的具体实现过程可以包括:
步骤S004-1:按照设置的升序或降序排序要求,对所述哈希桶的索引编号进行排序。在本实施例中,对所述哈希桶的索引编号采用的升序的方式进行排序,得到类似如图1所示的哈希桶索引编号的升序排序结构。
上述内容主要是,基于所述步骤S101对特征数据信息的获得以及哈希桶的获得进行的一些说明,然而所述步骤S101在获取用于存储特征数据信息的哈希桶的方式并不限于上述内容,可以是基于现有已经存储特征数据信息的哈希桶直接获取有效哈希桶的数量,当然也可以是先实现特征数据信息与哈希桶的存储关系,再去获取有效哈希桶的数量。不论哪种获取方式,所述步骤S101的目的在于要将用于存储特征数据信息的哈希桶中,得到有效哈希桶的数量。
因此,在本实施例中,所述步骤S101的具体过程包括:
步骤S101-1:对所述特征数据信息按照设置的排序要求进行排序,获得排序后的特征数据信息以及对应的所述哈希桶的索引编号。
请结合图2,参考图3所示,图3是本申请提供的一种哈希表的构建方法实施例中以特征编号进行排序后的特征编号和索引编号的示意图;如上述步骤S001-步骤S003中的描述,获取到的哈希桶中存储的特征数据信息是根据类型进行随机分配的,因此,存在有存储数据特征信息的哈希桶和没有存储数据特征的哈希桶,为了便于统计有效哈希桶的数量可以根据特征数据信息进行排序,通过对特征数据信息的排序过滤出没有存储数据特征信息的哈希桶,排序的方式可以是升序,例如:01,02,03,04,05……依序排列,其中,02和03是同类型的可以存储在一个哈希桶中。在对特征数据信息进行排序后进而能够获得排序后的特征数据信息,此处的特征数据信息可以是特征编号,也就是说,获得排序后的特征编号可以是从小到大的排列,相应的,哈希桶的索引编号也会随特征编号的排序发生相应的顺序变化,从而能够过滤出没有存储所述特征编号的哈希桶,即无效哈希桶。
步骤S101-2:对所述索引编号按照所述排序要求进行排序,获得排序后的哈希桶和对应的特征数据信息。
请结合图3参考图4所示,图4是本申请提供的一种哈希表的构建方法实施例中以索引编号进行排序后的索引编号和特征编号的示意图;所述步骤S101-2的目的在于基于所述步骤S101-1获得与排序后的特征数据信息相应的所述哈希桶的索引编号的排序,而索引编号的排序没有规律其仅是随特征数据信息的排序发生的相应位置变化,因此,所述步骤S101-2需要对索引编号再次进行排序,为后续有效哈希桶的数量统计提供方便。在本实施例中,对所述索引编号的排序也可以采用升序的方式,即:排序后的索引编号可以例如是0、1、1、2、3、3……依序排列。
需要说明的是,排序后的索引编号会出现重复的索引编号,是因为在一个索引编号下会在存储有至少两个数据特征信息,也就是两个相同类型的数据特征信息存储在相同的索引编号的哈希桶内,然而两个相同类型的数据特征信息却不相同,也就是说。两个相同类型的特征编号不同,因此所述排序后的哈希桶的数量(包括重复)与排序的特征编号数量是相对应。沿用所述步骤S101-1中的举例,索引编号为0的哈希桶中存储的特征编号为05,索引编号为1的哈希桶中存储的特征编号为03,索引编号为1的哈希桶中存储的特征编号为02,索引编号为2的哈希桶中存储的特征编号为04等,因此,排序后的索引编号存在重复的情况。
上述排序不论是采用升序还是降序,均采用原位快速排序方式对索引编号进行排序。
步骤S101-3:对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量。
所述步骤S101-3的目的在于根据有效哈希桶的数量获得存储所述特征数据的存储空间,避免存在无效哈希桶占用所述特征数据空间的缺陷。在本实施例中,对所述有效哈希桶数量的统计可以以数组结构形式进行表示,如图5所示,图5是本申请提供的一种哈希表的构建方法实施例中统计有效哈希桶的数组结构示意图,具体实现过程可以包括:
步骤S101-31:按照排序顺序扫描有效哈希桶的索引编号。
所述步骤S101-31中可以对排序顺序对有效哈希桶的索引编号进行逐行扫描,扫描的过程中包括两种扫描情况,一种是相邻两个哈希桶的索引编号相等,一种是相邻两个哈希桶的索引编号不相等,下面将对上述两种情况的统计分别进行说明,具体参考步骤S101-32至步骤S101-35。
步骤S101-32:当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号不相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量分别记为1。
在所述步骤S101-32中所述第一有效哈希桶可以理解为按照排序顺序处于第一位置上的有效哈希桶,沿用上例,索引编号可以是0。所述第二有效哈希桶即为位于所述第一有效哈希桶后且与第一有效哈希桶相邻的有效哈希桶,沿用上例,索引编号可以是1。因为,当第一有效哈希桶和第二有效哈希桶的索引编号不相等,说明二者分别存储不同类型特征数据的特征编号,因此,分别记为1,此时有效哈希桶数量的数组结构表示为[1,1,……]。
步骤S101-33:当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量的数量之和记为2,也就是说,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量进行累加获得累加结果。
所述步骤S101-33与所述步骤S101-32的不同之处是:所述步骤S101-32说明的是两个相邻哈希桶的索引编号不相等的情况,所述步骤S101-33说明的是两个相邻哈希桶的索引编号相等的情况,即:第一有效哈希桶的索引编号为0,与之相邻的第二有效哈希桶的索引编号也为0,说明索引编号为0的第一有效哈希桶和第二有效哈希桶为相同的哈希桶存储相同类型的特征编号。这里容易引起误会的是第一和第二的表述,实际上,第一和第二仅是按照排序顺序对位置关系的一种区别表示,其并不代表第一有效哈希桶和第二有效哈希桶为两个不同索引编号的有效哈希桶。
当扫描的第一有效哈希桶的索引编号和第二有效哈希桶的索引编号相同时,有效哈希桶数量的数组结构表示为[2,……],即:[1+1,……],也就是基于第一有效哈希桶的数量累加1。
步骤S101-34:当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号不相等时,则将所述第三有效哈希桶的索引编号的数量记为1。
在扫描完第一有效哈希桶和第二有效哈希桶之后,按照扫描的顺序,需要对所述第二有效哈希桶和第三有效哈希桶进行扫描,二者索引编号不相等的情况下,说明第三有效哈希桶内存储的特征编号与第二有效哈希桶内存储的特征编号不同,因此,有效哈希桶数量的数据结构表示可以是[1,1,1,……]或者是[2,1,……],其中,所述[1,1,1,……]说明第一有效哈希桶的索引编号与第二有效哈希桶的索引编号不相等,第二有效哈希桶的索引编号和第三有效哈希桶的索引编号不相等;所述[2,1,……]说明第一有效哈希桶的索引编号与第二有效哈希桶的索引编号相等,第二有效哈希桶的索引编号和第三有效哈希桶的索引编号不相等。
步骤S101-35:当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号相等时,在所述第二有效哈希桶的索引编号的数量的基础上累加1;
所述步骤S101-35与所述步骤S101-34的不同之处在于:所述步骤S101-34说明的是两个相邻哈希桶,即:第二有效哈希桶和第三有效哈希桶的索引编号不相等的情况,所述步骤S101-35说明的是两个相邻哈希桶,即:第二有效哈希桶和第三有效哈希桶的索引编号相等的情况,即:第二有效哈希桶的索引编号为1,与之相邻的第三有效哈希桶的索引编号也为1,说明索引编号为1的第二有效哈希桶和第三有效哈希桶为相同的哈希桶存储相同类型的特征编号。
当扫描的第二有效哈希桶的索引编号和第三有效哈希桶的索引编号相同时,有效哈希桶数量的数组结构表示可以是[3,……],即:[2+1,……]或者是[1,2,……],即:[1,1+1,……];其中,所述[1,2,……]说明第一有效哈希桶的索引编号与第二有效哈希桶的索引编号不相等,第二有效哈希桶的索引编号和第三有效哈希桶的索引编号相等;所述[3,……]说明第一有效哈希桶的索引编号与第二有效哈希桶的索引编号相等,第二有效哈希桶的索引编号和第三有效哈希桶的索引编号相等。
步骤S101-36:统计所有所述索引编号后,获得所述有效哈希桶数量的数组。
所述步骤S101-36是按照上述扫描顺序扫描全部索引编号后,即可获得针对有效哈希桶数量统计的统计数组。
在基于上述内容可以获得用于存储所述特征数据信息的哈希桶中,已经存储有所述特征数据信息的有效哈希桶数量,至基于获取的所述有效哈希桶数量即可进入步骤S102构建数据存储表。
步骤S102:根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表。
所述步骤S102中的数据存储表可以是用于存储特征数据的存储表,因为基于所述步骤S101所获得的有效哈希桶的数量,因此能够构建一个连续存储所述特征数据的数据存储表,也就是说,构建的数据存储表是一个不存在断裂或者空数据的存储内存。具体地,对于有效哈希桶数量的统计是根据对哈希桶索引编号进行升序排列后获得的,因此,根据所述步骤S101-36中获得所述有效哈希桶数量的数组构建用于存储与所述特征数据信息对应的特征数据的数据存储表。如图5所示的当有效哈希桶数量的数组为[1,2,3,7,1,5,3,3,1,2,1]时,连续的数据存储表的结构可以如图5所示,即:按照数组的值进行数据存储表的内存分配,且分配内存为连续不间断的。
基于数据存储表的构建过程,可以理解的是,需要将特征数据存储在所述数据存储表内,因此还包括:
步骤S102-1:按照统计顺序,确定与所述索引编号对应的所述特征数据的特征编号;
步骤S102-2:根据所述特征编号提取所述特征数据;
步骤S102-3:按照与所述统计顺序相同的顺序,将提取的所述特征数据存储到所述数据存储表内。
也就是,所述数据存储表内存储的特征数据是按照统计的有效哈希桶的顺序进行存储,特征数据的存储可以是在构建所述数据存储表之后进行存储,也可以在构建所述数据存储表过程中进行存储。
为能够获知所述哈希桶是否为有效哈希桶,可以在向所述数据存储表中存储所述特征数据的时候,对所述哈希桶进行标识。具体地,当所述确定与所述索引编号对应的所述特征数据的特征编号不为空时,将所述索引编号对应的所述哈希桶标识为有效状态,同时提取所述特征数据存储到所述数据存储表相应的位置。当所述确定与所述索引编号对应的所述特征数据的特征编号为空时,将所述索引编号对应的所述哈希桶标识为无效状态,并进入下一个特征数据的提取流程。
可以理解的是,不论是针对哈希桶进行有效状态的标识还是无效状态的标识,二者可以同时进行,即对有特征编号的哈希桶标识为有效状态,对没有特征编号的哈希桶标识为无效状态,具体可以采用二值标识的形式实现;也可以在标识有有效状态后,对没有存储特征编号的哈希桶不再进行无效标识,相反的,在标识有无效状态后,对存储有特征编号的哈希桶不再进行有效标识。进而通过标识信息即可获知当前哈希桶为有效哈希桶还是无效哈希桶。
步骤S103:基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
请结合图1参考图6所示,图6是本申请提供的一种哈希表的构建方法实施例中数据存储表和偏移表的结构关系示意图。
所述步骤S103中的偏移表是用来描述所述数据存储表中存储的特征数据的存储位置信息,以便根据存储位置信息读取数据存储表中的特征数据内容。具体实现过程可以包括:
步骤S103-1:对所述哈希桶的索引编号按照设置的排序要求进行排序,获得排序后的哈希桶以及对应的所述特征编号。
所述步骤S103-1中的排序要求可以是升序,在本实施例中,涉及的排序要求均可以采用相同的排序方式,也可以根据不同的需求采用不同的排序方式。
所述步骤S103-1中的哈希桶是包括有效哈希桶和无效哈希桶,即:用于存储特征数据信息的哈希桶。
因此,对所述哈希桶的索引编号排序,排序后的哈希桶即包括有效哈希桶又包括无效哈希桶。
步骤S103-2:根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置。
所述步骤S103-2中的存储位置包括存储的起始位置和存储的结束位置,起始位置与结束位置之间可以是存储长度信息,所述存储长度信息可以通过哈希桶的数量信息表示,或者是通过存储的特征数据本身的长度或长度之和的信息,在本实施例中,采用的是哈希桶的数量信息作为存储长度信息,可以理解的是,所述哈希桶的数量信息可以是哈希桶存储特征数据的数量。
所述步骤S103-2中的存储位置获得具体可以包括:
步骤S103-21:当扫描首位哈希桶的状态标识为有效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
步骤S103-22:当扫描首位哈希桶的状态标识为无效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度置为0;
步骤S103-23:依序扫描下一个哈希桶,当扫描的当前哈希桶的状态标识为有效状态或为无效状态时,所述哈希桶针对所述数据存储表中的特征数据的起始位置确定为相邻哈希桶存储位置的数值与存储长度的数值之和,将当前哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
步骤S103-24:扫描所有哈希桶后,获得用于描述所述特征数据在所述数据存储表中起始位置和存储长度的偏移表。
需要说明的是,上述针对所述步骤S103中构建偏移表的过程仅为本实施例的一种示例,对于偏移表的构建可以根据实际需求的数据结构进行构建。
以上为本申请提供的一种哈希表的构建方法实施例的具体说明,为了实现较高的召回率,即匹配点特征点,在构建本申请的哈希表时,可以构建至少四个提高召回率。当然构建的数量可以根据实际应用需求进行设置也可。
以上是对本申请提供的一种哈希表的构建方法实施例的具体描述,与前述提供的一种哈希表的构建方法实施例相对应,本申请还公开一种哈希表的构建装置实施例,请参看图7,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参考图7所示,图7是本申请提供的一种哈希表的构建装置实施例的结构示意图;该构建装置包括:
获取单元701,用于获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量。
还包括:
特征数据信息获取单元,用于获取所述特征数据信息。
所述特征数据信息获取单元具体用于获取所述特征数据的特征编号。
总数量确定单元,用于确定用于存储所述特征数据信息的所述哈希桶的总数量。
所述总数量确定单元具体用于确定用于存储描述所述特征数据的特征编号的所述哈希桶的总数量。
特征数据信息存储单元,用于按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中。
所述特征数据信息存储单元具体用于按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的哈希桶中。
所述特征数据信息存储单元包括:
索引编号确定子单元,用于确定所述哈希桶的索引编号;
哈希桶获得子单元,用于将同类型的所述特征数据对应的所述特征编号存储在所述索引编号相同的所述哈希桶中,获得用于存储特征数据信息的哈希桶。
在一些实例中,本申请提供的哈希桶的构建装置还包括:
排序单元,用于按照设置的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序以及与所述哈希桶顺序相对应的排序后的特征编号顺序。
所述排序单元具体可以按照设置的升序或降序排序要求,对所述哈希桶的索引编号进行排序。在本实施例中,采用的为升序排序要求,但排序要求并不限于该种排序方式。
所述获取单元701包括:
第一排序子单元,用于对所述特征数据信息按照设置的排序要求进行排序,获得排序后的特征数据信息以及对应的所述哈希桶的索引编号。
在本实施例中,对第一排序子单元按照设置的升序或降序排序要求,采用原位快速排序方式对所述索引编号进行排序。
第二排序子单元,用于对所述索引编号按照所述排序要求进行排序,获得排序后的哈希桶和对应的特征数据信息;
在本实施例中,对第二排序子单元按照设置的升序或降序排序要求,采用原位快速排序方式对所述索引编号进行排序。
有效桶统计子单元,用于对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量。
所述有效桶统计子单元包括:
扫描子单元,用于按照排序顺序扫描有效哈希桶的索引编号;
记录子单元,用于当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号不相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量分别记为1;
用于当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量的数量之和记为2;
用于当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号不相等时,则将所述第三有效哈希桶的索引编号的数量记为1;
用于当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号相等时,在所述第二有效哈希桶的索引编号的数量的基础上累加1;
数组获得子单元,用于根据统计所有所述索引编号后,获得所述有效哈希桶数量的数组。
第一构建单元702,用于根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表。
所述第一构建单元702中的数据存储表可以是用于存储特征数据的存储表,因为基于所述获取单元701所获得的有效哈希桶的数量,因此能够构建一个连续存储所述特征数据的数据存储表,也就是说,构建的数据存储表是一个不存在断裂或者空数据的存储内存。具体地,对于有效哈希桶数量的统计是根据对哈希桶索引编号进行升序排列后获得的,因此,根据获得所述有效哈希桶数量的数组构建用于存储与所述特征数据信息对应的特征数据的数据存储表。如图5所示的当有效哈希桶数量的数组为[1,2,3,7,1,5,3,3,1,2,1]时,连续的数据存储表的结构可以如图5所示,即:按照数组的值进行数据存储表的内存分配,且分配内存为连续不间断的。
在一些实例中,基于数据存储表的构建过程,可以理解的是,需要将特征数据存储在所述数据存储表内,因此还包括:
特征编号确定单元,用于按照统计顺序,确定与所述索引编号对应的所述特征数据的特征编号;
特征数据提取单元,用于根据所述特征编号提取所述特征数据;
特征数据存储单元,用于按照与所述统计顺序相同的顺序,将提取的所述特征数据存储到所述数据存储表内。
为获知用于存储所述特征数据信息的哈希桶内是否有特征数据信息,还包括:
标识单元,用于当所述确定与所述索引编号对应的所述特征数据的特征编号为空时,将所述索引编号对应的所述哈希桶标识为无效状态;或者,当所述确定与所述索引编号对应的所述特征数据的特征编号不为空时,将所述索引编号对应的所述哈希桶标识为有效状态。或者,在特征编号为空和不空时,均对哈希桶进行标识。可以理解的是,不论是针对哈希桶进行有效状态的标识还是无效状态的标识,二者可以同时进行,即对有特征编号的哈希桶标识为有效状态,对没有特征编号的哈希桶标识为无效状态,具体可以采用二值标识的形式实现;也可以在标识有有效状态后,对没有存储特征编号的哈希桶不再进行无效标识,相反的,在标识有无效状态后,对存储有特征编号的哈希桶不再进行有效标识。进而通过标识信息即可获知当前哈希桶为有效哈希桶还是无效哈希桶。
第二构建单元703,用于基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
所述第二构建单元703包括:索引编号排序子单元和存储位置获取子单元;
其中,所述索引编号排序子单元,用于对所述哈希桶的索引编号按照设置的排序要求进行排序,获得排序后的哈希桶以及对应的所述特征编号。
所述存储位置获取子单元,用于根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置。
所述存储位置获取子单元包括:扫描子单元和偏移表获得子单元;
其中,所述扫描子单元,用于当扫描首位哈希桶的状态标识为有效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;当扫描首位哈希桶的状态标识为无效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度置为0;依序扫描下一个哈希桶,当扫描的当前哈希桶的状态标识为有效状态或为无效状态时,所述哈希桶针对所述数据存储表中的特征数据的起始位置确定为相邻哈希桶存储位置的数值与存储长度的数值之和,将当前哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量。
偏移表获得子单元,用于根据扫描所有哈希桶后,获得用于描述所述特征数据在所述数据存储表中起始位置和存储长度的偏移表。
以上为本申请提供的一种哈希表的构建装置实施例的描述,该构建装置的细节内容可以参考上述关于哈希表的构建方法实施例的描述,此处不再赘述。
本申请还提供一种图像匹配方法,请参考图8所示,图8是本申请提供的一种图像匹配方法实施例的流程图,该图像匹配方法包括:
步骤S801:获取目标匹配图像的特征数据。
所述步骤S801中的目标匹配图像可以理解为需要进行匹配的图像,及待匹配的图像,在目标匹配图像中获取描述目标匹配图像信息的特征数据,也就是特征点,所述特征点可以是目标匹配图像中的局部位置区域的特征点,也可以是完整图像区域的全部特征点。
步骤S802:确定所述特征数据所位于的哈希桶的信息。
所述步骤S802的目的在于:针对所述步骤S801中获取的特征数据确定相对应的哈希桶的信息,也就是说,步骤S801中的特征数据是聚类后特征数据,进而能够确定出特征数据属于哪个哈希桶的信息。
所述哈希桶的信息可以是指特征数据属于哪个哈希桶的索引编号,即:确定特征数据对应的索引编号。
步骤S803:根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置。
所述步骤S803中的源图像可以是指,已经将图像特征数据存储在连续的存储数据表中的图像,或者是与目标匹配图像的特征数据进行比较的图像。
步骤S804:提取所述存储位置上存储的图像特征数据;
步骤S805:将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
所述步骤S805的具体实现过程可以包括:
步骤S805-1:计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
所述步骤S805-1中可以采用采用海明距离的计算方式,计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
步骤S805-2:将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据。
需要说明的是,所述步骤S805的匹配过程可以采用SLAM(SimultaneousLocalization And Mapping)系统内的图像匹配方式。在所述SLAM系统中,一个图像的特征点由两部分构成:关键点(Keypoint)和描述子(Descriptor)。关键点指的是该特征点在图像中的位置,有些还具有方向、尺度信息;描述子通常是一个向量,描述关键点周围像素的信息。通常描述子是按照外观相似的特征应该有相似的描述子设计的。因此,在匹配的时候,只要两个特征点的描述子在向量空间的距离相近,可以认为是同一个特征点或者是匹配的特征点。
因此,在本实施例中,还包括:
从所述图像特征数据与所述目标匹配图像的特征数据之间的距离值中选取最小距离值。
所述步骤S805-2所述将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据,包括:
判断所述最小距离值是否小于或等于设定的距离阈值,若是,则确定匹配结果为所述图像特征数据和目标匹配图像的特征数据匹配。
当匹配结果确定后,可以将所述匹配结果为匹配的特征数据添加到匹配特征数据集合中。
以上是对本申请提供的一种图像匹配方法实施例的具体描述,与前述提供的一种图像匹配方法实施例相对应,本申请还公开一种图像匹配装置实施例,请参看图9,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参考图9所示,图9是本申请提供的一种图像匹配装置实施例的结构示意图。该装置包括:
获取单元901,用于获取目标匹配图像的特征数据;
第一确定单元902,用于确定所述特征数据所位于的哈希桶的信息;
第二确定单元903,用于根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置;
提取单元904,用于提取所述存储位置上存储的图像特征数据;
匹配单元905,用于将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
所述匹配单元905包括:计算子单元和确定子单元。
所述计算子单元,用于计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
所述计算子单元具体可以采用海明距离的计算方式,计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
所述确定子单元,用于将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据。
在一些实施例中,还可以包括:
选取单元,用于从所述图像特征数据与所述目标匹配图像的特征数据之间的距离值中选取最小距离值;
所述确定子单元可以包括:判断子单元,用于判断所述最小距离值是否小于或等于设定的距离阈值,若是,则确定匹配结果为所述图像特征数据和目标匹配图像的特征数据匹配。
在一些实施例中,还可以包括:添加单元,用于将所述匹配结果为匹配的特征数据添加到匹配特征数据集合中。
以上为本申请提供的一种图像匹配装置实施例的说明,具体细节内容可以参考上述图像匹配方法以及上述哈希表的构建方法的详细描述,此处不再赘述。
基于上述内容,本申请还提供一种计算机存储介质,用于存储程序;
所述程序在被处理器执行时,能够使得处理器执行如上所述的哈希表的构建方法中的步骤,或者如上所述的图像匹配方法中的步骤。
基于上述内容,本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储程序,所述程序在被所述处理器读取执行时,使得所述电子设备执行如上所述的哈希表的构建方法中的步骤,或者如上所述的图像匹配方法中的步骤。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (23)
1.一种哈希表的构建方法,其特征在于,包括:
获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量;
根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表;
基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
2.根据权利要求1所述的哈希表的构建方法,其特征在于,还包括:
获取所述特征数据信息;
确定用于存储所述特征数据信息的所述哈希桶的总数量;
按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中。
3.根据权利要求2所述的哈希表的构建方法,其特征在于,所述获取所述特征数据信息,包括:
获取所述特征数据的特征编号;
所述确定用于存储所述特征数据信息的所述哈希桶的总数量,包括:
确定用于存储描述所述特征数据的特征编号的所述哈希桶的总数量;
所述按照所述特征数据信息描述的所述特征数据的类型,将所述特征数据信息存储在所述哈希桶的总数量范围内的所述哈希桶中,包括:
按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的哈希桶中。
4.根据权利要求3所述的哈希表的构建方法,其特征在于,所述按照所述特征数据的类型,将同类型的所述特征数据对应的所述特征编号存储在相同的所述哈希桶中,包括:
确定所述哈希桶的索引编号;
将同类型的所述特征数据对应的所述特征编号存储在所述索引编号相同的所述哈希桶中,获得用于存储特征数据信息的哈希桶。
5.根据权利要求4所述的哈希表的构建方法,其特征在于,还包括:
按照设置的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序以及与所述哈希桶顺序相对应的排序后的特征编号顺序。
6.根据权利要求5所述的哈希表的构建方法,其特征在于,所述按照设定的排序要求,对所述索引编号进行排序,获得排序后的哈希桶顺序,包括:
按照设置的升序或降序排序要求,对所述哈希桶的索引编号进行排序。
7.根据权利要求1所述的哈希表的构建方法,其特征在于,所述获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量,包括:
对所述特征数据信息按照设置的排序要求进行排序,获得排序后的特征数据信息以及对应的所述哈希桶的索引编号;
对所述索引编号按照所述排序要求进行排序,获得排序后的哈希桶和对应的特征数据信息;
对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量。
8.根据权利要求7所述的哈希表的构建方法,其特征在于,所述排序要求为按照设置的升序或降序排序要求,采用原位快速排序方式对所述索引编号进行排序。
9.根据权利要求8所述的哈希表的构建方法,其特征在于,对排序后的所述哈希桶的索引编号进行统计,获得所述有效哈希桶数量,包括:
按照排序顺序扫描有效哈希桶的索引编号;
当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号不相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量分别记为1;
当第一有效哈希桶的索引编号与相邻的第二有效哈希桶的索引编号相等时,将所述第一有效哈希桶的索引编号的数量和所述第二有效哈希桶的索引编号的数量的数量之和记为2;
当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号不相等时,则将所述第三有效哈希桶的索引编号的数量记为1;
当所述第二有效哈希桶的索引编号与相邻的第三有效哈希桶的索引编号相等时,在所述第二有效哈希桶的索引编号的数量的基础上累加1;
统计所有所述索引编号后,获得所述有效哈希桶数量的数组。
10.根据权利要求9所述的哈希表的构建方法,其特征在于,还包括:
按照统计顺序,确定与所述索引编号对应的所述特征数据的特征编号;
根据所述特征编号提取所述特征数据;
按照与所述统计顺序相同的顺序,将提取的所述特征数据存储到所述数据存储表内。
11.根据权利要求10所述的哈希表的构建方法,其特征在于,还包括:
当所述确定与所述索引编号对应的所述特征数据的特征编号为空时,将所述索引编号对应的所述哈希桶标识为无效状态。
12.根据权利要求10或11所述的哈希表的构建方法,其特征在于,还包括:
当所述确定与所述索引编号对应的所述特征数据的特征编号不为空时,将所述索引编号对应的所述哈希桶标识为有效状态。
13.根据权利要求12所述的哈希表的构建方法,其特征在于,所述基于所述哈希桶的信息和所述哈希桶中存储的特征数据信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表,包括:
对所述哈希桶的索引编号按照设置的排序要求进行排序,获得排序后的哈希桶以及对应的所述特征编号;
根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置。
14.根据权利要求13所述的哈希表的构建方法,其特征在于,所述根据所述排序后的哈希桶的状态标识以及对应的所述特征编号的数量,获得所述特征编号对应的特征数据在所述数据存储表中的存储位置,包括:
当扫描首位哈希桶的状态标识为有效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
当扫描首位哈希桶的状态标识为无效状态时,将所述哈希桶针对所述数据存储表中的特征数据的起始位置置为0,将所述哈希桶针对所述数据存储表中的特征数据的存储长度置为0;
依序扫描下一个哈希桶,当扫描的当前哈希桶的状态标识为有效状态或为无效状态时,所述哈希桶针对所述数据存储表中的特征数据的起始位置确定为相邻哈希桶存储位置的数值与存储长度的数值之和,将当前哈希桶针对所述数据存储表中的特征数据的存储长度确定为当前哈希桶存储特征数据的数量;
根据扫描所有哈希桶后,获得用于描述所述特征数据在所述数据存储表中起始位置和存储长度的偏移表。
15.一种哈希表的构建装置,其特征在于,包括:
获取单元,用于获取用于存储特征数据信息的哈希桶中,已存储有所述特征数据信息的有效哈希桶数量;
第一构建单元,用于根据所述有效哈希桶数量,构建用于存储与所述特征数据信息对应的特征数据的数据存储表;
第二构建单元,用于基于所述哈希桶的信息和所述哈希桶中存储的数据特征信息,构建用于描述所述特征数据在所述数据存储表中存储位置的偏移表。
16.一种图像匹配方法,其特征在于,包括:
获取目标匹配图像的特征数据;
确定所述特征数据所位于的哈希桶的信息;
根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置;
提取所述存储位置上存储的图像特征数据;
将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
17.根据权利要求16所述的图像匹配方法,其特征在于,所述将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果,包括:
计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值;
将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据。
18.根据权利要求17所述的图像匹配方法,其特征在于,还包括:
从所述图像特征数据与所述目标匹配图像的特征数据之间的距离值中选取最小距离值;
所述将所述距离值满足匹配条件的图像特征数据和目标匹配图像的特征数据,确定为匹配的特征数据,包括:
判断所述最小距离值是否小于或等于设定的距离阈值,若是,则确定匹配结果为所述图像特征数据和目标匹配图像的特征数据匹配。
19.根据权利要求17或18所述的图像匹配方法,其特征在于,还包括:
将所述匹配结果为匹配的特征数据添加到匹配特征数据集合中。
20.根据权利要求17所述的图像匹配方法,其特征在于,所述计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值,包括:
采用海明距离的计算方式,计算所述存储的图像特征数据与所述目标匹配图像的特征数据之间的距离值。
21.一种图像匹配装置,其特征在于,包括:
获取单元,用于获取目标匹配图像的特征数据;
第一确定单元,用于确定所述特征数据所位于的哈希桶的信息;
第二确定单元,用于根据所述所位于的哈希桶的信息和偏移表,确定所述所位于的哈希桶中的源图像的特征数据在数据存储表中的存储位置,所述数据存储表用于存储与所述源图像的图像特征数据信息对应的图像特征数据,所述偏移表用于描述所述图像特征数据在所述数据存储表中的存储位置;
提取单元,用于提取所述存储位置上存储的图像特征数据;
匹配单元,用于将提取的图像特征数据分别与所述目标匹配图像的特征数据进行匹配,获得匹配结果。
22.一种计算机存储介质,用于存储程序;
所述程序在被处理器执行时,能够使得处理器执行如权利要求1-14中任意一项所述的哈希表的构建方法中的步骤,或者如权利要求16-20中任意一项所述的图像匹配方法中的步骤。
23.一种电子设备,包括:
处理器;
存储器,用于存储程序,所述程序在被所述处理器读取执行时,使得所述电子设备执行如权利要求1-14中任意一项所述的哈希表的构建方法中的步骤,或者如权利要求16-20中任意一项所述的图像匹配方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910284520.2A CN111813971B (zh) | 2019-04-10 | 2019-04-10 | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910284520.2A CN111813971B (zh) | 2019-04-10 | 2019-04-10 | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813971A true CN111813971A (zh) | 2020-10-23 |
CN111813971B CN111813971B (zh) | 2024-06-07 |
Family
ID=72844459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910284520.2A Active CN111813971B (zh) | 2019-04-10 | 2019-04-10 | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813971B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112232295A (zh) * | 2020-11-09 | 2021-01-15 | 珠海大横琴科技发展有限公司 | 一种新增目标船只的确认方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692651A (zh) * | 2009-09-27 | 2010-04-07 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
CN104199827A (zh) * | 2014-07-24 | 2014-12-10 | 北京大学 | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 |
WO2018099107A1 (zh) * | 2016-12-02 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种哈希表管理的方法和装置、计算机存储介质 |
-
2019
- 2019-04-10 CN CN201910284520.2A patent/CN111813971B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692651A (zh) * | 2009-09-27 | 2010-04-07 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
CN104199827A (zh) * | 2014-07-24 | 2014-12-10 | 北京大学 | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 |
WO2018099107A1 (zh) * | 2016-12-02 | 2018-06-07 | 深圳市中兴微电子技术有限公司 | 一种哈希表管理的方法和装置、计算机存储介质 |
Non-Patent Citations (2)
Title |
---|
佚名: "实现哈希桶(空间利用率较高的哈希表)", Retrieved from the Internet <URL:https://mbd.baidu.com/ma/s/otaoqbHP> * |
王竹荣;伊珍珍;黑新宏;冯华萍;费蓉;: "哈希桶Variety-B树的数据流处理方法", 西安理工大学学报, no. 01, 30 March 2017 (2017-03-30) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112232295A (zh) * | 2020-11-09 | 2021-01-15 | 珠海大横琴科技发展有限公司 | 一种新增目标船只的确认方法、装置及电子设备 |
CN112232295B (zh) * | 2020-11-09 | 2021-10-15 | 珠海大横琴科技发展有限公司 | 一种新增目标船只的确认方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111813971B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9053386B2 (en) | Method and apparatus of identifying similar images | |
US11954152B2 (en) | Video matching methods and apparatuses, and blockchain-based infringement evidence storage methods and apparatuses | |
EP3767483B1 (en) | Method, device, system, and server for image retrieval, and storage medium | |
CN106462728A (zh) | 用于基于图像特征的识别的系统和方法 | |
CN111163072B (zh) | 机器学习模型中特征值的确定方法、装置及电子设备 | |
US20190155523A1 (en) | Efficient Volume Replication In A Storage System | |
CN111061752B (zh) | 数据处理方法、装置及电子设备 | |
CN110348274B (zh) | 一种人脸识别方法、装置及设备 | |
CN104899281A (zh) | 学术文章处理方法和学术文章的搜索处理方法及装置 | |
CN112860416A (zh) | 标注任务分派策略方法、装置 | |
CN111191591B (zh) | 一种水印检测、视频处理方法和相关设备 | |
CN113656699A (zh) | 用户特征向量确定方法、相关设备及介质 | |
CN111813971B (zh) | 哈希表构建及图像匹配方法和装置,存储介质和电子设备 | |
CN114218383A (zh) | 重复事件的判定方法、装置及应用 | |
CN110895703A (zh) | 法律文书案由识别方法及装置 | |
CN117475364A (zh) | 图片检测方法、设备及计算机存储介质 | |
CN111738173A (zh) | 视频片段检测方法、装置、电子设备及存储介质 | |
CN109947933B (zh) | 用于对日志进行分类的方法及装置 | |
CN110427557A (zh) | 主播推荐方法、装置、电子设备及计算机可读存储介质 | |
WO2022193232A1 (zh) | 人脸聚类方法及装置、分类存储方法、介质、电子设备 | |
CN111488490B (zh) | 视频聚类方法、装置、服务器及存储介质 | |
CN107704472B (zh) | 一种查找数据块的方法及装置 | |
CN111368616B (zh) | 从车的识别方法、装置及设备 | |
CN114373088A (zh) | 一种图像检测模型的训练方法和相关产品 | |
CN111597368A (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 |