视频检测算法

2024-05-01

视频检测算法(精选十篇)

视频检测算法 篇1

近年来,基于视频技术的车辆监测技术由于其维护方便,易于实施的特点广受关注,其方法也开始广泛应用于车速检测,视频车辆检测技术将是未来实时交通信息采集和处理技术的发展方向。

测量车辆速度步骤为:

选定一个时间间隔n帧,检测出n帧前后车辆绝对位置(单位:像素)。

把图像坐标系映射到世界坐标系,得出n帧前后车辆实际位移(单位:m)。

实际位移(单位:m)除以n帧时间,得出速度结果。

1 摄像机标定

摄像机标定的目的就是求出图像坐标(单位:像素)和世界坐标(单位:cm)的转换关系式。摄像机标定之前需要先在图像上标出左中右三个车道线[1,2,3]。

本文利用摄相机的透视关系,几何推导出了摄像机的图像坐标与世界坐标系的转换关系式[4,5]。

中间车道线的白色虚线间隔是等距的,通过实际测量得到其距离为6 m,选定这个等距的白线作为参照物。用鼠标在6 m等距的地方分别进行点击,并且至少要点出三个点。几何推导方法如下:

透视关系几何推导图如图1所示,O点为摄像机的焦点,NC代表的是中间车道线,MF为摄像头镜头投影面,也就是视频图像上所显示的面。由摄像机镜头的成像原理可知,M靠近图像下方,F靠近图像上方。

其中D,E,F三点分别为视频上用鼠标单击的三个点,其所对应的实际道路路面为A、B、C,即AB=BC=6 m。在视频上找一个点M,假定M点位于D点右侧,M点所对应的路面上的点为N,经过几何求解,计算出视频图像中像素距离MD所对应的实际距离NA:

同理,可以求出M点在F点左边,DF之间,EF之间的三种情况下NA的结果。

根据这几个关系式,可以得到中间车道线上288行像素中任意一行到第0行的实际距离,如Mapped Dis[120]=708是指中间车道线上从第0行到120行的实际距离为708 cm,即Mapped Dis[120]-Mapped Dis[0]=708。由此可以得出中间车道线任意两点像素之间的实际距离。

实际应用中,摄像机安装在道路一侧,偏离中间车道线。如图2所示,两条斜线之间,EF的实际距离应该等于AB的实际距离。所以说在摄像头的标定中,需要根据不同的场景给予一定的角度补偿,把透视关系式从中间车道线扩展到整幅图。把中间车道线上的点扩展成一条直线,使之成为二维的。

图2中,每条直线上的值都是相等的,直线S与中间车道线相交于O点,以这条线作为基准零点,也就是说这条线上透视关系值都为0,直线S下方这一部分的值未处理,也都为0。直线H上的值都等于Mapped Dis[M],直线T上的值都等于Mapped Dis[N]。由此可以得出,点M和点N所在的两条直线上任意两点的距离为M和N的距离,即等于Mapped Dis[M]-Mapped Dis[N]。

近似地,把图2中的直线间看做平行,只需要知道一个斜率,就可以得出一个补偿关系。假设直线FM和直线EN平行,直线EN和水平线之间的夹角α是已知的。通过对E、F两点做一个角度为α的投影,就可以得到M、N两点的坐标,以及M、N两点的透视关系,从而达到对偏离中间车道线的车辆在透视关系上的一个补偿效果。

2 车速检测方法

虚拟线圈检测法是视频测速的一个基本方法,有代替物理检测线圈的功能。虚拟线圈水平放置于图像的中下部,可以避免前车挡后车的问题。通常,检测区域的高度为普通车长,宽度为车道的宽度。这种检测方法比较适用于摄像头架设位置较高、车辆较小的情况。

2.1 基于图像匹配的测速算法[6,7]

基于图像匹配的算法是指找到车身上某部分特征比较明显的块或者面,在后续帧按照某种准则进行对比匹配,找到此块在后续帧的位置,然后依次进行跟踪匹配,判断出此块的运动轨迹,从而得出车辆的像素位移[8]。

为了便于处理,720×288的图像被分割成90×48个块,每块大小8×6像素。本研究中使用了一条高度为1块,长90块的虚拟线圈。

隧道光线相对比较稳定,当车辆刚好经过线圈位置时开始测速。从图像顶部往下纵向看,首先是车身,然后是车尾,最后是比较稳定的路面。所以匹配模板[9]要包括一部分车身、车尾以及一定的路面,这样找出来的模板特征比较丰富。

2.1.1 模板位置的确定

已知匹配模板包括部分车身、车尾、路面,即纵向上车尾位于这个模板面的中间位置。而接收到车辆结束信号时,车尾的位置刚好经过线圈,所以取线圈的纵坐标作为模板的纵坐标。

时间上,每帧车辆经过时虚拟线圈内二值化块都有一个中心位置,记录下这些序列的中心位置横坐标,经过一个加权平均,得出车辆的横向位置,以这个位置为横坐标,再综合线圈位置为纵坐标这项因素,从而得出匹配模板的中间点坐标。

2.1.2 模板的表示

经过对不同场景、不同时间段的多次测量、实验发现:模板应该比车身窄,即模板的上半部分全为车身,下半部分是路面。由于透视关系,车辆的像素宽度是上窄下宽。并且在隧道交通中,转弯的情况也比较多,所以车道线走势并非直线。所以本文的模版是一个不规则的“四边”形,上边和下边都是直线,左右斜边随车道走势而变化,如图3所示。

O点为模板中心位置,模板纵向高8个块。横向上,O点左右各3个块。三条车道线的坐标已知。通过A、E、F三点的比例关系,计算出左右斜边上任意一点X的横坐标,且坐标随着车道线的走势而变化。从而得到随着车道线走向而变化的不规则四边形作为匹配模板。

2.1.3 滑动搜索范围的划定

正常状态下,车辆是向前行驶的,所以目标模板应该在匹配模板的附近。在匹配模板的附近划定一个搜索范围,这个搜索范围一定要比匹配模板大,但又不能太大,以减少不必要的计算量。

经过对不同时间段的多幅场景进行研究,选择了以下滑动搜索范围:纵坐标从(线圈位置-3)到(线圈位置+14),左右两斜边坐标同样用计算模板表示的方法得到。在这个滑动范围内可以检测的车速范围为:0

2.1.4 一维SAD匹配准则

使用匹配模板与目标模板做匹配,涉及相关值的计算问题,采用一维最小绝对差值函数(SAD):

要度量匹配的相似度就必须有一个合适的匹配准则。以间隔4帧匹配为例,分别对当前帧匹配模板和4帧后的整个滑动搜索范围做横向投影,即每行求其灰度和,然后再取平均值,得到如下投影波形,如图4所示。

对比图4看出,图4(b)的波形中有一部分和图4(a)的波形非常相似。由于匹配模板只是上下滑动,所以称为一维SAD匹配准则,见式(1)。在滑动搜索范围内滑动任意i个像素,发现当滑动24个像素时一维SAD最小。找到一维SAD最小的目标模板,这个目标模板在4帧后视频图像上,距离原匹配模板24像素的位置。

2.2 测速算法实现

经过前面的计算,得出了车辆像素位移为24像素。但由于存在透视关系,模板的上部和模板的下部移动的实际距离是不同的:同样的像素,在离摄像头越远的地方代表的实际距离越大。如果采用模板顶部作为实际位移,则位移偏大,如果采用模板底部作为实际位移,则位移偏小,所以要找到模板的合适位置来计算车辆的实际位移。

2.2.1 最优测速特征点的选取[10]

首先观察匹配模板的波形图。根据波形从平稳到波谷再到不稳定这个特征可以发现,谷值点贴在路面上,不受车高、车长以及车身灰度信息的影响,可以作为图像匹配的特征点来判断车辆匹配的绝对像素位置。充分利用波谷这个特征点的信息,找到波谷位置,如图5中的白色线条所示。

图5中,相隔4帧,采用波谷作为车辆的绝对像素位置,匹配前后坐标分别为129和151。

2.2.2 速度计算

在图3的场景中,补偿角度α的大小经过计算为:tanα=0.008。按照补偿关系式,车辆的补偿后的位置分别为114和136,并且视频播放速度为25 f/s,所以相隔4帧匹配的速度结果为:

3 实地验证结果

为了验证本文提出的基于图像匹配的车辆速度检测算法的的正确性和可行性,对本研究成果进行了实地验证,实验场地包括上海复兴路隧道、贵州崇遵隧道。这里只列出上海隧道的一组数据。

3.1 上海复兴路隧道实验

本场景视频的虚拟线圈位置为20,当接收到车辆计数模块发来的车辆结束信号后,进行模版匹配。在上海复兴路隧道的视频图像中,补偿角度α的大小经过计算为tanα=0.008,实验数据见表1。

结合摄像机标定结果,以及视频播放速度25 f/s,计算出相隔1~5帧进行匹配的速度结果分别为:63.0 km/h,48.6 km/h,57.3 km/h,56.48 km/h,57.24 km/h。

为了得到一个比较合理的速度值,对这5个速度去掉最小值和最大值,取中间3个值做一个平均作为最后的速度值S。

4 结语

本研究成果目前已应用于贵州崇遵隧道等,系统运行状况良好,隧道实测数据表明:

(1)能够以25 f/s的速度实时地处理720×288的视频图像,并实时的检测出经过线圈的车辆瞬时速度,可检测的车速范围为0

(2)可实际应用于隧道交通车速检测、交通调查等方面。

尽管运用对视频的处理,获得车辆实时瞬时速度得到了实现,并取得了一定进展,但在摄像机标定、模版匹配准则等几个方面仍然需要进一步深入研究。

参考文献

[1]刘伟仙,周富强,张鲁闽,等.一种单摄像机虚拟鼠标的标定方法[J].光学学报,2009,29(10):2832-2836.

[2]张浩鹏,王宗义,张智,等.全景摄像机标定[J].哈尔滨工程大学学报,2009,30(11):1239-1245.

[3]傅丹,周剑,邱志强,等.基于直线的集合不变性标定摄像机参数[J].中国图象图形学报,2009,14(6):1058-1063.

[4]DOUXCHAMPS D,CHIHARA K.High accuracy and robust lo calization of large control markers for geometric camera calibra tion[J].IEEE Transactions on Pattern Analysis and MachineIntelligence,2009,31(2):376-383.

[5]TARDIF J P,STURM Peter,TRUDEAU M,et al.Calibrationof cameras with radially symmetric distortion[J].IEEE Transac tions on Pattern Analysis and Machine Intelligence,2009,31(9):1552-1566.

[6]冈萨雷斯.数字图像处理[M].阮秋琦,译.2版.北京:电子工业出版社,2007.

[7]UZ T,BEBIS G,EROL A,et al.Minutiae based template syn thesis and matching for fingerprint authentication[J].ComputerVision and Image Understanding,2009,113(9):979-992.

[8]沈庭芝,王卫江,闫雪梅.数字图像处理及模式识别[M].2版.北京:北京理工大学出版社,2007.

[9]李言俊,张科.景象匹配与目标识别技术[M].西安:西北工业大学出版社,2009.

视频检测技术的应用领域 篇2

1.视频车辆检测与视频流车牌识别

视频流车牌识别:如果车牌的检测采用视频检测方式.那么与检测相比,车牌的分割与字符识别消耗的系统资源相对较少,因此可以对每一块车牌都进行切割和识别,输出带整牌识别可信度参数的识别结果。通过对同一辆车在监控视频流中出现过的所有车牌识别结果的二次分析,有效提高识别设备的识别率和抗干扰能力。通过对识别结果的可信度进行分析,监控检测的精度,在检测与识别模块中形成反馈,不断修正检测与跟踪的中间结果,使之准确性及效率都大为提高。2.收费站派对长度测量的视频检测技术

