这个模型思想很直观(有误),但是写的源码太难懂了(看的是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://*.com/questions/32155724/gcc-c-c-mex-matlab-r2015-mac-os-x-with-openmp-doesnt-work
DPM模型简单记录的更多相关文章
-
[Django]模型学习记录篇--基础
模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...
-
JSP简单记录
JSP,全称是Java Server Page,是运行在服务器端的页面,是建立在Servlet规范的动态网页技术,JSP文件在第一次请求时,会被编译成Servlet,所以JSP也可以看成是运行中的Se ...
-
【FLUENT案例】02:DPM模型
1 引子1.1 案例描述1.2 学习目标1.3 模拟内容2 启动FLUENT并导入网格3 材料设置4 Cell Zones Conditions5 Calculate6 定义Injecions7 定义 ...
-
OSG模型简单控制
OSG模型简单控制 转自:http://milkcu.sintune.net/blog/archives/1392673560.html 结点基本操作 添加结点 OSG中使用osg::Node和osg ...
-
OpenCV安装配置的简单记录
在ubuntu16.04下安装OpenCV 2.4.11的简单记录 1. 安装cmake,执行$apt-get install cmake即可,cmake -version验证 2. 下载OpenCV ...
-
图像切割之(五)活动轮廓模型之Snake模型简单介绍
图像切割之(五)活动轮廓模型之Snake模型简单介绍 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了 ...
-
asp.net 简单记录请求的客户端和服务端 处理时间
最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在respons ...
-
PHP 版本简单记录
PHP 版本简单记录 PHP 博物馆 http://museum.php.net/php5/ PHP 版本发布 https://secure.php.net/release ...
-
简单记录一次注入到shell
0x00 前言 帮朋友之前拿的一个站,有点久了没有完整截图,简单记录一下. 0x01 基础信息 操作系统:win 集成环境:phpstudy 端口开放:82,3306,3389 有phpmyadmin ...
随机推荐
-
MFC 启动其他程序 变相跳转
尝试了多种方式之后都无法成功地在对话框程序中弹出一个单文档程序,然后我想到了这个办法. 如果直接在代码中实现某些窗口的弹出比较麻烦,可以采用这个方式来弹出这种窗口. 如果需要传递参数,只需将数据写入文 ...
-
[安卓] 3、EditText使用小程序
这里比较简单,看下面代码就能知道了:在按钮的点击事件时用String str = et.getText().toString();获取文本内容. public class MainActivity e ...
-
MyBatis学习笔记(二) 关联关系
首先给大家推荐几个网页: http://blog.csdn.net/isea533/article/category/2092001 没事看看 - MyBatis工具:www.mybatis.tk h ...
-
BootStrap2学习日记12---注册表单
<form method="" action="" class="form-horizontal"> <frameset& ...
-
makefile--编码修改-空格出现错误
"makefile", line 40: make: 1254-055 Dependency line needs colon or double colon operator. ...
-
Java Web学习笔记(1)
1.项目名称用小写,类名用大小写骆驼式,对象名用骆驼式但是第一个字母是小写: 2.写对象属性时要空行,第一个方法也要空行,一般要加注释: 3.new 新的对象时等号左右要空格,if语句左右摇有空格: ...
-
Swift - iCloud存储介绍
对于开发者而言,涉及iCloud存储的功能主要有两个: 一是 iCloud documnet storage,利用 iCloud 存储用户文件,比如保存一些用户在使用应用时生成的文件以及数据库文件等. ...
-
Button背景图片有拉伸
1.将图片做成9.png2.用TextView 3.将minHeight, minWidth设为0 4.http://blog.csdn.net/oathevil/article/details/23 ...
-
java的多态性
class test1{ int a=3; public test1(int a) { this.a=a; } public void aa() { ...
-
C# DataTable.Compute()用法
DataTable.Compute()用法 2010-04-07 11:28 一.DataTable.Compute()方法說明如下 作用: 计算用来传递筛选条件的当前行上的给定表达 ...