基于RGB颜色空间的算法

年份论文题目作者论文内容
1999A statistical approach for real-time robust background subtraction and shadow detectionT Horprasert, D Harwood, LS Davis提出一种颜色模型将亮度色度分开,并运用这种模型提出了一种从静态场景中检测运动物体的算法,该算法能应对光照的改变(阴影/强光)

D Harwood与LS Davis这两个人在2000年写了W4算法KDE算法,在2004,2005年写了CodeBook算法


  • 本文提出的颜色模型: 颜色是由亮度和色度组成的,本文基于RGB颜色空间提出了一种颜色模型分离了亮度和色度。在这里插入图片描述

    设图像上某像素点 i i i E i = [ E R ( i ) , E G ( i ) , E B ( i ) ] {E_i} = [{E_R}(i),{E_G}(i),{E_B}(i)] Ei=[ER(i),EG(i),EB(i)]表示该点背景模型的RGB值, I i = [ I R ( i ) , I G ( i ) , I B ( i ) ] {I_i} = [{I_R}(i),{I_G}(i),{I_B}(i)] Ii=[IR(i),IG(i),IB(i)]表示该像素当前的RGB值。
    下一步要测量 I i {I_i} Ii E i {E_i} Ei之间的偏差,将此偏差分解为亮度偏差和色度偏差。

  • 亮度偏差 α i \alpha_i αi 亮度偏差表示当前像素的亮度与背景模型亮度的偏差,是个标量(非向量),是使下式最小的值 ϕ ( α i ) = ( I i − α i E i ) 2 \phi ({\alpha _i}) = {({I_i} - {\alpha _i}{E_i})^2} ϕ(αi)=(IiαiEi)2
    α i = 1 \alpha_i=1 αi=1表示无差别, α i < 1 \alpha_i<1 αi<1表示当前像素比背景模型暗, α i > 1 \alpha_i>1 αi>1表示当前像素比背景模型亮

  • 色度偏差 C D i C{D_i} CDi 色度偏差表示当前像素的色度与背景模型色度的偏差,定义为点 I i {I_i} Ii到直线 O E i O{E_i} OEi的距离(通过原点 O O O E i {E_i} Ei的线 O E i {OE_i} OEi称为预期色度线), ∣ ∣ a ⃗ ∣ ∣ ||\vec a|| ∣∣a ∣∣表示该向量的二范数(向量的模)
    C D i = ∣ ∣ I i − α i E i ∣ ∣ C{D_i} = ||{I_i} - {\alpha _i}{E_i}|| CDi=∣∣IiαiEi∣∣


  • 算法思路: 使用N帧静态背景逐像素建立背景模型,将当前帧与背景模型比较,计算亮度偏差和色度偏差,设置合适的阈值,根据阈值将像素点分为前景/背景。
  • 模型初始化: 使用N帧静态背景(不能有移动物体)来建模,每个像素建模为4元组 < E i , s i , a i , b i > < {E_i},{s_i},{a_i},{b_i} > <Ei,si,ai,bi>
    E i {E_i} Ei表示N帧图像RGB的均值, s i {s_i} si表示N帧图像RGB的标准差。 E i = [ μ R ( i ) , μ G ( i ) , μ B ( i ) ] {E_i} = [{\mu _R}(i),{\mu _G}(i),{\mu _B}(i)] Ei=[μR(i),μG(i),μB(i)] s i = [ σ R ( i ) , σ G ( i ) , σ B ( i ) ] {s_i} = [{\sigma _R}(i),{\sigma _G}(i),{\sigma _B}(i)] si=[σR(i),σG(i),σB(i)] a i {a_i} ai表示亮度偏差的均方根, b i {b_i} bi表示色度偏差的均方根。
    计算均方根前要用标准差来归一化RGB,则亮度偏差和色度偏差的公式修改如下: α i = min ⁡ [ ( I R ( i ) − α i μ R ( i ) σ R ( i ) ) 2 + ( I G ( i ) − α i μ G ( i ) σ G ( i ) ) 2 + ( I B ( i ) − α i μ B ( i ) σ B ( i ) ) 2 ] {\alpha _i} = \min \left[ {{{\left( {\frac{{{I_R}(i) - {\alpha _i}{\mu _R}(i)}}{{{\sigma _R}(i)}}} \right)}^2} + {{\left( {\frac{{{I_G}(i) - {\alpha _i}{\mu _G}(i)}}{{{\sigma _G}(i)}}} \right)}^2} + {{\left( {\frac{{{I_B}(i) - {\alpha _i}{\mu _B}(i)}}{{{\sigma _B}(i)}}} \right)}^2}} \right] αi=min[(σR(i)IR(i)αiμR(i))2+(σG(i)IG(i)αiμG(i))2+(σB(i)IB(i)αiμB(i))2]
    C D i = ( I R ( i ) − α i μ R ( i ) σ R ( i ) ) 2 + ( I G ( i ) − α i μ G ( i ) σ G ( i ) ) 2 + ( I B ( i ) − α i μ B ( i ) σ B ( i ) ) 2 C{D_i} = \sqrt {{{\left( {\frac{{{I_R}(i) - {\alpha _i}{\mu _R}(i)}}{{{\sigma _R}(i)}}} \right)}^2} + {{\left( {\frac{{{I_G}(i) - {\alpha _i}{\mu _G}(i)}}{{{\sigma _G}(i)}}} \right)}^2} + {{\left( {\frac{{{I_B}(i) - {\alpha _i}{\mu _B}(i)}}{{{\sigma _B}(i)}}} \right)}^2}} CDi=(σR(i)IR(i)αiμR(i))2+(σG(i)IG(i)αiμG(i))2+(σB(i)IB(i)αiμB(i))2
    a i {a_i} ai b i {b_i} bi 计算公式如下(RMS是指均方根):
    a i = R M S ( α i ) = Σ i = 0 N ( α i − 1 ) 2 N {a_i} = RMS({\alpha _i}) = \sqrt {\frac{{\Sigma _{i = 0}^N{{({\alpha _i} - 1)}^2}}}{N}} ai=RMS(αi)=NΣi=0N(αi1)2 b i = R M S ( C D i ) = Σ i = 0 N ( C D i ) 2 N {b_i} = RMS(C{D_i}) = \sqrt {\frac{{\Sigma _{i = 0}^N{{(C{D_i})}^2}}}{N}} bi=RMS(CDi)=NΣi=0N(CDi)2
  • 前景/背景的分类: 根据亮度偏差 α i \alpha_i αi和色度偏差 C D i C{D_i} CDi将像素点 i 分为4类:前景,原始背景,阴影下的背景,强光下的背景。
    不同像素的 α i \alpha_i αi C D i C{D_i} CDi有着不同的分布,为使一个阈值作用于所有像素点,需要归一化 α i \alpha_i αi C D i C{D_i} CDi
    α ^ i = α i − 1 a i {\widehat \alpha _i} = \frac{{{\alpha _i} - 1}}{{{a_i}}} α i=aiαi1 C D ^ i = C D i b i {\widehat {CD}_i} = \frac{{C{D_i}}}{{{b_i}}} CD i=biCDi