通过视频检测技术测量收费站的车辆排队长度,以及当排队长度超过阈值时自动报警。

3.视频检测器实时检测交通事故

通过视频检测器对现有闭路电视监视系统中的摄像机视频信号作出处理,实现对全路段的车辆数据进行检测,从而实现对高速公路车辆事故的实时检测。4.视频检测技术在智能交通系统中的应用

图像和视频技术已经广泛应用于新一代智能交通系统中。人工智能和计算机视觉技术使系统的判定更可靠、算法更优化。硬件技术的发展使人们可以获得更高质量的图像,并为系统的实时性提供了保证。采用视频技术就是让人的视觉来占主导地位,让管理者看得见现场,然后,以自动或人工辅助的形式作分析、下决定。

5.视频检测技术在闯红灯抓拍系统中的应用

采用视频检测技术作为闯红灯抓拍系统的违章车辆检测方式,对改善市内交通,减少交通事故的发生起了重要作用。6.视频检测技术在流量采集中的应用

实时视频水印技术与算法分析 篇3

关键词:实时性;视频水印;相关算法

一、视频水印技术的特点

(一)盲检测性 视频水印的检测原则上不能使用原始视频数据,这是因为对原始视频数据的处理会增大计算负担,使得水印算法无法实现实时性的要求,另外视频文件的数据量一般比较大,保留原始视频数据拷贝很占用存储空间。

(二)随机检测性 可以在视频的任何设置、在短时间内检测出水印。在许多的实际视频水印应用当中,不可能从视频的开始位置按播放顺序一步步地检测出水印,而且嵌入水印的视频也可能遭受时间同步攻击,因此视频水印技术要保证能够在视频的任何一个位置,在一小段视频图像序列中能够检测到水印。

(三)更强的实时性 为了保证观看运动视频图像时的连续性,解码端的帧率必须保持在一定数值之上(通常为25帧每秒),因此视频水印较之静止图像水印在实时性上有更高的要求。因而要求水印的嵌入和提取算法时间复杂度不能太高,必须在短时间内完成,保证编解码的实时性。

(四)视频码率的恒定性 水印嵌入视频数据后原则上不能改变视频流的码率,否则容易造成解码后视频图像与声音不同步。但在实际操作中,嵌入水印一般都会导致压缩视频的码率增加,因此把码率的增加控制在可接受的范围之内是视频水印算法经常要考虑的问题。

(五)与视频编码标准相结合 对于压缩视频,水印算法设计必须与视频编码标准相结合;对于原始域水印嵌入水印也必须考虑视频编码标准,否则水印信息很可能在编解码过程中消失。

二、基于变换域的原始视频水印算法

基于变换域的原始视频水印是指在原始视频的离散傅立叶变换域、离散余弦变换域和离散小波变换域等变换域中进行水印的嵌入和提取。

(一)三维小波变换水印方案

首先将视频序列按场景进行分段,对同一场景的视频帧进行三维小波变换,并且考虑了空间掩蔽效应、频率掩蔽效应和时间特性。水印检测有两种方法:第一种检测方案需要原始视频数据,是一种非盲提取水印方案。将待检测帧减去原始帧,并计算与水印信号W之间的相关值,可以确定视频序列中是否嵌入了水印;第二种检测方案不需要原始视频数据,是盲提取水印方案。将待检测帧减去最低时间轴小波系数帧,然后计算差值与W之间的相关值,来确定是否嵌入了水印。

(二)三维DFT域中嵌入水印的方案

首先将视频序列分成连续的长度固定的帧序列,水印嵌入时,首先将水印信号编码为扩频信号,对帧序列进行三维DFT变换,选择DFT系数的中频嵌入水印信号。这是因为修改系数的低频容易降低图像的质量,系数的高频部分容易被有损压缩移去水印信号。水印检测时,同样对视频序列要先进行三维DFT变换,然后计算扩频水印信号与嵌入水印系数的相关值。由于扩频序列的特性,该水印方案也能抵御滤波、加性噪声、MPEG压缩等处理,同时,由于傅立叶变换的基本性质,该水印方案还有对于空间位移和时间位移具有固有的不变性。

三、实时视频水印技术

实时性是视频水印技术的一大挑战,并认为有两种途径提高实时性:一是降低算法的复杂度,二是将计算重心转移到视频提供端或嵌入端,从而降低客户端或检测端的复杂度。

(一)基于扩频的压缩域视频水印方案

利用擴频技术,将水印信号扩展为与视频帧信号相同大小的二维信号。按照8×8块对水印信号做DCT变换,将变换后的水印系数直接与视频帧的DCT系数相加从而实现水印嵌入。其他的一些边信息则不做处理。其算法实现过程如图1所示。由于视频压缩采用运动估计和运动补偿模式,因此由于嵌入水印信息带来的误差容易累加,因此方案中专门有一部分对漂移误差进行处理。实现方法是在嵌入水印的视频信号上加上一个补偿信号,该补偿信号就是预测帧在编码端和解码端的误差。

(二)自适应实时MPEG视频水印方案

对于MPEG编码的快速视频水印算法。该方案通过一种新的块分类方法来选择信息嵌入位置,通过冗余编码和EQSP嵌入水印信息。首先将8×8的DCT块分为平滑块和纹理块两类,而纹理块又可细分为边缘纹理块和细节纹理块两类。为了对DCT块进行准确的分类,作者设计了5种不同类型的块掩码,分别是:平滑块掩码、水平块掩码、垂直块掩码、对角块掩码、细节块掩码,灰色小块表示对应位置掩码值为1,白色小块掩码值为0。将8×8DCT块系数分别与5种DCT块掩码进行点乘,结果与不同掩码方式对应的5个阈值作比较。若结果大于平滑块阈值,则该DCT块为平滑块;若结果大于细节块阈值,则该DCT块为细节块;若结果大于水平、垂直、对角块阈值之一,则该DCT块为边缘块。文中认为细节DCT块更适合嵌入水印信息。

参考文献:

[1]张江,赵黎,杨士强.视频水印技术综述[J].计算机应用, 2005.

[2]苏育挺,张春田.一种自适应视频水印检测算法[J].通信学报,2003.

基于视频的实时烟雾检测算法 篇4

为了预防和减少火灾危害,人们对智能火灾检测系统的需求越发紧迫。目前,比较成熟的火灾检测系统有感温、感光、感烟等类型[1],这些基于传感器的探测技术在实际生活中应用广泛。但是它们必须安装在起火点附近,并且检测数据单一。由于火灾多变多样,这些传统的火灾探测技术收集的数据不可避免受周围环境的影响,因此这一类探测器的应用受到较大限制[2]。在此背景下,基于视觉的火灾检测技术越来越受关注,因为视频智能监控技术适用于更广泛的场所,而且它能提供更可靠的数据信息。

目前基于视觉的火灾检测技术分为两种:火焰检测和烟雾检测。通过分析火焰的颜色、运动、轮廓等信息,判断是否发生火灾。Yuan[1]提出烟雾的快速累积运动模型并结合颜色特征检测烟雾的发生;Toreyin等[3]提出利用运动、闪烁点、边缘模糊和颜色等特征来检测火焰;Chen等[4]提出通过建立烟雾在RGB空间的颜色模型并结合烟雾的动态扩散特征来检测烟雾;Toreyin等[5]提出通过小波变换检测半透明烟雾的方法。这些方法对烟雾特征建立一套检测准则,但有时在某一个具体瞬时内经常受到外部干扰且不具备代表性。本文采用一种时间域的概念对一段时间间隔内的视频图像进行处理检测。文献[6]提出一种将颜色、运动和显著图相结合的方法检测烟雾,适合用于烟雾和背景区分较为明显的烟雾检测当中,当烟雾和背景相似时容易发生漏检。文献[7]采用Surfacelet变换和隐马尔科夫树模型(HTM)相结合的方法,考虑时间域和空间域的多种特征,建立烟雾三维的HTM模型,并用SVM进行训练检测,此算法复杂度较高,实时性较差。

LBP纹理特征[8]越来越多地被利用来检测目标。Yuan[9]利用LBP和LBPV检测烟雾,然而这种方法不能很好适应光照变化,并且LBP特征向量长255,计算起来非常复杂,不适用于实时监控。文献[10]使用非冗余均匀LBP(NRu-LBP)代替原始LBP进行目标检测,尽管NRu-LBP只是对LBP的一种变换,但NRu-LBP能适应光照变化。文献[11]使用CLBP特征来检测人脸,CLBP是一种将三通道LBP特征相互融合的组合特征向量。分析可知,使用单独LBP类特征只包含烟雾的纹理特征,且其中烟雾特征非常模糊。文献[12]将烟雾运动特性加入,组成NRLMBP特征向量,来进行烟雾检测。文献[1]对相邻两帧的运动块进行运动估计,此方法得出的运动方向结果误差较大。在本文实验部分将对本文所用的烟雾运动提取方法和文献[1,12]的进行比较。本文将对烟雾在YIQ颜色空间的分布进行分析统计,并在时间域内提取符合烟雾运动的块以降低误差,提高检测质量。

本文首先将介绍一种新的背景更新模型,它与传统的背景更新方法相结合。与传统方法相比,本文方法具有局部自适应性,对局部运动区域进行一种更新处理而不是对整个图像进行一种变化;接着将分别对一种新型的烟雾颜色模型和烟雾运动持续性进行具体阐述;最后给出实验结果及分析总结。

1 块的背景模型

提取运动区域是视频火灾检测的第一步,背景减除法、帧差法以及光流法是三个经典的运动检测方法。光流法对噪声敏感,并且计算耗时,实时性差;当视频中烟雾变化速度缓慢或背景和烟雾颜色相似时,采用帧差法提取效果不理想,本文采用一种基于块的背景减除法。火灾初期时烟雾变化速度较快,但考虑到在没有风的影响和摄像头离起火点较远时,烟雾运动变化速度较慢。本文设定监控摄像头的帧率为33 fps,从监控视频流中每隔360ms取得两幅图像,而将前后两幅图像之间尚存的11帧作为运动参考对象。

通常时间t时的背景图像Bt可以由视频流中的图像It-1和背景Bt-1获得[13]:

其中:(x,y)代表图像中的一个像素点,α是一个0到1之间的参数。通常烟雾区域增长变化速度缓慢,不会非常快地变化为一个新的背景区域,所以α的值应该非常接近1。

从式(1)中可看出其对整个烟雾变化区域做出同一种更新,即对所有的烟雾区域设定的参数α值相同,这将导致得到的背景存在较大误差,会对运动区域提取产生极大影响。本文算法采用基于块的背景更新方法,以块为单位进行分析处理,将图像分割成大小为N×N的若干块bij,即:

其中:i和j是图像分块后的行数和列数,式中以块为基础标记运动区域并对不同的运动区域设定不同的参数α值。初始时刻B(ij,0)(x,y)=I(ij,0)(x,y),bij运动的定义:

如果:Gij(1)>T1&Gij(2)>T2&Gij(3)>T3则认为bij是运动的。Gij(1)、Gij(2)和Gij(3)分别代表同一块内的像素在时间t时的总和与在时间t-1、t-2、t-3时像素总和之间的差值的绝对值,可用矩阵积分快速计算得到;Wi、Hi分别代表图像的宽度和高度;Tn定义为图像块之间的平均差异值。

本文取每块16×16,当块bij静止时α=1,当bij表示运动块时,α可设定为:

其中max(G(1))表示t与t-1时刻所有Gij中的最大值,根据T1的大小可以分析得出两幅图像之间的差异情况。并将α按T1的大小分成三类,经过大量实验测试表明,设定0.63、0.48、0.38三个参数值时提取效果最佳。以此可再根据式(2)得到运动块bij对应的更新背景图像。

