基于OpenCV的车辆视频检测技术研究

基于OpenCV的车辆视频检测技术研究
基于OpenCV的车辆视频检测技术研究

华中科技大学

硕士学位论文

基于OpenCV的车辆视频检测技术研究

姓名:唐双发

申请学位级别:硕士

专业:控制理论与控制工程

指导教师:周纯杰

20090531

华中科技大学硕士学位论文

摘要

车辆检测是智能交通监控系统的关键环节。随着科技发展和技术进步,车辆检测方式正历经着由传统的线圈检测、雷达检测发展到更为先进的实时视频检测方式。车辆视频检测的基本原理是通过对从摄像机采集的视频序列通过数字图像处理技术,提取图像中的车辆信息,从而达到检测和判断车辆是否违章的目的。

视频检测是一个复杂的过程,不仅需要实时采集图像,而且很多图像处理算法不具有通用性,使得系统的开发周期延长,可扩展性不强。鉴于此,本文采用OpenCV 作为开发平台,该库在Windows以及Linux下均可以使用,它是开放源代码并且完全免费,这就可以保证库的维护和更新更加便捷和迅速。OpenCV提供了很多基本图像处理方法的函数,并且征对视频图像处理特别提供了几种运动物体跟踪的原型,非常适合于车辆视频检测系统的开发。

论文设计并实现了一套基于OpenCV的视频车辆检测算法,算法综合考虑系统检测的可靠性和实时性。在算法流程中的背景初始化与更新步骤中,测试了现有的最常用的三种背景更新算法效果并总结其优劣,同时在此基础上提出了一种背景初始化的方法。在算法流程的另一个关键步骤阴影消除,提出了基于三种色彩空间RGB、YUV、HSV空间的阴影消除算法并进行了实验测试,阴影消除效果明显。在提取车辆特征上,采用状态机的方式对虚拟线圈区域判断当前是否有车辆经过,增强了检测系统的鲁棒性。

论文对所进行的一些工作进行了总结,并对车辆视频检测的发展进行了相关预测。

关键字:视频检测背景更新阴影消除开源计算机视觉

华中科技大学硕士学位论文

Abstract

Vehicles detection is the key of an intelligent traffic monitoring system. With the development of technology, the methods of vehicles detection are developing from the traditional loop detection, radar detection to advanced real-time video detection. Its basic principle is that via digital image processing techniques extracting the vehicle information from the sequences of video image collected by cameras in order to achieve the purpose of detecting and determining whether the vehicle is illegal.

Not only Video detection requires collecting images in real time, but also many image processing algorithms are not universal, which makes the system development cycle to be delayed and the scalability of system to be not strong. In view of this, OpenCV is utilized as a development platform, which can be used under both Windows and Linux. It is an open source and completely free of charge so that the maintenance can be guaranteed and the update of its library can be more convenient and rapider. it provides lots of basic functions of image processing methods as well as several prototypes of tracking the moving objects aim at the video image processing.

An OpenCV-based video vehicle detecting algorithm is designed and achieved. In its background initialization and update processes, the existing three most common algorithms are tested to discuss their advantages and disadvantages, and then a new method of initializing the background is brought forward. In another key step of this algorithm, called shadow elimination, new shadow elimination algorithms based on three color space that are RGB, YUV and HSV space are brought forward. Also, we do experiments to show its much better effect on eliminating the shadow. In the features extraction of vehicles, the state machine is used on the virtual loop region to determine whether there are vehicles passing to enhance the robustness of the detection system.

The summary of our work are gave, and the development of video detection of vehicles is relevant forecasted.

KeyWords: Video detect Background update Shadow eliminate OpenCV

独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。

学位论文作者签名:

日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

保密□,在_____年解密后适用本授权书。

本论文属于

不保密□。

(请在以上方框内打“√”)

学位论文作者签名:指导教师签名:

日期:年月日日期:年月日

华中科技大学硕士学位论文

1 绪论

