百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

一种基于YUV颜色空间自适应阴影消除算法

moboyou 2025-05-08 13:28 38 浏览

王珦磊1,唐加山2

(1. 南京邮电大学 通信与信息工程学院,江苏 南京 210003;2. 南京邮电大学 理学院,江苏 南京 210003)

摘要:针对视频内容分析中的物体检测问题,提出一种新的基于YUV颜色空间的阴影消除方法,相比其他基于YUV颜色空间阴影检测方法,该方法为提高检测精度,使用自适应的动态门限。首先,在RGB颜色空间中使用背景差,得到仅包含目标物体及其阴影的图像。然后在YUV颜色空间中对此图像的色度进行统计分析,搜索出色度变化缓慢的区间,再针对每个色度区间确定对应的亮度区间,获得估计门限。最后,利用以上门限检测并消除阴影。实验结果表明,该方法对不同光照情况下的物体阴影都有很好的消除效果。

0引言

在计算机视觉中,检测运动物体是非常重要的一个部分。运动物体的检测一般步骤如下:先从视频帧中鉴定出前景像素,再由前景像素提取出运动物体[1]。然而,运动物体的投影会使检测算法难以实现,导致前景物体形状和颜色的失真,对运动物体的提取造成干扰。因此,动态物体检测中很重要的一个环节是阴影消除。

阴影检测算法一直被广泛研究,如:基于纹理分析的检测方法[23],使用亮度来判断可能的阴影区域,再结合纹理特征将阴影分割出来;基于物理特征的检测方法[4],先对阴影像素进行建模,再用这个模型从预选区域中检测阴影;基于几何的检测方法[5],根据光源、物体形状、地面来预测阴影的大小、形状和方向;基于色彩空间的检测方法[6],选取一个新的色彩空间,与RGB色彩空间相比,它的亮度和色度间区别更明显。

本文使用基于YUV色彩空间的阴影检测方法,同时阴影检测门限的阈值是根据前景像素的统计结果估计的,因此算法对不同光照情况下的物体阴影检测都有很好的鲁棒性。

1候选区域

候选区域是指图像中包含目标物体及其阴影的部分,一般通过背景差分来获得。步骤如下:先将前景图像和背景图像的RGB分量进行差分,再将差分后的彩色图像转换成灰度图像,针对此灰度图像,设置平均灰度值为阈值,按照该阈值进行划分,大于该阈值的为候选区域,小于阈值的视为背景。再多次进行膨胀、腐蚀操作,消除候选区域中的干扰噪点,具体操作详见文献[7]。

2基于YUV色彩空间的阴影模型

YUV色彩空间和RGB色彩空间关系如下[8]:

在YUV色彩空间中,像素点的亮度分量y和色度分量u、v相互独立。投射阴影区域在YUV色彩空间有如下特征[9]:

(1)投射阴影区域中像素的亮度低于背景像素和物体区域像素的亮度。

(2)投射阴影区域中像素的色度与背景像素色度相比几乎相等。

根据以上结论,确定阴影像素的算法如下:

针对每个候选区域的像素,将符合如下式(1)条件的像素点判断为阴影像素点,其中yF和yB分别指前景和背景的y分量,vF和vB分别指前景和背景的v分量,yMin、yMax、vMin、vMax分别指对应的上下限门限值。

下文将对阈值估计给出详细步骤。

3阈值分析

3.1阴影区域特征分析

为研究阈值与候选区域的统计关系,选取如图1所示

图1输入图像及其预处理的前景图像图1(a)和背景图像图1(b)。先进行背景差分,获得候选区域的前景图像图1(c)和背景图像图1(d),对阴影进行手动划分得到阴影区域的前景图像图1(e)和背景图像图1(f)。

将前景图像(e)中每个像素点的亮度yF和色度vF,与背景图像(f)中的亮度yB和色度vB进行差分,得到差值Δy、Δv。亮度差和色度差分布如图2(a),其中横轴是Δy,纵轴是Δv。忽略干扰噪点,对密集区域进行分析,密集区域图2(b)显示像素点的亮度差Δv分布不均匀,集中在若干个中值上,并且不同的中值对应色度差Δy分布范围也不相同。因此可以将阴影区域的Δy-Δv分布看作是若干个分布块的集合,如图2(c)。

3.2根据候选区域确定阈值

本节将通过候选区域的统计特性估计出上文中每个分布块的阈值。

3.2.1确定色度差Δv的阈值

将候选区域前景图像图1(c)和背景图像图1(d)的色度分量v相差,差值Δv进行排序,得到图3(a),图3(b)标出了其中的平缓部分。对比阴影区域分布图2(c)和图3(b),被标注的区域在纵轴上的范围近似一致,图3(b)上的平缓部分表明在该范围上有大量像素点Δv分布趋于一致,符合阴影区域的特征。

3.2.2确定亮度差Δy的阈值

