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

  • 格式:pdf
  • 大小:1.40 MB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

过程中对动态场景中的感兴趣目标进行检测、分类、跟踪、识别和分析,实现犯罪预防、交通管理、意外防范和医疗监护等功能,成为当前智能视频监控技术重要研究和关注点[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月

软件开发

复杂背景区分出来,并且HOG特征在几何和光学变化环境都能保持很好的不变性。HOG算法具体实现过程:(1)获取视频监控的帧图像进行标准化处理,使用所有图片具有相同的标准、颜色和灰度,有助于实现对行人有效特征提取,因为图像的颜色信息对目标检测影响较小,为减少特征提取的复杂度可先对检测图像进行灰度化处理;(2)使用伽马(Gamma)变换对图像进行归一化处理,调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时还可以抑制噪音干扰;(3)计算图像横坐标和纵坐标方向的梯度,图像局部特征不连续(如颜色、纹理等特征的突变)的边缘位置灰度值的梯度较大,据此计算每个像素的梯度方向值可用来捕获轮廓、人影和纹理信息并进一步弱化光照的影响;(4)将图像划分成一个cell单元,将cell单元内的每一个点的梯度角度将其离散化为9个bin来计算梯度方向,再对cell内每个像素用梯度方向在直方图中进行加权投影便能够计算出cell的梯度直方图,由于局部光照和前景背景对比的影响使得视频图像的梯度绝对值变化范围很大,需要对图像梯度进行归一化处理,即可形成每个cell 的描述子;(5)将每几个cell(例如3×3个cell)组成一个block,一个block内所有cell的特征描述子串联起来便得到该block的HOG特征描述子;(6)采用滑动窗口获取图像内的所有block的HOG特征描述子,串联起来就可以得到检测目标的HOG特征描述子[4-5]。

HOG特征提取后需要通过合适的机器学习算法从大量的训练样本数据中获得相应的分类器,只有配上合适的训练器才能够达到真正的机器学习统计分类的目标。行人检测算法处理过程为将待检测的目标图像中获得的HOG特征作为分类器的输入,分类器给出行人判断的一个概率值,通过设定概率阈值来判断检测目标是否为行人。目前比较常用的分类算法有基于神经网络(Neural Network, NN)的方法、基于Adaboost的方法以及基于支持向量机(SVM)的方法等。SVM方法能够通过非线性映射将原来的样本空间映射到高维以至于无穷维的特征空间,若在原始空间是非线性不可分的,通过SVM非线性映射可以使之变成高维空间线性可分,同时SVM方法利用对于核函数的展开定理能够很容易解决提高维度情况下带来的计算复杂度高的难题,计算复杂度不会增加,某种程序上也可以避免“维数灾难”。一般提取窗口的HOG特征都有比较高的维数,常用的检测窗口大小是64×128,从中提取的HOG特征维数高达3780维,而SVM在处理高维图像数据时有很大优势,因此图像识别中的行人检测广泛应用HOG特征结合SVM分类器。3 Visual Studio 2017和OpenCV实现行人检测

行人检测算法程序实现较为复杂,借助于功能强大的开源平台进行系统的快速实现是应用软件开发的一种常用手段,本论文中系统实现采用开源计算机视觉库OpenCV,适合监控视频系统的二次开发。OpenCV(Open Source Computer Vision Library)是一个采用C/C++为主要编程语言的跨平台计算机视觉库,主要应用于人机交互、图像区分、人脸识别、动作识别、运动跟踪等领域。在OpenCV 库中已包含一个预先训练好的HOG+线性SVM的检测算法,HOG提取的具体方法为训练过程中正样本统一为64×128,同时也为检测窗口的大小,在8×8的cell单元中统计每一个像素点的HOG特征,并通过投影形成9维特征向量,在cell单元所属的16×16的block单元中进行组合,每个block形成36维特征,由于每个图像包含有105个block所以最后每一幅样本图形成3780维的HOG特征。其行人检测过程采用的是滑动窗口法,其过程为获取视频图像并对图片按照算法进行尺寸缩放,使用128×64的检测滑动窗口在每一层的图像上滑动,每个滑动窗口内计算并提取出HOG特征,再将HOG特征输入已训练好的SVM分类器中,即可检测该图层是否存在行人目标,如果该层检测到目标则存储下目标区域,如无则继续滑动,最后在图像上标识出检测到的行人目标区域[6-7]。

软件开发平台使用Visual Studio 2017社区版和OpenCV3.4.1版本。OpenCV的核心模块中CV模块包含基本的图像处理函数和高级视觉算法。检测程序主要使用视频采集类VideoCapture、HOG特征结构体HOGDescriptor、SVM模型设置函数setSVMDetector()以及行人检测函数detectMultiScale()。首先使用HOGDescriptor定义HOG特征描述子并默认参数初始化该结构体,即检测窗口winSize(64,128)、块大小blockSize(16,16)、块步长blockStride(8,8)、细胞单元大小cellSize(8,8)、bin数nbins(9)。然后利用setSVMDetector(HOGDescriptor::ge tDefaultPeopleDetector())为SVM分类器设置默认的训练模型,最后利用detectMultiScale(img, found_locations)函数采用多尺度的窗口进行检测,该函数作用为将大于64×128的图像进行分层使得每层都满足检测窗口大小,通过循环调用detect()函数实现大尺寸图像的行人检测。检测结果通过参数found_locations返回,该参数为vector 类型的矩形结构,即可在图像中标识出行人位置,同时可以检测结果导入监控预警系统做进一步处理,本系统中将检测

(下转第9页)

www�ele169�com | 59