智能交通系统(Intelligent Transportation Systems, ITS)是当前日新月异的科技社会发展迅猛的前沿技术之一,道路交通监控作为其中的重要组成部分,已经随着监控设备和相关检测与处理技术的发展越来越成熟。对道路交通场景进行监控,就必须通过一定的检测技术检测出过往车辆。早前的一些车辆检测处理技术如线圈检测,雷达检测等曾经在检测交通车辆中发挥着巨大的作用,但是随着电子技术和图像处理技术的成熟,基于纯视频图像处理的车辆视频检测技术为道路交通监控提供了一种更加先进的检测方法,作为一种全新而且有效的检测方式,视频车辆检测代表了未来车辆检测技术的发展方向。

本文将对车辆视频检测的相关算法展开研究,并在基于OpenCV(Open Computer Vision, Intel开视觉库)开发环境下完成算法的实现。

1.1 课题来源目的及意义

本课题来源于横向协作,协作单位为科讯智能交通设备有限公司,项目名称智能交通违章抓拍系统的开发,本文主要完成车辆视频检测部分的研究与开发。

道路交通监控系统中,车辆检测是获取道路信息的重要技术手段,作为智能交通系统中一个重要的研究领域,越来越多的专家,学者以及科研单位都投入了大量的精力探索车辆检测的可行性方法。迄今为止,在运动车辆的检测手段上,已经包括有线圈检测、雷达检测、超声波检测、微波检测、视频检测等多种检测方法。这些检测方式差异较大、各具特色,例如线圈检测方式应用最为成熟广泛、技术难度较低,但受外界环境的影响严重,安装调试过程需要切割路面,影响到正常的交通通行;雷达检测造价昂贵、干扰严重、且使用寿命不长。

计算机硬件水平的快速提升和图像处理技术的飞速发展,为曾经处于理论研究阶段的车辆视频检测方式应用于现场成为现实并在当今成为越来越受青睐的一种检测手段。相比于线圈检测器,超声波检测等传统的车辆线式检测器,视频检测作为一种面式检测方法,可以为交通监控提供更丰富的交通信息,比如可以检测出车长、车型、甚至车牌等信息。

华中科技大学硕士学位论文本文研究的目的在于利用视频图像处理的相关技术,探讨道路交通视频图像的采集、车辆运动检测、车辆阴影等相关车辆检测算法的研究,并设计出一套完整的视频车辆检测流程,同时满足实时性、稳定性、自适应强的特点。

车辆视频检测是视频电子警察系统中不可或缺的重要组成部分,是视频电子警察系统能否正常稳定运行的核心,良好的视频检测技术,能够极大的提高车辆检测有效性、准确性,本文设计的车辆视频检测方法,针对闯红灯违章抓拍系统的特定需求设计,实时性好、鲁棒性高,为视频电子警察系统进行及时的抓拍和相关处理奠定良好基础。

1.2 文献综述

1.2.1 智能交通系统国内外研究现状

智能交通运输系统[1](ITS)又称智能交通系统,是在较完善的交通基础设施之上,通过应用信息、通信、计算机、自动控制和系统集成等技术,加强载运工具、基础设施和用户之间的信息交换,提高交通系统运行的有序性和可控性,实现提高运行效率、减少事故、降低污染,建立一个高效、便捷、安全、环保、舒适的综合交通运输体系,是21世纪促进世界经济发展和社会进步的有效高科技手段。

智能交通系统是一个国际上80年代后期发展起来的交通运输领域的新概念,按照分类,智能交通系统可以分为[2]:

(1)高速公路信息管理:为公路提供紧急救援、抢险清障、监控管理以及路况安全信息提供公益安全通信服务;为公路管理、路政管理等提供行业管理服务;为公路收费联网、自动收费等提供经营性服务。

(2)道路交通管理:包括应对道路交通突发事件系统、道路交通安全管理与指挥系统、电子警察系统。

