基于OpenCV的运动目标检测与跟踪_尹俊超--20

基于OpenCV的运动目标检测与跟踪_尹俊超--20
基于OpenCV的运动目标检测与跟踪_尹俊超--20

0引言

运动目标检测跟踪技术在航空航天遥感、生物医学、工业自动化生产、军事公安目标侦查、智能机器人、多媒体电视制作、文化艺术等领域都有着非常广泛的应用,如由卡耐基梅隆大学(CMU)的机器人研究中心和Sarnoff公司历时3年(1997--1999)共同开发完成的视频检测追踪(VSAM)系统,用于自动视频检测与追踪,该系统既可以用到军事上,也可以用在日常视频监控方面,这种系统的优势在于削减了人力资源的开销,具有较大的商业价值。

近几年,国内外的学者在运动目标检测跟踪问题上,已经提供了很多有效的方法,但是很多算法不能同时满足实时性和精确性的要求,特别是在复杂场景下,当多目标,遮挡,停走,光线变化的情况发生时,目标检测和跟踪实现起来会变得比较复。目前,常用的目标检测算法有背景差,帧间差,光流法,扩展的EM算法,能量运动检测,基于数学形态学的检测等[1];常用的目标跟踪算法有基于区域的跟踪,基于运动估计的跟踪,基于目标模型的跟踪和基于主动轮廓的跟踪等。

作者试图基于现有的检测和跟踪算法,利用OpenCV图形图像开发库,通过对各种算法的比较分析,针对不同环境条件,寻求一种解决多运动目标检测跟踪的方案,能够克服目标部分被遮挡,停停走走和光线变化等因素对实验结果的影响,假设在本文实验中摄像头是标定的。

本文主要实现的目标是对场景中的多个运动目标进行检测并跟踪,首先要提取出运动的目标,其次提取运动目标特征(颜色,纹理,形状),实施跟踪算法,标记出运动目标轨迹。

1OpenCV开发平台简介

OpenCV是一个开源的计算机视觉库[2],它采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。Open-

收稿日期:2010-09-08;修订日期:2010-11-15。

CV还提供了Python,Ruby,Matlab以及其它语言的接口。Open-CV的设计目标是执行速度尽量快,主要关注实时应用。它采用优化的C代编写,能够充分利用多核处理器的优势。

OpenCV主体分为5个模块,CV模块包含基本的图形处理函数和高级的计算机视觉算法。MLL是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCroe包含OpenCV的一些基本数据结构和相关函数[2]。

2运动目标检测及跟踪算法

2.1检测跟踪整体思路

首先通过检测算法从场景中检测出运动目标,提取目标特征信息(如颜色信息),与之前检测出的目标做特征比对,如果是新目标则加入到跟踪序列中,如果是旧目标则舍弃。目标跟踪阶段,对跟踪序列中的目标采用跟踪算法,获得其运动轨迹。关键点在于目标的特征信息提取和匹配,这是决定目标跟踪效果的重大因素。系统整体框架如图1所示。

2.2运动目标检测算法

由于本实验是研究标定摄像头下的运动目标检测,背景的变化不是很大,所以考虑采用帧间差法和背景差法。背景差是一种适合静态场景的运动目标检测方法,它首先通过前几帧图像重构背景图像(如果已有纯背景图像则不需要此操作),再将当前帧和背景图像做差,再对差图进行处理。帧间差通过视频序列中的相隔一帧或几帧两幅图像做差运算来检测图像中的运动区域,这种方法适用于动态变化的场景。然而这种方法也有一定的局限性,高速运动的目标采用此方法会产生空洞或目标被拉长,目标静止时无法检测到目标。图2表示了采用这两种方法获取目标的流程,图(a)、图(b)分别为背景差和帧间差提取目标。

背景重构就是采用图像分割技术提取出不包含目标对象的背景技术,其关键是如何实时更新背景模型以适应背景的变化。本文实验中采用混合高斯背景模型来重构和更新背景。

