CV精选知识点:DPM(Deformable Parts Model)算法流程详解

article/2025/9/17 22:01:25

解析1:

将原图与已经准备好的每个类别的“模板”做卷积操作,生成一中类似热力图(hot map)的图像,将不同尺度上的图合成一张,图中较量点就是与最相关“模板”相似的点。

拓展:

  • SGD(stochastic gradient descent)到training里
  • NMS(non-maximum suppression)对后期testing的处理非常重要
  • Data mining hard examples这些概念至今仍在使用


解析2:

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

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

  1. 通过Hog特征模板来刻画每一部分,然后进行匹配。并且采用了金字塔,即在不同的分辨率上提取Hog特征。
  2. 利用提出的Deformable PartModel,在进行object detection时,detect
    window的得分等于part的匹配得分减去模型变化的花费。
  3. 在训练模型时,需要训练得到每一个part的Hog模板,以及衡量part位置分布cost的参数。文章中提出了LatentSVM方法,将deformablepart model的学习问题转换为一个分类问题:利用SVM学习,将part的位置分布作为latentvalues,模型的参数转化为SVM的分割超平面。具体实现中,作者采用了迭代计算的方法,不断地更新模型。

rootfilters根滤波器数组,其每个元素表示一个组件模型的根滤波器的信息,每个元素包括3个字段:

  • size:根滤波器的尺寸,以cell为单位,w*h
  • w:根滤波器的参数向量,维数为(w*h)*31
  • blocklabel:此根滤波器所在的数据块标识

滤波器(模版)就是一个权重向量,一个w * h大小的滤波器F是一个含w * h * 9 * 4个权重的向量(9*4是一个HOG细胞单元的特征向量的维数)。所谓滤波器的得分就是此权重向量与HOG金字塔中w * h大小子窗口的HOG特征向量的点积(DotProduct)。

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

Hog特征提取的过程:

  1. 对原图像gamma校正,img=sqrt(img);
  2. 求图像竖直边缘,水平边缘,边缘强度,边缘斜率。
  3. 将图像每1616(取其他也可以)个像素分到一个cell中。对于256256的lena来说,就分成了16*16个cell了。
  4. 对于每个cell求其梯度方向直方图。通常取9(取其他也可以)个方向(特征),也就是每360/9=40度分到一个方向,方向大小按像素边缘强度加权。最后归一化直方图。
  5. 每22(取其他也可以)个cell合成一个block,所以这里就有(16-1)(16-1)=225个block。
  6. 所以每个block中都有229=36个特征,一共有225个block,所以总的特征有225*36个。

当然一般HOG特征都不是对整幅图像取的,而是对图像中的一个滑动窗口取的。
在这里插入图片描述
DPM改进后的HOG特征取消了原HOG中的块(Block),只保留了单元(Cell),如上图所示,假设一个8*8的Cell,将该细胞单元与其对角线临域的4个细胞单元做归一化操作,所以效果和原HOG特征非常类似。计算梯度方向时可以计算有符号(0-360°)或无符号(0-180°)的梯度方向,有些目标适合使用有符号的梯度方向,而有些目标适合使用无符号的梯度,作为一种通用的目标检测方法,DPM与原HOG不同,采用了有符号梯度和无符号梯度相结合的策略。

提取有符号的HOG梯度,0-360度将产生18个梯度向量,提取无符号的HOG梯度,0-180度将产生9个梯度向量。如果直接将特征向量化,一个8*8的细胞单元将会产生(18+9)*4=108,维度有点高 。

Felzenszwalb提取了大量单元的无符号梯度,每个单元共 维特征,并进行了主成分分析(Principal Component Analysis,PCA),发现使用前11个特征向量基本上可以包含所有的信息,不过为了快速计算,作者由主成分可视化的结果得到了一种近似的PCA降维效果。

具体来说:首先,只提取无符号的HOG梯度,将会产生49=36维特征,将其看成一个49的矩阵,分别将行和列分别相加,最终将生成4+9=13个特征向量,得到13维特征,基本上能达到HOG特征36维的检测效果。为了提高那些适合使用有符号梯度目标的检测精度,作者再对18个有符号梯度方向求和得到18维向量,也加进来,这样,一共产生13+18=31维梯度特征。实现了很好的目标检测。

DPM的检测模型
在这里插入图片描述
DPM V3版本的目标检测模型由两个组件构成,每一个组件由一个根模型和若干部件模型组成。上图(a)和(b)是其中一个组件的根模型和部件模型的可视化的效果(这个只是可视化的结果,不要认为是用这个当做模板与原图特征图做卷积!!,真正与原图特征图做卷积计算的是检测算子,即SVM分类模型系数w),每个单元内都是SVM分类模型系数w对梯度方向加权叠加,梯度方向越亮的方向可以解释为行人具有此方向梯度的可能性越大。

上图(a),根模型比较粗糙,大致呈现了一个直立的正面/背面行人。

上图(b)所示,部件模型为矩形框内的部分,共有6个部件,分辨率是根模型的两倍,这样能获得更好的效果。从中,我们可以明显地看到头、手臂等部位。为了降低模型的复杂度,根模型和部件模型都是轴对称的。

上图(c)为部件模型的偏离损失,越亮的区域表示偏离损失代价越大,部件模型的理想位置的偏离损失为0。

DPM检测流程:

DPM采用了传统的滑动窗口检测方式,通过构建尺度金字塔在各个 尺度搜索。下图为某一尺度下的行人检测流程,即行人模型的匹配过程。某一位置与根模型/部件模型的响应得分,为该模型与以该位置为锚点(即左上角坐标)的子窗口区域内的特征的内积。也可以将模型看作一个滤波算子,响应得分为特征与待匹配模型的相似程度,越相似则得分越高。

左侧为根模型的检测流程,跟模型响应的图中,越亮的区域代表响应得分越高。右侧为各部件模型的检测过程。首先,将特征图像与模型进行匹配得到部件模型响应图。然后,进行响应变换:以锚点为参考位置,综合考虑部件模型与特征的匹配程度和部件模型相对理想位置的偏离损失,得到的最优的部件模型位置和响应得分。
在这里插入图片描述
如上图所示,对于任意一张输入图像,提取其DPM特征图,然后将原始图像进行高斯金字塔上采样放大原图像,然后提取其DPM特征图(2倍分辨率)。将原始图像的DPM特征图和训练好的Root filter做卷积操作,从而得到Root filter的响应图。对于2倍图像的DPM特征图,和训练好的Part filter做卷积操作,从而得到Part filter的响应图。然后对其精细高斯金字塔的下采样操作。这样Root filter的响应图和Part filter的响应图就具有相同的分辨率了。然后将其进行加权平均,得到最终的响应图,亮度越大表示响应值越大。



七月在线干货组整理的四本AI电子书,《名企AI面试100题》《名企AI面经100篇》《2021最新大厂AI面试题》《机器学习十大算法系列》反响激烈,口碑良好,已助力数千人拿到了dream offer。

评论区回复 “AI资料”,以上四本电子PDF免费送!


http://chatgpt.dhexx.cn/article/dpw5iZKl.shtml

相关文章

目标检测(四)传统目标检测与识别的特征提取——基于部件的可变形模型(DPM)的目标检测原理

目录 简介 基于部件的可变形模型(DPM) DPM检测算法原理 DPM特征提取 检测步骤 简介 DPM(Deformable Part Model),正如其名称所述,可变形的组件模型,是一种基于组件的检测算法,这…

分布式电源管理 (DPM)一图搞懂

分布式电源管理 (DPM) 概述 DPM 是 DRS 的"扩展",有助于节省电力。建议在 CPU资源利用率降低或增加时关闭电源或在 HC 主机上供电。DPM 还涉及了 HA 设置或用户指定的限制。这意味着,例如,如果我们的 HA 容忍…

十七、DPM模型参数设置详解

上篇文章只是给出了DPM模型的一个案例,本篇文章就来详细介绍一下DPM模型参数设置的意义。 当打开Discrete Phase模型时,会弹出下图的窗口,我们来逐项分析选项的设置意义。 1.Interaction 表示双向耦合…

Matlab中abs函数的使用

目录 语法 说明 示例 标量的绝对值 向量的绝对值 复数的模 绝对值 复数的模 abs函数的功能是绝对值和复数的模 语法 Y abs(X) 说明 Y abs(X) 返回数组 X 中每个元素的绝对值。如果 X 是复数,则 abs(X) 返回复数的模。 示例 标量的绝对值 y abs(-5) …

ABS函数怎么用?

