文章目录
- 前言
- 一、图像分割
- 1、传统图像分割
- (1)、基于阈值的分割方法
- (2)、基于边缘的分割方法
- (3)、基于区域的分割方法
- (4)、基于图论的分割方法
- 二、人脸检测
- 1、级联分类器
- (1)、Boosting 分类器
- 三、行人检测
- 1、梯度
- 2、HOG 方向梯度直方图
- (1)、梯度计算
- (2)、Block 拆分
- (3)、HOG计算流程
- 3、SVM
- 4、DPM 模型
前言
本文为8月20日计算机视觉理论学习笔记,分为三个章节:
- 图像分割;
- 人脸检测;
- 行人检测。
一、图像分割
1、传统图像分割
(1)、基于阈值的分割方法
基于图像的灰度特征计算灰度阈值,将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。
(2)、基于边缘的分割方法
边缘:图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理、等特性的突变。
(3)、基于区域的分割方法
将图像按照相似性准则分成不同的区域。
- 区域生长法: 定义了最大像素灰度值距离,当待加入像素点的灰度值和已经分割好的区域所有像素点的平均灰度值的差的绝对值不大于最大像素灰度值距离时,该像素点加入到已经分割道德区域。相反,则区域生长算法停止。
2. 分水岭算法: 将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓。
(4)、基于图论的分割方法
首先将图像映射为带权无向图,图中每个节点对应于图像中的每个像素。每条边的权值表示相邻像素之间在灰度、颜色或纹理方面的非负相似度。
- Graph Cuts:
- 第一种普通顶点对应于图像中的每个像素,每两个邻域顶点的连接就是一条边;
- 两外两个终端顶点为:S(source:前景),T(sink:背景)。每个普通顶点和这2个终端顶点之间都有连接,组成第二种边;
- Cuts 指这样一个边的集合,该集合中所有边的断开会导致残留S和T图的分开,即“割”;
- 如果一个割,它的边的所有权值之和最小,那么就称为最小割,即图割的结果。
E ( A ) = λ ⋅ R ( A ) + B ( A ) R ( A ) = ∑ p ∈ p R p ( A p ) B ( A ) = ∑ { p , q } ∈ N B { p , q } ⋅ δ ( A p , A q ) δ ( A p , A q ) = { 1 i f A p ≠ A q 0 o t h e r w i s e E(A) = \lambda \cdot R(A) + B(A)\\ R(A) = \sum_{p\in \mathbb{p} } R_p(A_p)\\ B(A) = \sum_{\{p, q\}\in \mathbb{N} } B_{\{p, q\}}\cdot \delta (A_p, A_q)\\ \delta (A_p, A_q) = \left\{\begin{matrix} 1 \quad if A_p \ne A_q \\ 0 \quad otherwise \end{matrix}\right. E(A)=λ⋅R(A)+B(A)R(A)=p∈p∑Rp(Ap)B(A)={p,q}∈N∑B{p,q}⋅δ(Ap,Aq)δ(Ap,Aq)={1ifAp=Aq0otherwise
其中, R ( A ) R(A) R(A) 为区域项, B ( A ) B(A) B(A)为边界项。
R R R 是像素 p p p 分配标签 l p l_p lp 的惩罚:
- 当像素 p p p 的灰度值是目标的概率大于是背景的概率,即 R P ( 1 ) R_P(1) RP(1) 小于 R P ( 0 ) R_P(0) RP(0),像素 p p p 更有可能属于目标,将 p p p 归类为目标就会使能量 R ( L ) R(L) R(L) 小;
- B B B 是像素 p p p 和 q q q 之间不连续的惩罚,如果 p p p 和 q q q 越相似, B B B 越大,若他们非常不同, B B B 接近于 0.
- Grab Cuts
用边界项体现邻域像素之间不连续的惩罚,如果两邻域像素差别很小,则属于同一个目标或同一背景的可能性很大,反之则可能是边缘。
-
K-means 算法流程:
- 选取 k 个类中心;
- 计算每个点与 k 个类中心的距离;
- 把数据点分配给距离最近的一个类中心;
- 计算新的类中心:对该类中所有点取均值;
- 迭代第 2 至第 4 步。
-
Grab Cuts 算法流程:
- 使用标记初始化颜色模型(K=5);
- 迭代进行 Graph Cut。
二、人脸检测
1、级联分类器
将多个强分类器连接在一起进行操作。每个强分类器都由若干个弱分类器加权组成。
- 检测机制: 一幅图像中待检测的区域很多都是负样本,只有正样本才会送到下一个强分类器进行再次检验。
(1)、Boosting 分类器
三、行人检测
1、梯度
▽ f ( x , y ) = [ G x , G y ] T = [ ∂ f ∂ x ∂ f ∂ y ] T \bigtriangledown f(x, y) = [G_x, G_y]^T = [\frac{\partial f}{\partial x} \frac{\partial f}{\partial y} ]^T ▽f(x,y)=[Gx,Gy]T=[∂x∂f∂y∂f]T
一组离散微分模板在将图像的梯度信息简单地计算出来:
{ G x ( x , y ) = H ( x + 1 , y ) − H ( x − 1 , y ) G y ( x , y ) = H ( x , y + 1 ) − H ( x , y − 1 ) \left\{\begin{matrix} G_x(x, y) = H(x+1, y) - H(x-1, y) \\ G_y(x, y) = H(x, y+1) - H(x, y-1) \end{matrix}\right. {Gx(x,y)=H(x+1,y)−H(x−1,y)Gy(x,y)=H(x,y+1)−H(x,y−1)
2、HOG 方向梯度直方图
(1)、梯度计算
- 分别计算水平、垂直梯度:
- 梯度幅值、方向分别为: s = s x 2 + s y 2 s = \sqrt[]{s_x^2 + s_y^2} s=sx2+sy2, θ = a r c t a n ( s y s x ) \theta =arctan(\frac{s_y}{s_x}) θ=arctan(sxsy);
- 对于彩色图,选取梯度幅值最大的通道。
(2)、Block 拆分
- Block:16×16,步长为8,50%重合;
- 包含 2×2 个 Cell;
- 每个 Cell 是 8×8.
(3)、HOG计算流程
-
计算 Cell 的梯度方向直方图:
- 9 个方向 bin (0-180);
- 积累梯度幅值;
- 位置高斯加权;
- 相邻 bin 使用线性插值。
-
串接所有 Block 直方图:
- 64×128 图片;
- 7×15 = 105 个 Block;
- 105×(2×2)×9 = 3780 维。
3. 对比归一度:把各个 Cell 组合成空间上连通的区间 block,再归一。
行人的 HOG 特征如下:
3、SVM
正类和反类训练样本可用超平面完全正确地分开。
- 约束极值问题:
m i n 1 2 ∣ ∣ w ∣ ∣ 2 s t . y i ( w ⋅ x i + b ) ≥ 1 min\ \frac{1}{2}||w||^2\\ st. \quad y_i(w\cdot x_i + b)\ge 1 min 21∣∣w∣∣2st.yi(w⋅xi+b)≥1
引入松弛变量 x x x 使得分类器在训练后仍可以存在一些错分样本,使得两类样本的间隔尽量大,同时使得错分的样本的松弛变量之和尽可能的小:
m i n 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i ξ i s t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i min\ \frac{1}{2}||w||^2 + C \sum_{i}\xi_i\\ st. \quad y_i(w\cdot x_i + b)\ge 1 - \xi_i min 21∣∣w∣∣2+Ci∑ξist.yi(w⋅xi+b)≥1−ξi
其中, x x x 为松弛变量, x i ≥ 0 x_i \ge 0 xi≥0, C C C 为大于零的折衷因子,调和间隔距离和错分样本数之间的关系。
4、DPM 模型
包含一个 8×8 分辨率的跟滤波器(Root filter左),4×4 分辨率的组件滤波器(Part filter 中)。