图像处理知识总结

传统图像处理部分

图像处理基础知识

彩色图像、灰度图像、二值图像和索引图像区别?

  • 彩色图像:RGB图像。
  • 灰度图像:0-255像素值。二值图像:0和1,用于掩膜图像。
  • 索引图像:在灰度图像中,自定义调色板,自定义输出256种颜色值。

常用的图像空间有哪些?

HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV色彩空间(颜色模型)

  • RGB颜色空间是算法处理中应用最多的颜色空间。
  • HSI颜色空间,色调(Hue)、色饱和度(Saturation或Chroma)和亮度(Intensity或Brightness)   HSV颜色空间,V(value)明度
  • YUV,(YCrCb):分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV 4:4:4采样,每一个Y对应一组UV分量。YUV 4:2:2采样,每两个Y共用一组UV分量。 YUV 4:2:0采样,每四个Y共用一组UV分量。

图像的像素数与分辨率有什么区别?

  • 像素数为图像实际组成的像素的个数,像素是没有固定宽度和高度的,是一个感光单元。
  • 分辨率的单位为 像素/英寸(1英寸(inch)=2.54厘米(cm)),这里指的不是面积,而是对角线的长度,即dpi、ppi。分辨率也称之为点密度,分辨率越高,看的越细腻。、

视频帧播放速度的单位?

PAL制式是——25fps,NTSC是——30fps。

图像预处理

图像增强:平滑--去噪,梯度--锐化

图像信息提取、检测:颜色、几何(边缘、点)、纹理、局部

叙述Gabor滤波器原理?

          使用一个三角函数(如正弦函数)与一个高斯函数叠加我们就得到了一个Gabor滤波器。Gabor滤波器可以抽取空间局部频度特征,是一种有效的纹理检测工具。

附:图像的空域是指二维座标系上的操作,频域指的是图像经过傅里叶变换后的频谱。在频率域中,高频分量表示图像中灰度变换比较快的那些地方,比如物体的边缘就是灰度的突然变化,所以物体边缘就是高频分量。而物体内部比较平坦的区域,灰度基本没有变化,对应的就是低频分量。比如低通滤波只让低频分量通过,往往就是使图像模糊,因为边缘信息被去除了。高频对应图像细节,低频对应图像大致轮廓。

椒盐噪声用什么滤波处理比较有效?

椒盐噪声:也称为脉冲噪声。在图像中,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。滤除椒盐噪声比较有效的方法是对信号进行中值滤波处理。

常用插值方法

  • 最近邻插值:
  • 双线性插值:
  • 立方卷积插值:

常用滤波器

均值滤波:均值滤波是一种线性低通滤波器,均值滤波是取领域像素值的平均作为该像素的新值。

中值滤波:中指滤波是一种非线性的平滑滤波器,中值滤波是将窗口内的所有像素值按大到小排序后,取中间值作为中心像素的新值。

最大最小值滤波:最大最小值滤波是一种比较保守的图像处理手段,与中值滤波类似,首先要排序周围像素和中心像素值,然后将中心像素值与最小和最大像素值比较,如果比最小值小,则替换中心像素为最小值,如果中心像素比最大值大,则替换中心像素为最大值。

高斯滤波:模拟人眼,关注中心区域,有效去除高斯噪声,离中心越远,感受精度越模糊。

机器学习部分

特征算子

常用边缘检测有哪些算子,各有什么特点和优缺点?

Prewitt算子     优点:一阶微分算子,平均滤波,对低噪声的图像有较好的检测效果。缺点:抗噪性差。

Sobel算子       优点:一阶微分算子,加权平均滤波,对低噪声的图像有较好的检测效果。缺点:抗噪性差。

Roberts算子    优点:一种利用局部差分算子寻找边缘的算子,定位比较精确。缺点:对噪声敏感,无法抑制噪声的影响。

Laplacian算子  优点:各向同性,二阶微分,精确定位边缘位置所在。缺点:无法感知边缘强度。只适用于无噪声图象。存在噪声情况下,使用Laplacian算子检测边缘之前需要先进行低通滤波。

Laplacian of Gaussian(LoG)算子:先对图像做高斯滤波,再做Laplacian算子检测。

Canny算子:一个具有滤波,增强,检测的多阶段的优化算子。先利用高斯平滑滤波器来平滑图像以除去噪声,采用一阶偏导的有限差分来计算梯度幅值和方向,然后再进行非极大值抑制。

