图像分割基于matlab粒子群算法优化模拟退火算法图像分割含matlab源码2020期

佛怒火莲 佛怒火莲     2022-11-30     509

关键词:


一、粒子群算法优化模拟退火算法图像分割简介(具体理论见参考文献)

1基于模拟退火思想的粒子群算法
1.1 基本PSO算法

首先, 粒子群算法是由Eberhan博士和Kennedy博士最先提出的全局优化进化算法。该算法源于对鸟群捕食行为的灵感, 其基本思想是通过群体中个体之间的协作和共享来寻求最优解。

粒子群算法中, 每个优化问题的解看作是搜索空间中的一只鸟, 称之为“粒子"。鸟被抽象为没有质量和体积的微粒 (点) , 并将其延伸到N维空间, 粒子i在N维空间里的位置表示为矢量Xi= (xi1, xi2, …, xiN) , 飞行速度表示为矢量Vi= (vi1, vi2, …, viN) , 每个粒子都有一个由目标函数决定的适应值 (FitnessValue) , 并且知道自己到目前为止发现的最好位置pbest和现在的位置Xi, 这个可以看作是粒子自己的飞行经验。除此之外, 每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置gbest (gbest是pbest中的最好值) 。这个可以看作是粒子同伴的经验。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。

对于第k次迭代, PSO中的每一个粒子是按照式 (1) 和式 (2) 进行变化的。

【图像分割】基于matlab粒子群算法优化模拟退火算法图像分割【含Matlab源码


粒子通过不断的学习更新, 最终飞向解空间中最优解所在位置, 搜索过程结束。最后输出的g是全局最优解。在更新过程中, 粒子每一维的速率被限制到vmin-vmax之内。

1.2 模拟退火思想的粒子群算法 (SAPSO)
基本粒子群优化算法中, 虽然粒子速度作了限制, 不会变化太大, 但位置更新时未作限制, 就有可能新的位置会变得很坏, 引起收敛速度缓慢, 所以要对更新的位置作限制。限制的思路有两种方法:一种类似于速度的限制方法, 给每一维变量限制一个范围;另一种思路采用模拟退火算法思想, 模拟退火算法用于优化问题的出发点是基于物理中固体物质的退火过程与一般优化算法的相似性。算法的基本思想是从一给定解开始的, 从邻域中随机产生另一个解, 接受准则允许目标函数在有限范围内变坏, 它由一控制参数t决定, 其作用类似于物理过程中的温度T, 对于控制参数t的每一取值, 算法持续进行“产生新解—判断—接受或舍弃”的迭代过程, 对应着固体在某一恒定温度下趋于热平衡的过程。经过大量的解变换后, 可以求得给定控制参数t值时优化问题的相对最优解。然后减小控制参数t的值, 重复执行上述迭代过程。当控制参数逐渐减少并趋于零时, 系统也越来越趋于平衡状态, 最后系统状态对应于优化问题的整体最优解, 该过程也称冷却过程[8]。

方法1: 在基本粒子群算法的基础上, 在更新当前位置时, 把它限制在xmin-xmax内。

采用模拟退火算法思想有3种方法改进, (在此以求目标函数的极小值为例, 即适应值越小越好) 分析如下:

方法2:按式 (2) , 计算新的位置, 然后计算两个位置所引起的适应值的变化量ΔE;若ΔE≤0, 接受新值, 否则若exp (-ΔE/T) >rand (0, 1) 也接受新值。其中rand (0, 1) 表示0-1之间的随机数, T是起始温度, α为退火系数。否则就拒绝。

方法3: 接受准则允许目标函数在有限范围内变坏, 并不直接按概率取舍, 而是按ΔE<e, e为按允许目标函数变坏的范围。

