【论文复现】基于Otsu方法的多阈值图像分割改进鲸鱼优化算法

目录

    • 1.摘要
    • 2.鲸鱼优化算法WOA原理
    • 3.改进策略
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取


在这里插入图片描述

1.摘要

本文提出了一种基于Otsu方法的多阈值图像分割改进鲸鱼优化算法(RAV-WOA)。RAV-WOA算法能够在分割灰度图像和彩色图像时,自动选择最优阈值,并确保高效性和高质量。本文引入了反向学习策略来优化鲸鱼种群的初始化,提升了初始种群的质量。此外,针对全局搜索能力和局部开发能力的平衡问题,同时加入了自适应加权策略会根据适应度值和迭代次数进行动态调整。

2.鲸鱼优化算法WOA原理

SCI二区|鲸鱼优化算法(WOA)原理及实现

3.改进策略

自适应加权策略

本文提出了一种可变自适应权重机制,用于动态调整领头鲸的最优位置。当领头鲸远离最优位置时,自适应权重会对其产生较强的扰动;而当领头鲸接近最优位置时,扰动则会减弱。在鲸鱼搜索猎物时,首先根据适应度值对个体鲸鱼进行排序,并将当前处于最佳和最差位置的鲸鱼划分为三等份,得到适应度阈值 s 1 s_1 s1 s 2 s_2 s2,其中 s 1 < s 2 s_1<s_2 s1<s2。然后,当前鲸鱼的位置与这两个阈值 s 1 s_1 s1 s 2 s_2 s2进行比较,从而实现动态的自适应位置更新。
ω = { ω a v g + ( ω a v g − ω min ⁡ ) f i − s 1 f min ⁡ − s 1 f i < s 1 τ ( t − t max ⁡ ϵ − t max ⁡ ) + φ ( f i − s 1 s 2 − f i ) s 1 < f i < s 2 ω a v g − ( ω max ⁡ − ω a v g ) ( f i − s 2 f max ⁡ − s 2 ) f i > s 2 \omega= \begin{cases} \omega_{avg}+(\omega_{avg}-\omega_{\min})\frac{f_i-s_1}{f_{\min}-s_1} & \quad f_i<s_1 \\ \tau(\frac{t-t_{\max}}{\epsilon-t_{\max}})+\varphi(\frac{f_i-s_1}{s_2-f_i}) & \quad s_1<f_i<s_2 \\ \omega_{avg}-(\omega_{\max}-\omega_{avg})(\frac{f_i-s_2}{f_{\max}-s_2}) & \quad f_i>s_2 & \end{cases} ω= ωavg+(ωavgωmin)fmins1fis1τ(ϵtmaxttmax)+φ(s2fifis1)ωavg(ωmaxωavg)(fmaxs2fis2)fi<s1s1<fi<s2fi>s2

自适应权重策略被应用于鲸鱼的螺旋狩猎行为和周围的狩猎行为,鲸鱼位置更新:
{ X ( t + 1 ) = ω ⋅ X ( t ) − A ⋅ D i f p ≤ a t h X ( t + 1 ) = D ′ ⋅ e b l ⋅ cos ⁡ ( 2 π l ) + ω ⋅ X ∗ ( t ) i f p > a t h \begin{cases} X(t+1) & =\omega\cdot X(t)-A\cdot D\quad ifp\leq ath \\ \\ X(t+1) & =D^{\prime}\cdot e^{bl}\cdot\cos(2\pi l)+\omega\cdot X^*(t)\quad ifp>ath \end{cases} X(t+1)X(t+1)=ωX(t)ADifpath=Deblcos(2πl)+ωX(t)ifp>ath

水平交叉和垂直交叉策略

在鲸鱼优化算法(WOA)中,处于最优位置的鲸鱼对整个种群起着引导作用。如果此时最优位置的鲸鱼陷入局部最优解,其他鲸鱼个体将会向局部最优解聚集,从而导致种群多样性的降低。为了平衡算法的全局开发能力与局部搜索能力,引入了水平交叉和垂直交叉策略。水平交叉策略允许种群在搜索空间的边界时增强算法的全局搜索能力,而垂直交叉策略则允许种群在不同维度之间进行交叉操作,帮助种群在某一维度上跳出局部最优解。通过比较水平交叉和垂直交叉策略产生的最优解与其父代个体,选择较优的结果作为算法的最优解。
E i , d h c = u 1 ⋅ Q i , d + ( 1 − u 1 ) ⋅ Q j , d + v 1 ⋅ ( Q i , d − Q j , d ) E j , d h c = u 2 ⋅ Q j , d + ( 1 − u 2 ) ⋅ Q i , d + v 2 ⋅ ( Q j , d − Q i , d ) \begin{aligned} E_{i,d}^{hc} & =u_1\cdot Q_{i,d}+(1-u_1)\cdot Q_{j,d}+v_1\cdot(Q_{i,d}-Q_{j,d}) \\ E_{j,d}^{hc} & =u_2\cdot Q_{j,d}+(1-u_2)\cdot Q_{i,d}+v_2\cdot(Q_{j,d}-Q_{i,d}) \end{aligned} Ei,dhcEj,dhc=u1Qi,d+(1u1)Qj,d+v1(Qi,dQj,d)=u2Qj,d+(1u2)Qi,d+v2(Qj,dQi,d)

Q i , d 1 v c = q ⋅ Q i , d 1 + ( 1 − q ) ⋅ Q i , d 2 Q_{i,d_1}^{vc}=q\cdot Q_{i,d_1}+(1-q)\cdot Q_{i,d_2} Qi,d1vc=qQi,d1+(1q)Qi,d2

流程图

在这里插入图片描述

4.结果展示

CEC2019

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图像分割

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.参考文献

[1] Ma G, Yue X. An improved whale optimization algorithm based on multilevel threshold image segmentation using the Otsu method[J]. Engineering Applications of Artificial Intelligence, 2022, 113: 104960.

6.代码获取


http://www.niftyadmin.cn/n/5841113.html

相关文章

【TypeScript】基础:数据类型

文章目录 TypeScript一、简介二、类型声明三、数据类型anyunknownnervervoidobjecttupleenumType一些特殊情况 TypeScript 是JavaScript的超集&#xff0c;代码量比JavaScript复杂、繁多&#xff1b;但是结构更清晰 一、简介 为什么需要TypeScript&#xff1f; JavaScript的…

【大数据技术】教程01:搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell)

搭建完全分布式高可用大数据集群&#xff08;VMwareCentOSFinalShell&#xff09; 资源下载 VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.isoFinalShell 4.5.12 注&#xff1a;请在阅读本篇文章前&#xff0c;将以上资源下载下来。 写在前面 本章主要介…

Elasticsearch 指南 [8.17] | Search APIs

Search API 返回与请求中定义的查询匹配的搜索结果。 http GET /my-index-000001/_search Request GET /<target>/_search GET /_search POST /<target>/_search POST /_search Prerequisites 如果启用了 Elasticsearch 安全功能&#xff0c;针对目标数据流…

【tiktok 国际版抖抖♬♬ __ac_signature算法】逆向分析

一开始的参数是没有X-Bogus和 __ac_signature的 先是加密请求参数得到乱码。最终得到X-Bogus 然后请求参数添加了X-Bogus之后再去生成__ac_signature __ac_signature的生成需要用到X-Bogus

自定义数据集 使用scikit-learn中svm的包实现svm分类

代码&#xff1a; import numpy as np # 导入用于数值计算的库 import matplotlib.pyplot as plt # 导入用于绘图的库# class1_points 和 class2_points 分别定义了两个类别的数据点&#xff0c;二维坐标 class1_points np.array([[1.9, 1.2],[1.5, 2.1],[1.9, 0.5],[1.5, …

影视文件大数据高速分发方案

在当今的数字时代&#xff0c;影视行业的内容创作和传播方式经历了翻天覆地的变化。随着4K、8K高清视频的普及&#xff0c;以及虚拟现实(VR)和增强现实(AR)技术的发展&#xff0c;影视文件的数据量正以前所未有的速度增长。这就要求行业内的参与者必须拥有高效的大数据传输解决…

[Linux]如何將腳本(shell script)轉換到系統管理服務器(systemd service)來運行?

[InfluxDB]Monitor Tem. and Volt of RaspberryPi and Send Message by Line Notify 在Linux中&#xff0c;shell腳本(shell script)常用於運行各種自動化的流程&#xff0c;包含API串接&#xff0c;設置和啟動應用服務等等&#xff0c;腳本語法也相對易學易讀&#xff0c;因此…

Java泛型深度解析(JDK23)

第一章 泛型革命 1.1 类型安全的进化史 前泛型时代的类型转换隐患 代码的血泪史&#xff08;Java 1.4版示例&#xff09;&#xff1a; List rawList new ArrayList(); rawList.add("Java"); rawList.add(Integer.valueOf(42)); // 编译通过// 灾难在运行时爆发…