稀疏编码直方图----一种超越HOG的轮廓特征

该论文是一篇来自CMU 的CVPR2013文章,提出了一种基于稀疏编码的轮廓特征,简称HSC(Histogram of Sparse Code),并在目标检测中全面超越了HOG(Histogram of Gradient)本文介绍HSC的思路及其计算过程。

如图3所示,HSC方法种采用了疏编码原理来提取图像特征的方法,即根据学习得到的字典对图像块Patch进行重新编码。

算法主要包括了两部分,分别是字典学习和特征提取。

字典学习

  1. 类似于基于K-Means方法的字典学习,稀疏编码的字典学习室通过求解一个关于1范数的最优化问题。字典学习的步骤如下:

  2. 初始化。假设字典的长度为M,图像小块的宽高大小为,其中p可以去(3,5,7,…)。

  3. 图像小块获取。收集关于某一类目标的图像,然后将他们切成正方形的小块,宽高大小为,如图1所示。将图像小块按照图像灰度,先行后列的展成向量形式,于是图像小块的集合记为

  4. 字典学习。根据集合,学习得到最优的字典 ,字典的行列为表示长度为的列向量,通过求解以下方程得到:

其中,表示长度为的列向量。此最优化问题可以通过现有的一些软件工具求解得到,如K-SVD方法,通过交替式的来求解最优D和X。论文中指定K为1。

  5. 输出字典D。如图2所示。

图1、图像小块获取

图2、学习得到的字典

特征提取

  1. 学习到字典之后,可利用字典对指定的图像进行特征的提取。提取的过程如下:

  2. 初始化,给定一张图像,提取指定位置的特征,如图1所示,提取狗的特征,将狗分成若干个小单元块,简称为Cell。

  3. 单元块的稀疏编码。如图1所示,对每个cell,记为y,进行稀疏编码。即已知y和字典D,求解其最优的稀疏表达x:注意x的维度和y是不相等的,x的维度是M列向量,x是y的一个稀疏的表达,x的元素只有少数是非零的。

  4. 平滑稀疏解x。对x中的每个元素,四邻域的双线性插值。

  5. 计算x单元块的16邻域单元块的平均单元块,即相应元素相加然后除以16。

  6. 归一化平均单元块x。归一化直方图的方法是二范数归一化,即

  7. 将所有归一化后的平均单元块,按照先行后列的顺序展开成向量,所得到的向量即为对应的HSC特征直方图。

图3、HSC特征提取流程

图片有些不清晰,附上word版本:HSC特征提取cvpr2013.zip

时间: 2024-10-27 00:27:58

稀疏编码直方图----一种超越HOG的轮廓特征的相关文章

稀疏编码(Sparse Coding)的前世今生(二)

为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),须要把他们转成数学语言,由于数学语言作为一种严谨的语言,能够利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方式把稀疏编码扩展到随时间变化的图像上,由于人类或者哺乳动物在日常活动中通过眼睛获取的信号是随时间变化而变化的,对于此类信号仍然有一些稀疏系数和基能够描写叙述他们,同类型的处理方式也有慢特征分析(slow features analysis).废话不多说了,进入正题: 我们把图像流(图像序列)看成时空

稀疏编码

Deep learning:二十六(Sparse coding简单理解) Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因为sparse coding也是deep learning中一个重要的分支,同样能够提取出数据集很好的特征.本文的内容是参考斯坦福deep learning教程:Sparse Coding,Sparse Coding: Autoencoder Interpretation,对应的中文教程见稀疏编码,稀疏编码自编码表达. 在次之前,我们需

转载 deep learning:八(SparseCoding稀疏编码)

转载 http://blog.sina.com.cn/s/blog_4a1853330102v0mr.html Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因为sparse coding也是deep learning中一个重要的分支,同样能够提取出数据集很好的特征.本文的内容是参考斯坦福deep learning教程:Sparse Coding,Sparse Coding: Autoencoder Interpretation,对应的中文教程见稀疏编码,

深度学习浅层理解(四)-- 稀疏编码

借鉴前人的文章链接 http://blog.csdn.net/zouxy09/article/details/8777094 http://www.gene-seq.com/bbs/thread-2853-1-1.html http://ibillxia.github.io/blog/2012/09/26/convex-optimization-overview/ UFLDL教程 http://ufldl.stanford.edu/wiki/index.php/%E7%A8%80%E7%96%8

转载:稀疏编码

原文地址:http://blog.csdn.net/jwh_bupt/article/details/9902949 Many thanks --------------------------------------------------------------------------- 本文的内容主要来自余凯老师在CVPR2012上给的Tutorial.前面在总结ScSPM和LLC的时候,引用了很多Tutorial上的图片.其实这个Tutorial感觉写的挺好的,所以这次把它大致用自己的语

Deep Learning 系列(4):稀疏编码(sparse coding)和主成分分析(ICA)

一直犹豫稀疏编码怎么写,来来回回看了好几遍的UFLDL.因为这不仅是DL深度学习的重要概念,也是我这段时间一直在研究的stacked ISA 深度特征学习的支柱. 这章将主要介绍一下稀疏编码的主要概念,及主成分分析的方法. 一. 稀疏编码(sparse coding): 稀疏编码算法是一种无监督(unsupervised)学习方法,它用来寻找一组"超完备"基向量来更高效地表示样本数据.(设x的维数为n,则k>n) 超完备基能更有效地找出隐含在输入数据内部的结构与模式.然而,系数a

稀疏编码概率解释(基于1996年Olshausen与Field的理论 )

一.Sparse Coding稀疏编码 稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据.稀疏编码算法的目的就是找到一组基向量 ,使得我们能将输入向量 表示为这些基向量的线性组合: 也就是 虽然形如主成分分析技术(PCA)能使我们方便地找到一组“完备”基向量,但是这里我们想要做的是找到一组 “超完备” 基向量来表示输入向量 (也就是说,k > n).超完备基的好处是它们能更有效地找出隐含在输入数据内部的结构与模式.然而,对于超完备基来说,系数 ai 不再由输

《神经网络与深度学习》(三) 稀疏编码

转自:http://www.cnblogs.com/caocan702/p/5666175.html 借鉴前人的文章链接 http://blog.csdn.net/zouxy09/article/details/8777094 http://www.gene-seq.com/bbs/thread-2853-1-1.html http://ibillxia.github.io/blog/2012/09/26/convex-optimization-overview/ UFLDL教程 http://

JAVA实现Base64编码的三种方式

摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang123"; 2. byte[] result = Base64. Javabase64编码的三种方式 有如下三种方式: 方式一:commons-codec.jar Java代码 1. String base64String="whuang123"; 2. byte[] result