该论文是一篇来自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

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

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

    转载 http://blog.sina.com.cn/s/blog_4a1853330102v0mr.html Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因 ...

  2. Sparsity稀疏编码(二)

           为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),需要把他们转成数学语言,因为数学语言作为一种严谨的语言,可以利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes v ...

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

    一.Sparse Coding稀疏编码 稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据.稀疏编码算法的目的就是找到一组基向量 ,使得我们能将输入向量 表示为这些 ...

  4. UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化

    UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化 主要思路 前面几篇所讲的都是围绕神经网络展开的,一个标志就是激活函数非线性:在前人的研究中,也存在线性激活函数的稀疏编码,该方法试图直接学习数据的特 ...

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

    为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),须要把他们转成数学语言,由于数学语言作为一种严谨的语言,能够利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方 ...

  6. JAVA实现Base64编码的三种方式

    摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang12 ...

  7. Sparsity稀疏编码(三)

    稀疏编码(sparse coding)和低秩矩阵(low rank)的区别        上两个小结介绍了稀疏编码的生命科学解释,也给出一些稀疏编码模型的原型(比如LASSO),稀疏编码之前的探讨文章 ...

  8. Sparsity稀疏编码(一)

    稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...

  9. 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853

    稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...

随机推荐

  1. Android上HDMI介绍(基于高通平台)

    本文重点针对HDMI在android上的应用,而比较相关的就是overlay机制.overlay在这里只是简单的介绍,后续会有文章再专门详述. 我没记错的话,高通从7X30开始,平台就可以支持HDMI ...

  2. PHY Linux 驱动

    以太网 MAC(链路层)+PHY(物理层/RTL8201F,88E1111);集成型DM9000,RTL8139CP 由于网络数据传输量较大,不论是分开型还是集成型,通常会在MAC和PHY之间引入DM ...

  3. linux常用函数简单介绍

    mmap函数简介: mmap函数是unix/linux下的系统调用,来看<Unix Netword programming>卷二12.2节对mmap的介绍: The mmap functi ...

  4. 读书笔记 effective c++ Item 3 在任何可能的时候使用 const

    Const可以修饰什么?   Const 关键字是万能的,在类外部,你可以用它修饰全局的或者命名空间范围内的常量,也可以用它来修饰文件,函数和块作用域的静态常量.在类内部,你可以使用它来声明静态或者非 ...

  5. chm转换为html文件

    在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...

  6. Prime

    #include<iostream>#include<cstdio>#include<cstring>using namespace std; const int ...

  7. 记一次测试环境下PXC集群问题《经验总结》

    1.问题描述                  当PXC集群节点全部宕机的,导致集群几点启动失败.报错导致无法启动   [ERROR] WSREP: It may not be safe to boo ...

  8. 百度地图sdk定位和遇到的坑

    封装定位服务类: import android.content.Context; import com.baidu.location.BDAbstractLocationListener; impor ...

  9. IE7、IE8下使用escape、encodeURI传递中文参数乱码的问题及解决方案

    js跳转到指定页面,一旦escape()中文数据,浏览器就会终止和没有反应.上网搜了半天始终不得解.一种说法是,escape中文之后,url中出现了%u,IE7和IE8拒绝执行.目前看来差不多是这样的 ...

  10. Cookie机制和Session机制

    1. cookie 1. Cookie 是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie 是由 Web服务器保存在用户浏览器(客户端)上的小文本文件(内容通常经过加密) ...