根据文献[3]介绍的方法,本文用K(3≤K≤5)个高斯分布函数来表示场景中的每一个像素点的分布,那么特定像素点在时间N

的像素值

(1)

式中:

:——第K个高斯

分布密度函数,

表示为

2

2

11(2)

式中:2——协方差矩阵。这个K个高斯分

布按照/的值进行排序,第一个B分布被用来作为场景中

的背景模型,阈值T是根据最大类间方差法来确定的,

表示为执行跟踪算法

加入跟踪队列

图2运用减法提取目标框架

(a)背景差提取目标(b)帧间差提取目标

重构背景

当前帧跟

背景帧做差

处理差图

确认目标

筛选目标

提取轮廓

当前帧跟

前一帧做差

处理差图

确认目标

筛选目标

提取轮廓

图3MeanShift算法流程

选择窗口

计算窗口重心

重合窗口的

中心和重心

窗口位置是

否发生变化

结束

Y

N

来实现,跟踪过程中的关键就是生成色彩概率分布图,如图5所示。用在cvCalcBackProject 处理中的模板是目标图像色调(HUE )的直方图,而直方图可以看作是一种概率分布图。在处理前,目标图像中的每一个像素的值描述的在这一点的颜色信息,而处理后,图像中每一个像素的值就变成了这个颜色信息出现在此处的可能性的一种离散化的度量,出现的可能性大,像素值就大,反之则小。这样就为后面的匹配和跟踪提供了线索。

3实验结果及分析

本文实验的数据来源是摄像头拍摄到的实验室固定场景

视频序列图像和来自网上的PETS 2006Benchmark Data [16]。背景差的关键步骤在于背景图像的重构,通过CvGaussBGStat-ModelParams 结构体可以设置各个参数的值,本文实验采用的默认参数,如表1所示。

通过表1和图6可发现,混合高斯模型有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于场景可能是变化的,需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类,这对背景的提取精度起很大的作用。

通过图7实验结果不难看出,背景差法的优点是得到的目标区域连通性好,缺点是它对背景变化比较敏感,细小的背景变化都会产生很大的噪声,同时提取纯背景图像要花费一

定的时间。通过图8可以发现,帧间差的优点是运算简单,算法效率高,实时性较好,可用于动态背景下的运动目标检测,缺点是是不适用于运动目标走走停停的情况,当运动目标速度较慢或较大时,得到的目标轮廓可能会不完整或沿着目标的运动方向被拉长。

运动目标的跟踪算法的种类有很多,不同的算法在不同的环境下精确度,鲁棒性不同,CamShift 算法可以适应目标大小的变化,前提是目标的颜色特征比较明显并且不会发生大的变化,图9是跟踪效果图,绿色框里的目标颜色单一,所以CamShift 算法跟踪不到,体现了这种算法的局限性。

当然目标运动过程中可能会发生很多情况,如目标被障碍物部分遮挡或者目标之间相互遮挡,如图9里面的目标被柱子遮挡之后就失去了跟踪。这些问题作者将继续研究。

4结束语

运动目标的检测跟踪算法的种类有很多,不同的算法在

不同的环境下鲁棒性不同,本实验中采用了帧间差和背景差

读取序列图像

图4实现目标检测跟踪的流程

检测算法背景差

混合高斯模型重构的背景

帧间差

差运算平滑处理

膨胀腐蚀二值化设置ROI 提取目标彩色直方图

筛选轮廓

计算反投影提取轮廓

CamShift

算法

图5目标色彩概率分布

(a )目标色彩直方(b )目标色彩概率投影

表1

不同参数下重构背景的效果比较

参数设置学习帧数背景阈值标准阈值权值方差最小面积模型数量

效果默认

设置一设置二设置三

200200200

200

0.70.71.00.7

2.52.54.02.5

0.05

0.050.050.05

30302030

15.5f 15.5f 15.5f 20.5f

5255

图6(a )图6(b

)图6(c )图6(d )

图6不同参数下重构的背景图像

