CV学习笔记-RANSCA&图像相似度比较Hash

简介: CV学习笔记-RANSCA&图像相似度比较Hash

RANSAC&图像相似度比较Hash

1. RANSAC

1. 线性回归

什么是线性回归?
举个例子,某商品的利润在售价为2元、5元、10元时分别为4元、10元、20元,
我们很容易得出商品的利润与售价的关系符合直线:y=2x.
在上面这个简单的一元线性回归方程中,我们称“2”为回归系数,即斜率为其回归系数。
回归系数表示商品的售价(x)每变动一个单位,其利润(y)与之对应的变动关系。

线性回归表示这些离散点在总体上“最逼近”哪条直线

2018122814580746.png

2. 最小二乘法

定义:最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

image.png

2-范数越小,拟合程度越高。

数学定义(参照2范数):

image.png

这是一个无约束的优化问题,分别对k和b求偏导,然后令偏导数为0,即可获得极值点。

image.png

3. RANSAC

概述:随机采样一致性(random sample consensus)

作用(*):RANSAC是一种思想,一个求解已知模型的参数的框架。它不限定某一特定的问题,可以是计算机视觉的问题,同样也可以是统计数学,甚至可以是经济学领域的模型参数估计问题。

原理: RANSAC的基本假设是 “内群”数据可以通过几组模型参数来叙述其数据分布,而“离群”数据则

是不适合模型化的数据。 数据会受噪声影响,噪声指的是离群,例如从极端的噪声或错误解释

有关数据的测量或不正确的假设。 RANSAC假定,给定一组(通常很小的)内群,存在一个

程序,这个程序可以估算最佳解释或最适用于这一数据模型的参数。

它是一种迭代的方法,用来在一组包含离群的被观测数据中估算出数学模型的参数。 RANSAC
是一个非确定性算法,在某种意义上说,它会产生一个在一定概率下合理的结果,其允许使用
更多次的迭代来使其概率增加。

2018122814580746.png

由于现实中的数据往往有偏差,而最小二乘法只适用于误差较小的情况,且由于一张图片中像素点数量大,采用最小二乘法运算量大,计算速度慢。在模型确定以及最大迭代次数允许的情况下,RANSAC总是能找到最优解。(对于包含80%误差的数据集,RANSAC的效果远优于直接的最小二乘法。)

4. RANSAC算法流程

在数据中随机选择几个点设定为内群

计算适合内群的模型 y=ax+b ->y=2x+3 y=4x+5

把其它刚才没选到的点带入刚才建立的模型中,计算是否为内群 hi=2xi+3,ri

记下内群数量

重复以上步骤

比较哪次计算中内群数量最多,内群最多的那次所建的模型就是我们所要求的解

RANSAC算法的输入:

  • 一组观测数据(往往含有较大的噪声或无效点)
  • 一个用于解释观测数据的参数化模型,比如y=ax+b
  • 一些可信的参数。

注意:不同问题对应的数学模型不同,因此在计算模型参数时方法必定不同,RANSAC的作用不在于计算模型参数。(这导致RANSAC的缺点在于要求数学模型已知)

待定参数n、k:

  • 一开始的时候随机选择的点的数量(n)
  • 算法重复次数(k)

假设每个点是真正内群的概率为 w

image.png

image.png

5. RANSAC的应用举例

全景拼接:

流程

1、针对某个场景拍摄多张/序列图像

2、通过匹配特征(sift匹配)计算下一张图像与上一张图像之间的变换结构。

3、图像映射,将下一张图像叠加到上一张图像的坐标系中

4、变换后的融合/合成

2018122814580746.png

2018122814580746.png

image.png

6. RANSCA的优缺点

优点:

  • 它能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。

缺点:

它计算参数的迭代次数没有上限;如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。

RANSAC只有一定的概率得到可信的模型,概率与迭代次数成正比。

它要求设置跟问题相关的阀值。

RANSAC只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,RANSAC不能找到别的模型。

要求数学模型已知

2. 哈希算法

1. 哈希概述

哈希:散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定

下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,

或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

特点:

  • 不可逆性。输入信息得出输出的那个看似乱码的字符串(哈希值)非常容易,但是从输出的字符
    串反推出输入的结果却是却非常非常难。
  • 输出值唯一性和不可预测性。只要输入的信息有一点点区别,那么根据哈希算法得出来的输出值
    也相差甚远。

2. 均值哈希算法

汉明距离:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

算法步骤:

缩放:图片缩放为8*8,保留结构,除去细节。

灰度化:转换为灰度图。

求平均值:计算灰度图所有像素的平均值。

比较:像素值大于平均值记作1,相反记作0,总共64位。

生成hash:将上述步骤生成的1和0按顺序组合起来既是图片的指纹(hash)。

对比指纹:将两幅图的指纹对比,计算汉明距离,即两个64位的hash值有多少位是不一样的,不

