DPM目标检测算法(毕业论文节选)

各位看客,如发现错误(应该还有蛮多……),望不吝指教。训练部分没有写

以前写的部分内容:

DPM(Deformable
Parts Model)--原理(一)

DPM(Defomable Parts Model) 源码分析-检测(二)

DPM(Defomable Parts Model) 源码分析-训练(三)

推荐阅读:

DPM: http://blog.csdn.net/masibuaa/article/category/2267527

HOG: HOG(毕业论文节选)

  1. DPM目标检测算法

    DPM算法由Felzenszwalb于2008年提出,是一种基于部件的检测方法,对目标的形变具有很强的鲁棒性[13]。目前DPM已成为众多分类、分割、姿态估计等算法的核心部分,Felzenszwalb本人也因此被VOC授予"终身成就奖"。

    DPM算法采用了改进后的HOG特征,SVM分类器和滑动窗口(Sliding Windows)检测思想,针对目标的多视角问题,采用了多组件(Component)的策略,针对目标本身的形变问题,采用了基于图结构(Pictorial Structure)的部件模型策略。此外,将样本的所属的模型类别,部件模型的位置等作为潜变量(Latent Variable),采用多示例学习(Multiple-instance Learning)来自动确定。

    本文简要介绍DPM的特征提取,检测模型和检测流程。

  2. DPM的特征

    DPM采用了HOG特征,并对HOG特征进行了一些改进。

    图 4.4 DPM改进后的HOG特征

    如图 4.4,DPM改进后的HOG特征取消了原HOG中的块(Block),只保留了单元(Cell),但归一化时,是直接将当前单元与其周围的4个单元(Cell)所组成的一个区域归一化,所以效果和原HOG特征非常类似。计算梯度方向时可以计算有符号(0-360°)或无符号(0-180°)的梯度方向,有些目标适合使用有符号的梯度方向,而有些目标适合使用无符号的梯度,作为一种通用的目标检测方法,DPM与原HOG不同,采用了有符号梯度和无符号梯度相结合的策略。如此,如果直接将特征向量化,那么单单一个 的单元,其特征维数就高达,维数过高。Felzenszwalb提取了大量单元的无符号梯度,每个单元共 维特征,并进行了主成分分析(Principal
    Component Analysis,PCA),发现使用前11个特征向量基本上可以包含所有的信息,不过为了快速计算,作者由主成分可视化的结果得到了一种近似的PCA降维效果。具体来说,将36维向量看成的矩阵,对每一行,每一列求和得到13维特征,基本上能达到HOG特征36维的检测效果。为了提高那些适合使用有符号梯度目标的检测精度,作者再对18个有符号梯度方向求和得到18维向量,并入其中,最后得到图
    4.4中的维特征向量。

  3. DPM的检测模型

      

    (a)       (b)
          (c)

    图 4.5 DPM行人模型

    DPM V3版本的目标检测模型由两个组件构成,每一个组件由一个根模型和若干部件模型组成。图 4.5(a)和图 4.5(b)是其中一个组件的根模型和部件模型的可视化的效果,每个单元内都是SVM分类模型系数对梯度方向加权叠加,梯度方向越亮的方向可以解释为行人具有此方向梯度的可能性越大。如图 4.5(a),根模型比较粗糙,大致呈现了一个直立的正面/背面行人。如图 4.5(b)所示,部件模型为矩形框内的部分,共有6个部件,分辨率是根模型的两倍,这样能获得更好的效果。从中,我们可以明显地看到头、手臂等部位。为了降低模型的复杂度,根模型和部件模型都是轴对称的。图
    4.5(c)为部件模型的偏离损失,越亮的区域表示偏离损失代价越大,部件模型的理想位置的偏离损失为0。

  4. DPM的检测流程

    DPM采用了传统的滑动窗口检测方式,通过构建尺度金字塔在各个尺度搜索。图 4.6 为某一尺度下的行人检测流程,即行人模型的匹配过程[13]。某一位置与根模型/部件模型的响应得分,为该模型与以该位置为锚点(即左上角坐标)的子窗口区域内的特征的内积。也可以将模型看作一个滤波算子,响应得分为特征与待匹配模型的相似程度,越相似则得分越高。左侧为根模型的检测流程,滤波后的图中,越亮的区域代表响应得分越高。右侧为各部件模型的检测过程。首先,将特征图像与模型进行匹配得到滤波后的图像。然后,进行响应变换:以锚点为参考位置,综合部件模型与特征的匹配程度和部件模型相对理想位置的偏离损失,得到的最优的部件模型位置和响应得分。

    图 4.6 DPM算法的检测流程

    式是在尺度为的层,以为锚点的检测分数。为根模型的检测分数。由于同一个目标有多个组件,而不同组件模型的检测分数需要对齐,所以需要设定偏移系数为第个部件模型的响应,由于部件模型的分辨率是根模型的一倍,因此部件模型需要在尺度层匹配。因此,锚点的坐标也需要重新映射到尺度层,即放大一倍,,部件模型相对锚点的偏移为,所以在尺度层,部件模型的理想位置为

    响应变换如式,其中,为部件模型在尺度层的理想位置,为相对的偏移量,为部件模型在处的匹配得分。为偏移所损失的得分,为偏移损失系数,是模型训练时需要学习的参数,模型初始化时,即偏移损失为偏移量相对理想位置的欧氏距离。