(a )(b )(c )(d )

图7背景差目标检测效果

(a )背景差提取的目标(b )背景差下的二值化图像

(c )背景差下的目标轮廓

图8帧间差目标检测效果

(a )帧间差提取的目标(b )帧间差下的二值化图像

(c )帧间差下的目标轮廓

图9跟踪效果

作为目标检测的方法,主要难点在于当多个目标存在于场景中时如何判断哪一个或一些是第一次出现的目标,本实验采用目标面积,坐标筛选法,认为从场景最上面出现的目标视为新目标,并加入到跟踪队列。检测是跟踪的前提,检测结果的精确性直接影响到跟踪的可靠性。CamShift算法可以适应目标大小的变化,前提是目标的颜色未发生大的变化,当然目标运动过程中可能会发生很多情况,如目标被障碍物部分遮挡或者目标之间相互遮挡,针对这些问题学者们在努力寻求解决办法。本课题只是对目标检测跟踪基本原理和方法的实验验证,并对其结果进行了理论性和功能性上的分析。

参考文献:

[1]王江涛.基于视频的目标检测,跟踪及行为识别研究[D].南京:

南京理工大学模式识别与智能系统,2008.

[2]Gary Bradski,Adrian Kaebler.学习OpenCV(中文版)[M].北京:

清华大学出版社,2009:100-380.

[3]Stauffr C,Grimson W.Adaptive background mixture models for

real-time tracking[C].Ft Collins,CO,USA:Proceeding of Com-puter Visio and Pattern Recognition,1999:246-252.

[4]Borg M,Thirde D,Ferryman J,et al.Video surveillance for aircraft

activity monitoring[C].IEEE Conference on Advanced Video and Signal Based Surveillance,2005.[5]熊令,洪健.基于OpenCV的视频对象的运动检测[J].电子测试,

2009,25(9):91-93.

[6]黄鑫娟,周洁敏,刘伯扬.自适应混合高斯背景模型的运动目标

检测方法[J].计算机应用,2010,30(1):71-74.

[7]宋涛,马宇峰,蔺海峰.OpenCV在目标跟踪中的应用及实现[J].

计算机与网络,2009,24(2):52-56.

[8]冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2007.

[9]陈兆学,郑建立,施鹏飞.基于Mean Shift方法的视频车辆检测

与分割[J].上海理工大学学报,2007,29(2):195-199.

[10]朱虹.数字图像处理基础[M].北京:科学出版社,2005:168-171.

[11]张旭光,孙巍.复杂背景下运动目标的提取[J].光电工程,2006,33

(4):10-131.

[12]覃剑.视频序列中的运动目标检测与跟踪研究[D].重庆:重庆

大学通信与信息系统,2008.

[13]王爽,段红,黄友锐.基于改进的活动轮廓模型在图像分割中的

应用[J].微计算机信息,2008,25(1):274-275.

[14]张宏志,张金换,岳卉,等.基于CamShift的目标跟踪算法[J].计

算机工程与设计,2006,27(11):2012-2014.

[15]刘雪,常发亮,王华杰.基于改进Camshift算法的视频对象跟踪

方法[J].微计算机信息,2007,24(21):297-298.

[16]James M Ferryman.Ninth IEEE international workshop on per-

formance evaluation of tracking and surveillance(PETS2006) [OL].https://www.360docs.net/doc/5413364955.html,/PETS2006/data.html,2006.

(上接第2736页)

参考文献:

[1]Glenford J Myers,Tom Badgett,Todd M Thomas,et al.软件测试

的艺术[M].王峰,陈杰,译.2版.北京:机械工业出版社,2006: 23-49.

[2]邓璐娟,卢华琦,张科德.软件测试数据自动生成方法的研究

进展[J].郑州轻工业学院学报(自然科学版),2009,24(4): 64-67.

[3]Yu Y T,Ng S P.On the testing method used by beginning software

testers[J].Information and Software Technology,2004,4(4): 329-335.

