当前位置: 首页 > 专利查询>北京大学专利>正文

一种基于分割视窗提取FAST特征点的算法加速方法技术

技术编号:28944193 阅读:29 留言:0更新日期:2021-06-18 21:54
本发明专利技术公开了一种基于分割视窗提取FAST(Features from accelerated segment test)特征点的算法加速方法,该方法主要包含两个部分:在进行某图像之若干分割视窗迭代到FAST特征点算法提取特征点之前,先根据欲设定的灰度阈值建立阈值关系表,从而减少后续冗余的大量重复运算。另外,本发明专利技术还利用单指令多数据流的方法,对FAST特征点的特定计算过程进行数据并行运算的优化,减少整体编译后的汇编指令数量,进而提升整体算法的运行速度,经由以上两种优化方案,可以在有限资源的硬件平台获得可观的算法加速效果。

【技术实现步骤摘要】
一种基于分割视窗提取FAST特征点的算法加速方法
本专利技术公开了一种基于分割视窗提取FAST(Featuresfromacceleratedsegmenttest)特征点的算法加速方法,通过减少现有算法冗余运算的迭代次数与使用单指令多数据流的汇编指令来实现指令级别的并行运算。此方法可以有效的在有限的硬件资源中实现特征点提取的实时运算,满足对实时运算要求高的使用场景。
技术介绍
随着计算机视觉应用的高速发展,越来越多生活周边的产品开始使用计算机视觉的技术来实现各种不同的应用,例如人脸识别、虚拟现实与增强现实设备甚至是无人驾驶产业都应用了相关技术在里头;其中,在计算机视觉领域中常依赖一个可靠的图像特征点提取,利用这些特征点可以用来进行后续的图像拼接、匹配甚至是三维重建等工作。现在学术界有许多可靠的特征点的算法,然而最被广泛使用的特征点算法之一就是FAST特征点算法,其优势为计算量较少并且能够快速提取可能为其他特征点算法的候选特征点供给后续的二次迭代运算,并且为了满足后续算法均匀分布特征点的需求,一般会将一整幅图像分割为若干个视窗来逐一检测每个视窗内的FAST特征点,在每个视窗内迭代计算出最优且定量的特征点,使整张图像的特征点分布满足需求。基于分割视窗提取FAST特征点的运算步骤如下所示:步骤1、通过将待计算图像分割成若干个小图像块,并设定FAST特征点的灰度阈值T与计算参数,其中计算参数包括:用于判断候选像素是否为特征点的确定像素与候选像素的像素距离R、连续N个确定像素符合特征点要求可以确定候选像素为FAST特征点;其中确定像素与候选像素的关系为圆心与圆周关系,距离R即为半径,R的单位为像素点个数。步骤2、根据所述灰度阈值建立阈值关系表,该阈值关系表用来作为后续判断确定像素是否满足特征点要求的查找表;其中特征点要求有如下两种:第一种,确定像素的灰度值小于候选像素的灰度值减灰度阈值。第二种,确定像素的灰度值大于候选像素的灰度值加灰度阈值。步骤3、对每一个像素点根据设定的计算参数进行FAST特征点的运算。其中所述FAST特征点运算过程包括:选定一个候选像素,确定候选像素在阈值关系表的偏移位,将候选像素的确定像素根据该候选像素在阈值关系表的偏移量代入阈值关系表中,得到确定像素满足的特征点要求,根据设定的计算参数中的特征点要求连续数量N进一步确定该候选像素是否为FAST特征点。尽管FAST特征点算法已经是一个运算量相对小的算法,在消费级的硬件处理器上运算还是需要花费可观的时间,使得运算的实时性受到限制,限制了产品性能。那么,如何提供一种可以在有限硬件资源上进行FAST特征点算法加速的方法至关重要。
技术实现思路
本专利技术的技术目的是:在基于分割视窗提取FAST特征点的算法中,将冗余计算的部分提取出来并提出一种基于单指令多数据流的汇编指令实践在FAST特征点算法的方法,实现减少处理器计算基于分割视窗提取FAST特征点的运算时间,进而使得所有基于此种FAST特征点的应用能够更好的进行实时运算。本专利技术实现的技术方案:使用本专利技术的方法与原始的方法区别如图1所示。原始的FAST特征点提取算法并没有考虑在分割视窗特征点提取时可能会产生的冗余运算,使得每次将某一视窗代入FAST特征点提取算法时,该视窗都被视为是一个独立的图像,因此每次都必须重复计算阈值关系表的内容,使得整体运算量增大造成在多视窗特征点提取时的硬件资源浪费,并且在没有考虑单指令多数据流加速的时候,需要使用逐一候选像素点迭代的方式运算,使得总体算法计算机指令的执行周期拉长,这些运算资源的浪费在有限资源的处理器中格外突出。分割视窗FAST特征点的冗余运算去除,是根据被分割的视窗来源是同一张图像,因此所有参考的阈值参数都是一样的,可以在设定灰度阈值时就将阈值关系表计算完成,而无需在每次不同分割视窗的FAST特征点计算函数调用中都重新计算一次阈值关系表,借此消除每视窗的阈值关系表算法之迭代过程。本专利技术提出的基于单指令多数据流应用在FAST特征点算法的方法,具体按照以下步骤实施:步骤1、将原始图像读入目标系统,并且将图像经由彩色图转换成灰度图;步骤2、根据可配置的灰度阈值,计算阈值关系表。步骤3、根据图像的行与列,遍历整张图像的有效候选像素点。步骤4具体过程为:步骤4.1、从遍历的有效候选像素点的位置,使用单指令多数据流的载入指令,一次载入16个候选像素的灰度值到待处理候选像素矢量寄存器中。步骤4.2、使用单指令多数据流的减法指令,将255减去待处理候选像素矢量寄存器中储存的灰度值,一次获得16个候选像素在所述阈值关系表的偏移量,将其存到阈值关系表偏移量矢量寄存器中。步骤4.3、从遍历的有效候选像素点的确定像素位置,使用单指令多数据流的载入指令,一次载入16个确定像素的灰度值到该确定像素矢量寄存器中。步骤4.4、将所述阈值关系表偏移量矢量寄存器与所述候选像素点的确定像素矢量寄存器之一,使用单指令多数据流的还原指令到普通的数组中,依序将16组偏移与确定像素灰度值的和代入到阈值关系表中,获得该确定像素满足的特征点要求0、1或是2,将获得的特征点要求依序存到普通数组中,并将普通数组再次经由单指令多数据流的载入指令,一次将16个确定像素满足的特征点要求载入到该确定像素特征点要求矢量寄存器中,依序对所有的确定像素矢量寄存器做同样的操作。所述的特征点要求为:根据所述阈值关系表确定的数值,1代表该确定像素满足所述第一种特征点要求,确定像素的灰度值小于候选像素的灰度值减灰度阈值;2代表满足所述第二种特征点要求,确定像素的灰度值大于候选像素的灰度值加灰度阈值;0代表所述确定像素两种特征点要求都不满足。步骤4.5、根据所述确定像素特征点要求矢量寄存器,依序将特定确定像素特征点要求矢量寄存器使用单指令多数据流指令两两做数字逻辑或、数字逻辑与的操作,经由此操作可以剔除不是FAST特征点的候选像素,将最终运算的16个候选像素的结果存到结果矢量寄存器中。其中,具体的运算过程包括以下步骤的至少一种:步骤4.5.1、结果矢量寄存器的值为以下运算的结果:将某一确定像素特征点要求矢量寄存器与另一确定像素特征点要求矢量寄存器做数字逻辑或的操作;步骤4.5.2、结果矢量寄存器的值为以下运算的结果:将某一确定像素特征点要求矢量寄存器与另一确定像素特征点要求矢量寄存器做数字逻辑或操作,并将此操作结果的值与步骤4.5.1的运算结果做数字逻辑与操作;步骤4.5.3、结果矢量寄存器的值为以下运算的结果:将某一确定像素特征点要求矢量寄存器与另一确定像素特征点要求矢量寄存器做数字逻辑或操作,并将此操作结果的值与步骤4.5.2的运算结果做数字逻辑与操作;可选的,当计算完步骤4.5.1时,即可对结果矢量寄存器判断是否所有矢量都不满足特征点条件,如果都不满足,算法则继续遍历图像特征点,重复步骤4.1开始的运算。可选的,当计算完本文档来自技高网
...

