基于OpenCV的车辆检测论文

基于OpenCV的车辆检测论文
基于OpenCV的车辆检测论文

摘要

智能交通系统(ITS)是目前世界交通运输领域正在研究和广泛关注的课题。近年来,智能交通系统的应用给交通运输业带来了巨大的经济效益,对于道路设计、流量监控和高速公路管理起到了越来越重要的作用。论文所研究的视频车辆检测技术在ITS中占有很重要的地位,与传统的车辆检测方法相比,视频车辆检测技术不仅具有安装维护便捷且费用较低、可监视范围广等诸多优点,同时可对道路现场图像进行智能化分析和处理。

本文利用OpenCV中对运动物体检测的数据结构、函数库,建立了一个视频车辆分析系统,用于道路上车辆的检测。检测过程是首先对视频图像进行预处理,比如二值化、去噪等;然后进行背景的提取及更新,由于背景差分法是通过当前帧和背景帧相减来提取运动目标,所以实时的背景更新尤为重要,本文采用多帧求平均的方法来更新背景,避免了光照条件和气候环境等带来的不利影响;最后利用背景差分法检测出运动车辆。经过实验验证,该方法可以较准确地检测出车辆目标,检测的成功率可达到90%以上。

关键字:视频处理车辆检测 OpenCV

ABSTRACT

Intelligent Transportation Systems (ITS) is the subject of study and attention in the world's transportation sector.In recent years, the application of intelligent transportation systems has brought enormous economic benefits to the transportation industry,and it has played an increasingly important role in the road located design, traffic monitoring and highway management.The video vehicle detection technology in this thesis study plays an important role in https://www.360docs.net/doc/499025076.html,pared with the traditional method of vehicle detection, video vehicle detection technology has easy installation and maintenance,low cost, wide range that can be monitored and many other advantages , while it can do intelligently analysis and processing to the image of the road scene.

This thesis sets up a video vehicle analysis system for detecting vehicles on the road by the moving object detection data structure and function library in OpenCV. Detection processes include:First,video image pre-processes,such as binary,removing noise;Next,background extraction and update, as background subtraction is based on that subtract the current frame from background frame to extract moving target,real-time background update is particularly important, we use multi-frame averaging method to update the background,which avoids the the adverse impact of light conditions and climatic and environmental;Finally, the detection of moving vehicles by background subtraction.Experimental results show that this method can accurately detect the vehicle target, the success rate of detecting is up to 90%.

Key words: Video Processing Vehicle Detection OpenCV

目录

第一章绪论 (1)

1.1 课题背景和研究意义 (1)

1.2 国内外研究现状 (1)

1.3 OpenCV概述 (2)

1.4 本文研究内容 (4)

1.5 本文章节概括 (5)

1.6 本章小结 (5)

第二章基于视频的车辆检测技术概述 (6)

2.1 引言 (6)

2.2 视频车辆检测技术实例发展历程 (6)

2.3 视频车辆检测技术未来趋势 (7)

2.4 本章小结 (7)

第三章车辆检测算法设计 (9)

3.1 引言 (9)

3.2 车辆检测算法流程图 (9)

3.3 图像预处理 (10)

3.3.1 设定感兴趣区域 (10)

3.3.2 高斯低通滤波处理 (10)

3.3.3 二值化阈值分割 (10)

3.4 背景初始化与更新 (11)

3.5 提取前景运动目标 (11)

3.6 本章小结 (12)

第四章实验结果与分析 (13)

4.1 引言 (13)

4.2 实验配置 (13)

4.3 实验结果与分析 (13)

4.4 本章小结 (16)

第五章总结与展望 (17)

5.1 本文总结 (17)

5.2 工作展望 (17)

谢辞 (19)

参考文献 (20)

附录 (21)

第一章绪论

1.1 课题背景和研究意义

随着当今经济的高速发展,机动车的保有量迅速增加,导致交通状况的不断恶化。现在无论哪个国家都毫无例外的受到不同程度的交通问题的困扰,在中国,这种情况尤为突出并严重影响了人类生活的质量,给环境、经济和社会带来了严重的后果。为从根本上解决交通拥挤堵塞的问题,人们开始运用各种新技术,如信息技术、计算机技术、通信技术、控制技术等,将人、车、路紧密联系起来,不仅有效地解决了交通阻塞问题,而且对交通事故的应急处理、环境的保护、能源的节约都有了显著的效果。

基于视频的运动车辆检测是自动交通事件检测系统的首要步骤及重要组成部分,它为后续的车辆检测,车辆跟踪与统计提供保证。对交通安全和交通控制具有非常重要的理论意义和实用价值,是基于视频智能交通系统的基础。

视频检测技术在传统的电视监视系统基础上将计算机视觉引入到交通信息检测之中,通过计算机从数字图像中提取出高级交通信息,同时又像其它车辆检测器一样能向交通监控中心提供图像和交通参数如车速、车流量等。已有的成熟的商用视频车辆检测系统主要有A utoscope,Traficon以及Peek等。

视频序列图像运动目标分析的基本内容是利用成像系统或现有文件,从连续的视频序列图像中提取出运动目标,同时对提取出的运动目标进行识别和跟踪,并对其行为进行理解和描述。视频图像的运动分析以数字图像处理为基础,内容涉及数字图像处理、模式识别、计算机视觉、人工智能等诸多领域和学科。目前,开发视频序列图像运动目标分析系统不但在实时性、鲁棒性上有很高的要求,也逐步重视其通用性和可移植性,这些都给视频运动分析带来了挑战。

它相对传统车辆检测技术具有如下优点:安装维护方便,摄像头架设在路边,安装维护不需要封闭道路,挖掘路面,不会影响正常交通;一个普通的CCD摄像头就可以检测几百米内的多车道交通信息,迄今为止还没有一种传感装置能够像基于计算机视觉处理那样提供如此直观、详细的交通信息参数(如精确的车辆行驶路线、车型、车辆尺寸以及车辆颜色等等);可以对交通现场录像,供以后查询;同时视觉系统也是一个被动的感知系统,它对于周围的环境几乎没有影响,即使相同的视觉系统之间也不会发生干扰。

基于上述的优越性,基于视频图像的车辆检测技术对于智能交通系统的发展有巨大的推动作用,对于日常生活和国家的经济发展都有很大的实际意义。1.2 国内外研究现状

随着计算机视觉技术的蓬勃发展,作为其中的一个重要分支-运动物体的检

测与跟踪技术也吸引了国内外专家学者的强烈兴趣。其原理是对视场内的运动目标进行实时的图像采集,并在此基础上运用图像处理的相关技术对观测对象进行行为分析,自动得到观测结果。车辆视频检测作为其中的一个重要运用,吸引了很多著名公司和研究机构参与其中。

国外的视频检测技术研究开始的较早,经过十几年的发展,技术己经相当成熟,视频检测与线圈检测技术相比具有的优越性和高性价比己得到业内人士的公认,代表了未来车辆检测领域的发展和应用方向。美国ISS公司的AUTOSCOPE,是一个较为成功的商业系统,具有实时检测交通参数的能力,是国际上交通信息采集中最具竞争力的视频检测系统之一。另外国外还有一些公司在这方面也从事了应用研究和开发工作,也推出了各自成熟的系统级产品。比如ITERIS公司Vantage系列视频检测处理单元的最新视频检测器产品:Vantage Edge2,比利时Tmficon公司推出的Monitor系列等。

美国、日本等国家在车辆视频检测方面展开了大量的研究。早在1982年,东京大学教授S.Takab等就提出样本点的方法来检测车辆,此系统实际应用时的车辆计数误差小于5%,速度误差小于10%。T.Abramczuk教授则在1984年提出一种应用图像帧差的方法来检测车辆,其原理是在每一条道路上均设置一条与道路相平行的检测线,通过车辆沿车道的方向分割出运动车辆,此方法运用于瑞典皇家技术院研制的道路监控系统中取得了良好的效果。