[4]Cain A,Chen T Y,Grant D,et al.An automated test data genera-

tion system based on the integrated classification-tree methodo-logy[C].Software Engineering Research and Applications,Lec-ture Notes in Computer Science3026.Berlin:Springer,2004: 225-238.

[5]Conrad M,Krup A.An extension of the classification-tree

method for embedded systems for the description of events[J].

Electronic Notes Theory Computer Science,2006,164(4):3-11.

[6]Krupp A,Mueller W.Classification trees for random tests and

functional coverage[C].Proc of the Conference on Design,Auto-

mation and Test in Europe,2006:1031-1032.

[7]Alekseev S,Tiede R,Tollkuhn P.Systematic approach for using

the classification tree method for testing complex software sys-tems[C].Proceeding of the IASTED Conference on Software Engineering,2007:13-15.

[8]李乔,秦锋,郑啸.用分类树方法实现Web服务测试例的自动生

成[J].计算机技术与发展,2007,17(11):198-204.

[9]朱连章,马桂真.基于形式规格说明和分类树方法生成软件测

试用例[J].微计算机应用,2007,28(4):411-413.

[10]徐伟,王林章,李宣东.基于分类树的随机测试用例生成[J].计算

机科学,2009,36(1):263-266.

[11]檀革苗,袁捷,缪怀扣,等.基于形式概念分析与分类树法的Web

应用测试方法[J].计算机应用与软件,2010,27(3):6-8.

[12]Classification tree editor[EB/OL].http://www.systematic-tes-

https://www.360docs.net/doc/5413364955.html,,2007-10-18/2010-07-10.

[13]Jiawei Han,Micheline K.数据挖掘:概念与技术[M].范明,孟小

峰,译.2版.北京:机械工业出版社,2007:184-198.

[14]章晓芳,陈林,徐宝文,等.测试用例集约简问题研究及其进展

[J].计算机科学与探索,2008,2(3):235-247.

[15]王晓东.算法设计与分析[M].北京:清华大学出版社,2008:

107-137.

目标检测与识别

采用视频图像的运动目标检测与识别 相关调研 目标检测是计算机视觉的一个重要组成部分,在军事及工业等领域有着重要的应用前景。运动目标的检测方法主要有光流法,差值法。光流法的计算量很大,实时性和应用性较差。而图像差值法比较简单,实时性较好,是目前应用最广泛,最成功的运动目标检测的方法。图像差值法可分为两类,一类是用序列图像的每一帧与一个固定的静止的参考帧做图像差分,但自然场景不是静止不变的,因而必须不断的更新背景。另一类是用序列图像的两帧进行差分,这种方法无法检测出两帧图像中重合的部分,只能检测出目标的一部分信息。在绝大多数视频监控图像应用中,每一个像素都可以用一个或多个高斯模型近似,因此,高斯背景模型是绝大多数目标检测方法常用的基本模型。 智能视频服务器是飞瑞斯在多年视频分析技术优势的基础上,推出的一系列具有智能视频分析功能的DVS 视频编码设备。智能视频服务器基于DSP、ARM等核心平台,完成前端标准的H.264高压缩率编码,同时完成智能分析功能。 智能视频服务器的最大的创新点在于,这一系列DVS不仅仅提供视频监控的功能,能通过飞瑞斯核心的智能视频分析技术,来感知视频场景内的环境、人和物,并挖掘其中的人(物)行为、状态、身份信息、数量、轨迹等更深层次的元数据信息。 智能视频服务器赋予了视频监控系统智慧的大脑,从此视频监控不仅仅是能看得到,而且还能自己思考,提供更为智能的应用。

https://www.360docs.net/doc/5413364955.html,/products_20_26.html?bdclkid=BztEJhpzcR34JE_Ft948PGoNuxuK0gsc zre7HPa3EhvUMBqk3J

