图像特征点选取方法及相关装置、设备和存储介质与流程

文档序号:28816395发布日期:2022-02-09 06:14阅读:152来源:国知局
图像特征点选取方法及相关装置、设备和存储介质与流程

1.本技术涉及图像处理技术领域,特别是涉及一种图像特征点选取方法及相关装置、设备和存储介质。


背景技术:

2.对图像进行特征提取是计算机视觉、机器人、无人车、三维重建及增强现实等领域的重要底层技术。考虑后续特征匹配等对特征点处理的效率,往往会对图像进行特征提取后的得到特征点进行选取,以减少特征点的数量。
3.然而,对特征点进行选取的过程往往是对特征点进行划分后再进行选择,而现有的特征点划分过程往往需要动态不断申请空间和释放空间,从而影响特征点选取的执行效率,严重限制了是计算机视觉、机器人等技术领域的发展。
4.因此,如何提高特征点选取的执行效率,具有非常重要的意义。


技术实现要素:

5.本技术提供一种图像特征点选取方法及相关装置、设备和存储介质。
6.本技术第一方面提供了一种图像特征点选取方法,包括:获取图像帧中的若干特征点;基于若干特征点,预配置固定大小的节点存放空间;采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中,其中,节点的第一信息包括节点对应的特征点的特征相关信息;从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果。
7.因此,通过申请固定大小的节点存放空间,并将节点的第一信息存储至节点存放空间中,使得在采用树形划分方式对若干特征点划分进行划分的过程中,无需重复申请存放空间来来存放节点的第一信息,减少了针对存放空间的操作,以此可以提高特征点选取的执行效率。
8.其中,上述的基于若干特征点,预配置固定大小的节点存放空间,包括:基于目标选取特征点数,确定目标节点划分数量,其中,目标选取特征点数为需从若干特征点中选取的特征点数量,目标节点划分数量为最终划分得到的节点的数量;为若干特征点申请大小与目标节点划分数量匹配的节点存放空间。
9.因此,通过申请大小与目标节点划分数量匹配的节点存放空间,可以使得节点存放空间能够存储全部最终划分得到的节点的第一信息,使得后续无需再申请新的存放空间,以此减少了针对存放空间的操作,以此可以提高特征点选取的执行效率。
10.其中,上述的采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中,包括:将若干特征点的部分或全部特征点划分至一节点,并将节点的第一信息存放在节点存放空间中;依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求;其中,划分步骤包括:将节点确定为父节点,并将父节点对应的特征点划分到至少一个新的节点,将新的节点的第一信息存放在节点存放空
间中。
11.因此,可以实现对特征点选取过程中的特征点划分。
12.其中,上述的与当前执行的节点属于同一父节点的其他节点的执行顺序先于由当前执行的节点划分得到的节点的执行顺序。
13.因此,通过确定同属于一个父节点的节点优先被划分,提高了划分特征点的均匀性,进而提高后续特征选取的合理性。
14.其中,上述的依序对节点存放空间的每个节点执行划分步骤,包括:对于属于同一父节点的子节点,根据子节点对应的特征点数量确定子节点的子节点执行顺序,根据子节点执行顺序对子节点执行划分步骤,其中,子节点为父节点划分得到的节点。
15.因此,通过优先对对应特征点数较多的节点进行划分,可以使得对应特征点数量较多的节点优先被划分,可以提高划分特征点的均匀性。
16.其中,在将父节点对应的特征点划分到至少一个新的节点之后,方法还包括:将属于同一父节点的节点之间进行链路式指向,且使位于链路的链尾的节点指向于父节点指向的节点,使指向父节点的节点更新指向于位于链路的链头的节点;其中,节点的指向用于确定节点的执行顺序。
17.因此,通过链路指向方式可实现后续节点划分的顺序。
18.其中,上述的将新的节点的第一信息存放在节点存放空间中,包括:将其中一新的节点的第一信息覆盖父节点的第一信息进行存放,剩余新的节点的第一信息存放在节点存放空间中的剩余存放空间中。
19.因此,通过利用一个新的节点的第一信息覆盖父节点的第一信息进行存放,实现对存储空间的重复利用,可以节省存放空间。
20.其中,上述的将节点确定为父节点,包括:在节点对应的特征点数量满足第二要求的情况下,将节点作为父节点;和/或,将父节点对应的特征点划分到至少一个新的节点,包括:将父节点对应的父区域划分为第一数量个子区域,其中,父区域为父节点对应的特征点在图像帧中的区域;在子区域中的特征点数量满足第三要求的情况下,为子区域生成对应的子节点,其中子节点对应的特征点为子区域中的特征点;在所子区域的特征点数量不满足第三要求的情况下,不为子区域生成对应的子节点。
21.因此,通过判断节点对应的特征点数量是否满足第二要求,可以将不满足第二要求的节点作为父节点,提高特征点划分的均匀性,而且也可减少了需要划分的节点数量,提高了图像特征点选取的执行效率。另外,通过将父节点对应的父区域划分为第一数量个子区域,并且判断子区域的特征点数量是否满足第三要求,可以将不满足要求的子区域排除从而可以不生成对应的子节点,能够针对子区域的特征数量灵活确定是否形成节点。
22.其中,上述的第一要求为节点存放空间中的当前存放节点数少于目标节点划分数量;第二要求为节点对应的特征点数量大于第一阈值;第三要求为子区域中的特征点数量大于第二阈值;第一数量为4或8。
23.因此,通过确定第一要求为节点存放空间中的当前存放节点数少于目标节点划分数量,可以在得到满足要求数量的节点以后,停止执行节点划分的步骤。此外,通过设置第一阈值,可以减少需要划分的节点的数量。另外,通过判断子区域的特征点数量是否大于第二阈值,可以将特征点数量少于第二阈值的区域排除。再者,将每次划分子区域的数量限定
为4或8,即相当于采用四叉树或八叉树方式实现树形划分。
24.其中,上述的将若干特征点的部分或全部特征点划分至一节点,包括:将图像帧中除预设边界区域以外的区域作为根区域;将根区域中的特征点划分至一节点;和/或,依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求的步骤,是在检测到当前划分的节点所对应的特征数大于目标选取特征点数的情况下执行的。
25.因此,通过将去除图像帧的边缘区域,可以去除边缘区域上的特征点,减少特征点的数量,加快图像特征点选取方法执行速度。另外,通过判断当前划分的节点所对应的特征数是否大于目标选取特征点数,可以确定是否需要继续执行后续的依序对节点存放空间的每个节点执行划分步骤。
26.其中,在获取图像帧中的若干特征点之后,方法还包括:为若干特征点申请特征存放空间,并将若干特征点的第二信息存储至特征存放空间中;其中,节点对应的特征信息包括节点对应的特征点在特征存放空间的存放位置。
27.因此,通过申请特征存放空间,可以确定特征点的存放位置,便于后续对特征点进行划分。
28.其中,上述的节点对应的特征点的特征相关信息包括节点对应的特征点在特征存放空间中的起始存放位置和结束存放位置,方法还包括:每次将特征点划分到节点之后,调整特征存放空间中第二信息的存放位置,以使同一节点对应的特征点的第二信息存放在相邻位置上。
29.因此,通过将节点对应的特征点的特征相关信息设置为可以包括节点对应的特征点在特征存放空间中的起始存放位置和结束存放位置,就可以存储该节点对应的全部的特征点的特征点的特征相关信息,而不必记录每一个特征点的特征信息,由此可以节省存放空间。
30.其中,上述的特征存放空间为第一数组,第一数组中的每个元素用于存放一个特征点的第二信息;和/或,特征点的第二信息包括以下至少一者:特征点在图像帧中的位置信息、特征点的响应度、特征点所属的特征图的标识,其中,特征点所属的特征图为图像帧对应的多个不同分辨率的特征图中的其中一个。
31.因此,通过确定特征存放空间的具体形式,会便于后续对特征点进行划分。另外,通过确定特征点的第二信息,可以利用这些信息,用于后续对特征点进行划分。
32.其中,上述的节点存放空间为第二数组,第二数组中的每个元素用于存放一个节点的第一信息;或者,节点存放空间为单向链表,单向链表中的每个结点用于存放一个节点的第一信息;和/或,节点的第一信息还包括以下至少一者:节点在图像帧中对应的区域的位置信息、节点是否为预设节点、节点所指向的下一节点在节点存放空间中的存放位置信息、节点在树形划分方式得到的树形结构中所处的层标识。
33.因此,通过确定节点存放空间的具体存储形式,可以用于后续对特征点的划分。另外,通过确定节点的第一信息包括的具体的信息,可以根据这些信息用于后续对特征点的划分。
34.其中,上述的树形划分方式包括四叉树划分方式和八叉树划分方式中的至少一种;和/或,从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果,包括:分别从每个最终划分节点中选择第二数量个特征点,以得到若干特征点的选取结果。
35.因此,通过确定树形划分方式的具体方式,可以对特征点进行四叉树划分或者是八叉树划分。
36.本技术第二方面提供了一种图像特征点选取方法,包括:获取图像帧的多个特征图,其中,每个特征图的分辨率不同;对每个特征图并行执行以下特征点选取:从特征图获取若干特征点,并获取若干特征点的选取结果,其中,若干特征点的选取结果是利用上述第一方面描述的方法从若干特征点中选取得到的。
37.由此,通过对不同分辨率的特征图并行执行以下特征点选取,使得执行本技术图像特征点选取方法的设备可以同步对多个不同分辨率的特征图进行特征点选取,并获得特征点的选取结果,提高了针对多个不同分辨率的特征图进行特征点选取的整体执行效率。
38.其中,上述方案中,特征图包含的特征点总数越多,用于对特征图执行特征点选取的处理资源越多。
39.因为特征图包含的特征点总数越多,需要划分的特征点的数量就越多,所需要的算力就越多,因此通过确定当特征图包含的特征点总数越多,用于对特征图执行特征点选取的处理资源越多,可以提高特征点选取的整体执行效率。
40.本技术第三方面提供了一种图像特征点选取装置,包括:获取模块、内存申请模块、特征点划分模块和特征点选取模块;获取模块用于获取图像帧中的若干特征点;内存申请模块,用于基于若干特征点,预配置固定大小的节点存放空间;特征点划分模块,用于采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中,其中,节点的第一信息包括节点对应的特征点的特征相关信息;特征点选取模块,用于从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果。
41.本技术第四方面提供了一种图像特征点选取装置,包括:获取模块、特征点选取模块;获取模块,用于获取图像帧的多个特征图,其中,每个特征图的分辨率不同;特征点选取模块,用于对每个特征图并行执行以下特征点选取:从特征图获取若干特征点,利用上述第一方面描述的方法获取若干特征点的选取结果。
42.本技术第五方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面和第二方面描述的图像特征点选取方法。
43.本技术第六方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面和第二方面描述的图像特征点选取方法。
44.上述方案,通过申请固定大小的节点存放空间,并将节点的第一信息存储至节点存放空间中,使得在采用树形划分方式对若干特征点划分进行划分的过程中,无需重复申请存放空间来来存放节点的第一信息,减少了针对存放空间的操作,以此可以提高特征点选取的执行效率。
附图说明
45.图1是本技术图像特征点选取方法第一实施例的第一流程示意图;
46.图2是本技术像特征点选取方法中采用树形划分方式划分特征点的一个实施例;
47.图3是本技术图像特征点选取方法第一实施例的第二流程示意图;
48.图4是本技术图像特征点选取方法第一实施例的第三流程示意图;
49.图5是本技术图像特征点选取方法中调整特征存放空间中第二信息的存放位置的一示意图;
50.图6是本技术图像特征点选取方法中调整特征存放空间中第二信息的存放位置的另一示意图;
51.图7是本技术图像特征点选取方法第一实施例的第四流程示意图;
52.图8是本技术图像特征点选取方法第二实施例的流程示意图;
53.图9是本技术图像特征点选取装置一实施例的框架示意图;
54.图10是本技术图像特征点选取装置另一实施例的框架示意图;
55.图11是本技术电子设备一实施例的框架示意图;
56.图12为本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
57.下面结合说明书附图,对本技术实施例的方案进行详细说明。
58.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
59.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
60.本技术的图像特征点选取方法可以应用于算机视觉、机器人、无人车、三维重建及增强现实等技术领域。用于执行本技术图像特征点选取方法的设备可以是计算机、手机、平板电脑以及智能眼镜等电子设备。
61.请参阅图1,图1是本技术图像特征点选取方法第一实施例的第一流程示意图。具体而言,可以包括如下步骤:
62.步骤s11:获取图像帧中的若干特征点。
63.图像帧可以是诸如手机、平板电脑、智能眼镜等电子设备所拍摄到的图像,或是监控相机所拍摄到的图像,在此不做限定。其他场景可以以此类推,在此不再一一举例。
64.在一个是实施例中,图像帧可以是原始图像去除边缘区域后的图像。例如,将原始图像的边缘一定数量的像素点去除后,得到的图像即为图像帧。
65.在获得图像帧以后,可以对图像帧进行特征提取,以此获得若干特征点。在一个实施方式中,得到的若干特征点存储在内存中,并且以数组的形式存储。特征提取算法例如是fast(features from accelerated segment test)算法,sift(scale-invariant feature transform)算法,orb(oriented fast and rotated brief)算法等等。在一个具体实施场景中,特征提取算法为orb(oriented fast and rotated brief)算法。另外,在得到特征点以后,还可以得到与每个特征点对应的特征表示,特征表示例如是特征向量。
66.在一个具体实施例中,可以是由执行本技术图像特征点选取方法的设备来进行图像采集并进行特征提取,以得到若干特征点。在另一个具体实施方式中,也可以是由执行本技术图像特征点选取方法的设备直接获取由其他设备对图像帧进行特征提取得到的特征点。
67.在一个实施方式中,在获取图像帧中的若干特征点之后,可以为若干特征点申请特征存放空间,并将若干特征点的第二信息存储至特征存放空间中。特征存放空间可以内存的内存空间。因此,通过申请特征存放空间,可以确定特征点的存放位置,便于后续对特征点进行划分。
68.在一个实施方式中,特征存放空间在内存中可以是一个数组,定义为第一数组。第一数组中包含一定数量的元素。在一个具体实施方式中,第一数组中的每个元素用于存放一个特征点的第二信息。因此,通过确定特征存放空间的具体形式,会便于后续对特征点进行划分。
69.在一个实施方式中,特征点的第二信息包括以下至少一者:特征点在图像帧中的位置信息、特征点的响应度、特征点所属的特征图的标识。特征点在图像帧中的位置信息可以是特征点的像素坐标。特征点的响应度可以是根据特征提取算法确定的特定的值,例如由fast特征提取算法提取特征点时确定的该特征点的响应值。特征点所属的特征图为图像帧对应的多个不同分辨率的特征图中的其中一个,特征点所属的特征图的标识可以是该特征点所属的特征图在多个不同分辨率的特征图中的编号。多个不同分辨率的特征图可以是基于图像帧的图像金字塔进行特征提取得到的,也可以是针对图像帧,进行不同的特征提取,得到多个不同分辨率的特征图。因此,通过确定特征点的第二信息,可以利用这些信息,用于后续对特征点进行划分。
70.步骤s12:基于若干特征点,预配置固定大小的节点存放空间。
71.在得到若干特征点以后,可以对这些特征点进行划分,以得到特征点的选取结果。对特征点进行划分,可以是采用树形划分方式将若干特征点划分到至少一个节点。因此,在执行对特征点进行划分的步骤前,可以基于若干特征点,预配置固定大小的节点存放空间,该固定大小的节点存放空间可以用于存储划分后的特征点的相关信息。在一个实施方式中,是在内存中申请固定大小的内存空间作为节点存放空间。树形划分方式可以根据需要进行选择。在一个实施方式中,节点存放空间为内存中的第二数组。
72.步骤s13:采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中。
73.在确定了节点存放空间以后,就可以采用树形划分方式将若干特征点划分到至少一个节点中,节点的数量可以根据需要进行设置,此处不做限制。采用树形划分方式将若干特征点划分到至少一个节点,对于图像帧而言,即是将图像帧分成若干个区域,每个区域对应一个节点,并确定每个区域包含的特征点,每个区域包含的特征点即为该区域对应的节点对应的特征点。由此,可以实现将若干特征点划分到至少一个节点中。在一些实施方式中,树形划分方式包括四叉树划分方式和八叉树划分方式中的至少一种。通过确定树形划分方式的具体方式,可以对特征点进行四叉树划分或者是八叉树划分。
74.在一个实施例中,若某些特征点的位置是若干个图像区域的边界,则可以根据需要将边界上的特征点划分至若干个图像区域中。
75.通过划分得到的节点后,可以将节点的第一信息存储至节点存放空间中。节点的第一信息可以包括节点对应的特征点的特征相关信息。节点对应的特征点的特征相关信息,可以理解为与该节点对应的特征点的相关信息,例如是特征点的在图像中的位置信息、特征点在内存中的存储位置信息、特征点的特征表示信息(如特征向量)等等。在一个实施
方式中,节点对应的特征信息包括节点对应的特征点在特征存放空间的存放位置。例如,特征存放空间是数组时,节点对应的特征点在特征存放空间的存放位置即是特征点存储的元素在数组中(特征存放空间)的位置下标。
76.在一个实施方式中,节点存放空间为内存中的第二数组,第二数组中的每个元素用于存放一个节点的第一信息。在另一个实施方式中,节点存放空间为单向链表,单向链表中的每个结点用于存放一个节点的第一信息。因此,通过确定节点存放空间的具体存储形式,可以用于后续对特征点的划分。
77.在一个实施方式中,节点的第一信息还包括以下至少一者:节点在图像帧中对应的区域的位置信息、节点是否为预设节点、节点所指向的下一节点在节点存放空间中的存放位置信息、节点在树形划分方式得到的树形结构中所处的层标识。节点在图像帧中对应的区域的位置信息,可以是节点在图像帧中对应的区域的四个顶点的像素坐标。预设节点可以是叶节点。节点所指向的下一节点在节点存放空间中的存放位置信息,下一节点在节点存放空间中的存放位置信息可以是下一节点在第二数组的位置下标。因此,通过确定节点的第一信息包括的具体的信息,可以根据这些信息用于后续对特征点的划分。
78.参阅图2,图2是本技术像特征点选取方法中采用树形划分方式划分特征点的一个实施例。在本实施例中,树形划分方式是四叉树划分方式。在对图像帧10进行划分时,第一次划分得到4个区域,分别是区域11、区域12、区域13和区域14,这4个区域的层标识为1。此时,可以对区域101进行划分,得到4个区域,分别是区域111、区域112、区域113、区域114。
79.步骤s14:从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果。
80.经过划分后,可以得到一定数量的节点,节点对应的图像帧的区域中会包含一定数量的特征点,此时可以从最终划分得到的节点中选取特征点,以得到若干特征点的选取结果,即是从最终划分得到的每个节点中,选择一定数量的特征点,以此作为特征点的选取结果。
81.在一个实施方式中,可以是分别从每个最终划分节点中选择第二数量个特征点,以得到若干特征点的选取结果。第二数量可以根据进行设置,此处不做限制。例如,可以在最终划分得到的每个节点中,从每个节点中选取1个特征点,从每个节点中选取的特征点即为若干特征点的选取结果。
82.因此,通过申请固定大小的节点存放空间,并将节点的第一信息存储至节点存放空间中,使得在采用树形划分方式对若干特征点划分进行划分时,无需重复的向内存申请内存空间来存放节点的第一信息,减少了针对内存的操作,以此可以提高特征点划分方法的执行效率。
83.请参阅图3,图3是本技术图像特征点选取方法第一实施例的第二流程示意图。本实施例是对上述步骤提及的“基于若干特征点,预配置固定大小的节点存放空间”进一步扩展,具体包括以下步骤s121和步骤s122。
84.步骤s121:基于目标选取特征点数,确定目标节点划分数量。
85.目标选取特征点数为需从若干特征点中选取的特征点数量,目标选取特征点数的具体数量可以根据需要进行设置。目标节点划分数量为最终划分得到的节点的数量。在一个实施方式中,目标节点划分数量可以与目标选取特征点数相同。例如,需要从若干特征点
中选取的特征点数量选取10个特征点作为目标选取特征点,则目标节点划分数量可以是10个节点。
86.步骤s122:为若干特征点申请大小与目标节点划分数量匹配的节点存放空间。
87.在确定最终划分得到的节点的数量后,在这些节点对应的图像帧的区域会包含从图像帧中提取得到的若干特征点,因此,可以若干特征点申请大小与目标节点划分数量匹配的节点存放空间,用于存放节点的第一信息存储。
88.在一个实施方式中,可以先确定一个节点需要存储的节点的第一信息在内存中的大小,然后在内存中申请大小与目标节点划分数量匹配的节点存放空间。在另一个实施方式中,可以在内存中申请中与若干特征点的第二信息在内存中的空间相等的内存空间,然后再根据每个节点存储的节点的第一信息在内存中的大小。
89.因此,通过申请大小与目标节点划分数量匹配的节点存放空间,可以使得节点存放空间能够存储全部最终划分得到的节点的第一信息,使得后续无需再申请新的存放空间,以此减少了针对存放空间的操作,以此可以提高特征点选取的执行效率。
90.请参阅图4,图4是本技术图像特征点选取方法第一实施例的第三流程示意图。本实施例是对上述步骤提及的“采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中”步骤的进一步扩展,具体包括:
91.步骤s131:将若干特征点的部分或全部特征点划分至一节点,并将节点的第一信息存放在节点存放空间中。
92.在进行具体特征点的划分时,首选可以把需要划分的特征点都划入一个节点中。具体地,可以将若干特征点的部分或全部特征点划分至一节点。在一个实施方式中,在采用树形划分方式来对特征点进行划分时,会首先确定一节点,该节点可以认为是根节点。此时,可以认为将全部特征点都划入至一个节点中,或者将部分特征点划分至根节点中。
93.在一个具体实施方式中,将图像帧中除预设边界区域以外的区域作为根区域。预设边界区域可以认为是图像帧的边缘区域,如距离图像边缘一定数量个像素点内的区域。然后,将根区域中的特征点划分至一节点。通过将去除图像帧的边缘区域,可以去除边缘区域上的特征点,减少特征点的数量,加快图像特征点选取方法执行速度。
94.在一个实施方式中,在执行后续的依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求的步骤时,是在检测到当前划分的节点所对应的特征数大于目标选取特征点数的情况下执行的。也即,在将若干特征点的部分或全部特征点划分至一节点以后,是通过判断当前划分的节点所对应的特征数是否大于目标选取特征点数,来确定是否需要执行后续的依序对节点存放空间的每个节点执行划分步骤。可以理解的,如果当前划分的节点所对应的特征数没有大于目标选取特征点数,则意味着该节点对应的全部特征点,都可以直接被确定被选取的特征点了,因此也就不必再执行后续的依序划分的步骤。因此,通过判断当前划分的节点所对应的特征数是否大于目标选取特征点数,可以确定是否需要继续执行后续的依序对节点存放空间的每个节点执行划分步骤。
95.步骤s132:依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求;其中,划分步骤包括:将节点确定为父节点,并将父节点对应的特征点划分到至少一个新的节点,将新的节点的第一信息存放在节点存放空间中。
96.在将特征点的部分或全部特征点划分至一节点以后,就可以对节点进行依序划
分,在划分后,将划分得到的节点对应的第一信息存放在节点存放空间中。以此,可以实现对特征点选取过程中的特征点的划分。
97.例如,当采用四叉树划分方式时,是先对根节点进行划分,得到四个节点,然后将这4个节点分别作为父节点,并依序对这4个父节点进行划分。划分完后,将新划分出的节点作为父节点,再次对这些父节点进行依序划分。
98.依序划分,即依照一定的顺序进行划分。
99.在一个实施方式中,父节点划分得到的节点为该父节点的子节点,对于属于同一父节点的子节点,可以根据子节点对应的特征点数量来确定子节点的子节点执行顺序,后续便可根据子节点执行顺序对子节点执行划分步骤。也即,对于属于同一父节点的子节点,其执行划分步骤的顺序取决于子节点对应的特征点数。特征点数量越多的节点,其执行划分步骤的顺序越早,即按照节点对应的特征点数量的多少,决定执行顺序的先后。例如一个节点被划分为4个子节点,分别为a子节点、b子节点、c子节点和d子节点,节点对应的特征点数量大小关系为:a》b》c》d,则会先对a子节点执行划分步骤,然后是对b子节点执行划分步骤,以此类推。因此,通过优先对对应特征点数较多的子节点进行划分,可以使得对应特征点数量较多的节点优先被划分,可以提高划分特征点的均匀性。
100.在一个实施方式中,对于属于同一父节点的节点,其执行划分步骤的顺序也可以是取决于节点对应的特征点的最大响应度。最大响应度越大的节点,越先被执行。同样以上述的4个节点为例,节点对应的特征点的最大响应度的大小关系为:a》b》c》d,则会先对a节点执行划分步骤,然后是对b节点执行划分步骤,以此类推。在另一个实施方式中,对于属于同一父节点的节点,其执行划分步骤的顺序也可以是取决于节点对应的全部特征点的响应度之和,响应度之和越大的节点,越先被执行。还以上述的4个节点为例,节点对应的特征点的响应度之和的大小关系为:a》b》c》d,则会先对a节点执行划分步骤,然后是对b节点执行划分步骤,以此类推。
101.在一个实施方式中,可以是确定与当前执行的节点属于同一父节点的其他节点的执行顺序先于由当前执行的节点划分得到的节点的执行顺序。例如,已经划分得到4个节点,分别为a节点、b节点、c节点和d节点。此时,若将a节点确定为为父节点,并将父节点对应的特征点划分到至少一个新的节点后。会对b节点进行划分,然后是对c节点进行划分,以此类推。当a节点、b节点、c节点和d节点都被划分完以后,才会对新划分的节点(由a节点、b节点、c节点和d节点划分得到的节点)进行划分。以此,通过确定同属于一个父节点的节点优先被划分,提高了划分特征点的均匀性,进而提高后续特征选取的合理性。
102.可以理解的,当一个节点被划分后,意味着该节点不再存储与节点存放空间。节点存放空间中的当前存放节点数,是节点存放空间包含的未被划分的节点,因为被划分的节点已经不再存储与节点存放空间中。
103.在一个实施方式中,第一要求为节点存放空间中的当前存放节点数少于目标节点划分数量。此时,意味着当前存放节点数等于或大于目标节点数量,因此可以不再继续进行划分。因此,通过确定第一要求为节点存放空间中的当前存放节点数少于目标节点划分数量,可以在得到满足要求数量的节点以后,停止执行节点划分的步骤。
104.在一个实施方式中,本步骤提及的“将节点确定为父节点”,是在节点对应的特征点数量满足第二要求的情况下,才会将节点作为父节点。也即,当一个节点对应的特征点数
量满足第二要求时,才会将该节点作为父节点,并将该节点对应的特征点划分到至少一个新的节点。第二要求例如是一个节点对应的特征点数量大于第一阈值时,才会将该节点作为父节点,例如第一阈值例如是3、4或5等等,具体可以根据需要设置,此处不做限制,通过设置第一阈值,可以减少需要划分的节点的数量。因此,通过判断节点对应的特征点数量是否满足第二要求,可以将不满足第二要求的节点作为父节点,提高特征点划分的均匀性,而且也可减少了需要划分的节点数量,提高了图像特征点选取的执行效率。
105.在一个实施方式中,在每次将特征点划分到节点之后,可以调整特征存放空间中第二信息的存放位置,以使同一节点对应的特征点的第二信息存放在相邻位置上。在一个具体实施方式中,在将一个节点划分为四个新节点分别为a节点、b节点、c节点和d节点后,可以调整特征存放空间中第二信息的存放位置,使得对应于a节点的特征点的第二信息是存放在相邻位置上的。
106.参阅图图5,图5是本技术图像特征点选取方法中调整特征存放空间中第二信息的存放位置的一示意图。请看图5的a部分,区域10是一节点y对应的图像帧的某一区域。在区域10中,包含9个特征点,分别是特征点1-9,也即节点y对应有9个特征点。这9个特征点的第二信息在特征存放空间20(内存中的数组)的存放位置如图5的a部分所示。此时,会将节点y确定父节点,并将节点y划分为4个新节点,分别得到a节点、b节点、c节点和d节点。对应的,区域10也会被划分为4个新区域,分别是区域11、区域12、区域13和区域14。此时可以确定,a节点对应的特征点为特征点1和特征点5,b节点对应的特征点为特征点2和特征点6,c节点对应的特征点为特征点7和特征点9,d节点对应的特征点为特征点3、特征点4和特征点8。基于此,可以调整特征存放空间中第二信息的存放位置,得到调整后特征存放空间21,这9个特征点的第二信息在特征存放空间21的存放位置如图5的b部分所示。可见,此时同一节点对应的特征点的第二信息存放在相邻位置上。
107.在一个具体实施方式中,可以设定两个指针来对特征存放空间中第二信息的存放位置进行调整。两个指针分别为指针甲和指针乙,执行特征点的第二信息排序步骤。
108.第一,两个指针分别指向排序的起始位置。起始位置是被划分的父节点的对应的特征点的第二信息在特征存放空间第一个元素。
109.第二,在将父节点划分为不同的新节点以后,确定每个节点对应的图像帧区域,并判断指针甲指向的第二信息对应的特征点(后续简称为指针指向的特征点)是否在新节点对应的图像帧区域内。
110.第三,若在新节点对应的图像帧区域内,则交换指针甲和指针乙所指向的特征点(若指针甲和指针乙指向同一个特征点,则不用交换)。
111.第四,若指针甲指向的特征点不在新节点对应的图像帧区域内,则指针甲指向下一个特征点。
112.第五,重复执行上述的步骤,直至指针甲超过结束位置。结束位置是被划分的父节点对应的特征点的第二信息在特征存放空间的最后一个元素。
113.以此,可以使得同一节点对应的特征点的第二信息存放在相邻位置上。
114.此时,如果需要继续调整另一个节点对应的特征点的第二信息存放在相邻位置上时,会调整起始位置,具体是将已经被调整为存放在相邻位置上的特征点的第二信息的所在的元素排除之后的第一个元素。
115.参阅图图6,图6是本技术图像特征点选取方法中调整特征存放空间中第二信息的存放位置的另一示意图。结合查阅图5和图6,在图5中,节点y被确定为父节点进行划分,得到a节点、b节点、c节点和d节点。在调整特征点的第二信息的存放位置时,可以先调整节点a对应的特征点的第二信息的存放位置。如图6的a部分所示,此时的起始位置为特征点1对应的第二信息在特征存放空间的位置,结束位置为特征点9对应的第二信息在特征存放空间的位置,指针甲和指针乙指向特征点1。执行上述的排序步骤,当指针甲指向的特征点超过特征点9以后,停止排序。此时特征存放空间中各元素的位置如图6的b部分所示。在继续调整b节点对应的特征点的第二信息的存放位置时,此时的起始位置为如图6的b部分中的特征点3对应的第二信息在特征存放空间的位置,结束位置依然是征点9对应的第二信息在特征存放空间的位置。
116.通过调整特征存放空间中第二信息的存放位置,可以使得同一节点对应的特征点的第二信息存放在相邻位置上。因为节点存放空间中存储的节点的第一信息,会包括节点对应的特征点的特征相关信息,此时节点对应的特征点的特征相关信息可以包括节点对应的特征点在特征存放空间中的起始存放位置和结束存放位置。例如,在图5中,节点d对应的特征点的特征相关信息就可以包括特征点3在特征存放空间中的起始存放位置,以及特征点8在在特征存放空间中的结束存放位置。以此,通过将节点对应的特征点的特征相关信息设置为可以包括节点对应的特征点在特征存放空间中的起始存放位置和结束存放位置,就可以存储该节点对应的全部的特征点的特征点的特征相关信息,而不必记录每一个特征点的特征信息,由此可以节省存放空间。
117.请参阅图7,图7是本技术图像特征点选取方法第一实施例的第四流程示意图。本实施例是对上述步骤提及的“父节点对应的特征点划分到至少一个新的节点”的进一步扩展,具体包括:
118.步骤s1321:将父节点对应的父区域划分为第一数量个子区域。
119.在确定父节点以后,可以将父节点对应的父区域划分为第一数量个子区域,第一数量例如是为4或8。在采用树形划分方式划分特征点时,也会将图像帧划分为若干个区域,以此可以确定某一区域对应的节点,并确定该节点对应的特征点。因此,父区域可以认为是父节点对应的特征点在图像帧中的区域。例如,在图5的b部分中,若将节点d确定为父节点,则节点d对应的特征点3、特征点4和特征点8在图像帧中区域14即为父区域。通过将每次划分子区域的数量限定为4或8,即相当于采用四叉树或八叉树方式实现树形划分。
120.步骤s1322:判断子区域的特征点数量是否满足第三要求。
121.在将父区域划分为第一数量个子区域,可以判断每个子区域包含的特征点的数量是否满足第三要求,以此来确定是否为该区域生成一个子节点。在一个实施方式中,第三要求为子区域中的特征点数量大于第二阈值。在一个具体实施方式中,第二阈值可以是0。因此,通过判断子区域的特征点数量是否大于第二阈值,可以将特征点数量少于第二阈值的区域排除。
122.步骤s1323:在子区域中的特征点数量满足第三要求的情况下,为子区域生成对应的子节点。
123.如果子区域中的特征点数量满足第三要求,意味着可以为该子区域生成对应的子节点。此时,子节点对应的特征点即为该子区域中的特征点。
124.步骤s1324:在所子区域的特征点数量不满足第三要求的情况下,不为子区域生成对应的子节点。
125.因此,通过将父节点对应的父区域划分为第一数量个子区域,并且判断子区域的特征点数量是否满足第三要求,可以将不满足要求的子区域排除从而可以不生成对应的子节点,能够针对子区域的特征数量灵活确定是否形成节点。
126.在一个公开实施例中,上述步骤s132中提及的“将新的节点的第一信息存放在节点存放空间中”具体可以是:将其中一新的节点的第一信息覆盖父节点的第一信息进行存放,剩余新的节点的第一信息存放在节点存放空间中的剩余存放空间中。
127.剩余存放空间可以理解为在节点存放空间中,还没有用于存储节点的第一信息的存放空间。可以理解的,因为父节点被划分后,可以认为该节点已经不再存在,因此,可以将划分得到的新节点中的其中一个新的节点的第一信息覆盖父节点的第一信息进行存放,然后将剩余新的节点的第一信息存放在节点存放空间中的剩余存放空间中。因此,通过利用一个新的节点的第一信息覆盖父节点的第一信息进行存放,实现对存储空间的重复利用,可以节省存放空间。
128.在一个公开实施例中,上述步骤s132提及的“将父节点对应的特征点划分到至少一个新的节点”之后,本技术的图像特征点选取方法还可以包括步骤:将属于同一父节点的节点之间进行链路式指向,且使位于链路的链尾的节点指向于父节点指向的节点,使指向父节点的节点更新指向于位于链路的链头的节点;其中,节点的指向用于确定节点的执行顺序。
129.在一个实施方式中,可以通过在每个节点的第一信息中存储指向的下一节点在节点存放空间中的存放位置信息,作为节点之间进行链路式指向。
130.在一个例子中,节点a指向节点b,节点c指向节点a。将节点a划分为节点a1、节点a2、节点a3和节点a4以后。将属于同一父节点的节点之间进行链路式指向,且使位于链路的链尾的节点指向于父节点指向的节点,使指向父节点的节点更新指向于位于链路的链头的节点,具体可以是节点c指向节点a1,节点a1指向节点a2,节点a2指向节点a3,节点a3指向节点a4,节点a4指向节点b。
131.因此,通过链路指向方式可实现后续节点划分的顺序。
132.上述方案,通过申请固定大小的节点存放空间,并将节点的第一信息存储至节点存放空间中,使得在采用树形划分方式对若干特征点划分进行划分时,无需重复的向内存申请内存空间来存放节点的第一信息,减少了针对内存的操作,以此可以提高特征点划分方法的执行效率。
133.请参阅图8,图8是本技术图像特征点选取方法第二实施例的流程示意图。本实施例具体包括以下步骤:
134.步骤s21:获取图像帧的多个特征图,其中,每个特征图的分辨率不同。
135.多个不同分辨率的特征图可以是基于图像帧的图像金字塔进行特征提取得到的,也可以是针对一帧图像帧,进行不同的特征提取,得到多个不同分辨率的特征图。
136.步骤s22:对每个特征图并行执行以下特征点选取:从特征图获取若干特征点,并获取若干特征点的选取结果。
137.在本实施例中,获取每个特征图的若干特征点的选取结果是根据上述图像特征点
选取方法第一实施例描述的技术方案进行特征点选取得到的。
138.由此,通过对不同分辨率的特征图并行执行以下特征点选取,使得执行本技术图像特征点选取方法的设备可以同步对多个不同分辨率的特征图进行特征点选取,并获得特征点的选取结果,提高了针对多个不同分辨率的特征图进行特征点选取的整体执行效率。
139.在一个实施方式中,在针对多个不同分辨率的特征图并行执行图像特征点选取方法时,特征图包含的特征点总数越多,用于对特征图执行特征点选取的处理资源越多。可以理解的,特征图包含的特征点总数越多,需要划分的特征点的数量就越多,所需要的算力就越多,因此通过确定当特征图包含的特征点总数越多,用于对特征图执行特征点选取的处理资源越多,以此提高特征点选取的整体执行效率。
140.上述方案,通过对多个不同分辨率的特征图执行图像特征点选取方法,提高了整体执行效率。
141.请参阅图9,图9是本技术图像特征点选取装置一实施例的框架示意图。图像特征点选取装置90包括获取模块91、内存申请模块92和特征点划分模块93以及特征点选取模块94。获取模块91用于获取图像帧中的若干特征点;内存申请模块92用于基于若干特征点,预配置固定大小的节点存放空间;特征点划分模块93用于采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中,其中,节点的第一信息包括节点对应的特征点的特征相关信息;特征点选取模块94用于从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果。
142.其中,上述的内存申请模块92用于基于若干特征点,预配置固定大小的节点存放空间,包括:基于目标选取特征点数,确定目标节点划分数量,其中,目标选取特征点数为需从若干特征点中选取的特征点数量,目标节点划分数量为最终划分得到的节点的数量;为若干特征点申请大小与目标节点划分数量匹配的节点存放空间。
143.其中,上述的特征点划分模块93用于采用树形划分方式将若干特征点划分到至少一个节点,并将节点的第一信息存储至节点存放空间中,具体包括:将若干特征点的部分或全部特征点划分至一节点,并将节点的第一信息存放在节点存放空间中;依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求;其中,划分步骤包括:将节点确定为父节点,并将父节点对应的特征点划分到至少一个新的节点,将新的节点的第一信息存放在节点存放空间中。
144.其中,上述方案中与当前执行的节点属于同一父节点的其他节点的执行顺序先于由当前执行的节点划分得到的节点的执行顺序;和/或,上述的依序对节点存放空间的每个节点执行划分步骤,包括:对于属于同一父节点的子节点,根据子节点对应的特征点数量确定子节点的子节点执行顺序,根据子节点执行顺序对子节点执行划分步骤,其中,子节点为父节点划分得到的节点;和/或,在特征点划分模块93将父节点对应的特征点划分到至少一个新的节点之后,特征点划分模块93还可以用于将属于同一父节点的节点之间进行链路式指向,且使位于链路的链尾的节点指向于父节点指向的节点,使指向父节点的节点更新指向于位于链路的链头的节点;其中,节点的指向用于确定节点的执行顺序。
145.其中,上述的特征点划分模块93用于将将新的节点的第一信息存放在节点存放空间中,具体包括:将其中一新的节点的第一信息覆盖父节点的第一信息进行存放,剩余新的节点的第一信息存放在节点存放空间中的剩余存放空间中。
146.其中,上述的特征点划分模块93用于将节点确定为父节点,具体包括:在节点对应的特征点数量满足第二要求的情况下,将节点作为父节点;和/或,特征点划分模块93用于将父节点对应的特征点划分到至少一个新的节点,包括:将父节点对应的父区域划分为第一数量个子区域,其中,父区域为父节点对应的特征点在图像帧中的区域;在子区域中的特征点数量满足第三要求的情况下,为子区域生成对应的子节点,其中子节点对应的特征点为子区域中的特征点;在所子区域的特征点数量不满足第三要求的情况下,不为子区域生成对应的子节点。
147.其中,上述方案中第一要求为节点存放空间中的当前存放节点数少于目标节点划分数量;第二要求为节点对应的特征点数量大于第一阈值;第三要求为子区域中的特征点数量大于第二阈值;第一数量为4或8。
148.其中,上述的特征点划分模块93用于将若干特征点的部分或全部特征点划分至一节点,包括:将图像帧中除预设边界区域以外的区域作为根区域;将根区域中的特征点划分至一节点;和/或,依序对节点存放空间的每个节点执行划分步骤,直至节点存放空间不再满足第一要求的步骤,是在检测到当前划分的节点所对应的特征数大于目标选取特征点数的情况下执行的。
149.其中,装置90还包括特征点空间申请模块。在获取模块91用于获取图像帧中的若干特征点之后,特征点空间申请模块用于为若干特征点申请特征存放空间,并将若干特征点的第二信息存储至特征存放空间中;其中,节点对应的特征信息包括节点对应的特征点在特征存放空间的存放位置。
150.其中,上述方案中,节点对应的特征点的特征相关信息包括节点对应的特征点在特征存放空间中的起始存放位置和结束存放位置。上述的特征点划分模块93每次将特征点划分到节点之后,特征点划分模块93还用于调整特征存放空间中第二信息的存放位置,以使同一节点对应的特征点的第二信息存放在相邻位置上。
151.其中,上述方案中,特征存放空间为第一数组,第一数组中的每个元素用于存放一个特征点的第二信息;和/或,特征点的第二信息包括以下至少一者:特征点在图像帧中的位置信息、特征点的响应度、特征点所属的特征图的标识,其中,特征点所属的特征图为图像帧对应的多个不同分辨率的特征图中的其中一个。
152.其中,上述方案中,节点存放空间为第二数组,第二数组中的每个元素用于存放一个节点的第一信息;或者,节点存放空间为单向链表,单向链表中的每个结点用于存放一个节点的第一信息;和/或,节点的第一信息还包括以下至少一者:节点在图像帧中对应的区域的位置信息、节点是否为预设节点、节点所指向的下一节点在节点存放空间中的存放位置信息、节点在树形划分方式得到的树形结构中所处的层标识。
153.其中,上述方案中,树形划分方式包括四叉树划分方式和八叉树划分方式中的至少一种;和/或,特征点选取模块94用于从最终划分得到的每个节点中选取特征点,以得到若干特征点的选取结果,具体包括:分别从每个最终划分节点中选择第二数量个特征点,以得到若干特征点的选取结果。
154.请参阅图10,图10是本技术图像特征点选取装置另一实施例的框架示意图。图像特征点选取装置10包括获取模块100和特征点选取模块110。获取模块100用于获取图像帧的多个特征图,其中,每个特征图的分辨率不同;特征点选取模块110用于对每个特征图并
行执行以下特征点选取:从特征图获取若干特征点,并若干特征点的选取结果,其中,若干特征点的选取结果是利用上述的图像特征点选取方法实施例得到的。
155.其中,上述方案中的特征图包含的特征点总数越多,用于对特征图执行特征点选取的处理资源越多。
156.请参阅图11,图11是本技术电子设备一实施例的框架示意图。电子设备11包括相互耦接的存储器111和处理器112,处理器112用于执行存储器111中存储的程序指令,以实现上述任一图像特征点选取方法实施例的步骤。在一个具体的实施场景中,电子设备11可以包括但不限于:微型计算机、服务器,此外,电子设备11还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
157.具体而言,处理器112用于控制其自身以及存储器111以实现上述任一图像特征点选取方法实施例的步骤。处理器112还可以称为cpu(central processing unit,中央处理单元)。处理器112可能是一种集成电路芯片,具有信号的处理能力。处理器112还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器112可以由集成电路芯片共同实现。
158.请参阅图12,图12为本技术计算机可读存储介质一实施例的框架示意图。计算机可读存储介质120存储有能够被处理器运行的程序指令121,程序指令121用于实现上述任一图像特征点选取方法实施例的步骤。
159.上述方案,能够提高特征点划分方法的执行效率。
160.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
161.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
162.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
163.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
164.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
165.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可
以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1