一种基于自适应图像信息熵的特征点提取方法与流程

文档序号:20781058发布日期:2020-05-19 21:14阅读:561来源:国知局
一种基于自适应图像信息熵的特征点提取方法与流程

本发明涉及计算机图像处理技术领域,尤其涉及一种基于自适应信息熵的特征点提取方法。



背景技术:

图像匹配即通过一定的匹配算法在两幅或多幅影像之间识别同名点的过程,是通过对影像内容、特征、结构、关系、纹理及灰度等的对应关系,相似性和一致性的分析,寻求相似影像目标的方法。图像特征点检测一直是slam(simultaneouslocationandmapping同时定位与建图)的一个关键问题,对于位姿估计、创建地图和回环检测有着极其重要的作用。slam问题的描述为:移动机器人进入未知环境,利用激光或视觉传感器确定自身的位姿信息,并且实时地重构周围环境的三维地图。slam早期多使用激光传感器,目前基于激光传感器的技术已经十分成熟,但激光传感器成本高,而视觉传感器成本低廉且能获得更加丰富的场景信息,因此逐渐发展的视觉slam使得通过特征点检测的图像匹配方法日益重要。

1988年,harris等人提出了harris角点检测算法,主要运用微分运算和自相关矩阵进行角点检测;1994年,由jianboshi和tomasi提出的shi-tomasi角点检测算法,是对harris算法的改进;1999年,davidlowe提出了sift(尺度不变特征变换scale-invariantfeaturetransform)算法,应用于2007年davison等人提出了第一个实时的单目vslam系统;2006年,herbertbay在sift算法的基础上做出改进,实现了surf(speeduprobustfeatures),该算法的运行时间比sift快3倍;2007年murray和klein提出了基于fast特征点的ptam(paralleltrackingandmapping)系统;经过多年的发展,raulmur-artal等人在2016年提出了基于orb(orientedfastandrotatedbrief)特征点检测的orb-slam2系统。

然而,目前orb-slam2中仍存在一些问题有待解决:在光照突然变化、光照强度太强、太弱或者弱纹理环境下,特征点提取的鲁棒性问题;在动态环境下,如相机大角度转动情况下特征点丢失的问题,以及在视野中有动态物体运动的复杂环境下对特征点提取的影响等。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,本发明提出一种基于orb特征点检测的方法,该方法在orb-slam2的特征点提取算法中加入信息熵自适应算以改善图像模糊、光照变化、图像旋转、仿射变换等情况下的图像误匹配问题,提升这些场景下的特征点匹配率。

为此,本发明公开了一种基于自适应信息熵的特征点提取方法,所述方法包括:

步骤101,首先输入灰度图像,构建图像金字塔,增加尺度不变性;

步骤102,按照预先定义好的图像块大小划分图像块,自适应计算信息熵阈值,逐层对每个图像块进行信息熵和阈值的判断,选取熵值大于阈值的图像块;

步骤103,若所述图像块的熵值大于阈值,则在筛选出的信息丰富的图像块内进行fast特征点提取,均匀化处理,并计算brief描述子;

步骤104,若所述图像块的熵值小于阈值,则不进行特征点的提取;

步骤105,进行特征点匹配,计算匹配率,若此时的匹配率最高,则输出匹配率、匹配结果和此时信息熵的阈值。

更进一步地,所述自适应计算信息熵阈值进一步包括:自动计算筛选出匹配率最高的阈值,步骤如下:

步骤201,根据输入场景图片算出图片信息熵;

步骤202,由所述信息熵和步进得出循环次数,设置所述信息熵阈值的初始值为0,并设置步进为a及循环次数b,每次循环加step,并同时计算所述匹配率;

步骤203,取匹配率最大的信息熵,作为该场景的信息熵阈值;

更进一步地,所述步骤202进一步包括:设定循环步进a的step为0.2,所述循环次数b由计算得到,其中,entropy为信息熵阈值,step为步进值。

更进一步地,所述步骤103进一步包括:对该图像块进行fast特征点提取,使用四叉树算法对fast提取出的特征点进行均匀化,然后使用灰度质心法计算所述特征点的旋转角度,并通过brief算法对特征点进行描述。

更进一步地,所述均匀化处理使用基于比例的特征点均匀化算法代替四叉树算法对特征点进行均匀化。

更进一步地,所述均匀化处理进一步包括:

步骤301,设置整个图像金字塔需要提取出1000个特征点,并且为构建图像金字塔中的缩放因子,第n层图像中,需要提取出的特征点个数nn:

其中,s为缩放因子,计算出本层图像中的图像块个数mn,因此每个图像块中,提取出特征点的个数k:

步骤302,比较图像块中实际提取出的特征点个数realkeyi;与n的大小,并且假设c为实际采用fast特征点提取算法提取出的特征点个数小于n的图像块个数,为当某图像块中的实际提取出的特征点个数小于k时,保留所有的特征点,并且定义aj该图像块的特征点个数与k的差值,在遍历整个图像金字塔后,得到整个图像金字塔中,尚未分配的特征点个数为a:

aj=k-realkeyi

步骤303,再将a均匀划分到那些图像块中实际提取出的特征点个数大于n的图像块中;因此,实际提取出的特征点个数大于n的图像块应该保留n1个特征点,其中n1为:

步骤304,用n1代替n继续遍历那些实际提取出的特征点大于n的图像块,重复上述步骤301-303,直到1000个应特征点提取数目全部分至图像块中,或者整个图像金字塔中提取出的特征点数小于1000,则停止均匀化图像块提取出的特征点个数;

步骤305,在图像块中,根据特征点的响应值,对特征点进行排序,选出前每个图像块应提取出特征点个数特征点,保留。

本发明与现有技术相比取得的有益效果:本发明创新性地提出了熵值的自适应方法,能够通过算法得到不同图片中匹配率最高的熵值,避免通过经验设置阈值,由于信息熵熵值的大小跟场景有密切的关系,在不同场景下,需要经过反复实验,根据经验设置阈值,且不同场景下的经验值差异较大,不具有普适性,因此信息熵的自适应算法尤为重要。没有自适应的信息熵图像匹配方法,对于每个场景都要多次设置信息熵阈值进行匹配计算,不能快速得到较好的匹配结果,同时在处理时间、特征点个数、正确匹配数和正确匹配率上均优于orb-slam2,在一定程度上可以解决图像模糊、大角度转动情况下造成的图像匹配失败问题。

附图说明

从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。

图1是本发明的基于自适应信息熵的特征点提取方法的流程图。

具体实施方式

实施例一

如图1所示的一种基于自适应信息熵的特征点提取方法,所述方法包括:

步骤101,首先输入灰度图像,构建图像金字塔,增加尺度不变性;

步骤102,按照预先定义好的图像块大小划分图像块,逐层对每个图像块进行信息熵和阈值的判断,选取熵值大于阈值的图像块;

步骤103,若所述图像块的熵值大于阈值,表示该图像块灰度变化梯度大,纹理信息多,所含特征影响度大,容易提取出质量较好的特征点,利于后续的特征点提取和匹配,对该图像块进行fast特征点提取,使用四叉树算法对fast提取出的特征点进行均匀化,接着使用灰度质心法计算所述特征点的旋转角度,并通过brief算法对特征点进行描述;

步骤104,若所述图像块的熵值小于阈值,则不进行特征点的提取;由于小于阈值的图像块被认为对提取特征点贡献小,纹理图像信息少,因此不进行特征点的提取均匀化处理是为了避免提取的特征点过于密集,出现扎堆的现象,可使算法更具有鲁棒性。

步骤5,进行特征点匹配,计算匹配率,若此时的匹配率最高,则输出匹配率、匹配结果和此时信息熵的阈值。

所述自适应计算信息熵阈值进一步包括:自动计算筛选出匹配率最高的阈值,步骤如下:

步骤201,根据输入场景图片算出图片信息熵;

步骤202,由所述信息熵和步进得出循环次数,设置所述信息熵阈值的初始值为0,并设置步进为a及循环次数b,每次循环加step,并同时计算所述匹配率;

步骤203,取匹配率最大的信息熵,作为该场景的信息熵阈值

在本实施例的图像匹配中,本发明提出一种自适应信息熵特征点提取算法,通过计算图像块的信息熵大小,剔除信息量少的图像块,在保留的图像块中进行特征点的提取,并采用orb-slam2中的直接均匀化算法代替原来的四叉树算法,在基于本实验原理上对orb-slam2进行改进。在oxford数据集的部分数据进行测试得出本文算法在处理时间上、特征点个数、正确匹配数和正确匹配率上都优于orb-slam2算法。本文在一定程度上可以解决图像模糊与旋转造成的图像匹配失败问题。本文提出自适应信息熵特征点提取算法需要先选出最适合图像的信息熵阈值,而计算图像的信息熵和找到最适合的信息熵阈值都需要耗费大量时间。因此接下来的算法改进方向是快速地找出图片的最适信息熵阈值。