【技术保护点】
1.一种基于分割视窗提取FAST特征点的算法加速方法,包括对于一图像的若干个分割视窗分别提取FAST特征点之冗余算法的优化与利用单指令多数据流的方式实现部分算法步骤,其特征在于:/n在进行若干个视窗的FAST特征点提取算法之前,先针对欲设定的灰度阈值进行阈值关系表的运算,从而减少后续每次将若干个视窗迭代到FAST特征点提取算法之中的冗余运算过程;/n通过单指令多数据流的方式,将其应用到FAST特征点算法的特定步骤中,从而实现不需要依赖额外的图形处理器或是矢量处理器即可达到并行运算的加速能力。/n

【技术特征摘要】
1.一种基于分割视窗提取FAST特征点的算法加速方法,包括对于一图像的若干个分割视窗分别提取FAST特征点之冗余算法的优化与利用单指令多数据流的方式实现部分算法步骤,其特征在于:
在进行若干个视窗的FAST特征点提取算法之前,先针对欲设定的灰度阈值进行阈值关系表的运算,从而减少后续每次将若干个视窗迭代到FAST特征点提取算法之中的冗余运算过程;
通过单指令多数据流的方式,将其应用到FAST特征点算法的特定步骤中,从而实现不需要依赖额外的图形处理器或是矢量处理器即可达到并行运算的加速能力。


2.根据权利要求1所述的灰度阈值与阈值关系表的计算,其特征在于,一个基于分割视窗提取FAST特征点的优势为每一个视窗可以分别迭代不同的灰度阈值来计算,如果使用较严格的阈值在该视窗检测的特征点数量过少,即可再使用较宽松的阈值进行二次运算;因此,灰度阈值与阈值关系表可以在开始迭代各个视窗之前计算不止一个阈值关系表,而后续各个视窗的算法迭代,都根据这些已经计算完的阈值关系表进行查表,无需二次运算。


3.根据权利要求1所述的单指令多数据流在FAST特征点算法中的应用,其特征在于,具体按照以下步骤实施:
步骤1、在遍历有效候选像素点时,从遍历到的第一个有效候选像素点的位置,使用单指令多数据流的载入指令,一次载入至少16个候选像素的灰度值到候选像素矢量寄存器中;
步骤2、使用单指令多数据流的减法指令,将255减去候选像素矢量寄存器中储存的灰度值,一次获得至少16个候选像素在所述阈值关系表的偏移量,将其存到阈值关系表偏移量矢量寄存器中;
步骤3、从遍历的有效候选像素点的确定像素位置,使用单指令多数据流的载入指令,一次载入至少16个确定像素的灰度值到该确定像素矢量寄存器中;其中,所述确定像素包括:以确定像素与候选像素的距离为3个像素距离为例,每个候选像素的确定像素为以候选像素为圆心并且半径为3个像素距离的圆,其圆周上的像...

【专利技术属性】
技术研发人员:梁煜彬冯建华
申请(专利权)人:北京大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1