计划周记进度检查.xls

基于视频的车辆检测系统设计【带程序】

收藏

压缩包内文档预览:
预览图 预览图
编号:273431    类型:共享资源    大小:1.10MB    格式:RAR    上传时间:2014-04-28 上传人:上*** IP属地:江苏
0
积分
关 键 词:
基于 视频 车辆 检测 系统 设计 程序
资源描述:

基于视频的车辆检测系统设计

51页 20000字数+说明书+任务书+开题报告+基于视频的车辆检测系统代码

任务书.doc

基于视频的车辆检测系统代码.rar

基于视频的车辆检测系统设计开题报告.doc

基于视频的车辆检测系统设计论文.doc

外文翻译--数字图像处理和边缘检测.doc

相关资料.doc

计划周记进度检查.xls


摘  要

当今科技飞速发展,带来了智能交通的空前发达,也为经济可持续发展做出一定贡献。交通运输在一个国家的经济社会发展中起着助推器的作用。交通运输的监控与管理智能化也变得尤为重要。基于视频的车辆检测作为智能交通系统的基石, 具有直观性、大范围检测、安装和维护方便等优势,成为采集交通信息技术的有力工具。因而视频车辆检测研究具有非常重要的意义。

本论文首先介绍了图像检测的研究背景以及发展情况,然后重点介绍了本论文中进行车辆检测的技术和方法。该方法先对图像进行灰度值化处理,中值滤波处理及二值化处理,然后利用车辆移动的特点进行检测,最后将移动中的车辆进行加框标记。实验结果表明, 本程序设计能够在一定的误差范围内实现对移动车辆进行检测。且效果良好。

本文视频车辆检测系统是采用图像处理的方法进行设计,本研究有着一定的现实意义。


关键词:智能交通;车辆检测;图像处理;MATLAB


目  录

摘  要III

AbstractIV

目  录V

1 绪论1

1.1 课题背景与意义1

1.2 国内发展概况1

1.3 视频车辆检测系统概述2

1.4 图像处理概述3

1.5 本课题工作与结构安排3

1.6 开发工具及运行环境4

2 软件介绍5

2.1 MATLAB 概况5

2.2 MATLAB的语言特点6

2.3 基本运算与函数7

3 基于视频的车辆检测方法15

3.1 基于视频的车辆检测方法15

3.1.1 基于帧间差分的方法15

3.1.2 基于光流场的方法15

3.1.3 基于背景差的方法16

3.2 车辆阴影分割技术16

4 车辆目标的图像处理方法17

4.1 彩色图像灰度化17

4.2 图像分割19

4.2.1 阈值分割方法19

4.2.2 最大方差自动取阈值(自适应二值化)19

4.2.3 基于边缘检测的图像分割22

4.3 基于数学形态学分析24

4.3.1 图像形态学处理24

4.3.2 实验结果比较26

4.4 图像填充27

5 基于帧间差分法的车辆检测盒计数方法29

5.1 帧间差分法29

5.2 二值化29

5.3 形态学滤波30

5.4 系统流程图31

5.5 分析目标物体和计数32

6 结论与展望35

6.1 结论35

6.2 不足之处与对未来的展望35

致  谢37

参考文献38

附  录39

1.3 视频车辆检测系统概述

   通过对道路交通信息和交通目标的各种动态行为(如停车、违章超速、超车等等)的实时监测,实现自动统计各交通路段上行驶的车数量、计算行驶车速度,识别分类行驶车辆等各种交通参数,达到监测交通道路状况的作用。同时,将监测和识别的交通状况信息存储下来,为分析和管理交通提供依据,因此它可视为一个交通信息的管理系统。

   利用摄像机将交通流图像捕捉下来,然后将这些捕捉到的视频图像传到计算机进行图像处理、分析和理解,得到交通流数据与交通路况等信息。

   将摄像机安装在合适的位置,一般高度为5-20米。若道路口有龙门架、隧道、过街桥、红绿灯杆可直接安装,不需再安装杆。摄像机一般为工业用黑白或彩色CCD芯片型,拥有300线上的清晰度,通常安装于室外防护罩中。目前众多城市都架设有电子警察系统,可以利用CCD摄像机把两者合二为一,降低了成本;将摄像机捕捉的视频送入视频车检器上。在检测器的视频画面上标记监测区域,这种用软件方法设置监测区域提高了系统的通用性和灵活性,使它可以使用各种交通路口;对捕捉的视频运用一定的图像分析处理算法进行处理,提取相关的交通参数。把视频图像进行压缩,通过通信线路或无线把交通参数和压缩后的图像传到远端控制中心,供操作人员使用。

1.4 图像处理概述

   视频车辆检测系统是一种利用图像处理和模式识别技术实现对交通目标检测和识别的计算机处理系统。

   “图”是物体投射或反射光的分布,“像”是人视觉系统对图的接受在大脑中形成的印象或反映,是主观和客观的结合。图像处理即是对图像进行加工处理,从而达到人类的视觉心理和应用的要求。

   人类获取外界信息有多种方法,包括视觉、听觉、触觉、嗅觉、味觉等。但绝大部分是来自我们视觉所看到的图像信息,即所谓“百闻不如一见”。图像的范围非常广泛,包括:各类图片,如普通照片、X光片、遥感图片;各类光学图像,如电影、电视等;人们心目中的有形影像以及外部描述,如绘图、绘画等。

   数字影像是将照片或录像等模拟信号经抽样和数字化后形成。因为便于计算机运算与储存。所储存的亮点即为图像的基本单位,成为像素。像素的亮度是灰度值,灰度值被划分为256等级,最暗为0,最亮为255.一张图像被数字化成方格所组成的像素,每一格标有一对坐标,一个表示行值,另一则表示列值。行值从影像的最左边开始标记自0一直到n,n表示行值中最大值。相同的,列值从最上方起定位0,自下移动至m值,m表示图形全部列数。

