Bootstrap

基于差分进化算法优化的otsu图像多阈值分割

智能优化算法应用:基于差分进化算法的Otsu图像多阈值分割-附代码


摘要:Otsu 方法是应用最广泛的图像分割法之一,该方法也叫最大类间方法阈值分割法,选择分割阈值的标准是图像的类间方差达到最大或者类内方差最小。Otsu 阈值分割法可以从单阈值扩展到多级阈值分割,多阈值分割图像时采用多个不同的阈值将图像分割为多个不同的区域或目标。将智能算法应用于多阈值的寻找,能大大加快算法的速度。

1.Otsu阈值分割法原理

Otsu 阈值分割法是日本学者 Otsu 提出来的。假设图像大小为 M × N M × N M×N,图像灰度级范围为 [ 0 , L - 1 ] [0,L - 1] 0L1 n i n_i ni为图像灰度级 i i i 的像素点数,灰度级 i i i 出现的概率为: p i = n i / ( M × N ) p_i = n_i /(M × N) pi=ni/(M×N);对于单阈值分割,图像被分割为两类,灰度级为 [ 0 , T ] [0,T] 0T的像素点归为 C 0 C_0 C0 类,灰度级为 [ T + 1 , L - 1 ] [T + 1,L - 1] T+1L1的像素点为 C 1 C_1 C1 类。设 P 0 ( T ) 、 P 1 ( T ) P_0 (T)、P_1 (T) P0(T)P1(T) 分别表示 C 0 C_0 C0 类和 C 1 C_1 C1 类的出现的概率; u 0 ( T ) , u 1 ( T ) u_0 (T),u_1 (T) u0(T)u1(T) 表示 C 0 C_0 C0 类和 C 1 C_1 C1 类的平均灰度级。则有:
P 0 ( T ) = ∑ i = 0 T p i (1) P_0(T)=\sum_{i=0}^{T}p_i\tag{1} P0(T)=i=0Tpi(1)

P 1 ( T ) = ∑ i = T + 1 L − 1 p i = 1 − P 0 ( T ) (2) P_1(T)=\sum_{i=T+1}^{L-1}p_i = 1 - P_0(T)\tag{2} P1(T)=i=T+1L1pi=1P0(T)(2)

u 0 ( T ) = ∑ i = 0 T ( i p i P 0 ( T ) ) (3) u_0(T)=\sum_{i=0}^T(i\frac {p_i}{P_0(T)})\tag{3} u0(T)=i=0T(iP0(T)pi)(3)

u 1 ( T ) = ∑ i = T + 1 L − 1 ( i p i P 1 ( T ) ) (4) u_1(T)=\sum_{i=T+1}^{L-1}(i\frac {p_i}{P_1(T)})\tag{4} u1(T)=i=T+1L1(iP1(T)pi)(4)

图像的平均灰度级表示为:
u = ∑ i = 1 L i p i = P 0 ( T ) u 0 ( T ) + P 1 ( T ) u 1 ( T ) (5) u = \sum_{i=1}^{L}ip_i=P_0(T)u_0(T)+P_1(T)u_1(T)\tag{5} u=i=1Lipi=P0(T)u0(T)+P1(T)u1(T)(5)
图像的类间方差 δ b 2 ( T ) \delta_b^2(T) δb2(T)表示为:
δ b 2 ( T ) = P 0 ( T ) ( u 0 ( T ) − u ) 2 + P 1 ( T ) ( u 1 ( T ) − u ) 2 (6) \delta_b^2(T)=P_0(T)(u_0(T) -u)^2+P_1(T)(u_1(T)-u)^2\tag{6} δb2(T)=P0(T)(u0(T)u)2+P1(T)(u1(T)u)2(6)
图像的类内方差 δ w 2 ( T ) \delta_w^2(T) δw2(T) 表示为
δ w 2 ( T ) = P 0 ( T ) u 0 2 ( T ) + P 1 ( T ) u 1 2 ( T ) (7) \delta_w^2(T)=P_0(T)u_0^2(T)+P_1(T)u_1^2(T)\tag{7} δw2(T)=P0(T)u02(T)+P1(T)u12(T)(7)
当类间方差达到最大时该灰度级为最优分割阈值,即Otsu 阈值:
T ∗ = a r g m a x ( l ≤ T < L ) { δ b 2 ( T ) } (8) T^* = argmax_{(l\leq T<L)} \{\delta_b^2(T) \}\tag{8} T=argmax(lT<L){δb2(T)}(8)
或者当类内方差达到最小时对应的阈值为最优分割阈值:
T ∗ = a r g m i n ( l ≤ T < L ) { δ w 2 ( T ) } (9) T^* = argmin_{(l\leq T<L)} \{\delta_w^2(T) \}\tag{9} T=argmin(lT<L){δw2(T)}(9)
单阈值 Otsu 分割法可以扩展到多级阈值分割法。假设有 n − 1 n-1 n1个阈值 T 1 , T 2 , . . . , T n − 1 T_1,T_2,...,T_{n-1} T1,T2,...,Tn1 将图像分为 n n n类,表示为 C 0 = { 0 , 1 , . . . , T 1 } , . . . . , C n = { T n − 1 + 1 , T n − 1 + 2 , . . . , L − 1 } C_0=\{0,1,...,T_1\},....,C_n=\{T_{n-1}+1,T_{n-1}+2,...,L-1\} C0={0,1,...,T1},....,Cn={Tn1+1,Tn1+2,...,L1},各类出现的概率分别表示为 P 0 , P 1 , . . . , P n − 1 P_0,P_1,...,P_{n-1} P0,P1,...,Pn1,方差表示为 δ 0 2 , δ 1 2 , . . . , δ n − 1 2 \delta_0^2,\delta_1^2,...,\delta_{n-1}^2 δ02,δ12,...,δn12,均值为 u 0 , u 1 , . . . , u n − 1 u_0,u_1,...,u_{n-1} u0,u1,...,un1

