💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究
图像分割(IS)是图像处理和计算机视觉中必不可少的过程。它将图像划分为许多区域和像素。换句话说,IS简化了图像的特征。
基本上,阈值处理图像的归一化,并根据灰度强度值将其分成更小的片段。实际上,阈值分为两级阈值和多级阈值(MT)。前者通过仅考虑一个阈值 (k) 值将图像分为两类。另一方面,机器翻译需要两个以上的阈值,并将图像的像素分成多个类。
图像分割是图像处理中的关键步骤之一。实际上,它处理根据像素强度将图像划分为不同的类。本工作介绍了一种新的基于收缩系数的粒子群优化和引力搜索算法(CPSOGSA)的图像分割方法。图像的随机样本充当CPSOGSA算法的搜索代理。最佳阈值数是使用 Kapur 熵法确定的。CPSOGSA在图像分割中的有效性和适用性是通过将其应用于USC-SIPI图像数据库中的五个标准图像来实现的,即飞机,摄影师,时钟,莉娜和海盗。采用各种性能指标来研究仿真结果,包括最佳阈值、标准差、MSE(均方误差)、运行时间分析、PSNR(峰值信噪比)、最佳适应度值计算、收敛图、分割图像图和箱形图分析。此外,图像精度是利用SSIM(结构相似性指数度量)和FSIM(特征相似性指数度量)指标进行基准测试的。此外,还利用成对非参数符号Wilcoxon秩和检验对仿真结果进行统计验证。
本工作介绍了一种新的基于收缩系数的粒子群优化和引力搜索算法(CPSOGSA)的图像分割方法。图像的随机样本充当CPSOGSA算法的搜索代理。最佳阈值数是使用 Kapur 熵法确定的。CPSOGSA在图像分割中的有效性和适用性是通过将其应用于USC-SIPI图像数据库中的五个标准图像来实现的。
1. CPSOGSA算法的基本原理与组成
CPSOGSA是一种混合优化算法,通过融合粒子群优化(PSO)的局部开发能力与引力搜索算法(GSA)的全局探索能力,旨在解决图像分割中传统算法易陷入局部最优、收敛速度不足的问题。其核心设计包括:
- PSO的贡献:借鉴群体智能中个体与全局最优解的协同更新机制,通过粒子速度更新公式实现快速局部收敛。例如,粒子根据历史最优位置(个体最优和全局最优)调整移动方向。
- GSA的贡献:基于万有引力定律,通过计算粒子间引力与质量关系,增强全局搜索能力。质量较高的粒子(适应度更优)对其他粒子产生更大的吸引力。
- 混合策略:在GSA框架中引入PSO的个体最优(pbest)和群体最优(gbest)记忆机制,通过动态调整参数平衡探索与开发。例如,学习因子c1c1和c2c2随迭代次数变化,初期偏向GSA的全局探索,后期偏向PSO的局部开发。
2. 收缩系数的作用机制
收缩系数(Constriction Coefficient, γγ)是CPSOGSA的核心创新之一,用于调节算法的收敛性:
-
动态平衡:较大的γγ值增强全局探索能力,允许粒子在搜索空间广泛分布;较小的γγ值增强局部开发能力,促使粒子精细搜索最优解。
-
数学表达:在速度更新公式中,收缩系数通过调整惯性权重,控制粒子移动步长。例如,结合PSO的经典速度更新公式:
其中,r1和r2为随机数,γ随迭代动态调整。
3. 多级图像阈值分割的关键技术
多级阈值分割通过选择多个阈值将图像划分为多个区域,其技术难点在于高效搜索最优阈值组合。CPSOGSA在此场景中的应用步骤如下:
- 适应度函数设计:
- Kapur熵:最大化类内信息熵,适用于复杂纹理图像。
- Otsu类间方差:最大化类间差异,适合双峰直方图图像。
- 交叉熵:衡量分割前后图像的差异,鲁棒性强。
- 代理编码:将图像的随机采样像素作为搜索代理(候选解),每个代理对应一组阈值组合。例如,对kk级分割,代理编码为(t1,t2,...,tk),需满足0<t1<t2<...<tk<255。
- 算法迭代:通过CPSOGSA优化代理位置,逐步逼近最优阈值。每次迭代更新代理的引力、加速度及位置,并评估适应度值。
4. 性能评估指标
CPSOGSA的性能通过以下指标量化:
- 分割质量:
- PSNR(峰值信噪比) 与 MSE(均方误差) :衡量分割图像与原始图像的差异,PSNR值越高(MSE越低)表示质量越好。
- SSIM(结构相似性) 与 FSIM(特征相似性) :评估分割结果在结构和细节上的保真度。
- 算法效率:
- 运行时间:反映计算复杂度,适用于实时性要求高的场景。
- 收敛曲线:显示适应度值随迭代次数的变化,验证算法稳定性。
- 统计验证:通过Wilcoxon秩和检验等非参数方法,验证算法性能的显著性差异。
5. 应用案例与实验验证
- 标准图像测试:在USC-SIPI数据库的Aeroplane、Cameraman、Lena等图像上,CPSOGSA在2~5级阈值分割中均优于传统算法(PSO、GSA、GWO等),例如:
- 在Lena图像中,CPSOGSA的PSNR值比PSO高2.5 dB,收敛速度提升30%。
- SSIM和FSIM值分别达到0.92和0.89,表明其结构保留能力优于其他算法。
- 复杂场景适应:针对光照不均或噪声干扰的图像,CPSOGSA通过动态收缩系数调整,表现出更强的鲁棒性。例如,在医学图像分割中,其MSE值比传统方法降低15%。
6. 多领域扩展应用
CPSOGSA的优化能力已扩展至其他工程领域:
- 神经网络训练:用于优化多层感知器(MLP)的权重与偏置,在乳腺癌和心脏疾病分类任务中,准确率分别达到98.7%和97.3%,优于传统优化算法。
- 微电网控制:在风-光-小水电混合微电网中,CPSOGSA优化负荷频率控制器参数,使频率波动积分降低40%,动态响应时间缩短25%。
- 可再生能源系统设计:在光伏-储能系统容量优化中,CPSOGSA的总净现值成本(TNPC)较其他算法降低12%,计算效率提升18%。
7. 未来研究方向
- 深度学习融合:将CPSOGSA嵌入卷积神经网络(CNN)中,用于自适应超参数优化与特征选择。
- 多模态优化:结合迁移学习与多目标优化,解决跨域图像分割问题。
- 实时性提升:通过并行计算与硬件加速(如GPU),进一步缩短运行时间。
8. 总结
CPSOGSA通过混合PSO与GSA的优势,结合动态收缩系数机制,在多级图像阈值分割中展现出高精度、高鲁棒性和快速收敛的特点。其应用已从图像处理扩展至复杂工程优化问题,成为智能算法领域的重要工具。未来,结合深度学习的自适应优化与跨领域迁移将是其发展的关键方向。
📚2 运行结果
部分代码:
% Parameter initialization
I = imread('Aeroplane.tiff');
% I = imread('Cameraman.tiff');
level = 5; %% Threshold = level-1
%
N_PAR = level; %number of thresholds (number of levels-1) (dimensiones)
dim = N_PAR;
%
n = 15; % Size of the swarm " no of objects " %%% Default (n = 15)
Max_Iteration = 300; % Maximum number of "iterations" %%% Default (Max_Iteration = 300)
%
if size(I,3) == 1 %grayscale image
[n_countR, x_valueR] = imhist(I(:,:,1));
end
Nt = size(I,1) * size(I,2);
% % Lmax indicated color segments 0 - 256
Lmax = 256; %256 different maximum levels are considered in an image (i.e., 0 to 255)
for i = 1:Lmax
if size(I,3) == 1
%grayscale image
probR(i) = n_countR(i) / Nt;
end
end
if size(I,3) == 1
up = ones(n,dim) * Lmax;
low = ones(n,dim);
end
tic
RunNo = 1;
for k = [ 1 : RunNo ]
[CPSOGSA_bestit,CPSOGSA_bestF,CPSOGSA_Fit_bests]= CPSOGSA(I, Lmax, n,Max_Iteration,low,up,dim, level, probR);
BestSolutions1(k) = CPSOGSA_bestF;
disp(['Run # ' , num2str(k),'::' 'Best estimates =',num2str(CPSOGSA_bestit)]); % CPSOGSA
end
% /* Boxplot Analysis */
figure
boxplot([BestSolutions1'],{'CPSOGSA'});
color = [([1 0 0])];
h = findobj(gca,'Tag','Box');
for j=1:length(h)
patch(get(h(j),'XData'),get(h(j),'YData'),color(j));
end
title ('\fontsize{15}\bf Aeroplane (k=2)');
% % title ('\fontsize{15}\bf Cameraman (k=2)');
xlabel('\fontsize{15}\bf Algorithms');
ylabel('\fontsize{15}\bf Best Fitness Values');
box on
% % %
% /* Graphical Analysis*/
figure
plot(CPSOGSA_Fit_bests,'DisplayName','CPSOGSA','Color','b','LineStyle','-','LineWidth',3);
disp( ['Time_CPSOGSA =', num2str(toc)]);
title ('\fontsize{15}\bf Aeroplane (k=2)'); % k=2,4,6,8,10
% % title ('\fontsize{15}\bf Cameraman (k=2)');
xlabel('\fontsize{15}\bf Iterations');
ylabel('\fontsize{15}\bf Fitness values');
legend('\fontsize{12}\bf CPSOGSA');
%
%
gBestR = sort(CPSOGSA_bestit);
Iout = imageGRAY(I,gBestR);
Iout2 = mat2gray(Iout);
% % Show results on images
figure
imshow(Iout)
figure
imshow(I)
% % Show results
intensity = gBestR(1:dim-1);
STDR = std(CPSOGSA_Fit_bests) %Standard deviation of fitness values
MSEV = MSE(I, Iout) %Mean Square Error
PSNRV = PSNR(I, Iout) %PSNR between original image I and the segmented image Iout
SSIMV = ssim (I, Iout) %SSIM Quality Measure
FSIMV = FeatureSIM (I, Iout) %FSIM Quality Measure
Best_Fitness_Value= CPSOGSA_Fit_bests(k) %Best fitness
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)