视频车辆检测技术虽然在国内研究起步比较晚,但经过这些年的迅速发展,也取得了很多研究成果,如中国科学院自动化研究所模式识别国家重点实验室谭铁牛研究员从20世纪90年代初就开始研究基于三维模型的智能视觉监控系统,领导视觉监控小组,针对系统中若干关键性问题像车辆检测、跟踪以及车辆基于OpenCV的视频道路车辆检测及跟踪行为分析,进行了深入的研究和探讨,提出了自己的见解和主张,取得了一系列的研究成果。

同时也有不少公司在这方面作了许多努力,如清华紫光与清华大学合作开发的新一代视频交通流量检测系统VS3001,哈尔滨工业大学的VTD2000系列视频交通动态信息采集系统,亚洲视觉公司的路段交通信息系统等等。这些产品大多数功能都比较单一,虽说有的也比较好的实现了视频检测的功能,但在实际的推广当中效果并不明显,还远远没有达到实际应用的要求,同国外的产品相比还有相当的差距。因此,我国在这方面的研究还要继续加强,不断开发和完善技术,真正推出适合于国情的交通视频检测产品。

1.3 OpenCV概述

OpenCV,全名为Open Source Computer Vision Library,是Intel公司资助的开源计算机视觉库。它由一系列C函数和少量C++类构成,提供了针对各种形式

的图像和视频源文件(如:bitmap图像,video文件和实时摄像机)的帧提取函数和很多标准的图像处理函数,实现了图像处理和计算机视觉方面的很多通用算法。

其重要特性包括:

(1)拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其它的外部库一尽管也可以使用某些外部库。

(2)对非商业应用和商业应用都是免费的。

(3)为Integrated Performance Primitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的的IPP库,OpenCV将在运行时自动加载这些库。

以往传统的开发方法要求工程人员在完成的硬件设计的同时,自己编码实现所有底层的算法,所有的图像处理函数都要从头编写,既造成时间和精力上的浪费,又难以保证稳定性、实用性和通用性,越来越难以满足现实的需求。为了解决理论到应用的难题,出现了众多的计算机视觉和图像处理软件包。例如,TargetJr及其后续版本VXL(the Vision something Libraries)就是这样一个C库的集合,在满足小型、快速和稳固的系统开发要求的同时提供了多平台移植性。Gandalf提供了计算机视觉和数值计算库,适合于可移植平台的视觉应用软件的开发。Delft科学图像处理库DIPlib是另一个科学图像处理C程序库,包含了许多图像数据多维分析和处理函数。同时许多商用图像处理和计算机视觉软件包也得到相应开发。MVTec公司开发的HALCON是其中之一,它包含了C/C++代码的图像处理库。LabView在NI图像处理硬件的支持下能加速图像处理。由微软公司开发的SDK是一个底层的图像操作分析的C++库。在Matlab中的图像处理工具包以及在Mathematica中的数字图像处理软件包都是较为强大的图像处理工具,同时这两个软件包兼有许多高级数学计算功能。由Aurora公司开发的LEADTOOLS是一套商用化计算机视觉包,它包括了图像处理服务器开发工具,允许用户创建各种基于网络的图像处理服务程序。

这些软件包为计算机图像分析和机器视觉提供了极大的便利,但也存在一些不足之处:

(1)大多数软件包没有高级数学计算函数。并且这些软件包都不包括如目标跟踪、摄像机标定、姿态识别、脸谱识别和三维重建等高层函数。

(2)Matlab是功能较为强大的科学计算和分析平台,它提供了图像处理工具包,也提供了较为丰富的数学计算函数,但在Matlab环境下的运行速度令人担忧。虽然Matlab可以通过编译器将m文件转化为C代码。但是转换后的C代码的执行效率和可读性存在较大问题。

(3)除Matlab和LEADTOOLS。大部分软件包不支持网络服务器结构的应

用程序的开发;Mmlab的网络接口机制较为复杂,且同样存在运行效率的问题。绝大多数软件包不支持可嵌入性。

本文选取OpenCV进行视频序列图像运动分析,与上述软件包相比,OpenCV 的优势在于:

(1)C代码,源代码开放。

(2)丰富的函数功能,强大的图像和矩阵运算能力:OpenCV提供了数组、序列、矩阵、树等基本结构,也包含了差分方程求解、傅立叶分析、积分运算、特殊函数等众多高级数学计算函数,以及各种图像处理操作和目标跟踪、摄像机校准、三维重建等高级视觉函数。

(3)平台无关性。基于OpenCV开发的程序可以直接在Windows,Unix,Linux,MacOS X,Solaris,HP等平台之间相互移植,无需对代码进行任何修改。

(4)方便灵活的用户接口。OpenCV作为一个开放的计算机视觉函数库在使用上必然没有Matlab那样解释执行来得方便,而Softlmegration将CH和OpenCV绑定起来推出的CH OpenCV,解决了这一使用上的瓶颈。

(5)可嵌入性:与C/C一编译器不同。Ch能嵌在C/C++应用程序和硬件的机器脚本中。它为用户减轻了丌发维护应用程序庞大机器代码的沉重负担。统一的结构和功能定义,基于Intel处理器指令集开发的优化代码。可见,作为一个基本的图像处理、计算机视觉和模式识别的开源项目,OpenCV可以直接应用于很多领域,作为二次开发的理想工具。

OpenCV开发平台的搭建很简单,首先安装下载得到的OpenCV应用程序,然后在Visual Studio 2008下编译所要的静态和动态链接库文件,包括1ib路径的设置、include files路径的填写,再进行工程项目的链接设置就可以了。

在VS2008中建立新工程以后,在工程设置里添加需要的OpenCV库,并在程序文件中包含OpenCV的头文件,就可以在Windows下面利用VS2008进行基于OpenCV的图像程序开发了。

1.4 本文研究内容

随着社会的发展及汽车的普及,交通拥挤日益加剧、交通环境恶化等问题也变得日趋严重。近年来,智能交通系统的应用给交通运输业带来了巨大的经济效益和环境效益, 其中,基于视频的车辆检测技术在智能交通系统中占有很重要的地位,已经成为智能交通系统的重要研究课题。与传统的车辆检测方法相比,基于视频的车辆检测技术具有安装维护便捷且费用较低、可监视范围广等许多优点,具有广阔的研究和应用前景。

本文以交通道路视频为研究对象,主要对车辆检测技术进行研究。研究了如何准确的在视频中检测车辆,设计算法并进行测试分析。

1.5 本文章节概括

第一章:本章为绪论,主要介绍了基于OpenCV的车辆检测这一课题的来源及研究意义、国内外在这一领域的研究现状,从车辆检测角度概述了OpenCV的优势和特点,并对全文章节进行概括。

第二章:本章主要研究了基于视频的车辆检测技术的发展及趋势,通过对已有的视频车辆检测技术及其发展趋势的分析,说明基于OpenCV的视频车辆检测的优势和可研究性。

第三章:本章通过对车辆检测算法的分析,针对于一个道路交通视频做了图像预处理、背景提取与更新、前景目标检测等工作,为后续实验步骤提供理论基础。

第四章:本章介绍了完成实验的实验配置,并对整体实验结果进行分析和总结,提出实验过程中出现的问题及该方案的需要改进之处。

第五章:总结全文并分析基于OpenCV的车辆检测的发展前景。

1.6 本章小结

本章主要阐述课题的来源、目的和意义,同时对查阅的文献资料进行总结,分析了车辆视频检测的国内外研究现状,概述OpenCV,叙述本文研究内容及以后各章节大致安排。