背景确定后最主要的任务是分割出图像中的前景和背景,文献[14]提出一种混合β参数。基于此,本文将当前图像It+1由前景Ft+1和背景Bt按照如下公式组成:

对于不透明物体,β接近于1,而对于完全透明的物体来说,β近似于0,对于半透明的物体例如烟雾来说,β在0~1之间分布,根据大量的实验[14]证明β的最佳取值是0.38。所以根据以上公式设定β=0.38时,可以得到前景运动块图像F(ij,t+1),并根据前景运动块图像可以得到前景运动块二值化图像,如下所示:

图1为根据以上算法提取到的运动块分割图像。与以像素为单位的帧差法相比,此方法获得的运动区域具有非常好的连续性,而不是一个个独立的像素点,这有利于计算和处理。

2 烟雾YIQ颜色模型

通过分析,烟雾颜色主要为浅灰色到灰色和白蓝色到白色,浅灰色烟雾的R、G、B三通道的像素值非常接近,白蓝色烟雾中B通道的像素值比另外两个通道的像素值略高[4]。但当出现疑似烟雾和烟雾半透明区域时,Chen等[4]的RGB空间烟雾颜色模型检测效果并不理想。本文提出一种YIQ空间的烟雾颜色模型,YIQ空间可将烟雾的亮度和色调信息分开,其中Y代表亮度,其实际就是图像的灰度值,I和Q代表色调信息。在YIQ空间中烟雾的I和Q通道的值非常小且比较接近。按照Yuan[1]的算法规则作出如下修改:

上述规则非常类似于Yuan[1]提出的烟雾颜色模型,从中可以发现所需条件仍十分繁琐且在条件1、条件2处所设阈值容易出现较大误差。因此本文对烟雾YIQ三空间按照下式进行归一化:

归一化之后,三通道获得了更好的聚类性,且有y+i+q=1,所以实际上3个未知数变成了2个。通过实验分析并统计大量烟雾像素,提取了烟雾的YIQ颜色信息,即可得到以下归一化之后的烟雾YIQ颜色模型:

利用RGB空间烟雾颜色模型时通常需要对不同的视频设定不同的阈值才能获得较好的检测结果,而YIQ空间烟雾颜色模型阈值固定且能适应绝大多数视频。将图像从RGB空间转换到YIQ空间,统计各运动块内满足归一化YIQ空间烟雾颜色模型的像素点个数Num,并对运动块按照式(9)作出更新:

即只有块内满足YIQ烟雾颜色模型的像素比例超过80%才将该块标记为1。图2中展示了按照上述处理后所得到的运动块,可以看出所有检测到的块都符合烟雾的颜色特征,但仍存在一些干扰。

3 运动持续性

为了节省计算时间,本文只对各保作块做离散的运动方向估计,假设同一块内像素点都具有相同的运动方向。图3中(a)为块运动离散方向模型[1],各块运动方向分为0°、45°、90°、135°、180°、225°、270°和315°这8个离散方向,并将它们对应标记为从1~8;(b)为运动匹配搜索表,为了提高匹配度,目标块与它每次平移N/2个像素距离的前一幅图像的搜索块作相似度比较,并且每个离散方向平移三次。从图中可以看出,目标块需和它本身位置以及周围24个块共25个块作比较匹配。

然而,利用Yuan[1]的方法得出的离散运动方向非常容易受到风以及背景瞬时变化的干扰。其采用8连通域处理运动块得到一个整体运动区域,将小面积区域作为噪声处理,这样在远距离场景例如森林烟雾监测中会将初始产生的烟雾作为干扰排除从而出现漏检。为了消除这种干扰,从监控视频流中每隔360 ms取得两幅图像,而将前后两幅图像之间尚存的11帧作为运动参考对象。利用矩阵积分算法计算图像It、It-2之间共24帧的各运动块的运动方向θ,并统计出这24帧中运动方向次数最多的方向作为运动块的主运动方向。

分析易知,块的真正运动方向与θ恰好相反。对θ做出修正并统计主运动方向:

其中Gij是相邻两帧的运动块bij的差值,可由积分运算快速得到,mod是取余运算,H(θ)是24帧运动方向的直方图统计函数。烟雾通常是从下至上运动,但有时在风的影响下,烟雾会左右飘动甚至偶尔出现向下运动,因此烟雾的主运动方向标记为2~4。所以当θmax在2~4之间时即认为t时刻的ij块符合烟雾运动。

通过图像在YIQ空间和RGB空间之间的互相转化公式可知,Y空间代表图像的亮度即灰度值,所以可在归一化之后的YIQ空间中计算y通道运动块与邻域块之间的差分确定运动异常块。

定义运动误差Erij为目标块与周围25个搜索块在y通道的差分Gij的最小值,Erij的大小决定了目标块与搜索块的匹配程度。Erij过大时说明目标块和搜索块的匹配程度较低,则该目标块的运动方向不明显或者为非烟雾运动块,称这样的目标块为运动异常块。通过取值分析,当Erij>0.47时将该目标块标记为运动异常块。由于烟雾变化缓慢且平滑,所以运动块在It、It-2之间共24帧的时间域内不应出现较多的运动异常块。当运动异常块较所占比例较大,则将该块作为干扰处理,即:

其中:Num为运动异常块的数量,All=24,λ为设定阈值。运动异常块所占比例小于λ时bij被认为符合烟雾运动。

将式(11)作为判断运动异常的第一个条件,然而仍存在一些符合此条件的非烟雾运动物体。通常认为It、It-2之间的参考帧也应该绝大部分部分符合烟雾颜色特征,但如果对它们进行一一验证将大大增加系统计算时间。本文提取图像块的中间一行即第8行,接着提取下一帧对应图像块的对应行,因此可以在It、It-2的24帧内提取到24行。因为图像块大小16×16,所以可以将得到的24行组成一个16×24的图像块,如图5所示。并且经过分析可知,此图像块也应该符合烟雾YIQ空间颜色模型,所以将图像块代入此模型中判断是否符合烟雾颜色特征作为第二个条件。两个条件都满足时可认为此块即为烟雾。

4 实验结果与分析

本文将处理的监控视频流帧率设为33 fps,在接下来的一些测试视频的帧率有些并不符合该帧率,但从视频流中每隔360 ms取一帧图像的规律并不改变,因此测试视频也适用于本文算法。本文实验所用视频来自[5]http://signal.ee.bilkent.edu.tr/Visi Fire/Demo/Smoke Clips/和http://imagelab.ing.unimore.it/visor/,以及少量自拍视频。对多组视频进行检测,表1为本算法的实验效果,其中1~15为烟雾视频,16~20为干扰视频。本文算法在强光和相似于烟雾的背景下检测效果良好,并且在远距离的烟雾检测当中也取得了不错的效果。

从中选取4组结果如下:

图6中存在两个运动中的人,可视为干扰。运动可以检测出来,但他们衣服的颜色不符合YIQ烟雾颜色模型,经过本文算法检测,不会被判定为烟雾区域,因此图中未在人身上标出方框。视频中烟雾区域虽然存在风的干扰,但经过主运动方向的检测,被认为是烟雾区域而用方框标出。

图7中燃烧物产生白蓝色的烟雾,有一个人在视频中走动。由于分别率低,并且此人衣物颜色和浅灰色的烟雾非常接近,视为干扰物体。由运动可以检测到此人,虽然他衣物满足YIQ烟雾颜色模型,但在时间域内的主运动方向并不符合烟雾运动模型,经过本文算法检测,不会被认为是烟雾区域。在视频中有明显的烟雾运动,被检测到并用方框标出。

图8中燃烧物产生浅灰色的烟雾,且背景颜色和烟雾颜色非常相似,对烟雾的检测产生严重影响,但使用本文算法仍能检测出绝大部分烟雾区域。

图9的森林场视频中,设置时间间隔为1000 ms,摄像机离起火点非常远,并且图像分辨率低;视频中烟雾的运动速度非常慢,且受到雾气影响。采用本文算法,没有烟雾产生时,未将雾气干扰误检为烟雾;当产生烟雾后,能检测出很小的烟雾区域。

表2和表3给出了本文算法与文献[1,3,12]的检测对比结果,表2为所有烟雾视频的检测率表,表3为干扰视频的误检率表。其中:

表2中文献[1]采用直接帧差和RGB空间未归一化的烟雾颜色模型,对比可知其检测率低于本文算法,且从其对标号4和9的视频的检测率分析得知此算法在烟雾较远时检测效果非常不好;且从表3中可知此算法对视频的质量要求非常高,否则非常容易发生误检。文献[3]是基于像素点的小波检测算法,从表2中可以看出其总体效果不如本文算法,但其对4号、5号和9号视频的检测率优于本文算法。这是因为在这3个视频中,绝大部分图像序列中的烟雾几乎没有发生明显的运动,其对本文的运动检测算法不敏感。再从表3中分析文献[3]和本文的误检率对比情况,可以发现本文对这一类视频的检测率虽然略低于文献[3]所采用的方法,但是本文的误检率却远小于文献[3]。这是因为文献[3]的方法对复杂背景和疑似烟雾的森林水汽、灰尘容易产生误检。文献[12]算法将LBP纹理特征和烟雾运动相结合,组成NRLMBP特征进行SVM训练。从表2和表3看出其检测率小于本文,误检率大于本文,主要因为其考虑的烟雾运动方向单一,未能考虑到烟雾运动的时序性,所以容易受到瞬时的噪声、风等干扰。表3中本文算法对20号视频的误检率略高,这是因为视频中的雾气运动和烟雾非常相似导致的。

因为本文算法先进行运动和颜色检测,所以人、树叶、车辆等干扰都可以得到排除,且相邻两幅图像间隔时间较长,也可以检测到远距离烟雾的发生。另外,风中飘动速度较大的雾气和烟雾非常相似,会发生误检;烟雾浓度过大且无风的情况下,烟雾变化不大,如果初始背景较差,本文算法会发生误检;当室外风向不定且风速很快时,本文的运动估计算法偶尔发生漏检。

5 结语

视频检测算法 篇5

一、概述

我们知道智能交通系统最主要的任务就是:让交通更安全、更节省时间、更节省成本。为了协助交通界能够更完美的实现此目标,美国ITERIS公司专为ITS行业研发出一种目前国际上技术最为领先的智能交通信号控制系统应用视频检测技术——Vantage视频车辆检测器!

Vantage视频车辆检测器采用了国际上最先进的数字视频技术,它除了能够完美地融入于智能交通信号控制系统、电子警察抓拍系统,还能够无缝地整合到交通数据采集系统,其双重功用被广泛的应用于城市智能交通信号控制、城市电子警察、城市交通数据采集及公路隧道、桥梁的意外事故监控系统中。目前,Vantage视频车辆检测器在全球已有30000多个系统的运用业绩,已成为了全球在用业绩最多、最受用户欢迎的车辆检测产品之一。

本方案采用Vantage Edge2单、双路视频检测模块(硬件),集成到各种感应式信号灯控制机中,来实现交通信号的智能控制。Vantage Edge2模块可应用于城市点控、线控及面控系统中,实现感应式或自适应式控制,能够完美的与SCOOT、SCATS等系统无缝整合!

二、Vantage操作性能优势:

对于城市智能交通信号控制应用,Vantage视频检测技术与感应线圈检测技术相比,具有如下优势:

1、易于安装

Vantage视频检测器是利用安装在十字路口照明灯杆上的摄像机采集视频图像,然后由安装在信号灯控制机内视频处理模块进行分析处理,获取必要的信号灯控制信息,从而实现路口的智能控制!视频控制过程的实现只需在照明灯杆或专用立柱上安装必要的摄像机,而无需切割破坏路面,乃至铺设很长的线圈馈线电缆,最大程度的缩短了封闭道路的时间。另外,视频虚拟线圈的位置可以根据需要任意放置,而感应线圈安装在一个位置后就不能根据路况的变化而任意移动,否则重复切割路面会严重影响道路的使用寿命!

