《计算机视觉》笔记

图像处理

滤波

空域滤波

频域滤波

双边滤波

参考

双边滤波(Bilateral filter)

双边滤波器(Bilateral filter)是一种可以保边去噪的滤波器。可以滤除图像数据中的噪声,且还会保留住图像的边缘、纹理等(因噪声是高频信号,边缘、纹理也是高频信息,高斯滤波会在滤除噪声的同时使得边缘模糊)。它和我们普通的高斯滤波器一样,也是使用一个卷积核(模板矩阵),叠加到待处理像素点上,使用对应邻域像素点的加权求和来作为新的输出像素点的值一种方法,简单来说,双边滤波和高斯滤波一样,不同只在于模板矩阵的不同。双边滤波器的模板系数矩阵由高斯模板矩阵点乘(元素级相乘)值域系数获得。

原理:在平坦区域,像素差值较小,对应值域权重r接近于1,此时空域权重d起主要作用,相当于直接对此区域进行高斯模糊,在边缘区域,像素差值较大,值域系数下降,导致此处核函数下降(因w=r*d),当前像素受到的影响就越小,从而保持了边缘的细节信息。

思想:抑制与中心像素值差异较大的像素(即使你们空域相距较近)。

计算方法:对每一个邻域像素点,计算出其对应的空域系数和值域系数,相乘得到总的系数,然后进行加权求和。

屏幕快照 2018-11-22 上午8.59.34

傅里叶变换

频谱

参考

如何理解 图像傅里叶变换的频谱图

图像频域滤波与傅里叶变换

图像的二维傅里叶变换频谱图特点研究

How to Do a 2-D Fourier Transform in Matlab

Fourier transform visualization using windowing

二维频谱中的每一个点都是一个与之一一对应的二维正弦/余弦波。

一幅图像经过傅里叶变换之后的结果包含频率和相位信息。频率信息说明了原图像中包含的低频和高频部分的分布情况,而相位信息则说明了这些频率信息是如何组成的。同一组正弦曲线和余弦曲线,经过不同的相位组合起来会形成不同的曲线,因此说明相位是决定一幅图像表征的重要信息。

此外,在原始图像中,频率的分布区域是不同的,有时同样的频率部分会分布在图像的不同区域。但是在频谱中,这些位置信息并不会记录,频谱只是将相同的频率部分累加起来,而相位才记录了这些频率部分的分布信息。

我们将一幅图像A的频率部分和另一幅图像B的相位部分组合起来,经过反傅里叶变换之后得到的图像大多体现的是图像B的特征。

image-20181123100012339

傅里叶变换之后的频谱,中间是高频部分,四周是低频部分;而经过频谱居中(fftshift)处理后的频谱,中间是低频部分,四周是高频部分。

频谱居中后的频谱图:

频谱未居中的频谱图:

下图分别为图a、图b、图c、图d。图b去掉了原图像中的水平部分的频率信息,因此在反傅里叶变换后图像水平部分的边缘信息都丢失了;同理,图c和图d分别去掉了对角线位置的频率信息,是否去掉的成都不同,对应的反傅里叶变化拿到图像对角线位置的边缘信息也去除掉了。

image-20181122093941393

  • 为什么频谱图是对称的?

傅里叶分析

傅里叶变换特点

Aliasing problem

模板匹配

图像金字塔

滤波组和纹理

图像压缩算法

JPEG

PNG

特征检测与匹配

边缘检测

介绍

目标:识别图像中的突变区域。

定义:边缘是图像中强度值急剧变化的区域。

噪声影响

噪声会对边缘检测产生一定的干扰。差分滤波对噪声的反应很强烈。

可以在进行边缘检测前,对图像进行平滑来减轻噪声的影响。

根据公式$\frac {d}{dx}(fg) = f \frac{d}{dx}g$,我们可以直接对平滑函数g先求导,再作用在f上。

平滑操作可以移除噪声,但同时也会对边缘的检测造成一定的影响。因此需要权衡好平滑和定位。

边缘检测的设计

边缘算子好的标准:

  • Good detection:能够发现所有的真实边缘,忽略噪声等。
  • Good localization:检测到的边缘尽可能靠近真实的边缘;对每个真实边缘点,仅检测返回一个边缘点。

边缘检测的可用信息:

  • 边界上颜色、强度、纹理的差别;
  • 连续性和闭包;
  • High-level知识。

Canny边缘算子

参考

Canny边缘检测算法的实现

边缘检测的三大准则:

  1. 低错误率的边缘检测:检测算法应该精确地找到图像中的尽可能多的边缘,尽可能的减少漏检和误检。
  2. 最优定位:检测的边缘点应该精确地定位于边缘的中心。
  3. 图像中的任意边缘应该只被标记一次,同时图像噪声不应产生伪边缘。

