指纹定位方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 11:39:06
技术领域
本发明涉及指纹定位技术领域,特别涉及一种指纹定位方法、装置、电子设备及存储介质。
背景技术
目前,为缩小指纹匹配范围,一般把整个区域分成多个小块区域,如采用机器学习或者滤波理论,从而可以首先定位具体的小块区域,再进行精确的指纹定位,降低时间复杂度。
相关技术中,随着深度神经网络的端到端的方法被引入,可以直接训练出一个模型,从而直接得到回归的结果即观测值所在的坐标位置,但是输入参数过多,容易过拟合,且神经网络过于复杂,计算成本较高,又或者输入参数过少,容易欠拟合,导致现在的指纹定位无法有效保证定位精度,即无法满足使用要求,亟待改进。
发明内容
本发明提供一种指纹定位方法、装置、电子设备及存储介质,以解决通过训练的模型直接得到观测值所在的坐标位置,不具有记忆功能,导致出现过拟合或欠拟合的现象,定位精度较低,成本较高,无法满足使用要求等问题。
本发明第一方面实施例提供一种指纹定位方法,包括以下步骤:将当前位置的指纹特征输入预设的神经网络,得到回归点;根据所述回归点得到每个预设区域质心的距离,确认所述回归点的所属区域;获取所述所处区域的所有点到所述回归点的距离,确定距离小于预设值的点,生成指纹特征集;确定所述指纹特征集的质心,以获取所述当前位置的位置信息。
本发明第一方面实施例提供一种指纹定位装置,包括:获取模块,用于将当前位置的指纹特征输入预设的神经网络,得到回归点;处理模块,用于根据所述回归点得到每个预设区域质心的距离,确认所述回归点的所属区域;第一生成模块,用于获取所述所处区域的所有点到所述回归点的距离,确定距离小于预设值的点,生成指纹特征集;定位模块,用于确定所述指纹特征集的质心,以获取所述当前位置的位置信息。
本发明第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的指纹定位方法。
本发明第四方面实施例提供一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的指纹定位方法。
通过具有记忆功能的神经网络,根据回归坐标和粗定位质心数据进行指纹特征匹配,在保证匹配效率的基础上,提高匹配的精度,实现当前位置的精确定位,提高定位的精确度和稳定性,降低时间复杂度的同时,有效满足使用要求,更加便捷可靠。由此,解决了通过训练的模型直接得到观测值所在的坐标位置,不具有记忆功能,导致出现过拟合或欠拟合的现象,定位精度较低,成本较高,无法满足使用要求等问题。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的指纹定位方法的流程图;
图2为根据本发明一个实施例的离线阶段的指纹定位方法的流程图;
图3为根据本发明一个实施例的在线匹配阶段的指纹定位方法的流程图;
图4为根据本发明实施例的指纹定位装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的指纹定位方法、装置、电子设备及存储介质。针对上述背景技术中心提到的直接训练出一个模型,从而直接得到回归的结果即观测值所在的坐标位置,但是输入参数过多,容易过拟合,且神经网络过于复杂,计算成本较高,又或者输入参数过少,容易欠拟合,导致现在的指纹定位无法有效保证定位精度,即无法满足使用要求的问题,本发明提供了一种指纹定位方法,在该方法中,通过具有记忆功能的神经网络,根据回归坐标和粗定位质心数据进行指纹特征匹配,在保证匹配效率的基础上,提高匹配的精度,实现当前位置的精确定位,提高定位的精确度和稳定性,降低时间复杂度的同时,有效满足使用要求,更加便捷可靠。由此,解决了通过训练的模型直接得到观测值所在的坐标位置,不具有记忆功能,导致出现过拟合或欠拟合的现象,定位精度较低,成本较高,无法满足使用要求等问题。
具体而言,图1为本发明实施例所提供的一种指纹定位方法的流程示意图。
如图1所示,该指纹定位方法包括以下步骤:
在步骤S101中,将当前位置的指纹特征输入预设的神经网络,得到回归点。
可以理解的是,本发明实施例的指纹可以为电磁信号特征,即随着科技的发展,智能设备越来越普及,人们对于智能化的设备有着越来越高的需求。为了满足上述的需求,越来越多的传感器,信息收集设备被应用在人们的生活当中,导致越来越多的数据被收集。在对现有大量数据处理的过程当中,发现传统的数据处理方式显得捉襟见肘,因此为了实现对大量数据的处理,指纹法应运而生。具体地,指纹法指的是把采集到的数据抽象成高维向量,视作一个个独一无二的“指纹”,然后建立指纹库。当需要进行数据处理的时候再进行匹配,回归从而实现快速处理高维数据。
需要说明的是,由于指纹库的是空间复杂度非常高,若是直接一个一个进行匹配计算,会导致非常高的时间复杂度。因此,现有技术中如基于机器学习的定位方法,主要基于聚类的算法,例如K均值聚类、二次K均值聚类、mean shift聚类等,使用核心点或者质心,但是定位比较粗糙,且实时性不高,故在高速系统中具有一定的局限性;又如基于滤波理论的定位方法,通过滤波找出指纹特征再进行匹配,例如卡尔曼滤波及其变种的滤波算法,虽然在很大程度上可以提高定位的准确性,但是由于滤波算法存在一定的误差,故对于细微变化的参数不敏感,难以保证定位精度。
因此,本发明实施例可以基于记忆算法的神经网络,使用带记忆功能的深度神经网络计算待匹配的指纹特征,有效解决指纹库太大传统方法难以快速匹配的问题,相比较于现有技术所使用的深度学习方法没有记忆功能,本发明实施例可以使用的带记忆功能的神经网络实现在线匹配的时候,无论面对一个多么大的指纹库,在短时间内快速完成对待解算指纹的解算,保证匹配效率。
可选地,在本发明的一个实施例中,神经网络可以为带有记忆功能的神经网络,如神经网络可以为GRU(Gated Recurrent Unit,门控循环单元)神经网络。
可以理解的是,基于记忆算法的神经网络如GRU神经网络,可以实现记忆功能,具体而言,带记忆功能的神经网络部分可以理解为所有基于有记忆功能的深度神经网络算法,例如LSTM(Long Short-Term Memory,长短时记忆)算法、观察孔(Peephole)算法等,使得现有技术先离线记录指纹特征点,构造指纹数据库,其次在完成该工作之后,开始在线匹配指纹,但是指纹库的密度是随着取样数目的上升指数级上升,难以应对这种时间复杂度和空间复杂度指数上升的情况,导致系统性能急速下降的问题,本发明实施例不单单只是基于深度神经网络的端到端的方法直接训练出一个模型,不进行分类,而是直接得到回归的结果即观测值所在的坐标位置,而是取长补短,引入带记忆功能的深度神经网络并且使用滤波算法(下面会进行相信描述)来提高解算的精度,在保证效率的前提下,保证系统的稳定性。
进一步地,在本发明的一个实施例中,在将当前位置的指纹特征输入预设的神经网络之前,还包括:将当前位置所处的目标区域分成多个预设区域,并获取每个预设区域中每个位置的指纹特征及对应位置信息和每个预设区域的质心,生成指纹库;根据指纹库训练神经网络,得到预设的神经网络。
也就是说,在离线阶段,本发明实施例首先建立指纹库,即同时记录指纹特征和真实点,并划分成若干个区域,及计算各个区域的质心,从而在指纹库建立完成后,将指纹库的数据放入带记忆功能的神经网络中学习,如使用GRU算法进行训练。
下面对本发明实施例的离线阶段的指纹定位方法进行举例描述。
如图2所示,本发明实施例的离线阶段包括:
步骤S201:开始。
步骤S202:系统初始化。
步骤S203:判断是否完成离线指纹库创建与分割。其中,如果是,则执行步骤S204,否则继续执行步骤S203。
可以理解的是,在离线阶段,首先建立指纹库,即同时记录指纹特征和真实点,并划分成若干个区域,及计算各个区域的质心。
步骤S204:将数据放入GRU学习。
即言,将指纹库的数据放入带记忆功能的神经网络中学习,如使用GRU算法进行训练,下面进行详细描述。
步骤S205:判断是否完成学习。如果是,则执行步骤S206,否则继续执行步骤S205。
步骤S206:读入待匹配指纹特征。
步骤S207:将指纹特征放入GRU得到回归点。
步骤S208:计算回归点所属的区域。
步骤S209:计算指纹特征集的最大半径r内点并计算其质心。
步骤S210:将回归点和所的质心滤波,得到匹配点。
步骤S211:判断是否收到新的指纹点。如果是,则执行步骤S206,否则继续执行步骤S211。
在步骤S102中,根据回归点得到每个预设区域质心的距离,确认回归点的所属区域。
可以理解的是,在在线匹配阶段,本发明是实力通过步骤S101将待匹配的指纹特征放入GRU算法中得到一个回归值,并且计算距离各个区域质心的距离,并并入距离最近的区域,从而确定回归点的所属区域。
在步骤S103中,获取所处区域的所有点到回归点的距离,确定距离小于预设值的点,生成指纹特征集。
可选地,在本发明的一个实施例中,确定距离小于预设值的点,包括:获取指纹特征集的最大半径;根据指纹特征集的最大半径得到预设值。
可以理解的是,在确定回归点的所属区域之后,寻找该回归值小范围内的指纹点并记录数量,如计算待选区域的所有点到回归点距离并将距离小于指纹特征集的最大半径r的点加入指纹特征集,通过指定指纹特征集的最大半径r,即距离上述回归点最远子集点的距离,距离度量方式,不但快速得到指纹匹配的结果,且可以控制在常数时间内完成,即保证了算法的效率。
在步骤S104中,确定指纹特征集的质心,以获取当前位置的位置信息。
可选地,在本发明的一个实施例中,获取当前位置的位置信息,包括:对回归点的回归值与质心进行滤波融合,确定匹配点;根据匹配点对应的位置信息得到当前位置的位置信息。
可以理解的是,本发明实施例最后计算包含步骤S103的指纹点以及回归值的质心,将质心和回归值进行滤波,得到相应的滤波值并将其作为最终的匹配点,实现指纹定位。需要说明的是,本发明实施例将神经网络与滤波算法相结合,即在神经网络计算的基础上,使用滤波算法提高定位精度,不但可以实现快速且高精度地对待解算指纹解算,而且显著提高指纹特征的解算效率,
下面对本发明实施例的在线匹配阶段的指纹定位方法进行举例描述。
如图3所示,本发明实施例的在线匹配阶段包括:
步骤S301:开始。
步骤S302:读入待匹配指纹特征。
待匹配指纹特征可以理解为当前位置的指纹特征,即当前位置的电磁信号特征。
步骤S303:将数据放入GRU回归,得到回归点。
步骤S304:计算回归点到各个区域质心距离。
也就是说,通过GRU算法使得神经网络具有记忆功能,将待匹配指纹特征输入GRU神经网络,得到相应的回归点,从而基于GRU回归坐标和粗定位质心数据融合来实现高精度指纹特征匹配,下面进行详细描述。
步骤S305:并入距离最短质心的区域。
即言,通过计算到各个区域质心的距离,并入距离最短质心所属的区域。
步骤S306:判断距离是否小于r。如果是,则执行步骤S307,否则执行步骤S308。
步骤S307:将指纹特征放入指纹特征集。
可以理解的是,计算待选区域所有点到回归点距离并将距离小于子特征集最大半径r的点加入子特征集,即指纹特征集。
步骤S308:判断是否遍历所在区域。如果是,则执行步骤S309,否则继续执行步骤306。
步骤S309:计算指纹特征集的质心。
具体而言,计算指纹特征集以及回归点的质心。
步骤S310:将回归点和所的质心进行加权平均,得到匹配点。
具体地,本发明实施例使用加权平均算法进行滤波融合,如可以使用所有的滤波算法,例如卡尔曼滤波,粒子滤波等,并将滤波结果作为输出结果
步骤S311:判断是否收到新的指纹点。其中,如果是,则执行步骤S303,否则继续执行步骤S311。
需要说明的是,小范围点数目部分也可以使用K近邻等指定数目点的方法代替,在此不做具体限制。
综上,本发明实施例可以在保证效率的基础上,提高匹配的精度,提高定位精度,实现快速定位的目的,有效解决解决通过训练的模型直接得到观测值所在的坐标位置,不具有记忆功能,导致出现过拟合或欠拟合的现象,定位精度较低,成本较高,无法满足使用要求等问题。
根据本发明实施例提出的指纹定位方法,通过具有记忆功能的神经网络,根据回归坐标和粗定位质心数据进行指纹特征匹配,在保证匹配效率的基础上,提高匹配的精度,实现当前位置的精确定位,提高定位的精确度和稳定性,降低时间复杂度的同时,有效满足使用要求,更加便捷可靠。
其次参照附图描述根据本发明实施例提出的指纹定位装置。
图4是本发明实施例的指纹定位装置的方框示意图。
如图4所示,该指纹定位装置10包括:获取模块100、处理模块200、第一生成模块300和定位模块400。
其中,获取模块100用于将当前位置的指纹特征输入预设的神经网络,得到回归点。
处理模块200用于根据所述回归点得到每个预设区域质心的距离,确认所述回归点的所属区域。
第一生成模块300用于获取所述所处区域的所有点到所述回归点的距离,确定距离小于预设值的点,生成指纹特征集。
定位模块400用于确定所述指纹特征集的质心,以获取所述当前位置的位置信息。
可选地,在本发明的一个实施例种,定位模块400包括:滤波单元和获取单元。
其中,滤波单元用于对所述回归点的回归值与所述质心进行滤波融合,确定匹配点。
获取单元用于根据所述匹配点对应的位置信息得到所述当前位置的位置信息。
进一步地,在本发明的一个实施例中,本发明实施例的指纹定位装置10还包括:第二生成模块和训练模块。
其中,第二生成模块用于将所述当前位置所处的目标区域分成多个预设区域,并获取所述每个预设区域中每个位置的指纹特征及对应位置信息和所述每个预设区域的质心,生成指纹库。
训练模块用于根据所述指纹库训练所述神经网络,得到所述预设的神经网络。
需要说明的是,前述对指纹定位方法实施例的解释说明也适用于该实施例的指纹定位装置,此处不再赘述。
根据本发明实施例提出的指纹定位装置,通过具有记忆功能的神经网络,根据回归坐标和粗定位质心数据进行指纹特征匹配,在保证匹配效率的基础上,提高匹配的精度,实现当前位置的精确定位,提高定位的精确度和稳定性,降低时间复杂度的同时,有效满足使用要求,更加便捷可靠。
为了实现上述实施例,本发明还提出了一种电子设备,包括:至少一个处理器和存储器。其中,存储器与至少一个处理器通信连接,其中,存储器存储有可被至少一个处理器执行的指令,指令被设置为用于执行上述实施例的指纹定位方法,如以用于:
将当前位置的指纹特征输入预设的神经网络,得到回归点。
根据回归点得到每个预设区域质心的距离,确认回归点的所属区域。
获取所处区域的所有点到回归点的距离,确定距离小于预设值的点,生成指纹特征集。
确定指纹特征集的质心,以获取当前位置的位置信息。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质,其存储计算机指令,计算机指令用于使计算机执行上述实施例的指纹定位方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
- 定位指纹的更新方法、装置、存储介质和电子设备
- 基于射频指纹定位的方法、装置、电子设备及存储介质