目录
未有深度学习之前
1 图像分割
所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,“而在不同区域间呈现出明显的差异性。
经典的数字图像分割算法一般是基于灰度值的两个基本特性之一∶不连续性和相似性。
2 传统图像分割的方法
2.1基于阈值的分割方法
阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。
2.2基于边缘的分割方法
所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。
2.3基于区域的分割方法
此类方法是将图像按照相似性准则分成不同的区域,主要包括种子区域生长法、区域分裂合并法和分水岭法等几种类型。
2.4基于图论的分割方法
此类方法把图像分割问题与图的最小割(min cut)问题相关联。首先将图像映射为带权无向图,图中每个节点对应于图像中的每个像素,每条边的权值表示了相邻像素之间在灰度、颜色或纹理方面的非负相似度。
3 Graph Cuts分割
如果一个割,它的边的所有权值之和最小,那么这个就称为最小割,也就是图割的结果。
先取两个种子点;然后我们建立一个图,图中边的粗细表示对应权值的大小;然后找到权值和最小的边的组合;完成图像分割的功能。
只要在目标外面画一个框,把目标框柱,它就可以完成良好的分割
如果增加额外的用户交互(由用户指定一些像素属于目标),那么效果就可以更完美。
3.1前景/背景的颜色模型
假定前景和背景为高斯混合模型(GMM);对于每个像素,要么来自于目标GMM的某个高斯分量,要么就来自于背景GMM的某个高斯分量;用边界项来体现邻域像素之间不连续的惩罚,如果两邻域像素差别很小,那么它属于同一个目标或者同一背景的可能性就很大,反之则可能是边缘;通过K-means算法迭代获得。
4 GMM
两组点分别通过两个不同的正态分布随机生成而来。如果没有GMM,那么只能用一个的二维高斯分布来描述。显然,这不太不合理。应该用两个不同参数的正态分布来描述
5 K-means
5.1 关于K-Means的几个问题
5.1.1 K值怎么定?
主要取决于经验,通常的做法是多尝试几个K值,看分成几类的结果更好解释,更符合分析目的等。
5.1.2 初始的K个质心怎么选?
最常用的方法是随机选,初始质心的选取对最终聚类结果有影响,因此算法一定要多执行几次,哪个结果更合理,就用哪个结果。有一些优化的方法,例如∶选择彼此距离最远的点。
5.1.3 K-Means会不会陷入一直选质心的过程?
不会,K-Means一定会收敛,大致思路是利用SSE的概念(也就是误差平方和),可证明这个函数是可以最终收敛的函数。
6 物理分割(Object Segmentation)
6.1 GrabCut分割
6.1.1 迭代进行GraphCuts
- 优化前景和背景的颜色模型
- 能量随着不断迭代变小
- 分割结果越来越好
6.1.2 算法流程
- 使用标记初始化颜色模型(K=5)
- 迭代进行GraphCut
7 人脸检测
7.1 Haar-like特征
特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形内的像素和减去黑色矩形内的像素和
同一个像素如果被包含在不同的Haar-like的特征模板中,会被重复计算多次。积分图是根据四个角点就能计算区域内的像素之和的方法。
Haar-like模板可表示出人脸的某些特征。例如:中间一副表示眼睛区域的颜色比脸颊区域的颜色深;右边一副表示鼻梁两侧比鼻梁的颜色要深。
7.2 Haar-like特征的数量
要选多少个Haar-like特征?
不同的模板;不同的位置;不同的缩放;总之,非常多
7.3 Haar级联分类器
Adaboost是一种基于级联分类模型的分类器;级联分类器就是将多个强分类器连接在一起进行操作。每一个强分类器都由若干个弱分类器加权组成。
7.4 Boosting分类器示意
7.5 弱分类器和强分类器
弱分类器,就是在这海量的特征中选取一个特征,用这个特征能够区分出人脸or非人脸,且错误率最低。
一个弱学习器的要求仅仅是∶它能够以稍低于50%的错误率来区分人脸和非人脸图像;训练一个弱分类器就是在当前权重分布的情况下,确定f的最优阈值,使得这个弱分类器对所有训练样本的分类误差最低。最后将每轮得到的最佳弱分类器按照一定方法提升(Boosting)为强分类器。
7.6 级联分类器的检测机制
级联分类器中每一个强分类器都是对于"非人脸"(即负样本)更敏感,使得每次被强分类器拒绝的,都几乎一定不是人脸。经过所有强分类器考验的,才是"人脸"。 一幅图像中待检测的区域很多都是负样本,只有正样本才会送到下一个强分类器进行再次检验。这样由级联分类器在分类器的初期就抛弃了很多负样本的复杂检测。所以,级联分类器的速度是非常快的。
8 行人检测
8.1 梯度
梯度是一个矢量
Gx是沿x方向上的梯度,Gy是沿y方向上的梯度,梯度的幅值及方向角可表示如下:
一维离散微分模板在将图像的梯度信息简单、快速且有效地计算出来,其公式如下:
8.2 HOG
8.2.1 对比度归一化
梯度幅值绝对值的大小容易受到前景与背景对比度及局部光照的影响,要减少这种影响,还必须对局部细胞单元进行对比度归一化处理。
对比归一化办法是:把各个细胞单元组合成大的、空间上连通的区间bolock,再归一。这样,HOG描述符就变成了由各区间所有细胞单元的直方图成分所组成的一个向量。这些区间是互有重叠的,这就意味着:每一个细胞单元的输出都多次作用于最终的描述器。
8.2.3 HOG的步骤
将整个图像进行Gamma空间、颜色归一化->计算图像梯度->构建方向的直方图->将细胞单元组合成大的区间->收集HOG特征
8.3 SVM基本模型
支持向量机基本模型是针对线性可分情况下的最优分界面提出的。在这一条件下,正类和反类训练样本可用超平面完全正确地分开。满足上述条件的分界面就是最优分界面,经过两类样本中距离最优分类面最近的点,且平行于最优分界面的超平面H1,H2(边界超平面)上的训练样本称为支持向量,即图中带圈的点。
8.3.1 带约束条件的极值问题
根据最近距离之和最大以及正确分离两类样本这两个条件,可以构造约束极值问题:见下式:
通过拉格朗日乘数法并引入拉格朗日乘数,该约束极值问题就可以转化成一个求解较为简单的对偶问题,通过寻求该对偶问题的最优解,就可以得到原问题的最优解。
8.4 DPM
该模型包含了一个88分辨率的根滤波器(Root filter)(左)。和44分辨率的组件滤波器(Part filter)(中)。右图为其高斯滤波后的2倍空间模型。
8.4.1 自行车的DPM
左:自行车整体模型的HOG;
中:使用了6个子模型,白色矩形框出来的区域就是一个子模型;
右:偏移Cost,圆圈中心就是子模型的理性位置,偏离的越远Cost越大。
8.5 DPM检测流程
- 对于任意一张输入图像,提取其DPM特征图,然后将原始图像进行高斯金字塔上采样,然后提取其DPM特征图。
- 对于原始图像的DPM特征图和训练好的Root filter做卷积操作,从而得到Root filter的响应图。
- 对于2倍图像的DPM特征图,和训练好的Part filter做卷积操作,从而得到Part filter的响应图。
- 然后对其精细高斯金字塔的下采样操作,这样Rootfilter的响应图和Part filter的响应图就具有相同的分辨率了。
- 然后将其进行加权平均,得到最终的响应图。亮度越大表示响应值越大。