实施例二

本实施例中着重从理论介绍本范明的构思,orb特征点提取是由orientedfast角点提取和rotatedbrief描述子计算组成。其特点是计算速度快,具有旋转不变性,但不具有尺度不变性,可以在狭小的室内环境和宽阔的室外环境中实时运行。orb-slam2特征点检测算法,首先建立图像金字塔,在金字塔划分网格进行fast特征点提取,使用四叉树算法对fast提取出的特征点进行均匀化,接着使用灰度质心法计算特征点的旋转角度,用brief算法对特征点进行描述。

1.1构建金字塔

orb-slam2中为了实现特征点尺度不变性构建了图像金字塔。在图像金字塔的最底层为输入图像,第n层图像是第n-1层图像乘以缩放因子s得到的。假设输入图像的长为l,宽为w,则第n层图像的长ln以及宽wn:

ln=l×sn

wn=w×sn;s<1;n=0,1,2...

在图像金字塔中,第n层的面积s:

s=ln×wn;

s=l×sn×w×sn

s=l×w×s2n

显然图像层数越高,则该层图像面积越小。因此划分的图像块越少,所能提取到的特征点也越少。

1.2均匀化算法

orb-slam2中为了使fast特征点提取算法提出的特征点分布均匀,使用了四叉树均匀化算法。本实施例中使用了基于比例的特征点均匀化算法。经实验发现,基于比例的特征点均匀化算法与本发明中提出的信息熵自适应算法结合后,实验效果更佳。

1.2.1四叉树算法

在fast特征点提取算法提取完整张图像的特征点后,对图像的特征点进行最后的筛选。orb-slam2中所有fast特征点提取算法提取出的特征点在最终经过四叉树算法均匀化后需要保留n个特征点。首先将整张图片作为一个节点,在图像的几何中心将其划分为四个等大小的节点。若在某节点内没有特征点,则将该节点删除。接着,判断删除后的节点个数与n的大小关系,若剩余节点个数大于n则停止划分,并在每一个节点内通过角点的响应值选出质量最优的特征点并保留,将其余的特征点删除。若当前节点个数小于n,则在节点内有大于1个特征点的节点继续划分为四个等大小的节点。

1.3信息熵的原理

信息熵描述事物的不确切度,“熵”表示一个系统的混乱无序的状态。在信息论中,熵是信息无序程度的一种度量,用于度量图像中信息的不确定性。熵值越大,表示无序程度越高。在图像处理中,熵可以反映图像的信息丰富程度。图像中含有的信息量用信息熵直接表示,定义一幅大小为m×n的图像的熵值为:

其中f(i,j)为图像中点(i,j)处灰度,p_ij为点(i,j)处灰度分布概率,h为该图像的熵。

若将

m×n作为图像中以(i,j)为中心的一个局部邻域,则h称为图像的局部熵值。局部熵反映了局部图像所包含的纹理信息丰富程度或图像像素梯度变化程度:局部熵值越大,则图像纹理信息丰富、图像像素梯度变化明显,因此fast特征点提取算法提取特征点效果好,该图像块保留;局部信息熵值越低,图像像素梯度变化不明显、纹理信息不丰富,因此提取特征点效果越差。该图像块被剔除。

实施例三

本实施例提供了一种基于自适应信息熵的特征点提取方法,所述方法包括:

步骤101,首先输入灰度图像,构建图像金字塔,增加尺度不变性;

步骤102,按照预先定义好的图像块大小划分图像块,自适应计算信息熵阈值,逐层对每个图像块进行信息熵和阈值的判断,选取熵值大于阈值的图像块;

步骤103,若所述图像块的熵值大于阈值,则在筛选出的信息丰富的图像块内进行fast特征点提取,均匀化处理,并计算brief描述子;

步骤104,若所述图像块的熵值小于阈值,则不进行特征点的提取;

步骤105,进行特征点匹配,计算匹配率,若此时的匹配率最高,则输出匹配率、匹配结果和此时信息熵的阈值。

更进一步地,所述自适应计算信息熵阈值进一步包括:自动计算筛选出匹配率最高的阈值,步骤如下:

步骤201,根据输入场景图片算出图片信息熵;

步骤202,由所述信息熵和步进得出循环次数,设置所述信息熵阈值的初始值为0,并设置步进为a及循环次数b,每次循环加step,并同时计算所述匹配率;