SIFT/SURF LDA/PCA

SIFT/SURF为了实现不同图像中相同场景的匹配,主要包括4个步骤:

  • 1. 尺度空间的建立(之所以采用尺度空间,是为了应对尺度不变性);
  • 2. 特征点的提取;
  • 3. 利用特征点周围邻域的信息生成特征描述子;
  • 4. 特征点匹配。

SIFT具体步骤实现

1.生成高斯差分金字塔(DOG金字塔),尺度空间构建

  • 通过对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列
  • 对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测不同分辨率上的关键点提取等
  • 尺度空间构建的基础是DOG金字塔,DOG金字塔构建的基础是高斯金字塔

2.空间极值点检测(关键点的初步查探)

  •     为了寻找DOG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度空间域的相邻点大或者小
  •     在二维图像空间,中心点与它3*3邻域内的8个点做比较,在同一组内的尺度空间上,中心点和上下相邻的两层图像的2*9个点作比较,如此可以保证检测到的关键点在尺度空间和二维图像空间上都是局部极值点。

3.稳定关键点的精确定位

  • DOG值对噪声和边缘比较敏感,所以在第2步的尺度空间中检测到的局部极值点还要经过进一步的筛选,去除不稳定和错误检测出的极值点,另一点就是在构建高斯金字塔过程中采用了下采样的图像,在下采样图像中提取的极值点对应在原始图像中的确切位置,也是要在本步骤中解决的问题。

4.稳定关键点方向信息分配

  • 稳定的极值点是在不同尺度空间下提取的,这保证了关键点的尺度不变性。为关键点分配方向信息所要解决的问题是使得关键点对图像角度和旋转具有不变性。方向的分配是通过求每个极值点的梯度来实现的。
  • 分配给关键点的方向并不直接是关键点的梯度方向,而是按照一种梯度方向直方图的方式给出的。
  • 具体的方法是:计算以关键点为中心的邻域内所有点的梯度方向,当然梯度方向一定是在0~360°范围内,对这些梯度方向归一化到36个方向内,每个方向代表了10°的范围。然后累计落到每个方向内的关键点个数,以此生成梯度方向直方图。

5.关键点描述

  • 对关键点的描述是后续实现匹配的关键步骤,描述其实就是一种以数学方式定义关键的过程。描述子不但包含关键点,也包括关键点周围对其有贡献的邻域点。
  • 描述的思路是:对关键点周围像素区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象表述。
  • 如下图,对于2*2块,每块的所有像素点做高斯加权,每块最终取8个方向,即可以生成2*2*8维度的向量,以这2*2*8维向量作为中心关键点的数学描述。
  • David G.Lowed的实验结果表明:对每个关键点,采用4*4*8共128维向量的描述子进项关键点表征,综合效果最佳:

6.特征点匹配

特征点的匹配是通过计算两组特征点的128维的关键点的欧式距离实现的。欧式距离越小,则相似度越高,当欧式距离小于设定的阈值时,可以判定为匹配成功。

线性判别分析(LDA), 主成分分析(PCA)

        LDA和PCA最终的表现都是解一个矩阵特征值的问题,分类的目标是,使得类别内的点距离越近越好(集中),类别间的点越远越好。LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。

        LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。要说明白LDA,首先得弄明白线性分类器(Linear Classifier):因为LDA是一种线性分类器。对于K-分类的一个分类问题,会有K个线性函数 y = wx+b.

         当满足条件:对于所有的j,都有Yk > Yj,的时候,我们就说x属于类别k。对于每一个分类,都有一个公式去算一个分值,在所有的公式得到的分值中,找一个最大的,就是所属的分类了。

y = wx+b实际上就是一种投影,是将一个高维的点投影到一条高维的直线上,LDA最求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量的按类别区分开
 

       主成分分析(PCA)与LDA有着非常近似的意思,LDA的输入数据是带标签的,而PCA的输入数据是不带标签的,所以PCA是一种unsupervised learning。PCA更像是一个预处理的方法,它可以将原本的数据降低维度,而使得降低了维度的数据之间的方差最大。它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。

       通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构),与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分!

特征点匹配应用问题

如下图所示,请以准确快速实现配准为目标,设计算法,让两图中对应的特征点(至少一部分特征点)配准(即精准地地找出对应点之间对应的座标关系值)。