第二章基于视频的车辆检测技术概述

2.1 引言

目前,无论哪个国家都存在着不同程度的交通困扰问题。因此,人们运用各种新技术,如信息技术、计算机技术、通信技术、控制技术等,将人、车、路紧密联系起来,以缓解交通阻塞问题,改善交通事故的应急处理、环境保护及能源节约的问题。因此,智能交通系统应运而生。这个系统可以归纳为,人们将现金的信息技术、数据通讯传输技术、电子控制技术、传感器技术以及计算机处理技术等有效地综合运用于整个交通系统,从而建立起一种在大范围内全方位发挥作用的实时、准确、高效的交通综合管理系统。其目的是使人、车和路密切地配合、和谐地统一,极大地提高交通运输效率、保障交通安全、改善环境质量和能源利用率。视频车辆检测技术在智能交通系统中占有重要地位,与传统的车辆检测方法相比,视频车辆检测技术不仅具有安装维护便捷且费用较低、可监视范围广等优点,同时通过对道路现场图像的智能化分析和处理,能够采集到所需要的多种交通流参数,在现代交通系统中得到了广泛的应用。

在上一章中,已经对视频车辆检测的国内外发展状况做的简要介绍,这一章中,将具体地研究视频车辆检测的发展历程,并分析其发展趋势,证明研究基于OpenCV的车辆检测技术的必要性。

2.2 视频车辆检测技术实例发展历程

1978年.美国JPT(加州帕萨迪纳市的喷气推进实验室)首先提出了运用机器视觉来进行车辆的检测的方法,指出其是传统检测方法的一种可行的替代方案。几年后,美国明尼苏达大学的研究人员研制了第一个可以投入实际使用的基于视频的车辆检测系统该系统使用了当时最先进的微处理器,在不同场景和环境下的测试结果良好,说明了利用视频传感器实时检测车辆的可行性。同期基于视频的车辆检测的研究也在欧洲和日本广泛展开此后十年间基于视频的车辆检测技术取得了长足的进步。

1991年,美国加州理工大学对在高速公路上运用视频方法的检测技术进行了评估,在评估报告中对当时采用的不同的视频车辆检测技术详尽地进行了分类。三年后,美国休斯飞机公司评测了当时存在的几种检测技术,包括视频检测技术,测评结果指出基于视频图像处理的车辆检测系统已经具备了投入实际使用的潜力。

1994年Mn/DOT(明尼苏达运输部)为FHWA(美国联邦公路局)进行了更详尽严格的测评,结果表明视频检测器的检测准确性和可靠性可以达到令人满意的程度同时随着视频车辆检测技术的发展,人们已不满足于检测出车辆,FHWA进一

步利用此技术来提取交通参数,如交通流量、十字路口的车辆转向信息等。

事实上,与其他几种车辆检测方法相比,基于视频的车辆检测技术具有直观、可监视范围广、可获取更多种类的交通参数以及费用较低等优点、因而可广泛应用于交叉路口和公路干线的交通监视系统中。

2.3 视频车辆检测技术未来趋势

(1)智能化

视频车辆检测技术经过多年的发展,检测精度、深度、范围等指标都有很大的提高,但系统的智能化程度还十分有限,距离“人脑”的判断能力还很远。

(2)视觉检测立体化

体视觉是计算机被动测距方法中最重要的距离感知技术之一。该方法可以克服单一视角由于遮挡或深度影响而容易产生的分歧,能够有效解决遮挡问题,扩大车辆检测的有效范围。

(3)网络化

进行区域交通系统状态特征提取和信息融合,实现区域交通状况的评价、预报和报警,建立区域交通系统状况的集成应用系统。

(4)低成本、集成化

目前视频车辆检测系统结构比较复杂、价格比较昂贵,这给视频检测技术的普及带来了一定的困难。今后应加大低成本、高性能、结构优化产品的研发,以增强视频车辆检测技术的市场竞争力。

2.4 本章小结

本章对基于视频的车连检测技术进行了综合性的概述,主要从实例发展历程方面进行阐述,同时分析了视频车辆检测技术未来的发展趋势。

综上所述,视频车辆检测技术在整个智能交通系统中的重要地位是时代发展必然性所决定的,而本文在第一章中已经介绍了OpenCV的优越性,接下来将具体讲述基于OpenCV的车辆检测的算法流程、实验测试和结果分析。

第三章车辆检测算法设计

3.1 引言

从最早的 80 年代起至今,专家和学者们提出了许多卓有成效的车辆检测方法。总的来说,车辆检测的原理主要可以分为以下两类:宏观检测法和微观检测法。宏观检测法对整幅图像进行检测,而微观检测法主要针对图像的ROI(感兴趣区域)进行检测。

宏观检测法对整幅图像进行检测,采用这种检测方法图像蕴含的信息量丰富,能把整幅图像中的所有车道的车辆都检测出来。车辆的一些行驶特征,如左转右转也能被检测出来,但是这种算法的缺点也是显而易见的。首先,由于是对整幅图像进行检测,必然导致处理的运算量大,系统开销大,在视频检测这种实时性要求极高的系统中使用必然造成严重的延时;其次,由于场景中包含如路边花坛、树木、红绿灯杆等大量的干扰比较严重的前景物体,容易成为干扰因素,引起检测时误差的增大;第三,整幅图像检测容易造成物体分割不明显,对静止的物体检测效率低下。

微观检测法则对图像的局部区域进行检测,包括有线性检测法和窗口检测法。线性检测法的原理是通过在图像的固定位置设置一条检测线,通过统计检测线的图像特征变化如灰度跳变、色彩突变来判断有无车辆通过。这种线式的检测方式运算量小、实时性好、检测精度也较高,但是由于其检测区域的限制,这种方式的鲁棒性不高,容易受光线变化的影响引起误检。窗口检测法的原理则是通过在图像的特定区域设置一个较小的检测矩形框,通过统计矩形框内的图像特征变化来判断车辆是否通过,和线性检测法相比,检测的区域要大些。

最常见目前运用最多的是区域检测法,该方法融合了宏观检测法和线式检测法的优点。它的检测原理是通过在图像设置若干处ROI(感兴趣区域),通过检测区域内的图像特征达到判断有无车辆通过的目的,区域检测法通常有光流场法、帧间差分法和背景差分法几种。几种方法各有利弊,本文将运用背景差分法完成对交通视频中的车辆检测。

3.2 车辆检测算法流程图

本章是全文的重点章节,本章将对车辆检测算法的具体流程进行详细的介绍。主要包括读取视频、设定感兴趣区域、图像预处理、检测运动目标及背景参数的实时更新等几个部分。

如图3-1所示,主要工作是:

(1)获取视频帧:本文所用道路交通视频来自网络,是一个709KB的媒体文件(.avi),其视频时长为30秒,帧宽度为640mm,帧高度为480mm,数据

速率为161kbps,总比特率为193kbps,帧速率为25帧/秒。

(2)视频图像预处理:对采集的视频流转换到需要的色彩空间进行处理,滤除图像的噪声,设置图像的感兴趣区域。将前景与背景进行分割,阈值化处理得到车辆的二值化图像。

(3)背景初始化与更新:如果此时背景没有初始化,则需要对交通场景图像进行初始化,并对背景进行实时更新。

(4)提取前景运动车辆:主要涉及到的操作包括有检测运动车辆,用红色矩形框标出。

图3-1 车辆检测算法流程图

3.3 图像预处理

3.3.1 设定感兴趣区域

为了尽可能的减少噪声以及交通场景中其他前景物体的影响,本文采用设定

局部检测区域的方式对交通图像进行划分,以达到实时性和降低误检的作用。局

部检测区域的设置遵循以下规则:

(1)检测区域不包含明显前景物体,如围栏、花坛或树木。