2、易于设置

Vantage 视频检测器本身具有全部的设置功能,完全可以不用笔记本电脑进行现场设置。每路视频图像上都可以显示一个设置菜单,利用鼠标和视频菜单便可在摄像机视频图像上画出检测区域并进行所有的参数设置,非常方便。

Vantage还具有动态区域设置(DZR)功能,此技术允许在任何时刻新建一个检测区域,或对一个检测区域进行修改,与此同时并不影响其它检测区域的正常工作。随后,一旦新的检测区域设置被保存,它便立即开始背景学习,进行检测!最有工程意义的是Vantage的操作非常简单,基本的培训工作不超过一小时便可完成。

另外,视频虚拟线圈的位置摆放可以根据路况任意调整,其线圈功能属性也可以根据需要进行设置,如:存在、延时、延迟、脉冲和计数。选用不同属性的线圈可以实现不同的控制需求,每路视频图像可以

设置24个这样的虚拟线圈!

每个视频虚拟线圈的信号输出通道都可以任意定义,Edge2模块本身可提供4个独立的输出通道,如果需要还可以增加扩展输出通道,比如在控制信号灯的同时,还想增加闯红灯抓拍触发功能,我们就可以再增加4个输出通道。每个通道输出都有手动测试开关,利用这些开关可以极为方便的调试信号灯控制机的工作性能。

3、易于维护

在十字路口控制中经常会遇到交通状况变化或道路维修的时候,这时我们可能需要改变虚拟线圈的检测位置,这对视频检测来说非常简单,也不需要封路;而相对于感应线圈检测来说,就需要封路、重新切割路面,这样的维护工作需要大量的人力、财力。更甚者,如果感应线圈在使用过程中由于路面变形而断裂就更麻烦了!感应线圈的寿命大约在2-5年(根据交通量及路面温度而定),而Vantage视频检测器的使用寿命要超过10年。

此外,Vantage还具有VRAS远程管理系统,它是一个功能强大的软件工具,利用RS232通讯端口对Edge2进行远程管理控制,用于监测现场交通流,提供用户支持及系统诊断等功能,尤其是需要重新设置虚拟线圈时,您只需在监控中心便可完成,无需到现场操作,维护起来非常方便。

三、Vantage检测性能优势:

1、检测可靠性高

对于十字路口控制应用,在任何天气及光照条件下,Vantage视频检测器均能实现95-98%的检测精度,近似于进口高档感应线圈检测器(反应时间好于10ms)的检测精度。Vantage采用了数字信号处理技术(DSP),这使其能够面临各种天气情况及光照条件的挑战,不论是白天还是黑夜、下雨还是晴天,它都能够精确、可靠的提供交通检测。不受天气或温度的影响,真正实现全天候的检测控制。

另外,在一些特殊路况条件下,我们还可以层叠放置2-3个虚拟线圈,以提高检测的可靠性。

2、先进的视频检测算法

① 夜间检测难题的解决:在夜间检测时,Vantage系统会运行强制车灯检测算法(EHDA),当系统确定天色已黑时,它会自动运行EHDA算法,此算法将自动跟踪识别车辆前灯,从而减小夜间光线对检测精度的影响。

② 路面积水反光影响的解决:Vantage系统算法具有背景自适应、连续自动更新的功能,它能够识别路上的任何背景干扰因素,如积水反射光、抛洒物、树木和护栏的阴影等,如果有此类干扰背景存在于检测区域内,系统经过背景学习,会自动将它们定义为背景物质,从而实现可靠的检测。

③ 车辆阴影影响的解决:Vantage系统具有专门的阴影处理算法(SDA),它能够有效的识别车辆及其阴影,将其定义为同一移动车辆,而不进行重复检测,从而消除阴影对检测精度的影响。

④ 恶劣天气变化影响的解决:Vantage系统有双重保障来解决此问题,一方面,当天气非常恶劣,图像对比度非常低时,系统会自动切换到故障安全模式,发出警报,视为到处都是车辆,注意安全行驶!另一方面,采用三阶段图像分析算法,如果系统确定检测区域的检测有效性较好时,系统便运行正常的检测模式(S1);一旦遇到恶劣天气的影响,如雨、雪、雾等,系统确定检测区域的检测有效性降低,系统会自动切换到(S2)模式,增加检测区域的灵敏度,实现精确的检测;当天气更为恶劣,检测区域的检测能力完全丧失时,系统便会自动切换到故障安全模式(S3),当天气转好,图像质量变好时,系统又会自动切换到正常检测模式。此三阶段图像分析算法有效地减小了恶劣天气对检测精度的影响。

⑤ 摄像机晃动影响的解决:在大风天气条件下,摄像机会产生很大的晃动,一般会影响图像处理,但Vantage系统采用了特殊的图像晃动补偿处理算法,避免了由于图像晃动造成的检测误差。

3、能够实现更多的检测功能

① 三个独立的现场结构设置:Vantage系统允许用户设置三个不同的现场虚拟线圈设置方案,其中一个用于正常交通状况下,另外两个用于特殊交通状况,如道路维修,临时道路交通状况等。三个结构设置可以相互切换,使设置工作更为简单。

② 主辅线圈联合控制功能(And/W):Vantage系统可以实现两个虚拟线圈配合控制一个通道输出,一般主辅线圈安装要有一定距离,只有当主辅两个线圈同时被不同车辆占用,并达到一定时间后,主线圈才发出一个检测信号,这对感应式信号机控制非常有用。

③ 过滤行人检测功能:在视频十字路口控制中,由于大量的行人,可能对检测有一定影响,而Vantage系统可以过滤掉行人,可以避免由于行人经过而造成的误信号控制。这一功能对多行人路***通信号控制非常有用。

④ 逆行车辆过滤功能:当检测区域属性设置为行驶方向向下时,逆向行驶的车辆将被过滤掉,不予检测输出!

⑤ 眩光检测功能:当检测区域被车辆眩光充满时,则相应的输出通道便输出一个检测信号,从而降低眩光对检测精度的影响,此功能特别适用于路灯光线较差的路口控制。

⑥ 绿灯强制通行功能(Green/Input):此功能在国内应用较少,它是为了使快速行驶车辆顺利通过绿灯路口,而不需紧急刹车而设置的。当路口绿灯将要变成红灯时,而此时离路口一定距离的地方有车辆经过预设的专用虚拟线圈,那么此时的绿灯会延时,延时多久可以设置,一般由虚拟线圈与停车线的距离而定。

四、工程示例:

1、摄像机安装高度

大约在9.2~15米之间,只要图像清晰、车辆图像足够大,摄像机安装越高越好,并尽可能固定在检测区域的中间位置,建议安装高度在10米左右。如果不能满足这种要求,要尽可能的避免遮挡问题。另外,尽可能将摄像机固定在稳固的立柱上,特别是长期应用。

2、摄像机安装视域

摄像机视域取决于它的安装高度和镜头,一般摄像机视距为其安装高度的10倍。Vantage视频车辆检测器,具有0-100米的有效检测范围,可以同时检测4条车道,一般摄像机的视域要能容纳4.5~5条车道,为了保证检测的精度,要尽量确保视域中车辆停止线保持水平,右图为标准的视域范围:

3、检测区域的设置

虚拟线圈的大小一般接近于我们的大拇指肚大小,基本上与图像中夏利轿车的尺寸相同,这样可以避免漏检较小的车,又能保持较好的灵敏度。

虚拟线圈的放置位置不一定在每条车道的正中间,而是可以根据摄像机的视角略微偏移向某一侧,基本上要根据大多数车辆的行驶轨迹而确定。

每路视频图像最多可以设置24个虚拟线圈,也就是说它可以取代6个4通道的感应线圈检测器!每路视频图像有4个独立的通道输出,可以随意定义虚拟线圈的输出通道。如果必要,还可以将多个检测线圈重叠放置,设置主辅线圈,进行联合控制。所有设置通过面板鼠标即可完成。

4、对摄像机的要求

用于视频检测的摄像机必须是固定式的,云台摄像机通常不适合用于这种检测。不论是用于十字路口控制还是交通数据采集,对摄像机都要有一个最低的要求:

① CCIR/EIA 1Vpp(+/-20%)

② 1/3 CCD适应昼夜亮度变化,自动亮度调节,在夜间照度水平低于0.1 Lux或日间照度达到10000 Lux时所产生的视频图像仍为可用视频信号并具有可分辨特性;

③ 图像水平分辨率应在500线以上,垂直分辨率在350线以上;

彩色摄像机也可以使用,但要注意,彩色摄像机的灵敏度通常要比黑白摄像机低4倍左右,这样最大的影响是在晚上,在这种低对比度条件下检测的性能会很差。

5、使用VRAS远程管理软件设置

如果您想通过远程设置管理,使用VRAS软件模块即可。

我们可以通过VRAS软件对Edge2检测模块进行远程控制,可以设置检测区域的参数以及对检测模块进行各种操作,它为Vantage系统提供以下主要功能:

★ 远程浏览现场图像,单帧或连续帧两种模式

★ 浏览多个Vantage摄像机的图像

★ 为每台摄像机重新设置检测区域

★ 远程执行系统诊断

★ 远程获得交通统计数据

Vantage视频车辆检测器采用闪存的方式可以将参数设置存储起来,以防止数据意外丢失,即使有意外断电的情况也不会带来损失!

另外,如果您想用Edge2模块再采集一些交通数据,也没有问题,不必更换硬件,只需用我们提供的VSU软件模块将Express数据采集程序写入到Flash闪存中即可,非常方便!

五、Edge2硬件特点及技术指标

1、主要功能及特点

① 双路视频输入;

② 每路摄像机图像能够设置24个检测区域;

③ 每个Edge2具有4个通道输出,通过增加扩展模块,可以设置多达24个的通道输出;

④ 检测区域之间可以设置成“And”逻辑功能,来提供联合控制;

⑤ 每一个检测区域当有车辆存在时,可以持续输出一个存在信号;

⑥ 可以对系统进行远程设置及状态监控;

⑦ 采用FLASH闪存存储,使处理器具有编程能力,并能够实现多种应用;

⑧ 通过串口进行软件升级,不需要修改硬件,同时增加了用于储存数据的FLASH存储空间;

⑨ 易于操作的主菜单接口界面,使系统设置或维护不需要电脑即可完成;

2、接口指标

① 输入:BNC视频输入,RS170(NTSC),CCIR(PAL)

② 输出:BNC视频输出,RS170(NTSC),CCIR(PAL)

③ 75 Ohm或Hi-Z视频输入端口

④ USB型鼠标接口

⑤ DB9针RS232接口

⑥ RJ45与扩展模块连接接口

3、工作环境

① 环境温度:-37℃~+74℃

② 环境湿度:0%~95%,无冷凝

③ 电源:12VDC或24VDC(490/280mA)

六、感应式路口控制系统组成

Vantage视频车辆检测器是感应式路口控制系统的感应部分,在本方案中就不再论述信号灯控制机及摄像机等系统部件。Edge2模块可应用于单点路口控制、线控及面控系统中,实现感应式或自适应式控制,能够完美的与SCOOT、SCATS等系统无缝整合!

需要将Vantage Edge2集成到信号灯控制机中,Edge2模块适用于多种型号控制机,如170、TS-

1、TS-2、2070、ATC等。一般只需将Edge2模块直接插入到信号灯控制机内相应的位置即可,非常方便。

1、系统部件组成

① Vantage Edge2视频检测模块(双路视频输入)

② Vantage Intersection十字路口控制专用软件(固化在Edge2中)

③ Vantage Remote Access System(VRAS)远程管理软件

④ 符合要求的摄像机

⑤ 感应式信号灯控制机

视频码流转换的一种软件解决算法 篇6