时间: 2024-10-12 19:10:25

DPM目标检测算法(毕业论文节选)的相关文章

无人超市目标检测算法的选型

经过测试得出以下结论:1.传统的目标检测算法主要有以下几种:(1) 基于Boosting框架:Haar/LBP/积分HOG/ACF feature+Adaboost (2) 基于SVM:HOG+SVM or DPM等 (3) 模版匹配(特殊情况下可以用到)人工特征和LBP,HAAR特征级联分类器容易出现找不到目标的情况,但是优点是响应速度快,硬件投入低,训练模型快速因为有时候找不到目标所以舍弃.2.现在采用深度学习的方法,主要尝试了以下几种方法(1)cnn fast-cnn faster-cnn

第二十八节、基于深度学习的目标检测算法的综述

在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑动窗口,bounding box.以及IOU,非极大值抑制等概念. 这里将会综述一下当前目标检测的研究成果,并对几个经典的目标检测算法进行概述,本文内容来自基于深度学习的目标检测,在后面几节里,会具体讲解每一种方法. 在深度度学习的目标检测算法兴起之前,传统的目标检测算法是怎样的呢? 传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤: 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域: 提取候选区域相关的视觉特

4. 基于深度学习的目标检测算法的综述(转)

4. 基于深度学习的目标检测算法的综述(转) 原文链接:https://www.cnblogs.com/zyly/p/9250195.html 目录 一 相关研究 1.选择性搜索(Selective Search) 2.OverFeat 二.基于区域提名的方法 1.R-CNN 2.SPP-Net 3.Fast R-CNN 4.Faster R-CNN 5.R-FCN 三 端对端的方法 1.YOLO 2.SSD 四 总结 在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑

深度学习 目标检测算法 SSD 论文简介

深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf 二.代码训练测试: https://github.com/weiliu89/caffe/tree/ssd  一.论文算法大致流程: 1.类似"anchor"机制: 如上所示:在 featur

[转载]基于模糊Choquet积分的目标检测算法

前言: 原文地址为:http://www.cnblogs.com/pangblog/p/3303956.html 正文: 本文根据论文:Fuzzy Integral for Moving Object Detection-FUZZ-IEEE_2008的内容及自己的理解而成,如果想了解更多细节,请参考原文.在背景建模中,我们对于像素的分类总是采用非此即彼的方式来分,即该像素要么是背景要么是前景.然而,由于噪声.光照变化以及阴影等特殊情况导致像素会存在错误,即像素存在一定的不确定性.为了处理这种不确

目标检测之hough forest---霍夫森林(Hough Forest)目标检测算法

 Hough Forest目标检测一种比较时兴的目标检测算法,Juergen Gall在2009的CVPR上提出. Hough Forest听上去像hough变换+Random Forest的结合体,其实,不完全是这样的.它更像是decision forest和regression forest的结合体再加上generalized hough transform:森林中每棵树即不是分类树也不是回归树,而是其中的每个节点可能为分类节点或者回归节点.分类节点最小化class-label uncert

目标检测算法SSD在window环境下GPU配置训练自己的数据集

由于最近想试一下牛掰的目标检测算法SSD.于是乎,自己做了几千张数据(实际只有几百张,利用数据扩充算法比如镜像,噪声,切割,旋转等扩充到了几千张,其实还是很不够).于是在网上找了相关的介绍,自己处理数据转化为VOC数据集的格式,在转化为XML格式等等.具体方法可以参见以下几个博客.具体是window还是Linux请自行对号入座. Linux:http://blog.sina.com.cn/s/blog_4a1853330102x7yd.html window:http://blog.csdn.n

第二十八节,目标检测算法之R-CNN算法详解

Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014. R-CNN的全称是Region-CNN,它可以说是第一个成功将深度学习应用到目标检测上的算法.后面要讲到的

6. 目标检测算法之Fast R-CNN算法详解(转)

6. 目标检测算法之Fast R-CNN算法详解(转) 原文链接:https://www.cnblogs.com/zyly/p/9246418.html 目录 一 Fast R-CNN思想 问题一:测试时速度慢 问题二:训练时速度慢 问题三:训练所需空间大 二 算法简述 三 算法详解 1.ROI池化层 2.训练 3.训练样本 4.损失函数 [8]目标检测(4)-Fast R-CNN Girshick, Ross. "Fast r-cnn." Proceedings of the IEE