一种基于视频技术的车辆检测和计数算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运动目标检测的视频处理过程如图 1 所示。
图 1 运动目标检测的处理过程
1. 2 常用检测方法的原理及实现方法 1. 2. 1 背景差法
背景差法[2]首先选取背景中的一幅或几幅图像
全面感知 Comprehensive Perception
的平均作为背景图像,然后把以后的序列图像当前帧
和背景图像相减,并进行背景消去操作。若所得到的
法就是设定一个阈值 T,用 T 将图像的数据分成两部
分: 大于 T 的像素群和小于 T 的像素群。这是研究 灰度变换 的 最 特 殊 的 方 法,称 为 图 像 的 二 值 化[5]。
把图像转换为只有黑白两种颜色的图像,会便于图像
的后期分析与处理,也易于观察。
二值图像的获取可以通过下面方法得到:
{255
30 物联网技术 2012 年 / 第 1 期
本设计是基于 OpenCV 库来进行的,可在 Windowsxp 及 Visual c + + 6. 0 的环境下运行调 试,本实验所采用的视频序列是分辨率为 352 × 240 的 AVI 格式的彩色视频流,其处理速度 为 24 帧 / s。 2. 1 背景的获取和更新
在算法中,可循环对每一个圈出的矩形框进行处 理。对一个矩形框,首先求取其中心点的值 aryX,以 及宽、高等基本数据。为了避免车辆的重复计数,可 利用边界进行计数,并定义两个边界变量 closetoleft 和 closetoright。操作时可首先根据 aryX 的值判断车 辆是否处于边界,若处于边界且未完全进入画面,则 不 断 更 新 边 界 值,即 令 closetoleft ( closetoright ) = aryX,并根据上一帧图像的边界量 closetoleft( closetoright) 判断车辆是否刚刚进入画面。若刚刚进入画 面,则根据 aryX 和 preX 的比较来判断车的行驶方向 是进入还是出去,并对于刚进入的车辆进行计数,其 余情况不计数,这样就可以避免重复计数,这样,即使 车辆在画面中停顿后又开始运动也不会重复计数。 实现这一功能的算法流程图如图 2 所示。
全面感知 Comprehensive Perception
一种基于视频技术的车辆检测和计数算法
南 楠,肖 曦
( 西南交通大学,四川 成都 610031)
摘 要: 介绍了一种基于视频的车辆检测和计数算法,分析了该算法程序的实现过程,并针对系统进行了实验。实
验结果证明,该车辆检测和计数系统可以检测交通路口的车辆,并且可以对通过的车辆进行计数。
像素数大于某一阈值,则判定被监视场景中有运动物
体,从而得到运动目标。这种差分法对于复杂背景下
的运动物体检测效果较好,一般能够提供最完整的特
征数据,而且计算量小,实用价值大。缺点是受光线、
天气等外界条件的影响较大。通常可以通过背景建
模来进行背景模型的动态更新以实现背景图像的建
模和自适应更新,以减少场景变化对视频图像检测分 割的影响[2]。
difference( x,y) = temp( x,y) - backimage( x,y)
在 OpenCV 中实现差分该功能的函数是:
cvAbsDiff( backimage,temp,difference)
1. 2. 2 二值化
一幅图像包括目标物体、背景还有噪声,要想从
多值的数字图像中直接提取出目标物体,最常用的方
背景差法的实现原理和实现方法如下: 设在 T0 时刻保存一帧图像做为背景图像保存为 backimage,
然后循环从视频中取一帧图像,设 Ti 时刻取一帧图 像保存为 temp - - 临时图像,将 backimage 和 temp
相减即得到差值图像 difference,再对 difference 进行
设实时加权的图像为 movingAverage,则: movingAverage( x,y) = ( 1 - α) · movingAverage ( x,y) + αimage( x,y) 上述公式中,右边的 movingAverage( x,y) 和 image( x,y) 均为前一时刻 Ti - 1 时背景图像和当前图像 的灰度值,公式左边的 movingAverage( x,y) 为当前时 刻 Ti 的背景图像各像素的灰度值。用变换过后的 movingAverage 优化 temp,即可实现背景的建模,这样 可减少环境变化对背景差法的影响,提高背景差法的 适应性。 1. 3 分析目标物体 通过对视频中运动车辆的提取,一般都可以得到 提取的目标物体( 即车辆) ,接下来就可以对系统进 行车辆计数功能的设计。 算法中,通过函数 cvFindContours( ) 来实现在二 值图像中寻找轮廓,并用函数 cvBoundingRect( ) 获得 矩形框的数据。 可以通过对图像中矩形框的数目的计算来对车 辆的数 目 进 行 计 数,但 是 该 方 法 也 存 在 以 下 几 个 问题: 首先,对视频的处理实际上是把视频分成一帧一 帧的图像进行处理,单纯的根据矩形框的数目进行车 辆计数会造成车辆的重复计数,因为同一辆车会在几 帧甚至几十帧图像中出现; 其次是对停止车辆的处理,若车辆驶入画面停了
收稿日期: 2011-09-17
28 物联网技术 2012 年 / 第 1 期
目标检测技术,将车辆从静止的背景中分离出来再进 行分析[1,8]。视 频 监 控 中 常 见 的 运 动 目 标 检 测 算 法 主要有 3 类: 光流法,邻帧差法和减背景方法。光流 法的优点 是 对 动 态 环 境 有 很 好 的 适 应 性,但 复 杂 度 高,抗噪性 差,难 以 符 合 视 觉 监 视 实 时 处 理 的 要 求; 邻帧差法虽 然 算 法 简 单,易 于 实 时 监 控,但 难 以 获 得精确目标,容易产生空洞; 减背景技术是最为常用 的,它把序列中的每帧与固定的静止参考帧( 如静 止的背景) 做帧差,若像素的差值大于某一阈值,就 判断此像素物体为运动目标上的。阈值操作后得到 的结果直 接 将 给 出 了 目 标 的 位 置、大 小、形 状 等 信 息[1-2]。综合分析,这里采用减背景法。
( Southwest Jiaotong University,Chengdu 610031,China)
Abstract: A video-based vehicle detection and counting algorithm is introduced. The implementation process of the algorithm is analyzed,and experiment for the system is performed. The vehicle detection and counting system can detect vehicle traffic intersection,and can count vehicles.
本设 计 中 采 用 运 行 期 均 值[7] 法 来 实 现 背 景 建 模。运行期均值法( running average) 是中值滤波法的 改进算法,其思想是通过引入学习率 α 来体现背景 图像对场景变化的响应。α 越低,则前景的变化越不 会影响背景,α 一般取 0. 05 左右,可以根据反复实验 调节 α 的大小,以找到最合适的 α 值。
Keywords: video technology; vehicle detection; counting algorithm; intelligent transportation
0引言
随着视频监控的普及,智能视频监控是当前备受 关注的前沿技术,该技术主要利用计算机视觉和视频 分析的方法对视频图像序列进行自动分析,从而实现 对动态场景中目标的定位、识别和跟踪,分析判断目 标行为,得出对图像内容含义的理解以及对客观场景 的解释。在视频监控系统中,车辆的检测在交通方面 意义重大。同时随着视频车辆检测技术的发展,人们 已不满足于仅仅检测出车辆,在国外,FHWA( 美国联 邦公路局) 就进一步利用此技术来提取交通参数,如 交通流量,十字路口的车辆转向信息等[1]。
2012 年 / 第 1 期 物联网技术 29
全面感知 Comprehensive Perception
一段时间又继续前进,那么,就必须要防止车辆的重 复计数;
第三是车辆重叠问题,由于二值图像的缺陷,重 叠的车辆会被同一个矩形框圈出,从而造成车辆的少 计数,因此,这里也需要通过算法对这个问题进行处 理和解决。
关键词: 视频技术; 车辆检测; 计数算法; 智能交通
中图分类号: TP274
文献标识码: A
文章编号: 2095-1302( 2012) 01-0028-05
Vehicle Detection and Counting Algorithm Based on Video Technology
NAN Nan,XIAO Xi
图 3 车辆计数流程图
当然也可以采用其他方法: 可限定一个时间阈 值 T,检测到某一目标车辆在背景中停滞时间过久或 者活动太小以至于可以忽略,则可认为该地点发生了 交通堵塞或者车祸事件,此时系统则应发出报警。
2 车辆检测技术与程序实验
图 2 车辆计数流程图
在寻找轮廓过程中,由于二值图像的缺陷会把重 叠在一起的车辆算成是一个大的矩形框,因此,如果 只在找到符合条件的矩形框后就令 numcar 自增 1, 则可能会造成车辆的误测,会少计算重叠的车辆。这
Bi ( x,y) 0
if( Di( x,y) > T) 其它
1. 2. 3 形态学滤波法[6]
在实际处理过程中,由于传感器本身的光学特性
以及传输线路的影响,可能会在每一帧图像中产生一
定的噪声,从而给目标检测带来困难。为提高目标检
测的有效性和正确性,有必要对 Bi( x,y) 图像进行形
态处理以消除噪声。
其实现方法是对二值化后的图像进行膨胀、腐蚀
等形态学滤波,这 可 以 在 OpenCV 中 由 函 数 Smooth
( ) 和 Dilate( ) 及 Erode( ) 实现,其中腐蚀 Erode( ) 和 膨胀 Dilate( ) 对滤波的效果起主要作用。 1. 2. 4 背景建模方法
背景差法的原理很容易理解,但是,这样的减背 景很容易受光照等环境物体的影响,背景差法的研究 主要集中在背景建模的研究上,即主要研究如何实现 背景图像 的 建 模 和 自 适 应 更 新[3],使 背 景 能 够 不 断 接近理想状态,以期减少场景变化对视频图像检测的 影响。目前 的 背 景 建 模[4] 方 法 主 要 有 时 间 差 分 法 ( temporal difference) 、中 值 滤 波 法 ( average \ median filtering) 、W4 方法、混合高斯法 ( mixture of Gauss) 、 隐马尔科夫模型( hidden Markov models,HMM) 等。
对车辆的检测和计数,可以检测交通路口的车流 量,通过对车辆的检测可以实现对车辆堵塞和车祸进 行报警等功能。
1 车辆检测和计数系统的实现步骤
1. 1 提取目标物体 对车辆的检 测,首 先 要 把“车 ”的 图 像 从 背 景 中
提取出来。由于针对交通系统中的车辆,特别是交通 路口的车辆,一般都是运动物体,ห้องสมุดไป่ตู้而可以运用运动
里可以利用算法解决,因为在实际路况中,车的大小 是有限的,如果程序框出的矩形框面积过大,则大部 分原因可能是车辆重叠造成的,所以,当矩形框面积 过大时,通常认为是多辆车重叠的结果,设计时可以 设定几个门限面积值,然后根据矩形框面积的大小是 否大于门限面积值来决定 numcar 自增几次。门限面 积值的设定可以通过反复的实验来确定,一个最合适 的值可使误差达到最小。实现该功能的流程图如图 3 所示。
灰度变换、二值变换等处理,即可较好的分离出前景
物体。也可以先将 backimage 和 temp 转换成单通道
灰度图像再进行相减,这样把两幅度的灰度值相减,
如果 backimage 和 temp 完全一样,则相减的值为 0,
即为一幅全黑的图像; 而两幅图相减后不为 0 的区域
即为前景物体所在区域。其差分公式如下:
图 1 运动目标检测的处理过程
1. 2 常用检测方法的原理及实现方法 1. 2. 1 背景差法
背景差法[2]首先选取背景中的一幅或几幅图像
全面感知 Comprehensive Perception
的平均作为背景图像,然后把以后的序列图像当前帧
和背景图像相减,并进行背景消去操作。若所得到的
法就是设定一个阈值 T,用 T 将图像的数据分成两部
分: 大于 T 的像素群和小于 T 的像素群。这是研究 灰度变换 的 最 特 殊 的 方 法,称 为 图 像 的 二 值 化[5]。
把图像转换为只有黑白两种颜色的图像,会便于图像
的后期分析与处理,也易于观察。
二值图像的获取可以通过下面方法得到:
{255
30 物联网技术 2012 年 / 第 1 期
本设计是基于 OpenCV 库来进行的,可在 Windowsxp 及 Visual c + + 6. 0 的环境下运行调 试,本实验所采用的视频序列是分辨率为 352 × 240 的 AVI 格式的彩色视频流,其处理速度 为 24 帧 / s。 2. 1 背景的获取和更新
在算法中,可循环对每一个圈出的矩形框进行处 理。对一个矩形框,首先求取其中心点的值 aryX,以 及宽、高等基本数据。为了避免车辆的重复计数,可 利用边界进行计数,并定义两个边界变量 closetoleft 和 closetoright。操作时可首先根据 aryX 的值判断车 辆是否处于边界,若处于边界且未完全进入画面,则 不 断 更 新 边 界 值,即 令 closetoleft ( closetoright ) = aryX,并根据上一帧图像的边界量 closetoleft( closetoright) 判断车辆是否刚刚进入画面。若刚刚进入画 面,则根据 aryX 和 preX 的比较来判断车的行驶方向 是进入还是出去,并对于刚进入的车辆进行计数,其 余情况不计数,这样就可以避免重复计数,这样,即使 车辆在画面中停顿后又开始运动也不会重复计数。 实现这一功能的算法流程图如图 2 所示。
全面感知 Comprehensive Perception
一种基于视频技术的车辆检测和计数算法
南 楠,肖 曦
( 西南交通大学,四川 成都 610031)
摘 要: 介绍了一种基于视频的车辆检测和计数算法,分析了该算法程序的实现过程,并针对系统进行了实验。实
验结果证明,该车辆检测和计数系统可以检测交通路口的车辆,并且可以对通过的车辆进行计数。
像素数大于某一阈值,则判定被监视场景中有运动物
体,从而得到运动目标。这种差分法对于复杂背景下
的运动物体检测效果较好,一般能够提供最完整的特
征数据,而且计算量小,实用价值大。缺点是受光线、
天气等外界条件的影响较大。通常可以通过背景建
模来进行背景模型的动态更新以实现背景图像的建
模和自适应更新,以减少场景变化对视频图像检测分 割的影响[2]。
difference( x,y) = temp( x,y) - backimage( x,y)
在 OpenCV 中实现差分该功能的函数是:
cvAbsDiff( backimage,temp,difference)
1. 2. 2 二值化
一幅图像包括目标物体、背景还有噪声,要想从
多值的数字图像中直接提取出目标物体,最常用的方
背景差法的实现原理和实现方法如下: 设在 T0 时刻保存一帧图像做为背景图像保存为 backimage,
然后循环从视频中取一帧图像,设 Ti 时刻取一帧图 像保存为 temp - - 临时图像,将 backimage 和 temp
相减即得到差值图像 difference,再对 difference 进行
设实时加权的图像为 movingAverage,则: movingAverage( x,y) = ( 1 - α) · movingAverage ( x,y) + αimage( x,y) 上述公式中,右边的 movingAverage( x,y) 和 image( x,y) 均为前一时刻 Ti - 1 时背景图像和当前图像 的灰度值,公式左边的 movingAverage( x,y) 为当前时 刻 Ti 的背景图像各像素的灰度值。用变换过后的 movingAverage 优化 temp,即可实现背景的建模,这样 可减少环境变化对背景差法的影响,提高背景差法的 适应性。 1. 3 分析目标物体 通过对视频中运动车辆的提取,一般都可以得到 提取的目标物体( 即车辆) ,接下来就可以对系统进 行车辆计数功能的设计。 算法中,通过函数 cvFindContours( ) 来实现在二 值图像中寻找轮廓,并用函数 cvBoundingRect( ) 获得 矩形框的数据。 可以通过对图像中矩形框的数目的计算来对车 辆的数 目 进 行 计 数,但 是 该 方 法 也 存 在 以 下 几 个 问题: 首先,对视频的处理实际上是把视频分成一帧一 帧的图像进行处理,单纯的根据矩形框的数目进行车 辆计数会造成车辆的重复计数,因为同一辆车会在几 帧甚至几十帧图像中出现; 其次是对停止车辆的处理,若车辆驶入画面停了
收稿日期: 2011-09-17
28 物联网技术 2012 年 / 第 1 期
目标检测技术,将车辆从静止的背景中分离出来再进 行分析[1,8]。视 频 监 控 中 常 见 的 运 动 目 标 检 测 算 法 主要有 3 类: 光流法,邻帧差法和减背景方法。光流 法的优点 是 对 动 态 环 境 有 很 好 的 适 应 性,但 复 杂 度 高,抗噪性 差,难 以 符 合 视 觉 监 视 实 时 处 理 的 要 求; 邻帧差法虽 然 算 法 简 单,易 于 实 时 监 控,但 难 以 获 得精确目标,容易产生空洞; 减背景技术是最为常用 的,它把序列中的每帧与固定的静止参考帧( 如静 止的背景) 做帧差,若像素的差值大于某一阈值,就 判断此像素物体为运动目标上的。阈值操作后得到 的结果直 接 将 给 出 了 目 标 的 位 置、大 小、形 状 等 信 息[1-2]。综合分析,这里采用减背景法。
( Southwest Jiaotong University,Chengdu 610031,China)
Abstract: A video-based vehicle detection and counting algorithm is introduced. The implementation process of the algorithm is analyzed,and experiment for the system is performed. The vehicle detection and counting system can detect vehicle traffic intersection,and can count vehicles.
本设 计 中 采 用 运 行 期 均 值[7] 法 来 实 现 背 景 建 模。运行期均值法( running average) 是中值滤波法的 改进算法,其思想是通过引入学习率 α 来体现背景 图像对场景变化的响应。α 越低,则前景的变化越不 会影响背景,α 一般取 0. 05 左右,可以根据反复实验 调节 α 的大小,以找到最合适的 α 值。
Keywords: video technology; vehicle detection; counting algorithm; intelligent transportation
0引言
随着视频监控的普及,智能视频监控是当前备受 关注的前沿技术,该技术主要利用计算机视觉和视频 分析的方法对视频图像序列进行自动分析,从而实现 对动态场景中目标的定位、识别和跟踪,分析判断目 标行为,得出对图像内容含义的理解以及对客观场景 的解释。在视频监控系统中,车辆的检测在交通方面 意义重大。同时随着视频车辆检测技术的发展,人们 已不满足于仅仅检测出车辆,在国外,FHWA( 美国联 邦公路局) 就进一步利用此技术来提取交通参数,如 交通流量,十字路口的车辆转向信息等[1]。
2012 年 / 第 1 期 物联网技术 29
全面感知 Comprehensive Perception
一段时间又继续前进,那么,就必须要防止车辆的重 复计数;
第三是车辆重叠问题,由于二值图像的缺陷,重 叠的车辆会被同一个矩形框圈出,从而造成车辆的少 计数,因此,这里也需要通过算法对这个问题进行处 理和解决。
关键词: 视频技术; 车辆检测; 计数算法; 智能交通
中图分类号: TP274
文献标识码: A
文章编号: 2095-1302( 2012) 01-0028-05
Vehicle Detection and Counting Algorithm Based on Video Technology
NAN Nan,XIAO Xi
图 3 车辆计数流程图
当然也可以采用其他方法: 可限定一个时间阈 值 T,检测到某一目标车辆在背景中停滞时间过久或 者活动太小以至于可以忽略,则可认为该地点发生了 交通堵塞或者车祸事件,此时系统则应发出报警。
2 车辆检测技术与程序实验
图 2 车辆计数流程图
在寻找轮廓过程中,由于二值图像的缺陷会把重 叠在一起的车辆算成是一个大的矩形框,因此,如果 只在找到符合条件的矩形框后就令 numcar 自增 1, 则可能会造成车辆的误测,会少计算重叠的车辆。这
Bi ( x,y) 0
if( Di( x,y) > T) 其它
1. 2. 3 形态学滤波法[6]
在实际处理过程中,由于传感器本身的光学特性
以及传输线路的影响,可能会在每一帧图像中产生一
定的噪声,从而给目标检测带来困难。为提高目标检
测的有效性和正确性,有必要对 Bi( x,y) 图像进行形
态处理以消除噪声。
其实现方法是对二值化后的图像进行膨胀、腐蚀
等形态学滤波,这 可 以 在 OpenCV 中 由 函 数 Smooth
( ) 和 Dilate( ) 及 Erode( ) 实现,其中腐蚀 Erode( ) 和 膨胀 Dilate( ) 对滤波的效果起主要作用。 1. 2. 4 背景建模方法
背景差法的原理很容易理解,但是,这样的减背 景很容易受光照等环境物体的影响,背景差法的研究 主要集中在背景建模的研究上,即主要研究如何实现 背景图像 的 建 模 和 自 适 应 更 新[3],使 背 景 能 够 不 断 接近理想状态,以期减少场景变化对视频图像检测的 影响。目前 的 背 景 建 模[4] 方 法 主 要 有 时 间 差 分 法 ( temporal difference) 、中 值 滤 波 法 ( average \ median filtering) 、W4 方法、混合高斯法 ( mixture of Gauss) 、 隐马尔科夫模型( hidden Markov models,HMM) 等。
对车辆的检测和计数,可以检测交通路口的车流 量,通过对车辆的检测可以实现对车辆堵塞和车祸进 行报警等功能。
1 车辆检测和计数系统的实现步骤
1. 1 提取目标物体 对车辆的检 测,首 先 要 把“车 ”的 图 像 从 背 景 中
提取出来。由于针对交通系统中的车辆,特别是交通 路口的车辆,一般都是运动物体,ห้องสมุดไป่ตู้而可以运用运动
里可以利用算法解决,因为在实际路况中,车的大小 是有限的,如果程序框出的矩形框面积过大,则大部 分原因可能是车辆重叠造成的,所以,当矩形框面积 过大时,通常认为是多辆车重叠的结果,设计时可以 设定几个门限面积值,然后根据矩形框面积的大小是 否大于门限面积值来决定 numcar 自增几次。门限面 积值的设定可以通过反复的实验来确定,一个最合适 的值可使误差达到最小。实现该功能的流程图如图 3 所示。
灰度变换、二值变换等处理,即可较好的分离出前景
物体。也可以先将 backimage 和 temp 转换成单通道
灰度图像再进行相减,这样把两幅度的灰度值相减,
如果 backimage 和 temp 完全一样,则相减的值为 0,
即为一幅全黑的图像; 而两幅图相减后不为 0 的区域
即为前景物体所在区域。其差分公式如下: