图像特征提取(上)| 学习笔记

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 快速学习图像特征提取(上),介绍了图像特征提取(上)系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算图像特征提取(上)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/811/detail/15706


图像特征提取(上)


今天开始讲基于内容的图像检索,在这里讲四个内容,一个就是像特征的提取,为了实现基于内容的检索,提取图像特征,对图像的特征进行编码,压缩空间,要建立高维的特征。最后实现基于内容的图像检索的过程,里面会介绍几种经典的图像检索算法

图像特征的提取

为了有效的检索的图像,应该使用局部特征还是全局特征全局特征是整个图像的衣服图像的这个特征,比如它的直方图等等,都属于这种全局。那么全局特征的坏处是什么如果的图像发生了一些,像大小的修改,角度的变化远近的变化或者图像里面发生一些运动都可能使得的全局图像的特征,两幅本来很像的图像结果在全局特征上具有很大的不同。为了提高图像检索的准确性通常是提取图像的局部特征,局部特征是相对全局特征来讲,它是指从图像的局部提取的特征因此,它反映的是图像的局部特性,是否进行图像的匹配和检索有关什么是局部特征,这个网页里面有很详细的介绍,课后如果有些内容不理解,可以看一看这个博客的博文

局部特征的特点是它来自于图像的局部区域,具有了很强的几何变性,对光照、遮挡以及噪声具有很强的鲁棒性

按照特征的提取方法不同,可以分为两大类一个就是浅层特征,叫做手工特征,包括浮点类的 HOG / SIFT ,像 SURF/ PCA SIFT 排序, GLOH 等等,这个在的很多的综述的文献里面,后面参考文献都逐一列举了,它们的提取算法,包括原始的一些文献以及它分别适用于哪些场合还有一些二值化的特征,像 BRISK , FRIEK 还有个 FAST , ORB等等。

第二大类,对于手工工程它是机器自动提取,比较深度的局部特征

通过深度学习获取的特征,用了他局部反应局部特性的部分,包括卷积层特征图,那么包括 DELF / D2R 还有ASMK,看看提取局部特征,或者提取特征的算法通常叫做提取器。浅层特征由于它是手工的,因此它需要复杂专业的手工设计,也就是说针对不同的需求,设计符合需求的特征。比如说像 SIFT 它就等于提取算法容易的检测算法,比如说检测再加上描述子合并成 SIFT,还有每一步精心设计了所提取的内容。参数它的可调性比较差,而深度特征是一个端到端的,通常它是简单一个层的堆积,比如常用的是卷层和石化层Pooling 的一个特征。

步骤:

先输入卷积层,然后通过石化层再有卷积层到石化层。可以根据需要把层数的叠加的层数增加。它的好处参数可以适应数据的变化,它可以具再学习性,它就可以通过学习抓取到不同数据它本身的特点比如说通过 BP 算法进行学习。缺点就是这种深层的局部特征,它的可解释性是比较差。

在手工特征里边这个局部特征非常典型的一个也必须要知道的一个特征叫 SIFT 特征。所以那么它的中文名字叫尺度不变特征变换特征,英文叫 Scale Invariant Feature Transform 。叫尺度不变特征变换其实这里边就是为了让满足尺度的不变性所进行的特征点的变化

特征的优点

它可以满足尺度不变性大小缩放都没问题

旋转的不变性:同一图像旋转一定角度不影响特征的有效性

平移的不变性以及不易受视角及噪声的干扰,抗干扰能力比较强

SIFT 特征的提取的步骤,那么包括四步,第一步就是尺度空间的极值点的检测,然后从这极值点里面再确定出精确的极值点比如说最大最小那么把这些点叫做为叫 pin point叫关键点,然后找到关键点以后,再通过梯度的分析找到它的主方向。最后,通过方向来组合成的描述就是 SIFT 。

如何提取出来

第一部叫尺度空间的极值检测,首先构建一个高斯差分的金字塔的金字塔DoG 金字塔。对图像做不同尺度的高搜模糊就会得到一种尺度空间。然后对图像做降采样,就是隔点采样,来得到多尺度空间的图像,就是这个就是通过降采样得到的不同尺度 DoG 。有了这个就在从这个高斯差分金字塔里面来检测极值点。这几点上下左右26个他的临界点去寻找是否存在极值点,中间这点跟上下左右上面一层,下面一层以及同一层的周围的点。这么做就是为了满足描述的尺度具有普遍性。所以说这个过程是其实很典型的一个数据。 DoG 的生成是非常关键的一步

前面通过这个这个临界点去寻找的这个极值点通常未必是最准确的,因此需要关键点,精确的定义。这个不准确有两方面原因,一方面,就是在边缘的时候,这种极致的搜索算法是不稳定,对细节结构的描述的斑点叫边缘部分,不会被较好地进行抑制,既然边缘点不稳定,就应该想办法把边缘部分提取的特点它去除。在尺度空间中寻找这个极值点它这个位置信息通常也不够准确比如说找到了极值点可能不是真实绝对的极值。

以这个图为例

image.png

看这两个点是寻找到但是曲线里面真正的极值点上面最大,下面局部来讲最小的点,想怎么样才能把它相邻的真正的极值点找出来怎么去找这个理论上实际上极值点。在数学里面其实都可以通过差值来算。

