发明名称 一种消除阴影的方法
摘要 一种消除阴影的方法,包括以下步骤:(1)建立背景模型;(2)利用减背景法计算当前帧图像与背景的差异,并采用3δ法则进行前景分割;(3)进行背景更新,即更新所匹配模型的均值、方差以及各个模型的权重因子;(4)对第(2)步得到的前景图像进行形态学处理,提取前景中面积较大的团块;(5)对前景二值团块进行标记;(6)逐个判断前景团块是否含有明显阴影;(7)利用HLC颜色空间的颜色一致性进行像素聚类;(8)判断并剔除阴影区域的聚类块。本发明提高了智能监控系统的性能,目标前景区域提取的更准确。
申请公布号 CN102332157B 申请公布日期 2013.04.03
申请号 CN201110160982.7 申请日期 2011.06.15
申请人 湖南领创智能科技有限公司 发明人 夏东
分类号 G06T5/20(2006.01)I;G06T7/00(2006.01)I 主分类号 G06T5/20(2006.01)I
代理机构 北京聿宏知识产权代理有限公司 11372 代理人 吴大建;刘华联
主权项 1.一种消除阴影的方法,其特征在于,包括以下步骤:(1):建立背景模型,将各个像素的概率密度建模为混合高斯模型,利用多帧图像进行背景估计;(2):利用减背景法计算当前帧图像与背景的差异,并采用3δ法则进行前景分割,在这一步要完成目标前景区域的分割,将每个像素按照以下公式进行是否为前景点的判定:<maths num="0001"><![CDATA[<math><mrow><mi>FG</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>BG</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>></mo><mi>Th</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>BG</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&lt;</mo><mi>Th</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>Th=3δ,δ为差图像I-BG的标准差,I表示当前图像,BG表示建立的背景模型,I-BG是广义的一种差,当与背景中某个大概率模型匹配时是当前点与匹配背景模型之差,没有匹配模型时为当前模型与最大概率模型之差;(3):进行背景更新,即更新所匹配模型的均值、方差以及各个模型的权重因子,背景更新的策略是当前像素是前景点时,给予较小的更新因子;(4):对第(2)步得到的前景图像进行形态学处理,提取前景中面积较大的团块,这里采用的形态学算子是闭算子,去除掉前景提取过程中获得的一些独立噪声点;(5):对前景二值团块进行标记,标记算法采用跑长码(Run-length Code)标记方式,接着对每一个团块进行特征提取,包括团块的面积以及横纵坐标的范围,并计算以横纵坐标确定的外接矩形内的前景像素占比,前景像素占比的定义为:<maths num="0002"><![CDATA[<math><mrow><msub><mi>ratio</mi><mi>label</mi></msub><mo>=</mo><mfrac><msub><mi>area</mi><mi>label</mi></msub><mrow><mrow><mo>(</mo><msub><mi>R</mi><mrow><mi>label</mi><mo>,</mo><mi>max</mi></mrow></msub><mo>-</mo><msub><mi>R</mi><mrow><mi>label</mi><mo>,</mo><mi>min</mi></mrow></msub><mo>)</mo></mrow><mrow><mo>(</mo><msub><mi>C</mi><mrow><mi>label</mi><mo>,</mo><mi>max</mi></mrow></msub><mo>-</mo><msub><mi>C</mi><mrow><mi>label</mi><mo>,</mo><mi>min</mi></mrow></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>其中area<sub>label</sub>,R<sub>label,min</sub>,R<sub>label,max</sub>,C<sub>label,min</sub>,C<sub>label,max</sub>,分别代表当前团块的面积,横纵坐标的最小值以及最大值;(6):逐个判断前景团块是否含有明显阴影,依据的信息主要是每一个前景团块的前景像素占比;由于阴影会导致目标区域的前景像素占比降低,因而当一个目标的前景像素占比较低时提取的前景团块中具有目标阴影部分,一般的前景区域都基本是在一个矩形区域内的,而且在监控系统中目标本体的宽度都是差不多一致的,而阴影的加入将改变这种局面,使得各个前景团块的每行前景点数差异较大,由于阴影大都在水平地面上,因而存在阴影的那些行的前景目标点数将较大,将当前帧在每一个前景区域范围内的图像单独取出,并将其由RGB颜色空间转换到HLC颜色空间;RGB颜色空间转换到HLC空间的计算过程如下:(6.1)步:将RGB转换到xyz颜色空间;<maths num="0003"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><mi>x</mi></mtd></mtr><mtr><mtd><mi>y</mi></mtd></mtr><mtr><mtd><mi>z</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0.620</mn></mtd><mtd><mn>0.718</mn></mtd><mtd><mn>0.204</mn></mtd></mtr><mtr><mtd><mn>0.299</mn></mtd><mtd><mn>0</mn><mo>.</mo><mn>578</mn></mtd><mtd><mn>0.144</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.056</mn></mtd><mtd><mn>0.942</mn></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>G</mi></mtd></mtr><mtr><mtd><mi>B</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>(6.2)步:将x,y,z空间转化为p-q空间:p=f(x)-f(y),q=0.4[f(z)-f(y)]上式中:f(α)=11.6α<sup>1/3</sup>-1.6;(6.3)步:将p-q空间转化为s-t空间:s=(a+bcosθ)p,t=(c+dsinθ)q    其中:a=0.880,b=0.966,c=8.025,d=2.558,θ=arctan(p/q);(6.4)步:由s-t空间计算HLC颜色空间;H=arctan(s/t),L=f(y),<img file="FSB00000967343500022.GIF" wi="298" he="94" />(7):利用HLC颜色空间的颜色一致性进行像素聚类;采用Munsell颜色空间是因为HLC表示的颜色空间符合人类视觉的一致性,能够提供一种综合灰度,色调以及色饱和度信息的颜色距离度量DNBS下表是DNBS取值与人类视觉感知的颜色差异对应关系:<img file="FSB00000967343500023.GIF" wi="1855" he="323" />D<sub>NBS</sub>的定义如下:设两点在HLC颜色空间中的颜色索引分别为A(H<sub>1</sub>,L<sub>1</sub>,C<sub>1</sub>)与B(H<sub>2</sub>,L<sub>2</sub>,C<sub>2</sub>),那么他们之间的距离D<sub>NBS</sub>如下式所示:<maths num="0004"><![CDATA[<math><mrow><msub><mi>D</mi><mi>NBS</mi></msub><mrow><mo>(</mo><mi>A</mi><mo>,</mo><mi>B</mi><mo>)</mo></mrow><mo>=</mo><mn>1.2</mn><mo>{</mo><msub><mrow><mn>2</mn><mi>C</mi></mrow><mn>1</mn></msub><msub><mi>C</mi><mn>2</mn></msub><mo>[</mo><mn>1</mn><mo>-</mo><mi>cos</mi><mrow><mo>(</mo><mfrac><mi>&pi;</mi><mn>50</mn></mfrac><mi>&Delta;H</mi><mo>)</mo></mrow><mo>]</mo><mo>+</mo><msup><mrow><mo>(</mo><mi>&Delta;C</mi><mo>)</mo><mo>C</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mn>4</mn><mi>&Delta;L</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>}</mo></mrow></math>]]></maths>其中ΔH=|H<sub>1</sub>-H<sub>2</sub>|,ΔL=|L<sub>1</sub>-L<sub>2</sub>|,ΔC=|C<sub>1</sub>-C<sub>2</sub>|;依据像素颜色之间的NBS距离,将前景区域目标进行聚类,将D<sub>NBS</sub>(A,B)<6的两点归入同一类,得到目标不同颜色区域的颜色聚类,接着将面积较小的块并入附近块间DNBS较小且面积较大块,采用如下策略:<maths num="0005"><![CDATA[<math><mrow><mi>F</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>k</mi></msub><mo>&RightArrow;</mo><msub><mi>S</mi><mi>l</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><mi>max</mi><mfrac><mrow><mi>area</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>l</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>d</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>k</mi></msub><mo>,</mo><msub><mi>S</mi><mi>l</mi></msub><mo>)</mo></mrow><msub><mi>D</mi><mi>NBS</mi></msub><mrow><mo>(</mo><msub><mi>S</mi><mi>k</mi></msub><mo>,</mo><msub><mi>S</mi><mi>l</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths>d(S<sub>k</sub>,S<sub>l</sub>)表示两类之间的空间距离;(8):判断并剔除阴影区域的聚类块;首先需要判断所聚类所得的每个小块,哪些是属于阴影的,将属于阴影的块去除掉,并去除掉毛刺后即可以得到去除阴影后比较完整的目标;(8.1)步:计算去除掉每一种可能的聚类区域后目标按行求和后的方差;定义前景团块中去掉聚类所得的第cut_index类区域的前景后部分目标中按行累加的前景像素数的方差如下:var<sub>cut_index</sub>=var(sum_row<sub>row_index</sub>)var表示求取方差,sum_row<sub>row_index</sub>表示前景团块去掉聚类所得的第cut_index类后所剩局域第row_index行的二值前景点之和,也就是当前行的二值点数目;(8.2)步:利用var<sub>cut_index</sub>来判定一个区域是否属于目标本体,由于阴影区域的存在增加了var<sub>cut_index</sub>,如果能够正确的去掉阴影所代表的标记类,能够显著的减少var<sub>cut_index</sub>使得var<sub>cut_index</sub>取得最小值的cut_index类就代表着阴影的区域;设i=argmin(var<sub>cut_index</sub>)表示在去掉第i个聚类后所得的前景二值图按行求和后的方差最小,聚类i为目标本体的阴影,将标记为i的聚类冲目标团块前景中去除,在去掉聚类i后即可得到抑制阴影后的前景二值图,再进行聚类即可得到比较干净的前景区域。
地址 410205 湖南省长沙市高新区麓景路2号生产力促进中心创富楼二楼