PHOG特征

简介: PHOG特征2016年7月13日 21:07:57什么是PHOGPHOG是Pyramid HOG(pyramid histogram of oriented gradient)的简称,是在图像尺寸固定的情况下,计算不同尺度下的特征(这一点有点绕,是指要计算HOG特征的区块的划分尺度在变化),将这些特征进行拼接得到PHOG特征,在论文[1,2]中被提出和使用,用来做图像分类。

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)

目录
相关文章
|
7月前
|
人工智能 编解码 算法
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
8512 71
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
|
10月前
|
人工智能 自然语言处理 自动驾驶
深入理解ChatGPT:下一代人工智能助手的开发与应用
【10月更文挑战第27天】本文深入探讨了ChatGPT的技术原理、开发技巧和应用场景,展示了其在语言理解和生成方面的强大能力。文章介绍了基于Transformer的架构、预训练与微调技术,以及如何定制化开发、确保安全性和支持多语言。通过实用工具如GPT-3 API和Fine-tuning as a Service,开发者可以轻松集成ChatGPT。未来,ChatGPT有望在智能家居、自动驾驶等领域发挥更大作用,推动人工智能技术的发展。
|
10月前
|
消息中间件 数据采集 运维
一份运维监控的终极秘籍!监控不到位,宕机两行泪
【10月更文挑战第25天】监控指标的采集分为基础监控和业务监控。基础监控涉及CPU、内存、磁盘等硬件和网络信息,而业务监控则关注服务运行状态。常见的监控数据采集方法包括日志、JMX、REST、OpenMetrics等。Google SRE提出的四个黄金指标——错误、延迟、流量和饱和度,为监控提供了重要指导。错误监控关注系统和业务错误;延迟监控关注服务响应时间;流量监控关注系统和服务的访问量;饱和度监控关注服务利用率。这些指标有助于及时发现和定位故障。
828 1
|
11月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
422 0
|
Docker 容器
Docker | Docker技术基础梳理(总结篇)附思维导图
Docker | Docker技术基础梳理(总结篇)附思维导图
365 0
|
存储 机器学习/深度学习 监控
阿里云的主要云产品和服务有哪些?
阿里云提供的云产品和服务多达几百款,从分类上来说主要分为弹性计算、数据库、存储、网络、大数据、人工智能、云安全、互联网中间件、云分析、管理与监控、应用服务、视频服务、移动服务、云通信、域名与网站、行业解决方案等,每个分类下的主要云产品和服务如下
3524 0
|
资源调度 算法
[Halcon&测量] 一维测量
[Halcon&测量] 一维测量
496 0
[Halcon&测量] 一维测量
|
机器人 iOS开发
空间音频是什么?
从单声道音频发展到双声道、再到多声道和环绕立体声,数字音频的表现力不断提升。空间音频(也称为三维声音或3D音频)并不只是通过增加声道来创造立体感,而是一种与视频空间化同步的音频处理过程。基于空间的音频甚至可以具有六个自由度,使用户能够互动。声音不仅要清晰动听,还要与空间场景完美契合,带来沉浸式体验。让我们一起深入了解一下空间音频技术。
|
计算机视觉 C++
【OpenCv • c++】基础边缘检测算子 —— Laplace
【OpenCv • c++】基础边缘检测算子 —— Laplace
523 0
|
JavaScript Shell
typescript vscode /bin/sh: ts-node: command not found
typescript vscode /bin/sh: ts-node: command not found
220 0