当前位置: 首页 > news >正文

2004-基于多目标粒子群(MOPSO)算法的多阈值图像分割(Otsu 法 + 最小交叉熵)(中文核心、SCI 四区可选)

1 论文简介

《Handling Multiple Objectives With Particle Swarm Optimization》是由 Carlos A. Coello Coello、Gregorio Toscano Pulido 和 Maximino Salazar Lechuga 于 2004 年 6 月发表在《IEEE Transactions on Evolutionary Computation》上的一篇论文。该论文针对传统的粒子群优化算法无法直接处理多目标优化问题》,提出了一种多目标粒子群优化方法,简称 MOPSO。该方法的核心创新在于将Pareto 支配关系引入粒子群优化框架,同时引入外部档案存储历史非支配解,并设计了一种随时间动态调整的变异算子以增强算法在搜索初期的探索能力和后期的收敛能力。MOPSO 还采用了基于自适应网格的多样性保持机制,能够生成分布均匀的Pareto 前沿。该方法因其结构简洁、收敛速度快、解集质量高等特点,被广泛应用于工程优化、设计决策和多目标调度等领域,并成为多目标进化算法研究中的重要基准算法之一,对后续多目标粒子群算法的研究与发展产生了深远影响。

2 算法原理

步骤一:初始化粒子群

随机初始化一群粒子,每个粒子iii的位置向量xi\mathbf{x}_ixi代表一组候选阈值:xi=(Ti1,Ti2,…,Tik)\mathbf{x}_i = (T_{i1}, T_{i2}, \ldots, T_{ik})xi=(Ti1,Ti2,,Tik),其中每个TijT_{ij}Tij[Tmin⁡,Tmax⁡][T_{\min}, T_{\max}][Tmin,Tmax]内随机生成。同时,初始化每个粒子的速度vi\mathbf{v}_ivi

步骤二:定义目标函数(适应度函数)

对每个粒子对应的阈值组,将图像分割为k+1k+1k+1个灰度区域,并计算 Otsu 法和最小交叉熵目标函数值。

步骤三:粒子位置与速度更新(MOPSO 核心)

在每一代迭代中,每个粒子根据自身历史最优位置(localbest\text{localbest}localbest)和从外部存档(保存当前找到的 Pareto 非支配解集)中选出的全局引导者(globalbest\text{globalbest}globalbest)来更新其速度vi\mathbf{v}_ivi和位置xi\mathbf{x}_ixi

速度更新公式:
vi(t)=wvi(t−1)+C1r1(localbest(t)−xi(t−1))+C2r2(globalbest(t)−xi(t−1)) \mathbf{v}_i(t) = w \mathbf{v}_i(t-1) + C_1 r_1 (\text{localbest}(t) - \mathbf{x}_i(t-1)) + C_2 r_2 (\text{globalbest}(t) - \mathbf{x}_i(t-1))vi(t)=wvi(t1)+C1r1(localbest(t)xi(t1))+C2r2(globalbest(t)xi(t1))

其中www为惯性权重,C1C_1C1C2C_2C2为加速常数,r1r_1r1r2r_2r2[0,1][0,1][0,1]内的随机向量。

位置更新公式:
xi(t+1)=xi(t)+vi(t+1)\mathbf{x}_i(t+1) = \mathbf{x}_i(t) + \mathbf{v}_i(t+1)xi(t+1)=xi(t)+vi(t+1)

更新后,确保位置分量(阈值)仍位于[Tmin⁡,Tmax⁡][T_{\min}, T_{\max}][Tmin,Tmax]内。

步骤四:外部存档维护与 Pareto 前沿提取

每一代结束后,评估所有粒子的目标函数值,更新外部存档:仅保留那些不被其他任何解支配的解(即对于两个目标函数,不存在另一个解在至少一个目标上更优且另一个目标上不差)。存档大小有限,通过聚类等方式保持解的多样性。最终,存档中的解集即为算法找到的Pareto 最优前沿,其中的每个解对应一组能平衡区域大小均匀性与区域内部一致性的阈值组合。

步骤五:输出与分割

用户可从 Pareto 最优解集中根据需求选择一个或多个阈值组,用于对原图像进行最终的多级阈值分割,得到划分为不同灰度区域的最终结果。

3 实验结果




4 参考文献