关键词:流媒体 码流转换 视频编解码 互斥

中图分类号:TP311 文献标识码:A文章编号:1673-8454(2007)12-0080-02

笔者在此提出了一种用软件编解码进行视频转换的算法,该算法可以以较低的开发成本来完成多种流媒体文件间的格式转换,在实际应用中取得了很好的效果。

一、视频码流转换简介

视频码流转换主要有硬件编解码和软件编解码两种方法。对于两种编解码方法而言,其基本原理都是一样的:硬件编解码方法是通过摄像装置以一定的、相对较低的速率捕获视频,然后通过编解码芯片将一组视频帧编成相应的码流并以一定的速率发送到网络上去;而软件编解码方法则是主要依托软件编程,首先以一定的速率将待转换的码流还原成视频帧,再以相同的速率将这些视频帧编码成目标码流并发送至网络上。其步骤简单,如图1所示。目前硬件编解码的方法比较常见,其优点是实时性强且适于批量生产;但缺点也是明显的,相对软件编解码方法而言,除了前期开发成本较高和开发周期较长外,其产品适用范围也比较单一,往往只是一对一的格式转换。对于软件编解码方法来说,它克服了硬件编解码开发过程中存在的缺陷,不过它的实时性效果却无法与硬件编解码的效果相比,这也是它最大的不足之处,至于最终选取何种方法应视具体情况而定。

二、视频码流转换算法

本文提出的这种视频码流转换的转换方法可以克服目前常见的软件编解码方法的不足,其算法结构如图2所示,标志位Flag0初始置为1,而标志位Flag1初始置为0。本算法主要是在内存中开辟两块内存单元,其大小视截获的数据流一帧图像的大小而定。然后分别在两个内存区域里存储一定张数的视频帧,当任一个内存区域存储结束后就将该内存区里的全部视频帧编码成目标码流。最后,将生成的目标码流发送进视频服务器的发送队列中,并重复以上步骤直至待转换码流结束。在以上步骤中,当一个内存区的全部视频帧被进行编码转换后,就等待被下一组视频帧所覆盖。可以看出在这个算法中,软件在两个内存区域中对所截获的视频帧的编码转换的协调异常重要,它是整个软件得以正常运行的重要保障。

三、软件互斥的实现

程序在执行时的互斥问题是因为涉及对临界资源的使用而产生的。临界资源就是一次只能供一个进程使用的资源,在本程序算法中编码插件或函数以及向服务器队列发送的插件或函数就属于临界资源。[2] 由于一般的编码插件或函数只能设计成对一组视频帧进行视频编码处理,要保持视频转换的连续性,笔者设计了两个队列(内存区域)用来轮流存储解码所得来的视频帧。而这两块重复存储的内存区域也是临界资源,一方面要对内存区域进行写操作,另一方面在对该内存区域里的视频帧进行编码转换的同时要禁止再次向该内存区进行写操作。因此,对这两个队列的视频帧轮流进行存储和编码转换工作就成为本程序执行中互斥的关键所在。在此,笔者为每个内存区域设计了锁机制,在进入每个内存区之前一定要先获得该内存的锁,只有获得了相应内存区域的锁才能对该内存区进行存储和编码转换操作,并在对该内存区域内的视频帧操作完成后释放所获得内存区的锁,以便下一次操作的进行。而标志位Flag0、Flag1的设置,更进一步明确了程序调用的时序。当程序最初执行时,将Flag0置1,而Flag1置0,这样一定是内存0区的视频帧先被编码转换;当Flag0取反为0,而Flag1取反为1时,则只有内存1区的视频帧被编码转换,从而保证了输出码流的时序的正确性。对于编码插件或函数以及向服务器队列发送的插件或函数的互斥处理,同样采用了锁机制,从而确保了一次只对一组连续的视频帧进行编码转换。

四、软件的具体实现

笔者最近研究的课题中需要在Windows平台下将M-JPEG码流格式(一种工业常用非标准格式)转换成MPEG码流格式。在实际编程过程中,笔者以C/C++语言为基础来编制软件,运用了目前软件工程学中比较成熟的模块化编程思想,这使得许多已有的优秀软件成果可以通过模块形式被调用。例如,在程序的开始阶段,将待转换的视频码流还原成视频帧的过程中,笔者就根据自己课题的要求选用了AXIS公司的Media控件实现了将M-JPEG码流以5帧/秒的速率还原成视频帧。

当然,在整个程序的设计过程中,并不是总能找到合适的控件作为模块借鉴,也不能因循守旧。笔者从实际出发,根据C/C++语言自身的特点因地制宜,在对内存使用的互斥算法的处理中,并没有采取经典的PV信号量机制,而是采用了锁机制的方法。[2] 这主要是因为C/C++语言提供了flock()函数,可以使对内存队列的加锁和解锁操作达到原语操作的效果,这对于进程互斥是至关重要的。[3] 而要在Windows环境下对内存进行操作,就需要借助Windows系统提供的API函数。在Windows环境下,其API函数是各种高级语言与Windows系统联系的纽带,能很好地与微软自身开发的VB/VC++软件进行混合编程。我们首先可以通过调用API函数中的GloalAlloc()函数开两个内存区域,其大小应比一帧数据量与预计截得的视频张数的积略大。当然,这两个内存区域还都应该留有句柄。其实,Windows会给每个使用GlobalAlloc()等函数声明的内存区域指定一个句柄(其本质上仍是一个指针,但不要直接操作它),在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,为确保与其它Windows下的进程互斥,还可以使用GlobalLock()锁住这段内存并获得指针来进行操作。当所需内存开辟好以后,就要将视频帧存入到相应的内存中去了。这时笔者再次借助了Windows系统提供的API函数,主要是运用了BitBlt()函数,将在显存中截得的视频帧位图扫描到相应的内存区域当中。[3] 这中间除了要写一些内存管理函数对内存进行管理外,对帧格式的了解和把握也是至关重要的,这可以让你在转存帧的同时通过一些代码将帧的格式进行转换,从而为后面的编码转换做好准备。

最后,在处理将一组连续的视频帧编制成目标码的过程中,笔者选用并简单修改了NCTVideoStudio的控件并作为模块调用,从而完成了将一个内存区中的所有视频帧编制成MPEG码流段的任务。当一段段的码流生成好后,我们可以将它们封装到预先定义好的数据报中,并根据报头的地址传到网络服务器指定的存储空间去,以备服务器进行处理。

整个过程将周而复始地连续进行,直至待转换视频码流结束。

五、两种方法的比较

通过上面对这种软件编解码的算法简介,不难看出系统在进程间以及在资源调用时的开销,必将造成输出码流的不连续性,而为了在C/S系统的客户终端看到连续的视频播放,就必须在服务器的播放队列中预留一定的长度,以确保在客户端最终能看到连续的视频节目。[5] 所以用软件进行视频码流转换对硬件的要求会更高一些。而且由此也可看出用软件进行码流转换必然会造成一定的时延,它虽然可以通过提高服务器性能和网络可靠性来改善,但终究无法避免。因此,对于高实时性的项目,如实时监控设备,就不适宜用软件进行视频码流转换,而应采用硬件编解码芯片来完成码流转换和网络传输任务。这里,笔者再次强调:最终选取何种方法还是要视具体情况而定。

参考文献:

[1]STEVE MACK.流媒体宝典[M].北京:电子工业出版社,2003

[2]Andrew S. Tanenbaum.陈向群,马洪兵译.现代操作系统 (第2版)[M].北京:机械工业出版社,2005

[3]Arnold Robbins.Linux Programming By Example:The Fundamentals[M].Prentice Hall PTR,2005

[4]冉林仓.Windows API编程[M].北京:清华大学出版社,2005

基于运动特征的不良视频检测算法 篇7

近年来,随着互联网与多媒体技术的发展,越来越多的视频内容在网络上传播,因此,如何阻止网络中不良视频的传播引起了人们的高度重视。与此同时,许多机构也推出了大量的研究成果,譬如MIMEsweeper公司开发的PORNsweeper[1]系统、法国Look-That-Up公司研发的图像过滤与检索系统ImageFilter等,可以在一定程度上阻止不良图片信息在网上的传播。D. A. Forsyth、M. M. Fleck [2] 等人通过分析人体结构不同区域的肤色和文理特性,从而判断图片中是否包含裸体,并以此识别色情图片。Jeong, Kim & Hong[3]利用基于区域肤色检测、纹理分析、身形信息以及特征向量分类来识别裸体图片。段立娟、崔国勤[4]等人则提出基于人类视觉的图像分析机理和肤色模型检验、支持向量机(SVM)分类以及最近邻方法检验的综合图像处理方法,对色情图片进行识别。以上方法在色情图片的识别方面取得了较好的效果,但是只适用于图片检测。吕丽、杨树堂[5]等人利用局部光流信息提取关键帧,然后通过对关键帧肤色检测来达到对整段不良视频进行检测。但是该方法是以关键帧为基础,依然属于色情图片的检测,方法中没有运用视频自身的特性,因此,在不良视频检测方面存在着不足。为了有效杜绝色情信息泛滥、净化网络,对流媒体中不良视频的检测就变得十分重要,如何有效识别、阻止不良视频信息在网上的传播日益成为研究热点。

通过对MPEG压缩视频流的分析发现,码流中的运动矢量代表了视频编码时相邻图像间的运动信息,是视频的主要特性,并且,运动矢量的获取具有直观性以及方便性,使得它在有关运动对象的研究中有着极为重要的应用。通过运动矢量研究运动对象的规律,避开了动态背景、物体颜色、形状等难点。以运动矢量为研究对象,本文提出了基于运动特征的不良视频检测算法。

2 基于运动特征的不良视频检测算法

该算法通过提取MPEG视频流的运动矢量,经过噪声滤波获得运动特征,最后,根据运动特征判断整段视频是否为不良视频。

2.1 算法结构

本文提出的不良视频检测算法包括4个步骤:

(1)首先从 MPEG压缩视频流中提取运动矢量;

(2)对运动矢量进行预处理,采用矢量中值滤波器滤除干扰矢量,通过平均值法消除摄像头运动引入的矢量;

(3)提取运动特征,通过分析方向直方图和幅度值获取运动特征;

(4)设定检测阈值,判断一段视频是否为不良视频。

流程图如图1所示。

2.2 运动矢量提取

运动矢量(Motion Vector,MV)是本算法的基础,在MPEG视频码流中提取运动矢量是关键技术之一。依据MPEG标准[6],MPEG视频流由三类不同的帧组成,即I-帧(内帧)、P-帧(前向预测帧)、B-帧(双向预测帧),如图2所示。其中,I-帧采用的是帧内编码方式,重构时不需要参照任何其他帧;为减少空间、时间的冗余,P-帧的数据则由前面的I-帧或P-帧进行前向预测得到,只需要前面的一个I-帧或者P-帧即可重构;B-帧的数据则由前面与后面的I-帧和P-帧或者P-帧和P-帧进行双向预测才能得到,需要两个帧才能重构。

运动矢量是前后帧之间运动对象的位移量,如图3所示,分为水平位移量和垂直位移量两部分。运动矢量代表了运动对象在帧间的简单位移,存在一定的误差,称为运动补偿。有了运动矢量和运动补偿就可以实现P-帧、B-帧的解码。但是,将运动矢量应用于整个帧并不合适,于是,在编码时将每一帧分成多个16x16像素的宏块(macro block),每个宏块再进一步划分为4个8x8像素的基本块。每一个基本块的原始数据经过DCT(Discrete Cosine Transform)变换量化处理,按照Zig-Zag顺序得到存储序列。P-帧是I-帧的预测,根据时间冗余度进行运动补偿,其数据流仅是一些与-I帧颜色对比的差值和预测运动矢量,压缩比很高。而B-帧由已知的I-帧和后面的P-帧数据经过时间、空间冗余的预测而得到。因此本文提取出P-帧和B-帧帧的运动矢量做为后面处理的数据。