内容简介:
无锡太湖学院 信机 系 计算机科学技术 专业毕 业 设 计论 文 任 务 书一、题目及专题:、 题目 基于视频的车辆检测系统 、专题 二、课题来源及选题依据 课题来源:导师选定 选题依据:现如今,随着我国国民经济的快速发展,居民的收入水平越来越高,汽车已经成为了十分普遍的交通工具。对汽车的检测与管理日趋重要。同时基于视频以及以计算机视觉为基础的对车辆进行识别检测的理论越来越多。通过对图像进行分析,能够对交通信息进行全方位的管理。可以通过分析相关数据来评估和预测特定时间段的车辆情况。 一个完善的汽车检测既帮助管理人员对交通状况进行及时、准确的分析和处理最大限度地降低处理信息的劳动强度,使交通管理水平产生质的飞跃,跟上信息时代的步伐。 三、本设计(论文或其他)应达到的要求: 了解图像识别与检测 熟练掌握对图像进行灰度化处理, 中值滤波处理及二值化处理. 熟练掌握从图像中将某个特定区域与其它部分进行分离并提取出想要识别的物体的处理。 熟练使用MATLAB提供的图形用户界面(GUI)工具。 完成对移动中车辆的检测与计数。 四、接受任务学生: 计科94 班 姓名 陈嘉斌 五、开始及完成日期:自 2012 年 11 月 12 日 至 2013年 5月 25日六、设计(论文)指导(或顾问):指导教师签名 签名 签名教研室主任学科组组长研究所所长签名 系主任 签名2012年11月12日I无锡太湖学院毕业设计(论文)开题报告题目: 基于视频的车辆检测系统 信机 系 计算机科学与技术 专业学 号: 学生姓名: 指导教师: (职称:副教授 ) (职称: )2011年11月20日 课题来源导师指定科学依据(包括课题的科学意义;国内外研究概况、水平和发展趋势;应用前景等)现如今,随着我国国民经济的快速发展,居民的收入水平越来越高,汽车已经成为了十分普遍的交通工具。对汽车的检测与管理日趋重要。同时基于视频以及以计算机视觉为基础的对车辆进行识别检测的理论越来越多。通过对图像进行分析,能够对交通信息进行全方位的管理。可以通过分析相关数据来评估和预测特定时间段的车辆情况。对图像进行分析可以对相关交通状态进行检测,例如:车速检测、流量检测等;以及对一些异常状况进行检测,例如:超速检测、车祸检测,等一系列违章检测。从而实现对交通运行的智能管理与控制。 一个完善的汽车检测既帮助管理人员对交通状况进行及时、准确的分析和处理最大限度地降低处理信息的劳动强度,使交通管理水平产生质的飞跃,跟上信息时代的步伐。 研究内容通过对视频逐帧选取图像,然后对每一帧的图像进行处理,最后再将处理后的没帧图像按原来的顺序连接成视频。本系统可以根据图像中灰度的变化来确定汽车的存在与位置等。拟采取的研究方法、技术路线、实验方案及可行性分析本系统运用MATLAB图像分割技术来检测运动中的汽车。由于视频文件是图像一帧一帧按顺序组成的,所以对于视频文件的处理同样可以用对图像处理的方法。逐帧截取图像对其进行处理,然后再将他们重新按顺序连接起来。在处理图像时,将会使用很多视频处理函数,例如读取文件的mmreader函数,使视频可视化的implay函数,还将涉及到数学形态学的函数,例如imextendedmax,imopen,bwareaopen等。本系统首先会使用mmreader函数读取视频,此函数可支持多种视频格式,如MPG.MPEG,WMV,AVI,ASF,ASX。然后使用implay函数播放。选取一些具有代表性的图像帧,将其传化成灰度图像。使用imextendedmax函数来取出深色大目标,再使用imopen函数来去除一些小目标。最后可以进行其他类型的检测。研究计划及预期成果2012年12月4日以前:填写毕业设计开题报告,并按开题报告条款进入毕业设计阶段2012年12月2013年1月:外文资料翻译,系统设计2013年2月:系统设计、编码2013年3月2013年4月:测试、验收,撰写毕业论文2013年5月:上交论文、系统代码、根据导师意见修改毕业论文并完善论文2013年6月2日4日,进行毕业答辩预期成果:每步安排都可以按时完美完成特色或创新之处 本课题是使用MATLAB图像分割技术。读取一帧图像并检测图像中的汽车,然后使用循环逐帧对图像进行检测。已具备的条件和尚需解决的问题已具备的条件:1、已知系统的初步需求。2、硬件方面有一台计算机。指导教师意见 指导教师签名:年 月 日教研室(学科组、研究所)意见 教研室主任签名: 年 月 日系意见 主管领导签名: 年 月 日编号无锡太湖学院毕业设计(论文)题目: 基于视频的车辆检测系统 信机 系 计算机科学与技术 专业学 号: 学生姓名: 指导教师: (职称: 副教授 ) (职称: )2013年5月25日III无锡太湖学院本科毕业设计(论文)诚 信 承 诺 书本人郑重声明:所呈交的毕业设计(论文) 基于视频的车辆检测系统 是本人在导师的指导下独立进行研究所取得的成果,其内容除了在毕业设计(论文)中特别加以标注引用,表示致谢的内容外,本毕业设计(论文)不包含任何其他个人、集体已发表或撰写的成果作品。 班 级: 计科94 学 号: 0921157 作者姓名: 2012 年 5 月 25 日摘 要当今科技飞速发展,带来了智能交通的空前发达,也为经济可持续发展做出一定贡献。交通运输在一个国家的经济社会发展中起着助推器的作用。交通运输的监控与管理智能化也变得尤为重要。基于视频的车辆检测作为智能交通系统的基石, 具有直观性、大范围检测、安装和维护方便等优势,成为采集交通信息技术的有力工具。因而视频车辆检测研究具有非常重要的意义。本论文首先介绍了图像检测的研究背景以及发展情况,然后重点介绍了本论文中进行车辆检测的技术和方法。该方法先对图像进行灰度值化处理,中值滤波处理及二值化处理,然后利用车辆移动的特点进行检测,最后将移动中的车辆进行加框标记。实验结果表明, 本程序设计能够在一定的误差范围内实现对移动车辆进行检测。且效果良好。本文视频车辆检测系统是采用图像处理的方法进行设计,本研究有着一定的现实意义。关键词:智能交通;车辆检测;图像处理;MATLAB AbstractToday, science and technology develop quickly. And it make Intelligent Transportation System was more developed. It has also made a certain contribution for the sustainable development of economy. Transportation plays the role of booster in economic and social development of a country. It is important that make monitoring and management of transportation to be more intelligence. Vehicle Detection System that bases on the video is footstone of Intelligent Transportation System. It can watch easily. It can do a large-scale detection. And its installation and maintenance is convenient. It will be a helpful tool of collecting the information of traffic. So it has an important meaning for researching the detection of vehicles.This dissertation introduces the background of the research and the development of the situation. Than introduces the technology and method of Vehicle Detection System detailed. The method is to make the image gray processing, median processing and binary image processing at the first. Using the characteristics of vehicle moving detects vehicles at the second. Finally, sign frames on vehicles. The experimental results show that the program can detect the moving vehicles within a certain range of error and has good result.This Vehicle Detection System that bases on the video designed with the technology of image processing. It is of practical significance in this research.Key words: intelligent transportation; vehicle detection; image processing; MATLABIII目 录摘 要IIIAbstractIV目 录V1 绪论11.1 课题背景与意义11.2 国内发展概况11.3 视频车辆检测系统概述21.4 图像处理概述31.5 本课题工作与结构安排31.6 开发工具及运行环境42 软件介绍52.1 MATLAB 概况52.2 MATLAB的语言特点62.3 基本运算与函数73 基于视频的车辆检测方法153.1 基于视频的车辆检测方法153.1.1 基于帧间差分的方法153.1.2 基于光流场的方法153.1.3 基于背景差的方法163.2 车辆阴影分割技术164 车辆目标的图像处理方法174.1 彩色图像灰度化174.2 图像分割194.2.1 阈值分割方法194.2.2 最大方差自动取阈值(自适应二值化)194.2.3 基于边缘检测的图像分割224.3 基于数学形态学分析244.3.1 图像形态学处理244.3.2 实验结果比较264.4 图像填充275 基于帧间差分法的车辆检测盒计数方法295.1 帧间差分法295.2 二值化295.3 形态学滤波305.4 系统流程图315.5 分析目标物体和计数326 结论与展望356.1 结论356.2 不足之处与对未来的展望35致 谢37参考文献38附 录39V基于视频的车辆检测系统1 绪论1.1 课题背景与意义当今科技飞速发展,带来了智能交通的空前发达,也为经济可持续发展做出一定贡献。交通运输在一个国家的经济社会发展中起着助推器的作用。随着交通运输业的高速发展,交通堵塞、事故等等负面效应也日益突出,并越发成为全球性共同问题。针对日益严重交通需求,有限的资源和日益恶化的环境,需要依靠新的办法来控制交通需求。智能交通系统正在这样的矛盾中应运而生。智能交通系统(ITS),随着信息技术、计算机技术、数据通信传输技术、模式识别技术、图像处理技术等学科的迅猛发展,得到了日益广泛的应用,极大提高了交通管理的智能化、科学化、规范化水平。特别是计算机视觉技术的发展为提高交通系统智能化程度,提供了有效手段。要从根本上解决这些问题,必定要实现交通运输系统的智能化,使交通运行处于最佳状态,改善交通堵塞,提高运输能力和整个交通系统的机动性、安全性和效率。智能交通系统是目前交通领域的重要研究课题之一。实时动态的交通信息是实现交通智能化的关键所在。作为交通流基本参数之一,实时计数也具有基本的交通流特性,它的采集手段很多,目前比较成熟的有磁性检测、电磁波检测等。而在道路实时行车流的采集和应用处理是ITS各有关项目如:城市公共交通智能化调度系统、自动驾驶系统、物流管理系统实施的基础数据和重要前提之一。目前有关实时车流信息采集、维护以及处理的研究有了很大发展。计算机和电子信息技术的高速发展,使得数据处理加工能力逐步增强,为图像处理、计算机视觉和模式识别技术应用于智能交通信息采集提供了强有力的保障。该系统通过摄像机对交通信息流进行摄像,利用图像处理和模式识别技术对连续的交通信息流进行处理,以此达到监测交通信息流的目的。同时,现场的交通视频信号也能够为电视监控共用。近年来,该系统得到快速发展,作为一种检测手段,视频检测技术所提供的丰富交通信息,以及所具有的各种优点,都是其他方法难以比拟的。本文是基于视频图像处理的车辆信息处理系统,重点研究实时车辆检测以及车辆计数涉及到的相关内容和算法,其目的是提高交通管理的自动化、现代化水平。其中所有的数字图像处理都通过MATLAB仿真实现,通过本文的研究也以后相关开发应用积累经验。1.2 国内发展概况目前,国外一些发达国家的摄像机以及图像采集卡都处于先进水平,在视频运动检测和图像处理方面的技术也比较成熟,从而开发出的汽车检测系统也会具有相当高的性能。而国内与其比较还有相当大的差距,国内对智能的车辆检测系统的研究起步比较晚。车辆检测系统也是从国外引进,通过学习外国的技术与国内自身的交通情况以及车辆特点相结合起来开发的产品。国内车辆检测按照时间与技术的发展过程可分为以下4个:(1) 普通照相机式在80年代这种由普通张相机和车辆感应线圈结合的方式使用的普遍。这种组合方式简单,投资少,抓拍图片分辨率高,但缺点是需要每天人工更换胶卷进行冲洗,且白天宇夜晚需要使用不同的胶卷,费用较高。用于夜间拍摄的补光闪光灯也不易维护。(2) 数字照相机在90年代这种使用数码相机与车感线圈的组合用的相对普遍。这是对第一种方式的改进,它可以直接将抓拍下的图片数字化后存储在闪存卡上,或者通过通信接口存入计算机中。这种方式可以拍摄出高分辨率的照片同时又省去了人工更换胶卷冲洗的麻烦,但在维护方面仍然存在艰难的问题。(3) 视频感应线圈式在90年代后期至2000年早期这种由工业摄像机与感应线圈与工业控制计算机构成的系统使用的比较多。它首先通过感应线圈来检测车辆,接着使用工业控制计算机来控制工业摄像机抓拍车辆照片保存到计算机中。和以上2种方式相比,这种方式使得人工量与工作量大大的减少,但仍使用感应线圈,所以在维护方面还是比较麻烦。(4) 视频检查式在2000年以后至今这种由工业摄像机与工业控制计算机构成的方式使用的普遍。它不需要使用感应线圈检测车辆,而是由计算机对监视区域的实时的图像进行分析处理,从而判断是否有车辆违章。它可以把工业控制计算机抓拍到的图像数字化后直接存入硬盘中,再通过电话线传送到相关部门,无需人工操作。这种方式采用的超级动态调整低照度摄像机利用路灯、车牌灯和追尾灯就可以进行有效的抓拍且不需要安装闪光灯,不仅抓拍速度大大提高,在存储量自动化方面也有着巨大的优势,应用范围广。基于视频的车辆检测系统不需要物理检测线圈,采用虚拟线圈来代替。采用基于图像的车辆运动检测算法来检测车辆运动。这种方法不需要人工更换胶卷冲洗照片,也不需要挖开路面,维护方便。可以说基于视频的汽车检测系统将被普遍使用,是今后发展的方向。1.3 视频车辆检测系统概述通过对道路交通信息和交通目标的各种动态行为(如停车、违章超速、超车等等)的实时监测,实现自动统计各交通路段上行驶的车数量、计算行驶车速度,识别分类行驶车辆等各种交通参数,达到监测交通道路状况的作用。同时,将监测和识别的交通状况信息存储下来,为分析和管理交通提供依据,因此它可视为一个交通信息的管理系统。利用摄像机将交通流图像捕捉下来,然后将这些捕捉到的视频图像传到计算机进行图像处理、分析和理解,得到交通流数据与交通路况等信息。将摄像机安装在合适的位置,一般高度为5-20米。若道路口有龙门架、隧道、过街桥、红绿灯杆可直接安装,不需再安装杆。摄像机一般为工业用黑白或彩色CCD芯片型,拥有300线上的清晰度,通常安装于室外防护罩中。目前众多城市都架设有电子警察系统,可以利用CCD摄像机把两者合二为一,降低了成本;将摄像机捕捉的视频送入视频车检器上。在检测器的视频画面上标记监测区域,这种用软件方法设置监测区域提高了系统的通用性和灵活性,使它可以使用各种交通路口;对捕捉的视频运用一定的图像分析处理算法进行处理,提取相关的交通参数。把视频图像进行压缩,通过通信线路或无线把交通参数和压缩后的图像传到远端控制中心,供操作人员使用。1.4 图像处理概述视频车辆检测系统是一种利用图像处理和模式识别技术实现对交通目标检测和识别的计算机处理系统。“图”是物体投射或反射光的分布,“像”是人视觉系统对图的接受在大脑中形成的印象或反映,是主观和客观的结合。图像处理即是对图像进行加工处理,从而达到人类的视觉心理和应用的要求。人类获取外界信息有多种方法,包括视觉、听觉、触觉、嗅觉、味觉等。但绝大部分是来自我们视觉所看到的图像信息,即所谓“百闻不如一见”。图像的范围非常广泛,包括:各类图片,如普通照片、X光片、遥感图片;各类光学图像,如电影、电视等;人们心目中的有形影像以及外部描述,如绘图、绘画等。数字影像是将照片或录像等模拟信号经抽样和数字化后形成。因为便于计算机运算与储存。所储存的亮点即为图像的基本单位,成为像素。像素的亮度是灰度值,灰度值被划分为256等级,最暗为0,最亮为255.一张图像被数字化成方格所组成的像素,每一格标有一对坐标,一个表示行值,另一则表示列值。行值从影像的最左边开始标记自0一直到n,n表示行值中最大值。相同的,列值从最上方起定位0,自下移动至m值,m表示图形全部列数。数字图像处理目的就是对图像的强度分布视为一连串整数值的集合,使用数字计算机对图像进行某些特定的加工和分析。数字图像处理涵盖范围非常广泛,但是,所采用的原理与方法基本一致。整体来说,主要内容包括图像的增强与复原、图像编码与压缩、图像切割、图像识别、图像特征匹配等等。图像分割是将图像中的目标物解析出的过程。图像分割是图像的分析过程中最为重要的步骤之一,通常所采用的方法主要为边缘的检测及临界值法。图像特征匹配,特征匹配法的“特征”,需先加以定义。所谓匹配,即将目标特征与存在计算机中之样本特征加以比较,若相似度或非相似度小于或大于某预设的门限值,则匹配成功。特征匹配目的是对具有相同或类似特征的物体进行关联,便于辨认或分类。就交通方面而言,特征匹配用来区别不同的交通工具。举例而言,若图像中某物体长度4米,宽2米,形状呈矩形,该物体极有可能被分类为小汽车;若长为10米,宽2.5米的矩形,则可被分类为大型车。1.5 本课题工作与结构安排本文主要就视频车辆检测技术进行概述。全文共分四章,结构安排如下:第一章主要介绍了课题研究背景及意义,重点阐述了视频车辆检测技术的研究现状,视频车辆检测系统概述以及图像处理基础基础知识。第二章软件介绍第三章介绍了基于视频的车辆检测方法,主要有帧间法,光流法以及背景差方法。第四章介绍了基于车辆目标的图像处理方法,用MATLAB仿真实现了图像的图像分割和数学形态学相关理论实验结果。第五章提出了基于帧间差分法的车辆目标检测和计数的系统,并给出了MATLAB仿真结果,验证了此方法的有效性。1.6 开发工具及运行环境合理选取开发工具,不仅会对系统的研究与开发产生重大影响,而且还有可能大幅度降低开发成本,并提高系统的稳定性和可维护性。视频车辆检测系统的开发属于一个较为复杂的图像处理程序。换句话讲就是该功能对稳定性、可维护性有极为严格的要求,为此,本文决定选取MATLAB作为开发工具。软件环境:XP/WIN7。2 软件介绍2.1 MATLAB 概况本次设计是基于MATLAB来实现的图像预处理和边缘检测,所以在本节对MATLAB的一些基本知识进行介绍。MATLAB的名字由MATrix和LABoratiry两个词的前3个字母组合而成,是由MathWorks公司于1982推出的一套高性能的可视化数值计算软件。它的典型应用包括如下方面:数学和计算,数据获取,算法开发,原型设计、建模和模拟,数据研究、分析和可视化,科学和工程图形,应用开发。MATLAB是一种交互式系统,其基本数据元素是并不要求确定维数的一个数组,这就允许人们用公式化方法求解许多技术计算问题,特别是涉及矩阵表示的问题。因此在矩阵运算和数值计算等方面MATLAB非常直观、简洁,且效率高,因而它在科学与工程计算方面的优势是显而易见的。MATLAB有三大特点:一是功能强大(数值计算和符号计算、计算结果和编程的可视化、数学和文字统一处理、离线和在线计算);二是界面友好、语言自然(以复数矩阵为计算单元,语句表达与标准教科书的数学表达式相近);三是开放性强(仅MathWorks公司本身就推出了30多个应用工具箱)。MATLAB的这些特点使它获得了对应用学科的极强适应力,并很快成为应用学科计算机辅助分析、设计、仿真、教学以及科技文字处理不可缺少的基础软件。现有的MATLAB工具箱主要有信号处理、控制系统、图像处理、鲁棒控制、非线性系统控制设计、系统辨识、最优化、弘分析和综合、模糊逻辑、小波、样条、通信、统计等工具箱,而且其种类和数量还在不断增加。这些工具箱给各个领域的研究和工程应用提供了有力的工具,借助于这些工具,研究人员可直观、方便地进行分析、计算及设计工作,从而大大节省了时间。MATLAB在图像处理领域应用广泛。MATLAB的图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式图像文件;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性运算。例如,conv2(I,J)实现了I,J两幅图像的卷积。图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。图像的分析和增强。针对图像的统计计算,MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、均值滤波等对图像进行处理。以上所提到的 MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。具体的用法可参考MATLAB丰富的帮助文档。图像边缘对图像识别和计算机分析十分有用,在MATLAB中,函数 edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即Sobel方法、Prewitt 方法、Robert 方法,Laplacian方法、和Canny方法。2.2 MATLAB的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。具有FORTRAN和C等高级语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRAN和C这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下用MATLAB编写以上两个小程序的具体过程。MATLAB求解下列方程,并求解矩阵A的特征值。Ax=b,其中:A= 32 13 45 67 23 79 85 12 43 23 54 65 98 34 71 35b= 1 2 3 4解为:x=Ab;设A的特征值组成的向量e,e=eig(A)。可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox,signl proceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。2.3 基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号()之後,并按入Enter键即可。例如: (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。小提示: 是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*102/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算()。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*42); 若要显示变数y的值,直接键入y即可: y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复 数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚 部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x0时,sign(x)=1。 小整理:MATLAB常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算: x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 小提示:变数命名的规则 1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有19个字母,MATLAB会忽略多馀字母 我们可以随意更改、增加或删除向量的元素: y(3) = 2 % 更改第三个元素 y =3 7 2 5 y(6) = 10 % 加入第六个元素 y = 3 7 2 5 0 10 y(4) = % 删除第四个元素, y = 3 7 2 0 10 在上例中,MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。MATLAB亦可取出向量的一个元素或一部份来做运算: x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算 ans = 9 y(2:4)-1 % 取出y的第二至第四个元素来做运算 ans = 6 1 -1 在上例中,2:4代表一个由2、3、4组成的向量 若对MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on-line help):help linspace 小整理:MATLAB的查询命令 help:用来查询已知命令的用法。例如已知inv是用来计算反矩阵,键入help inv即可得知有关inv命令的用法。(键入help help则显示help的用法,请试看看!) lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的命令後 ,即可用help进一步找出其用法。(lookfor事实上是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对,详见後叙。) 将列向量转置(Transpose)後,即可得到行向量(Column vector): z = x z = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000 不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: length(z) % z的元素个数 ans = 6 max(z) % z的最大值 ans = 10 min(z) % z的最小值 ans = 4 小整理:适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting) length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度 sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内 积 cross(x, y): 向量x和y的外积 (大部份的向量函数也可适用於矩阵,详见下述。) 若要输入矩阵,则必须在每一列结尾加上分号(;),如下例: A = 1 2 3 4; 5 6 7 8; 9 10 11 12; A = 1 2 3 4 5 6 7 8 9 10 11 12 同样地,我们可以对矩阵进行各种处理: A(2,3) = 5 % 改变位於第二列,第三行的元素值 A = 1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出部份矩阵B B = 5 6 5 A = A B % 将B转置後以行向量并入A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2) = % 删除第二行(:代表所有列) A = 1 3 4 5 5 5 8 6 9 11 12 5 A = A; 4 3 2 1 % 加入第四列 A = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A(1 4, :) = % 删除第一和第四列(:代表所有行) A = 5 5 8 6 9 11 12 5 这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创意。 小提示:在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented )的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3) (二维索引)或A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。 此外,若要重新安排矩阵的形状,可用reshape命令: B = reshape(A, 4, 2) % 4是新矩阵的列数,2是新矩阵的行数 B = 5 8 9 12 5 6 11 5 小提示: A(:)就是将矩阵A每一列堆叠起来,成为一个行向量,而这也是MATLAB变数的内部储存方式。以前例而言,reshape(A, 8, 1)和A(:)同样都会产生一个8x1的矩阵。 MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开: x = sin(pi/3); y = x2; z = y*10,z = 7.5000 若一个数学运算是太长,可用三个句点将其延伸到下一行: z = 10*sin(pi/3)* . sin(pi/3); 若要检视现存於工作空间(Workspace)的变数,可键入who: who Your variables are: testfile x 这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入: whos Name Size Bytes Class A 2x4 64 double array B 4x2 64 double array ans 1x1 8 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array Grand total is 20 elements using 160 bytes 使用clear可以删除工作空间的变数: clear A A ? Undefined function or variable A. 另外MATLAB有些永久常数(Permanent constants),虽然在工作空间中看不 到,但使用者可直接取用,例如: pi ans = 3.1416 下表即为MATLAB常用到的永久常数。 小整理:MATLAB的永久常数 i或j:基本虚数单位eps:系统的浮点(Floating-point)精确度 inf:无限大, 例如1/0 nan或NaN:非数值(Not a number) ,例如0/0 pi:圆周率 p(= 3.1415926.) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargin: 函数的输出引数个数 因此本文是基于MATLAB实现车辆检测。 133 基于视频的车辆检测方法利用视频图像处理的方法进行车辆检测,就是通过对图像中特定区域像素灰度值变化的分析,来判断当前是否有车辆通过。车辆检测是交通流参数采集中关键的一步,其精度直接影响着车速等参数的精准度。车辆检测的目的判断是否有车经过检测区,并建立一个与之对应的跟踪对象,主要提供车流量等信息。减少车辆检测算法的复杂度和提高实时性是一对矛盾,解决这对矛盾对提高系统检测稳定度和准确度较为关键,可实际光照的变化、背景运动的模糊、运动目标的虚假影像、摄像机的抖动以及运动目标的遮挡现象等,都会影响车辆检测和分割的精度,必须在算法中考虑这些影响因素以及去除方法。3.1 基于视频的车辆检测方法基于视频图像的检测方法主要有基于帧间差分的方法、基于光流场的方法、基于背景差的方法等。3.1.1 基于帧间差分的方法帧间差分法是基于视频图像中,相邻两帧图像间具有强相关性而提出的检测方法。这种检测方法对光线等场景不敏感,能够适用于动态变化的环境,而且算法实现简单,检测速度快,定位准确,适用于快速提取运动目标的环境。它存在以下几个缺点:一是不能检测出静止或运动速度过慢的目标,对于高速运动的目标又会使得分割区域远远大于真实目标,其分割区域与目标运动速度相关;二是若目标内部的灰度较均匀,相邻帧差可能在目标重叠部分形成较大空洞,严重时造成分割不连通,不利于进一步的目标分析与识别。在现实应用中,帧间差分法是许多复杂检测算法的基础,通过改进算法将它与其它算法结合以提高检测效果。3.1.2 基于光流场的方法 光流场法的基本思想:运动在空间中可以用运动场描述,而图像平面上物体的运动是通过图像序列中灰度分布的不同体现的,从而,空间的运动场转移到图像上就为光流场(Optical Flow Field)。光流场反映了图像上每一点灰度的变化趋势,可视为灰度像素点在图像平面上运动产生的瞬时速度场,为一种对真实运动场的近似估计6。 在理想的情况下,它能检测出独立运动对象,不需预先知道场景信息,能够精确地计算出运动目标速度,且用于摄像机运动情况。但光流法有以下缺点:有时即使没发生运动,外部照明发生变化也可观测到光流;另外,缺乏明显的灰度阶跃变化区域时,运动往往观测不到。三维物体的运动投影到二维图像的亮度变化,是因为部分信息丢失而使光流法存在孔径和遮挡问题,光流法估算二维运动场是不确定的,需要附加的假设模型来模拟二维运动场的结构;准确分割时光流法还需利用颜色、灰度、边缘等空域特征,从而提高分割精度;同时因光流法采用迭代的方法,计算复杂度高,若没有特殊的硬件支持,视频序列的实时检测很难达到。153.1.3 基于背景差的方法背景差法7首先选取背景中的一幅或几幅影像的平均作为背景影像,再把以后的序列影像当前帧与背景影像相减,进行背景消去。如果所得到的像素数大于某一阈值,则判定被监视场景中有运动目标,获取运动目标。这种方法在复杂背景下的运动目标检测效果较好,一般能提供最完整的特征数据,计算量小,实用价值大。但受光线、天气等条件影响较大。背景差分法是运动分割中常用的一种方法,应用中,需采用算法进行背景模型的动态更新。目前研究人员大都致力于如何实现背景图像的建模和自适应更新,使背景可以不断接近理想状态,对视频图像检测分割的减少影响。背景建模,是通过序列影像的帧间估计和恢复背景。对于背景建模问题,常用的方法主要有:基于统计的背景模型、基于高斯分布的背景模型、基于卡尔曼滤波的背景模型等。基于统计的背景模型最简便和直观的方法就是选择均值函数作为更新函数,叫做“序列均值法”8,此方法适用于背景大部分时间可见、运动物体数量少的情况。“序列众数法”9是统计学模型算法中最精确的一种,但要对元素排序,计算量和所需要存储空间都很大,且有很大的值才得到统计意义上的概率分布,所以更新图像时间也较慢。基于卡尔曼滤波的背景模型,跟踪运动目标有很好的效果,但计算量大,处理速度慢。基于高斯分布的背景模型能适应光线变化,而且可处理多模型分布,对慢移动目标(如树枝的摇摆等)具有很好的鲁棒性。但是对每点都用一个模型来描述,计算量大,且存储参数多,所以还要不断改进。3.2 车辆阴影分割技术通过前面的检测方法,在检测出的图像中多多少少存在阴影的干扰,当阴影面积较大时还会覆盖邻近的车辆,致使算法误将多个车辆检测为一个车辆,对后期识别造成困难,所以在图像检测中必须考虑阴影的消除方法。在众多文献中有关于阴影检测的文章和著作。根据检测算法采用的特征,大致分五类:颜色恒常性的方法、确定性模型法和确定性非模型法、统计参数和非参数法等。以上这些方法各有利弊,要针对不同的应用环境选择不同的方法来满足不同的要求。如基于颜色恒常性的方法适合于全局阴影的分割,基于颜色空间模型的方法对噪声有较好的稳健性,它和统计非参数方法都能处理不同大小和强度的阴影,但颜色空间模型的处理效果较好,统计非参数方法的处理速度相对较快;确定性模型方法能应用于特殊环境,假设越多产生效果越好;统计方法较适合于室内环境,因为场景是恒定的并且统计描述非常有效。4 车辆目标的图像处理方法车辆检测是运动目标检测的一个实例,本章在介绍运动目标检测共性问题的同时,指出车辆检测的特性,为后面的分析做铺垫,运动目标检测中,感兴趣的只是运动目标,就是运动的车辆。视频车辆检测研究的是视频图像,也就是利用摄像机采集的图像序列。不同时刻此序列的两帧或多帧图像包含了物之间的相对运动信息,这些信息是图像帧之间的灰度变化以及如点、线段、运动区域等研究对象的位置和运动方向、速度等变化。视频图像处理的特点是计算量大,若使用图像帧大小为240X320像素,帧速率为25帧/秒,图像格式为RGB格式,每个像素为24位即3个byte表示,则每秒的图像为5.76MB。在检测中假如采用很多边缘检测、滤波等基于图像区域的算法,计算量相当大,对每帧的整幅图像处理难达到实时性。根据车辆检测的特点,本文主要研究了以下一些图像处理技术:边缘检测、数学形态学等。下面对此做简要分析和介绍。4.1 彩色图像灰度化将彩色图像转换为灰度图像的过程称为图像的灰度化处理。彩色图像中每个像素的颜色有R、G、B三分量决定,而每分量有255个值可取,这样一个像素有1600多万(255*255*255)的颜色变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素的变化范围为255个,因此在数字图像处理中一般先将各种格式的图像转化为灰度图像,使后续的图像的计算量小一些。灰度图像的描述与彩色图像一样反映了整幅图像的整体和局部的色度和亮度等级的分布和特征2。图4.1 RGB颜色模型彩色图像虽然含有大量的颜色信息,但是并不适合直接对其进行操作,而是应该将其灰度化,转换成灰度图像。色彩转换公式如公式4.1所示。 (4.1)将颜色灰度化后的信息,足以满足我们后续图像处理和模式识别的要求,并且,存储开销和处理代价大大降低。经灰度化的图像如图4.2所示 (a)原始图像 (b)灰度图像 (c)原始图像 (d)灰度图像 (e)原始图像 (f)灰度图像 (g)原始图像 (h)灰度图像图4.2 彩色图像灰度化处理4.2 图像分割图像分割借助集合概念对图像分割可给出如下定义:令集合R代表整个图像区域,对R的图像分割可以看做是将R分成N个满足以下条件的非空子集R1,R2,R3,RN;(1) 分割结果中每个区域的像素都有相同的特性;(2) 分割结果中不同子区域具有不同的特性,且它们无公共特性;(3) 分割的所有子区域的并集即为原来的图像;(4) 各个子集视为连通的区域;图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴趣目标的技术,这些特性可以为像素的灰度、颜色、纹理等提取的目标可以是对应的单个区域,也可以是对应的多个区域。图像分割方法有许多种方式,在这里主要介绍两种分割方法:阈值分割方法和边缘检测方法,下面就这些方法展开介绍。4.2.1 阈值分割方法对灰度图像的取阈值分割是先确定一个处于图像灰度取值范围之中的灰度门限值,然后将图像中各个像素的灰度值都与这个门限值相比较,并根据比较结果将对应的像素分为两类。这两类像素一般分属图像的两类区域,从而达到分割的目的。阈值分割算法主要有两个步骤:(1) 确定需要的阈值;(2) 将分割阈值与像素值比较以划分像素。采用阈值化图像分割时通常需要对图像作一定的模型假设。利用图像模型尽可能了解图像有几个不同的区域组成。基于图像分割模型经常采用这样一种假设:目标或背景内相邻像素间的灰度值是相似的,但不同目标或背景的像素在灰度上存有差异。设原始图像为f(x,y),按照一定准则在f(x,y)中找到某种特征值,该特征值便是进行分割时的阈值T,或者找到某个合适的区域空间,将图像分割成两个部分,分割后的图像为 (4.2)对于有多种阈值情况,分割后的图像可以表示为:其中是一组分割阈值,是经分割后对应不同区域的图像灰度值,K为分割后的区域或目标数,。无论是单阈值分割还是多阈值分割,都是选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。4.2.2 最大方差自动取阈值(自适应二值化)图像灰度直方图的形状是多变的,有双峰但是无明显低谷或者是双峰与低谷都不明显,而且两个区域的面积比也难以确定的情况常常出现,采用最大方差自动取阈值往往能得到较为满意的结果。图像灰度级的集合设为S=(1,2,3,i, L), 灰度级为i的像素数设为ni,则图像的全部像素数为 (4.3)将其标准化后,像素数为,其中,iS,pi0, (4.4)设有某一图像灰度直方图,t为分离两区域的阈值。由直方图统计可被t分离后的区域1、区域2占整图像的面积比以及整幅图像、区域1、区域2的平均灰度为:区域1的面积比: ;区域2的面积比 (4.5)或者整幅图像平均灰度 ; 区域1的平均灰度;区域2的平均灰度 (4.6)式中,G为图像的灰度级数。整图像平均灰度与区域1、区域2平均灰度值之间的关系为 (4.7)同一区域常常具有灰度相似特性,而不同区域之间则表现为明显的灰度差异,当被阈值t分离的两个区域之间灰度差较大时,两个区域的平均灰度u1,u2与整图像平均灰度u之差也较大,区域间的方差就是描述这种差异的有效参数,其表达式为: (4.8)式中,表示了图像被阈值t分割后的两个阈值之间的方差。显然不同的t值,就会得到不同的区域方差,也就是说,区域方差、区域1均值、区域2均值、区域面积比、区域面积比都是阈值t的函数,因此式(3-8)可写为: (4.9)经数学推导,区域间的方差可表示为: (4.10)被分割的两区域间的方差达最大时,被认为是两区域的最佳分离状态,由此确定阈定值T:,以最大方差决定阈值不需要认为设定其他参数,是一种自动选择阈值的方法,它不仅适用于两区域的单阈值选择,也可以扩展到多区域的多阈值选择中去。图4.3显示了最大类间方差法分割结果: (a) 原始图像 (b)二值化图 (c)原始图像 (d)二值化图 (e)原始图像 (f)二值化图 (g)原始图像 (h)二值化图图4.3 阈值分割结果4.2.3 基于边缘检测的图像分割基于边缘检测的分割方法是通过提取相邻象素特征值的阶跃性来获得不同区域间的边缘。边缘检测法多为寻找像素点的强度变化区域,通常采用微分法实现,常用灰度的一阶和二阶导数作为边缘检测的依据,为此人们设计出了各种边缘检测算子,如梯度算子、Sobel 算子、Roberts算子和Prewitt算子等,检测边缘点以构成边缘。针对不同的图像,还有许多其它不同的算子和手段来检测出这些边缘点。1 Roberts边缘算子Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差,即: (4.11)卷积算子为: (4.12)两个模板为 在x方向和y方向的一阶差分。适当选取阈值T,并做如下判断:如果则为边缘点,为边缘图像。Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘效果好于倾斜边缘,定位精度高,但对噪声敏感。2 Sobel边缘算子Sobel算子有两个卷积计算核。图像中的每个点都用这两个核作卷积,第一个核通常对垂直边缘相应最大,第二个核对水平边缘相应最大。两个卷积的最大值作为该点输出值,运算结果是一幅边缘幅度图像。Sobel算子定义为:Gf(x,y)= (4.13) (4.14) (4.15)卷积算子为: (4.16)式中,dx 与dy分别表示x方向和y方向的一阶微分,Gf(x,y)为Sobel算子的梯度,f(x,y)是具有整数像素坐标的输入图像。求出梯度后,可设定一个常数T,当Gf(x,y)T时,标出该点为边界点,其像素设为255,其他的设为0,适当调整常数T的大小来达到最佳效果。Sobel算子认为邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。3 Prewitt边缘算子为在检测边缘的同时减少噪声的影响,Prewitt算子从加大边缘检测算子出发。由22扩大到33来计算差分算子,所以其卷积算子为: (4.17)在图像中的每个像素位置都用这2个模板做卷积,Prewitt算子将方向差分运算与局部平均结合起来,表达式如下: (4.18)计算Prewitt梯度,选取适当的阈值T,对梯度图像二值化,得到一幅边缘二值图像。采用Prewitt算子不仅能检测边缘点,而且还能抵制噪声的影响5。这三种边缘检测结果如下图所示: (a)原始图像 (b)Roberts边缘 (c)Sobel边缘 (d)Prewitt边缘 (e)原始图像 (f)Roberts边缘 (g)Sobel边缘 (h)Prewitt边缘图4.4 边缘检测分割结果4.3 基于数学形态学分析 4.3.1 图像形态学处理数学形态学是基于集合观点的,其运算由集合运算(如并、交、补等)来定义;所有的图像都必以合理的方式转化为集合。因此形态学算子的性能将主要以几何方式进行刻画,而传统的理论却以解析方式描述算子的性能。这种显式的几何描述特点更适合视觉信息的处理和分析。数学形态学包括4种基本运算:膨胀、腐蚀、开启、闭合。它们在二值图像中和灰度图像中各有特点。基于这些基本运算还可推导和组合成各种数学形态学的基本运算和算法,最后推广到灰度数学形态学3。(1) 膨胀膨胀的运算符为,用来膨胀写作,其定义为: (4.19)上式表明用膨胀的过程是:先对做关于原点的映射即,再将其映射平移,这里与映射的交集不为空。换句话说,用来膨胀得到的集合是的位移与至少有1个非零元素相交时的原点位置的集合。(2) 腐蚀腐蚀的运算符为,用来腐蚀写作,其定义为: (4.20)上式表明用腐蚀的结果是所有的集合,其中平移后将包含在中。换句话说,用来腐蚀A的集合是B完全包括在中时的原点位置的集合。(3) 开启膨胀和腐蚀并不是互为逆运算,所以它们可以级连结合使用。先对图像进行腐蚀然后膨胀其结果(这里使用同一结构元素),称为开启运算,开启的运算符为,用来开启写作,其定义为: (4.21)闭合先对图像进行膨胀然后腐蚀其结果(这里使用同一结构元素),称为闭合运算,闭合的运算符为,用来闭合写作,其定义为: (4.22)通过组合二值形态学基本运算,可得到一系列数学形态学实用算法。形态学噪声滤除器: (4.23)边界提取: (为集合的边界) (4.24)区域填充: (4.25)当时停止迭代,其中为的补集。连通组元提取: (4.26)当时停止迭代,这时取,代表在集合中的一个连通组元。区域骨架提取: 设代表的骨架,它可以表示成: (4.27)是结构元素,代表连续次用对腐蚀,代表将腐蚀成空集前的最后1次迭代次数,一般称为骨架子集,可写成: 4.3.2 实验结果比较实验得到的背景差后的图像帧如图所示,图分别是使用膨胀算法、腐蚀算法、开启算法、闭合算法对车辆图像处理结果。从实验的结果可以看出,目标车辆基本保持了原貌。 (a)膨胀图像 (b)腐蚀图像 (c)图像开运算 (d)图像闭运算 (e)膨胀图像 (f)腐蚀图像 (g)图像开运算 (h)图像闭运算图4.5 数学形态学算法处理结果4.4 图像填充通过以上处理能够看出,常会提取不出一个完全连通的车辆目标,这会对下一步的车辆目标跟踪带来影响,应该填充图像。本系统在车辆区域内采用如下方法填充处理:(1) 横向填充。扫描二值图像g(x,y)的每行,假设自左至右扫描第i行找到第一个目标像素j,其灰度值为0,标记该点坐标为g(i,j);再在同一行即i行自右向左找到第一个灰度值为255的目标像素k,其灰度值为0,标记该点坐标g(i,k),然后将第i行中的这两个目标点之间的所有像素点构成变成目标背景。(2) 纵向填充。横向填充以后对图像g(x,y)的每一列进行扫描,假定自下至上扫描第j列找到第一个目标像素i,其灰度值为0,标记该点坐标为g(i,j);然后在同一列即j列自上至下找到第一个灰度值为0的目标像素k,其灰度值为255,标记该点坐标g(k,j),再将第j列中的这两个目标点之间的所有像素点变成目标背景。填充以后,目标车辆能完整的被检测出来,如图所示。其中,图4.6中a,c为未填充的车辆区域图像,图4.6中b,d为填充后的图像。 (a)原始图像 (b)二值后填充图 (c)原始图像 (d)二值后填充图图4.6 图像填充处理结果5 基于帧间差分法的车辆检测盒计数方法视频车辆检测是运动目标检测的一部分,前面已经描述了用于运动目标检测的三中算法:光流场法、帧差法、背景差分法,它们各自都有优缺点,考虑到算法实现简单,易于实时监控,本文采用基于帧间差分法来检测视频车辆和计数。5.1 帧间差分法 帧间差分法是对图像序列的相邻两帧或是三帧图像做差分处理,然后通过阈值化获取运动变化区域,接着采用边缘提取找出动物体的边缘,最后检测出目标。其基本原理是,在图像序列中如果对象在不同帧中具体位置产生变化,那么对应的不同帧的该位置上其灰度也会产生变化,而对象没有产生变化的位置,其灰度值不产生变化,然后通过阈值化得到目标对象。一般有相邻帧差分和多帧差分,本文采用第一种方法。相邻帧差分就是对相邻的帧进行差分,其检测目标对象的公式形式如下所示。T为判定二值图的阈值。 (5.1) (5.2)帧间差分法简单,检测运动目标快速且比较强的自适应性。5.2 二值化一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。本文就需要将差分图像二值化。二值化检测代码如下:clc;clear all;%fname pname=uigetfile(*.png;*.jpg;*.bmp, select a image);Im = imread(fname);imwrite(Im,image.tif);I=imread(image.tif);I =rgb2gray(I);figure; imshow(I), %显示图像title(original image);text(size(I,2),size(I,1)+15, . Image courtesy of Alan Partin, . FontSize,7,HorizontalAlignment,right);text(size(I,2),size(I,1)+25, . Johns Hopkins University, . FontSize,7,HorizontalAlignment,right);junk threshold = edge(I, sobel);%边缘检测fudgeFactor = .5;BWs = edge(I,sobel, threshold * fudgeFactor);%改变参数再检测边缘figure; subplot(131),imshow(BWs), %显示二值图像title(二值图像);se90 = strel(line, 3, 90);%垂直的线性结构元素se0 = strel(line, 3, 0);%水平的线性结构元素BWsdil = imdilate(BWs, se90 se0);%对图像进行膨胀subplot(132); imshow(BWsdil), %显示膨胀后的二值图像title(膨胀后的二值图像);BWdfill = imfill(BWsdil, holes);%对图像进行填充subplot(133); imshow(BWdfill);%显示填充后的二值图像title(填充后的二值图像);imwrite(BWdfill,02.jpg);5.3 形态学滤波为提高目标检测的有效性和正确性,有必要对二值图像进行形态处理以消除噪声。其实现方法是对二值化后的图像进行膨胀、腐蚀等形态学滤波,这通过MATLAB函数仿真实现。形态学滤波检测代码: clc; clear all; fname pname=uigetfile(*.png;*.jpg;*.bmp, select a image); Im = imread(fname); imwrite(Im,image.tif); I=imread(image.tif); I =rgb2gray(I); F1=imdilate(I,ones(4);%膨胀图像 %BW=imfill(BW,holes);%将原图填充孔洞 F2=imerode(I,ones(5);%腐蚀图像 F3 =imopen(I,ones(5);%图像开运算 F4=imclose(I,ones(2);%图像闭运算 figure subplot(331),imshow( F1);xlabel(膨胀图像); subplot(332),imshow( F2);xlabel(腐蚀图像); subplot(333),imshow( F3);xlabel(图像开运算); subplot(334),imshow( F4);xlabel(图像闭运算); imwrite(uint8(F1),01.jpg); imwrite(uint8(F2),02.jpg); imwrite(uint8(F3),03.jpg); imwrite(uint8(F4),04.jpg);5.4 系统流程图车辆检测和计数的总体流程图如下所示:图5.2 设计总流程图5.5 分析目标物体和计数通过对视频中运动车辆的提取,一般都可以得到提取的目标物体,接下来就可以对系统进行车辆计数功能的设计。在算法中,通过对二值化图像提取轮廓,然后获得矩形框数据。这样对图像中矩形框的数目的计算来对车辆的数目进行计数,但要解决以下几个问题:首先,对视频的处理实际上是把视频分成一帧一帧的图像进行处理,单纯根据矩形框的数目进行车辆计数会造成车辆的重复计数,因为同一车辆会在几个帧图像中出现; 其次,对停止车辆的处理,若车辆驶入画面停了一段时间又继续前进,那么,就必须要防止车辆的重复计数;第三,车辆重叠问题,由于二值化图像的缺陷,重叠的车辆会被同一个矩形框圈出,从而造成车辆的少计数,因此,也需要对此进行处理。在算法中,可循环对每一个圈出的矩形框进行处理。对一个矩形框,首先求取其中心点的值,以后宽、高等基本数据。为了避免重复计数,可以利用边界进行计数,可首先根据中心点的值判断车辆是否处于边界,若处于边界且未完全进行画面,则不断更新边界值,并根据上一帧图像的边界量判断车辆是否刚刚进入画面。对于刚进入的车辆进行计数,这样,即使车辆在画面中停顿后又开始运动也不会重复计数。利用matlab设计GUI界面,二值化并形态学滤波结果运行如下: (a) GUI设计界面 (b)二值化处理结果图5.3 设计界面和二值化处理在视频中加标记框并计数结果显示如下:(a)车辆检测并计数结果一(b)车辆检测并计数结果二(c)车辆检测并计数结果二图5.4 车辆检测并计数结果6 结论与展望6.1 结论运动车辆的有效检测以及实时跟踪和计数是车辆的行为和交通流分析的前提,是智能交通的核心计数。本文围绕视频图像的运动目标检测,在分析和集成前人研究成果的基础上,针对车辆检测的特点,初步设计和实现了车辆实时检测系统,验证了了本文给出的方法的有效性和可行性,并在此基础上实现了计数功能,满足一般交通流控制的需要。视频图像处理技术在智能交通系统中的应用是一个具有广阔前景的研究方向。本文只是对其进行了初步研究,为今后的进一步研究确定了一定方向。由于智能视频监控系统的实际应用环境比较复杂多样,如何使智能视频监控系统实现快速、高准确性和高鲁棒性的实时监控,将是一个系统工程,还有很多问题需要进一步的深入探索。6.2 不足之处与对未来的展望智能交通系统是目前世界交通运输领域的前沿研究课题,它将先进的电子信息技术、数据通信技术、自动控制和计算机技术综合运用于交通运输管理体系,从而实现交通运输服务和管理智能化。交通监视系统是智能交通系统的重要环节,负责采集有关道路交通流量的各种参数。为获取交通数据,传统的方法是通过埋入路面下的电感传感器来检测车辆。由于需挖掘路面,系统的设立和维护相对麻烦,同时也影响交通。近年来,逐步发展了雷达、超声波、红外线、微波、声频及视频图像等悬挂式传感器获取有关交通数据的技术。其中,基于视频图像技术的方法具有直观、可监视范围广、可获取更多种类的交通参数以及费用较低等优点。这种方法能够检测、跟踪车辆,辨别车辆类型,通过车牌识别唯一标识车辆,监测异常情况和事故的发生,因而可广泛应用于交叉道口和公路干线的交通监视系统中。车辆检测是基于视频图像的交通监视系统的基础。灰度比较法采用对路面和车辆的灰度统计值来检测车辆。但它对环境光线的变化十分敏感,而且由于车辆的色彩差异较大,因而很难确定车辆的灰度范围。帧差法利用两幅连续帧之间的差值,排除静止物体和背景,保留图像中的运动物体。虽然环境光线的变化对该方法影响不大,但它不能检测静止车辆,而且由于图像采样频率固定,被检测车辆如果车速太快或太慢都可能导致检测错误。背景差法利用一幅不断更新背景图像从输入图像中提取前景物体。该方法很大程度上依赖于背景图像的可靠性,背景图像需不断地被更新,以迎合环境光线、阴影和天气的变化等。背景更新中的误差累计和光线变化是影响背景差法精度的主要因素。边缘检测法是另一类较为有效的车辆检测法,因为即使在不同的光线条件下,车辆的边缘通常仍然能够被检测到。然而,如果车辆边缘模糊,则边缘检测法可能漏检车辆。 致 谢本设计的完成是在我们的导师李朝锋老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了李老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生! 还要感谢和我同一设计小组的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。参考文献1 张毓晋图像工程(第二版).北京:清华大学出版社,20072 宋兆基,徐流美等MATLAB 6.5在科学计算中的应用北京:清华大学出版社,20053 郁梅,蒋刚毅智能交通系统中的计算机视觉技术应用J 计算机工程及应用, 2001,37 (10) : 101-1034 王运琼车辆识别系统中几个关键技术的研究四川大学博士论文,20045 景晓军,蔡安妮,孙景鳌一种基于二维最大类间方差的图像分割算法J通信学报,2001,4(22)6 张晶图像边缘检测算法的研究D山东大学硕士学位论文,20067 孔繁奇基于视频图像的车辆检测跟踪技术的分析研究D大连理工大学硕士学位论文20078 张玲,易卫明,何伟,郭磊民一种基于视频的车辆检测新方法J信息与电子工程,2006,(4)9 赵建云,郑晓势,周伟等基于视频的车辆检测与跟踪技术综述J计算机与信息技术,2007,(4):30-3710 吴静,须德.基于视频监控的运动目标检测J2007(2):6-811 Andrea Polesel,Giovanni Ramponi and VJohn MathewsImage Enhancement via Adaptive Unsharp MaskingJIEEE Transactions on Image Processing,2000,9(3)12 Coltuc D,Bolon P,Chassery J-M. Exact Histogram Specification JIEEE TIP,2006,15(05):1143-115213 Menotti DContrast Enhancement in Digital Imaging Using Histogram Equalization DBrazil:UFMGUniversidade Federal de Minas Gerais,200814 Yunyi Yan,Baolong Guo,Wei Ni.Image Denoising:An Approach Based on Wavelet Neural Network and Improved Median FilteringJWCICA 2006:10063-1006715 Joung - YounKim,Lee - SupKim,Seung - HoHwangAn Advanced Contrast Enhancement Using Partially Overlapped Sub - Block Histogram Equalization JIEEE Transactions on Circuits and Systems of Video Technology,2001,11 (4):475-484附 录1. 图形用户接口代码:function varargout = GUI(varargin)clc;%创建一个figgui_Singleton = 1;%gui_State是一个结构,指定了figure打开和输出函数gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, GUI_OpeningFcn, . gui_OutputFcn, GUI_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); %开始 gui_CallBack为空,如果输入参数个数不为0,接下来将输入第一个参数传递给gui_State.callback if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end%接下来用交给 gui_mainfcn函数处理,gui_mainfcn 根据gui_State和传入参数来确定是执行子函数,%还是打开 fig 文件和运行 OpeningFcn和OutputFcn 如gui_Callback为空,那么就运行打开主窗口fig文件,否则,调用子函if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end%结束初始化 % %下面三行是说明GUI的自己设置的初始化状态应添加在这个函数内function GUI_OpeningFcn(hObject, eventdata, handles, varargin)%hObject 为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄 handles.output = hObject; guidata(hObject, handles); % %下面的函数返回的量直接到命令窗口function varargout = GUI_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; % 执行选项框function listbox1_Callback(hObject, eventdata, handles) %下面的函数用来在程序中设置listbox1的属性值function listbox1_CreateFcn(hObject, eventdata, handles)if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end %下面的函数是点击按钮时,执行的代码,即可以在此处添加有关的程序代码function pushbutton1_Callback(hObject, eventdata, handles)trafficObj1 = mmreader(traffic.avi);%读取视频图像nframes=get(trafficObj1,NumberOf
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于视频的车辆检测系统设计【带程序】
链接地址:https://www.renrendoc.com/p-273431.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!