(3)智能城市公共交通系统(APTS):通过先进的计算机和控制技术,为市民提供安全舒适便捷的公共交通服务。

(4)高速公路收费系统:通过联网收费,实现高速公路的安全舒适通畅,对提升高速公路的形象,发挥高速公路的经济效益和社会效益有重要作用。

华中科技大学硕士学位论文(5)车辆监控调度系统:通过GPS技术、GIS技术、通信技术,实现车辆的实时定位、监控与运营调度,从而极大的提高车辆运输管理的效率和安全。

资源环境的恶化以及道路交通的拥挤堵塞,使得智能交通系统的发展受到世界各国的关注与重视,目前世界上已经形成了以美国、日本、欧洲为代表的三大研究中心。

在美国,1993年开始部署开发的第一代智能交通系统历时3年完成,后来1998年又公布了修改后的国家ITS体系结构(第二版),包括与交通信息系统及服务相关的数据通讯标准、数据输入和交换标准、电子地图和信息传输标准等[3]。

在欧洲,1998年由欧洲十多个国家投资50多亿美元打造的旨在完善道路设施和提高服务质量的DRIVE计划已经开发成熟完善。如今欧洲各国正在实施其TELEMATICS(远程信息服务、无线数据通讯系统)。

在日本,车辆导航系统早已非常普及,截至2002年6月,车辆导航系统的生产量就已达960万套;从2001年3月开始,日本开始全面发展和实施ETC(Electronic Toll Collection System)。另外,智能巡航系统以及智能道路系统在日本也取得了飞速的发展[4,5]。

我国的ITS起步于上世纪90年代[1],经过10多年的发展,目前在智能化交通控制、交通信息采集与处理、公交智能调度等关键技术上取得了突破性的进展,多项成果在北京、广州、上海、青岛等10个智能交通应用示范工程和各大高速公路上得到了广泛应用。另外,在ITS标准化的进程中,也取得了可喜的进展。截至目前我国已经发布的ITS标准规范有20项,完成审查报批的ITS标准规范有12项。

1.2.2 车辆视频检测国内外研究现状

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

美国、日本等国家在车辆视频检测方面展开了大量的研究。早在1982年,东京

华中科技大学硕士学位论文

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

目前世界上最著名的车辆视频检测器主要有美国明尼苏达州立大学开发的Autoscope车辆视频检测系统,美国TERIS公司的V ANTAGE视频检测器以及比利时Trafficon公司的TrafiCam检测器,其中Autoscope采用了Panos G Michalopoulos[9]和Brian Carlson[10]教授的虚拟线圈检测器的检测原理,该系统通过在图像中设置虚拟的检测线,判断检测线中的图像信息变化来达到检测车辆的目的;而比利时的最新产品TrafiCam一代和二代采用纯硬件视频检测方式,系统集成度高,可以轻松的固定在现有或新基础设施上,通过RS-485总线,可以设置最多达9个车道的虚拟线圈。TrafiCam会根据车辆占用轨道检测提供对交通信号灯控制器的输入,抓拍的图像也通过RS-485的数据接口传输至后台服务器。

在国内,采用纯视频检测的道路监控系统已经日趋成熟并且已经应用于各种城市交通十字路口或高速路口中,检测的车辆信息也有简单的车辆计数发展到可以检测车速、车长、车型、车牌。目前国内车辆视频检测做的很成熟的有包括四川川大智胜、北京文安、汉王等一些专门从事图像识别和运动物体检测的公司或厂家。

在相关研究上,中国科学院北京自动化研究所模式识别国家重点实验室在交通场景的监控上和车辆跟踪方面做了比较深入的研究[11],另外如上海交通大学图像处理与模式识别研究所、四川大学图像识别智能研究所在这方面也做了大量的工作并将其成果转化为产品运用到市场。

1.3 论文的主要内容与组织结构