方法SAPSO:把方法1与方法3结合在一起, 现提出一种基于模拟退火思想微粒群算法 (SAPSO) , 既限定位置的范围, 又设定允许目标函数变坏的范围e, 接受准则允许目标函数在有限范围内变坏, 即若ΔE<e, 就接受新值, 否则就拒绝。把SAPSO方法结合最大类间方差法应用于图像分割, 这充分发挥了模拟退火、PSO、最大类间方差法三种算法的优势, 非线性快速且稳定地求解最大类间方差及对应的灰度阈值, 在取得较好的图像分割效果的同时, 显著地提高了计算速度。

2基于模拟退火思想的PSO算法用于图像分割
2.1 最大类间方差分割方法

最大类间方差阈值分割法的基本思路是将直方图在某一阈值处分割成两组, 计算两组的方差信息, 因为方差是灰度分布均匀性的一种度量, 方差值越大, 说明构成图像的两部分差别越大, 当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小, 因此使类间方差最大的分割意味着错分概率最小, 此时的阈值即为最佳阈值。

最大类间方差法以式 (3) :

【图像分割】基于matlab粒子群算法优化模拟退火算法图像分割【含Matlab源码


2.2采用SAPSO算法优化最大类间方差分割法的具体实现

从上面讨论可以看出, 最大类间方差法的计算量很大, 严重影响了阈值的选取效率, 难以满足图像分割的实时处理要求和大幅图像处理的需要。由于最大类间方差法实际上也是一种寻优方法, 所以文中使用前文提出的SAPSO算法优化最大类间方差法的寻优过程。

2.2.1 SAPSO算法流程
下面是SAPSO算法的基本步骤:

  1. 初始化:设定微粒群规模M, 每个微粒代表 (0~L-1) 区间内的某个灰度值, 其中L为需要处理图像的灰度级。随机对微粒群各微粒的初始位置和速度进行初始设定, 预先设定算法的运行参数。
  2. 根据式 (1) 和式 (2) , 由当前位置和速度产生各个微粒的新的位置。并且计算微粒群中每个微粒的当前最好位置pbest和全局最好位置gbest。

While (不满足迭代终止条件) do

  1. 选择式 (3) 的F (k) 作为微粒群算法的适应函数, 计算每个粒子新位置的适应值。
  2. 对各个微粒, 将其适应值与所经历过的最好位置pbest的适应值进行比较, 若较好, 则将其作为当前的最好位置;根据各个微粒的个体极值pbest找到全局最好位置gbest。对适应值进行比较, 若较好, 则将其作为当前的全局最好位置。进行一步迭代。
  3. 根据式 (1) 进化每个微粒的Vi, 并把它限制在vmax内。
  4. 根据式 (2) 进化每个微粒的Xi, 并把它限制在0~L-1内。
  5. 计算两个位置所引起的适应值的变化量ΔE;若ΔE>-e, e为允许目标函数变坏范围, 接受新值;否则就拒绝, xk+1仍为xk。

End

  1. 将gbest对应的阈值K作为分割阈值门限, 进行图像分割。利用灰度图像直方图可以实现灰度图像的二值化, 一般而言, 如果一幅图像用f (i, j) 表示, 图像的二值化阈值处理方式如下:

f (i, j) =1;f (i, j) ≥K
f (i, j) =0;f (i, j) <K

通常, 用f (i, j) =1的部分表示图像, 用f (i, j) =0的部分表示背景。

2.2.2 SAPSO算法的主要参数的选择
虽然粒子群算法发展迅速并取得了可观的研究成果, 但其理论基础仍相对薄弱, 尤其是算法基本模型中的参数设置和优化问题还缺乏成熟的理论论证和研究。目前比较通用的参数设置方法是经验法和实验法。

粒子群规模的选择, A EI-Gallad 在其研究论文中利用统计方法分析了微粒群规模、速度极限和迭代次数对算法性能的影响, 但是这三个参数与具体问题的特性密切相关, 文中算法经过实验得到粒子数为5比较合适。

惯性权重w、加速常数c1、c2和最大速度vmax共同维护微粒对全局和局部搜索能力的平衡。这四个算法参数的设置与具体问题密切相关, 目前比较常用的方法是针对具体求解问题, 利用充分的实验来确定。

