一、2D Shape Context
形状上下文特征多用于形状匹配和目标识别,它采用一种基于形状轮廓的特征描述方法,其在对数极坐标系下利用直方图描述形状特征能够很好地反映轮廓上下采样点的分布情况。形状上下文特征的基本原理如下:
1.对于一个给定的形状,通过边缘检测算子(如Canny算子)获取轮廓边缘,对轮廓边缘采样将获得一组离散的点集P = {p1, p2, p3, ..., pn};
2.计算形状上下文,以其中任意一点pi为参考点,在以pi为圆心、R为半径的局域内按对数距离间隔建立N个同心圆。将此区域沿圆周方向M等分,形成如下图所示的靶状模板,点pi到其他各点的向量相对位置简化为模板上各扇区内的点分布数,这些点的统计分布直方图hi(k)称为点pi的形状上下文。
采用对数距离分割可以使形状上下文描述子对邻近的采样点比远离点更加敏感下,强化局部特征,轮廓不同点处的形状上下文是不同,但相似轮廓的对应点处有相似的形状上下文:
对于整个点集P,分别以其n个点 p1, p2, p3, ..pn作参考点,依次计算与剩下的n-1个点构成的形状直方图,最终得到 n个形状直方图。以n*(n-1)大小的矩阵存储。这样,对于任一目标,可用n*(n-1)大小的矩阵表示其形状信息,n*(n-1)大小的矩阵就是点集P的形状上下文,它描述了整个轮廓形状的特征。采样点越多,形状表达也越精细,计算量也会成倍加大。
完成形状上下文的计算后,需要比较这连个目标上下文的相似度,从而得到相似与否的结论,形状上下文之间的相似度计算方法如下:
3.计算一个目标的形状直方图与另一目标的形状直方图之间的匹配代价,代价函数如下:
其中,hi(k)为目标P的点pi的形状直方图,hj(k)为目标Q的点pj的形状直方图,按照公式就可以得到两个目标之间的代价矩阵C,大小为n * n。
4.然后,基于计算到的代价矩阵C,进行点的匹配操作,使下式获得最小值:
经分析,上述点的匹配问题即为经典的双向图的匹配问题,利用匈牙利算法即可解决。该方法以一个非矢量的数值表示两个目标的相似度,由于是基于代价矩阵进行计算,所以结果越大表示越不想四,结果越小表示越相似。
优点:
充分利用上下文信息,在非刚性物体的匹配中,具有很好的鲁棒性。
缺点:
1.标准的形状上下文不能很好地解决物体内部的变形,后期改进的基于内部距离的形状上下文改善了一点;
2.对于有背景、噪声点过多的情况,匹配效果很不好。
二、3D Shape Context
3DSC是直接在2DSC上扩展而来,扩展为以点P为球心,R为半径的球区域,球的北极点由重建法线来估计。其中,与2Dsc类似,也存在不同大小的同心球,半径的计算方式为:
此时的采样点不再是计算梯度后的采样点,而是相对P点的距离,为了避免P点太近的点类似于噪声的干扰(即采样点太近,造成噪声的干扰影响程度更大),因此需要设置一个最小半径:
相对于2DSC中点数统计方式,3DSC增加了统计区域内点集的每个点不同的权重,其中权重的计算过程如下:
其中v(j, k, l)对应第j个同心球,第k个方位方向,第l个羊角方向区域对应的体积,反应了局部点的密度,即以P点为球心,a为半径的球体内的点数。