PHOG特征
PHOG特征
2016年7月13日 21:07:57
什么是PHOG
PHOG是Pyramid HOG(pyramid histogram of oriented gradient)的简称,是在图像尺寸固定的情况下,计算不同尺度下的特征(这一点有点绕,是指要计算HOG特征的区块的划分尺度在变化),将这些特征进行拼接得到PHOG特征,在论文[1,2]中被提出和使用,用来做图像分类。
PHOG原理
具体来讲,HOG特征描述的是一个区域,它可以是一个cell大小,也可以是一个windows大小,anyway,ROI内逐像素计算梯度方向,然后按预设将所有角度等分为若干份,每个像素点的梯度方向就划归到特定角度范围内,那么统计直方图中就把它算到对应的“统计立柱(bin)”里面去,术语叫做“投票”,其投票权值是像素点的梯度幅值。逐像素操作后得到一个统计直方图,它可以用一个一维向量表示。我们可以把这个向量叫做HOG特征。需要计算PHOG特征的图像其尺寸是固定的,但要计算HOG特征则可以对这个图片有不同尺度的划分:第一层,只有1个区域;第二层:分为2x2个区域;第三层:分为4x4个区域;...。在同一划分尺度图里面,每个区域算出一个HOG特征,按顺序进行拼接,得到当前尺度图的HOG特征;所有尺度图的HOG特征进行拼接,得到整个图像空间尺度金字塔的PHOG特征。
怎么求PHOG
用伪代码表示一下:
Input:
win:某图像区域
bins: 梯度方向(角度值)要划分到几个区域,即180°或360°要等分的数目。通常取360°和8等分
L: 尺度金字塔要搞几层?通常取3。表示除了原图尺度外,另外再算3个“原有1/2尺度”图像的HOG特征
Output:
PHOG:尺度金字塔所有层的HOG特征的拼接
Algorighm:
function HOG(area){
%计算某区域area的HOG特征
逐像素计算梯度方向(角度值)
按等分方向数量,将梯度方向划归到不同的区间,进行统计
统计得到的直方图,是一个向量
}
function level_HOG(level){
%计算某层金字塔的HOG特征
将均等划分的若干个窗口,分别计算HOG特征
将这些HOG特征进行拼接
}
function PHOG(win){
%计算某区域win的尺度金字塔的PHOG特征
逐层计算win的尺度金字塔的HOG特征
将这些HOG特征进行拼接
}
PHOG的维度
PHOG作为HOG的变种,也是一个描述符,在代码实现中就是一个一维向量。那么PHOG描述符的长度是多少?即,PHOG这个向量有多少维?
L=3, n=8时:
第0层是整图算HOG,1x8维的HOG特征
第1层是2x2划分,2x2x8维的HOG特征
第2层是4x4划分,4x4x8维的HOG特征
第3层是8x8划分,8x8x8维的HOG特征
因此,此时的phog_dimension=(1+4+16+64)x8=680维
source code
http://www.robots.ox.ac.uk/~vgg/research/caltech/phog.html
ref
[1] Bosch, A. , Zisserman, A. and Munoz, X.
Representing shape with a spatial pyramid kernel
Proceedings of the International Conference on Image and Video Retrieval (2007)
[2] Bosch, A. , Zisserman, A. and Munoz, X.
Image Classification using Random Forests and Ferns
Proceedings of the 11th International Conference on Computer Vision, Rio de Janeiro, Brazil (2007)
PHOG特征的更多相关文章
- zz致力于变革未来的智能技术
有 R-CNN SPPNet Fast R-CNN Faster R-CNN ... 的论文翻译 现在已经不能访问了... [私人整理]空间金字塔池化网络SPPNet详解 SPP-Net是出自 ...
- 卷积神经网络提取特征并用于SVM
模式识别课程的一次作业.其目标是对UCI的手写数字数据集进行识别,样本数量大约是1600个.图片大小为16x16.要求必须使用SVM作为二分类的分类器. 本文重点是如何使用卷积神经网络(CNN)来提取 ...
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- PRINCE2特征(三)
提到不确定性,可能很多从事项目管理相关工作的人都会感同身受,一系列临时性问题,比如:变更.延期.调整.计划赶不上变化.团队调整等的出现,都是项目中再正常不过的内容.但正常不等于合理,我们还是要去思考一 ...
- PRINCE2特征(二)
英国体系环境下项目有什么特征(二) 今天又要和大家分享了,这个时间也是自己很喜欢的时刻.上次给大家分享的是英国体系下项目的特征之一:临时性.不知道大家还有没有印象,英国体系下项目的特征有五个,今天来给 ...
- P2特征(一)
很多人在提到项目的特征,肯定能说出来很多的内容,但是在英国体系下,项目的特点有哪些呢?这些特点引深的内容又有什么深度的含义. 项目具有临时性:很多人都知道项目是临时的,结束了就团队成员 ...
- sift特征
已经有很多博客已经将sift特征提取算法解释的很清楚了,我只是记录一些我不明白的地方,并且记录几个理解sift特征比较好的博客. 1. http://aishack.in/tutorials/sift ...
- sift特征源码
先贴上我对Opencv3.1中sift源码的注释吧,虽然还有很多没看懂.先从detectAndCompute看起 void SIFT_Impl::detectAndCompute(InputArray ...
- kaggle入门2——改进特征
1:改进我们的特征 在上一个任务中,我们完成了我们在Kaggle上一个机器学习比赛的第一个比赛提交泰坦尼克号:灾难中的机器学习. 可是我们提交的分数并不是非常高.有三种主要的方法可以让我们能够提高他: ...
随机推荐
- Python的高级特性5:谈谈python的动态属性
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性. 看下面一种常见的get/set操作 In [174]: class ...
- C语言:void指针
使用前必须进行强制类型转换 #include <stdio.h> void test(const void *p); int main(){ ; int *p = &i; puts ...
- (原创)在Exchange 2007 server中使用实时黑名单服务(RBL)过滤垃圾邮件
近一段有同事抱怨公司的邮件系统垃圾邮件非常多,早上上班打开邮箱垃圾邮件竟然有几十封.然后赶紧打开Exchange工具“邮件跟踪”,发现有每隔1到2分钟,邮件系统便会收到来自不同IP的垃圾邮件,由于源I ...
- 数据库 SQL语法一
建立表语句 CREATE TABLE TABLENAME(COL_NAME1 TYPE,COL_NAME2 TYPE,......); 常用TYPE说明 INT 正数 CHAR(LENGTH) 定长字 ...
- velocity模板引擎学习(4)-在standalone的java application中使用velocity及velocity-tools
通常velocity是配合spring mvc之类的框架在web中使用,但velocity本身其实对运行环境没有过多的限制,在单独的java application中也可以独立使用,下面演示了利用ve ...
- Java 集合与队列的插入、删除在并发下的性能比较
这两天在写一个java多线程的爬虫,以广度优先爬取网页,设置两个缓存: 一个保存已经访问过的URL:vistedUrls 一个保存没有访问过的URL:unVistedUrls 需要爬取的数据量不大,对 ...
- struts2 DMI
在使用DMI(动态方法调用)的时候要注意struts.xml配置时要把 <constant name="struts.enable.DynamicMethodInvocation&qu ...
- 简单高效的nodejs爬虫模型
这篇文章讲解一下yunshare项目的爬虫模型. 使用nodejs开发爬虫很简单,不需要类似python的scrapy这样的爬虫框架,只需要用request或者superagent这样的http库就能 ...
- C# EventHandler and Delegate(委托的使用)
委托的声明 public delegate void MyDelegate(string str); 注 1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种特 ...
- 《Javascript DOM编程艺术》 读书笔记 —— 好书,通俗易懂!!!!! 相当的严谨!!!!
1.javascript弱类型语言,解释性语言. 2.javascript数据类型:字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空( ...