Excel的ABS函数主要作用是计算数字的绝对值 本文介绍Microsoft Excel中ABS函数的公式语法和使用实例。 ABS函数的功能 ABS函数用于返回数字的绝对值,正数和0返回数字本身,负数返回数字的相反数。 ABS函数语法 ABS(number) ABS函数参数说明 number(必…

c语言/abs()函数和fabs ()函数

c语言中存在两个函数表示一个数的绝对值abs()和fabs(); 要想引用这两个函数则需要引用头文件 #include<math.h> abs函数是对整数进行取绝对值 fabs函数是对浮点型进行取绝对值 cplusplus对abs和fabs()函数的理解如下&#xff1a; #include <math.h> int aabs(-1);…

某策略游戏(SLG)数据分析:新增、付费和活动效果评估

之前DC发起过一个关于游戏玩家付费预测的算法大赛&#xff0c;比赛所提供的玩家七日内游戏行为数据不仅可以用于算法比赛&#xff0c;也可以让我们利用数据进行一些分析&#xff0c;从而了解游戏的运营状况和数值状况。 本数据共包含有109个字段&#xff0c;一眼看上去有点蒙&a…

python数据分析可视化项目——游戏销售量

python数据分析可视化项目——video游戏销售量 数据来源可视化数据准备游戏出版年份和销量统计——折线图游戏类型、出版商、游玩平台销量统计——柱形图游戏类型比例——饼图 数据来源 本项目数据来源于kaggle数据集&#xff0c;地址https://www.kaggle.com/datasets/gregoru…

【每周一本书】之《游戏数据分析实战》:盛大游戏数据分析专家亲历16年的实战经验分享

【数据猿导读】《游戏数据分析实战》贯穿整个游戏生命周期&#xff0c;提供了丰富的数据分析案例&#xff0c;从预热到封测&#xff0c;再到公测&#xff0c; 均为作者在实际工作中经历的真实案例。案例分析包含数据来源、分析方法、分析过程、分析结论及小结。通过学习本书不但…

大数据开发:基于Hadoop的数据分析平台

互联网的发展&#xff0c;带来了各种数据的爆发式增长&#xff0c;所以接入互联网的相关操作行为&#xff0c;都化为虚拟的数据被记录了下来。大数据时代的带来&#xff0c;一个明显的变化就是全样本数据分析&#xff0c;面对TB/PB级及以上的数据规模&#xff0c;Hadoop始终占据…

移动游戏数据分析(入门篇)

作者&#xff1a;GRG专栏作家 刘异 网龙公司 产品分析经理&#xff0c;专注移动互联网数据分析 前言&#xff1a; 最近一段时间在做部门网游业务的分析沉淀和框架培训&#xff0c;刚好应网大的需求在公司内开设游戏产品数据分析师认证的课程&#xff0c;因此开始尝试把这几年…

从零开始的游戏运营数据分析生活?如何构建数据分析的逻辑框架?

5月30日,数数课堂特邀盛趣游戏数据分析专家黎湘艳老师坐镇第五期直播。 黎湘艳老师向学员们分享了历经超50多款产品沉淀下来的数据分析思维,让大家对数据分析的岗位理解从一个日常节点,展开成为可以预测产品、行业走向的方向标。 /以下为直播当天文字实录/ 我在《游戏数据…

数据分析岗之游戏业务类面试整理学习

⌚️200506 面试某游戏公司数据分析岗的准备 碎碎念 ⚠️部分文字是整理了其他前辈的文章&#xff08;具体见最后&#xff09;&#xff0c;仅用来学习&#xff0c;这样复习更有体系&#xff0c;也希望能帮助到其他同学&#xff0c;遵纪守法好青年&#xff5e; 如果哪篇漏了也…

宝可梦数据分析

pokemon_analysis 一、分析背景二、分析步骤三、其他分析特别说明 一、分析背景 宝可梦数据分析-平民最强宝可梦选择方案 二、分析步骤 下载数据集数据预处理数据分析及数据可视化结论 阿里云 导入库 #导入库 import pandas as pd import seaborn as sns import matplotli…

4000字干货 | 如何搭建游戏数据分析平台?

本文作者为数数科技某游戏客户的运营总监,在使用数数科技的产品之前,他们在内部尝试自建数据分析平台,“从入门到放弃”。上线数数科技的大数据分析平台后,该公司一款全球下载量5000W+的休闲游戏每天所有的数据都在平台上流转。 1 为什么需要数据分析 移动游戏已经进入…

电子游戏销售数据分析(基于Python+Tableau)

1 项目简介 1.1 数据描述 &#xff08;1&#xff09;数据来源 本次分析所采用的数据来源于kaggle上的Video Game Sales数据集 &#xff0c;该数据集通过爬虫从vgchartzwangz网站上获取&#xff0c;主要描述了全球市场上电子游戏的一个销售情况。电子游戏&#xff08;Video G…

游戏数据分析用到的模型(二)留存率预估

本文主要参考了黎湘艳、叶洋的经典著作《游戏数据分析实战》。这本书堪称游戏数据分析的开山之作&#xff0c;这里向两位作者表示感谢。 关于留存率的模型&#xff0c;参考4.4.2节。 我们要先计算出1日留存率&#xff0c;2日留存率&#xff0c;……&#xff0c;N日留存率。 作…

数据分析实战—Video Game Sales电子游戏销售分析

文章目录 一、项目背景及目的1.1项目背景1.2分析目的 二、数据收集与整理2.1数据来源2.2数据说明2.3理解数据 三、数据清洗3.1导入数据3.2列字段重命名3.3缺失值处理3.4数据类型转换3.5异常值处理3.6保存数据为csv格式 四、数据分析4.1 从总体角度4.2 从平台角度4.3从类型角度4…

Python | 英雄联盟游戏数据分析

一、项目背景 EDG夺得2021英雄联盟全球总决赛冠军&#xff0c;这场比赛让所有观赛者热血沸腾&#xff0c;也唤起了我这个沉睡多年老玩家对MOBA游戏的兴趣&#xff0c;兴冲冲地下载了英雄联盟&#xff0c;却发现这并不是一个可以轻松上手的游戏。 对于时下最流行的MOBA类游戏—…

【毕业设计】大数据 - 网络游戏数据分析可视化

文章目录 1. 数据集说明2. 数据处理3. 数据分析可视化3.1 新增用户3.2 用户活跃度3.3 用户消费情况3.4 用户游戏情况 4 最后 &#x1f9ff; 选题指导, 项目分享&#xff1a; https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5…