基于图像处理的铁路沿线视频监控算法设计
0 引 言
近些年来,在很多涉及生命财产安全的行业中,安全监控越来越引起人们的重视。铁路行业的安全监控一直以来是铁道部和国家关注的重点项目,随着我国火车的不断提速,安全问题不容忽视,如何保证行车安全和行人安全直接关系到整个铁路行业的发展。
本文设计的铁路沿线视频监控方法是通过一种基于视频图像处理实现对于行人穿越铁路线的监控。当被监视区域中出现目标后可以自动报警并且存储相应的故障照片,为事后的工作提供可靠的依据。算法设计的最大特点是提出一种以图像处理为核心的安全监控设计,通过图像处理可以自动判断有无危险情况发生并自动报警,特别是在监控人员不在时能够发挥很大的作用。
1视频监控系统中背景的提取
背景图像是指视场中没有运动目标的图像,即使视场内有运动目标,背景算法也通过技术处理除去目标而获得没有运动目标的背景图像。目前常规的背景提取的方法有统计直方图法、统计中值法、多帧图像平均法和连续帧差法等。
以上四种方法分别有各自的缺点。统计直方图法存在的问题是随着统计帧数的增加,得到的背景图像效果并不明显;统计中值法存在的问题与统计直方图法也相差无几,此外该算法实现时计算量较大,占用计算机内存较大,处理较慢;多帧图像平均法得到背景图像受目标运动量的影响比较大,随着平均帧数的增加,噪声消除才会有所改善;连续帧差法静止的背景图像不能直接获得,其关键是如何在有目标运动的情况下获得良好的背景图像,由于该算法并没有对帧差分本身进一步处理,存在的问题是易把纹理相似的前景交叠区域误认为背景。
综合考虑以上四种背景提取方法,本文采用结合多帧图像平均法和连续帧差法这两种方法来进行视频序列背景的提取。考虑到运动目标的多样性,有目标经过视场而引起的变化长时间内可忽略不计。多帧图像平均法时将运动目标看作为噪声,用累加平均的方法消除噪声,利用目标运行一段时间的序列图像进行平均而得到视场背景图像。连续帧差算法是通过当前帧的图像与前一帧图像的差值找到运动区域,对运动区域的背景保持不变,而非运动区域的背景则用当前帧进行更新,经过一段时间的迭代便可提取出背景。两种方法的结合可以很好地弥补各自的缺点,能够适应铁路沿线周边环境的要求,对存在运动目标的背景能够提取出质量较高的背景图像。具体过程如下:
只考虑三帧的情况下,首先从视频序列中随便提取三帧,如图1(a)~图1(c)所示。然后对提取出来的三帧图像分别转换为灰度图并求出它们的灰度平均图像,以灰度平均图像作为连续帧差法的第一帧图像(即原始图像)。通过原始图像和提取的三帧图像来做连续帧差法,得到的背景图像经过灰度图如图1(d)所示。
2视场中危险区域的划定
从已经得到的背景图像灰度图开始,进行一系列的图像处理,将会得到一幅标定了危险区域的二值图像。首先对背景灰度图进行均匀化处理,依次是图像增强、图像二值化、区域标记、除去图像毛糙和图像膨胀。
图像二值化后的结果如图2(a)所示,得到的最终结果如图2(b)所示。从两幅图像的对比可以看出,图像经过一系列处理后,基本标定了危险区域。对于得到的图2(b),图中白色的区域为铁道双轨内部即设定的危险区域。应用此种方法得到的结果图像在光照条件充足情况下能够得到更好的效果,不适用于光照条件不足和夜间的危险区域标定。
3 危险情况存在时图像的自动保存
由于视频拍摄的位置是平行于地面,所以拍摄到的视场很宽广。如果对拍到的整个铁路线进行监控,那么周围环境会对图像处理带来很大的干扰。所以为了达到较好的监控效果,只考虑沿线的某一块区域,本文选定的监测区域是:行的位置从346~386的像素点,列的位置从341~370的像素点。待监测的视频是25帧/s,每秒钟从视频中抽取一帧进行监测。对于每一帧待监测的图像首先要进行图像的预处理,处理步骤包括有转换为灰度图、二值化、图像膨胀等。把预处理后的图像和图2(b)做相与运算,然后对得到的结果图像在监测区域内进行像素统计。
首先设定一个计数器counter,并令其初始值为0。在监测区域内对每个像素点进行二值判断,如果像素点的值为0(即黑色点),那么计数器自动加1,待监测区域内的每个点判断完毕后,再对counter的值进行判断。如果counter的值大于200(说明监测区域有很大的干扰,即有人进入),则自动对当前待监测的帧以灰度图的形式保存起来,如果counter的值小于等于200(说明监测区域没有受到足够大的干扰),则本帧监测结束,不保存图像,转而监测下一帧。 对每一帧都做上述处理,经过一段时间的监测后,系统会自动保存一些危险情况存在时的图像(灰度图形式)。图像自动保存方法流程图如图3所示。
从监控结果来看,得到的是一幅幅危险情况存在时的图像,图像自动保存的部分结果如图4所示。这些图像是从10 min的视频数据中自动抽取出来的,从这些图像中可以分析整个设计的识别率,识别率的高低影响着算法设计和程序编写的好坏。
通过铁轨的人总数为114人左右,计算机成功识别出的越轨行为有99人、计算机没有识别出的越轨行为有15人,本身无越轨行为但被计算机识别出的有9人。监控结果的成功率=(99÷114)×100%=86.8%;监控结果的漏报率=(15÷114)×100%=13.2%;监控结果的误报率=(9÷114)×100%=7.9%。
4 一种目标识别算法
铁路上运动目标主要分为:行人、车辆、小动物和其他。
在对目标进行识别前先要对危险情况存在时灰度图图像自动保存的结果进行必要的图像处理,目的是为后续的目标识别奠定基础,使经过处理后的图像更加方便地应用于目标识别。在这里图像预处理主要包括增强图像对比度、中值滤波和平滑处理等。目标识别算法的流程图如图5所示。
根据运动目标的分类可知,车辆的周长是最长的,所以首先直接判断图像中运动目标的周长,如果大于某一设定好的阈值,则可轻易判断出视场中目标属于车辆。余下的目标中,行人比小动物的纵横轴比值大,设定纵横轴比阈值,据此可以判断出目标属于行人。最后将设定一个面积阈值,面积大于此阈值则可判断目标属于小动物,否则目标属于其他一些环境的干扰。
5 结 语
本文首先对拍摄到的视频进行背景提取,根据提取到的背景经过一系列的图像处理最终对视场中危险区域进行划定。然后系统自动监测视频数据,自动以灰度图的形式保存危险情况存在时的图像,目的是为了后续的目标识别。最后根据铁路沿线上可能出现的运动目标,提出了一种运动目标识别算法。从监控结果可以看出,整个算法设计具有一定的可行性,可以作为基于图像处理的铁路沿线视频监控的一种算法,有一定的参考价值。
|