基于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]。这种方法更新速度快,算法简单易实现,适应性强,不需要获取背景图像。但是背景与运动目标间需要有一定程度的灰度差,否则可能在目标内部产生空洞,不能完整的提取出运动目标。为了改进相邻两帧间的差分效果,人们提出了累积差分法。累积差分法是利用三帧图像计算两个差分图像,再令其对应像素相乘的算法。它通过分析整个图像序列的变化来检测小位移或缓慢运动的物体。光流法是在时间上连续的两幅图想中,用向量来表示移动前后的对应点,在适当平滑性约束的条件下,根据图像序列的时空梯度估计运动场,通过分析运动场的变化对运动目标和场景进行检测和分割。 上面的几种算法都是基于静态背景下的方法,下面主要介绍动态背景下运动目标的检测。 因为生活中我们在很多情况下背景图像都不是静态的,有时摄像机都是安装在一个运动

运动目标图像的识别与跟踪

运动目标图像的识别与跟踪 本文主要目的是将视频摄像头中的运动目标从背景中提取出来,并加以跟踪。首先考虑的是常见的目标检测的算法,其次考虑对于噪声的滤除,最后是对运动目标的跟踪。 一、基本目标检测算法 我们主要考虑的目标检测的算法主要有三种,光流场法、背景模型法以及时域差分法。 1.1光流场法 光流主要是图像亮度模式的表现运动。而光流场则是指灰度模式的表面运动。一般条件下,我们可以根据图像的运动,进行估算相对运动。 光流场法的基本理论是光流场基本方程: 0=++t y x I vI uI (1.1) 式中我们根据亮度守恒,利用泰勒公式展开,忽略高阶项与二次项。其中x I 、y I 和t I 是图像在对数轴x 、y 两个方向和t 的的导数,()v u ,就是这个点的光流坐标。 光流场法的目标检测,在摄像机运动时候也可以做出判断,但是图像的噪声太过明显,使得计算数据庞杂,计算的公式更加复杂,这样并不适合我们的对于目标跟踪的高精度的摄像系统。 1.2背景模型法 背景模型法,也被称为背景差法,主要利用当前的图像和背景的图像的二值化做差,然后取阈值,分割运动目标。 首先根据: ()()()y x b y x f y x D t t t ,,,-= (1.2) 我们可以得到当前的图像帧数()y x f t ,和背景图像的帧数),(y x b t 做差,然后以公式对图像进行二值化的处理。 ???≤>=)(,0)(,1),(BackGround T D ForeGround T D y x P t t t (1.3) 上面),(y x P t 是二值化模板图。假设某一区域大于一个给定的面积的时候,该区域就是我们要找的目标区域。 背景模型法的算法简单,可以快速反应,并且可以提供运动目标的大略特征等数据。但是对于复杂背景下,比如人流较大的公共场所,或者有光照等干扰时,就需以其他的算法以不断更新背景信息来进行弥补。

基于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)

运动目标检测原理

运动检测(移动侦测)原理 一、引言 随着技术的飞速发展,人们对闭路电视监控系统的要求越来越高,智能化在监控领域也得到越来越多的应用。在某些监控的场所对安全性要求比较高,需要对运动的物体进行及时的检测和跟踪,因此我们需要一些精确的图像检测技术来提供自动报警和目标检测。运动检测作为在安防智能化应用最早的领域,它的技术发展和应用前景都受到关注。 运动检测是指在指定区域能识别图像的变化,检测运动物体的存在并避免由光线变化带来的干扰。但是如何从实时的序列图像中将变化区域从背景图像中提取出来,还要考虑运动区域的有效分割对于目标分类、跟踪等后期处理是非常重要的,因为以后的处理过程仅仅考虑图像中对应于运动区域的像素。然而,由于背景图像的动态变化,如天气、光照、影子及混乱干扰等的影响,使得运动检测成为一项相当困难的工作。 二、运动检测(移动侦测)原理 早期的运动检测如MPEG1是对编码后产生的I帧进行比较分析,通过视频帧的比较来检测图像变化是一种可行的途径。原理如下:MPEG1视频流由三类编码帧组成,它们分别是:关键帧(I 帧),预测帧(P帧)和内插双向帧(B帧)。I帧按JPEG标准编码,独立于其他编码帧,它是MPEG1视频流中唯一可存取的帧,每12帧出现一次。截取连续的I帧,经过解码运算,以帧为单位连续存放在内存的缓冲区中,再利用函数在缓冲区中将连续的两帧转化为位图形式,存放在另外的内存空间以作比较之用,至