2.3 运动矢量预处理

压缩码流中的运动矢量通过运动估计获得,但MPEG采用的基于宏块匹配的运动估计技术,主要考虑的是码流的压缩效率而非估计的准确性,因此,运动矢量并不能代表真实的运动情况。此外,外界环境变化,摄像头移动,以及噪声的进入都可能在码流中产生相应的运动矢量。鉴于此,在进行运动检测之前,必需考虑尽可能的将这些不利于运动检测结果的运动矢量滤除。本文提出了一种运动矢量预处理办法。

2.3.1 归一化运动矢量

通过对帧序列结构(GOP)的理解,对从不同类型的帧中提取出的运动矢量进行归一化。这里对经过MPEG压缩的视频流序列结构都被认为是IB1B2P……这样的形式,且每种结构中有12帧。根据B帧的参考帧P帧,从B帧中提取出的运动矢量被归一化。尽管B帧中既有前向又有后向运动矢量,这里仅考虑其中的任何一个,可以提高运动矢量的可靠性。在GOP序列结构中,前向运动矢量仅考虑为B1,后向运动矢量仅考虑为B2。根据它们的参考帧P帧量化这些运动矢量。假设B帧的所有的运动矢量在I和P帧之间是线性的,这使得运动矢量和帧类型是独立的。上面提到的GOP结构,P帧的运动矢量是从它之前的I或者P帧预测的,这两者之间的时间间隔被认为三个单位(每任意两个序列帧之间的距离被认为是一个单位)。由于B1帧的前向预测运动矢量都是从前一个I或者P帧中得到的,它们之间的时间间隔是一个单位。通过上面的讨论,对B1帧量化后的运动矢量在x方向的位移mx=mxB1×3,其中mxB1是从B1帧中得到的运动矢量,对B2帧量化后的运动矢量mx=mxB2×(-3),mxB2是从B2帧中得到的运动矢量。计算y方向的运动矢量用相同的方法。

2.3.2 向量中值滤波

一般来说,一个物体内部的运动应该是一致的,因此组成运动对象的宏块的运动矢量也应当是一致的。但事实上,运动估计考虑的是压缩编码的效率,从而导致运动对象内部的运动矢量并不平滑,如图4(a)所示。为此我们采用了向量中值滤波器在空域上对运动矢量进行平滑。

中值滤波器是一种非常有用的非线性滤波器,能够有效的去除随机噪声平滑图像。向量中值滤波器VM[7](Vector Median Filters)是中值滤波器由标量到矢量的推广,定义为

VM{x1,x2,…,xn }=xvm

其中:

xVM∈{x1,x2…,xn}

满足:

undefined

其中x表示矢量,‖·‖1表示范数运算,将搜索窗口定义为3x3的宏块。图4(b)为经过向量中值滤波器滤波后的运动矢量图,可以看出,经滤波器滤波后的矢量取得了很好的平滑。

2.3.2 平均值法

经过滤波后的矢量图依然存在一些小的运动矢量,是由于摄像头的移动引起的。本文再通过平均值法来滤除。

如果

则令

undefined

其中N为一帧图像中运动矢量2-范数不为0的矢量总数。MV(i,j)为坐标(i,j)处的运动矢量。‖·‖表示矢量的范数运算。通过阈值判决,小于阈值的点被认为小运动矢量,进行滤除。下一步只对大于阈值的点进行检测。实验表明,经过上述处理后的运动矢量,在一定程度上反应了视频中运动物体的实际运动情况,符合下一步检测的要求。

2.4 方向直方图

对于P-帧和B-帧数据提取出的二维运动矢量场,矢量场中包含强度和方向两类运动信息,运动矢量的强度信息反应了运动的空间幅度,矢量的方向反映了运动的趋势,基于以上信息,通过对矢量的强度和方向分别进行分析。对强度分析采取求取均值的方法,对方向通过方向直方图进行分析。将运动矢量的方向量化为8个等间隔的间距,对于每一个运动像素,根据它的运动矢量方向找到对应的方向量化间隔,然后把该量化间隔的计数器加1,这样获得的运动矢量直方图提供了运动矢量图的一个统计信息,如图5所示。

在图5的运动矢量方向直方图中,横坐标代表了量化的8个方向,纵坐标代表了各个方向的统计数。从图中可以看出,统计数最大的方向反应了物体运动的主要趋势。

2.5 运动特征

通过对大量不良视频的试验观察,发现不良视频在运动矢量图上表现的特征为运动幅度较大,即Average较大,且在帧速率一定的情况下,在帧速率的1/2帧处都会在方向属性方面存在着明显的向相反方向变化的趋势。如图6所示。

综合这两个特征,本文设定阈值的方法如下:

(1)输入视频,提取每一帧的运动矢量图,计算出每一帧的幅度均值,以及每一帧的方向直方图的统计信息;

(2)对每一帧的方向直方图的主方向进行统计;

(3)对每100帧进行判定,求取100帧的幅度均值,以及这100帧主方向的统计数;

(4)设定阈值进行判决,如果满足这个阈值特性,则输出为不良视频,否则,检测下一个100帧。

3 实验结果

3.1 实验环境与实验结果

为了测试本算法的有效性,选取了不同光照、背景下的70段色情视频和50段正常视频片段作为训练样本,视频速率都为30fps左右,时间在20s~6min不等。实验环境为一台PIV 2.0GHz、512MB内存的PC 机,操作系统为Microsoft Windows Server 2003,将判别准则定为如果100帧内平均阈值为大于4.5,且每100帧内有两个主方向之和超过85,则判别视频为不良视频。对样本数据进行检测,结果如表一所示。最后选取60段色情视频和60段正常视频对算法进行检测,不良视频检测耗时24min,正常视频耗时30min。算法识别率为85%,误判率为8.3%。实验结果表明,本算法对不良视频判别比较有效。

对测试集中的60段不良视频,用时为25min,其中12段视频判别有误,识别率为80%;又对测试集的60段正常视频进行测试,用时30min,其中10段视频误判为不良视频,误判率为16.67%。

3.2 实验结果分析

传统的方法为基于光流法的不良视频检测算法,它通过利用局部光流信息提取关键帧,然后对关键帧进行肤色检测,来实现对整段视频的判别,该方法面对的难点为很多视频背景色都接近肤色,容易造成误判,而且光照不足也是造成误判的一个主要因素。

通过对比,所提出的基于运动特征的不良视频检测算法利用提取的运动矢量作为判别的依据,不受背景、光照等因素的干扰,具有较好的鲁棒性;检测不良视频耗时较短,且不用考虑肤色检测里面的光照等因素,识别率较高,误判率较低,适应大多数视频检测环境。

4 结束语

本文提出的不良视频检测算法,利用运动矢量的特征提取,避免了不良视频信息检测中常见的肤色、姿态等运算量较大的问题,减少了视频信息检测的运算量以及背景的影响。实验表明,该算法适用于流媒体视频检测环境,具有较高实用价值,对净化网络环境,提高网络健康性和合法性起到良好促进作用。

参考文献

[1]Pornsweeper,http://www.dansdata.com/pornsweeper.htm

