一种基于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秒完成多列项目汇总统计
-
如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...
- 一周热门
- 最近发表
-
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
- office办公应用网站推荐_office办公软件大全
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
- Excel函数公式教程(490个实例详解)
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- php小说爬取源码 (23)
- 云电脑app源码 (22)
- html画折线图 (24)
- docker好玩的应用 (28)
- linux有没有pe工具 (34)
- 可以上传视频的网站源码 (25)
- 随机函数如何生成小数点数字 (31)
- 随机函数excel公式总和不变30个数据随机 (33)
- 所有excel函数公式大全讲解 (22)
- 有动图演示excel函数公式大全讲解 (32)
