稀疏编码直方图----一种超越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
稀疏编码直方图----一种超越HOG的轮廓特征的更多相关文章
- 转载 deep learning:八(SparseCoding稀疏编码)
转载 http://blog.sina.com.cn/s/blog_4a1853330102v0mr.html Sparse coding: 本节将简单介绍下sparse coding(稀疏编码),因 ...
- Sparsity稀疏编码(二)
为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),需要把他们转成数学语言,因为数学语言作为一种严谨的语言,可以利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes v ...
- 稀疏编码概率解释(基于1996年Olshausen与Field的理论 )
一.Sparse Coding稀疏编码 稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据.稀疏编码算法的目的就是找到一组基向量 ,使得我们能将输入向量 表示为这些 ...
- UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化
UFLDL深度学习笔记 (七)拓扑稀疏编码与矩阵化 主要思路 前面几篇所讲的都是围绕神经网络展开的,一个标志就是激活函数非线性:在前人的研究中,也存在线性激活函数的稀疏编码,该方法试图直接学习数据的特 ...
- 稀疏编码(Sparse Coding)的前世今生(二)
为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),须要把他们转成数学语言,由于数学语言作为一种严谨的语言,能够利用它推导出期望和要寻找的程式.本节就使用概率推理(bayes views)的方 ...
- JAVA实现Base64编码的三种方式
摘要: Javabase64编码的三种方式 有如下三种方式: 方式一:commons-codec.jar Java代码 1. String base64String="whuang12 ...
- Sparsity稀疏编码(三)
稀疏编码(sparse coding)和低秩矩阵(low rank)的区别 上两个小结介绍了稀疏编码的生命科学解释,也给出一些稀疏编码模型的原型(比如LASSO),稀疏编码之前的探讨文章 ...
- Sparsity稀疏编码(一)
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...
- 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...
随机推荐
- MAC和PHY的区别 (转自http://www.cnblogs.com/feitian629/archive/2013/01/25/2876857.html)
一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...
- Codeforces Round #455 (Div. 2)
Codeforces Round #455 (Div. 2) A. Generate Login 题目描述:给出两个字符串,分别取字符串的某个前缀,使得两个前缀连起来的字符串的字典序在所有方案中最小, ...
- ubuntu无法获得锁 /var/lib/dpkg -open 问题
问题: 方法: sudo rm /var/lib/dpkg/lock 然后再安装就可以了
- ECMAScript 6 Promise 对象
一.Promise的含义 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise是一个对象,从它可以获取异步操作的消息. 1. ...
- 5.rabbitmq 主题
1.生产者 #!/usr/bin/env python import pika import sys connection = pika.BlockingConnection(pika.Connect ...
- POJ 3026 Borg Maze(Prim+bfs求各点间距离)
题目链接:http://poj.org/problem?id=3026 题目大意:在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用 ...
- day2、购物商城
作业:购物商城 商品展示,价格 买,加入购物车 付款,钱不够 代码如下: import codecs #登录接口,用户名密码都正确登录成功,否则失败 def login(your_name,your_ ...
- 语言模型srilm基本用法
目录: 一基本训练 二语言模型打分 三语言模型剪枝 四语言模型合并 五语言模型使用词典限制 一.基本训练 #功能 读取分词后的text文件或者count文件,然后用来输出最后汇总的count文件或者语 ...
- import xxx from 和 import {xxx} from的区别
1.vue import FunName from ‘../xxx’ 1.js export defualt function FunName() { return fetch({ url: '/ar ...
- 异步模型(APM)的注意事项
一.在没有线程池的前提下使用APM APM可以让线程池在异步操作完成时调用指定的回调方法.它使用很少的资源,并提供了出色的性能,然而,APM 还允许通过另外三种方式发现异步操作在何时完成. 首先,如果 ...