第一步去除

对 DoG 函数进行泰勒展开,就是泰勒插值。然后再迭代校正极值点,就像已知是这两点,通过插值之后就恢复出来,展开这个泰勒函数。有了这个函数以后,就可以迭代得到这是真正的局部的极值点。

image.png

再把不稳定的边缘点利用 Hessian 矩阵再把它去除

看看效果,左边这幅图,这是通过函数直接求解到了它的特征点。而中间这个,是通过子像元插值,就像泰勒展开,去除掉不准确的极值点之后,得到了真正的精确的极值点的小点,其实已经少了很多,很多的初始的时候其实都是不准确的好,再把边缘部分不稳定的点去除,进一步检查,留下的这种关键点具有尺度不变性,最突出或者最稳定的特征,用它来做进行检索。

image.png

有了这个关键点以后按照前面步骤,到了应该确定关键点的主方向,根据领域特性确定关键点的主方向。通过主方向目的是使描述符具有旋转不变性。

计算关键点邻域点的梯度,然后构建邻域点的梯度方向直方图,下面是直方图,峰值对应的方向为主方向,也就是最高的这个点。

还有其它的峰值,为了尽最大限度的抓住它的方向,这个峰值虽然不是最高的,但已经接近最高,因此在把大于80%大于最高值的这些方向啊,把它叫做关键点,方向或者叫辅助的方向

最高值可能是一个,但是大于80%的可能不止一个,因此他的辅助方向或者方向,可能就不止一个。找到了,再使坐标轴行旋转使关键点的主方向这个坐标轴的方向一致这么做满足旋转不变性,这就叫做坐标系的旋转。

原来的水平是这样的,旋转的角度是其实就是原始的坐标跟方向的夹角。就是的关键特征点 keypoint  的主方向找到了

image.png

再把这些主方向按照一定的规则描述出来关键的描述梯度的描述在四乘四的小块儿计算八个方向的梯度直方图,这是个十六乘十六的分成四乘四的若干四乘四块这里每一个小块里面是个八个方向的梯度直方图十六乘以八总共有一百二十八位的这种这个特征向量再对他进行归一化的处理就可以去除光照的影响。

到此 SIFT 的特征就提取了存的特征保留的是在每一个小方块,它的梯度直方图,是当中最重要的好,SIFT,自从提出来之后对整个图像检索都是基于这种内容的图像检索,提交一幅图去找类似图像的,推动的意义非常之大这是一个非常好用的很多人在跟随着 SIFT ,有很多的改进算法

image.png

比如像 SURF ,它叫做加速的稳定特征,其实就是 SIFT 的一个高效的一个变种,它提的快了,更稳定,算法的步骤和 SIFT 的提取算法基本相同,不同的地方就是它使用海森矩阵的行列去做特征点的检测,并且用积分图来加速运算。

image.png

描述子,他基于二维离散小波变换相应,并且有效的利用积分,这三种特征它的效果对比,下面是 GLOH ,  SIFT 还有 SURF ,比它明显效果对比, SURF 在同样的数据上,它的效果要好一些。

相关文章
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(上)| 学习笔记
|
5月前
|
算法 定位技术
技术笔记:Kriging插值法
技术笔记:Kriging插值法
57 1
|
机器学习/深度学习 数据挖掘
【正交球面正则化】让模型不偏不倚更加鲁棒的简单粗暴神器,推荐阅读和使用!!!
【正交球面正则化】让模型不偏不倚更加鲁棒的简单粗暴神器,推荐阅读和使用!!!
160 0
|
机器学习/深度学习 人工智能 算法
活久见!像素随机打乱的手写字体图像竟能被非监督学习方法全新重建?
活久见!像素随机打乱的手写字体图像竟能被非监督学习方法全新重建?
|
存储 编解码 图形学
数字图像基础(下)| 学习笔记
快速学习数字图像基础(下),介绍了数字图像基础(下)系统机制, 以及在实际应用过程中如何使用。
数字图像基础(下)| 学习笔记
|
存储 编解码 算法
数字图像基础(上)| 学习笔记
快速学习数字图像基础(上),介绍了数字图像基础(上)系统机制, 以及在实际应用过程中如何使用。
数字图像基础(上)| 学习笔记
|
Web App开发 算法 计算机视觉
变换编码(下)| 学习笔记
快速学习变换编码(下),介绍了变换编码(下)系统机制, 以及在实际应用过程中如何使用。
变换编码(下)| 学习笔记
|
算法 大数据 开发者
变换编码(上)| 学习笔记
快速学习变换编码(上),介绍了变换编码(上)系统机制, 以及在实际应用过程中如何使用。
 变换编码(上)| 学习笔记
|
机器学习/深度学习 资源调度 算法
图像提取特征(下)| 学习笔记
快速学习图像提取特征(下),介绍了图像提取特征(下)系统机制, 以及在实际应用过程中如何使用。
图像提取特征(下)| 学习笔记
|
机器学习/深度学习 算法 搜索推荐
高维向量检索的设计与实践(一)|学习笔记
快速学习高维向量检索的设计与实践(一)
280 0
高维向量检索的设计与实践(一)|学习笔记
下一篇
无影云桌面