Page 130 - 《软件学报》2021年第11期
P. 130
3456 Journal of Software 软件学报 Vol.32, No.11, November 2021
s ⎡ ⎛ ( , )j ⎞ 1 k+ ⎛ ( , )i j ⎞ 1 k− ⎤
t
() =
KA 1 ⎢ ⎜ pi ⎟ + ∑∑ ⎜ p ⎟ ⎥ (11)
2 i= 0 j= 0 ⎢ ⎝ ⎣ P A ⎠ ⎝ P A ⎠ ⎥ ⎦
( , )j ⎞
() =
KB 1 L− 1 L− 1 ⎡ ⎢ ⎛ ⎜ pi ⎟ 1 k+ + ∑∑ ⎛ ⎜ p ( , )i j ⎞ ⎟ 1 k− ⎤ ⎥ (12)
2 it=+ 1 j s= + ⎢ ⎝ 1 ⎣ P B ⎠ ⎝ P B ⎠ ⎥ ⎦
其中,k 是 K 熵指数,为 0~1 之间的常数.二维 K 熵阈值选取函数 S(t,s)的最大值即为最优值,则二维 K 熵的最
∗
*
*
∗
佳阈值向量(t ,s )取为 ( , )ts = argmax{ ( , )}.S t s
0 ts≤ , ≤ L− 1
算法 2 给出了二维 K 熵阈值分割算法的实现过程.
算法 2. 二维 K 熵阈值分割算法.
1. 读入图像.
2. 计算图像二维直方图,并得到联合概率 p(i,j).
3. 按照公式(7)计算图像目标类 A 和背景类 B 的先验概率 P A 和 P B .
p (, )ij p (, )ij
4. 得到图像目标类 A 的概率分布 和背景类 B 的概率分布 .
P A P B
*
*
5. 根据二维 K 熵阈值选取函数(8)计算该图像的最大二维 K 熵值和最佳阈值向量(t ,s ).
*
*
6. 根据最佳阈值向量(t ,s )对图像进行分割.
分割后二值图像定义为
⎧ ⎪ 0, ( , )f xy < t ∗ and ( , )g xy < s ∗
= ⎨ (13)
F ∗
ts , ∗
⎪ ⎩ 1, other
2 一种改进的天牛须优化算法(NBAS)
本文设计了一种改进的天牛须优化算法(NBAS):首先将传统天牛须算法进行离散化,得到二进制离散天牛
须算法(BBAS);然后利用 BBAS 的全局搜索性,与 BAS 结合,提出了基于二进制离散天牛须算法优化的新型天
牛须算法(NBAS),解决了 BAS 在处理二维 K 熵阈值寻优时,易陷入局部最优的问题;最后,将二维 K 熵阈值分割
与 NBAS 结合,实现最佳阈值寻优.
2.1 二进制离散天牛须搜索算法(BBAS)
为了解决传统 BAS 算法易陷入局部收敛的问题,本文先将原始 BAS 算法拓展为二进制离散天牛须算法
T
(BBAS).在 BBAS 算法中,天牛代表一个可能解.设 x′=(x 1 ,x 2 ,…,x n ) 为 n 维搜索空间的一只天牛,也代表优化问题
的一个可能解,对搜索空间的每一维选择合适的编码长度进行二进制编码,假设天牛 x′的每一维 x i 编码后的长
T
度为 g,取 m=n×g,二进制化后有:x′=(a 1 ,a 2 ,…,a m ) ,a i ∈{0,1}.
设天牛 x′左、右须位置的二进制表示分别为 x′ l (a a 2 l ,...,a lm ) ,x′ = T r = (a a r 2 ,...,a rm ) .天牛的速度项 v′也保
T
,
,
1 l
1 r
持与天牛 x′相同的二进制编码总位数: v′ (, ,...,v v′ = 1 ′ 2 v′ m ) ,xbest′为天牛当前历史最优位置.
T
为了有效控制天牛的速度变化对天牛位置更新的影响,在天牛速度项 v′的更新过程中引入惯性因子来调
节对自身当前速度的继承量;同时考虑自身左、右须的信息来动态地调整飞行方向,进而提高天牛在迭代后期
的全局搜索能力.天牛的速度项 v′的迭代更新公式取为
×
v′ ω × v′ = + c × 1 step dir sign (T′ × l − T r ) ′ (14)
其中,c 1 为正常数;step 为当前迭代的迭代步长,可由公式(4)计算得到;dir 为公式(1)定义的 m 维归一化随机向量;
, ′′ 为适应度值;ω为惯性因子.根据文献[20]中的分析,ω越大,表示全局搜索性越强;ω越小,表示局部搜索性越
TT r
l
强.这里,取ω为随着迭代次数增加线性递减的常数:
ω=ω max −(ω max −ω min )×e/Max_iter (15)
其中,e 为当前迭代数,Max_iter 为最大迭代数,ω max 和ω min 分别为惯性因子的最大值和最小值.随着惯性因子ω的