参考答案

之前是用角点检测,后来采用SIFT算子,Sift算法的实质是在不同的尺度空间上查找关键点(特征点),计算关键点的大小、方向、尺度信息,利用这些信息组成关键点对特征点进行描述的问题。

  •    1 生成高斯差分金字塔(DOG金字塔),尺度空间构建
  •    2 空间极值点检测(关键点的初步查探)
  •    3 稳定关键点的精确定位
  •    4 稳定关键点方向信息分配
  •    5 关键点描述(128维向量算子)
  •    6 特征点匹配(欧氏距离)
     

极值点邻域筛选

对于一般应用图像中,景物可能存在任意特征(如折线,弧形、亮度极值、色调等),请设计合适的算法,找到图像中可以作为明显特征点的灰度的极值点所在的邻域。以准确快速实现极值点邻域筛选为目标,设计算法。用流程图表达)。

参考答案:也使用shif特性

特征离散化的好处

  1. 增减特征较为方便,易于迭代。
  2. 离散化后运算速度快,存储方便。
  3. 对脏数据的鲁棒性较强。
  4. 离散化一定程度简化了模型,可以防止过拟合。

GMM的基本原理和应用

        高斯混合模型(Gaussian Mixture Model, GMM)将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。高斯混合模型(GMM,Gaussian mixture model)是建模最为成功的方法之一,同时GMM可以用在监控视频索引与检索。

用于动目标检测中的背景建模。

  • 混合高斯模型使用K(++基本为3到5个++) 个高斯模型来表征图像中各个像素点的特征。
  • 在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功则判定该点为背景点, 否则为前景点。
  • 通观整个高斯模型,他主要是有++方差++和++均值++两个参数决定,,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。
  • 由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。
  • 为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率
  • 为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。
     

分类算法

常用的分类器有哪些,并简述其原理?

线性分类器:Logistic回归  y=sigmoid(wx+b )2分类,softmax regression,对于logistic 回归的扩展,为多分类算法,应用梯度下降法找到最优解。

SVM:选定特征, SVM算法输出一个最优化的分隔超平面(分类面)。训练好的模型完全依赖于支持向量。

KNN:K最近邻,判断图像与各个类别的距离。

BPNN:全连接网络,计算量巨大

CNN:卷积神经网络,用神经网络训练模型

迁移学习,利用别人训练好的参数,自定义网络

logistic regression (LR)与线性回归(linear regression)的对比

LR的优化函数为似然函数,经典线性回归的优化函数为最小二乘。

LR将预测范围缩小到了[0,1],而经典线性回归的预测范围为整个实数。

LR与SVM的对比

相同:都是分类模型。都处理二分类。都可以添加正则项。

区别:LR是参数模型,SVM是非参数模型;

          LR采用logistical loss,SVM采用hinge loss;

         SVM之所以称之为支持向量,是因为SVM只考虑了与分类最相关的少数点来学习分类器。

KNN的K是如何选取的?

        K值较小意味着模型会越复杂,容易发生过拟合。K值过大会使模型过于简单,使得预测发生错误。实际使用中K一般取较小的数字。

什么是SVM?

       是一个二分分类器,找寻数据之间间隔最大的线性分类器。其学习策略是使分隔间隔最大化。对于线性可分的数据,SVM构造一个分隔面。对于线性不可分的数据,SVM采用核函数将低维空间的问题映射到了高维空间,从而线性可分。常用核函数有多项式核函数、高斯核函数、线性核函数。为了应对维度爆炸的情形,核函数事先在低维空间上进行计算,再将分类的实际效果展现在高维上。SVM的损失函数叫做Hinge(hɪndʒ) Loss,形式为max(0,1-y*a),y为真实值+-1,a为预测值,介于-1到1之间。

简述BP神经网络

BP(back propagation)神经网络,输入X,通过隐藏节点的非线性变换后,输出信号Y,通过误差分析,来调整隐藏节点的W和b。

AdaBoost的基本原理? 

AdaBoost是一个广泛使用的BOOSTING算法,其中训练集上依次训练弱分类器,每次下一个弱分类器是在训练样本的不同权重集合上训练。权重是由每个样本分类的难度确定的。分类的难度是通过分类器的输出估计的。 

聚类算法 