[1] Coello C A C, Pulido G T, Lechuga M S. Handling multiple objectives with particle swarm optimization[J]. IEEE Transactions on evolutionary computation, 2004, 8(3): 256-279.
[2] 卞乐, 霍冠英, 李庆武. 基于 Curvelet 变换和多目标粒子群的混合熵 MRI 图像多阈值分割[J]. 计算机应用, 2016, 36(11):3188-3195.
[3] Maryam H, Mustapha A, Younes J. A multilevel thresholding method for image segmentation based on multiobjective particle swarm optimization[C]//2017 International Conference on Wireless Technologies, Embedded and Intelligent Systems (WITS). IEEE, 2017: 1-6.
[4] Naderi Boldaji M R, Hosseini Semnani S. Color image segmentation using multi-objective swarm optimizer and multi-level histogram thresholding[J]. Multimedia Tools and Applications, 2022, 81(21): 30647-30661.
[5] Kanadath A, Angel Arul Jothi J, Urolagin S. Multilevel multiobjective particle swarm optimization guided superpixel algorithm for histopathology image detection and segmentation[J]. Journal of Imaging, 2023, 9(4): 78.

5 改进方向

  • 改进多目标粒子群算法,然后在阈值分割领域进行应用。
  • 改进阈值分割函数获取图像不同维度的特征(参考文献 3),然后应用多目标粒子群算法获取阈值。
  • 不同领域图像数据集处理。面向不同领域图像的特征,设计不同的阈值分割函数,然后应用多目标粒子群算法获取阈值(例如医学图像分割领域,参考文献 2 和 5)。
  • 彩色图像处理(参考文献 4)。
  • 将优化算法推广至多目标领域。

博主可辅助上述 2-4 点的算法改进,1 和 5 需具备大量数学基础,从头到尾推导明白优化算法的全过程,博主怕误人子弟。

6 MATLAB 代码

代码中包含详尽的注释!

http://www.jsqmd.com/news/120117/

相关文章:

  • .net 8使用autofac以及.net core自带的注入
  • 完整教程:零基础入门C语言之C语言实现数据结构之单链表
  • Hive 3.x 建表指定分桶,但load data后失效的原因
  • GSoC 成果公布!印度开发者为 DolphinScheduler 引入通用 OIDC 认证,实现无缝安全访问
  • 【python大数据毕设实战】哮喘患者症状数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
  • 【01-02】
  • 【开题答辩全过程】以 基于微信小程序的糖尿病居家健康管理实用的系统为例,包含答辩的问题和答案
  • Qt 源码阅读随笔
  • 2025 我用 Sysinternals 打通 Windows 排障“证据链”:开机慢 / 安装失败 / 磁盘暴涨(三个真实案例复盘)
  • 基于java的SpringBoot/SSM+Vue+uniapp的宠物综合服务平台的详细设计和实现(源码+lw+部署文档+讲解等)
  • [20251219]测试sql语句子光标的执行性能2(21c).txt
  • 面向轻量级智能体的模型蒸馏方法研究-大规模预训练模型知识迁移机制分析
  • 非遗万象图前端开发
  • 不同场景 Linux 性能调优参数配置模板
  • Redis 零基础到进阶,Redis 哨兵监控,笔记63-73
  • 大学生必备:8个免费AI论文工具,告别熬夜搞定论文效率飙升100% - 麟书学长
  • 9 个降AI率工具,MBA 必备避坑指南
  • 用 .NET MAUI 10 + VS Copilot 从 0 开发一个签到 App(三)
  • 上海埃飞电子科技有限公司:探寻国内顶尖狭缝涂布机加工厂的卓越之道 - 五色鹿五色鹿
  • Redis多实例部署与主从架构
  • 【linux内核】Linux内核的同步机制
  • (100分)- 部门人力分配(Java JS Python C)
  • npm2100 的电源转换能力优点
  • [20251218]测试sql语句子光标的执行性能(21c).txt
  • 常用 Linux 性能调优参数速查表
  • Scikit-image 实战指南:10 个让 CV 模型更稳健的预处理技巧
  • AgentScope深入分析-LLMMCP
  • (100分)- 测试用例执行计划(Java JS Python C)
  • Redis高级特性与生产环境部署
  • 详细介绍:正则表达式超详细版