深度学习理论——特征提取算法
大家好,继续理论学习,今天介绍几种最常见的特征提取算法。
1.LBP算法(Local Binary Patterns,局部二值模式)
LBP算子是一种用来描述图像局部纹理特征的算子,具有灰度不变性。
其主要思想是在目标像素周围定义一个3x3的窗口,以目标像素为阈值,将相邻的8个像素的灰度值与目标像素进行对比,如果大于目标像素,则标记为1,如果小于等于则标记为0。这样,对每一个窗口都可以产生一个8位的二进制数。这样就得到了目标像素的LBP值。
其基本步骤为:
(1)首先将检测图像划分为16×16的小区域(cell);
(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;
(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率。然后对该直方图进行归一化处理。
(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量。然后便可利用SVM或者其他机器学习算法进行分类了。
2.HOG特征提取算法(Histogram of Oriented Gradient,方向梯度直方图)
在一幅图像中,图像的表象和形状能够被边缘或梯度的方向密度分布很好的表示。HOG具有几何和光学不变性。
其具体步骤为:
(1)将图像灰度化(将图像看做一个x,y,z(灰度)的三维图像);
(2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化)。目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;
(3)计算图像每个像素的梯度(包括大小和方向)。
(4)将图像划分成小cells(例如6*6像素/cell);
(5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;
(6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。
(7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该图像(要检测的目标)的HOG特征descriptor。这个就是最终的可供分类使用的特征向量了。
3.SIFT算子(Scale-invariant feature transform,尺度不变特征变换)
SIFT算子通过求一幅图中的特征点及其有关尺寸和方向的描述子得到特征并进行图像特征点匹配。具有尺度不变性和旋转不变性。
其主要步骤如下:
(1)尺度空间的生成。将图像卷积上一个高斯核,得到不同平滑程度和尺寸的图像,模拟图像数据的多尺度特征。
(2)检测尺度空间极值点。为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。 一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,
(3)去除不好的特征点。通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度),同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。
(4)为每个关键点指定方向参数。为每个特征点计算一个方向,依照这个方向做进一步的计算, 利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。
(5)关键点描述子的生成。以关键点为中心取8×8的窗口。在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图右部分示。此图中一个关键点由2×2共4个种子点组成,每个种子点有8个方向向量信息。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。
(6)根据SIFT进行图像的匹配。生成A、B两幅图的描述子,(分别是k1*128维和k2*128维),就将两图中各个scale(所有scale)的描述子进行匹配,匹配上128维即可表示两个特征点匹配上了。
具体参考如下:
大佬写的SIFT详细链接
我们下期见!
深度学习理论——特征提取算法相关推荐
- 深度学习之特征提取算法
目录 前言 二.LBP(Local Binary Patterns,局部二值模式) 三.HOG算法(Histogram of Oriented Gradient, 方向梯度直方图) 四.SIFT算子( ...
- 深度强化学习_深度学习理论与应用第8课 | 深度强化学习
本文是博雅大数据学院"深度学习理论与应用课程"第八章的内容整理.我们将部分课程视频.课件和讲授稿进行发布.在线学习完整内容请登录www.cookdata.cn 深度强化学习是一种将 ...
- 斯坦福大学秋季课程《深度学习理论》STATS 385开讲
转载:http://mp.weixin.qq.com/s?timestamp=1510210312&src=3&ver=1&signature=qmn1IsRtGkSXORGK ...
- 关于深度学习理论和架构的最新综述(part3)
关于深度学习理论和架构的最新综述-part3 递归神经网络(RNN) 介绍 长短期记忆(LSTM) 门控循环单元(GRU) 卷积LSTM(ConvLSTM) RNN架构的变体及其应用 基于注意力的RN ...
- 【深度学习理论】一文看懂卷积神经网络
[深度学习理论]一文看懂卷积神经网络 https://mp.weixin.qq.com/s/wzpMtMFkVDDH6scVcAdhlA 选自Medium 作者: Pranjal Yadav 经机器之 ...
- 距离向量算法_阿里北大:深度哈希算法最新综述
来源:我爱计算机视觉 编辑:安然 图灵联邦编辑部出品 最近邻搜索(Nearest neighbor search)是指在数据库中查找与查询数据距离最近的数据点,是计算机视觉.推荐系统.机器学习等领域的 ...
- 阿里北大:深度哈希算法最新综述
点击我爱计算机视觉标星,更快获取CVML新技术 最近邻搜索(Nearest neighbor search)是指在数据库中查找与查询数据距离最近的数据点,是计算机视觉.推荐系统.机器学习等领域的基本问 ...
- 【完结】深度学习CV算法工程师从入门到初级面试有多远,大概是25篇文章的距离...
文/编辑 | 言有三 转载自言有三 一直有同学希望我在公众号写写面试相关的东西,一直没写.我们不会开相关的板块,因为没有标准,容易引起争议,而且可能会加重大家的浮躁和焦虑. 不过关于面试,有三还是有一 ...
- 【深度学习理论】一文搞透pytorch中的tensor、autograd、反向传播和计算图
转载:https://zhuanlan.zhihu.com/p/145353262 前言 本文的主要目标: 一遍搞懂反向传播的底层原理,以及其在深度学习框架pytorch中的实现机制.当然一遍搞不定两 ...
- 模块一:深度学习入门算法
模块一:深度学习入门算法 1.深度学习必备知识 1.1深度学习要解决的问题 机器学习流程: 数据获取 -----> 特征工程 -----> 建立模型 ------> 评估与应用 特征 ...
最新文章
- APUE 配置(Fedora)
- Unity-3d Day03
- java ResultSet常用操作
- 信息学奥赛一本通(C++)在线评测系统——基础(二)基础算法 —— 1313:【例3.5】位数问题
- 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结...
- JavaScript(一)---- 概述
- 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
- python连接数据库步骤_Python连接mysql数据库
- 论文赏析[EMNLP18]用控制任务来设计并解释探测任务
- python 深度学习方法代码整理
- 驱动调试 -> devcon failed
- 2022下半年数学建模竞赛汇总(比赛时间、出成绩时间、难易程度、含金量、竞赛官网)
- pyodbc 连接oracle
- 运用腾讯云实现QQ语音通话
- greatest least 函数
- 【OGNL表达式struts2标签“%,#,$”】
- less-calc()
- React实战:留言板
- 14家泰国银行支持利用区块链平台将合同数字化
- 公司债个人投资者认购门槛或为1000元