针对图3(b)中每个平缓区域,从候选区域中搜索对应像素点,获取每个像素点亮度差Δy,再进行排序,图4(a)是候选区域中符合条件Δv∈[4.731 7, 5.288 6]的像素点的Δy排序后的分布图,标出平缓区域如图4(b),对比阴影区域分布图2(c),平缓区域的Δy区间与阴影像素图4候选区域亮度差分布的区间相吻合。

3.3验证特征普遍性

为验证以上特征的普遍性,使用另一组实验图像进行图6自适应阴影消除算法流程图阈值分析,输入图像如图5,图5(a)是前景图像,图5(b)是背景图像,图5(c)表示候选区域,图5(d)是阴影区域的Δy-Δv分布图。分析候选区域,结果如下:图5(e)是候选区域Δv排序后的分布图,该分布图平缓区域与图5(d)中的密集区域非常吻合。将候选区域中符合条件Δv∈[-0.325,0.430]的像素点的Δy值进行排序,得到图5(f),图5(f)平缓区域的Δy范围是[0,30.82],也与阴影分布图5(d)相吻合。

4自适应阴影消除算法

根据上节的分析结果,设计算法如下:先获得候选区域,算法步骤见第1节,然后将候选区域的前景图像和背景图像从RGB色彩空间转换到YUV色彩空间,再做背景差,获得亮度差矩阵ΔY和色度差矩阵ΔV。

阴影区域的色度差Δv一般在[0,10]范围内,取[-5,20]作为考察范围,实际试验中,超出该范围的阴影点很少,可以忽略。对候选区域内所有属于[-5,20]区间的色度差Δv排序,搜索出其中变化较小的区域,本文算法使用条件(2)进行判断,Δv(i)是排序后第i个色度差Δv,N是符合条件Δv∈[-5,20]的像素点个数,a和b是常数,通过多次取值调试后确定a=0.001,b=0.003 5。

Δv(i)-Δv(i-a×N)<b×(Δv(N)-Δv(1))(2)

针对每一个Δv区间,从候选区域中搜索出符合条件的像素点,再对这些像素点的亮度差Δy进行排序,与获取Δv区间类似,搜索出所有变化较小的区域,每个Δv区间可能会对应多个Δy区间。将所有搜索出的Δy-Δv区间作为估计门限。

依据上文得到的估计门限进行阴影检测,实现多阈值的阴影消除。图6为算法流程图。

5实验结果和分析

实验用的部分数据来自图像处理数据库,还有一部分是在实验室中拍摄得到的。算法是在微软Windows平台下,使用matlab编写的。以下图7是使用本文算法的输出结果。

6结论

本文采用一种基于YUV颜色空间的自适应阴影消除算法,该算法对阴影的门限进行动态估计。实验结果表明,该算法对不同光照情况下的图像都能有效地检测和消除阴影,具有良好的鲁棒性。

参考文献

[1] 刘国栋,范九伦.彩色视频运动目标

自适应在线聚类提取算法[J].电子技术应用,2014,40(5):132135.

[2] LEONE A, DISTANTE C. Shadow detection for moving objects based on texture analysis[J]. Pattern Recognit, 2007, 40, (4): 12221233.

[3] 朱敏琛,王伟智.融合线性特征的局部纹理运动车辆阴影检测[J].微型机与应用,2013,32(14):4446,50.

[4] NADIMI S, BHANU B. Physical models for moving shadow and object detection in video[J]. IEEE Trans. Pattern Anal. Mach. Intell, 2004, 26,(8): 10791087.

[5] ZHANG W, FANG X Z, XU Y. Detection of moving cast shadows using image orthogonal transform[C]. In Proc. IEEE Int. Conf. Pattern Recognition, 2006:626629.

[6] CHEN C T, SU C Y, KAO W C. An enhanced segmentation on visionbased shadow removal for vehicle detection[J]. Int. Conf. Green Circuits and Systems, 2010: 679682. [7] 邓亚丽,毋立芳,李云腾. 一种有效的图像阴影自动去除算法[J]. 信号处理, 2011(11): 17241728.

[8] ENNEHAR B C, BRAHIM O, HICHAN T. An appropriate color space to improve human skin detection[J]. INFOCOMP Journal of Computer Science, 2011, 10(1): 1827.

[9] FUNG G S K, YUNG N H C, PANG G K H, et al. Towards detection of moving cast shadows for visual traffic surveillance[C]. Systems, Man, and Cybernetics, 2001 IEEE International Conference, 2001:25052510.

相关推荐

Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录

首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...

Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用

一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...

Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用

原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...

FILTER函数介绍及经典用法12:FILTER+切片器的应用

EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...

office办公应用网站推荐_office办公软件大全

以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...

WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!

办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...

收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程

原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数

批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...

Excel函数公式教程(490个实例详解)

Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...

Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!

工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...

Excel中的SCAN函数公式,把计算过程理清,你就会了

Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...

Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效

在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...

Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!

在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...

Excel新版本,IFS函数公式,太强大了!

我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...

Excel不用函数公式数据透视表,1秒完成多列项目汇总统计

如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...