则有:
P k = ∑ i = T k T k + 1 − 1 p i (10) P_k = \sum_{i=T_k}^{T_{k+1}-1}p_i\tag{10} Pk=i=TkTk+11pi(10)

u k = 1 P k P k ∑ i = T k T k + 1 − 1 i p i (11) u_k=\frac{1}{P_k}P_k\sum_{i=T_k}^{T_{k+1}-1}ip_i\tag{11} uk=Pk1Pki=TkTk+11ipi(11)

δ k 2 = ∑ i = T k T k + 1 − 1 ( i − u k ) 2 p i P k (12) \delta_k^2=\sum_{i=T_k}^{T_{k+1}-1}(i-u_k)^2\frac{p_i}{P_k}\tag{12} δk2=i=TkTk+11(iuk)2Pkpi(12)

其中 k = 0 , 1 , … , n − 1 ; T 0 = 0 , T n = L k = 0,1,…,n-1;T_0 = 0,T_n = L k=01n1;T0=0Tn=L。则图像的类间方差表示为:
δ b 2 = ∑ i = 0 n − 1 P i δ i 2 (13) \delta_b^2=\sum_{i=0}^{n-1}P_i\delta_i^2\tag{13} δb2=i=0n1Piδi2(13)
多级最优分割阈值:
{ T 1 ∗ , T 2 ∗ , . . . , T n − 1 ∗ } = a r g m a x ( l ≤ T < L ) { δ b 2 } (14) \{T_1^*,T_2^*,...,T_{n-1}^*\} =argmax_{(l\leq T<L)} \{\delta_b^2 \} \tag{14} {T1,T2,...,Tn1}=argmax(lT<L){δb2}(14)
或者:
{ T 1 ∗ , T 2 ∗ , . . . , T n − 1 ∗ } = a r g m i n ( l ≤ T < L ) { δ w 2 } (15) \{T_1^*,T_2^*,...,T_{n-1}^*\} =argmin_{(l\leq T<L)} \{\delta_w^2 \} \tag{15} {T1,T2,...,Tn1}=argmin(lT<L){δw2}(15)

2.基于差分进化优化的多阈值分割

由上述Otsu阈值分割法的原理可知,要得到最终的阈值,需要去寻找阈值,使得类间方差值最大或类内方差值最小。于是可以利用智能优化算法进行阈值的寻优,使得获得最佳阈值。

于是优化的适应度函数就是:
f u n { T 1 ∗ , T 2 ∗ , . . . , T n − 1 ∗ } = a r g m a x ( l ≤ T < L ) { δ b 2 } (14) fun\{T_1^*,T_2^*,...,T_{n-1}^*\} =argmax_{(l\leq T<L)} \{\delta_b^2 \} \tag{14} fun{T1,T2,...,Tn1}=argmax(lT<L){δb2}(14)
设置阈值分割的个数,寻优边界为0到255(因为图像的像素值范围为0-255),设置相应的差分进化算法参数。
差分进化算法原理请参考:网络博客

3.算法结果:

以lena图像为例:

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

4.参考文献:

[1]袁小翠,黄志开,马永力,刘宝玲.Otsu阈值分割法特点及其应用分析[J].南昌工程学院学报,2019,38(01):85-90+97.

5.Matlab代码:

;