本文主要阐述了作者在车辆视频检测技术上的主要研究与实现。论文结合了作者在视频检测方面所作的算法研究,结合实际的开发平台Intel视觉开源库(OpenCV),实现和论证了算法的可行性,并在此基础上设计了一套切实可行的完

华中科技大学硕士学位论文

整的车辆检测流程。本文的主要内容介绍如下:

绪论部分阐述了课题的来源、目的和意义,同时对所查阅的文献资料进行总结,分析了智能交通系统的国内外研究现状,以及车辆视频检测的国内外研究现状。

第二章对车辆视频检测的相关原理进行了简要介绍,同时对车辆视频检测的关键技术进行了分析与总结,对图像预处理,背景提取算法,图像阈值化分割和阴影检测进行了详细的分析。

第三章结合自己的实际分析与实验,提出了三种色彩空间的阴影消除算法。首先介绍了阴影消除的基本原理和目前已有的阴影消除算法,包括基于灰度空间的阴影检测、彩色空间的阴影检测以及归一化互相关函数(NCC)的阴影检测算法。接着,在此基础上提出了三种色彩空间RGB、HSV、YUV空间的阴影消除算法和检测流程。

第四章是全文核心,围绕前有检测算法,提出了一套基于OpenCV开发环境下的车辆视频检测流程,包括从视频流的采集、检测区域的设置、前景提取、阴影消除、背景初始化更新、以及提取车辆信息均做了详细的介绍。

第五章是是背景更新算法和阴影消除算法的实验结果分析,给出了包括滑动平均更新算法、选择更新算法、高斯混合背景模型更新算法的实验结果,以及HSV空间、YUV空间、RGB空间的三种阴影消除算法的实验结果

最后是本文的总结,系统性的概括本文所做的工作,并对下一步的工作做了规划和展望。

华中科技大学硕士学位论文

2 车辆视频检测原理与关键技术

车辆视频检测的图像采集源一般是普通标清摄像机,直接从摄像机输出的是模拟信号,需要经过视频采集卡的模数转换转换成数字图像,因此其处理对象为从视频采集卡输入的实时图像序列,摄像机是固定安装在交通现场的,因此图像处理的背景环境是固定不变的,但受光照和昼夜变化的影响。本章着重对车辆视频检测的已有原理做详细介绍,同时对其中的一些关键技术做出比较详细的分析。

2.1 车辆视频检测原理

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

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

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

华中科技大学硕士学位论文

区域设置一个较小的检测矩形框,通过统计矩形框内的图像特征变化来判断车辆是否通过,和线性检测法相比,检测的区域要大些。

最常见目前运用最多的是区域检测法,该方法融合了宏观检测法和线式检测法的优点。它的检测原理是通过在图像设置若干处ROI(感兴趣区域),通过检测区域内的图像特征达到判断有无车辆通过的目的,区域检测法通常有帧间差法、背景差法以及综合法几种,无论是哪种车辆检测方法,都遵循以下的车辆视频检测流程。如图2-1所示:

图2-1 车辆检测基本流程

背景差分法的原理是先通过一定的算法或人为的选取一张没有车辆的背景图像,之后的视频序列都通过与背景相减得到差值图像,再通过阈值化分割获取二值图像,从而达到检测车辆的目的。该方法中,背景是需要实时更新的,以满足其准确性。

帧间差分[16]的原理的是通过当前帧图像与上一帧图像作差得到差图像,因为车辆是运动的,因此可以通过当前帧和上一帧的图像得到车辆运动轨迹的残差,再通过

华中科技大学硕士学位论文

图像分割的方式得到检测区域,常见的检测方式有二帧帧差法和三帧帧差法。

2.2 图像预处理

由于受环境,光照条件变化以及采集设备的性能影响,从摄像机采集的图像都是降质图像,带有比较多的噪点信息,这些往往影响到后期的车辆特征提取,降低检测的准确性。因此需要在获得视频图像后,先对帧序列进行预处理,这其中包括的主要步骤有色彩空间映射、图像平滑滤波、对比度增强。

