二维最大熵阈值分割算法[引用]杜峰,施文康,邓勇等:《一种快速红外图像分割方法》
1. 二维最大熵阈值分割
熵是平均信息量的表征。
二维最大熵法是基于图像二维直方图。
图像二维直方图定义如下:
N
M n P j i j i ⨯=
,,
其中N M ⨯表示图像大小,j i n ,表示图像灰度值为i ,邻域灰度平均值为j 的像素个数。
通常二维直方图的平面示意图可以用下图1表示:
其中区域1和2表示背景和目标像素,区域3和4通常表示边界和噪声信息。
阈值向量(t ,s ),t 表示灰度值,s 表示像素邻域均值(通常是8邻域)。
对于L 个灰度级的图像,设在阈值(t,s)定义区域1和2的概率P1,P2:
∑∑-=-==
101
,1s i t j j
i P
P ,∑∑-=-==11
,2L s i L t
j j i P P
定义二维离散熵H 的一般表示:
∑∑-
=i
j
j
i j
i P P
H ,,lg
对各区域概率j i P ,进行归一化处理可得区域1的二维熵:
11)1lg(1lg 1)1(101
,,P H P P P P P H s i t j j i j
i +=⎪⎪⎭
⎫ ⎝⎛⎪⎪⎭⎫ ⎝
⎛-
=∑∑-=-= 同理区域2的二维熵:
2
2
)2lg()2(P H P H +=
其中,H 1,H 2为:
∑∑-=-=-
=101
,,lg 1s i t j j
i j
i P P
H ,∑∑-=-=-=11
,,lg 2L s i L t
j j i j i P P H
那么整个图像中目标和背景熵之和的函数
)2()1(),(H H t s +=φ
根据最大熵原则,存在最佳的阈值向量满足条件:
图1 二维直方图平面示意图
灰阶
)},(max{),(t s t s φφ=**
图2显示了一幅图像的二维直方图说明了背景和目标的主要分布情况,其中图2(b)横坐标表示邻域的均值,纵坐标表示灰度值分布:
2. 微粒群寻优算法(PSO )
PSO 最早由Kenredy 和Eberhart 于1995年提出。
PSO 把优化问题的潜在解都当做解空间的粒子,所有粒子都有一个适应值(适应值由被优化函数决定),每个粒子还有一个速度决定它们飞翔的方向和距离。
然后粒子们就追随当前的最优粒子在解空间中搜索,初始化为一群随机粒子(随机解)然后通过迭代找到最优解。
最后在每一次迭代中粒子通过跟踪两个极值来更新自己,第一个就是粒子本身所找到的最优解,称为个体极值;另一个极值是整个种群目前找到的最优解,称为全局极值。
本文的目标是要找到满足最大熵原则的最优解()**t s ,,下面以图文方式解释PSO 算法步骤原理:
第1步:第1次迭代→如图3在解空间有效范围内())255,0(rand );255,0(rand ∈∈t s 选定m 个随机解(即粒子)并初始化,如:),(11t s 、),(22t s …),(i i t s …),(m m t s 其中()**t s ,为最优解位置向量。
① 计算每个粒子的适应度,即目标函数的熵),(i i t s φ,m i ...2,1=。
均值
灰度值
*s
*t
),(33t s
),(m m t s
),(j i t s
),(11t s
),(22t s
图3 随机初始化的粒子群位置
图2 目标与背景的二维直方图分布情况
(a) 原始红外图 (b) 二维直方图的平面分布
(c) 二维直方图的空间分布
② 计算当前粒子群的全局最优解(熵)及其对应位置:
}...2,1),,(max{m i t s QS i i ==φ
}...2,1),,{(optimal _m i t s QP YOU i i ==
③ 计算n 次迭代后每个粒子自身找到的最优解(熵)及其位置:
}i ...2,1;...2,1),,(max{_e D n m i t s S YOU n i n i i ===φ;}i ...2,1;...2,1),,{(optimal _e D n m i t s P YOU n i n i i ===
其中n 表示迭代次数,Die 表示最大迭代次数。
首次迭代(n =1)时单个粒子最优值即为其初始化时的随机值。
第2步:第n 次迭代→如图4更新粒子速度向量和位置,粒子运动服从如下方程:
)ˆ(22)(111n i
n n n i n i n n i n i P S r c P S r c V w V -⋅⋅+-⋅⋅+⋅=+ n i n i n i P V P +=++11
其中n r 1、n r 2为随机数,服从(0,1)之间的均分布,1c 、2c 为学习因子,通常221==c c ,w 是惯性系数。
i P 表示第i 个粒子的位置向量(即),(i i t s ),i V 表示第i 个粒子的运动速度,i S 表示第i 个
粒子自身的最优位置。
i
S ˆ表示整个粒子群全局最优位置。
3. 实验结果
如图5显示了二维最大熵阈值分割的结果。
其中图2(b)也就是图5(a)对应的二维直方图分布。
如何在图2(b)找到最优的阈值向量()**t s ,使
(a) 原始红外图 图5 二维最大熵阈值分割结果
(b) 阈值分割后的二值化图
图4 粒子群的运动速度和更新位置
均值
灰度值0
*t
),(33t s
),(m m t s
),(j i t s
),(11t s
),(22t s
得目标图像熵最大,一个最直接的方法就是穷尽搜索法。
穷尽搜索法无目的性而且计算量大,需要进行256×256次计算。
本文采用PSO 算法搜索最佳阈值,在实验中,令粒子群为15个,迭代次数30,c 1=c 2=2,w =0.35。
图6显示了粒子群在每次迭代中达到的局部最优熵。
完成整个迭代寻优过程粒子群找到的全局最优阈值向量为(105,103)全局最优熵1484.5)103,105(=φ。
从图6可以看出:第14代的粒子群局部最优熵就达到了5.1484,说明了迭代到第14代就至少有一个粒子寻找到了全局最优位置。
从第16代到30代之间,粒子群局部最优熵一直保持5.1484,说明此时粒子群中至少且总有一个粒子到达了全局最优位置。
因此整个迭代过程中,寻找到全局最优位置PSO 的计算量为16×15次。
图 7 首次迭代时初始化的随机粒子分布
第1次迭代
0501001502002503000
100
200300
s
t
图6 粒子群在各次迭代中的局部最优熵
图7显示了在首次迭代时初始化的15个随机粒子位置分布图,其中横坐标表示均值(s ),纵坐标表示灰度值(t )。
图8显示了在第14次迭代后粒子群的位置分布以及各个粒子的位置坐标),(i i t s 。
从图8可以看出第6个粒子首次寻找到全局最优位置(105,103)。
图8 第14次迭代粒子群的位置分布及其位置坐标值
图9显示了第30次迭代后粒子群的分布情况。
从图中可以看出此时大部分粒子都收敛于全局最优位置。
图9 第30次迭代粒子群的位置分布及其位置坐标值
总之,PSO 算法中的粒子群从初始随机位置经过各次迭代过程遵照粒子运动方程向着全局最优位置靠拢。