相同位数越少,图片越相似。

3. 差值哈希算法

差值哈希算法相较于均值哈希算法,前期和后期基本相同,只有中间比较hash有变化。

算法步骤:

缩放:图片缩放为8*9,保留结构,除去细节。

灰度化:转换为灰度图。

比较:像素值大于后一个像素值记作1,相反记作0。本行不与下一行对比,每行9个像素,

八个差值,有8行,总共64位

生成hash:将上述步骤生成的1和0按顺序组合起来既是图片的指纹(hash)。

对比指纹:将两幅图的指纹对比,计算汉明距离,即两个64位的hash值有多少位是不一样

的,不相同位数越少,图片越相似。

4. 感知哈希算法

均值哈希算法过于严格,不够精确,更适合搜索缩略图,为了获得更精确的结果可以选择感知哈希

算法,它采用的是DCT(离散余弦变换)来降低频率的方法。

算法步骤:

缩小图片:32 * 32是一个较好的大小,这样方便DCT计算

转化为灰度图:把缩放后的图片转化为灰度图。

计算DCT:DCT把图片分离成分率的集合

缩小DCT:DCT计算后的矩阵是32 * 32,保留左上角的8 * 8,这些代表图片的最低频率。

计算平均值:计算缩小DCT后的所有像素点的平均值。

进一步减小DCT:大于平均值记录为1,反之记录为0.

得到信息指纹:组合64个信息位,顺序随意保持一致性。

最后比对两张图片的指纹,获得汉明距离即可。

DCT:离散余弦变换(Discrete Cosine Transform),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能。

DCT的特点:

  • DCT变换本身是无损的,同时,由于DCT变换是对称的,所以,我们可以在量化编码后利用DCT反变换,在接收端恢复原始的图像信息。

DCT的应用:

  • DCT变换在当前的图像分析以及压缩领域有着极为广大的用途,我们常见的JPEG静态图像编码以及MJPEG、MPEG动态编码等标准中都使用了DCT变换。

5. 三种图像相似度比较哈希算法比较

  • aHash:均值哈希。速度比较快,但是有时不太精确。
  • pHash:感知哈希。精确度较高,但是速度方面较差一些。
  • dHash:差值哈希。精确度较高,且速度也非常快。
相关文章
|
5月前
|
存储 人工智能 测试技术
图像相似度比较之 CLIP or DINOv2
图像相似度比较之 CLIP or DINOv2
|
8月前
|
存储 算法 数据安全/隐私保护
图像相似性:哈希和特征
图像相似性:哈希和特征
71 0
|
10月前
|
机器学习/深度学习 算法 计算机视觉
人证比对+图片相似度+MTCNN+FACENET+CNN
人证比对+图片相似度+MTCNN+FACENET+CNN
122 1
|
12月前
|
机器学习/深度学习 编解码 算法
图像目标分割_6 Mask RCNN
目标检测和语义分割的效果在短时间内得到了很大的改善。在很大程度上,这些进步是由强大的基线系统驱动的,例如,分别用于目标检测和语义分割的Fast/Faster R-CNN和全卷积网络(FCN)框架。这些方法在概念上是直观的,提供灵活性和鲁棒性,以及快速的训练和推理。论文作者在这项工作中的目标是为目标分割开发一个相对有力的框架。
142 0
|
算法 数据可视化 计算机视觉
CV17 HOG特征提取算法
假设有这么一幅图片(gray格式),取出64*128大小的部分,通过选择其中的一个像素点及其周围的3x3区域,计算梯度和大小
227 0
|
资源调度 计算机视觉
CV10 图像模糊(均值、高斯、中值、双边滤波)
当我们只想得到感兴趣的物体时,通过图像模糊,可以将那些尺寸和亮度较小的物体过滤掉,较大的物体则易于检测。除了降低噪声,这就是图像平滑(模糊)的另一个重要应用:减少噪点,突出ROI,以便目标提取。
227 0
|
编解码 计算机视觉
CV13 图像分辨率操作(图像金字塔与resize()函数)
其中,高斯核卷积运算就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值(券种不同)经过加权平均后得到。常见的 33与 55 高斯核(CV9 2D卷积与图像滤波)
141 0
|
API 计算机视觉
opencv之直方图比较图像相似度
对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间 然后可以通过计算H1与H2的之间的距离得到两个直方图的相似程度进 而比较图像本身的相似程度。
348 0
opencv之直方图比较图像相似度
|
编解码 资源调度 算法
CV学习笔记-尺度不变特征变换(SIFT)
CV学习笔记-尺度不变特征变换(SIFT)
382 0
CV学习笔记-尺度不变特征变换(SIFT)
|
机器学习/深度学习 存储 算法
CV学习笔记-聚类
CV学习笔记-聚类
127 0
CV学习笔记-聚类

热门文章

最新文章