1)色彩空间映射

本文采用的图像采集设备为三洋SANYO 标清CCD 摄像机,海康威视DS4000HC 序列视频采集卡,从视频采集卡中获取的图像制式为YUV [17]格式的帧序列。众所周知,在现代彩色电视系统中,CCD 摄像机采集到的彩色图像信号,通过分色,放大校正电路后得到的RGB 图像。RGB 图像经过式(2.1)变换后得到亮度信号和两个色差信号Cr ,Cb 。(其中Cr 为红色通道R 与亮度的差值R-Y ,Cb 为蓝色通道B 与亮度的差值B-Y ),Cr ,Cb 也可以分别称为U ,V ,两者的表达其实是一致的。

(2.1)

Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B ?????

2)视频图像平滑滤波

滤波分为线性滤波和非线性滤波,滤波的主要目的是减小噪声,可以在提取主要的前景目标之前去除图像的一些琐碎细节,如桥接直线或曲线的摩擦。线性滤波的方法算法简单、速度比较块,但容易造成图像模糊;非线性滤波方法则可以很好的去除信号噪声也能很好的保持信号的局部特征,但速度稍微慢些。对于要想保持整幅图像的整体和局部特征的图像来说,采用非线性滤波如高斯低通滤波不失为一种理想的滤波方式。下面分别就几种滤波方式做简单的介绍[18-20]:

(1)领域平均滤波方式

此方法通过一个大小的模板S ,在整幅图像上进行滑动处理,设模板中心的像素点的灰度值为N N ?(,)I x y ,则通过领域平均后,该点的像素值变为:

华中科技大学硕士学位论文

^2

,1

(,)(,)x y S x y I N I ∈=∑x y (2.2)

领域平均的处理的方法是以图像模糊为代价来减小噪声的,且选取的模板S 的尺寸越大,噪声消除的效果就越显著。

(2)加权平均滤波法

加权平均滤波法[21]是对领域平均滤波方法的改进,此方法认为对于同一尺寸的模板,可对不同位置的像素值采用不同的数值,离像素中心点近的系数应较大,远离中心像素的位置的系数较小。这样可使得图像既平滑,又不致使边沿和细节有明显模糊。

一种常用的加权平均滤波方法是根据系数与模板中心的距离反比的确定其内部的权值,常用的模板有1111120110111??????????,010*********??????????

;还有一种方法是利用高斯模板来确定系数权值,模板为1211240216121????????

??,加权平均也常称为归一化卷积,表示两幅图像之间的卷积,一是需要处理的图像;二是有加权值的图像。

(3)中值滤波法

中值滤波是一种非线性的滤波方式,其实也可以当成一种领域运算,它的原理是将模板中的像素灰度按从大到小的顺序排序,取其中间值作为输出结果。设模板W ,其大小为M N ?,图像在(,)x y 点的灰度值为(,)I x y ,则二维中值滤波的输出结果为:

'(,){(,),,}x y I med I x k y l k l W =--∈

(2.3) (4)高斯低通滤波法

用表示频率域,则二维高斯滤波方程可表述为:

()H u 2(,)/2(,)D u v H u v Ae 2σ-= (2.4)

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

华中科技大学硕士学位论文

高斯滤波器可以表示为如下形式:

20(,)/2(,)2D u v D H u v Ae -= (2.5)

0D 为截止频率,当时,滤波器下降到它的最大值的0.607处。采用高斯平滑滤波后得到的图像,可以增强图像的细节,去除图像的局部噪音。

0(,)D u v D =3)图像对比度增强

交通场景中得到的图像,由于受环境影响变化比较大,对比度较低,直接处理得到的处理结果不理想,因此需要通过图像增强技术来达到使图像清晰的目的。常用的方法有直方图均衡化,局部统计等方法。下面以直方图均衡化方法对图像增强技术作简单介绍。

原始图像灰度级归一化在0~1之间,即r 01r ≤≤,()r p r 为原始图像灰度分布的

