计算机视觉复习大纲

363 阅读22分钟

brief:根据考点本学期计算机视觉考试,自己整理的大纲

参考:
中科院ppt
常见计算题考法--点进去还可以看这个博主总结的别的题型
浙江大学课程攻略共享计划中列出的计算机视觉总结pdf

空间分辨率

概念:图像可辨认的临界物体空间几何长度的最小极限(分辨率越大,图片细节越好) 图像插值放大不能提高图像的空间分辨率,只是增加了图像的分辨率、像素数

非均匀采样
- 在变化大细节多的区域——较精(密)采样
- 平坦变化缓慢区域——较粗(稀)采样

灰度级

概念:灰度值的量化(灰度值的离散值)-[0,255]
若将样本量化为Q级,Q=2k级

灰度级位数越大,量化误差越小,越能区分和保留图像细节。
灰度级位数越少,能表示的灰度级别就越少。相应地会出现灰度级别和分辨率的损失,图像质量就会越差。

  • 在边界附近(灰度剧烈变化区)——量化级少

  • 灰度级变化比较平滑的区域——量化级多,避免或减少由于量化的太粗糙,在灰度级变化比较平滑的区域出现假轮廓的现象

  • 比较

    • 两者都影响图像质量
    • 细节丰富时,空间分辨率影响更大
    • 灰度平坦的,灰度分辨率影响更大

颜色空间:HSI、Lab、Luv、YUV、CIEXYZ等有什么不同和相同的地方

设备相关:颜色会根据设备不同而变化
设备无关(基于人眼对颜色感知)

  • RGB:线性 设备相关

  • CIE XYZ:一组称为X、Y和Z的三刺激值,定义颜色是三基色XYZ的加权组合,线性 设备无关

    • CIE Luv:均匀视觉感知的颜色空间,非线性
    • Lab:颜色差异感知均匀,非线性
  • HSV/HSI颜色空间:从人类视觉系统出发,非线性 设备无关

  • YUV和YIQ颜色空间:彩色电视系统所采纳的颜色编码方法。Y-图像的明度/亮度信息(黑白电视接收器唯一接收的分量),线性 设备相关

    • YIQ是以CIE的XYZ颜色模型为基础。

      • 没有色度的清空下,Y对应了黑白图像

高斯滤波核和高斯卷积核之间的关系是,高斯滤波核是由二维高斯函数离散化得到的,高斯卷积核是将高斯滤波核与图像进行卷积操作的结果。

高斯卷积核

生成步骤:

  1. 确定卷积核的尺寸
  2. 设置高斯函数的方差 image.png
  3. 计算卷积核各个位置权重值
    要已知标准差,然后带各个位置(x,y)进入高斯公式计算
  4. 对权重值进行归一化
  • 卷积核大小与滤波效果的关系:越大越好(方差越大,模版大,去噪效果好,但同时也会让图像越模糊)

性质:

  • 半窗宽度就是把最中间那行去掉,分割成两个部分,每个部分的宽度就是半窗宽度
  • 可分离

image.png 计算复杂度:
对于m x m的模板,n x n的图片,那么计算复杂度就是O(n2m2)
但是具体的计算次数就不一定,比如每一个点做两次卷积,那么实际的计算次数就是2×n2m2
如果核可分离,那么计算复杂度就是O(n2m)

图像增强

直接对比度增强方法和间接对比度增强方法

直方图均衡

对图像的直方图进行修正来获得图像增强效果的自动方法。

目的:通过灰度变换将直方图的灰度级概率分布转换为均匀分布,即在每个灰度级上都具有相同的像素点数,从而增强图像的对比度和亮度。最常见的间接对比度增强方法之一。

均匀分布特性的图像(在整个灰度范围内均有分布)优点:较好的清晰度和对比度

r表示灰度级是一个随机变量
pr (rk ):概率密度函数表示原始图像的灰度分布
rk:离散灰度级-可归一化(范围为[0,1])
pr (rk ) = nk / n
k = 0,1,2,...,l-1

直方图均衡化通过使用累积函数对灰度值进行调整以实现对比度的增强;
灰度级变化:s = T(r) s是新灰度级,r是旧灰度级
需要满足的条件:

  1. T单值单增函数
  2. 保证逆变换存在
  3. 各灰度级在变换后保持从黑到白的排列次序
  4. 对应0 ≤ r ≤ L-1,有 0 ≤ T(r) ≤ L-1(L是灰度级的上限)
    保证前后图像有同样的灰度级范围

