基于视频图像序列的抛洒物检测第1章概述1.1 论文研究背景如今,中国高速公路里程已达7.4万公里,居世界第二位[1]。
随着高速公路、城市公路通行量的不断增加,交通事故所带来的安全隐患也所之增加,在众多危害安全的事故中交通事故是当前最为严重的,而中国交通局对近10年交通事故官方统计显示,世界上因交通事故死亡人数最多的国家中,中国位列前三之中。
至今中国每年交通事故约50万起,每年的事故死亡人数均已达到10万人以上,已经连续十年居世界第一。
而今,随着我国经济的不断发展,交通需求的不断增长,高速公路和隧道已成为经济社会发展的重要助推器。
然而,高速公路在给人们带来巨大的经济效益和社会效益的同时,各类交通事故也明显增加,尤其是各类恶性重大事故频发,据不完全统计,2005年底每万公里死亡1823人,死亡人数以每年近20%的比率递增。
由于高速公路和隧道具有车流量大、行车速度高等特点,一旦发生交通事故将会非常严重,不仅一次事故殃及的车辆多、伤亡率高,还会造成严重的交通阻塞和行车延误,而且还可能会引起二次事故的发生,严重影响高速公路和隧道的整体通行能力和运营效率。
而高速公路里程长,交通事件自身又有很强的随机性,如何快速检测交通事件,最大限度地减少交通事件的发生和影响,一直是国际交通领域所关注的问题。
城市中大货车货运过程中抛洒物事件已经严重危害交通安全,成为造成交通事故的主要原因之一,其带来的安全隐患是我们急需重视及解决的问题。
因过往车辆上的抛洒物、坠落物引发的交通事故不仅给通行车辆和司乘人员造成了生命财产损失,影响了道路的通畅,而且给高速公路运营管理单位带来了经济损失和诉讼纠纷,损害了高速公路的社会形象。
每天通过车辆数以千万计,路面上抛洒物、坠落物随时随地可能出现[2]。
尽管高速公路管理单位已安排保洁工路面巡查,养排中心专职巡查,交警路政也在巡查,但仍不可能做到在时间上、空间上的无缝覆盖。
而这些抛洒物、坠落物很有可能随时引发交通事故,给过往司机旅客造成财产甚至生命的损失,给高速公路经营管理带来经济上、法律上的纠纷和后果。
如何及时准确的检测到抛洒物事件的发生,高效率的检测路面上产生的抛洒物,并且及时清理避免造成交通事故已经成为国内外交通部门关注的热点问题。
1.2 国内外研究现状目前,我国大部分的公路监控控制中心应用的视频图像检测系统均依赖于人工对事件进行检测,其功能更接近于一套“监视”系统而非自动“检测”系统[3]。
但是由于人员和技术上的问题,其方法操作起来具有局限性及效率低等问题,无法满足路面安全检测对实时性的要求,不过人工检测确实可以作为综合事件检测手段。
西方的一些发达国家已经研发并实施了一些基于视频图像检测的算法,缓解了愈加严重的由抛洒物引发的交通安全隐患,如加利福尼亚算法、贝叶斯算法、基于视频图像序列的抛洒物检测低通滤波算法、交通流模型算法、视频检测算法、人工神经网络算法等。
现场实验表明,这些算法可以有效的检测产生的抛洒物,及时的避免二次交通事故,减少人工检测需要投入的资源,并提高检测的效率,对抛洒物的检测有重要的意义。
就抛洒物事件而言,目前有许多算法来检测抛洒物事件的发生。
Elena Stringa、Carlo S. Regazzoni等人研制了一个系统,该系统可以检测在一段时间内场景的永久改变,并可以识别这种改变是由抛洒物引起的还是其他原因引起的[4]。
这些系统关注基于内容检索的能力,诸如颜色、纹理、语义学等,以便提取感兴趣区域内导致报警的原因的信息。
这个系统可以自动检测出触发报警的遗留物体的序列。
M.Spengler,B.schiele等人综合了跟踪和监视系统以检测抛洒物事件的发生,包括两个级联的模块:贝叶斯多目标跟踪模块和目标检测监视模块。
M.D.Beynon,D.J.Van Hook等人提出一个多摄像机视频监视系统来自动检测抛洒物事件。
每个抛洒物的拥有者都会被检测和跟踪,采用距离和时间参数,多摄像机用于重叠区域监视以适应多种不同的情况。
上述这些抛洒物检测方法多用于室内有人遗留或者偷窃物体的场景,用于抛洒物交通事件的检测的并不多。
国内人工检测技术的应用,除了电话报警之外,一些公路还布设了一定数量的视频远程监控系统,也有很多公路配备了交通巡逻车和事件检测车(Probe Vehicle)。
国内首次接触交通事件视频检测器是在二十一世纪初,当时的事件视频检测器的空白是由国外产品所填补的。
应国内道路发展所需,国外大多是将用于交通数据采集的视频检测器根据中国特殊的交通状况进行改进,使其具备基本交通事件检测功能,但由于图像质量、软件更新、产品维护等诸多方面严重受滞,从而导致视频检测器自身有无法弥补的诸多缺陷。
如沪宁高速采用的是比利时Traficon公司的核心技术。
而这些视频检测器多采用视频虚拟线圈技术,即通过在视频图像的车道上设置虚拟检测器,当车辆通过虚拟检测器时,就会产生检测信号,再经过处理和计算得到所需的交通数据。
这种方法只能检测到车辆拥堵、停车等基本事件,无法检测抛洒物事件的发生。
后来,国内许多大中型企业也开始涉足交通事件视频检测器领域,但也大多未打破固有的技术模式。
如今,我国已有了具有自主知识产权的技术。
比如2006年由北京宇航时代科技发展有限公司研发的“时代一号”道路交通事件视频检测系统己实现抛洒物、隧道烟雾火焰、路面突发异常等多项事件检测的功能[5]。
然而,由于我国涉足交通事件检测起步较晚,时间尚短,目前市场还有些混乱,在目前的服务水平下,检测效果也未必理想,其实际应用效果还有待检验,可能还存在很多问题。
很多高速公路、隧道路段采用的依旧是国外的解决方案,特别是有关抛洒物事件的检测,仍是一个有待解决的问题。
第2章开发工具简介2.1 OpenCV 简介OpenCV是一个开源的计算机视觉库,全名Open Source Computer Vision Library,是Intel开源计算机视觉库。
采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。
OpenCV还提供了Python、Ruby、MATLAB 以及其他语言的接口。
OpenCV的设计目标是执行速度尽量快,主要关注实时应用。
因它采用优化的C代码编写,能够充分利用多核处理器的优势。
OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。
OpenCV包含的函数有500多个,覆盖了计算机视觉的许多应用领域,如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等。
因为计算机视觉和机器学习密切相关,所以OpenCV还提供了MLL(Machine Learning Library)机器学习库。
该机器学习库侧重于统计方面的模式识别和聚类(Clustering)。
MLL除了用在视觉相关的任务中,还可以方便地应用于其他的机器学习场合。
本系统在分析国内外抛洒物检测基础上,着重研究基于视频图像序列的抛洒物事件检测。
采用OpenCV开源计算机视觉库对视频图像序列进行处理。
它实现了图像处理和计算机视觉方面的很多通用算法。
其重要特性有:1. OPenCV拥有包括300多个C函数的跨平台的中、高层API。
它不依赖于其它的外部库——尽管也可以使用某些外部库。
2. OpenCV对非商业应用和商业应用都是免费(FREE)的。
3. OpenCV为Intel Integrated Performance Primitives(IPP)提供了透明接口。
这意味着如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。
本系统采用OpenCV 1.0版本,主要包含CxCore、机器学习、CvAux、Cv、HighGUI 五个类别的功能。
其中主要包括:1. 基本函数。
如基础结构定义了OpenCV中所用的数据结构,包括点、矩形、图像信息、图像矩阵数组等;数组操作实现数组元素的访问、修改、变换和置换、算逻比较、及一些离散变换如DCT变换等;动态结构实现一些内存操作,序列、树、图等结构的操作;数据保存和运行时类型信息,如文件的读写等、错误处理等。
2. 图像处理和计算机视觉功能。
图像处理,如直方图、梯度边缘角点、采样差值几何变换、腐蚀膨胀、色彩空间变换等;结构分析,如轮廓处理、平面划分等;运动分析与对象跟踪,如一些运动模版、对象跟踪算法如Kalman。
3. 机器学习。
如Boosting、NormalBayes分类器、K近邻算法、决策树等常用的机器学习算法等。
4. 绘图函数。
用于在视频中绘制一些点线面或者文字等。
5. 用户交互,其他三维函数及系统函数等。
OpenCV是目前世界上最好的开源图像及视觉软件包之一,这一点已经被广泛认同,由于其开源软件的特性,任何开发人员都可以利用其开发自己的图像或者视觉应用,对于中小型的视觉项目,它是比较好的选择,开发人员可以在其基础之上做出功能更为强大的系统。
虽然Matlab也是目前世界上最强大的图像算法处理软件工具之一,可应用于图像处理计算及仿真领域,其编程快速,实现简单,但是其代码效率低,执行速度慢,编写的应用大多用于仿真,难以脱离Matlab 平台和商业化。
而OpenCV不仅开源,函数功能丰富,而且方便快捷,平台无关,可在Windows系统、Linux系统、MacOSx系统等操作平台上使用,与其他编程工具相结合,是二次开发的理想工具。
大多数计算机科学家和程序员已经意识到计算机视觉的重要作用,但是很少有人知道计算机视觉的所有应用[6]。
例如,大多数人或多或少地知道计算机视觉可用在监控方面,也知道视觉被越来越多地用在网络图像和视频方面。
少数人也了解计算机视觉在游戏界面方面的应用。
但是很少有人了解大多数航空和街道地图图像(如Google的Street View)也大量使用计算机定标和图像拼接技术。
一些人知道安全监控、无人飞行器或生物医学分析等方面的应用,但是很少人知道机器视觉是多么广泛地被用在工厂中:差不多所有的大规模制造的产品都在流水线上的某个环节上自动使用视觉检测。
OpenCV所有的开放源代码协议允许你使用OpenCV的全部代码或者OpenCV的部分代码生成商业产品。
使用了OpenCV后,你不必对公众开放自己的源代码或改善后的算法。
许多公司(IBM,Microsoft,Intel,SONY,Siemens 和Google等其他公司) 和研究单位(例如斯坦福大学、MIT、CMU、剑桥大学和INRIA) 中的人都广泛使用OpenCV,其部分原因是OpenCV采用了这个宽松的协议。
OpenCV在全世界广受欢迎,在中国、日本、俄罗斯、欧洲和以色列都有庞大的用户群。
自从OpenCV在1999年1月发布alpha版本开始,它就被广泛用在许多应用领域、产品和研究成果中。