概率密度函数,直方图均衡化处理实际上就是寻找一个灰度变换函数T ,使变化后的灰度值,归一化为0。即建立r 与s 之间的映射关系,要求处理后图象灰度分布的概率密度函数()S T r =1s ≤≤()s p s =1,期望所有灰度级出现概率相同。

其直方图均衡化处理的计算步骤[22]如下:

(1)统计原始图象的直方图,如式(2.6)所示

()/r k k p r n n =

(2.6)

其中,是归一化的输入图像灰度级。

k r (2)计算直方图累积分布曲线,如式(2.7)所示 00()()k k j k k r j j j n S T p r n r =====∑∑ (2.7) (3)用累积分布函数作变换函数进行图像灰度变换,根据计算得到的累积分布函数,建立输入图像与输出图像灰度级之间的对应关系,并将变换后灰度级恢复成原先数范围。

2.3 背景提取算法

由于视频检测系统的应用场合为各种交通要道或十字路口,而这种户外环境会受到光照条件和气候环境以及各种人为的原因而造成不断的变化,因此检测的道路场

华中科技大学硕士学位论文

景中背景是不断的变化的,而在视频检测系统中,如何提取有效而实时的背景更新算法对车辆信息的提取有着决定性的作用。

最简单也同时是最原始的背景初始化算法是多帧平均法,其原理为在一定的时间内,取视频图像帧进行加运算,再求平均值,该平均值即可认为是真实的背景。该算法认为临时物体如车辆,行人等运动物体会在这帧图像的均值化过程中被滤除掉,可以近似忽略不计。这种算法的计算量比较大、背景更新速度慢、效果也不是很好,因此在实际中是不太可行的。

N N 下面介绍几种实际中常用的背景更新算法:滑动平均更新法、选择更新算法、混合高斯背景模型法[23,24]。

1)滑动平均更新法

背景相对于运动车辆来说是相对静止的,并且在较长的时间内保持亮度和色度基本不变;而车辆是时刻运动的,因此可以采用滑动平均的方法对背景进行更新,当更新帧数达到一定数量时,此时的图像即为背景。

更新公式如式(2.8)所示:

1(,)(,)(1)(,)k k k B i j I i j B i j αα-=+- (2.8)

式中为当前帧数,为像素点的坐标,因此,k ,i j (,)k B i j 和1(,)k B i j -分别表示当前背景和前一背景在位置的值,(,i j )(,)k I i j 为当前该坐标点的像素值,α表示更细速度,

01α≤<。

更新流程如下:

(1)获取第一帧图像first I 作为背景图像B 。

(2)如果背景图像存在,则将前景图像与背景图像进行差分,通过前景分割,获得前景车辆图像,否则回到第一步。

(3)对新的每一帧图像I ,和当前背景图像B 采用公式(2.8)进行更新。

滑动平均更新方法在路面车辆较少时效果较好,但是当路面车流量比较大时,前景车辆占整个图像的比例增加,导致获得的背景图像中含有车辆的成分增加,产生失真,具体效果图见5.1节。

2)选择更新法

华中科技大学硕士学位论文

选择更新是滑动平均更新算法的改进形式,该方法把获取的帧图像分为前景图像和背景图像区域。对于包含车辆的前景区域不进行更新,而对当前没有车辆的区域采用滑动平均的方式进行背景更新。

其更新流程如下所示:

(1)获取第一帧图像first I 作为背景图像B 。

(2)如果背景图像存在,则将前景图像与背景图像进行绝对差分,并且通过阈值分割,获得前景车辆二值化图像G ,否则回到第一步进行背景更新。

(3)对当前的每一帧I ,其当前背景更新按式(2.9)进行更新。

11(,)(1)(,)((,)!0)(,)(,)k

k k k I i j B i j if G i j B i j B i j else αα--+-=?=?? (2.9)