加速常数c1、c2, 低的值允许微粒在被拉回之前可以在目标区域外徘徊, 而高的值则导致微粒突然地冲向或越过目标区域, 一般都取2, 不过在文献中也有其它的取值, 但一般c1=c2并且范围在0~4之间[11], J Kennedy和R Eberhart曾在论文中建议设置c1=c2=2以保证式 (1) 中的随机乘积均值等于1, 文中算法中统一取c1=c2=2。

惯性权重因子w使微粒保持运动惯性, 使微粒有扩展搜索空间的趋势, 有能力探索新的区域。在此取值与经典粒子群算法一致, w=1。

速度限制最大值vmax决定当前位置与最好位置之间的区域的分辨率 (或精度) 。如果vmax太高, 微粒可能会飞过好解;如果vmax太小, 微粒不能在局部好区间之外进行足够的探索, 导致陷入局部优值。

该限制有3个目的:

(1) 防止计算溢出;

(2) 实现人工学习和态度转变;

(3) 决定问题空间搜索的粒度。在此取vmax=4。

粒子长度, 由优化问题决定, 就是问题解的长度, 粒子的范围, 文中粒子位置代表阈值, 对于灰度级为L的图像, 阈值范围在0~ (L-1) , 故位置限制最小值xmin=0, 位置限制最大值xmax=L-1。

模拟退火算法所用到的参数, 初始温度T和退温方式对算法的优化性能具有一定影响, 在此采用如下经验公式[16]:T=-fpg/ln (0.2) , Tk+1=α*Tk, 其中, fpg为初始种群中最佳微粒的目标值, α为退火系数。

二、部分源代码

%% Cleaning the Stage
clc;
clear;
close all;
warning(‘off’);%% Reading Image
MainOrg=imread(‘tst.jpg’);
Gray=rgb2gray(MainOrg);
InpMat= double(MainOrg);%% Basics
[s1,s2,s3]=size(InpMat);
R = InpMat(:,:,1);
G = InpMat(:,:,2);
B = InpMat(:,:,3);
X1 = (R-min(R(

优化求解模拟退火结合粒子群优化算法matlab源码(代码片段)

1引言  粒子群算法(ParticalSwarmOptimization-PSO)是1995年由Eberhart博士和kennedy博士共同提出的一种优化算法[1][2]。它属于群智能算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,通过适应度... 查看详情

优化求解模拟退火结合粒子群优化算法matlab源码(代码片段)

1引言  粒子群算法(ParticalSwarmOptimization-PSO)是1995年由Eberhart博士和kennedy博士共同提出的一种优化算法[1][2]。它属于群智能算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,通过适应度... 查看详情

图像分割基于matlabkmean聚类分水岭oust粒子群算法优化脂肪肝图像分割含matlab源码2277期

⛄一、粒子群算法自适应多阈值图像分割简介FCM聚类算法是一种局部搜索算法,对初始值较为敏感,容易陷入局部极小值而不能得到全局最优解。PSO算法是一种基于群体的具有全局寻优能力的优化方法。本文将FCM聚类算法和PSO算法... 查看详情

阙值分割基于matlab粒子群算法自适应多阈值图像分割含matlab源码1459期(代码片段)

一、粒子群算法自适应多阈值图像分割简介理论知识参考:【基础教程】基于matlab图像处理图像分割【含Matlab源码191期】粒子群优化的多阈值图像自分割算法二、部分源代码clc;clear;closeall;%%输入图像;Imag=imread(\'24063.jpg\') 查看详情

阙值分割基于matlab粒子群算法自适应多阈值图像分割含matlab源码1459期(代码片段)

一、粒子群算法自适应多阈值图像分割简介理论知识参考:【基础教程】基于matlab图像处理图像分割【含Matlab源码191期】粒子群优化的多阈值图像自分割算法二、部分源代码clc;clear;closeall;%%输入图像;Imag=imread(\'24063.jpg\') 查看详情

基于matlab编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割

...缺点粒子群改进的阈值分割效果图结果分析展望参考背影图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几... 查看详情

电力负荷预测基于matlab模拟退火算法结合狮群算法优化elman神经网络电力负荷预测含matlab源码1454期

...拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。其目的在于为具有NP(Non-deter 查看详情

路径优化基于人工蜂群(abc)算法和粒子群优化算法的组合求解路径优化问题(matlab代码实现)

目录​​1概述​​​​2基本人工蜂群算法​​​​3粒子群优化算法​​​​4运行结果 ​​​​5参考文献 ​​​​ 6 Matlab代码实现​​1概述旅行商问题是一个典型的NP-Hard问题.由于经典算法在解决较大规模的组... 查看详情

求直接调用的matlab粒子群算法和模拟退火法的函数

我目标函数已经编好了,现在只要直接调用matlab内部的粒子群算法和模拟退火法就可以了,想请问一下直接调用的函数和设置是怎么写的?两行就搞定的那种参考技术A没有,自己网上去下别人编好的工具箱吧。 查看详情

基于粒子群优化二维otsu的肺ct图像分割算法

...CT(computedtomography,计算机断层扫描),CT图像主要体现病变区域的信息,医生根据该区域的信息对病人进行诊断和治疗。在计算机辅助诊断(Computer-AidedDiagnosis,CAD)肺肿瘤的研究中,对肺部CT图像进行分割是... 查看详情

粒子群优化算法-python版本和matlab函数调用

前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab下的粒子群函数。前文参看:​​粒子群优化算法(PSO)​​以Ras函数(RastriginsFunction)为目标函数,求其在x1,x2∈[-5,5]上的最小... 查看详情

优化算法天牛须搜索优化粒子群算法含matlab源码1256期

一、天牛须搜索算法简介1天牛须搜索算法定义天牛须搜索(BeetleAntennaeSearch-BAS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道... 查看详情

图像分割基于matlab粒子群算法和ostu和分水岭和k-means脂肪肝水平识别含matlab源码2397期

⛄一、粒子群算法自适应多阈值图像分割简介FCM聚类算法是一种局部搜索算法,对初始值较为敏感,容易陷入局部极小值而不能得到全局最优解。PSO算法是一种基于群体的具有全局寻优能力的优化方法。本文将FCM聚类算法和PSO算法... 查看详情

无人机基于matlab粒子群算法优化干扰受限下无人机群辅助网络含matlab源码2245期(代码片段)

⛄一、无人机简介无人机的航迹规划是指在综合考虑无人机飞行油耗、威胁、飞行区域以及自身物理条件限制等因素的前提下,为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹,其本质是一个多约束的目标... 查看详情

优化覆盖基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题含matlab源码2021期(代码片段)

一、无人机简介无人机的航迹规划是指在综合考虑无人机飞行油耗、威胁、飞行区域以及自身物理条件限制等因素的前提下,为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹,其本质是一个多约束的目标优... 查看详情

优化求解基于matlab模拟退火算法求解函数极值问题含matlab源码1203期

...拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。其目的在于为具有NP(Non-deter 查看详情

图像处理基于matlab压缩系数的粒子群和重力搜索算法图像的多级阈值分割含matlab源码1888期(代码片段)

...多级阈值分割简介(具体理论见参考文献)1引言图像分割是计算机视觉领域的一个前沿研究领域,是图像分析中非常重要的预处理步骤。分割的目标是将图像的表示简化或更改为更有意义且更易于分析的内容。多年... 查看详情

优化预测基于matlab天牛须算法优化elman神经网络预测含matlab源码1375期

一、天牛须搜索算法简介1天牛须搜索算法定义天牛须搜索(BeetleAntennaeSearch-BAS),也叫甲壳虫须搜索,是2017年提出的一种高效的智能优化算法。类似于遗传算法、粒子群算法、模拟退火等智能优化算法,天牛须搜索不需要知道... 查看详情