简述你熟悉的聚类算法并说明其优缺点?

K均值聚类(K-meansClustering)

将输入数据分到K个类中。K均值是通过循环更新类中心的初始估计值来实现的。优势是实现起来很简单,是并行化的。主要缺陷是,类的数目需要提前确定。

主要分三步:

  • 1. 随机选取k个聚类质心点(cluster centroids)
  • 2. 对于每一个样例i,计算其应该属于的类
  • 3. 对于每一个类j,重新计算该类的质心(每个类中所有数的平均值)
  • 1. 重复下面过程直到收敛

层次聚类

        层次聚类(或者叫做凝聚聚类)是另一个简单但是强大的聚类算法。其思想是基于成对距离建立一棵相似度树。该算法首先分组成为两个最近的对象(基于特征向量之间的距离),并且在一棵有着两个对象作为孩子的树中创建一个平均结点。然后在余下的结点中找到一个最近的pair,并且也包含任何平均节点,等等。在每一个结点,两个孩子之间的距离也会被存储。簇然后可以通过遍历这棵树并在距离比某个阈值小以至于决定聚类的大小的结点处停止来被提取出来。

层次聚类有几个优势。比如,树结构可以被用来可视化关系,并且显示簇是如何关联起来的。一个好的特征向量将得到树中好的分离。另一个优势是树可以在不同的簇阈值中被重用,而不需要重新计算树。缺点是需要选择一个阈值如果实际的簇需要的话。

谱聚类

         对于n个元素的相似度矩阵(或者叫affinity matrix, 有时也叫距离矩阵)是一个有着成对相似度分数的n*n矩阵。谱聚类的这个名称是从相似度矩阵构造的矩阵的谱的使用得来。这个矩阵的特征向量被用来降维,然后再聚类。

       谱聚类方法的其中一个优势是唯一的输入就是这个矩阵,并且可以被你可以想到的任何相似度度量构造出来。像K均值和层次聚类这样的方法计算特征向量的平均值,这个限制了特征(或者是描述符)对向量(为了能够计算平均值)。有了谱方法,不再需要任何类型的特征向量,只有“距离”或者“相似度”。

Mean Shift 聚类算法

  • 在未被标记的数据点中随机选择一个点作为中心center;
  • 找出离center距离在bandwidth之内的所有点,记做集合M,认为这些点属于簇c。同时,把这些求内点属于这个类的概率加1,这个参数将用于最后步骤的分类
  •  以center为中心点,计算从center开始到集合M中每个元素的向量,将这些向量相加,得到向量shift。
  • center = center+shift。即center沿着shift的方向移动,移动距离是||shift||。
  •  重复步骤2、3、4,直到shift的大小很小(就是迭代到收敛),记住此时的center。注意,这个迭代过程中遇到的点都应该归类到簇c。
  • 如果收敛时当前簇c的center与其它已经存在的簇c2中心的距离小于阈值,那么把c2和c合并。否则,把c作为新的聚类,增加1类。
  • 重复1、2、3、4、5直到所有的点都被标记访问。
  • 分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类。

     简单的说,mean shift就是沿着密度上升的方向寻找同属一个簇的数据点。
 

欧式距离和曼哈顿距离的区别

  • 欧式距离为最常见的2点之间的距离,为2点之间的直线距离。
  • 曼哈顿距离又称为L1距离或者城市区块距离,是两个点的1范数距离。

图像分割
Graph-cut的基本原理和应用?

         Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation)、立体视觉(stereo vision)、抠图(Image matting)等。利用图,将目标和背景进行分割。

图像融合,镶嵌

       已知两幅拼接好的图像,两幅图像在几何关系配准之后,但两图之间存在明显灰度差别跳变,请设计一个算法对图像进行处理,让两幅图之间的灰度看不出跳变,形成自然过渡。(可以不考虑两图之间的黑图部分)?

       答:影像融合是指高分辨率灰度图像和低分辨率彩色图像融合得到具有高分辨率的彩色图像。该算法称之为图像镶嵌。简单的做法可以是寻找两幅影像的镶嵌线,镶嵌线是指两幅影像公共区域区别最小的一条线,可以利用相关系数法判断得到,然后根据镶嵌线上两幅影像的灰度差异对右影像进行反差调整,最后拼接。
https://blog.csdn.net/QiangLi_strong/article/details/80760889

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章