腐蚀:
与膨胀刚好相反的操作,即求局部最小值的操作,效果是使图像中的高亮(A)区域逐渐减小。如下图所示:
开运算:
其实就是先腐蚀后膨胀的过程,开运算可以用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
闭运算:
其实就是先膨胀后腐蚀的过程,闭运算能够排除小型孔洞。
Tip:
形态学操作的特点是可以处理一些边缘毛刺,小孔洞的情况,而且不像滤波操作一样会带来边缘模糊,很适用于二值图,因此将其应用于处理掩码数据最后的一环!
3. denseCRF
CRF,全称Conditional Random Field,它的形式如下所示:
上式表明,CRF在建模的时候需要计算联合概率,对于掩码图像应用中,Y指的是像素点归属的类别,即所求;X指的是具体像素,为已知变量。
最简单的情况下,通过提取某个像素的特征,得到x,可以通过上式得到该点的类别。但是对于实际图像而言,某个像素的类别会与其他像素点的类别相关联,将计算某个像素点类别与所有其他像素点类别关联在一起,可以得到一个非常庞大复杂的无向图,这种处理方式称之为denseCRF。
在denseCRF中,有
式中,E(X)为能量函数,由于可能为负,所以不能直接作为联合概率函数,而将其作为e的幂。
能量函数第一项代表该点自身的特征,第二项代表与其他点的关联,第二项具体公式如下:
首先是,这一项被称作label compatibility项,简单来说这里约束了“力”传导的条件,只有相同label条件下,能量才可以相互传导。具体来说,“一个像素可能是飞机”的能量可以和“另一个像素可能是飞机”的能量相互传导,从而增加或者减少后者“可能是飞机”的能量,从而影响“可能是飞机”的概率,而“一个像素可能是飞机”的能量是不能影响“另一个像素是人”的概率的。
这一项以特征的形式表示了不同像素之前的“亲密度”。上面的公式中,第一项被称作appearance kernel,第二项被称作smooth kernel。
appearance kernel里面的p表示像素的位置——position,我们的图像是2维的,那么position就有2维。I表示图像的像素值——Intensity,我们的图像是彩色的,那么Intensity就有3维。分式下面的两个参数无论从位置还是长相都像高斯分布中的方差,这里的含义也差不多的。
于是乎我们可以看出,如果两个像素距离近且颜色近,那么这个feature特征就会很强,反之则不强。同时分母也控制了强弱性,分母越大越难强起来。其实这一项和图像处理中的bilateral filter很像。我们相当于在一个5维的空间内寻找相近的像素对并给予它们的特征加强。
直接根据定义求解像素类别的条件概率显然是不现实的,因此引入Mean field variational inference,即引入一个简单的模型去逼近这个复杂的模型,两个模型的距离衡量采用KL散度进行,并利用拉格朗日乘子法求解极值,最终得到简单的模型,里面的推导过程较为复杂,详见:链接
Tips:
denseCRF实质上也是像素级别的类别判断,因此边缘有时会出现波动,因此可以在结果上做一次形态学的开闭运算。