(映维网Nweon 2023年02月09日)特征检测和/或特征匹配是众多计算机视觉应用的重要组成。在检测特征的过程中,通常需要在图像或图像的一部分(感兴趣区域)中识别像素的特征分数。
像素的特征分数是其局部邻域中像素值的函数。它通常与像素的颜色有关。在一种情况下,特征分数是采用各种颜色的一个或多个数值,例如灰度颜色值、RGB(红、绿、蓝)颜色值。在另一种情况下,特征分数是从采用各种颜色的数值得出。
例如,可以首先处理原始图像(具有像素的原始值集)并将其转换为另一图像(具有新的像素特征分数集)。然后,可以进一步处理处理后的图像以识别特征,并且可以将识别的特征进一步细化到亚像素精度和/或用于提取它们的特征描述符。
传统上,暴力搜索方法通常遍历感兴趣区域中从一个边缘到另一个边缘的所有像素(例如从左到右和从上到下),从而检测局部特征。通常,感兴趣区域通常以特征点所在的特征候选为中心。
在名为“Spiral feature search”的专利申请中,微软介绍了一种改进的方法:通过以向外螺旋序列从其中心朝向其边界遍历感兴趣区域中的像素来识别特征点。
螺旋搜索从图像中感兴趣区域的中心开始,而这显著增加了在遍历整个区域之前找到特征的可能性。通常,特征出现的概率集中可以用正态分布来表征。值得注意的是,螺旋搜索的预期时间显著提高,而对于传统的暴力方法,无论特征出现的概率分布如何都需要相同的时间。
图2示出了特征探测器200。特征探测器200配置为以螺旋序列从感兴趣区域的中心向外到边缘遍历感兴趣区域中的像素。
在一个实施例中,特征查找器200包括候选特征查找器202、序列表204、序列生成器206和特征检查器208。候选特征查找器202被配置为识别特征点候选。在另一实施例中,候选特征发现器202同时配置为定义图像中的感兴趣区域。
例如,候选特征发现器202确定感兴趣区域的位置和尺寸,例如50×50或10×10。通常,感兴趣区域在每个宽度或高度维度中包括奇数个像素,所以感兴趣区域的中心点与中心像素重叠。
序列表204存储感兴趣区域中的多个像素的序列。序列生成器206配置为生成全螺旋序列以遍历感兴趣区域中的所有像素。特征检查器208配置为遍历感兴趣区域中的每个像素,检查其邻域中的特征分数,并确定其是否是局部特征(也称为局部特征点、特征点或特征)。对于所识别的特征点,其位置可以进一步细化到亚像素精度和/或其特征描述符可以被提取。
在一个实施例中,序列表204存储感兴趣区域中按其规范排序的多个像素点。在另一实施例中,采用欧几里德范数,即x2 y2,其中x和y分别对应于像素的x和y坐标)。在另一实施例中,采用最大范数。
图3A示出了在正方形晶格或x-y平面300中具有多个像素的感兴趣区域。每个黑点代表感兴趣区域中的一个像素。例如,(0,0)处的像素与感兴趣区域的中心点重叠(又称为中心像素)。像素旁边的每个数字表示其平方范数。对于其他示例,(0,1)处的像素具有1(=02 12),(1,1)的像素具有2(=12 12)、(2,1)上的像素具有5(=22 12)等等。这样,在x-y平面300中计算每个像素的平方范数。
值得注意的是,x-y平面300的每个象限中的像素关于轴和对角线(例如,线y=0、x=0、y=x和/或y=−x)对称。在下文中,轴向像素或点是位于坐标轴上的像素点,例如x轴(即,线y=0)或y轴(即线x=0);对角线像素或对角线点是位于对角线上的像素点,例如直线y=x或y=−x;内部像素或点是不位于坐标轴或对角线上的像素点。
参考图3B,对于参考pizza slice 310中的每个轴向像素,可以在剩余的三个象限中识别对称的其他三个轴向像素,并且它们的范数与参考披萨切片320中的轴向像素的范数相同。例如,参考pizza slice 310中的(3,0)处的轴向像素在剩余三个象限中的(0,3)、(−3,0,和(0,−3)处具有三个对称的轴向像素。由于(3,0)处的轴像素的平方范数是9,所以(0,3)、(−3,0,和(0,−3)处的其他对称轴像素的均方范数同样是9。