(2)检测区域内应包含有所有需要检测的车道,实际系统中是对全景摄像

机的视频流进行检测,因此,需要使检测区域涵盖所有车道才能满足检测要求。

(3)检测区域的图像高度应该有1-2辆正常小轿车的距离。

OpenCV 通过函数 cvSetMouseCallback 设置鼠标事件的回调函数,通过此

函数可以直接在图像上进行操作,再通过鼠标响应函数调用 cvRectangle 函数画

出鼠标圈定的区域,这样就完成了检测区域的设置。设置完成后,再通过函数

cvSetImageROI 就可以设定 cvRectangle 标定的矩形框部分,以后的所有操作都

会只对该区域进行处理。

3.3.2 高斯低通滤波处理

由于受环境,光照条件变化以及采集设备的性能影响,从摄像机采集的图像

都是降质图像,带有比较多的噪点信息,这些往往影响到后期的车辆特征提取,

降低检测的准确性。因此需要在获得视频图像后,先对帧序列进行预处理,这其

中包括的主要步骤有色彩空间映射、图像平滑滤波、对比度增强。

本文主要对视频图像平滑滤波进行了研究。滤波分为线性滤波和非线性滤

波,滤波的主要目的是减小噪声,可以在提取主要的前景目标之前去除图像的一

些琐碎细节,如桥接直线或曲线的摩擦。线性滤波的方法算法简单、速度比较块,

但容易造成图像模糊;非线性滤波方法则可以很好的去除信号噪声也能很好的保

持信号的局部特征,但速度稍微慢些。对于要想保持整幅图像的整体和局部特征

的图像来说,采用非线性滤波如高斯低通滤波不失为一种理想的滤波方式。

在高斯低通滤波法中,用 H ( u)表示频率域,则二维高斯滤波方程可表述为:

22/),(2),(σv u D Ae v u H -=(3-1)

其中,σ为高斯曲线的标准差, D ( u , v)是距傅立叶变换原点的距离。当0D

=σ时,高斯滤波器可以表示为如下形式:

202/),(2),(D v u D Ae v u H -= (3-2) 0D 为截止频率,当()0,D D v u =时,滤波器下降到它的最大值的0.607处。

采用高斯平滑滤波后得到的图像,可以增强图像的细节,去除图像的局部噪音。

3.3.3 二值化阈值分割

在图像预处理完成后,接着要做的工作就是通过前景图像和背景图像,提取

视频中的前景图像,即运动车辆。这一步要做的工作是将车辆目标从图像中提取

出来,目前常采用的方法是通过图像分割技术来实现,常用的分割技术有边缘检

测、阈值分割以及区域生长三类。

对获得的车辆前景和背景差图像,采用阈值分割化技术是一种常用的提取运动物体的分割技术。阈值分割的原理其实是先确定一个处于图像灰度范围内的灰度值,然后通过将图像中各个像素的灰度值和该阈值比较,然后由比较的结果将图像划分为两类:像素灰度大于阈值的一类和像素灰度小于阈值的一类。阈值分割主要分成两个步骤:

1)确定分割阈值 T。

2)通过确定的阈值T分割图像像素并二值化。

3.4 背景初始化与更新

由于视频检测系统的应用场合为各种交通要道或十字路口,而这种户外环境会受到光照条件和气候环境以及各种人为的原因而造成不断的变化,因此检测的道路场景中背景是不断的变化的,而在视频检测系统中,如何提取有效而实时的背景更新算法对车辆信息的提取有着决定性的作用。

本文采用的背景初始化算法是多帧平均法,其原理为在一定的时间内,取视频图像帧进行加运算,再求平均值,该平均值即可认为是真实的背景。该算法认为临时物体如车辆,行人等运动物体会在这帧图像的均值化过程中被滤除掉,可以近似忽略不计。这种算法虽然计算量比较大、背景更新速度较慢,但其简单易行、错误率低,并不是不可取的。当下常用的背景更新算法还有:滑动平均更新法、选择更新算法、混合高斯背景模型法等,由于本人能力有限,故只采用了最为简便的方法,此处还可进行深入研究。

3.5 提取前景运动目标

交通视频检测最基本的任务就是对道路上行驶的各种车辆的检测,即从采集到的视频图像序列中检测出运动的车辆。运动车辆的检测是交通信息获取的基础,几乎下一步处理需要的车辆参数都源于对车辆的检测。在实际监控中,对运动车辆目标的检测会存在多种问题,包括天气,光线等外界环境的变化,以及阴影和不属于车辆的扰动物体等干扰,对车辆的检测以及随后的处理带来很大问题,所以运动车辆的检测一直是交通视频系统的热点问题。

视频车辆检测是运动目标检测的一部分,目前用于车辆检测的常用的运动目标检测算法有三种:光流场法、帧差法、背景差分法,其各自都有自身的优缺点,本文针对车辆检测的特点,对其基本原理进行分析与研究,得出运用背景差分法进行视频车辆检测。

背景差分法的基本思想是选取视频图像序列的一帧或是提取背景图像做为参考图像,然后将待检测图像与背景参考图像逐像素相减,经过阈值T划分得到目标的二值化图像,定义公式形式如(3-15)所示。

