《机器人建模和控制》第十一章计算机视觉之自动阈值选择

编程入门 行业动态 更新时间:2024-10-08 10:51:22

《机器人建模和控制》第十一章计算机视觉之自动<a href=https://www.elefans.com/category/jswz/34/1771248.html style=阈值选择"/>

《机器人建模和控制》第十一章计算机视觉之自动阈值选择

大津算法

书本第十一章第三节所讲解的自动阈值选择的算法又叫大津算法。大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出。从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。
其思想如下
它是按图像的灰度特性,将图像分成背景和前景两部分。因方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。大津算法二值化图如下

算法步骤如下:

  1. 我们假定选择的阈值为 z t z_t zt​。图像像素灰度小于 z t z_t zt​的像素是背景,图像像素灰度大于 z t z_t zt​的像素是前景(即物体)。这就将图像中的像素分成了两个组别。
  2. 我们定义条件均值和方差。条件均值 q i ( z t ) q_i(z_t) qi​(zt​)表示图像中某个像素在阈值为 z t z_t zt​的条件下属于第 i i i组的概率。 i = 0 i=0 i=0表示背景组, i = 1 i=1 i=1表示前景组。
    q 0 ( z t ) = ∑ z = 0 z t H [ z ] N r o w s × N c o l s , q 1 ( z t ) = ∑ z = z t + 1 N − 1 H [ z ] N r o w s × N c o l s q_0(z_t)=\frac{\sum_{z=0}^{z_t}H[z]}{N_{rows}\times N_{cols}},\quad q_1(z_t)=\frac{\sum_{z=z_t+1}^{N-1}H[z]}{N_{rows}\times N_{cols}} q0​(zt​)=Nrows​×Ncols​∑z=0zt​​H[z]​,q1​(zt​)=Nrows​×Ncols​∑z=zt​+1N−1​H[z]​
    均值为
    μ i = ∑ z = 0 N − 1 z H i [ z ] ∑ z = 0 N − 1 H i [ z ] = ∑ z = 0 N − 1 z H i [ z ] / ( N r o w s × N c o l s ) ∑ z = 0 N − 1 H i [ z ] / ( N r o w s × N c o l s ) \mu_i=\sum_{z=0}^{N-1}z\frac{H_i[z]}{\sum_{z=0}^{N-1}H_i[z]}=\sum_{z=0}^{N-1}z\frac{H_i[z]/(N_{rows}\times N_{cols})}{\sum_{z=0}^{N-1}H_i[z]/(N_{rows}\times N_{cols})} μi​=z=0∑N−1​z∑z=0N−1​Hi​[z]Hi​[z]​=z=0∑N−1​z∑z=0N−1​Hi​[z]/(Nrows​×Ncols​)Hi​[z]/(Nrows​×Ncols​)​
    我们可以将两个组的条件均值写为
    μ 0 ( z t ) = ∑ z = 0 z t z P ( z ) q 0 ( z t ) , μ 1 ( z t ) = ∑ z = z t + 1 N − 1 z P ( z ) q 1 ( z t ) \mu_0(z_t)=\sum_{z=0}^{z_t}z\frac{P(z)}{q_0(z_t)},\quad \mu_1(z_t)=\sum_{z=z_t+1}^{N-1}z\frac{P(z)}{q_1(z_t)} μ0​(zt​)=z=0∑zt​​zq0​(zt​)P(z)​,μ1​(zt​)=z=zt​+1∑N−1​zq1​(zt​)P(z)​
    同理,方差可以写为
    σ 0 2 ( z t ) = ∑ z = 0 z t ( z − μ 0 ( z t ) ) 2 P ( z ) q 0 ( z t ) σ 1 2 ( z t ) = ∑ z = z t + 1 N − 1 ( z − μ 1 ( z t ) ) 2 P ( z ) q 1 ( z t ) \begin{aligned} \sigma_0^2(z_t)&amp;=\sum_{z=0}^{z_t}(z-\mu_0(z_t))^2\frac{P(z)}{q_0(z_t)} \\ \sigma_1^2(z_t)&amp;=\sum_{z=z_t+1}^{N-1}(z-\mu_1(z_t))^2\frac{P(z)}{q_1(z_t)} \end{aligned} σ02​(zt​)σ12​(zt​)​=z=0∑zt​​(z−μ0​(zt​))2q0​(zt​)P(z)​=z=zt​+1∑N−1​(z−μ1​(zt​))2q1​(zt​)P(z)​​
  3. 由于前景和背景像素数目占总像素比重不同,我们对二者方差加权求和,得到组内方差。即 σ w 2 ( z t ) = q 0 ( z t ) σ 0 2 ( z t ) + q 1 ( z t ) σ 1 2 ( z t ) \sigma_w^2(z_t)=q_0(z_t)\sigma_0^2(z_t)+q_1(z_t)\sigma_1^2(z_t) σw2​(zt​)=q0​(zt​)σ02​(zt​)+q1​(zt​)σ12​(zt​)
    根据大津算法,我们的终极目标就是求使得 σ w 2 ( z t ) \sigma_w^2(z_t) σw2​(zt​)最小的阈值 z t z_t zt​。
    易知组内方差求解复杂,根据 σ 2 = σ w 2 + σ b 2 \sigma^2=\sigma_w^2+\sigma_b^2 σ2=σw2​+σb2​,其中 σ 2 \sigma^2 σ2为常数,不由 z t z_t zt​选择的不同而改变。则 σ w 2 \sigma_w^2 σw2​最小,则意味着组件方差 σ b 2 \sigma_b^2 σb2​最大。而组间方差求解就简单很多了。
  4. 由式(11.15) σ b 2 = q 0 ( μ 0 − μ ) 2 + q 1 ( μ 1 − μ ) 2 \sigma_b^2=q_0(\mu_0-\mu)^2+q_1(\mu_1-\mu)^2 σb2​=q0​(μ0​−μ)2+q1​(μ1​−μ)2
    由 q 1 = 1 − q 0 q_1=1-q_0 q1​=1−q0​和 μ = q 1 μ 0 + q 1 μ 1 \mu=q_1\mu_0+q_1\mu_1 μ=q1​μ0​+q1​μ1​,我们可以将上式进一步写成 σ b 2 = q 0 ( 1 − q 0 ) ( μ 0 − μ 1 ) 2 \sigma_b^2=q_0(1-q_0)(\mu_0-\mu_1)^2 σb2​=q0​(1−q0​)(μ0​−μ1​)2
    该式在搜索最佳阈值 z t z_t zt​时,有许多计算可以重复使用,故可以写成增量的形式。其中
    q 0 ( z t + 1 ) = ∑ z = 0 z t + 1 P ( z ) = P ( z t + 1 ) + q 0 ( z t ) q_0(z_t+1)=\sum_{z=0}^{z_t+1}P(z)=P(z_t+1)+q_0(z_t) q0​(zt​+1)=z=0∑zt​+1​P(z)=P(zt​+1)+q0​(zt​)
    μ 0 ( z t + 1 ) = ∑ z = 0 z t + 1 z P ( z ) q 0 ( z t + 1 ) = ( z t + 1 ) P ( z t + 1 ) p 0 ( z t + 1 ) + q 0 ( z t ) q 0 ( z t + 1 ) μ 0 ( z t ) \begin{aligned} \mu_0(z_t+1)&amp;=\sum_{z=0}^{z_t+1}z\frac{P(z)}{q_0(z_t+1)} \\ &amp;=\frac{(z_t+1)P(z_t+1)}{p_0(z_t+1)}+\frac{q_0(z_t)}{q_0(z_t+1)}\mu_0(z_t) \end{aligned} μ0​(zt​+1)​=z=0∑zt​+1​zq0​(zt​+1)P(z)​=p0​(zt​+1)(zt​+1)P(zt​+1)​+q0​(zt​+1)q0​(zt​)​μ0​(zt​)​
    μ 1 ( z t + 1 ) = μ − q 0 ( z t + 1 ) μ 0 ( z t + 1 ) q 1 ( z t + 1 ) = μ − q 0 ( z t + 1 ) μ 0 ( z t + 1 ) 1 − q 0 ( z t + 1 ) \begin{aligned} \mu_1(z_t+1)&amp;=\frac{\mu-q_0(z_t+1)\mu_0(z_t+1)}{q_1(z_t+1)}=\frac{\mu-q_0(z_t+1)\mu_0(z_t+1)}{1-q_0(z_t+1)} \end{aligned} μ1​(zt​+1)​=q1​(zt​+1)μ−q0​(zt​+1)μ0​(zt​+1)​=1−q0​(zt​+1)μ−q0​(zt​+1)μ0​(zt​+1)​​
    所以在迭代完所有的可能阈值选项,选择使组间方差最大的 z t z_t zt​为阈值。这就是自动选择阈值中的大津算法的全部思想。

参考链接:
=aladdin

.html

更多推荐

《机器人建模和控制》第十一章计算机视觉之自动阈值选择

本文发布于:2024-02-16 17:53:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690970.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:阈值   建模   一章   机器人   视觉

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!