最近准备做遥感图像处理,之前完全没有基础【捂脸】
师兄推荐我看这本书,做一做读书笔记帮助自己捋一捋思路吧
【参考文献】:高分辨率遥感图像理解.孙显等 科学出版社||统计学习方法.李航 清华大学出版社
【简介】:第二章 特征信息表达主要介绍的是一些对图像处理的概论算法;第三章 统计学习模型主要介绍的是一些模型;第四章开始是遥感图像处理算法的实例,所以主要是对第四章开始仔细做笔记。因为之前真的没有基础。。。所以只能对这些方法产生一些感性的认识,梳理个大体意思,以后用到再钻研吧。
【正文】
精细化目标检测包括:遥感图像前背景分割,精细化遥感目标分割,精细化遥感目标识别三个步骤。本节主要涉及第一个步骤——
图像前背景分割基本上是一个图像像素标号分类问题,简单的来说就是把前景目标像素标识为1,背景标识为0的过程。
本书主要介绍了两种分割算法:基于图割模型的交互式分割(需要人工标注少量种子点)以及基于高斯混合模型的自动分割(不需要人工标注)
1、基于图割模型的遥感图像交互式分割
主要思想是通过用户来对图像背景和目标做统一标记,再对其他像素根据其与object和background两类像素的相似度决定归属于哪一类,最后得到二值图像。此种方法的学习需要首先理解几个基础概念:
【贝叶斯模型】
公式中,事件Bi的概率为P(Bi),事件Bi已发生条件下事件A的概率为P(A│Bi),事件A发生条件下事件Bi的概率为P(Bi│A)。
贝叶斯理论中常见的术语:
Pr(A)是A的先验概率或边缘概率。之所以称为"先验"是因为它不考虑任何B方面的因素。
Pr(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。
Pr(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。
Pr(B)是B的先验概率或边缘概率,也作标准化常量(normalized constant)
参考来源:http://blog.csdn.net/u014791046/article/details/50053367
【交互式图像分割】
操作方式是用鼠标在图像中标出少量目标和背景种子点,分割操作的时候将目标种子像素集合记为I_obj,背景像素集合记为I_bck,分别构建目标和背景的模型M(I_obj)和M(I_bck)。
建立全局标记场W*最大化一个后验概率 W* = argmax P(W|I),其中
Di为该点单元势能,也就是分为不同种类时(把点标记为Wi)的损失,主要计算方法是邻域N(i)内特征的统计模型和M(Wi)之间的某种距离。Vij相邻位置i,j的能量,平滑项,用于惩罚不连续的标记。λ表示平滑项的权重
Di一般只在N(i)中计算,Vij也只涉及相邻位置i,j,将上式简化为
也就是求E1的最小化能量,以及平滑项能量最小,获取分割最优解。
【texton特征】
纹理分类的一大类方法是基于texton的方法,具体的方法是先提取特征点的局部特征,然后聚类形成texton;之后对于每幅图求出统计直方图作为最后的特征,之后用knn或者svm分类。
texton方法中,经常采用一组不同类型、方向、尺度的滤波器与图像做卷积获得纹理特征。每个点对不同滤波器的滤波相应连接在一起组成一个多维的特征向量。
【fisher判别方法】
在应用多元统计方法解决分类问题时,问题之一就是维数问题。在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通。因此,降低维数有时就成为处理实际问题的关键。
可以考虑把d维空间的样本投影到一条直线上,形成一维空间,这在数学上是容易办到的。然而,即使样本在d维空间里形成若干紧凑的相互分得开的集群,若把它们投影到一条任意的直线上,也可能使几类样本混在一起而变得无法识别。但在一般情况下,总可以找到某个方向,使在这个方向的直线上,样本的投影能分开得最好。问题是如何根据实际情况找到这条最好的、最易于分类的投影线。这就是Fisher法则所要解决的基本问题。
Fisher法则是基于方差分析的思想建立的线性分类方法。意义在于若两类样本在该特征上的响应均值差别较大、散步程度较小则更适合于分类。最大相应特征通常拥有较大信息量,fisher准则选取出来的特征通常具有较好的区分能力。
【前/背景统计模型】
为了获得目标和背景的统计模型,可以对特征向量进行k-means聚类,聚类中心就相当于纹理基元(Texton),一个好的K值选择应该能把I_obj和I_bck中的点分到不同聚类中。
随后对于每个聚类依次赋值1~K,将图像I的每个像素标记为特征向量对应的聚类号,则I被映射到K值的标记图I_texton上。将I_texton中的目标和种子点的直方图作为前/背景统计模型。
【基于图割模型的交互式分割方法】
可以看到截至目前,已经建立了前景和背景的先验统计模型。接下来就是对整个图像区域进行逐个像素分类,以最大化后验概率。
【图像分割模型】
利用后验概率公式——①建立图像的分割模型。Di为单元势能,定义为邻域N(i)内特征的统计模型和M(Wi)之间的某种距离。用I_texton在邻域M(Wi)内的直方图表示邻域内的统计特征,则Di就是M(Wi)和hist(M(Wi))。
为了获得最优分割,需要最小化全局能量公式①。对于此公式的求解可以利用图割模型求最小割。这是一个迭代过程,获得初始分割结果后,可以重新选取种子点,对分割结果进行再编辑,从而更新Di,再求最小割以显著改善分割结果。
2、基于高斯混合模型的遥感图像目标自动分割
该方法首先自动寻找目标存在的候选位置,然后利用图像局部GMM模型和平滑性先验建立分割代价函数,并基于待处理图像的局部彩色GMM模型估计,完成目标前景和背景的分离;同时还可以根据候选区域轮廓提取出目标的外形特征,进一步验证候选位置是否存在目标。
【高斯混合分布模型GMM】
GMM是一种较常使用的先验模型。简单地说,任意形状的概率分布都可以用多个高斯分布去近似。
对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状,其中一个峰对应于目标,另一个峰对应于背景的中心灰度。对于复杂的图像,尤其是医学图像,一般是多峰的。通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。
混合高斯模型(GMM)就是指对样本的概率密度分布进行估计,而估计采用的模型(训练模型)是几个高斯模型的加权和(具体是几个要在模型训练前建立好)。每个高斯模型就代表了一个类(一个Cluster)。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。
一般用来做参数估计的时候,我们都是通过对待求变量进行求导来求极值,在上式中,log函数中又有求和,你想用求导的方法算的话方程组将会非常复杂,没有闭合解。可以采用的求解方法是EM算法
参考来源:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html
【连通域】
连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域
【局部色彩的GMM模型构建】
统计待处理图像的灰度和色彩特征,采用连通域分割方法获取所有可能存在目标的L个候选区域,对候选区域根据目标特性,在其周围扩展一定像素宽度得到图像I,则I =(z1....zn),其中zi为像素i的色彩RGB向量。
为了得到目标区域的轮廓信息,对于区域采用基于分割能量函数最小化的算法对每个像素赋予标记ai∈{目标(=1),非目标(=0)},得到标记图像A=(a1....an),其中标记为1的所有像素集合为前景目标,余下标记为0 的为背景非目标集合
1)前背景的色彩GMM模型
实际上得到高斯混合分布的后验模型,也就是权重参数不同的k个高斯分布之和
其中前景和背景色彩模型参数分别为α为0/1时,k个高斯分布的π、μ、协方差矩阵取值。为了得到前景和背景区域GMM的初始参数,使用二叉树颜色聚类算法得到GMM的初始参数,然后特征向量函数把集合分成两个叶节点,随后根据协方差矩阵特征值挑选下一个待分类的集合,循环直至所有像素被分裂为K个集合为止。
最后每个集合对应一个单一的高斯分布,这个单一高斯分布的参数由集合内像素颜色值统计得到,高斯分布权重为区域像素数占图像总像素数的比例。
2)分割能量函数
根据贝叶斯理论,对图像I进行二元分割的过程本质上是对后验概率P(A| I)的最大化的过程,A为标记图像,即寻求标记图像A*:A* =argmax{P(A| I)}
基于前面高斯混合模型的描述,定义分割代价函数:E(A_l) =E1(A_l) + λE2(A_l);其中A_l为分割得到的结果,标记图像;E1(A_l)为一阶势能函数,为单点像素的能量函数,
E2(A_l)为二阶势能函数,为相邻像素之间的能量函数,为了分割出的区域更加连续完整,为平滑项
【图割模型】
无向图的割:去掉一些边使原图不再连通,使去掉的边最少(代价函数最小)的问题即为图的最小割问题。(连通:从v_i到v_j有路径;连通图:任意两点有路径;强连通图:任意两点来去都有路径)
Graph cuts是一种十分有用和流行的能量优化算法,图论中的图(graph):一个图G定义为一个有序对(V,G),记为G=(V,G),其中(1) V是一个非空集合,称为顶点集,其元素称为顶点;(2) E是由V中的点组成的无序点对构成的集合,称为边集,其元素称为边。
此处的Graph和普通的Graph稍有不同。
普通的图由顶点和边构成,如果边的有方向的,这样的图被则称为有向图,否则为无向图,且边是有权值的,不同的边可以有不同的权值,分别代表不同的物理意义。
Graph Cuts是在普通图的基础上多了2个顶点,这2个顶点分别用符号”S”和”T”表示,统称为终端顶点。其它所有的顶点都必须和这2个顶点相连形成边集合中的一部分。所以Graph Cuts中有两种顶点,也有两种边。
第一种顶点和边是:第一种普通顶点对应于图像中的每个像素。每两个邻域顶点(对应于图像中每两个邻域像素)的连接就是一条边。这种边也叫n-links。
第二种顶点和边是:除图像像素外,还有另外两个终端顶点,叫S和T。每个普通顶点和这2个终端顶点之间都有连接,组成第二种边。这种边也叫t-links。
Graph Cut中的Cut是指这样一个边的集合,很显然这些边集合包括了上面2种边,该集合中所有边的断开会导致残留“S”和“T”图的分开,所以就称为“割”。如果一个割,它的边的所有权值之和最小,那么这个就称为最小割,也就是图割的结果。
最大流量最小割算法就可以用来获得s-t图的最小割,这个最小割把图的顶点划分为两个不相交的子集S和T,其中s ∈S,t∈ T和S∪T=V 。
t-link的权重由颜色能量项E1(A_1)来设置,代表像素属于0/1的d概率,n-link全总根据平滑项E2(A_1)来设置。
使用图割方法将能量函数最小化之后,得到新的前景背景结果,在进行下一次能量函数最小化之前,需要从新图像中重新估计GMM模型参数。用EM算法求解,也是一个最大似然参数估计问题。
【EM算法】
在统计学中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。
可以有一些比较形象的比喻说法把这个算法讲清楚。比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,然后观察是否一样多,把比较多的那一份取出一点放到另一个碗中,这个过程一直迭代地执行下去,直到大家看不出两个碗所容纳的菜有什么分量上的不同为止。
EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。
主要包括三个步骤
1、明确隐变量以及完全数据的对数似然函数
2、E步:确定Q函数(函数在Y和当前参数A_i的情况下对隐变量Z的条件概率分布P(Z|Y,A_i)的期望为Q函数)Q(A,A_i) =E [ log P(Z|Y,A) | Y, A_i]
3、M步:求解Q对A的极大值,即A_(i+1) =argmax( Q(A,A_i) )
【GMM模型的EM算法】
输入:观测值y1...y以及高斯混合分布模型 输出:模型参数
1、取初始值(对结果影响很大)开始迭代。
2、E步:计算k模型对观测数据yi的响应度
3、计算新一轮模型参数
4、重复2/3步直到收敛