CV理论基础(四):未有深度学习之前——图像分割

计算机视觉理论基础(四)

  • 图像分割
    • 基于阈值
    • 基于边缘
    • 基于区域
      • 区域生长法
      • 分水岭法
    • 基于图论
      • Graph Cuts
      • Grab Cuts

图像分割

图像分割是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,使这些特征在同一区域内呈现出相似性,不同区域呈现差异性

基于阈值

  • 基本思想
    基于图像灰度特征计算一个或多个灰度阈值,将图像中每个像素灰度值与阈值相比较,最后将像素根据比较结果分到合适类别中。

  • 步骤
    设定灰度阈值T,将图像分成大于T的像素群和小于T的像素群

  • 关键
    确定合适的阈值

基于边缘

  • 基本思想
    确定图像中边缘像素——把像素连接在一起构成所需的区域边界
    CV理论基础(四):未有深度学习之前——图像分割_第1张图片

边缘是图像中两个不同区域边界线上连续像素点的集合

基于区域

  • 基本思想
    将图像按照相似性准则分成不同区域

区域生长法

  • 基本思想
    根据准则将像素或子区域聚合成更大区域。

  • 分割后的区域满足条件
    内部联通、互斥、各子集并集能构成全集

  • 区域生长条件
    根据像素灰度间的连续性而定义的一些相似性准则

  • 算法具体描述
    定义最大像素灰度值距离,加入像素点灰度值和已经分割好的区域所有像素点的平均灰度值差的绝对值不大于最大像素灰度值距离时,加入分割区域。反之,算法停止。
    CV理论基础(四):未有深度学习之前——图像分割_第2张图片

分水岭法

分水岭法是一种图像区域分割法

  • 基本思想
    将图像边缘转化成山脉,将均匀区域转化为山谷

  • 算法具体步骤
    彩色图像灰度化求梯度图——进行分水岭算法,求分段图像边缘线
    CV理论基础(四):未有深度学习之前——图像分割_第3张图片

基于图论

  • 基本思想
    把图像分割问题与图最小割问题相关联。
    将图像映射为带权无向图,图中每个节点对应于图像中每个像素,每条权值表示相邻像素之间在灰度、颜色或纹理的非负相似度。

  • 包括
    Graph Cuts 和 Grab Cuts

Graph Cuts

Cuts是一个边的集合,集合所有的边断开导致残留S和T图分开,称为割

  • 顶点和边
    普通顶点:对应图像每个像素,每两个领域像素连接是一条边
    终端顶点:S(source 前景)和T(sink 背景)每个普通顶点和终端顶点间连接组成第二种边
    CV理论基础(四):未有深度学习之前——图像分割_第4张图片

  • 基于能量的算法,具体定义
    求能量最小值
    E ( A ) = λ ⋅ R ( A ) + B ( A ) E(A)=\lambda \cdot R(A)+B(A) E(A)=λR(A)+B(A)
    λ \lambda λ作用:平衡
    CV理论基础(四):未有深度学习之前——图像分割_第5张图片
    R(A)为像素分配某一种标签,把可能复杂值相加 B(A)代表像素间是否相似

  • 点的归属
    使用 R p R_p Rp代表前景的可能性大还是北京的可能性大, K K K大数,代表绝对不可分割
    R p ( " o b j " ) = − l n P r ( I p ∣ O ) R_p("obj")=-lnPr(I_p|O) Rp("obj")=lnPr(IpO), R p ( " b k g " ) = − l n P r ( I p ∣ B ) R_p("bkg")=-lnPr(I_p|B) Rp("bkg")=lnPr(IpB)

edge weight(cost) for
{p,q} B p , q B_{p,q} Bp,q p , q ∈ N {p,q}\in N p,qN
{p,S} λ ⋅ R p ( " b k g " ) \lambda \cdot R_p("bkg") λRp("bkg") p ∈ P , p ∉ O ⋃ B p \in P,p \notin O \bigcup B pP,p/OB
K p ∈ O p \in O pO
0 p ∈ B p \in B pB
{p,T} λ ⋅ R p ( " o b j " ) \lambda \cdot R_p("obj") λRp("obj") p ∈ P , p ∉ O ⋃ B p \in P,p \notin O \bigcup B pP,p/OB
0 p ∈ O p \in O pO
K p ∈ B p \in B pB
  • 步骤
    (1)取两个种子点
    (2)建立一个图,边的粗细表示对应权值的大小
    (3)找到权值和最小边的组合
    (4)完成分割功能

CV理论基础(四):未有深度学习之前——图像分割_第6张图片

Grab Cuts

在目标外面画一个框,框住前景背景,经过一系列迭代的运算,完成良好的分割。颜色差异较小时,添加框后添加辅助线。

  • 前景/背景的颜色模型步骤:
    (1)假定前景和背景为高斯混合模型(GMM);
    (2)对于每个像素,要么来自于目标GMM的某个高斯分量,要么就来自于背景GMM的某个高斯分量;
    (3)边界项来体现邻域像素之间不连续的惩罚,如果两邻域像素差别很小,那么它属于同一个目标或者同一背景的可能性就很大,反之则可能是边缘;
    (4)通过K-means算法迭代获得。

  • 算法流程
    使用标记初始化颜色模型,取K为某值。
    迭代进行Graph Cut。优化前景和背景的颜色模型,能量随着不断迭代变小,分割结果越来越好。
    CV理论基础(四):未有深度学习之前——图像分割_第7张图片

  • 涉及概念
    (1)GMM:两组点分别通过两个不同的正态分布随机生成而来。如果没有GMM,只能用二维高斯分布/;两个参数不同的正态分布描述。
    CV理论基础(四):未有深度学习之前——图像分割_第8张图片
    (2)K-means算法:
    流程如下:
    ①选取k个类中心,首次随机选取
    ②计算每个点跟k个类中心的距离
    ③把数据点分配给距离最近的一个类中心
    ④计算新的类中心 → \to 对该类中所有点去均值
    ⑤重复②—④迭代过程,满足终止条件后终止迭代,终止条件为:不再有重新分配、最大迭代数、所有类中心移动小于某一值
    CV理论基础(四):未有深度学习之前——图像分割_第9张图片
    K值选择:多尝试
    初始K个质心:常用方法是随机选择彼此距离最远的点
    注:K-means不会现如一直选质心的过程,一定会收敛,大致思路是利用SSE的概念,即误差平方和,可证明函数是可以收敛的函数

你可能感兴趣的:(CV理论基础,计算机视觉,算法)