基于蝙蝠算法优化BP神经网络的特征点匹配
2019-08-30任金霞
郭 贝,任金霞
(江西理工大学 电气与自动化学院,赣州 341000)
0 引言
图像匹配是机器视觉中一种常用的图像处理和图像分析技术,是图像处理到图像分析的关键步骤,基于特征点的图像匹配方法已经成为国内外研究的热点。文献[1,2]采用BRISK和ORB相结合的特征点算法,有效的解决了ORB特征描述算法不具备尺度不变性的问题。文献[3]采用了极线几何的统计优化特征匹配算法,利用正确匹配点的极线约束的特点,减少了搜索区域,避免重复结构引起的误匹配对。文献[4]使用组合角点检测算法来检测角点,并且均匀地选择第一图像中的特征点的部分以实现预匹配,并且基于匹配结果来找到其他检测点的对应点。医学图像有其特殊的复杂性,其普遍亮度和对比度偏低,灰度变化不明显,在成像上拍摄角度和拍摄光照变化,都是导致图像的中的数据丢失,这就影响图像匹配的正确率,近些年,基于神经网络的图像匹配的方法越来引起人们的关注,正是因为神经网络具有高速信息处理和不确定性信息处理的能力。在实际应用中,传统BP神经网络的网络权值和阈值存在随机性,对训练的网络有很大的影响,会出现不同程度的收敛慢,容易陷入局部最优。针对此问题,本文提出蝙蝠算法优化BP神经网络方法,利用两幅图匹配为基础,建立基于蝙蝠算法优化BP神经网络的特征点匹配的模型,并加以特征点的单一性约束准则和互应性约束准则,提高匹配的正确率。
1 蝙蝠算法优化BP神经网络
蝙蝠搜索算法是一种优化算法,受到天然蝙蝠定位食物回声定位行为的启发。它由Yang引入,用于解决各种优化问题。
具体步骤如下:
1)蝙蝠算法的初始化。设定蝙蝠的数量,每个个体的最大脉冲频度和脉冲声音强度,蝙蝠增加系数、声音衰减系数、最大迭代次数和搜索精度;
2)记录随机初始化的蝙蝠个体的位置X,搜索位置在最佳的蝙蝠个体;
3)更新蝙蝠的搜索脉冲频率,速度和位置。在群体的过程中,每一代的搜索脉冲频率,速度和位置如下改变:
公式中,β ∈[0,1]是满足均匀分布的随机向量,X*表示当前全局的最优解;根据问题的搜索范围,需要满足fmin=0,fmax=O(1)。初始条件时,每一只蝙蝠随机赋值给的频率必须满足[fmin,fmax]间的均匀分布;
4)随机生成数Rand,假如Rand>ri,需要做的就是随机扰动当前的最优解,然后生成新的解,并且新的解是有界的。
5)随机生成数Rand,假如Rand<Ai,同时满足f(Xi)<f(X*),4)产生的新解需要按公式更新:
6) 对全部蝙蝠的适应度值进行排列,寻找目前的最佳解和最优值。
7) 重复步骤3)~6),直到符合设定的最优解要求截止。
8)得出函数全局的最优解和最优的个体值,得到的函数全局最优解。作为BP神经网络权值和阈值。
2 蝙蝠算法优化BP神经网络的特征点匹配模型
特征点匹配是发现两个特征点集合当中的彼此对应匹配关联和空间映射关联,相同的一个空间坐标点在不同的图像上的对应匹配关系是确定不变的。受到摄像环境的影响,空间点和图像点的关系变得很复杂,但是除非考虑外部噪声的影响,否则图像中所有特征点的映射关系是相同的。
图像特征点的匹配的形式,需要确立较为精确的数学模型,如若模型确立的不精确,那么这个模型的匹配结果的精确性将大大下降,尤其能够致使匹配结果的 失败。
蝙蝠算法优化BP神经网络匹配模型最重要的任务是:能够正确体现两幅图像特征点的集合映射关系的模型。该模型分为三个部分:1)已匹配的特征点集合的样本的分类和处理;2)BP网络结构以及权值和阈值的;3)匹配的约束准则
1)特征点集合需要进行样本归一化处理,把数据处理成BP神经网取值络比较敏感的区间的数据;样本分类,把处理好的数据分成训练样本和验证样本,用训练样本用于进行训练网络,验证样本用于检验网络的 好坏。
2)BP神经网络一般分为输入层,隐含层,输出层,我们主要的目的就是期望运用BP神经网络进行预测未匹配特征点的位置(即坐标),所以,输入层的神经元和输出的神经元都为2个,隐含层神经元的选择个数,根据研究和实验中的发展可以得出个数应该在2~12之间。对于权值和阈值的取值,用蝙蝠算法进行权值和阈值的优化。
3)匹配约束准则
(1)唯一性准则:一个图像上相同空间点的投影点只能与另一个图像上的唯一点匹配。
①两张待匹配图像之间存在的已知匹配的特征匹配(左图像P1和右图像P2),将匹配表输入BP神经网络以学习网络。
②预测位置Pic1_test是左图像P1特征点的网络实际输出,即在右图的预测位置坐标。
③在实际输出坐标中选择未匹配的特征点p1i(pij的第i幅图中的第j个特征点),依次与右图P2待匹配点进行计算欧氏距离dij(dij表示左图P1中第i个特征点预测匹配点与右图P2中第j个特征点之间的距离),Dmax为左图中已匹配的特征点预测的点与右图中相对应的匹配点欧氏距离,dij只有不大于Dmax的距离的特征点作为正确的匹配点,将该匹配点对加入列表中,并将该点对删除,如若dij大于Dmax的距离,则认为该匹配点不存在。
④重复步骤③,直到图P1中的未匹配特征点全部都经历完。
⑤如果右图P2中还有未进行匹配点,则认为该些点没有匹配点,至此图像的匹配结束。
(2)图像的反匹配:
假设匹配,从左图像开始,左图像的特征点A可以在右图像中找到对应点B。如果操作相反,则在右图像的开始,右图像的特征点B,找不到左图像的对应匹配点,或者可以找到特征点但是特征点不是A,匹配关系未建立并被排除。
3 结果分析
为了验证蝙蝠算法优化BP神经网络的有效性,我们选择两幅肠胃内窥镜的图片进行BP神经网络和蝙蝠算法优化BP神经网络的对比实验。
图1 两图内窥镜图像
首先,先进行特征点提取,并进行特征点匹配,得到已匹配特征点对,和两幅图中未匹配的特征点。
3.1 BP神经网络匹配特征点
首先进行BP神经网络的特征点匹配,网络的层数结构选择2,10,2,迭代次数1000,学习0.1,目标0.0000001,训练网络,由约束条件唯一性原则,最大距离为2.2078。两幅图的特征点存在已经匹配好的特征点,两幅图的部分样本如表1所示。
表1 两图部分样本
根据以上的数据训练BP神经网络,并使用待匹配的特征点进行匹配,得出以下的结果,
图2 传统BP神经网络匹配图
从上面两张特征点匹配的图像来看,中间有些特征点,比如图中的点36,点37,点38,点39,点40,点41,点42,点43,点44,点45其他的特征点都匹配正确,由此可以得出总共45个特征点匹配点中,有9个是误匹配点,正确率还不是很高。
3.2 蝙蝠算法优化BP神经网络的特征点匹配
开始训练网络之前,需要先确定网络的层数结构和蝙蝠算法的相关的参数,根据实际的样本数据训练网络和约束的阈值。
网络的层数结构选择2,8,2,迭代次数1000,学习率0.1,目标0.0000001,种群数量20,音量0.25,脉冲率0.5,最大距离0.1902。经过训练样本和验证样本的训练,用蝙蝠算法进行阈值和权值的搜索,得到搜索的最优的阈值和权值,并将搜索好的阈值和权值赋值给BP神经网络,加以训练,得到最终的权值和阈值,将训练好的BP神经网络运用在特征点的匹配上,结合约束准则进行匹配。
先进行正向匹配
图3 蝙蝠算法优化BP神经网络正匹配
通过蝙蝠优化BP神经网络的的模型映射并按约束准则匹配,先进行正向匹配的结果的显示,从图4(a),图4(b)可以看出左右图中都进行了不同颜色的标记提取,一共标记了31个不同的特征点,通过对比找出了点7,点13,点19,点26,这4个错误的匹配点,相较于只进行传统BP神经网络的模型,训练匹配的结果有了很大的提高,但是还是出现了匹配点错误的情况,并且错误的匹配点并没有被消除掉。
下面进行反向匹配的过程,反向匹配的过程中的特征点个数可能有不同,所以进行重新编号,结果如下:
图4 蝙蝠算法优化BP神经网络反匹配
同样的,反向匹配也会存在一些错误的匹配点,根据互应性的约束,需要剔除误匹配,结果如下:
图5 误匹配剔除的结果
所以最终留下的匹配点就是正确的匹配点,两个约束条件保证了结果的可靠性。通过对比最终的特征点匹配,可以看出,正向匹配和反向匹配中都删掉了一些正确的匹配点,但是各个图中的错误匹配点都删除了,保证了特征点匹配的正确性。
4 结论
医学图像特征点匹配由于图像本身的特殊性,拍摄条件的局限性,外界干扰因素多,导致匹配过程出现误匹配点。本文提出了基于蝙蝠算法优化BP神经网络的特征点匹配的模型,该模型有蝙蝠算法的快速搜索的最优的权值和阈值,以及BP神经网络自身的自适应能力,通过实验结果,该模型能够提高正确的匹配特征点,并且剔除误匹配点,明显高于BP神经网络的特征点匹配,该算法有效的。