计算机器视觉(八)

SIFT特征(续)

在这里插入图片描述
不会影响是否是尺度不变点,但是影响圆的大小,只要有尺度不变点,无论大小都能找到。(covariance)

灰度变化是否会改变呢??

在这里插入图片描述
上面两个图中的内容是对应不上的,究其原因是因为对视角的变化是无法作出正确的判断的,视角变了之后信号就变了。所以两个⭕️中的东西是对应不上的,所以更希望这两个圆具有自适应性。
在这里插入图片描述

加了仿射变换的SIFT特征

在这里插入图片描述
对于一个圆形的东西,lambda在两个方向变化的速度是一样的。把上面图像中的两个圆中的像素拿出来计算两个圆中像素的M矩阵,然后找到信号变化最快的两个方向,然后将信号变化较小的方向的信号增大,圆也就缩成了椭圆,把椭圆中的像素提取出来再次计算lambda值,如果还是两个lambda不一致的话继续进行判断,一直做到两个方向上梯度变化是一样的,希望在最后的椭圆中任何方向上的变化都是一样的
方向是通过将M矩阵分解成R和lambda的矩阵分解出来的R的一个和第二个方向的向量就是那两个确定的变化方向。

这样就可以解决视角差异!

在这里插入图片描述
有了小圆之后更加准确了,增加了仿射变换的自适应性。
在这里插入图片描述
把两个图像的圆变成同样的大小,但是发现👇的圆中的angle不同。
在这里插入图片描述

梯度

在这里插入图片描述
把方向分块,然后用像素中的点的梯度给梯度方向直方图中的每个区域投票,找出梯度变化最大的方向。然后用当前的图像旋转那个最大的方向与零方向夹角的度数
在这里插入图片描述
旋转完成的结果如下:

在这里插入图片描述
这样两个方向一旋转,就把角度问题归一化了。现在已经解决了尺寸,旋转,视角问题,还有光照问题。
刚才是对整个SIFT区域进行梯度方向的投票,现在是对SIFT区域里的一小块做的。16个格子就会有16个直方图,每个直方图都有8个方向,16X8有128个方向,把它拉成一个向量,变成一个128位的描述符,然后判断两个图的128位描述符。(SIFT描述符
在这里插入图片描述
SIFT Desc也可以用在其他方法上,和前面的如何提取区域是没有关系的,前面用Harris+Laplacian也可。

为什么在局部进行比较而不是在全局进行比较呢?

因为全局进行比较可能相同,但是可能实际上并不是一件事。在局部进行比较可以有效的提升匹配的精度,正确性更高。但是为啥4X4个格?实验做出来的。为啥是8个方向啊?也是实验得出的,而且角度不宜量化太多,量化太多就会有噪声进入(统计的太细也会有噪声,过细过粗都不好)。

用SIFT进行特征提取

在这里插入图片描述
先进行方向的归一化,然后进行比较。将输入图像的特征和数据库中图像的特征进行比较,然后判断输入图像的特征和数据库中图像的特征哪个比较近 ,但是这里对于比较近的定义是比较模糊的。他总会找到一个最小值,但是这个最小值就是匹配的吗?这里的门限定义是困难的。这个时候可以看这个点和第一近邻和第二近邻的关系,如果和第一近邻的比较相似度是1.5和第二近邻的匹配度是0.7那么这个的匹配就是比较清晰的。但是如果和第一近邻的相似度是0.7和第二近邻的相似度是0.68这样就无法判断到底和哪个更接近。这时候这个feature就应该被舍弃(就认为这个可能就是❌,直接丢掉)。
但是这里每一个feature都要和数据库中的好多features进行比较,很麻烦

summary
  1. 一个是对尺度方面的改进:对Laplacian的改进
  2. 一个是对图像区域的描述(对真实情况的应用的改进):先去掉了旋转,然后分成16个格,使用梯度直方图进行描述,然后形成了一个128维的向量,这个向量就是对这个区域的描述
  3. Affine对SIFT的角度的自适应的改进
  4. SIFT可以检测光照、平移、旋转、尺度、视角(有一定的对抗性,能解决大部分的视角差异)
  5. 当然这些都是刚性变换,像小猫小狗这就不行了,像car啥的可以
  6. 但是现在比较的水平还是不行,但庆幸的是现在已经有东西可以进行比较了

⚠️具体的SIFT细节还是要看代码
㊗️coding

Texture(纹理)

在这里插入图片描述
一些基元按照一定的方式组合起来,虽然看起来很乱但是还是有一定的规律性的东西。
纹理简单分为:

  1. 比较规则的纹理
  2. 随机性比较大的纹理
    在这里插入图片描述
    在这里插入图片描述
    纹理能用来干啥??
    在这里插入图片描述
    纹理的任务:
  • 可以从纹理中恢复图像,分析纹理的变化走势就可以把图像恢复出来。
  • 分割、分类、合成(给出一个纹理能不能生成更多的纹理)
    在这里插入图片描述
    在这里插入图片描述
    上面的图是纹理分析:给出两个图像能否判断二者是同类的或不同类的
    下面的图是纹理合成:给出一块纹理能否生成一整块
要研究的目标:纹理分类

在这里插入图片描述
识别纹理可以区分不同的材质,通过不同的材质就可以了解背后的物理概念。
在这里插入图片描述
还能识别水果哦🍉
在这里插入图片描述
还能区分可爱的小动物🐶
在这里插入图片描述
所以希望认识纹理,因为它能帮助我们区分很多东西。能否用边缘提取器取处理这些纹理?可以,但是提取之后呢?
在这里插入图片描述

背景、意义和现状

在这里插入图片描述
为啥要研究纹理?

  • 暗示物体材质
  • 外观的特写
  • 区分不同的物体
    希望找到一个能比现在表达方式更好一些的装置。
Texture representation

由一些具有相同模式的东西组成在一起。

  • 发现模式
  • 描述区域中模式之间的关系
    在这里插入图片描述
    使用高斯偏导核进行处理(分别从x和y两个方向进行分析),然后统计每个方向的xy的结果。
    在这里插入图片描述

把所有窗口里面的内容打下来就是如下图的结果:
在这里插入图片描述
在这里插入图片描述
这样就可以把不同的区块的纹理进行区分。
在这里插入图片描述
距离远的两块图像代表的是不同的两种纹理,但是同一团点中两个点之间可能也有距离,这个距离代表着是同一个texture但是可能不是在一个区域之中。于是引出两点之间的距离:
两个纹理像或者不像就可以通过判断投影到二维空间上的距离来进行判断。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
首先找到导数空间,然后再在这个空间中进行聚类。

窗口的选择

在这里插入图片描述
可以分成各种大小的窗去寻找,如果当寻找到某一个窗口的时候,二维导数空间的值不怎么发生改变,这个窗口就是较为合适的窗口,将来做具体任务的时候就可以使用这个窗口了,就是在xy轴上的统计信息差不多(纹理也有尺度特性

窗口的描述信息够吗?

在这里插入图片描述

Filter banks(滤波器组/卷积核组)

常用的滤波器:
既能描述小的尺度也能考虑大的尺度,还有不同的方向。在这里插入图片描述
分成三个部分:一个描述整体空间左右两半部分不同,一个描述条带状物体,一个描述点状物体。(设计滤波核来解决问题)
可以描述不同方向不同大小不同基元
在这里插入图片描述
多维高斯:通过观察协方差矩阵就可以判断高斯核是什么样的。
在这里插入图片描述
如果想要获得60度方向的就通过协方差矩阵次对角线来实现旋转。
在这里插入图片描述
不同的卷积核卷积结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来如何去描述呢?怎么去比较两张图像?
在这里插入图片描述
ABC是用上面的卷积核对每个图像进行卷积的结果除以图像的像素个数得到的平均结果,现在想建立ABC和123的对应关系(相应结果和图像的关系)
A向量左右的差距较大,描述的是2的图像的性质
在这里插入图片描述
基元->均值
给出一张图就可以用这7个向量表示,在这里插入图片描述
也可以用38维来描述,对于一个点可以用上面的7个向量的取均值的方式来表示(global mean),也可以把每个像素的不同的7个向量串在一起进行表示。不过纹理和卷积神经网络的区别是纹理的模版是人设计的,而神经网络的模版是自己学到的。(很多时候平均表示就够用的了)
在这里插入图片描述
应用
在这里插入图片描述
3Dmarks纹理,从数据库中选择出一个和要检索的进行判断,计算当前要求的图和数据库中的图的距离然后排个序。接下来就是机器学习的事情解决分类问题。
在这里插入图片描述
检索只要检索出来和哪个接近就行,分类需要给每几组图label
还可以进行分割:
在这里插入图片描述
对于图中的每个点可以变成一个38维的向量,然后用k-means进行聚类然后进行分割。

区分场景:
在这里插入图片描述

summary

  1. 提取纹理基元,描述纹理基元(filter banks)
  2. 整理纹理基元的统计信息(means or 方差)
  3. 卷积神经网络
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值