计算机视觉特征检测及应用
上QQ阅读APP看书,第一时间看更新

2.2 基于局部方向分布的角点定位

2.2.1 角点定位的基本原理

四种常见类型 (L、T、Y、X)的角点均可建模为两条或多条具有不同方向的直线的交点[31-32]。在本节中,这些构成角点的直线被定义为角点的支撑线,以角点为中心的圆形区域称为角点的支撑区域,支撑区域内支撑线上的像素被定义为角点的支撑像素。基于该角点模型,角点的定位问题可以简化为支撑线交点的拟合问题。

如图2-5所示,对于L形角点PL1L2为其两条支撑线,黑色圆点表示其支撑像素。在理想情况下,对于位于角点P支撑线上的支撑像素Xi,其方向线loi与角点P的一条支撑线方向一致,即loiPT=0。假设点P共有K个支撑像素,则可得到角点PK个线性约束:lo1PT=0,…,loiPT=0,…,loKPT=0。考虑到不同的支撑像素应具有不同的重要性,对各约束进行加权(权重函数WLXi)由2.3.4节中的式(2-15)给出),并整理成矩阵形式:

图2-5 角点模型

其中,

P =[x,y,1]T表示角点P的齐次坐标。利用最小线性二乘技术求解式(2-8), 即可获得角点的精确位置。

2.2.2 确定支撑像素

在利用式(2-6)拟合角点P的位置之前,必须首先确定角点P的支撑像素。根据支撑像素的定义,点XiP的支撑像素应满足下列3个条件:①点XiP的支撑区域内;②点Xi为边缘点(梯度幅值较大),这就需要进行图像二值化;③点PXi方向线的距离小于一定的阈值。

文献中已提出许多二值化方法,本节采用Chen[43]的自适应二值化算法(Wolf[44]认为它是最好的二值化算法),该算法利用局部均值和标准差自动地为某一位置选取合适的二值化阈值:

其中,mean和std分别为该位置局部区域内梯度幅值的均值和标准差; k为常数(一般取0.2~0.3)。

当某一局部区域变化过于平缓或者包含的边缘点过多时,直接采用式(2-9)进行二值化所得的边缘点容易过少或者过多。为克服这个问题,取另外两个阈值TlTh来限定二值化后所得的边缘点占总像素数的比例 (一般Tl取25%~30%,Th取10%~15%)。因此,最终的局部二值化阈值为:

2.2.3 权重计算

权值函数WLXi)和WDXi)类似,但考虑到距离角点太近的像素点的梯度方向不太稳定,为了减小它们对拟合角点位置时所产生的不稳定性,应分配较小的权重。因此,支撑像素点Xi到角点初始检测位置的距离d2的加权不再使用函数WP1Xi),而使用文献[34]中使用的权重函数:

它的形状如图2-6所示,显然该函数在中心附近具有较小的函数值。综上所述,可得到一个初始的权值函数WL1Xi):

图2-6 权重函数WP2

2.2.4 梯度均衡与权重计算

图2-7a是一幅模拟角点图像,图2-7b为其梯度幅值图,由于构成角点的两条边缘的对比度较大,低梯度边缘上的像素相对于高梯度边缘上的像素在角点拟合中的作用很小,导致角点的亚像素拟合位置很不稳定。为克服这种由对比度引起的不稳定问题,我们引入一个平滑函数fx)来进行梯度均衡以调节构成角点的边缘对比度(fx)的形状如图2-8所示):

图2-7 梯度均衡

a)角点图像 b)梯度幅值图 c)均衡梯度幅值图

记{XS}为角点的所有支撑像素,首先对{mag(XS)}的均值归一化,然后利用fx)进行均衡,均衡后的梯度幅值为:

图2-8 fx)的形状

式中,α为边缘最大对比度控制参数(一般可取1.5~2.0);β为常数。

通过利用式(2-14)对梯度进行均衡,所有像素的梯度被限定为不超过均值的α倍,能够有效解决高对比度边缘构成的角点位置拟合的不稳定问题(图2-7b、c为图2-7a在进行均衡处理前后对比)。梯度均衡后,加权函数WLXi)的形式为(利用magXi)代替式(2-12)中的mag(Xi)):

2.2.5 虚假角点识别

如果初始检测角点为虚假角点(附近只有一维结构存在),则“角点”的支撑像素定义的方向线将会趋向一致,式(2-7)中的矩阵A的任意两行近似线性相关,导致其解很不稳定,导致求解式(2-7)所得的角点位置与角点的初始检测位置的偏差很大,而对于真实角点这种偏差一般都很小,因此这种偏差为虚假角点的检测提供了一种有效的手段。实验表明利用角点的拟合位置与初始检测位置的偏差大小来进行虚假角点识别是十分有效的。