{n 1 |f (,)(,)|0 otherwise (,)n x y B x y n D x y -

这种方法进行运动车辆检测时可以克服帧间差分法的缺点,可以比较完整和

精确地对运动目标进行检测。背景差分法这种优点可以应用于运动车辆检测中,

但是这种方法无法自适应,要想适应环境的变化,必须对背景实时升级,这必然会

涉及背景模型,其包括背景的提取和背景的更新。通常会遇到如下一些问题:

(l)背景的提取。当前背景的提取方法大致分为两大类,一类是无运动车辆存

在时背景的提取方法,如W4法,这种无运动车辆存在的条件在车辆检测环境下很

难满足,且需要人为的实时监控;另一类是有运动车辆存在时的背景提取方法,

如基于统计的方法包括平均值法,中值法等,然而这种方法在运动物体所占面积

较大和在大量帧中出现时,估计出的背景帧不理想且处理时间较长。

(2)背景的更新。其需要背景模型应迅速跟上实际背景关照的变化、运动物

体静止下来时应及时收入到背景帧中、静止物体移走后应及时从背景模型中消失,

否则会出现大范围的噪声和误检测现象。

3.6 本章小结

本章通过对车辆检测算法的分析,针对于一个道路交通视频做了图像预处

理、背景提取与更新、前景目标检测等工作,基本可以完成检测道路交通视频中

运动车辆的任务。

第四章实验结果与分析

4.1 引言

在上一章中,已对基于OpenCV的车辆检测整体算法设计和具体流程做了详细地介绍,本章中将对实验结果进行细致地分析和总结。

4.2 实验配置

本文实验配置为:

处理器:Intel(R)Core(TM)i5-3210M CPU @ 250MHz

内存:2.00GB

操作系统:Windows7 64位操作系统

操作平台:Microsoft Visual Studio2008和开源计算机视觉库OpenCV

4.3 实验结果与分析

基于上述车辆检测算法,编写程序(将附录),运行结果如下图所示:

(1)设定感兴趣区域实验结果如图4-1所示:

图4-1 感兴趣区域效果图

图中红色框内为实验设定的感兴趣区域,即对视频中车辆的检测是在这个区域内进行的,此步骤使实验更具精准性,只对主干道车辆进行检测,排除视频图像中其他运动物体对检测结果的影响,为后续实验提供坚实的环境基础。

(2)二值化阈值分割实验结果如图4-2所示:

图4-2 二值图像

实验通过阈值分割技术,成功提取运动车辆,并确定分割前景与背景的最佳阈值。

(3)背景更新实验结果如图4-3所示:

(a)(b)

(c)(d)

图4-3 背景更新效果图

如图4-3(a)、图4-3(b)、图4-3(c)、图4-3(d)所示,实验完成了对视频图像背景的实时更新功能,为后续运用背景差分法提取运动车辆的实验步

骤提供背景基础。

(4)提取前景目标实验结果如图4-4所示:

(a)检测1辆车 (b)检测3辆车

(c)未检测非汽车车辆 (d)未检测非汽车车辆

图4-4 车辆检测结果图

图4-1(a)中为一辆车经过感兴趣区域的情况,图4-1(b)中为3辆车经过感兴趣区域的情况,从实验结果中可以看出,本实验能够准确检测出经过感兴趣区域的车辆,同时,对于非检测目标,也能排除在外,如图4-1(c)、图4-1(d)所示,图中蓝色圆圈标出的摩托车未被检测。实验在运动车辆的检测和非目标车辆的排除方面都取得了良好的实验效果,但同时该算法也有误检和漏检的情况,如图4-5所示:

a 误检情况

b 漏检情况

图4-5 实验结果中存在的问题

如图4-5(a)中所示,当两辆车同时通过时,会有一定几率出现误检情况;图4-5(b)中,由于部分车辆与背景颜色过于接近,导致实验结果中出现漏检情况。

对于检测结果的统计如下表所示:

表4-1 实验结果统计表

帧序列号10 50 100 150 200 250 300 350 400 450

经过车辆数 2 1 2 0 3 0 1 2 3 1

检测车辆数 2 1 2 0 3 0 1 2 2 1 误检率0 0 0 0 0 0 0 0 33% 0

由上表可知,视频车辆检测准确率极高,应用此方案对交通车辆进行检测是可行的。

4.4 本章小结

本章对整体实验结果进行了分析和总结,其中包括设定感兴趣区域、阈值分割、背景初始化与更新以及前景运动车辆的检测。从总体数据来说,视频中共经过车辆32辆,检测到车辆29辆,实验比较成功,能够完成对道路交通视频中的车辆检测。

基于opencV的动态背景下运动目标检测及跟踪(修改版)

基于openCV的动态背景下的运动目标检测 摘要:介绍在动态背景下对视频图像序列进行运动目标的检测,主要包括三个步骤,分别是运动估计,运动补偿和目标检测。在运动估计中采用的主要是基于特征点匹配算法。这种算法与传统的块匹配算法最大的好处在于它的数据量少,计算简单迅速而且图像的匹配可靠性更高。最后用计算机视觉类库openCV进行实现。 关键词:运动目标检测;openCV;特征点匹配 Moving Object Detection in the Dynamic Background Based on openCV Abstract:Introducing a moving object detection algorithm of the dynamic background in the video image sequence,which includes three steps. They are motion estimation, motion compensation and object detection. At the motion estimation, we take an algorithm based on the feature points matching. The advantages of this algorithm is that it needs fewer data and indicates faster calculating speed compared to the block matching algorithm. What’s more, the matching of the video image sequence is more reliable. Then used openCV realized the algorithm. Keywords: moving object detection; openCV; feature points matching 引言 在生活中摄像头可以说随处可见,我们经常需要对视频中的运动目标进行相关操作,这就设涉及到了对运动目标的检测及跟踪。作为视觉领域的一部分,它不仅对我们的生活,在军事,医学等各种领域里都有着广泛的影响。 所谓运动目标的检测就是在一段序列图像中检测出变化区域,并将运动目标从背景图像中提取出来[2],它是基础,能否正确的检测与分割出运动目标对后续的工作有着巨大的影响。常见的运动目标检测方法有:背景差分法,帧差法,累积差分法,光流法。本文主要介绍的是一种在动态背景下对运动目标进行检测的算法。 检测算法介绍 检测算法有很多种,不同的算法有他们各自的利与弊。背景差分法:是事先将背景图像存储下来,再与观测图像进行差分运算,实现对运动区域的检测。这种方法能得到较为完整的运动目标信息,但背景图像必须随着外部条件比如光照等的变化而不断更新,所以背景模型的获取和更新比较麻烦。帧差法:直接比较相邻两帧图像对应像点的灰度值的不同,然后通过阈值来提取序列图像中的运动区域[2]。这种方法更新速度快,算法简单易实现,适应性强,不需要获取背景图像。但是背景与运动目标间需要有一定程度的灰度差,否则可能在目标内部产生空洞,不能完整的提取出运动目标。为了改进相邻两帧间的差分效果,人们提出了累积差分法。累积差分法是利用三帧图像计算两个差分图像,再令其对应像素相乘的算法。它通过分析整个图像序列的变化来检测小位移或缓慢运动的物体。光流法是在时间上连续的两幅图想中,用向量来表示移动前后的对应点,在适当平滑性约束的条件下,根据图像序列的时空梯度估计运动场,通过分析运动场的变化对运动目标和场景进行检测和分割。 上面的几种算法都是基于静态背景下的方法,下面主要介绍动态背景下运动目标的检测。 因为生活中我们在很多情况下背景图像都不是静态的,有时摄像机都是安装在一个运动

基于opencv的运动目标检测和跟踪

本科毕业论文
(科研训练,毕业设计)

目: opencv 的运动目标检测
姓 学
名:汤超 院:信息科学与技术学院 系:电子工程系
专 年 学
业:电子信息工程 级:2005 号:22220055204057 职称:教授
指导教师(校内) :杨涛
2009 年
5 月
25 日

厦门大学电子工程系 2005 级本科毕业论文 -
基于 opencv 的运动目标检测和跟踪
摘要
Opencv(Open Source Computer Vision Library)是一种用于数字图像处理和计算机视 觉的函数库,由 Intel 微处理器研究实验室(Intel's MicroprocessorResearch Lab)的视 觉交互组(The Visual Interaetivity Group)开发.采用的开发语言是 C++,可以在 window: 系统及 Linux 系统下使用,该函数库是开放源代码的,能够从 Intel 公司的网站免费下载 得到.opencv 提供了针对各种形式的图像和视频源文件(如:bitmap 图像,video 文件和实 时摄像机)的帧提取函数和很多标准的图像处理算法,这些函数都可以直接用在具体的视频 程序开发项目中. 针对在背景中检测出运动目标并实施警戒等特定提示,本文利用 opencv 的运动物体 检测的数据结构,函数以及基本框架,建立了一个由人机交互界面模式.实施对物体的检 测.该方面在安防方面已经很受重视.相信在不久的将来将会成为一种监督秩序的方式.
关键字 视频,运动目标检测,帧差分

开题报告--监控系统中的行人检测算法的实现

开 题 报 告 -- 监 控 系 统 中 的 行 人 检测算法的实现

毕业设计(论文)开题报告
题 目 监控系统中的行人检测算法的实现
学院
通信工程
专业
信息对抗技术
姓名
班级
学号
指导教师

一、综述本课题国内外研究动态,说明选题的依据和意义
科学技术的快速发展,在给人带来利益和便利的同时,也给人带来了安全隐患。 如为保护某些具有较高的经济价值或技术优势的核心技术及机密而设立的禁区,交 通工具的快速行驶等都会给人们带来安全隐患。因此,监控系统(特别是智能监控 系统)越来越受到人们的重视。纵观各种影响社会安全稳定的事件,给人们带来严 重损失的除不可控因素(地震、火山喷发等)外,主要是人的行为。因此,在监控 系统中实现行人检测将可以避免巨大的人身、经济等损失,也成为了国内外研究的 热点。
目前,清华大学、浙江大学、上海交通大学计算机实验室以及中国科学院自动 化研究所等是国内在行人检测研究上比较著名的高校或研究机构。而且,中国科学 院自动化研究所的生物识别与安全技术研究中心开发的人脸识别系统已经投入使用 (2008 年北京奥运会和 2010 年上海世博会等重大活动)。浙江大学人工智能研究 所采用了单目视觉的方法[1] ,中科院的李和平、胡占义等提出基于监督学习的异常 检测和行为建模算法[2]。国外著名的智能监控系统有 IBM 的智能监控系统和以色列 的 IOImage 公司推出的智能监控系统。另外,卡耐基梅隆大学开发的 NabLab.10 系统已经应用 于汽车的检测系统。虽然国内的监控系统行业近些年发展较快,但是和国外相比仍 有一定的差距。
监控系统中行人检测技术研究至今,比较成熟的算法主要有 Leibe 等人基于“局 部特性的编码”进行的行人检测、Oliver 等人利用边缘图像来对不同的形状模型进行 匹配(ASM)和 Dalal 与 Triggs 提出的基于梯度直方图 HOG+支持向量机 SVM 的行 人检测算法等。而在所有的行人检测技术,基本都包括了运动目标检测和运动目标 识别两个关键技术。
运动目标检测是指通过比较视频图像中像素点的变化判断是否有运动物体,并 通过图像处理技术将运动目标分割出来。运动目标的检测是运动目标识别的前提和 保障,目前主要有光流法和帧差法(包括对称帧差法和背景减除法)。运动目标识别 是对运动目标检测阶段获得的运动目标进行处理,识别出其是行人还是其他的物体。 目前主要有基于运动的方法、基于模板匹配的方法、基于统计学习方法[3]等。
OpenCV 是著名的开源的计算机视觉的函数库,由大量的 C 函数和 C++类构 成作为接口,实现了图像处理和计算机视觉方面的很多通用算法。而且 OpenCV 中 的机器学习函数库实现了机器学习研究领域中比较常见、应用较为广泛的学习方法, 包括了贝叶斯分类器、K 邻近算法、支持向量机、决策树、Adaboost 算法以及神经 网路算法,基本上覆盖了机器学习领域中的主流算法。因此,使用 OpenCV 能够较 灵活的实现行人检测。

opencv之HOG特征详解与行人检测

HOG(Histogram of Oriented Gradient)特征在对象检测与模式匹配中是一种常见的特征提取算法,是基于本地像素块进行特征直方图提取的一种算法,对象局部的变形与光照影响有很好的稳定性,最初是用HOG特征来来识别人像,通过HOG特征提取+SVM训练,可以得到很好的效果,OpenCV已经有了。HOG特征提取的大致流程如下: 详细步骤 第一步:灰度化 对HOG特征提取来说第一步是对输入的彩色图像转换为灰度图像,图像灰度化的方法有很多,不同灰度化方法之间有一些微小的差异,从彩色到灰度的图像转换可以表示如下: 第二步:计算图像梯度 计算图像的X方向梯度dx与Y方向梯度dy,根据梯度计算mag与角度,计算梯度时候可以先高斯模糊一下(可选步骤),然后使用sobel或者其它一阶导数算子计算梯度值dx、dy、mag、angle:

第三步:Cell分割与Block 对于图像来说,分成8x8像素块,每个块称为一个Cell,每个2x2大小的 Cell称为一个Block,每个Cell根据角度与权重建立直方图,每20度为一 个BIN,每个Cell得到9个值、每个Block得到36个值(4x9), 图像如下: 每个Block为单位进行L2数据归一化,作用是抵消光照/迁移影响,L2的归一化的公式如下: 第四步:生成描述子 对于窗口64x128范围大小的像素块,可以得到8x16个Cell,使用Block 在窗口移动,得到输出的向量总数为7x15x36=3780特征向量,每次Block 移动步长是八个像素单位,一个Cell大小。

使用HOG特征数据 HOG特征本身是不支持旋转不变性与多尺度检测的,但是通过构建高斯金字塔实现多尺度的开窗检测就会得到不同分辨率的多尺度检测支持。OpenCV中HOG多尺度对象检测API如下: virtual void cv::HOGDescriptor::detectMultiScale( InputArray img, std::vector< Rect > & foundLocations, double hitThreshold = 0, Size winStride = Size(), Size padding = Size(), double scale = 1.05, double finalThreshold = 2.0, bool useMeanshiftGrouping = false ) Img-表示输入图像 foundLocations-表示发现对象矩形框 hitThreshold-表示SVM距离度量,默认0表示,表示特征与SVM分类超平面之间 winStride-表示窗口步长 padding-表示填充 scale-表示尺度空间 finalThreshold-最终阈值,默认为2.0 useMeanshiftGrouping-不建议使用,速度太慢拉 使用OpenCV预训练SVM行人HOG特征分类器实现多尺度行人检测的代码如下: import cv2 as cv if __name__ == '__main__': src = cv.imread("D:/images/pedestrian.png") cv.imshow("input", src)

行人检测与目标跟踪算法研究

基于opencv中光流法的运动 行人目标跟踪与检测 一、课题研究背景及方法 行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智 能机器人等领域。从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡。 早期以静态图像处理中的分割、边缘提取、运动检测等方法为主。例如 (1)以Gavrila为代表的全局模板方法:基于轮廓的分层匹配算法,构造了将近2500个轮廓模板对行人进行匹配, 从而识别出行人。为了解决模板数量众多而引起的速度下降问题,采用了由粗到细的分层搜索策略以加快搜索速度。另外,匹配的时候通过计算模板与待检测窗口的距离变换来度量两者之间的相似性。 (2)以Broggi为代表的局部模板方法:利用不同大小的二值图像模板来对人头和肩部进行建模,通过将输入图像的边缘图像与该二值模板进行比较从而识别行人,该方法被用到意大利Parma大学开发的ARGO智能车中。 (3)以Lipton为代表的光流检测方法:计算运动区域内的残余光流; (4)以Heisele为代表的运动检测方法:提取行人腿部运动特征; (5)以Wohler为代表的神经网络方法:构建一个自适应时间延迟神经网络来判断是否是人体的运动图片序列; 以上方法,存在速度慢、检测率低、误报率高的特点。 2、行人检测的研究现状

(1)基于背景建模的方法:分割出前景,提取其中的运动目标,然后进一步 提取特征,分类判别;在存在下雨、下雪、刮风、树叶晃动、灯光忽明忽暗等场 合,该方法的鲁棒性不高,抗干扰能力较差。且背景建模方法的模型过于复杂,对 参数较为敏感。 (2)基于统计学习的方法:根据大量训练样本构建行人检测分类器。提取的 特征一般有目标的灰度、边缘、纹理、形状、梯度直方图等信息,分类器包括神经 网络、SVM,adaboost等。该方法存在以下难点: (a)行人的姿态、服饰各不相同; (b)提取的特征在特征空间中的分布不够紧凑; (c)分类器的性能受训练样本的影响较大; (d)离线训练时的负样本无法涵盖所有真实应用场景的情况; 尽管基于统计学习的行人检测方法存在着诸多的缺点,但依然有很多人将注 意力集中于此。 行人检测国外研究情况: 法国研究人员Dalal在2005的CVPR发表的HOG+SVM的行人检测算法(Histograms of Oriented Gradients for Human Detection, Navneet Dalel,Bill Triggs, CVPR2005)。 Dollar 在 2010 年 BMVC 的《The fastest pedestrian detector in the west》一文中提出了一种新的思想,这种思想只需要训练一个标准 model,检测N/K(K ≈10)然后其余的 N-N/K 种大小的图片的特征不需要再进行这种复杂的计算,而是跟据这 N/K 次的结果,由另外一种简单的算法给估计出来,这种思 想实现的基础是大小相近的图像的特征可以被足够精确的估计出来;同年,德国

基于OpenCV的运动目标检测与跟踪毕业设计

基于VC的运动图像跟踪算法设计

沈阳航空航天大学毕业设计(论文) 摘要 运动目标检测与跟踪作为计算机视觉领域的一个重要分支与基础,在工业、医疗保健、航空航天、军事等各个领域具有广泛的应用前景,一直受到广泛的关注,并成为计算机视觉领域的一个研究热点。但是由于运动目标检测问题本身的复杂性,运动目标的检测与跟踪依然面临着诸多挑战。本文在现有研究成果的基础上,对静态场景下的运动目标检测跟踪进行了深入的讨论。 本文首先对运动目标检测的基本方法----帧间差分法与背景差分法进行了深入的学习和探讨,然后,借助于OpenCV技术,在Visual C++ 6.0编程环境下开发了运动目标检测跟踪系统。该系统首先对采集的视频图像序列进行相关的预处理之后,将视频图像序列中的运动目标比较可靠地检测出来。通过系统的测试结果和数据可以得出结论:本文基于OpenCV设计的运动目标检测跟踪系统具有良好的实时性,能够正确地进行运动目标的实时检测与跟踪。 关键词:运动目标检测;帧间差分法;视频图像;OpenCV

基于VC的运动图像跟踪算法设计 Algorithm Design of Image Motion Tracking Based on VC Abstract Moving target detection and tracking field of computer vision as an important branch of the foundation, in the industrial, healthcare, aerospace, military and other fields with a wide range of applications, has been widespread concern, and the field of computer vision to become a research hotspot. However, due to moving target detection complexity of the problem itself, moving target detection and tracking is still facing many challenges. In this paper, based on the results of existing research in static scenes of the moving target detection and tracking in-depth discussion. This article first basic method of moving target detection - frame difference method and background subtraction method conducted in-depth study and discussion, and then, by means of OpenCV technology, Visual C 6.0 programming environment developed a moving target detection and tracking system. The system and the collection of the associated video sequence after pretreatment, the video image of the moving target sequence comparison reliably detected. Through systematic test results and data can be concluded: Based on OpenCV design moving target detection and tracking system has good real-time, be able to properly carry out real-time moving target detection and tracking. Keywords: moving target detection; frame difference method; video frame; OpenCV

基于OpenCV的行人检测监控系统研究与实现

过程中对动态场景中的感兴趣目标进行检测、分类、跟踪、识别和分析,实现犯罪预防、交通管理、意外防范和医疗监护等功能,成为当前智能视频监控技术重要研究和关注点[2]。国内外的学术研究机构和安防产业针对行人检测技术的研究和应用做过大量工作,其检测核心问题是如何在复杂环境中提取行人特征与分类定位,目前行人检测特征中使用最为广泛的行人特征描述子为HOG(Histogram Oriented of Gradient)梯度方向直方图[3]。本论文研究了通过HOG 特征提取和SVM分类器在视频监控系统中利用计算机视觉的OpenCV建立行人检测模型,实现运动目标检测、识别和分析的智能监控系统方案。 1 视频监控系统行人检测总体结构 行人检测监控系统包括监控系统网络硬件部分和行人检测监控软件两个部分。系统硬件部分包括:(1)前端高清摄像头,主要安装在出入口、大楼门厅、通道、电梯、停车场、外围等人员出入频繁的公共区域;(2)网络部分,通过网络和交换机级联接入至监控中心,如果距离较远还可以利用光纤和光纤收发设备;(3)监控中心,包括机房交换机、电视墙、存储服务器;(4)视频显示,摄像头集中显示供人随时查看,还可以通过服务器远程监控或手机监控。监控系统网络拓扑结构如图1所示。 行人检测监控软件部分利用Visual Studio 2017和OpenCV视觉库开发环境实现检测功能,其整体设计如图2所示。首先通过网络高清摄像头实时采集监控视频图像,不断截取视频帧图像并分析和提取每一帧图像中的行人的HOG特征,利用已经训练好的SVM(基于支持向量机)分类模型对图像中提取的HOG特征进行判断,实现运动目标的实时检测与识别。 图2 行人检测软件系统整体结构框图 2 HOG特征提取与SVM分类器 方向梯度直方图(HOG)特征是当前广泛使用的行人检测特征描述子,在计算机视觉和图像处理中通过计算和统计图像局部区域的梯度方向直方图可有效地将运动人体和 图1 监控系统网络拓扑结构图 58 | 电子制作 2018年5月

基于opencv的运动物体跟踪实验报告

基于opencv的运动物体跟踪 一、实验目的 1.通过实验了解opencv运动物体跟踪的数据结构、函数以及基本框架; 2.通过实验提高对于图像的认识; 3.通过实验了解光流法、背景差分法、Camshift等主流视频跟踪算法; 4.通过实验将理论和实践联系起来,提升对于理论知识的认识; 二、实验要求 1.调用基于intel 的开源视觉库opencv,实现视频或者摄像头的监控; 2.编程实现对进入视觉范围内的运动物体实施监测与跟踪; 3.统计出进入视觉范围内的物体个数,速度等; 4.针对实际的监控效果,实现对算法的改进,完成复杂背景下物体跟踪问题 三、实验环境 PC机一台(VC++)、摄像头一个 四、实验内容 1.opencv相关信息: opencv是hite严开源计算机视觉库。它由一系列c函数和少量c++类构成,实现了图像处理和计算机视觉方面的很多通用算法。 其重要重要特性包括:拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。 openCv的优势在于:(1)纯c代码,源代码开放;(2)丰富的函数功能,强大的图像和矩阵运算能力;(3)平台无关性;(4)程序运行的实时性;(5)方便灵活的用户接口;(6)交互性及强大的扩展功能;(7)可嵌入性。 可见,作为一个基本的图像处理、计算机视觉和模式识别的开源项目OpenCv可以直接应用于很多领域,作为二次开发的理想工具。 2.图像噪声的处理方面 图像信号在产生、传输和记录过程中,经常会受到各种噪声的干扰,一般来说,现实中的图像都是带噪图像。通常在图像处理工作中,在边缘检测、图像分割、特征提取、模式识别等高层次处理之前,选用适当的方法尽量地去除噪声干扰是一个非常重要的预处理步骤。依据噪声产生的原因,将经常影响图像质量的噪声源分为三类:阻性元器件内部产生的高斯噪声;光电转换过程中的泊松噪声(椒盐噪声);感光过程中产生的颗粒噪声。噪声的均值表明了图像中噪声的总体强度。一般地,对噪声的描述采用统计意义上的均值与方差。 综合使用各种方法去除图像噪声,通过实验比较了这些方法所适用的场合,深入了解了其中的均值和中值滤波算法,兼顾质量和实时性的要求,将两者结合起来,采用一种改进的实时滑窗递归中值算法。 均值滤波一般的具体实现步骤是: .选择一个(2n+l)X(2n+l)的窗口(通常为3X3或5X5),并用该窗口沿图像数据进行行或列的滑动; .读取窗口下各对应像素的灰度值; .求取这些像素的灰度平均值替代窗口中心位置的原始像素灰度值。 中值滤波一般的具体实现步骤是: .选择一个(2n+l)x(2n+l)的窗口(通常为3x3或5X5),并用该窗口沿图像数据进行行或

行人检测现状

行人检测现状 转自 https://www.360docs.net/doc/499025076.html,/huixingshao/article/details/43793653 https://www.360docs.net/doc/499025076.html,/susongzhi/item/085983081b006311eaf e38e7行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域。从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡。 1.行人检测的现状(大概可以分为两类) (1).基于背景建模:利用背景建模方法,提取出前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人; 背景建模目前主要存在的问题:(背景建模的方法总结可以参考我的前一篇博文介绍)(前景目标检测总结) 必须适应环境的变化(比如光照的变化造成图像色度的变化);相机抖动引起画面的抖动(比如手持相机拍照时候的移

动);图像中密集出现的物体(比如树叶或树干等密集出现的物体,要正确的检测出来);必须能够正确的检测出背景物体的改变(比如新停下的车必须及时的归为背景物体,而有静止开始移动的物体也需要及时的检测出来)。物体检测中往往会出现Ghost区域,Ghost区域也就是指当一个原本静止的物体开始运动,背静差检测算法可能会将原来该物体所覆盖的区域错误的检测为运动的,这块区域就成为Ghost,当然原来运动的物体变为静止的也会引入Ghost区域,Ghost区域在检测中必须被尽快的消除。 (2).基于统计学习的方法:这也是目前行人检测最常用的方法,根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息。分类器主要包括神经网络、SVM、adaboost以及现在被计算机视觉视为宠儿的深度学习。 统计学习目前存在的难点: (a)行人的姿态、服饰各不相同、复杂的背景、不同的行人尺度以及不同的关照环境。 (b)提取的特征在特征空间中的分布不够紧凑;

行人检测参考

行人检测参考 1.制作样本 2.对每一张图片调用 https://www.360docs.net/doc/499025076.html,pute(img, descriptors,Size(8,8), Size(0,0)); 可以生成hog descriptors,把它保存到文件中 for(int j=0;j<3780;j++) fprintf(f,"%f,",descriptors[j]); 3.利用SVM进行训练和分类,可得到权重系数,即getDefaultPeopleDetector()函数中调用的 检测算子detector[] OpenCV2.0提供了行人检测的例子,用的是法国人Navneet Dalal最早在CVPR2005会议上提出的方法。 最近正在学习它,下面是自己的学习体会,希望共同探讨提高。 1、VC 2008 Express下安装OpenCV2.0--可以直接使用2.1,不用使用CMake进行编译了,避免编译出错 这是一切工作的基础,感谢版主提供的参考:https://www.360docs.net/doc/499025076.html,/index.php /VC_2008_Express?????‰è£…OpenCV2.0 2、体会该程序 在DOS界面,进入如下路径:C:/OpenCV2.0/samples/c peopledetect.exe file name.jpg 其中filename.jpg为待检测的文件名

3、编译程序 创建一个控制台程序,从C:/OpenCV2.0/samples/c下将peopledetect.cpp加入到工程中;按步骤1的方法进行设置。编译成功,但是在DEBUG模式下生成的EXE文件运行出错,很奇怪 。 改成RELEASE模式后再次编译,生成的EXE文件可以运行。 4程序代码简要说明 1) getDefaultPeopleDetector() 获得3780维检测算子(105 blocks with 4 histograms each and 9 bins per histogram there are 3,780 values)--(为什么是105blocks?)2).cv::HOGDescriptor hog; 创建类的对象一系列变量初始化 winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8), nbins(9), derivAperture(1), winSigma(-1), histogramNormType(L2Hys), L2HysThreshold(0.2), gammaCorrection(true) 3). 调用函数:detectMultiScale(img, found, 0, cv::Size(8,8), cv::Size(24,16), 1.05, 2); 参数分别为待检图像、返回结果列表、门槛值hitThreshold、窗口步长winStride、图像padding margin、比例系数、门槛值groupThreshold;通过修改参数发现,就所用的某图片,参数0改为0.01就检测不到,改为0.001可以;1.05改为1.1就不行,1.06可以;2改为1可以,0.8以下不行,(24,16)改成(0,0)也可以,(32,32)也行 该函数内容如下 (1) 得到层数levels 某图片(530,402)为例,lg(402/128)/lg1.05=23.4 则得到层数为24