算法流程如下:

  1. 高斯模糊
  2. 计算梯度幅值和方向
  3. 非最大值抑制
  4. 双阀值
  5. 滞后边界跟踪

边缘检测研究现状

  • 局部边缘检测效果很好,但是由于光照和纹理等变化,导致了许多false positives的出现;
  • 部分方法将轮廓信息也考虑进去,取得了较好的结果;
  • 很少有方法从数据里学习边缘特征信息;
  • 没有很好得利用到high-level的物体信息。

兴趣点和角点

兴趣点匹配

流程:

  1. Detection:找到具有区分度的兴趣点;
  2. Description:提取兴趣点周围的局部特征描述子
  3. Matching:根据一定的策略匹配局部特征描述子。

表现权衡:

高质特征的特点:

  • Repeatability:相同的特征可以找原始图像和经过几何变换等后的图像找到。
  • Saliency:每个特征间的区分度高。
  • Compactness and efficiency:特征数量远小于像素点数量。
  • Locality:特征占据图像很小的区域,robust to clutter and occlusion。

Harris角点

参考

Harris角点检测算法详解

harris角点检测器

Harris角点检测是特征点检测的基础,提出了应用邻近像素点灰度差值概念,从而进行判断是否为角点、边缘、平滑区域。Harris角点检测原理是利用移动的窗口在图像中计算灰度变化值,其中关键流程包括转化为灰度图像、计算差分图像、高斯平滑、计算局部极值、确认角点

算法过程:

  • 求出I(x,y)在x、y方向上的梯度Ix、Iy
  • 分别求出在x、y方向上的梯度乘积,I2x=Ix∗Ix,I2y=Iy∗Iy,Ixy=Ix∗Iy
  • 对I2x,I2y,Ixy进行高斯加权,从而产生A,B,C三个元素,如下:
    A=g(I2x)=I2x∗w
    B=g(I2y)=I2y∗w
    C=g(I2xy)=I2xy∗w
  • 求出每个像素的Harris响应值R,令小于阈值(阈值一般为0.01 * np.max(R))的响应值R为0;
  • 进行3 3邻域非极大值抑制,即如果该点的值比3 3邻域的其它角点小,则删除该角点;
  • 记录下角点在原图像的位置,即图像角点所在的位置。

注意:应先计算差分图像再进行高斯平滑,否则先高斯平滑可能会导致原图像中的角点无法精确得位于边缘处,而往内部偏移。具体表现如下二图所示:

Harris角点性质如下:

  1. 阈值决定检测点数量

    增大$\alpha$的值,将减小角点响应值$R$,降低角点检测的灵性,减少被检测角点的数量;减小$\alpha$值,将增大角点响应值$R$,增加角点检测的灵敏性,增加被检测角点的数量。

  2. Harris角点检测算子对亮度和对比度的变化不敏感

    这是因为在进行Harris角点检测时,使用了微分算子对图像进行微分运算,而微分运算对图像密度的拉升或收缩和对亮度的抬高或下降不敏感。换言之,对亮度和对比度的仿射变换并不改变Harris响应的极值点出现的位置,但是,由于阈值的选择,可能会影响角点检测的数量。

451660-20160421111057585-91989997

  1. Harris角点检测算子具有旋转不变性

    Harris角点检测算子使用的是角点附近的区域灰度二阶矩矩阵。而二阶矩矩阵可以表示成一个椭圆,椭圆的长短轴正是二阶矩矩阵特征值平方根的倒数。当特征椭圆转动时,特征值并不发生变化,所以判断角点响应值也不发生变化,由此说明Harris角点检测算子具有旋转不变性。

451660-20160421111140554-1415920926

  1. Harris角点检测算子不具有尺度不变性

    如下所示,当上侧的山峰图像被放大时,在检测窗口尺寸不变的前提下,在窗口内所包含图像的内容是完全不同的。上侧的图像可能被检测角点,而下侧的图像则可能被检测为边缘或曲线。

451660-20160421111159663-2094337427

Hessian & Harris:

image-20181121104203580

pB boundary detector

Martin D R, Fowlkes C C, Malik J. Learning to detect natural image boundaries using local brightness, color, and texture cues[J]. IEEE transactions on pattern analysis and machine intelligence, 2004, 26(5): 530-549.

人类在识别物体边缘时,不仅会利用到强度信息,还会利用到颜色、纹理、亮度等多种信息。有些图像的边缘信息在强度上没有明显区别,难以检测出来,但是可能在颜色或则纹理空间上就可以明显得进行区分,这启发了我们可以结合颜色、纹理、亮度、强度等多种信息来进行边缘信息的检测。

如下图所示,I、B、C、T分别表示强度、亮度、颜色、纹理。在Boundaries列表里,我们可以看到第一幅图在边缘上强度变化明显,但是颜色信息却没有明显的变换;而第三幅图则是边缘上强度变化不明显,但是颜色和纹理等信息都有明显的变化,因此可以通过颜色和纹理信息检测出这个图像的边缘信息。

