差分演化算法实现多聚焦图像融合论文算法实现(算法分析)

任务:实现论文 Fusion of multi-focus images using differential evolution algorithm 的算法

论文简要分析:这篇论文提出了一种基于差分演化算法(DE)的多聚焦图像融合优化方法,DE用于确定最优块大小(所提出的方法的动机在于优化的块大小比固定块大小更有效)。首先将源图像分解成块。然后,通过采用一些标准函数来选择更清晰的块。最后将所选择的块组合起来构建融合图像。

如何评估图像块的清晰度?  标准函数:空间频率(SF)、方差(VAR)、修改的拉普拉斯算子(SML)

为什么需要最优块大小?  显著影响融合结果:它应该足够大,以允许标准函数去更准确的估计清晰的块;也要足够小,使得每个图像仅包含源图像的聚焦或散焦区域。

其他优化块大小的算法:遗传算法(GA),缺点是收敛速度慢,在编码和解码过程中花费大量的计算时间。

DE算法:DE算法的主要步骤是初始种群的生成、种群中个体的评价、突变、交叉和选择。它可以用于寻找具有实值参数的非线性、不可微和多模态连续空间函数的最优解。差分演化算法的流程图如下:

       

涉及到的主要知识点:1、空域多聚焦图像融合。

                            2、利用差分演化算法确定最优块大小。

      首先,我想先理一下多聚焦图像融合,多聚焦图像融合算法大概可以分为三个层次:决策级、特征级、像素级。最常用的是基于像素级的多聚焦图像融合,而像素级多聚焦图像融合主要分为基于频域和空域两种方法。

      而空域法通过对源图像空间像素点的一系列操作,如比较大小、加权平均等,最后形成融合图像。主要包括:灰度值取大或取小法、加权平均法、分块融合法。

      空域法最大的缺点就是容易产生块效应,影响图像融合的质量。于是出现了基于频域的多聚焦图像融合算法,主要是指基于多分辨率的方法,它把原图像多分辨率分解,由粗到细逐步分析,充分挖掘有价值的信息,从而获得融合结果更有利于人眼的图像。主要有金字塔方法和小波变换方法。

        空域法中的分块图像融合又分为基于均匀分块的多聚焦图像融合和非均匀分块的多聚焦图像融合。均匀分块融合算法的好坏主要由两个条件决定:最佳分块的大小和分割图像块的融合规则。而均匀分块融合算法主要有:基于遗传算法和基于差分演化算法两种。

       其实均匀分块主要是分块的大小比较难确定,前面说了,如果分割尺寸小,那么对应分块是清晰还是模糊不好判断,容易选错,如果分割尺寸很大,那么模糊和清晰区域很可能没有区分开来,太大太小都容易产生块效应。解决办法之一就是非均匀分块,即分割图像块的大小不一样,对于子块特征明显的模糊和清晰区域,进行分割的时候,尺寸大一点,对于模糊和清晰的边界区域,分割时尺寸小一些。简单来说,可以这样:

    

      因此基于非均匀分块多聚焦图像融合的关键之处为如何更准确的确定清晰、模糊和边界区域。比较有代表性的是基于自适应分块图像融合。

      基于差分演化算法的多聚焦图像融合过程如下:

       首先是初始化种群,分别分割图像,按一定规则融合,进而用清晰度函数评价融合结果质量,将优秀种群继续杂交、变异、迭代直到满足终止条件(比如迭代次数达到一个预先设定的值等),最后找到最佳分块大小,进而分割融合得到最终多聚焦融合图像,计算过程为十进制,相对于遗传算法计算更简单。下面是文章中的描述:

       

根据论文的算法流程,可以列出算法的步骤如下:

1、 定义DE的控制参数,如交叉概率(CR)、比例因子(F)、种群大小(NP)和终止准则。确定标准函数,其中之一用于测量块的清晰度(BSVI),另一个用于计算融合图像的全局清晰度(GSVF)。

2、 生成可能的解决方案的初始种群。种群的个体包括两个参数,它们对应于所需融合图像的最佳块大小的宽度(m)和高度(n)。

3、 评估种群和计算每个个体的适应值如下:

       A、 将输入图像A和B划分为非重叠块,其大小为M N。分别是AIBIA和B图像的第i个图像块。

       B、 在AI和BI上应用标准函数来计算块的清晰值,并分别用BSVAi和BVBI表示AI和BI的结果。

       C、比较两个对应块Ai和Bi的清晰度值,以确定更清晰的图像块,并将融合图像的块FI构造为:

                                            

       D、在对源图像的每个对应块应用等式(11)后,利用全局清晰度值(GGSF)计算融合图像的适合度值.清晰度值越大,解(或个体)越好。因此,为了计算每个解的适应度值,采用下面的表达式作为适应度函数: 

                                      

4、 应用DE的变异、交叉和选择算子来寻找新的解决方案。

5、 重复步骤3和步骤4直到满足预定义条件为止。

原文地址:https://www.cnblogs.com/libai123456/p/9067202.html