于比较的方法有多种。此方法是对编码后的数据进行处理,而目前的MPEG1/MPEG4编码都是有损压缩,对比原有的图像肯定存在误报和不准确的现象。 目前几种常用的方法: 1.背景减除(Background Subtraction ) 背景减除方法是目前运动检测中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动区域的一种技术。它一般能够提供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干扰等特别敏感。最简单的背景模型是时间平均图像,大部分的研究人员目前都致力于开发不同的背景模型,以期减少动态场景变化对于运动分割的影响。 2.时间差分(Temporal Difference ) 时间差分(又称相邻帧差)方法是在连续的图像序列中两个或三个相邻帧间采用基于像素的时间差分并且阈值化来提取出图像中的运动区域。时间差分运动检测方法对于动态环境具有较强的自适应性,但一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象。 3.光流(Optical Flow) 基于光流方法的运动检测采用了运动目标随时间变化的光流特性,如Meyer[2] 等通过计算位移向量光流场来初始化基于轮廓的跟踪算法,从而有效地提取和跟踪运动目标。该方法的优点是在摄像机运动存在的前提下也能检测出独立的运动目标。然而,

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

基于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 次的结果,由另外一种简单的算法给估计出来,这种思 想实现的基础是大小相近的图像的特征可以被足够精确的估计出来;同年,德国

运动目标检测研究意义及国内外现状

运动目标检测研究意义及国内外现状运动目标检测研究意义及国内外现状 1研究意义...................................................................... (1) 2国内外研究现 状 ..................................................................... . (1) 1研究意义 众所周知,当前是信息时代,信息的获得、加工、处理以及应用都有了飞跃发展。人们认识世界的重要知识来源就是图像信息,在很多场合,图像所传送的信息比其他形式的信息更丰富、真切和具体。人眼与大脑的协作使得人们可以获取、处理以及理解视觉信息,人类利用视觉感知外界环境信息的效率很高。事实上,据一些国外学者所做的统计,人类所获得外界信息有80%左右是来自眼睛摄取的图像。由此可见,视觉作为人类获取外界信息的主要载体,计算机要实现智能化,就必须能够处理图像信息。尤其是近年来,以图形、图像、视频等大容量为特征的图像数据处理广泛应用于医学、交通、工业自动化等领域。 自然界的一切图像都是连续变化的模拟图像,在日常生活中,这些图像中的运动目标往往是我们比较关心的,如:行人、行驶的交通工具以及其他的运动物体。运动目标检测是计算机视觉和数字图像处理的一个热门方向,广泛应用于机器人导航、智能视频监控、工业检测、航空航天等诸多领域。因此,运动目标检测也就成为了近年来理论和应用的研究热点,它是图像处理和计算机视觉学科的重要分支,也是智能监控系统的核心部分。它的目的就是如何快速、准确地检测出监控视频中的运动目标,即从序列图像中将运动目标提取出来。

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

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

(完整word版)基于matlab的运动目标检测

1 绪论 1.1 课题研究背景及意义 运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。它可以减轻人的负担,并且提高了可靠性。概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。 1.2 国内外研究现状 运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后,与国外还有较大差距。传统的视频目标提取大致可以分两类,一类以空间同性为准则,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。如光流算法、主动轮廓模型算法。此类方法结果较为准确但是运算量相对较大。另一类算法主要以时间变化检测作为准则,这类算法主要通过帧差检测图像上的变化区域和不变区域,将运动物体与静止背景进行分割。此类方法运算量小,提取结果不如前类方法准确。此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。本文将围绕以时间变化监测为基础的方法展开分析和讨论。 1.3 本文结构 第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。

