<--!(源码资源****有常(注意目前是有常哦)私我vx:xdsqczkyqs713**,**仅源码100r,带
一份40页字论文讲解120r报告仅供参考,可以就着写,节省时间,但宝儿你可千万别傻乎乎的直接
拿去上交鸭! **非诚勿扰/<->认真脸**)-->
可变形部件模型(Deformable Parts Model,DPM)是传统的目标检测算法中最为成功的模型之一,它可以看作是方向梯度直方图(Histograms of Oriented Gradients,HOG)模型的扩展。它将目标模型分解为多个子模型部件的组合,每个子模型采取HOG模型思路,计算方向梯度直方图特征,用于刻画目标的每一个部分。对每一个部件HGO特征进行潜在支持向量机(Latent Support Vector Machines)模型训练,得到组合模型的模板,通过目标与模板的匹配,实现目标的检测与位置标定。 本文旨在构建一种基于可变部件模型的视频车辆行人检测系统,模拟真实交通情景中的视频监控,采集,处理,检测与识别。将DPM算法应用到交通场景中最为常见的小型汽车与行人的检测,实现对监控视频图像中的行人与汽车的目标检测与位置标定,并进一步采用基于颜色定位的车牌位置标定的思路,标定车牌位置,分割车牌字符,匹配并识别出车牌号码。
系统一览
论文截图:
下边的系统运行效果展示截取自论文第四章:
第4章 系统效果展示 运行project.m,加载系统主界面,如图4-1所示,模拟监控视频来源,一是打开监控画面实时获取,二是加载本地保存录制的视频。
图4-1 系统主界面 4.1 监控功能模拟 点击“打开监控画面”,进入模拟监控系统,如图4-2所示,点击“拍照”,可拍摄摄像头实时显示画面,点击“录制”,开始录制视频。
图4-2 监控功能界面 4.2 目标检测与识别 主界面选择“载入本地视频”,选择视频文件,将视频初试画面显示到图窗中,调节“选帧”所示的滑动按钮,可快进或快退视频。
图4-3 目标检测与识别界面
4.2.1 行人检测 选中某一帧画面后,点击“行人检测”,开始对该帧图片进行行人检测,效果如下图所示。
4.2.2 车辆检测 点击“车辆检测”,开始对该帧图片进行车辆检测,效果如下图所示。
图4-5 车辆检测目标框定
4.2.3 车牌识别 车牌识别对图像中的车辆是否可见车牌(例如侧面视角看不到车辆车牌),以及车牌显示的清晰度有一定要求,为便于阐述,下边以另为一条录像中的一帧图片为例,展示车牌识别效果。 原图: 车辆检测效果:
程序成功捕捉到画面中的三辆车,此时点击“车牌识别”,程序将会把框选的车辆位置从原图中自动截取出来,并切换到车牌识别界面:
系统原理
HOG方向梯度直方图
方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。对于数字图像而言,相当于对二维离散函数求梯度,假定I(x ,y)为坐标(x, y)处的像素值,GX为x方向梯度值,GY为y方向梯度值,G为所求梯度值,有如下计算公式:
在HOG中,对一幅图像进行了如下划分:图像(image),检测窗口(win),图像块(block),细胞单元(cell)。将图像划分成小cells(固定数目的像素点构成一个cell),每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的特征描述器(descriptor),将每几个cell组成一个block,一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。将图像image内的所有block的HOG特征descriptor串联起来就可以得到该图像的HOG特征。HOG特征提取的流程图如下:
可变形部件模型(Deformable Parts Model,DPM)目标检测算法
DPM算法采用了改进后的HOG特征,SVM分类器和滑动窗口(Sliding Windows)检测思想,针对目标的多视角问题,采用了多组件(Component)的策略,针对目标本身的形变问题,采用了基于图结构(Pictorial Structure)的部件模型策略。此外,将样本的所属的模型类别,部件模型的位置等作为潜在变量(Latent Variable),采用多示例学习(Multiple-instance Learning)来自动确定。它的检测步骤如下: 1、通过HOG特征模板来刻画每一部分,然后进行匹配。并且采用了金字塔模型,即在不同的分辨率上提取HOG特征。 2、利用提出的DPM模型,在进行目标检测时,检测窗口(detect window)的得分等于子模型(part)的匹配得分减去模型变化的花费(cost)。 3、在训练模型时,需要训练得到每一个part的HOG模板,以及衡量part位置分布cost的参数。文章中提出了Latent SVM方法,将DPM的学习问题转换为一个分类问题:利用SVM学习,将子模型(part)的位置分布作为潜在变量(latent values),模型的参数转化为SVM的分割超平面。具体实现中,作者采用了迭代计算的方法,不断地更新模型。
每一个组件由一个根模型和若干部件模型组成。图 (a)和图 (b)是其中一个组件的根模型和部件模型的可视化的效果,每个单元内都是SVM分类模型系数w对梯度方向加权叠加,梯度方向越亮的方向可以解释为行人具有此方向梯度的可能性越大[12]。如图 4.5(a),根模型比较粗糙,大致呈现了一个直立的正面/背面行人。如图(b)所示,部件模型为矩形框内的部分,共有6个部件,分辨率是根模型的两倍,这样能获得更好的效果。从中,我们可以明显地看到头、手臂等部位。为了降低模型的复杂度,根模型和部件模型都是轴对称的。图(c)为部件模型的偏离损失,越亮的区域表示偏离损失代价越大,部件模型的理想位置的偏离损失为0,图中每一个白色的发散的‘×’代表每一个cell的梯度直方图,他本质是一个31维的特征向量。
DPM采用了传统的滑动窗口检测方式,通过构建尺度金字塔在各个尺度搜索[13]。图2-4为某一尺度下的行人检测流程,即行人模型的匹配过程。某一位置(x, y)与根模型或者部件模型的响应得分,为该模型与以该位置为锚点(即左上角坐标)的子窗口区域内的特征的内积。也可以将模型看作一个滤波算子,响应得分为特征与待匹配模型的相似程度,越相似则得分越高[14]。 图2-4左侧为根模型的检测流程,跟模型响应的图中,越亮的区域代表响应得分越高。右侧为各部件模型的检测过程。首先,将特征图像与模型进行匹配得到部件模型响应图。然后,进行响应变换:以锚点为参考位置,综合考虑部件模型与特征的匹配程度和部件模型相对理想位置的偏离损失,得到的最优的部件模型位置和响应得分。
监控环境模拟
在MATLAB平台的附加功能资源管理器中下载下图所示的视频接口硬件资源支持包,用于MATLAB访问和调用电脑的摄像头资源。
安装完毕后,命令行输入‘imaqhwinfo’,(image acquire hardware information),意思是查看图像获取硬件资源信息,结果如下图: 这里的‘winvideo’即为硬件适配器分配的摄像头资源的名称编号,也是我们接下来要调用的摄像头名称。 输入命令,vid = videoinput(‘winvideo’);创建摄像头对象,然后输入preview(vid)预览摄像头画面,确保摄像头正常可用。 完成摄像头调用后,要实现视频采集,还需要设置相应的视频格式,包括画面宽高比、分辨率大小、颜色格式(rgb真彩色、黑白、索引等)。从网上查阅常用的监控视频格式规制,结合MATLAB平台所支持处理的视频格式,选择采用YUY2_640x480规格的视频,其宽高比为640×480,画面图像颜色格式为真彩色,分辨率可根据摄像头硬件资源能力自适应。视频存储格式选择MATLAB平台支持处理的.avi和.mp4文件格式。
DPM检测流程
从网上下载经VOC数据训练好了的车辆检测与行人检测DPM模型。模型中包含目标模型的视角数(正,反,侧等),模型的部件拆解情况,根滤波器、子滤波器的结构与参数,位置标定矩形框初始化参数,匹配规则(匹配得分响应计算公式)等用于目标检测的结构体与参数。 有了检测模型后,对于一张待检测图片,以下图为例,先提取图片的HOG特征,可视化结果为下图的一个个小的白色的‘×’,代表了该处的cell的边缘方向。将HOG特征提取结果与行人模型的全身的HOG特征模板卷积,即通过模型的根滤波器,得到根滤波器响应,初步确定目标位置框。另一方面将HOG特征提取结果与行人模型的各个部件的HOG特征模板卷积,即通过模型的子滤波器,得到部件响应。这里需要注意的是,考虑到部件模型与全身模型的尺寸大小不同,在求部件响应前,先对原图进行高斯金字塔上采样,提高图像分辨率,相当于放大图片的局部的部件信息,将上采样后的图片,提取HOG特征再与部件模型匹配,即通过子滤波器得到部件响应,确定部件位置框。将部件响应结果进行高斯金字塔下采样,恢复部件响应分辨率大小与根响应大小一致,综合部件位置框与目标位置框的相对关系,最终预测出检测到目标位置,确定目标边界框。整个过程的流程图如下:
|