注: α ^ i {\widehat \alpha _i} α i为正表示当前像素比背景模型亮, α ^ i {\widehat \alpha _i} α i为负表示当前像素比背景模型暗。 C D ^ i {\widehat {CD}_i} CD i越大表示色度偏差越大。

分类条件
前景 C D ^ i > τ C D {\widehat {CD}_i} > {\tau _{CD}} CD i>τCD
原始背景 C D ^ i < τ C D , τ α 2 < α ^ i < τ α 1 {\widehat {CD}_i} < {\tau _{CD}},{\tau _{\alpha 2}} < {\hat \alpha _i} < {\tau _{\alpha 1}} CD i<τCD,τα2<α^i<τα1
阴影下的背景 C D ^ i < τ C D , α ^ i < τ α 2 {\widehat {CD}_i} < {\tau _{CD}},{\hat \alpha _i} < {\tau _{\alpha 2}} CD i<τCD,α^i<τα2
强光下的背景 C D ^ i < τ C D , α ^ i > τ α 1 {\widehat {CD}_i} < {\tau _{CD}},{\hat \alpha _i} > {\tau _{\alpha 1}} CD i<τCD,α^i>τα1

由于暗像素有很低的RGB值(接近原点),导致 α ^ i {\widehat \alpha _i} α i C D ^ i {\widehat {CD}_i} CD i都很小,所以始终被分类为阴影下的背景。为解决该问题,为 α ^ i {\widehat \alpha _i} α i引入了一个最低界限 τ α l o {\tau _{\alpha lo}} ταlo,修改后的条件如下

分类条件
前景 C D ^ i > τ C D {\widehat {CD}_i} > {\tau _{CD}} CD i>τCD or  α ^ i < τ α l o {\hat \alpha _i} < {\tau _{\alpha lo}} α^i<ταlo, else
原始背景 τ α 2 < α ^ i < τ α 1 {\tau _{\alpha 2}} < {\hat \alpha _i} < {\tau _{\alpha 1}} τα2<α^i<τα1, else
阴影下的背景 α ^ i < 0 {\hat \alpha _i} < 0 α^i<0, else
强光下的背景otherwise
  • 模型更新: 静态场景,背景模型确定后不再更新。
  • 涉及参数: τ C D {\tau _{CD}} τCD τ α 1 {\tau _{\alpha 1}} τα1 τ α 2 {\tau _{\alpha 2}} τα2 τ α l o {\tau _{\alpha lo}} ταlo,前3个参数是自动选择的。
    在模型初始化的N帧静态背景过程中,建立 α ^ i {\widehat \alpha _i} α i C D ^ i {\widehat {CD}_i} CD i的直方图(N·X·Y个数据,X·Y是图像的大小),然后根据期望的检测率 r 来自动选择这些参数。
    τ C D {\tau _{CD}} τCD是检测率为 r 时直方图里对应的 C D ^ i {\widehat {CD}_i} CD i
    τ α 1 {\tau _{\alpha 1}} τα1是检测率为 r 时直方图对应的 α ^ i {\widehat \alpha _i} α i
    τ α 2 {\tau _{\alpha 2}} τα2是检测率为 (1-r) 时直方图对应的 α ^ i {\widehat \alpha _i} α i
    在这里插入图片描述
  • 改进: 检测出错的主要是那些 b i {b_i} bi很小的点,因为 b i {b_i} bi很小,那么归一化的时候 C D i C{D_i} CDi就会很大,很可能超过阈值,就会被分类为前景。所以给 b i {b_i} bi添加了一个默认最小 b i {b_i} bi,该值的选取过程如下:
    1⃣️ 先将默认最小 b i {b_i} bi设置一个比较小的值,通过N帧静态背景建立好背景模型后,将所有 b i < 默认最小 b i {b_i}<默认最小{b_i} bi<默认最小bi的像素点的 b i {b_i} bi设置为默认最小 b i {b_i} bi,然后把像素点分为两组,一组 b i = 默认最小 b i {b_i}=默认最小{b_i} bi=默认最小bi,一组 b i > 默认最小 b i {b_i}>默认最小{b_i} bi>默认最小bi
    2⃣️ 用这N帧静态背景进行检测,并统计错误率,不断提升默认最小 b i {b_i} bi的值,找到使这两组像素的错误率相同的默认最小 b i {b_i} bi。(图中的交点)
    在这里插入图片描述
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值