行人检测综述.

最近一直在看行人检测的论文,对目前的行人检测做大概的介绍。 行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域。从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡。 1.行人检测的现状(大概可以分为两类) (1).基于背景建模:利用背景建模方法,提取出前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人; 背景建模目前主要存在的问题:(背景建模的方法总结可以参考我的前一篇博文介绍)(前景目标检测总结) ?必须适应环境的变化(比如光照的变化造成图像色度的变化); ?相机抖动引起画面的抖动(比如手持相机拍照时候的移动); ?图像中密集出现的物体(比如树叶或树干等密集出现的物体,要正确的检测出来); ?必须能够正确的检测出背景物体的改变(比如新停下的车必须及时的归为背景物体,而有静止开始移动的物体也需要及时的检测出来)。 ?物体检测中往往会出现Ghost区域,Ghost区域也就是指当一个原本静止的物体开始运动,背静差检测算法可能会将原来该物体所覆盖的区域错误的检测为运动的,这块区域就成为Ghost,当然原来运动的物体变为静止的也会引入Ghost区域,Ghost区域在检测中必须被尽快的消除。 (2).基于统计学习的方法:这也是目前行人检测最常用的方法,根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图

等信息。分类器主要包括神经网络、SVM、adaboost以及现在被计算机视觉视为宠儿的深度学习。 统计学习目前存在的难点: (a)行人的姿态、服饰各不相同、复杂的背景、不同的行人尺度以及不同的关照环境。 (b)提取的特征在特征空间中的分布不够紧凑; (c)分类器的性能受训练样本的影响较大; (d)离线训练时的负样本无法涵盖所有真实应用场景的情况; 目前的行人检测基本上都是基于法国研究人员Dalal在2005的CVPR发表的 HOG+SVM的行人检测算法(Histograms of Oriented Gradients for Human Detection, Navneet Dalel,Bill Triggs, CVPR2005)。HOG+SVM作为经典算法也别集成到opencv里面去了,可以直接调用实现行人检测 为了解决速度问题可以采用背景差分法的统计学习行人检测,前提是背景建模的方法足够有效(即效果好速度快),目前获得比较好的检测效果的方法通常采用多特征融合的方法以及级联分类器。(常用的特征有Harry-like、Hog特征、LBP特征、Edgelet 特征、CSS特征、COV特征、积分通道特征以及CENTRIST特征。 2.行人检测综述性文章

基于深度学习算法的遮挡行人检测

基于深度学习算法的遮挡行人检测 近年来,随着人工智能技术的迅猛发展,机器视觉渗透到我们生活中的各个方面,人们的生活发生了日新月异的变化。行人检测作为其中一项较为基础的识别技术,对安防监控、自动驾驶、新零售等多个领域提供技术支持,具有广泛的应用场景。 本论文主要以SSD目标检测算法为基础,针对遮挡行人这一特定目标,重新设计其网络结构,使其检测性能得到大幅度的提高。本文主要包括以下内容:论文对行人检测的研究难点及现状做了简单的总结,对传统的基于机器学习的行人检测方法以及基于深度学习目标检测算法的相关知识做了梳理。 其中,基于HOG+SVM的行人检测算法是传统方法中最为经典的一种算法,基于深度学习的目标检测算法主要包括RCNN系列、SSD以及YOLO系列三大类。之后,综合考虑检测的速度与性能,采用自建的遮挡行人数据集训练了一个基于SSD目标检测框架的行人检测系统,并用测试集以及重新标注的INRIA测试集对OpenCV中自带的基于HOG+SVM的行人检测系统和训练好的SSD模型进行对比实验。 实验结果表明SSD模型的检测效果要明显好于传统的基于HOG+SVM的行人检测系统,通过深度卷积神经网络学习到的特征更具有鲁棒性。最后,针对遮挡行人检测,对SSD模型的网络结构进行了相应的修改。 (1)在SSD模型的前置网络中,加入了SE-Inception结构,使其能够更加高效的提取特征;(2)重新设计了网络中的先验框,使其能够更加容易的匹配到行人的形状,并对小尺寸的行人采用了密集采样的策略;(3)针对行人中容易出现环境遮挡和相互遮挡的情况,在模型的训练集中加入了遮挡行人的数据,并采用

相关文档
最新文档