由上式可以看出,这种更新算法只对当前图像中背景区域部位区域进行更新,这样可以减少车流量过大时造成的更新误差,使背景趋于实际的真实背景。实际表明,这种更新方式可以取得理想的效果,且更新速率快。但是这种背景更新方式需要选取一张真实的背景图作为初始背景,否则如果初始背景中包含有前景物体,则由上步骤二可以看出,通过绝对差分,因为摄像机的采集帧率比较快,在几十毫秒的时间间隔内,物体位移距离短,通过绝对差分得到的差值图像中该区域的像素值大部分为0,该位置始终得不到更新,会造成系统的误检。这种算法的优点是可以检测出场景中长时间静止的前景物体。

3)高斯混合背景模型[25-28]

高斯混合背景模型认为背景的每一个像素分别可用由个高斯分布组成的模型来描述,如式(2.10)所示:

N ,,,1().(,,N k i k k i k i k i P X w X ημ==∑)∑ (2.10)

上式中N 为混合高斯模型中高斯分布的个数,经验取值为3~5。k X 是像素在第k 帧的大小,在RGB 空间为红、绿、蓝三通道的值组成的像素点。表示第k 帧时高斯混合模型中第i 个高斯分布的权系数估值,,i k w ,i k μ、,i k ∑则分别表示第k 帧混合

高斯背景模型中第i 个高斯分布的均值向量和协方差矩阵,而η表示高斯分布的概率

华中科技大学硕士学位论文

密度函数。

如下式所示:各个参数值的获取公式为:

(1)将高斯背景模型的每个高斯分布权系数和均值向量赋初始值0,协方差则赋予一个比较大的初值。在第k 帧,对图像的每个像素值0V k X 都和对应的高斯模型

进行匹配检验,若像素值k X 和模型中的第n 个高斯分布的均值n G n μ差小于其标准差

n σ的2.5倍,则认为该分布与n G k X 相匹配。

(2)如果验证出该像素点的混合高斯模型中至少有一个高斯分布与像素值k X 匹配,则对混合高斯背景模型按下述规则进行参数更新。

① 若该高斯分布与高斯混合背景模型中的不匹配,则对模型中的均值μ和协方差矩阵保持不变。

∑② 如果该像素点与背景模型相匹配,则把模型的均值和协方差矩

阵按下式进行更新。

n G n G n u n ∑