[2]Forsyth D A,Fleck M M.Dec.1996-Dec.Identifying Nude Pictures.1996.in Proceedings of the3rd IEEE Workshop on Appli-cations of Computer Vision(WACV'96).1996[C].

[3]Jeong C Y,Kim J S,Hong K S.Appearance-based Nude Image Detection.2004.Volume4,P467?470.in Proceedings of the17th International Conference on Pattern Recognition(ICPR'04).2004[C]

[4]段立娟,崔国勤,高文,张洪明.多层次特定类型图像过滤方法.2002,14(5):404-409.计算机辅助设计与图形学学报.2002[J].

[5]吕丽,杨树堂,陆橙年,李建华.基于光流法的不良视频检测算法.2007,33(12):220-221,227.计算机工程.2007[J].

[6]Moving Picture Expert Group.MPEG Standard,ISO/IEC.13818-4.2004.Switzerland,Genevese:ISO Standards ISOTC Portal Company.2004[S].

基于视频监控的烟雾检测算法 篇8

火灾是最常见的严重灾害之一,它往往给人们的生命财产造成巨大的危害。目前用于火灾探测的主要有烟感探测器、红外探测器、紫外探测器等,但这些探测器件在探测范围和抗干扰等方面还存在不少问题。该文提出了采用图像处理技术对火灾烟雾进行识别,对其中的所使用的算法作出了详细介绍。

文章通过利用分块和背景差分提取运动区域,在YUV空间建立烟雾颜色模型和亮度模型,得到烟雾疑似区域;在灰度空间提取能量变化规律;对用Lucas-Kanade稀疏光流算法改进,实现疑似区域进行多目标自动跟踪,获取疑似区域的平均偏移量和相位分布作为烟雾识别特征。

2 运动区域的检测与颜色分割

2.1 运动检测

背景差分法是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法,其性能依赖于所使用的背景建模技术。由于该算法应用于实时监控系统中,并且为整个判别系统的初步分割,为了提高运算速度本文选用亮度差分进行检测。该算法利用分块区域Sk与当前帧的上一帧对应区域Sk+1作比较。由于是灰度图像,所以定义Sk(i,j)为对应点像素(i,j)的亮度值。正常环境中背景亮度也在不停变化,但是烟雾区域亮度变化远远大于背景,所以设定前后帧亮度变化大于20的像素为运动区域进行保留,静止区域在处理时变成黑色。为降低噪声影响和提高运算效率,该文将原图分为(k1,k2)大小的分块,(i,j)则代表新分割图像的第i行第j列的分块,Sk(i,j)为k帧该块的的平均亮度。

文章采用一个长度为3帧的时域分析窗,对三帧连续图像两两处理,进行亮度差分标记运动候选区出现的次数。首先,建立像素运动累积矩阵M,矩阵元素表示

建立运动累计矩阵M(i,j);利用公式(1)判断一组图像的各个分块是否存在运动区域,若某分块存在运动区域,则矩阵M中与其对应位置处的元素加1,否则不变,如公式(2)所示。

图1中红色、蓝色分别为第1、2帧和2、3帧图像差分后的疑似区域,绿色为运动累计矩阵中重叠后确定区域。最终的标记区域确定后重新标注前三帧图像继续做后续分析。该方法的好处在于可以通过改变检测图像帧的数量来控制算法的时间复杂度。

因为采用亮度差分来判别运动区域,所以会产生因光亮变化而被大量错误标定的运动区域,但火灾烟雾发生时在监控视野所占面积比例是在一定范围之内的。为避免这种错误,需要设定一个疑似区域数量阈值,当疑似区域个数大于这一阈值时则认为不是火灾烟雾。

2.2 烟雾YUV空间颜色模型

烟雾通常分为青烟和白烟。姚太伟等人通过大量实验得到,烟雾在RGB空间中(不论青烟或白烟)的R、G、B值相差不大,且灰度值大致在80~220范围内。烟雾在光的照射下,呈淡蓝色,即B>G>R。因此,得出烟雾RGB空间颜色模型为:

其中,a是个值很小的常量。由于在应用中的系统采集与存储方式是YUV模型,所以需将RGB空间颜色模型进行转换。RGB空间与YUV空间存在下列转换关系:

所以可得到烟雾YUV颜色空间模型:

烟雾移动是缓慢的,所以根据烟雾颜色特性对前三帧标记图像做特征检测,如果某一分块在两帧中满足颜色特性就将其保留否则认为是快速运动的相近颜色干扰,将该块标记删除。

2.3 烟雾亮度分布

烟雾在YUV空间的亮度Y值由内到外逐渐衰减,烟雾聚合中心区域亮度值最高,随着烟雾向四周扩散,亮度值也随之降低,而很多颜色相近的干扰则不满足此特性。烟雾的亮度值大多在80~220之间。所以将运动检测后的区域进行灰度处理,将亮度80~150设为绿色,150~220设为红色。计算目标图像中所有红色区域外接矩形和绿色区域外接矩形。烟雾区域应该满足绿色区外接矩形大于或等于红色区域,如图3所示。

3 烟雾特征识别

3.1 小波能量的序列分析

本文选择对称的、具有正则性和最短支撑的Haar小波作为基波函数对视频帧标记后图像采取一层离散小波分解,分解后包括一幅低频成分的子图LL和三幅高频成分的子图HL、LH、HH。HL、LH、HH分别为垂直、水平、对角方向高频的边缘和纹理信息。烟雾的半透明性特征使图象边缘模糊化、复杂纹理锐度降低,导致小波图中的高频部分能量减少,所以我们检测小波子图的能量变化来排除类似烟雾区干扰。定义:

式中:wn(x,y)表示第n帧原图(x,y)位置的能量值,LHn(x,y)、HLn(x,y)、HHn(x,y)分别表示第n帧(x,y)位置对应高频成分的一级小波系数。将原图分为(k1,k2)大小的分块,文中取32 pixels×32 pixels。每分块的能量E(l1,l2)计算如下:

本文用YUV空间的Y分量运算形成灰度图,然后对该灰度图进行小波变换。过程如下。

跟踪序列图像中某一分块(32 pixels×32 pixels)在序列中能量的变化。随着烟雾产生并逐渐挡背景的边缘和纹理,可发现背景能量值逐渐减少。这是因为烟雾的纹理相对平滑,其高频部分的能量较低。烟雾覆盖背景表现的能量变化过程是平滑并且缓慢的。当有类似烟雾颜色的干扰物进入监视区遮挡了背景时,背景的小波子图能量会发生剧烈变化,且能量值突然增大,整个过程如图3。因此基于能量变化平稳减少特性,可进一步判断烟雾区的真伪。由于整个检测目的是火灾烟雾早期报警,所以在监控到能量缓慢减少特性时即可进行判断,这样可避免由于对大量视频帧处理所造成的时间复杂度过高,和烟雾能量变化曲线不易公式化的问题。方法是对标记图像块进行小波检测,为了减少烟雾火灾的误报率,当两组结果中有一组满足小波能量缓慢减少时则认为是产生火灾烟雾。

3.2 基于聚类分析的稀疏光流法

烟雾在燃烧形成的热气流作用下,呈向上的趋势且运动相对缓慢和稳定。利用Lucas-Kanade稀疏光流算法[11]进行跟踪可以获得疑似烟雾运动的平均偏移量和相位信息,以区别水蒸气等干扰。假定p(x,y)、q(x,y)是跟踪的某一角点在前后2帧的位置,则光流矢量长度为:

设定一个长度阈值T。统计运动区域的平均偏移量和相位角θi:

其中,di是满足阈值T的矢量长度;n是满足阈值T的角点个数;r1、r2是矢量的纵坐标和横坐标的值。根据r1、r2的正负值,判断θi是否属于[0,2π)中某个区间。对所有相位角在[0,2π)分布个数上实现归一化。以π/4为间隔,依次将[0,2π)为8个区间:

其中,λi为分布在第i区间的个数;Si为分布在第i区间的比例。烟雾识别规则为图像的平均偏移量为7≤≤12,相位分布在π/4≤θi≤3/4π区间内的比例λ≥80%。下图为光流信息分布表:

由表1可以看出,烟雾运动的平均偏移量和相位分布比例同时满足前面所述的规则,而行人和水蒸气却不满足。虽然此方法可将水蒸气这一强干扰排除,但是这种方法检测多目标必须手动标注,在此利用聚类法来解决该问题。不连通但却属于同一区域的烟雾在图像上表现的距离必定接近,由于图像采用分块分析,则目标烟雾的微小间隔已经被区域分块排除,所以同一目标矩形块应该在8邻域上相邻。具体方法是在标记过程中以其中一个分块为种子进行八邻域搜索,如果存在烟雾图像块则对其标记,再以新标记图像为源进行所搜直到搜索完一个块联通局域,对该区域标记编号,然后对图像其余部分检测,直到所有可疑区域都被标记,然后分别对每个目标进行光流检测。如下图中深灰块为1目标,黑色区域为2目标。

4 实验结果及分析

文章仿真采用Microsoft Visual C++6.0和开放源代码计算机视觉库(Open CV)下进行实现。系统利用TI公司TMS320DM642开发板组建而成,采集图像为PAL制式每帧720 pixels×576 pixels,所以在实际应用中综合考虑了算法时间复杂度和报警准确性后将分块大小调整为64 pixels×64 pixels。下图为一组烟雾图像的测试结果,图6是三组室外检测结果,前两组是在森林和操场上进行的远距离检测,后一组为近距离相近颜色背景检测。图7是两组室内烟雾检测图(图像取自网络视频库和现场临时拍摄)。从结果中可以看出该算法能很好地分割提取出烟雾区域并排除干扰区域。实验过程为在烟雾成型后开启视频监控系统,整个识别报警阶段用时200ms(国标要求在烟雾成型后20秒内报警),并可持续对现场烟雾进行检测,实验结果表明该方法可以很好满足实时监控的需要。

5 结束语

视频检测算法研究与FPGA实现 篇9

运动目标的检测是智能视频监控中重要的一步。智能视频监控是计算机视觉领域一个新兴的应用方向和备受关注的前沿课题。随着互联网技术和数字视频技术的发展,监控技术正向着智能化、网络化方向不断前进。智能视频监控是在不需要人为干预的情况下,实现场景中特定目标的定位、识别、跟踪等[1]。目标检测作为其他后续高级处理的基础,它的处理速度与精度直接影响到后续处理如目标识别、跟踪等过程的处理。

像素域处理历史悠久,理论研究较成熟,但对于越来越高质量的视频应用,对于海量的像素数据,传统的像素域检测方法无法在保证精度的同时,满足实时性要求。本文基于变换检测提出了一种改进的像素域检测算法。通过视频序列累计出可靠的背景缓存,通过当前帧与背景缓存的差异来得到目标区域。该算法相比传统分水岭等像素域方法具有高效、易于并行,流水线处理等硬件实现的优点。

1 基于背景寄存的像素域检测算法

图1为像素域检测算法的流程图,第1步是通过设定阈值计算出连续两帧的帧差;第2步是背景寄存,按照过去几帧的帧差掩膜(所谓掩膜即大于阈值计为1,小于阈值计为0,下同),如果当前像素点的帧差掩膜连续很长一段时间没变,则可认为当前像素点是可靠的背景,并将该像素值存入到对应的背景缓存中,并将背景掩膜标为1,表示当前点背景有效;第3步,背景差掩膜通过比较当前输入图像和背景缓存图像的像素值,然后做阈值计算得到。背景差掩膜是抓取目标的主要判断依据;第4步,初始化的目标掩膜是通过之前得到的背景差掩膜,帧差掩膜,背景掩膜共同得到。如果对于一点像素,背景掩膜指明当前点对应背景缓存可得,则直接用背景差掩膜建立初始化目标掩膜,否则用帧差掩膜建立[2]。

1.1 帧差

图2为帧间差分法的一般过程。

根据连续输入的两帧差值做阈值处理是变化检测的基本思想。但是既然运动目标的特征和表现区别明显,分割的质量很大程度取决于背景噪声,背景本身以及背景与运动目标的对比度,提取可靠和连续的目标信息是非常困难的。

通常选择边界放宽或者算数统计的方法来产生阈值,提取可靠的目标形状信息[3]。然而只有连续两帧的运动信息能够使用这种方法,目标信息会因为暂时静止而被丢弃。本文不从变化的部分得到信息,而是依靠静止的背景,因为背景的特征更显著也更可靠。通过对帧差做阈值处理,可以很容易地得到帧差掩膜,它会被用在背景寄存步骤,如果要确定背景掩膜,需要连续的帧差掩膜保持不变。

阈值的选取,它统计帧差的绝对值。在当前像素没有变换的假设前提下,帧间的改变服从均值为0的高斯分布,其概率密度函数如式(1)所示:

p(FD|Η0)=1σ2πexp(-FD22σ2)(1)

式中:FD是帧差;σ2是帧差得方差,它是照相机噪声σ2c的2倍;H0表示假设条件,即当前像素没有变换。

阈值根据显著等级确定。它们的关系如公式(2)所示:

α=Ρrob(|FD|>ΤΗ|Η0)(2)

式中:α是显著等级;TH是阈值。由上可知,当摄像机噪声σ2c较小时,很容易就能把前景从背景目标中分出来,可以设置一个比较高的显著等级α。反之,当σ2c很大时,α也要设的小些。

1.2 背景寄存

本文需要可靠的背景图像来做变化检测。不能只是一个大概的背景图像信息,这对目标检测没有好处而且可能让检测变得更加困难。因为这可能会引入误分割。因此本文考虑排除不是很确定的背景信息。即将它们的背景掩膜设为0,当前背景缓存为空。这样保证了处理的高速与简单,适合硬件实现与实时应用。

1.3 背景差

这一步是将当前帧的值与存储在背景缓存中相对应的位置的值做差并做阈值计算来建立背景差掩膜。这一步类似建立帧差掩膜的过程。阈值同样由显著等级来确定。

1.4 目标检测

根据已经得到的帧差掩膜,背景差掩膜,以及背景掩膜就可以产生初始的目标掩膜。每个像素点都必须有这3个信息。表1列出了建立初始化目标掩膜所有的情况。

表中前两项表示背景缓存信息还不可得,则使用帧差信息来作为目标检测的准则。虽然只有帧差被应用,但是这个过程中背景寄存仍然在累计背景信息,随着输入帧的增多,不能确定的背景信息迅速下降。对于表中后两种情况,表明背景缓存已经被建立。则使用背景差来作为目标检测的准则。

1.5 后处理

因为摄像机噪声以及不规则的目标运动,建立的初始目标掩膜存在很多噪点以及不平滑的目标边界,需要对其进行滤波处理。基于硬件实现考虑,本文选用较简单而常用的形态学滤波来去除噪声区域。对初始化目标掩膜使用3×3模板的二值闭-开操作滤波处理来消除小噪声点及平滑目标边界。

2 系统架构

视频监控系统的基本架构如图3所示,它主要由传感器初始化模块(I2C Configure)、图像采集模块(Capture)、图像转换模块(RAW to RGB)、数据调度模块(DMA)、目标检测模块(Detect)、目标掩膜查找表 (Object Mask)、VGA接口控制模块(VGA Controller)和多端口SDRAM控制器(SDRAM Controller)模块组成。

当系统开始工作后,首先由FPGA中的I2C模块配置数字图像传感器,配置完成后,数字图像传感器开始向FPGA输送采集到的视频数据里。在FPGA中Capture模块用来同步传感器数据到FPGA内部的时钟。RAWtoRGB模块将同步后的RAW数据格式转换成RGB色彩空间继续传输。 DMA模块起到数据调度的作用,它分别连接了上述RAWtoRGB视频数据输入模块,SDRAM Controller存储控制模块,Detect数据处理模块以及VGA数据输出模块。来自RAWtoRGB模块的数据将放入SDRAM一块缓存(区分下面的处理数据缓存,将该块缓存命名为视频图像缓存)中,待VGA输出模块读取显示使用。另一方面RAWtoRGB模块的数据将被送入Detect模块作检测使用。

Detect模块会在系统开始工作后,在SDRAM初始化另一块区域用作处理数据缓存。处理数据缓存根据背景寄存的像素域运动目标检测算法设计,包含了上一帧图像数据、背景缓存图像数据、背景累积计数值等。根据来自RAWtoRGB模块的当前帧数据以及从SDRAM处理数据缓存中读出的上一帧数据以及背景数据作算法处理,再经过形态学滤波,DETECT模块会将处理后的目标掩膜送入Object Mask模块存储。并将本次更新的数据送回SDRAM处理数据缓存中用于下一帧的处理。

Object Mask模块即目标掩膜查找表,它对应了一帧图像所有点的掩膜值(1表示为目标点,0表示非目标点)。供VGA输出模块调用。VGA Controller模块根据VGA接口标准的刷新要求,会不断读取SDRAM中视频图像缓存的数据,输出最后数据到ADV7123数模转换芯片供显示输出。

3 实现效果及分析

图4为系统在工作状态的检测效果图。系统较好的完成了目标本身的检测。当前设计完成一个像素点得检测需要2个时钟周期,检测模块在当前设计环境下的时钟频率为25 MHz,则处理数据的速率是(12.5 M数据位宽/s)则最多每秒可以处理40帧的640×480尺寸的视频图像,完全能够满足实时处理的要求。

此外,在当前基于Cyclone Ⅱ设计中,利用Quartus Ⅱ进行时序分析,检测算法模块在25M的时钟频率下,关键路径仍然有12 ns左右的空隙(Slack),经过计算,如果不受到SDRAM的传输最大吞吐量限制,检测算法可以使用80 MHz的时钟频率。则处理数据的速率是(40M×数据位宽/s),即极限情况下每秒可以处理130帧640×480尺寸的视频图像。

4 结 语

针对有实时性的应用,利用FPGA并行性、流水线等硬件处理的优势,来实现视频前处理、检测等算法可以大大提高处理速率。最后给出了实现效果图并分析了当前硬件条件下的处理速度。系统在满足实时条件的基础上,较好的实现了检测功能。

参考文献

[1]张兆杨,杨高波,刘志,等.视频对象分割提取的原理与应用[M].北京:科学出版社,2009.

[2]鲁青龙,卢爱芹.数字图像处理技术[M].北京:清华大学出版社,2010.

[3]ZENG Wei,DU Jun,GAO Wen,et al.Robust moving seg-mentation on H.264/AVC compressed video using theblock-based MRF model[J].Real-Time Image,2005,11(4):290-299.

[4]LIU Zhi,SHEN Li-quan,ZHANG Zhao-yang.An efficientcompressed domain moving object segmentation algorithmbased on motion vector field[J].Journal of Shanghai Uni-versity,2008,12(3):221-227.

[5]吴继华,王诚.Altera FPGA/CPLD设计(高级篇)[M].北京:人民邮电出版社,2005.

[6]米本和也.CCD/CMOS图像传感器基础与应用[M].北京:科学出版社,2006.

[7]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2007.

[8]潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2007.

[9]CAYETANO J S,BENITEZ L R,GARCIA J M,et al.Motion segmentation algorithm for dynamic scenes over H.264video[J].Communications in Computer and Informa-tion Science,2010,81(2):572-581.

视频中实时的人脸检测算法 篇10

人脸检测是指对于任意给定的图像或视频, 采用一定的策略对其进行搜索以确定其中是否含有人脸, 如果是则返回人脸的个数、位置和大小。人脸检测作为物体检测问题的一个特例, 长期以来一直备受关注, 已经开始广泛应用到全新人机界面、基于内容的检索、基于目标的视频压缩、数字视频处理、视觉监测等许多领域。国内外学者提出了很多关于人脸检测的方法, 大体上可以概括为基于先验知识、基于模板匹配以及基于统计学习的方法。近年来, 基于统计学习的方法取得了长足的发展, 得到了广泛的应用。其中Viola[1]等提出的基于Adaboost的人脸检测算法, 从根本上解决了检测的速度问题, 同时又有较好的识别效果, 使得人脸检测领域一直难以解决的速度问题得到了极大的提高, 推动了人脸检测系统的实时应用。

视频中的人脸检测是人脸检测的一个重要组成部分, 在这方面很多学者也做了大量的工作, 比如M Castrillo′n[2]等结合当前最流行的各种分类器, 构造了一个实时的检测系统, 取得了很好的效果, 但是算法过于复杂, 并且误检率很高, 达到了8.07%。

本文充分利用视频的特点, 结合运动特征、肤色特征、类Harr特征以及边缘信息构造一种实时的人脸检测算法, 该算法检测率到达98.79%, 而误检率仅为2.04%, 且速度达到了每秒27帧, 很好满足了监控、考勤、门禁等系统的要求, 具有广泛的实用价值。

2、算法的整体框架

算法的整体框架如图1所示。对输入的视频进行预处理 (图像去噪和图像增强) , 再利用运动检测和肤色信息提取侯选人脸区域, 在候选区域内用类haar特征构成的多层级联分类器判断其是否存在人脸;如果存在人脸, 获得人脸的个数、位置和大小信息。其中还采用了三种加快检测的策略。

3、算法设计与实现

3.1 基于对称差分的快速运动区域提取

针对背景差分法的背景建模运算复杂高, 且背景更新不准确等缺点, 本文运动检测采用对称差分的方法。这种方法是取视频中连续三帧 (慢运动时, 使用间隔多帧差分) , 记为f1, f2, f3, 分别计算相邻两帧的绝对灰度图像, 即

然后, 把绝对灰度图像d1, d2进行二值化, 得二值图像b1, b2, 再把b1, b2相与, 得到对称差分结果的二值图像B, 再对二值图像B进行形态学处理, 去除一些小的噪声点, 最后根据二值图像提取运动区域。区域提取采用的一种快速投影算法。首先对二值图像进行水平和垂直方向的投影, 然后在水平和垂直方向上扫描投影点, 用以确定水平和垂直方向上的运动目标区域的边界点及区域块数, 有了边界点和区域块数, 就可得到运动区域。

3.2 肤色检测

肤色检测采用了YCrCb肤色模型, 该模型能在一定程度上避免亮度的影响, 在YCrCb中, 采用统计的方法得到肤色的概率密度函数, 并且在 (Cb, Cr) 色度空间中分布在很小的范围内, 具有聚类性。经统计得出适应面较广的人的肤色在YCrCb颜色模型中的分布范围[3] (采用0--255灰度级) :

133-Cr?173;77?Cb?127;

在运动区域内进行肤色检测, 肤色区域的提取跟运动区域的提取方法是一样的, 但在垂直方向上只确定一个目标块, 这样可以排除手或者其他类肤色的干扰。经过肤色检测后, 进一步减少了候选人脸区域。

3.3 基于Gentle AdaBoost的人脸检测

对于候选区域, 采用类haar特征多层级联分类器来检测人脸。包括两个部分, 即离线训练部分和在线检测部分。

本文采用Gentle AdaBoost算法来训练类haar特征多层级联分类器, 具体的训练过程请参阅文献[4]。

Gentle AdaBoost算法是对传统Adaboost算法的的改进, 其优势体现在:一方面, 无需确定弱分类器的个数, 而是根据给定的误检率自适应的选择弱分类器, 当满足误检率条件时该强分类器的训练结束;另一方面, 每个样本权重的更新是由它被前一个弱分类器分类结果所决定的。

为了提高检测的速度, 采用三种加速策略:

特征放缩法:待检测图像大小不变, 逐层等比放大检测窗口, 再用各层窗口遍历整张待检测图像。与传统的图像放缩法检测方法比较, 在速度与精度上都很有优势。

边缘能量快速排除非人脸窗口:边缘能量定义为边缘图像中子窗口象素的亮度和。这里所说的边缘图像是指灰度图像经过Canny边缘检测后得到的图像, 如图2 (b) 所示。人脸由于存在五官特征、面部表情, 所以有着丰富的边缘信息。这样一定大小的人脸窗口, 其边缘能量就分布在一定范围内。所以利用边缘能量就可以快速排除大量的非人脸窗口。统计了5000个20*20大小的人脸图像 (8位灰度图像) , 其中有4990个边缘能量分布在25000到40000之间。为了提高边缘能量的计算速度, 利用积分图[1]的思想。假设待测图像的边缘检测图像为Canny (x, y) , 其积分图像为Integral (x, y) , 则子窗口Rect (x1, y1, x2, y2) 的边缘能量E可表示为:E=Integral (x2, y2) -Integral (x1, y2) -

如下图2 (b) 所示, 图上方的框为可能的人脸窗口, 则边缘信息很丰富, 即边缘能量大, 图下方的框为非人脸窗口, 其边缘信息不丰富, 边缘能量就小。通过边缘能量, 就可以快速排除非人脸窗口, 且非人脸窗口一般占的比例很大, 这样就可以大大提高速度。

多分辨率搜索:对图像的扫描分成两个阶段按搜索量化步长的大小分为粗分辨率和细分辨率进行。

运用上面的三种策略, 与传统的检测方法相比, 平均检测速度提高了近3倍。

4、实验结果及分析

拍摄的9个视频序列作为测试序列 (cif格式) , 这9个视频序列是在实验室条件下拍摄的, 拍摄时间分布在各个时间段, 有的视频是在光线充足的的早上拍摄的, 还有的是在光线很差的傍晚拍摄的。总共5000帧视频共包含11952个正面人脸图像, 正面人脸图像是指, 人脸的旋转角度在-到+的范围内。cpu是奔四2.99G, 内存为1G, 结果共有11807个人脸被检测到, 检测率达到了98.79%, 而误检率仅为2.04%, 平均每帧检测时间为36.55毫秒, 即约每秒27帧。表1列出了本文的实验结果, 以及与别的方法的比较。图3为部分实验结果。

从上表可知, 在各种条件下拍摄的视频, 本文算法可达到实时地检测, 且检测率和误检率都能达到满意的效果。本文的方法, 无论在检测率和误检率上都优于Rowley和Viola的方法, 速度也远远高于他们, 是他们的十倍还多, 虽然与ENCAR-A2这种方法相比, 本文的方法检测率略低, 但在误检率和处理速度上还是有优势的。ENCARA2高检测率是建立在算法极其复杂的基础上的, 这种高复杂的算法不易在硬件上实现, 而本文算法比较简练, 容易在硬件上实现, 已经在dsp上实现了。

5、结论

本文提出了一种视频流中实时的人脸检测算法, 它是基于Gentle Adaboost的多特征融合的快速算法, 结合了运动特征、肤色特征、类Haar特征以及边缘信息。实验表明, 该人脸检测算法的检测率达到98.79%, 且误检率仅为2.04%, 平均每秒可检测27帧, 完全满足各种场合的实时要求, 该算法在安防监控, 门禁, 以及考勤等系统中有着广阔的应用前景。

摘要:本文提出一种视频中实时的人脸检测算法, 该算法是基于Gentle Adaboost的多特征融合的快速算法, 首先采用运动和肤色特征提取候选的人脸区域, 再使用多层级联分类器定位人脸, 为了加快检测的速度, 还采用了边缘能量来排除非人脸窗口等策略。实验表明, 该算法的检测率到达98.78%, 误检率仅为2.04%, 且速度达到了每秒27帧, 满足各种实时的场合的要求。

关键词:人脸检测,边缘能量,Gentle Adaboost,类harr特征

参考文献

[1]P Viola, M J Jones.Robust real-time face detection[J].International Journal of Computer Vision, 2004, 57 (2) :151–173.

[2]M Castrillo′n, O De′niz, C Guerra, M.Herna′ndez.EN-CARA2:Real-time detection of multiple faces at differentresolutions in video streams[J].Vis Commun.Image, 2007, 18:130-140.

[3]韩海.在 (r, g) 和 (Cr, Cb) 彩色空间上进行肤色检测[J].计算机与现代化, 2003, 2 (3) :7-9.

[4]黄金凤, 戴在平.人脸检测系统的设计与实现[D].泉州:华侨大学, 2007.

上一篇:变电运维人员下一篇:配套产业体系