• 【图像分割】基于萤火虫优化的半监督谱聚类彩色图像分割方法(Matlab代码实现)


    目录

    0 概述

    1 萤火虫算法

    1.1 思想来源

    1.2 数学模型 

    1.2.1 萤火虫相对荧光亮度

    1.2.2 萤火虫吸引度

    1.2.3 位置更新

    1.3 算法步骤 

    2 基于萤火虫优化的半监督谱聚类彩色图像分割方法 

    3 运行结果

    4 参考文献

    5 Matlab代码实现


    0 概述

    人们依据自然界中其他生物的生活习性以及生活事物中的部分自然现象提出智能优化算法,用来求解函数组合优化最优解的问题。图像阈值分割算法正是广泛应用群智能优化算法的一个分支领域,传统阈值分割算法易受输入的阈值数昌影响。本章引入最小可觉差理论,从视觉对颜色差值寻优出发,不受阈值数目的影响,提出基于萤火虫算法的最小可觉差图像分割方法(JND color image segmentation based on firefly algorithm, FAJND)。本章首先从仿生学优化算法开始介绍,并重点介绍萤火虫算法以及其在图像分割中的应用。

    1 萤火虫算法

    1.1 思想来源

    2008年,剑桥学者 Yang依据萤火虫利用体内荧光素向其他个体传播寻觅食物以及求偶等信息进行交流的行为,提出萤火虫智能优化算法(Firefly Algorithm, FA) /60',此算法是继上述优秀的智能优化算法后又一经典算法,具有高效的收敛速度、便于操作、参数少等优点,被迅速推广应用。随着学者们对优化内容的不断深入、对应用领域的不断扩大,群智能优化算法显然已是活跃在多领域中相同的研究方向,各智能优化算法的模型启发来源都一一对应于自然界的生物的智能行为以及生活中部分自然现象,如图3-1。

    1.2 数学模型 

    在FA 中 , 萤火虫发出光亮的主要目的是作为一个信号系统 , 以吸引其他的萤火虫个体 , 其假设为 : 1) 萤火虫不分性别 , 它将会被吸引到所有其他比它更亮的萤火虫那去 ; 2) 萤火虫的吸引力和亮度成正比 , 对
    于任何两只萤火虫 , 其中一只会向着比它更亮的另一只移动 , 然而 , 亮度是随着距离的增加而减少的 ;3) 如果没有找到一个比给定的萤火虫更亮 , 它会随机移动 。

    如上所述 , 萤火虫算法包含两个要素 , 即亮度和吸引度 . 亮度体现了萤火虫所处位置的优劣并决定其移动方向 , 吸引度决定了萤火虫移动的距离 , 通过亮度和吸引度的不断更新 , 从而实现目标优化 . 从数学角度对萤火虫算法的主要参数进行如下描述 :


    1.2.1 萤火虫相对荧光亮度

                    

    其中 ,I_{0}为萤火虫的最大萤光亮度 , 与目标函数值相关 , 目标函数值越优自身亮度越高 ; \gamma为光强吸收系数 , 荧光会随着距离的增加和传播媒介的吸收逐渐减弱 ; r_{i,j}为萤火虫ij之间的空间距离 。
     

    1.2.2 萤火虫吸引度

                    

    其中 , \beta _{0}为最大吸引度 ; \gamma为光强吸收系数 ;r_{i,j}为萤火虫ij之间的空间距离。

    1.2.3 位置更新

    萤火虫i被吸引向萤火虫j移动的位置更新公式如下式所示 : 

     其中 , x_{i},x_{j}为萤火虫ij所处的空间位置 ; α∈[0,1] 为步长因子 ;rand 为 [0,1] 上服从均匀分布的随机数 。

    1.3 算法步骤 

    (1) 初始化萤火虫算法参数.

    (2) 计算各萤火虫的亮度并排序得到亮度最大的萤火虫位置.

    (3)判断迭代是否结束:判断是否达到最大迭代次数 T ,达到则转(4),否则转(5).

    (4) 输出亮度最大的萤火虫位置及其亮度.

    (5) 更新萤火虫位置:根据式(3)更新萤火虫的位置,对处在最佳位置的萤火虫进行随机扰动,搜索次数增加1 ,转(2),进行下一次搜索.

    2 基于萤火虫优化的半监督谱聚类彩色图像分割方法 

    第三章使用的阈值分割算法,尽管改善了原算法的分割结果,但还存在分害结果中部分粘连的问题。萤火虫算法具有参数设定少、实现简单的特性。有学者提出使用萤火虫算法解决聚类应用于图像分割中的问题(68-70],通过理论阐述以及实验总结出萤火虫算法在处理聚类问题的有效性。本文将萤火虫算法与半监督谱聚类结合,提出萤火虫优化的半监督谱聚类彩色图像分割方法(Semi-spectraclustering based on firefly algorithm with JND color space consistency for imags
    esegmentation,semi-SC-FA)。针对谱聚类算法处理彩色图像分割中对成千上万的像素需要构造相似性,并且在进行特征分解过程中,都需要极大的内存和极高成本硬件要求等问题。本章算法在进行谱聚类相似性构造采用上一章节提出的方式对图像中像素进行选择,选择出一些关键像素进行相似性构造,使用部分像素的勺结果逼近全局结果的方法,最大程度地减少构造出相似度矩阵的规模,使得谱聚类用于图像分割中避免了图像大小的影响,为分割大规模图像提供有效的理论
    依据,并对此算法进行仿真实验,验证了理论的可行性。

    3 运行结果

    部分代码: 

    1. %% 使用聚类的萤火虫算法 (FA) 图像分割
    2. clear;
    3. clc;
    4. warning('off');
    5. %% 加载图像
    6. img=imread('f.jpg');
    7. img=im2double(img);
    8. gray=rgb2gray(img);
    9. gray=imadjust(gray);
    10. % 将图像重塑为矢量
    11. X=gray(:);
    12. %% 启动 FA 聚类
    13. k = 6; % 聚类数
    14. %..............
    15. %% 迭代曲线
    16. figure;
    17. plot(BestRes,'--r','linewidth',1.2);
    18. title('萤火虫算法训练');
    19. xlabel('迭代次数');
    20. ylabel('最优解');
    21. %% 将聚类中心及其索引转换为图像
    22. gray2=reshape(FAlbl(:,1),size(gray));
    23. segmented = label2rgb(gray2);
    24. %% 可视化结果
    25. figure;
    26. subplot(1,2,1);
    27. imshow(img);title('初始图片');
    28. subplot(1,2,2);
    29. imshow(segmented,[]);title('分割图像');

    4 参考文献

    部分理论引用网络文献,如有侵权请联系删除。

    [1]孙源. 基于萤火虫优化可觉差的半监督谱聚类彩色图像分割算法研究[D].陕西师范大学,2019.DOI:10.27292/d.cnki.gsxfu.2019.000075.

    5 Matlab代码实现

  • 相关阅读:
    php服装商城网站毕业设计源码241505
    接口测试-笔记
    集群节点状态监控和flink作业监控
    【leetcode】【剑指offer Ⅱ】058. 日程表
    final关键字
    手把手教程6-2: F460把debug printf功能改到UART1
    【三维目标检测】VoteNet(二)
    app小程序手机端Python爬虫实战10xpath定位方式
    开源图编辑库 NebulaGraph VEditor 的设计思路分享
    ​力扣解法汇总946-验证栈序列
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126817970