随机步算法random walk
随机游走这一名称由Karl Pearson在1905年提出[Pearson, K. (1905). The problem of the Random Walk. Nature. 72, 294.],本来是基于物理中"布朗运动"相关的微观粒子的运动形成的一个模型,后来这一模型作为数理金融中的重要的假设,指的是证券价格的时间序列将呈现随机状态,不会表现出某种可观测或统计的确定趋势,即证券价格的变动是不可预测的。 随机步法random walk借鉴了物理学和数学中狄利克雷问题,弱扩散 2006年 pami上的一篇论文《Random Walks for Image Segmentation》关于RandomWalk的图像分割方法。 随机游走算法是一种基于图论的分割算法,属于一种交互式的图像分割。随机游走算法有matlab代码,并且在paython非常有名的scikit库中也用python语言实现了。 随机游走用了借鉴了物理学和数学中狄利克雷问题和热扩散理论(1828),虽然理论已经流传很久了,但是grady(《Random Walks for Image Segmentation》作者)第一次这个理论引入到图像分割中,借鉴物理学中研究的理论,
如空间放入一个热源点,随着时间褪尽整个场景会达到一种稳定的状态,在稳定的状态下,空间中的每个点捕获到了其他热源点的热源量,可以计算出每点热量。 所以随机步算法的分割思想是,以图像的像素为图的顶点,相邻像素之间的四邻域或八邻域关系为图的边,并根据像素属性及相邻像素之间特征的相似性定义图中各边的权值,以此构建网络图,然后由通过用户手工指定前景和背景标记,即前景物体和背景物体的种子像素,以边上的权重为转移概率,未标记像素节点为初始点,计算每个未标记节点首次到达各种子像素的概率,根据概率大小,划分未标记节点,得到最终分割结果。 RandomWalk图像分割算法分为三个步骤:
(1)图模型的建立;
(2)根据随机游走模型计算unseeded pixels到达目标区域的线性方程组;
(3)利用迭代法求解线性方程组,这里通常采用共轭梯度法进行求解(conjugate gradient)。
其求解过程可以用下图来描述:
随机步图割方法由于采用了最大图/最小割方法,其容易导致分割区域的收缩,因此其不适用于血管等图像的分割。
活动轮廓active contour
主动轮廓模型主要用于解决图像中目标物体的分割操作。理论上是可以解决二维乃至多维的情况,不过最初的模型是在二维图像上建立的。它给出一个初始的轮廓,按照算法随着时间的推移,会最终收敛到物体的边缘,理论上来说包括:
(1)几何活动轮廓,水平算法level-set algorithm(osher 1988)
理论上是给出一个初始曲线,随着时间推进,曲线总是在不同等高线下进行演化,最后收敛到一个指定目标区域了。演化从数学上,或者从算法上来说,给每一个像素点都要找到一个方向(法线),和速度(就是是否跑得快),这里的速度和梯度还有曲率相关。下面是推导公式:
这是从几何角度解释轮廓。
(2)参数活动轮廓,蛇形算法snake algorithm(kasset a1,1987)
这里是从参数角度来做图像分割,参数其实就是能量函数,能量函数就是一种内外力,内力定义轮廓在演变的过程中,要考虑到周围的轮廓点,随意演变会导致边缘曲线凹凸不平,同时要保持其平滑性。外力,就是曲线尽量向目标区域靠近。定义了能量函数求解,找到泛函极值。
传统语义场景解析的方法
图像语义分割可以说是图像理解的基石性技术,在自动驾驶系统(具体为街景识别与理解)、无人机应用(着陆点判断)以及穿戴式设备应用中举足轻重。我们都知道,图像是由许多像素(Pixel)组成,而「语义分割」顾名思义就是将像素按照图像中表达语义含义的不同进行分组(Grouping)/分割(Segmentation)。
2014年,来自UC Berkeley 的Trevor Darrell组提出了全连接的卷积神经网络,开启了卷积神经网络应用在语义分割的先河。由于用于图像分类和检测的卷积神经网络关注的是图像级,所以在卷积网络的后面会有全连接层,用于降低网络的维度,输出我们想要的分类信息和位置信息;但是语义分割关注的是图像的像素级(Pixel-level)。 而在fcnn出现之前传统的语义场景解析将近统治了这一领域10多年时间,比较早的就是03年开始,传统语义分割中微软的textonboost算法非常经典。 在图像语义分割中算法很多,但是非常相似,大同小异。 把场景解析描述成贝叶斯最大验概率估计问题,这样概率以能量表示就是最小化能量,这个问题包括两方面:
问题一.能量函数的定义
问题二.能连函数的优化和参数设置
大部分相关文章就这两部分,第一部分就是描述问题,用线索,特征,分类器,超像素等都有差异,不一样。引入的能量函数一般都是二阶,也有一部分是一阶的。在能量函数定义部分中局部数据项,以下图超像素分割为例:
提取图中建筑特征,算子就会很多,会组合7,80种,然后用分类器svm,随机森林等,分类器会分出它是属于哪一种的概率,这就是局部的数据项,也就是一阶函数,它只考虑自身,不考虑任何邻域的关系,邻域的平滑项是相似的邻域。如上图中建筑上的某一块区域它周围都是建筑部分,但是统计出来认为是天空的概率高,一旦加上邻域的平滑项,算出这块区域是建筑。 对能量函数的优化是个马尔科夫随机优化,求解策略有graphcut和bp等。参数设置方面包括经验值,权重和回归学习。