静止背景运动目标识别

Moving Object Detection in Stationary Scene 摘要:随着计算机技术的不断提高,智能视频监控技术得到了很好的发展, 过去依靠人力监控视频中出现的人或汽车等既浪费人力物力,又不够准确,很容易发生遗漏,而智能监控就不存在这种问题,只需在程序中设定报警条件即可,能够准确地达到实时监控的目的。现在智能视频监控逐渐应用于城市道路、小区、银行等重要场所及对场景中的异常事件或人的异常行为的监控中, 应用前景广泛,正在逐步取代靠人力来观察视频信息。智能视频监控相比过去常用的靠人来监测的最重要的不同就是识别出需要监控的对象,通常是运动目标的提取。在本文中利用matlab视频处理功能,通过matlab程序来获取视频,使用背景减差法来检测出运动目标提取静止背景中的运动目标,并将结果显示出来,以进行进一步的分析处理。 关键字:视频监控;目标提取;静止背景;matlab;目标识别;背景减差法

基于视频的运动目标主要提取方法 目标检测是计算机视觉的一个重要组成部分,在军事及工业等领域有着重要的应用前景。运动目标的检测方法主要有光流法,差值法。光流法的计算量很大,实时性和应用性较差。而图像差值法比较简单,实时性较好,是目前应用最广泛,最成功的运动目标检测的方法。图像差值法可分为两类,一类是用序列图像的每一帧与一个固定的静止的参考帧做图像差分,但自然场景不是静止不变的,因而必须不断的更新背景。另一类是用序列图像的两帧进行差分,这种方法无法检测出两帧图像中重合的部分,只能检测出目标的一部分信息。在绝大多数视频监控图像应用中,每一个像素都可以用一个或多个高斯模型近似,因此,高斯背景模型是绝大多数目标检测方法常用的基本模型。许多学者对基于高斯混合背景模型的背景消除法作了改进并取得了较好的效果。Stauffer 等人提出了采用自适应混合高斯模型,作为背景统计模型的算法;Power 等人详细的讨论了混合高斯模型,并对模型中的参数选择及更新提出了很好的建议。Monnet 等人在文献[3]中对摆动的树叶,水纹的波动等动态纹理干扰作了深入研究,提出了在线的自动聚类模型来获得并预测场景中的这些变化以减少干扰。然而,由于光照条件的影响,大多数图像都存在阴影,阴影的存在干扰了目标的检测,使检测到的目标与真实的目标形状相差很大,这对后续处理如目标识别、行为判断等会产生很大的影响。混合高斯模型无法消除阴影的干扰,因此找到阴影消除的方法变得非常重要。近年来,提出了很多阴影消除方法,毛晓波提出了基于最大色度差分的阴影检测方法,A. Leone提出了基于纹理分析的阴影消除方法,通过分析纹理信息获取前景目标并消除阴影,取得了较好的效果。 运动目标检测常用的方法一般分为两大类,一种是基于特征的方法,另一种是基于灰度的方法。基于特征的方法是依据图像的特征来检测运动目标,它多用于目标较大、特征容易提取的场合。基于灰度的方法一般是依据图像中灰度的变化来检测运动目标。目前基于视频的检测方法主要有: 基于帧间差分的方法、基于光流场的方法、基于背景差的方法等。帧间差分法是基于运动图像序列中相邻两帧图像间具有强相关性而提出的检测方法, 具有很强的自适应性。但如果物体内部灰度分布均匀这种方法会造成目标重叠部分形成较大空洞,严重时造成目标分割不连通,从而检测不到目标。 光流场法是基于对光流的估算进行检测分割的方法。光流中既包括被观察物体的运动信息, 也包括有关的结构信息。光流场的不连续性可以用来将图像分割

行人检测参考

行人检测参考 1.制作样本 2.对每一张图片调用 https://www.360docs.net/doc/5413364955.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/5413364955.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

相关文档
最新文档