这个模型思想很直观(有误),但是写的源码太难懂了(看的是release-3的版本,最接近Object Detection with Discriminatively Trained Part Based Models论文的实现)其实相似的论文还有一篇8页的A Discriminatively Trained, Multiscale, Deformable Part Model,建议先看8页的。参考博客1的格式,结合源码写写我对论文的理解(不一定对)。


Introduction

1.We describe an object detection system that represents highly variable objects using mixtures of multiscale deformable part models.

这句话就总结了算法的几个特点,mixtures指的是在代码中作者根据bounding box的长宽比进行均分,每一区间的长宽比的bbox训练出来的模型就是一个component。论文中提到两个概念叫rootfilter和partfilter感觉就是两个检测窗口的权重,更加具体来说root就是一个人,part可能是他的手、身体、头、肩膀等部分。partfilter是在图像进行放大下提取的HOG特征每维的权重,而rootfilter是原始尺寸下提取的HOG特征每维的权重,文中这样做是说rootfilter是捕捉全局的信息,而partfilter捕捉局部的信息。deformable指的是,文中对partfilter的位置有要求,比如要在rootfilter周边不能太远,甚至有上下文的要求,如果违背这些要求会带来变形上的cost。而整个score是由rootfilter的特征得分+partfilter的特征得分-变形cost。

2.Consider the problem of modeling the appearance of bicycles in photographs. People build bicycles of different types(e.g, mountain bike......) and view them in various pose(frontal versus side views).

这句话是作者说为什么要提出mixture models的原因。

3.

混合模型的得分是components的最大值。


Related Work

1.

这里说论文用了动态规划和distance transform来搜索part的位置,我的思想就是先根据VOC的bbox训练一个rootfilter,然后先检测出root的位置,再在root的周边搜索最优的part,具体怎么做还需要看看代码。

2.

这篇论文使用了hinge-loss即max(0, 1-yf(x)),分析这个函数时会发现:

当yf(x) >= 1: 1-yf(x) < 0, loss = 0

发现在这个优化目的下,优化是会往这个方向走,就是loss等于0的方向:此时y=1正例会有f(x) >= 1,当y=-1负例会有f(x) <= -1

然而在看代码的时候发现优化的方法是随机梯度下降,和SVM的SMO优化方法并没什么关系。这里就不明白,SVM是有约束的问题,而这篇论文我并没有看到约束条件,而且使用的优化方法是无约束的优化方法随机梯度下降。所以感觉作者应该是用这种marginal的形式去mining hard negatives,作者认为在 yf(x) < 1的那些难分的样本,需要移除容易分的样本加入难分的样本继续迭代。


1.什么是filter?

其实filter就是HOG特征的每一维的权重,如果不明白w和h和HOG的特征提取请看博客 http://mccormickml.com/2013/05/09/hog-person-detector-tutorial/

2.什么是Deformable Part Models

anchor的具体实现还等再看看代码。

博客1:http://zhangliliang.com/2014/09/01/paper-note-dpm/

http://stackoverflow.com/questions/32155724/gcc-c-c-mex-matlab-r2015-mac-os-x-with-openmp-doesnt-work

DPM模型简单记录的更多相关文章

  1. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

  2. JSP简单记录

    JSP,全称是Java Server Page,是运行在服务器端的页面,是建立在Servlet规范的动态网页技术,JSP文件在第一次请求时,会被编译成Servlet,所以JSP也可以看成是运行中的Se ...

  3. 【FLUENT案例】02:DPM模型

    1 引子1.1 案例描述1.2 学习目标1.3 模拟内容2 启动FLUENT并导入网格3 材料设置4 Cell Zones Conditions5 Calculate6 定义Injecions7 定义 ...

  4. OSG模型简单控制

    OSG模型简单控制 转自:http://milkcu.sintune.net/blog/archives/1392673560.html 结点基本操作 添加结点 OSG中使用osg::Node和osg ...

  5. OpenCV安装配置的简单记录

    在ubuntu16.04下安装OpenCV 2.4.11的简单记录 1. 安装cmake,执行$apt-get install cmake即可,cmake -version验证 2. 下载OpenCV ...

  6. 图像切割之(五)活动轮廓模型之Snake模型简单介绍

    图像切割之(五)活动轮廓模型之Snake模型简单介绍 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了 ...

  7. asp.net 简单记录请求的客户端和服务端 处理时间

    最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在respons ...

  8. PHP 版本简单记录

    PHP 版本简单记录 PHP 博物馆         http://museum.php.net/php5/ PHP 版本发布       https://secure.php.net/release ...

  9. 简单记录一次注入到shell

    0x00 前言 帮朋友之前拿的一个站,有点久了没有完整截图,简单记录一下. 0x01 基础信息 操作系统:win 集成环境:phpstudy 端口开放:82,3306,3389 有phpmyadmin ...

随机推荐

  1. System.Json 使用注意

    在xamarin中对json字符串进行解析,使用System.Json时出现怪问题: json-string = { "ret" : "OK" } 使用如下代码 ...

  2. xhtml、html与html5的区别

    一.基本概念: html:超文本标记语言 (Hyper Text Markup Language) xhtml:可扩展超文本标记语言,是一种置标语言,表现方式与超文本标记语言(HTML)类似,不过语法 ...

  3. EA方法论

    1 EA的定义 Enterprise Architecture,企业架构,简称EA.根据开放群组的业务领导层IT架构指引:“有效的企业架构(Enterprise Architecture,EA)对企业 ...

  4. MySQL 常用命令总结

    http://blog.csdn.net/hanxin1987216/article/details/5976860 一.总结 1.Linux系统下启动MySQL的命令: mysqladmin sta ...

  5. BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 2553  Solved: 1565[Submit][ ...

  6. Maven与Ant比较

    Maven与Ant比较 0 « 上一篇:Jenkins学习三:介绍一些Jenkins的常用功能» 下一篇:Jenkins学习四:Jenkins 邮件配置 posted @ 2015-03-25 16: ...

  7. [bzoj3207][花神的嘲讽计划Ⅰ] (字符串哈希+主席树)

    Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...

  8. 低版本GCC程序向高版本移植的兼容性问题

    将低版本gcc编译过的程序移植到高版本GCC时, 可能会出现一些兼容性问题. 原因是, 为了适应新的标准,一些旧的语法规则被废弃了. 关于这方面的一些具体资料可从该处查询. 这里只是自己遇到的其中一个 ...

  9. [LeetCode] Split Array Largest Sum 分割数组的最大值

    Given an array which consists of non-negative integers and an integer m, you can split the array int ...

  10. [LeetCode] Android Unlock Patterns 安卓解锁模式

    Given an Android 3x3 key lock screen and two integers m and n, where 1 ≤ m ≤ n ≤ 9, count the total ...