,,1(1)..i k i k k u u X ρρ-=-+,,1)..(k i i k diag X u ρρ-+-∑∑,1,1.(|,)k i k i k X u ραη--= (2.15) (2.16)

,,(1)()T k k i k i k X u =--∑

(2.17) 其中式(2.17)中,α为参数估计的更新速率。

③ 若该像素点对应的混合高斯模型中没有高斯分布与其匹配,那么需要对

华中科技大学硕士学位论文

最不可能代表背景过程的高斯分布进行重新赋值,最不可能代表背景的高斯分布为权系数最低的那个分布,如下所示:

w ,1arg min{}i n k j w -=

(2.18) ,10j k w W -=

(2.19)

,j k k u X = (2.20) 0,.j k V I =∑

(2.21) 其中是一个预先给定的初始经验值,一般为较小的正值,0W I 是一个三阶单位矩阵。

④ 最后,对个高斯分布的权系数进行更新:

N ,i k w 第一步:,,1(1)..()i k i k i k w w ,M αα-=-+

(2.22) 第二步:

(2.23)式中,若高斯分布与第k 帧的像素值,,1/N i k i k i k i w w w ==∑n G ,k X 匹配,则取值为1,否则取值为0。

(3)对图像中每个像素点的混合高斯背景模型进行参数更新后,就需要对混合高斯背景模型中的高斯分布进行估计,以确定哪些高斯分布是背景过程产生的,能最佳描述背景。首先按照的比值由大到小将像素点的个高斯分布模型进行降序排序,则最有可能描述稳定背景过程分布的高斯分布会位于序列的顶部,而由背景暂态扰动产生的高斯分布则会排到序列的底部,按照上述第2步的规则,最终其会被新赋值的高斯分布给取代。

/||w ∑N 为此,可以选取序列的前面个高斯分布作为背景像素模型:

'N (2.24)

'

,arg min{}N N i t i N =∑w T >其中,T 为预定的阈值,(0.5

这样由前面个匹配的高斯分布就可以估计出比较准确的背景模型。高斯背景模型对于比较简单,变化缓慢的场景有比较好的效果。在比较复杂的交通场景中,对于有的像素点,采用个高斯分布就难以准确描述样本序列的实际分布。另外由式(2.24)可以看出,判断一个分布是否是背景取决于经验阈值,而是一个既定

'N N T T

华中科技大学硕士学位论文

的阈值,是否准确还取决于背景被观测的时间占总时间的比例,对于车流量变化较大的时间段不太适应。

2.4 图像分割

在图像预处理完成后,接着要做的工作就是通过前景图像和背景图像,提取视频中的前景图像,即运动车辆。这一步要做的工作是将车辆目标从图像中提取出来,目前常采用的方法是通过图像分割技术来实现,常用的分割技术有边缘检测、阈值分割以及区域生长三类。

2.4.1 边缘检测

边缘在整幅图像中是变化差异最大的部分,图像的边缘通常是前景物体与背景的交界处,该处的图像亮度或灰度值会产生跳变,导致其一阶导不连续。因此可采用求图像的梯度函数的方法来得出图像的边缘。常用的边缘检测[29]算子有Roberts 算子、Sobel 算子、Prewitt 算子、Canny 算子等。

1)Roberts 算子

采用如下式计算,

(,)|(,)(1,1)||(1,)(,1)|G i j f i j f i j f i j f i j =-++++-+

(2.25)

用卷积模板表示,则式(2.25)变为: (,)||||x y G i j G G =+ (2.26)

其中,,可以看出Roberts 算子采用的是的模板。 1001x G ??=??-??0110y G -??=???

?22?3?3??2)Sobel 算子

该算子采用3的模板按下式计算梯度幅值, 0

127654(,)a a a a i j a a a a ???????

?

M = (2.27)

式中的偏导数采用如下方法计算,

华中科技大学硕士学位论文

23407()(x s a ca a a ca a =++-++6)6)??

(2.28) 23407()(x s a ca a a ca a =++-++

(2.29)

式中C=2,Sobel 采用的垂直模板和水平模板分别为:

水平模板:,垂直模板: 101202101-??

?-?-????121000121??????---????。 3)Prewitt 算子

Prewitt 算子和Sobel 算子的原理其实是一样的,只不过公式中的C=1,因此模板表示如下:

水平模板: ,垂直模板: 101101101-???-?-??????111000111??

????---????

4)Canny 算子

Canny 边缘检测算法提出了好的边缘检测算子的3个判决准则:(1)信噪比准则,信噪比越高,则提取的边缘质量越高;(2)定位精度准则,边缘精度L 的定义如下式(2-30)

''|()()w

G x h x dx L +-=|

(2.30)

''(),()G x h x 分别是的导数,L 越大则表示定位的精度越高;(3)单位边缘响应准则,为了使单位边缘只有一个响应,检测算子的零交叉点平均距离满足式(2.31):

(),()G x h x '()D f 12'2'''()()()w h x dx D f h x dx π+∞-∞-????=???????? (2.31)

''()h x 是的二阶导数。从而由此三法则,Canny 边缘检测的算法步骤如下: ()h x (1)采用高斯滤波器进行图像平滑滤波。

(2)用一阶偏导数的有限差分进行梯度方向和幅值的计算。

基于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/963926754.html,/huixingshao/article/details/43793653 https://www.360docs.net/doc/963926754.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/963926754.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/963926754.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)针对行人中容易出现环境遮挡和相互遮挡的情况,在模型的训练集中加入了遮挡行人的数据,并采用

相关文档
最新文档