步骤203,取匹配率最大的信息熵,作为该场景的信息熵阈值;

更进一步地,所述步骤202进一步包括:设定循环步进a的step为0.2,所述循环次数b由计算得到,其中,entropy为信息熵阈值,step为步进值。

更进一步地,所述步骤103进一步包括:对该图像块进行fast特征点提取,使用四叉树算法对fast提取出的特征点进行均匀化,然后使用灰度质心法计算所述特征点的旋转角度,并通过brief算法对特征点进行描述。

更进一步地,所述均匀化处理使用了基于比例的特征点均匀化算法。

更进一步地,所述均匀化处理进一步包括:

步骤301,设置整个图像金字塔需要提取出1000个特征点,并且为构建图像金字塔中的缩放因子,第n层图像中,需要提取出的特征点个数nn:

其中,s为缩放因子,计算出本层图像中的图像块个数mn,因此每个图像块中,提取出特征点的个数k:

步骤302,比较图像块中实际提取出的特征点个数realkeyi;与n的大小,并且假设c为实际采用fast特征点提取算法提取出的特征点个数小于n的图像块个数,为当某图像块中的实际提取出的特征点个数小于k时,保留所有的特征点,并且定义aj该图像块的特征点个数与k的差值,在遍历整个图像金字塔后,得到整个图像金字塔中,尚未分配的特征点个数为a:

aj=k-realkeyi

步骤303,再将a均匀划分到那些图像块中实际提取出的特征点个数大于n的图像块中;因此,实际提取出的特征点个数大于n的图像块应该保留n1个特征点,其中n1为:

步骤304,用n1代替n继续遍历那些实际提取出的特征点大于n的图像块,重复上述步骤301-303,直到1000个应特征点提取数目全部分至图像块中,或者整个图像金字塔中提取出的特征点数小于1000,则停止均匀化图像块提取出的特征点个数;

步骤305,在图像块中,根据特征点的响应值,对特征点进行排序,选出前每个图像块应提取出特征点个数特征点,保留。

在本实施例中,为了定量分析本实验算法的匹配效果,采用正确匹配率、提取描述时间、特征点个数和匹配数为评价标准全面地评价本实验算法。正确匹配率是正确匹配数

与算法经过筛选后选出质量较好的特征点的比值,这里把筛选后的特征点个数简称为特征点个数。在匹配结果上,正确匹配率反应了匹配效果的优劣。正确匹配率值越大,匹配效果就越好。所有数据都是在笔记本电脑上,其操作系统为linux16.0464位,处理器intel(r)core(tm)i5-7200ucpu@2.50ghz,2712mhz,2个内核,4个逻辑处理器,运行环境为clion2019和opencv3.3.0,程序采用c++编写。

在正确匹配率上得到结果如下表1所示。

表1匹配正确率对比%

从上表可以看出:本发明算法在正确匹配率上优于orb-slam2系统的特征点匹配算法、sift和surf算法。其中比orb-slam2系统中特征点匹配算法平均高出2.75%,比sift算法13.12%,相较于surf更是高出32.42%。本发明算法同样优于四叉树与熵结合后的算法相比,四叉树与熵结合后的算法相比于orb-slam2并无提升过多,大部分情况与orb-slam2得到的结果相同。

表2提取与描述时间

表2中所有的提取与描述时间,均为运行十次后取平均值,从表2中可看出本发明算法提取与描述时间均短于其他算法,四叉树与熵结合后的算法慢于orb-slam2和本发明算法。本发明提出的自适应信息熵算法使得质量好特征点保留下来,因此提取出的特征点可直接保留,用四叉树均匀化算法会导致提取时间变长,因此提取与描述时间变长。本发明算法更直接地将经过自适应信息熵删选后的图像块用fast特征点提取算法提取出特征点保留保留下来,节省了提取时间。

表3特征点与匹配数

分析得出,本发明算法的正确匹配率虽然都高于orb-slam2中的特征点提取与匹配算法,但是正确匹配率没有远超与它。结合表3来看,本实验算法平均比orb-slam2中的特征点提取与匹配算法提取出80个特征点,且平均正确匹配数比orb-slam2高出70个。因为,本发明算法虽然在正确匹配率上没有极大地高于orb-slam2,但是本发明的特征点个数和匹配数比orb-slam2高出许多。在特征点数和匹配数均增加差不多个数时,其比率不会迅速上升。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1