image-20181121101636048

多个图像在不同特征信息下的边缘检测结果如下:

image-20181121102139482

应用

  • 图像校准
  • 运动跟踪
  • 机器导航
  • 数据库检索
  • 物体识别
  • 3D重建

局部特征

在不同尺度空间下,同一幅图像的兴趣点所构成的局部特征信息很可能是不同的,难以进行匹配。因此我们所采用的局部特征描述子需要具有尺度不变性,能够根据所处的尺度选择对应的局部特征表示。

屏幕快照 2018-11-21 下午3.10.33

DoG

DoG应该是LoG的近似。

  • 为什么DoG三维图中的最大值和最小值点是角点?

    在不同的尺度下,检测到的图像边缘信息是不同的。由于噪声的存在,尺度越大,检测后噪声会被去掉,但是同时边缘信息也会丢失一部分。在相邻的三个尺度空间下检测到的边缘信息,如果某个位置的值都是最大的,说明这个点不会因为尺度的变化而变化,具有尺度不变性,可作为图像的角点。

Harris-Laplace

MSER

Histograms

SIFT

参考

SIFT特征匹配算法介绍——寻找图像特征点的原理

SIFT特征提取分析

SIFT详解

SIFT算法的特点有:

  1. SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;
  2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;
  3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;
  4. 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;
  5. 可扩展性,可以很方便的与其他形式的特征向量进行联合。

步骤一:构建尺度空间

尺度空间理论目的是模拟图像数据的多尺度特征。可以利用高斯卷积核中不同的$\sigma$设置,实现对图像的不同尺度变换。σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。

图像金字塔的建立:

对于一幅图像I,建立其在不同尺度(scale)的图像,也成为子八度(octave),这是为了scale-invariant,也就是在任何尺度都能够有对应的特征点,第一个子八度的scale为原图大小,后面每个octave为上一个octave降采样的结果,即原图的1/4(长宽分别减半),构成下一个子八度(高一层金字塔)。

img

img

在上图中,i为octave的塔数(第几个塔),s为每塔的层数。2^{i-1}和k=2^{1/s}$值的设定都是必需,这保证了整个尺度空间从下往上是连续递增的(即高斯函数的标准差单调变大,可以计算证明),这也确保了图像从直观上来看越往上越模糊。

由图片的size决定建几个塔,每塔几层图像(s一般为3-5层)。其中,如果在检测极值点前对原始图像进行高斯平滑会导致图像丢失高频信息,所以一般在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。0塔的第0层是原始图像(或你double后的图像),往上每一层是对其下一层进行Laplacian变换(为什么不是gaussian变换),塔间的图片是降采样关系,例如1塔的第0层可以由0塔的第3层down sample得到,然后进行与0塔类似的高斯卷积操作。

  • 找到极值点后,需要取出边缘信息?

    结果中包含很多边缘信息,而这些边缘信息很多只在某个方向上具有较大的梯度,不是角点,因此需要利用Harri角点类似的矩阵进行去除。

  • 在生成关键点的描述子的时候,需要将坐标轴旋转为关键点的方向,以确保旋转不变性。这步的原理是什么?

    在图像发生旋转之后,关键点领域内的像素点的梯度值仍然是相同的,且关键点的主方向和领域像素点间的梯度方向是相对不变的,可以表征原来图像的信息。但是在生成描述子时需要统计8个方向的梯度方向直方图,而梯度方向和图像X轴是相关的,只有将坐标轴旋转为关键点的主方向,在不同旋转图像下得到的特征向量才会是一致的,从而保证的旋转不变形。

  • 为什么高斯函数可分离性可以减小计算量?或则两个一维的高斯计算过程是如何的?

SUFT

参考

SUFT算法解析

Shape Context

Geometric Blur

Self-similarity Descriptor

HOG

参考

深入浅出理解HOG特征—-梯度方向直方图

HOG特征(Histogram of Gradient)学习总结

图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

在HOG中,需要统计每一个像素的幅度和角度,而在计算时角度的范围是0度到360度,但是因为角度箭头方向和与之相对的180度箭头方向是相同的(值一样),因此在HOG中,一般将计算得到的所有角度都变化为0度到180度的范围。而经验也表明使用[0, 180]的表达比[0, 360]更适用于行人检测。

步骤如下

  1. 标准化gamma空间和颜色空间
  2. 计算图像梯度
  3. 为每个细胞单元构建梯度方向直方图
  4. 把细胞单元组合成大的块(block),块内归一化梯度直方图
  5. 收集HOG特征

疑问1:为什么[0, 180]的表现会更好?

疑问2:为什么在HOG中,需要将图像分成小的连通区域,对细胞单元单独计算特征向量再合并起来?

由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×