则 r = T-1(s), 0 ≤ s ≤ L-1

累积直方图可满足上述条件作为T

直方图均衡化流程

  1. 统计原始图像的直方图-pr (rk) rk为归一化灰度级

  2. 计算直方图累积分布图各项得tk(也有叫tk的)(为每一个级别的累积概率

  3. 将累积分布值进行线性变换:tk = int[(L-1)tk + 0.5] 将相同值归并起来

    • 简并现象:经过直方图均衡变换后,由于某些像素的灰度值相同,直方图中的不同灰度级之间出现了“简并”

      • 出现原因:直方图是近似的概率密度函数
      • 减少简并的方法:增加直方图的分辨率、使用更高级的直方图均衡算法(减少图像像素的比特数不是一种简单有效的方法)
  4. 映射对应关系:根据累积分布函数和原图像里的灰度级像素数目,重新画图
    (还有一个扩展的结果直方图!-直方图规定化)

直方图规定化

步骤:

  1. 将原始图像进行直方图均衡化

  2. 规定希望的灰度概率密度函数pz(z),并用式:z = G-1(u) ≈ G-1(s)求得变换函数G(u)

  3. 将逆变换函数z = G-1(s)用到均衡化后得到的灰度级,即z = G-1[T(r)] 实现r与z的映射关系

    • 得到的新图像的灰度级具有事先规定的概率密度函数
    • 可以对图像中某些灰度级进行增强,使其在参考图像中对应的灰度级分布更为集中

形态学

结构元素中的1值定义了结构元素的领域,输出图像中对应原点的值建立在输入图像中相应像素及其领域像素比较的基础上。
结构元素上的任意为1的元素与图像上为1的元素有重合

集合运算:

  1. 集合A的映射构成的集合:

image.png 2. 集合A的平移z构成的集合:

image.png

结构元素的形状以及其原点的位置都会影响膨胀和腐蚀的结果!

膨胀

目的:在目标边界周围添加像素
效果:孔洞收缩、目标扩大
方法:结构元素B对集合A膨胀生成的集合是B的映射平移集合与集合A相交至少有一个非零元素时,B的原点位置的集合。(有相交是指结构元素和集合元素都是1)(当结构元素在目标图像上平移时,允许结构元素中的非原点像素超出目标图像范围)

操作描述:结构元的原点像素经过待膨胀的二值图像中所有1像素点时,对应结构元所有1像素的二值图像像素置为1像素

腐蚀

腐蚀是移除图像中目标边界的像素。结构元素B的平移集合完全包含在集合A中时,B的原点位置的集合.(结构元素在目标图像上平移时,结构元素中的任何元素不能超出目标
作用:腐蚀是消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体(eg:黏连的物体;物体毛刺)

操作描述:结构元的原点像素经过待腐蚀的二值图像中所有1像素点时,如果结构元中有一个1像素没有对应腐蚀二值图像的1像素,则对应结构元原点的待腐蚀二至图像1像素置为0

开运算

  • 掌握操作步骤以及和闭运算的操作对比
    操作:先腐蚀后膨胀的运算 作用:去除比结构元小的区域像素;光滑目标轮廓-分离接触在一起的物体

闭运算

操作:先膨胀后腐蚀
作用:填充比结构元小的孔洞;将破碎的物体重新连接

噪声

图像噪声的产生来自图像获取中的环境条件和传感元器件自身的质量。图像在传输过程中产生图像噪声的主要因素是所用的传输信道受到了噪声的污染

椒盐噪声

随机出现的白、黑点
出现原因:突如其来的强烈干扰
出现位置是随机的

高斯噪声

噪声值满足正态分布

空间域

空间域:包含图像像素的简单平面
空间领域:决定了灰度操作的范围

空域滤波是一种领域处理方法,直接在图像空间内对领域内像素使用空域模板进行处理
模板(也叫空间滤波器:
线性滤波的作用是实现乘积求和操作:加权求和
非线性滤波要求确定邻域大小,以及对包含在邻域内的图像像素执行的操作
目的:平滑或锐化

区域处理

图像平滑滤波

一种区域增强的算法。在图像产生、传输和复制过程中常常会因为多方面原因而被噪声干扰或数据丢失而降低了图像的质量,这就需要对图像进行一定的增强处理以减小这些缺陷带来的影响

  • 均值滤波(一种低通)
    线性的,去噪但会让边界变得模糊

    • 任意一点的像素值都是周围MxN个像素值的均值。
      eg:5x5,则周围所有像素值相加/25.其中5x5的矩阵称为核(宽x高)
      核为(1,1)时为原图像
  • 中值滤波
    非线性的,去噪同时保留了边界信息

    • 取核大小为奇数,将核范围内的像素点按照灰度级大小排列,取中间的灰度值来代替该点的灰度值。
    • 去除椒盐噪声的效果使用自适应中值滤波器的效果会更好一些
  • 高斯滤波
    领域平均,尽可能保留边缘信息且达到平滑的目的

    • 对不同位置的像素给予不同的权重:对周围像素计算加权平均值,较近的像素具有较大的权重值。且核大小必须为奇数

图像锐化滤波

针对常见的图像模糊、边缘不清晰采取图像锐化,能够加强图像的轮廓、使图像看起来比较清楚。
锐化处理的目的:突出灰度的过度部分。常用的方法是:梯度法(数字图像-差分)

频率域

有时需要将原定义在图象空间的图象以某种形式转换到另外一些空间(频率域)并加工,再转换回图象空间以得到所需的效果

傅里叶基础

二维快速傅里叶变换(FFT)

一、一维连续傅里叶变换及其反变换
j = √-1=±i

image.png

二、离散形式:离散傅里叶变换(DFT)

image.png 计算F(u):
在指数项中带入u=0(1....M-1),然后将所有x值相加,得到F(0);
对M个u重复此过程,得到全部完整的FT

傅里叶变换(FT)基础:一种数学变换,将一个函数分解成它的组成频率
傅里叶进行图象压缩的原理:
将原始图象从空间域转换到频率域,然后根据不同的滤波器对频率域的系数进行筛选或者量化,从而去除一些不重要或者冗余的信息,最后再从频率域转换回空间域,得到压缩后的图像。
傅里叶的高低频段信息代表了不同的信号特征
低频信息:信号的大范围大尺度的变化,即背景或者基本形态(eg:图像的亮度、色彩等)
高频信息:信号的小范围细节的变化,即轮廓或者纹理(eg:图像的边缘、细节等)

频率域滤波平滑

  • 理想低通滤波器
  • butterworth低通滤波器
  • 高斯低通滤波器

频率域滤波锐化

  • 理想高通滤波器
  • butterworth高通滤波器
  • 高斯高通滤波器

空间和频率域滤波间的对应

基本联系为卷积定理:
空间域卷积对应频率域乘法,空间域乘法对应频率域卷积。
空域(时域)-信号的幅度随着时间变化

频域-信号各个频率分量的幅度谱图

图像恢复:图像去噪

空间域噪声去除

与空域增强原理相同
常用滤波器:
◼ 均值滤波器(Mean Filters)
◼ 次序统计滤波器(Order Statistic Filters)
中值滤波器
◼ 自适应滤波器(Adaptive Filters)

频率域噪声去除

基于频域滤波的噪声去除:
◼带阻滤波器(Bandreject Filters) :𝐻𝑏𝑟(𝑢, 𝑣)
理想带阻滤波器
butterworth带阻滤波器
高斯傣族滤波器
◼带通滤波器(Bandpass Filters) :𝐻𝑏𝑝(𝑢, 𝑣) = 1 − 𝐻𝑏𝑟(𝑢, 𝑣)

边缘检测

一阶算子

  • Roberts算子

  • Sobel算子

image.png

  • Prewitt算子

二阶导数算子

  • 拉普拉斯算子

    • 对图像中的噪声相当敏感
    • 很少直接用于检测边缘,主要用于已经边缘检测像素后确定像素是在图像的暗区或明区一边
  • 高斯-拉普拉斯算子(LOG)

  • 最优边缘检测算子-canny
    Canny 算子可以用高斯函数的一阶微分算子来近似
    步骤:

    1. 用高斯一阶偏导核卷积图像

    2. 计算每个点的梯度幅值和方向

    3. 非极大值抑制:将宽的“边缘”细化至单个像素宽度

    4. 连接与阈值(滞后):

      • 定义两个阈值:低和高
      • 使用高阈值开始边缘曲线,使用低阈值继续边缘曲线

传统图像分割:
阈值分割、基于区域的分割、边缘检测、分水岭分割
传统图像分割的原理:
根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域表现出相似性,而在不同区域表现出明显的差异性。

图像分割-聚类方法

聚类分割:利用图像特征的分布特性,通过将像素分簇聚类,实现图像分割
将每个像素视为一个样本,其表达信息可包括灰度、坐标位置or其他特征

K-means聚类算法

  • 基本步骤:
  1. 选择k个初始分类中心uk,每个分类中心代表一个类簇
    k是人为确定;随机选样本作为聚类中心
  2. 使用最小距离法将所有样本分类:将每个样本分类到离自己最近的那个类中
  3. 根据上一步的分类结果,重新计算各类中心,然后将其作为每个类新的中心
  4. 反复进行2、3步,直到各类中心趋于稳定/收敛
    收敛条件:质心不变或者变化很小
    K-means可以保证收敛性
  • 优缺点:
    优点:
    1. 简单
    2. 容易收敛到局部最小
      缺点:
    3. 需要设置k
    4. 初始化敏感
    5. 对离群点敏感
    6. 只能找到球形的簇

层次聚类

相比k-means不需要提前设定k值

层次聚类将数据对象组成一颗聚类树

根据层次分解
自底向上(合并)--凝聚的
每个对象作为单独的一个原子簇,然后合并这些簇形成越来越大的簇直到所有的对象都在一个簇中或者达到一个终止条件
自顶向下(分裂)--分裂的
首先将所有对象放在一个簇中,然后细分成越来越小的簇直到每个对象自成一个簇或者达到终止条件。

簇间距离的计算方式:最小(大)距离、均值距离

缺点:

  1. 简单但会遇到合并或分裂点选择的困难
  2. 不具有很好的可伸缩性(因为决定合并或分裂时需要检查和估算大量的对象或簇)

Mean shift图像分割方法

(随机画一个圈,之后不断往点密度高的地方走,走的过程中遇到的点就是同一类

一般是指一个迭代的步骤,即先算出当前点的偏移均值(相同点的最密集分布),移动该点到其偏移均值,然后以此为新的起始点继续移动,直到满足一定的条件结束。--一定可以收敛到最近的一个概率密度函数的稳态点

(类似于梯度下降

均值漂移Mean shift:一种寻找数据概率密度的局部最大值算法
无参的密度估计,服从某种分布模型,是一种数据驱动的学习方法
窗口是向着梯度变化最剧烈的方向移动的

步骤:

  1. 为每个像素点选择一个初始的搜索窗口
  2. 计算窗口内所有像素点的特征均值,并将窗口中心移动到该均值位置(mean shift)
    mean shift更新步骤:
    1. 找到所有的mean shift方向
    2. 四处移动,找到鞍点和高地
    3. 取梯度改变最大的方向
  3. 重复上一步,直到窗口中心不再变化或达到最大迭代次数,此时窗口中心被认为是模态(局部密度最大的点)
  4. 对所有像素点进行上述过程,得到一系列模态,并将收敛到同一个模态的像素点划分为同一个聚类

遇到鞍点?在鞍点周围四处移动,检测是否有梯度增加的方向。
理论上需要无限步数,因此需要设定一个下界。

优缺点:

  • 优点

    • 不需要指定k
    • 可以处理任意形状的簇类
    • 只需要设定窗口大小一个参数
    • 算法稳定,不需要进行k-means算法那样的初始化
  • 缺点

    • 聚类结果取决于窗口大小。窗口太小,收敛慢,簇类数量过多;窗口太大,可能丢失一些簇类。
    • 对较大的特征空间,计算量较大

最小图割

图的割是将图的各个顶点分成互不相连的两个子集
权重图:边代表两个点之间的相似度。值越小相似度越小,在距离上相隔越远。

最小割:寻找一组最小切割,使得分割后的两部分点之间的边的权重之和最小。也是标准化切割,有偏差。通常可以用图割算法来计算。
缺点:容易分割离群点

图像匹配

尺度变换:对图像进行均匀的放缩
旋转变换:使图像围绕某个点旋转,图像的方向发生改变,但不改变图像的大小和形状

角点检测算法

确定关键点的位置和对应局部区域的大小

Harris

角点:在角点上,向任何一个方向移动窗口,都会产生灰度的较大变化
平坦区域:任意方向灰度均无变化
边缘:沿边缘方向,灰度无变化

  • 基本原理:利用移动的窗口在图像中计算灰度变化值
  • 基于图像灰度,通过计算点的曲率以及梯度(计算局部极值)来检测角点。
  • 通过灰度变化判断/检测角点(如上判断准则)

Harris角点检测子的性质:旋转不变,尺度会变 | Harris检测算子检测到的特征点取决于所选的窗的大小(这是因为它是通过窗口来观察的嘛

Moravec

  • 利用灰度方差提取点特征
  • 该算法将角点定义为具有低“自相关性”的点

原理:检测图像的每一个像素:
将像素周边的一个领域作为一个patch,并检测这个patch和周围其他patch的相关性(用SSD描述)

  • SSD很小:像素位于平滑图像区域内
  • 某一个方向SSD很小,其他方向存在很大差异:像素在边缘上
  • 所有方向SSD都很大:像素是各个方向上都有变化的特征点

步骤:

  1. 对每个像素,计算其四个方向上的灰度方差
  2. 选取四个方向上的最小值作为对应像素点的兴趣值(兴趣值越大,说明该点越可能是角点)。
  3. 设定一个阈值T,对兴趣值大于T的像素点进行局部非极大值抑制(在一个领域内只保留兴趣值最大的像素点,其他像素点都置为0)
  4. 最后得到的非零像素点为角点

Susan算法

基于灰度方差

对于图内的每一个像素,都用一个圆心模板四处滑动,根据模板内黑色部分的面积来判断

  • 若是模板全黑:边缘线内
  • 1/2 黑:边缘线边缘
  • 1/4 黑:角点
    怎么判断是黑色?中心点与模板内其他点的灰度差,差值小于某个阈值的就为黑(called同质-同质的点组成的区域叫最小同质核)

需要进行局部非极大值抑制 | 阈值敏感:不能很好处理尺度&旋转变换

局部区域描述/特征提取

将图像局部区域像素信号变换为固定维度的特征向量

SIFT:尺度不变特征变换

基于尺度空间的特征提取算法

实质:在不同尺度空间上查找特征点(关键点)的问题

  1. 关键点检测

    • 相关概念:高斯核 | 高斯模糊 | 高斯金字塔 | DOG
  2. 对关键点附加详细的信息(局部特征)--关键点描述
    对关键点周围图像区域分块,将区域内坐标移至关键点主方向,在区域内对每个像素点求其梯度幅值和方向,然后对每个梯度幅值乘以高斯权重参数,生成方向直方图。然后计算区域内各个方向的梯度方向直方图,生成具有独特性的向量。

  3. 通过两方特征点(原图像和目标图像)两两比较找出相互匹配的若干对特征点。(欧式距离判断 | 穷举/kd树)

  4. 消除错配点-RANSAC

SURF

与SIFT类似,但计算量小,运算速度快,提取的特征点几乎与SIFT相同
采用积分图像、Haar小波变换

算法步骤(类SIFT)

霍夫变换

应用:从边缘检测的结果得到直线拟合的结果
基本思想:基于投票的机制
◼ 视待检测形状为一个模型(model)
◼ 让每个样本(像素)对所有与其兼容的模型进行投票
◼ 假设噪声样本不会偏好任何单个模型
◼ 即使有部分样别缺失,当有足够的样本保留时,仍可将目标模型 (形状)检测出来

参数空间的一条直线对应图像空间的一个点
图像空间中同一条直线上的任意两个点,在参数空间中对应于两条相交的直线
即在图像空间共线的𝑛个点,对应于参数空间𝑛条共点(𝑝0, 𝑞0)的 直线

模式识别

模式识别算法要达成的功能:
Pasted image 20230625225748.png转存失败,建议直接上传图片文件

模式识别的步骤:

  1. 数据采集
    特征表达:将数据转换为计算机可以处理的数值向量

    • 全局方法 :PCA | LDA
  2. 图像预处理

    • 去噪
    • 滤波
    • 二值化处理
    • 边缘检测
    • 腐蚀、膨胀
  3. 特征提取和选择:选取对分类最有效的优先的特征,降低模式识别过程的计算复杂度。

    • 特征选择是从已有的特征中选择一些特征,抛掉其他特征
    • 特征提取是对原始的高维特征映射变换,生成一组维数更少的特征。
  4. 分类器设计(制定分类的规则):

    1. 构建学习模型:如支持向量机(SVM)、Boosting、神经网络

    2. 学习

    • 有监督学习-需要训练数据

    • 无监督学习-不需要训练数据,但是聚类之后要对结果进行解释

    1. 根据特征把对象划分为若干类别
  5. 后处理:对聚类结果进行优化或修正
    包含错误概率检测