译文.docx
- 文档编号:5288020
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:11
- 大小:385.29KB
译文.docx
《译文.docx》由会员分享,可在线阅读,更多相关《译文.docx(11页珍藏版)》请在冰豆网上搜索。
译文
指导教师评定成绩
(五级制):
指导教师签字:
附件C:
译文
基于机器学习的高速角点检测
摘要:
在实时帧率应用中利用特征点时,高速的特征检测器显得格外重要。
像SIFT(DoG)、Harris、SUSAN等特征检测器,是获得高品质特征点的优良方法,然而它们的计算过于复杂以至于难以在任意复杂度的实时应用中使用。
这里介绍基于机器学习的特征检测器,它可以用不到7%的有效处理时间跑完整个PAL视频。
通过比较发现,以全帧速率运行时,Harris检测器(120%)和SIFT(300%)检测器都不能实现。
很明显,如果检测出的特征点不适合继续加工处理,那么高速检测器的使用因此会被限制。
特别是从两个不同位置观察同一处场景时,应该能产生相同的三维位置特征[1]。
因此,本文的第二个突出点是基于这一标准下三维场景角点探测器的比较,该比较结果支撑由其它现有角点检测器得到的结论。
此外,与最出的预期相反,尽管这类检测器主要优势来自于速度上的提升,但是根据这一标准,我们的检测器明显优于其它现有的特征检测器。
1引言
角点检测被认为是许多视觉任务的第一步,如跟踪、SLAM(即时定位与地图构建)、定位、图像匹配和识别,因此文献中描述了大量的角点检测器。
既然有了如此多的可用检测器,似乎没有必要提出其它的检测器加入这个群体;然而,我们对SLAM在实时帧频应用中计算资源达到了饱和状态非常感兴趣。
特别在以全帧速率处理视频流时,即使在不顾摩根定律的情况下,现存的特征检测器几乎没有剩余时间去完成更深入的处理。
本文的第2部分描述了如何重新设计先前文献中的特征检测器,并使用机器学习算法以达到速度上的提升。
此外,这种方法可以让检测器得以推广,产生一系列当前用来实时跟踪[2]和AR标签布置[3]的高速检测器。
为了表明不需要降低特征检测器的检测质量就可以达到该检测速度,我们将该检测器同大量知名的检测器相比较。
在本文第三部分中,采用史密德标准[1],当显示同一三维场景的不同视角图时,检测器应(尽可能)检测出该场景中对应相同特征的角点。
下面将展示在已知一个近似平面模型的条件下,如何在三维场景中将该技术得以应用。
1.1前期工作
大多数特征检测算法是通过计算整个图像的角点响应函数C来判别,超过阈值的像素点(局部最大值点)被保留下来。
Moravec[4]计算候选角点邻域与该邻域以某一方向平移一小段距离后区域的平方差和(SSD),函数C取最小的SSD值保留,确保提取的角点是平移时改变最大的地方。
Harris[5]为了反映平移的变换,在上面的基础上计算SSD的近似二阶导数值,这个近似值是:
(1)
这里‘^’符号表示求取整个图像像素点邻域的平均值(用一个平滑的圆形窗口代替矩形窗口可以使得到的平均值在噪音和方向的干扰上降低)。
Harris定义角点响应函数为:
(2)
如果H的特征值较大,这个函数值C也较大,这避免了对特征值的直接计算,而特征值被证实是图像曲率的近似测量值[6]。
基于仿射图像变形的假设,Shi和Tomasi进行了数学分析推理出结论:
使用H的最小特征值作为角点强度函数是更好的,该强度函数定义为:
(3)
如何从H矩阵中计算角点强度有许多参考[5-8],这些等同于H矩阵的不同矩阵范数[10]。
郑以及其他人[11]对H矩阵进行了计算分析,发现一些合适的近似值允许仅仅通过计算两张平滑图片来提升速度,而不是之前的三张图片。
Lowe[12]通过多尺度的高斯差分核对图像进行卷积,获得标度不变性并保留了尺度以及空间上最合适的点。
高斯差分被使用是由于它充分逼近高斯型拉普拉斯算子并且计算速度相比较而言更快。
近似的高斯差分已被拟建,相对直接实现高斯卷积而言,倘若尺度变化,那么计算速度大约提升两倍[13]。
文献[14]中提及高斯差分是特别稳定的空间尺度核。
尺度空间技术在文献[15]中已经联合Harris方法,在此以多尺度计算Harris角点,并仅仅保留高斯差分响应中的最佳响应点。
目前,考虑仿射变换后特征不变的问题[14,16,17],标度不变性已经得到了延伸。
图像中的边缘(通常是亮度上某个阶跃变化)对应于两个区域间的边界。
在区域的角点上,这个边界迅速改变方向。
一些相关技术已经发展成熟,包括检测和链接边缘、通过分析链式码,着眼于在链接的边缘中找到角点踪迹,找到曲率最大值[19,20,21],改变方向[22]或者改变外形[23]。
其它的方式是避开边缘连接,而是寻找曲率最大值[24]或者在梯度较大的地方改变方向[25]。
另一类角点检测器通过检测图片的一小块邻域来观察是否‘看’起来像角点。
因为不计算二阶导数,像高斯平滑的降噪步骤就不是必需的。
对于每一个角点检测而言,仅仅检测其周围一小块像素域使这些角点检测器计算效率很高。
由此可知这些检测器检测那些仅有大范围特征的图像,例如模糊图像时往往表现不佳。
在本文中提出的角点检测器属于这一范畴。
在文献[26]提出的方法中,假设角点类似于一个模糊的楔,通过拟合局部图像找到楔的特征(振幅、角度和模糊度)。
文献[27]中对楔的概念进行了延伸,提出了计算角点强度的方法,这是通过圆盘内像素的比例计算自相似度,并要求圆盘的亮度不超过中心核值的某个阈值。
离核越近的像素点获得越高的权重,这种方法叫做USAN(核值相似区)。
USAN的较小值表明角点明显不同于周围像素点。
从保留的候选像素里选择局部最小值,就可以抑制品质不好的特征点,这就是最小USAN法。
Trajkovic和Hedley[28]使用类似的方法:
如果像素点看起来同邻域重心不同,那么这个邻域就不是自相似的。
这种方法通过圆形模板来实现。
fC是圆形模板中心像素值,fP和fP’是穿过圆直径任意一头的像素值。
响应函数被定义为:
(4)
只有在存在角点的情况这个值才会较大。
以下的测试是基于Bresenham圆进行的,这是由于圆是离散的、线性的,且在离散方向间用环形内插法可以提供检测器更优越的各向同性响应。
为此,作者们提出了一种方法,在两个像素点间插值就能够有效地计算最小响应函数。
响应函数的计算要求对各方向进行搜索,但是任何单次测量都会检测到响应上限。
因此为了加速匹配过程,只检测水平和垂直两个方向的响应,但如果反应的上限太小,潜在角点就回会被遗漏。
为了使这种检测方法进一步提升,快速检测法得以应用。
在检测角点上,快速径向对称变换技术已经发展成熟[29]。
当梯度既是径向对称且沿着半径有一致的强烈信号时,该点就会有很高的强度值。
通过改变要验证的径向对称区域大小,尺度大小也能相应改变。
检测图像一小块邻域来判断是否是角点的一种替代方法,是利用机器学习把图像的邻域分类为角点或者非角点。
训练集里使用的数据决定了待检测特征点的类型。
在文献[30]中,训练了三层的神经网络来识别角点,这些角点靠近8×8窗口的中心,边缘角度满足45度的倍数。
这项工作是在对图像进行边缘检测和稀疏后处理的。
下面讨论如何让神经网络的学习更具普遍性和代表性,并且让其能检测出任意角度的角点。
2高速角点检测
2.1FAST:
快速法测试特征
测试阶段时考虑候选角点p周围一圈16个像素,如果在圈内存在一组连续的像素点都比候选点像素Ip和阈值t的像素和还大或者比候选点像素Ip与阈值t的差还小,那么原始检测器[2,3]就把点p归类为角点。
如图1所示,选择n为12是因为它能够在排除大量非角点的情况下做高速测试,这个测试仅仅检测1、5、9、13四个罗盘方向上的像素值。
如果p是角点,4个像素值中至少有3个是比Ip和阈值t的像素和还大或者比Ip与阈值t的差还小;若这两种情况都不是,则p不是角点。
这种检测标准能应用于其余候选点,通过检测圈内所有像素就可以进行完整的测试。
该检测器本身具有高性能,但也存在一些缺陷:
1.对于n小于12的高速检测效果不好;
2.快速测试像素点的选择和排序既定了特征点的位置分布;
3.前四个测试数据结果被丢弃;
4.多个特征点容易挤在一起。
图1.在图像域中,12个白色方框圈出的点集被用于角点检测,点p是候选角点的中心,圆弧线相连的12个连续像素点比中心点p和阈值的和亮度还高。
2.2机器学习的角点检测器
这里提出一种利用机器学习的方法来处理前三个点(第四个点在2.3节中处理)。
整个处理过程分为两个阶段:
为了给已定的n值建立角点检测器,首先,从一系列图片(最好从目标应用域获得)中使用对应n值的检测标准和适合的阈值来检测出角点。
此处使用慢速算法,对于每个像素点都要测试其周围一圈16个位置上的点。
对于圈上每一个位置点x∈{1…16},其相对点p的位置有以下三种状态:
(5)
选择一个x并计算所有p∈P(所有训练图像的像素集)的Sp→x,就可将P划分为三个子集:
Pd,Ps,Pb,这样,每一个点p都有一个PSp→x值。
定义布尔型变量Kp,如果p是角点,那么Kp为真,否则Kp为假。
第二个阶段使用ID3[31]算法,通过Kp的熵值,选择能产生最多判断候选像素点是否为角点信息的x值。
点集为P时,K的熵表示为:
(6)
(角点的数量)
(非角点的数量)
选择x值后得到信息增益:
选择点xb分割Pb集为Pb,d、Pb,s、Pb,b,选择点xs分割Ps集为Ps,d、Ps,s、Ps,b,诸如此类,整个过程在三个子集上不断递归,这些选中的x点能产生最多关于点集的信息。
当某个子集的熵为零时,迭代过程终止,此时意味着子集中所有的点p都有相同的Kp值,它们要么都是角点要么都不是角点,这就能保证K是学习数据的精确函数。
由此生成了一种能够正确分类训练集中所有角点的决策树,这就能精确地使FAST角点检测器的实现得以具体化:
通过创建长的内嵌if-then-else语句把决策树转化为C代码,编译后作为角点检测器使用。
为使结果最优,代码被编译两次,一次获得测试图片的剖面数据,一次最优化重新排序。
在某些情况下,三个决策树中两个可能一样,此时,就移除分离点集的布尔型测试。
注意到数据集并不包含所有可能的角点,学习检测器就不会像快速检测器那样精确,但可以间接地修改决策树以确保与快速算法保持相同的结果。
然而,在某种程度上而言,所有的特征检测器都具有启发性,在这方面,学习检测器同快速检测器比较有点点不同。
2.3非极大值抑制
由于快速算法测试并没有计算角点响应函数,非极大值抑制就不能够直接应用到结果特征值上,因此,就可以为每一个检测出来的角点计算分值函数V。
非极大值抑制通过对V值的判断,移除临近角点有较高V值的点。
以下对函数V有三个种定义:
1.n取最大时p仍为角点的n值;
2.t取最大时p仍为角点的n值;
3.弧上连续像素与中心像素差的绝对值和;
定义1和定义2是高度的量化方式,并且许多像素点会得到相同的结果。
为了加快计算速度,对定义3做了小小的修改。
V是被定义为:
2.4用时结果
用时测试是在2.6GHz 皓龙和850MHz奔腾III处理器上进行的。
定时数据采用PAL视频资源(分辨率为768×288)的1500个单色域。
当n值取9和12时,学习FAST检测器已经比较了原始的FAST、Harris、DoG(高斯差—使用SIFT的检测器)和SUSAN检测器[32]。
如表1所示,与其它测试的特征检测器相比,FAST检测器一般具有更高的执行效率,而学习FAST检测器比起原始FAST检测器要快上两倍。
更重要的是,当n等于9时,就能够构成FAST检测器中最为可靠的高效检测器。
在高端的硬件基础上,FAST仅仅消耗视频处理过程中可用时间的一小部分;而在较低端的硬件基础上,测试的检测器中仅仅只有一个能够完全以视频速度处理。
研究决策树可以发现,一般来说,n等于9时由2.26个问题就可以判断像素点是否为特征点,n等于12时由2.39个问题就可以判断像素点是否为特征点。
相比而言,原始的检测器平均却要2.8个问题。
有趣的是,比起皓龙和奔腾III处理器之间的差异,学习检测器和原始FAST检测器之间的速度差异是相当小的。
我们认为,与奔腾III处理器相比,在某种程度上这是由于皓龙处理器对每一个像素点的处理有逐渐减少的消耗(假设对所有的像素点有相同的消耗)。
检测器
皓龙2.6GHz
ms%
奔腾III850MHz
ms%
快速n=9(非极大值抑制)
1.336.65
5.2926.5
快速n=9(未处理)
1.085.40
4.3421.7
快速n=12(非极大值抑制)
1.346.70
4.6023.0
快速n=12(未处理)
1.175.85
4.3121.5
原始FASTn=12(非极大值抑制)
1.597.95
9.6048.0
原始FASTn=12(未处理)
1.497.45
9.2548.5
Harris
24.0120
166830
DoG
60.1301
3451280
SUSAN
7.5837.9
27.5137.5
表1.计时结果是特征检测器在768×288分辨率的PAL视频流上以毫秒计时得到的,并计算每帧处理预算的百分比。
注意到PAL、NTSC、DV和30HzVGA(同为摄像头)有大致相同的像素频率,因此百分比也是广泛适用的。
每帧域大约有500个待测特征点。
3检测器的重复性比较
尽管角点检测有巨额的任务量,但目前检测器间的比较还是相当少的,仍需进行测试。
Mohannah和Mokhtarian[33]对测试图片就行仿射变换,弯曲图片后计算相应性能。
他们定义角点数量的稳定性为:
nw是弯曲后图像的特征点数量,no是原始图中特征点数量。
他们也定义了精确度为:
ng是人为标记‘地表实况’的角点数量,na是同地表实况比较相匹配的角点数量,显然这个除法具有主观性。
Trajkovic和Hedley[28]定义稳定性为‘强’匹配度(在他们的跟踪算法中匹配检测超过3帧)除以角点总数。
很明显,这种方法取决于所使用的跟踪和匹配方法,但是却有能够在该系统上进行数据测试的优势。
考虑测量的准确性时,重点看能否从多视图[1]中检测出相同的实际特征。
此定义将在此处引用,对一对图像来说,如果特征点在第一幅图中引出,在第二幅中出现,那么就认为检测出特征点;如果在第二幅附近也被检测出,那么就认为它是重复出现的。
重复率是重复的特征点占检测出特征点的比例。
在文献[1]中,测试是在平面图像中进行的,以至于点与点之间的位置关系是单应性的,测试中也将基准点映射到平面图像中以提高计算精度。
通过平面表层的模仿和平坦纹理的使用,这种技术测试了特征检测器在实际条件下处理仿射变换的能力(尽管图片特征很细微)。
该测试并没有很好地与预期应用域匹配,所以我们使用三维表面模型去代替,计算检测应出现在其它视图中的特征(如图2所示)。
这将允许检测器有可重复性去分析由几何特性引起的特征,如多面体的角、闭塞、T型接口。
我们也使用平刨模仿的浮雕结构以至于能够在非仿射变换下测试重复性。
存在误差是由于:
1.矫正并不完善;
2.模型不够精确
3.相机模型并不完善(特别是存在径向畸变);
4.
检测器可能找到一个与角点略微不同的最大值,这很可能由于视角的改变影响到角点形状的变化。
图2.重复性测试是判断从不同视图中是否能检测出相同的实际特征,并利用几何模型计算特征点反向投影。
代替基准点的使用,手动地将三维模型与场景对齐。
这里最佳的方式是将模拟退火算法和梯度降落综合,求取在所有帧和反向投影间最小的SSD值。
为了计算在第i帧和第j个反向投影间的SSD值,第j帧所有点的位置要在第i帧中找到。
图像经过带通滤波器过滤后,移除高频部分减少噪音,移除低频噪音降低光线变化的影响。
为了整体提高系统速度,仅仅用1000个随机点计算SSD值(与使用所有点截然相反)。
图3、4、5了显示了所使用的数据集,有了这些数据,就可试着获得各种不同的角点类型(几何上和结构上)。
当每一帧中角点的数量发生变化时,重复率就会被计算。
相比较而言,我们也涵盖了随机点的散射以用来基线测量,在取极限状况下,如果每一个像素都被检测出为角点,则重复率为100%。
为了测试图像对噪音的鲁棒性,可以在浮雕图像组中加入逐渐增加的高斯噪音,但应当注意增加的是已存在的相机噪音之外的噪音。
图3.盒子数据集:
照片拍摄于一套试验装置(由内部黏照片的长方体组成),它在角度、尺度和径向畸变上变化很大。
该实验测试角点检测器在平面结构上的性能。
图4.迷宫数据集:
照片拍摄于一套增强的实际应用道具,它包含仿射变换和几何变换下的纹理特征,其在尺度上变化也很大。
图5.浅浮雕数据集:
以平面作为基础模型,并在平面上铺大量浅浮雕,导致在非仿射变换下从不同视角观察时特征点外形会改变。
4结果和讨论
从Shi和Tomasi[7]的结果出发,为了更高效地进行特征检测,先假设特征点变换都是仿射变换。
在盒子和迷宫数据集中,假设能够成立;在图6B和6C中也可以看出这种检测器比Harris检测器执行效果更好。
在浮雕图像中,这种假设无法成立,但在这种情况下Harris检测器比Tomasi检测器执行效果更好。
Mikolajczyk和Schmid[15]使用文献[34]中的方法检测平面影物并计算Harris-Laplace检测器的可重复性。
结果显示在可重复性问题上Harris-Laplace点优于DoG和Harris点。
对于盒子数据集,结果证实了每帧使用1000个点(通常可能使用的典型数)是合理的;在其它的数据集中,没经过投影变换的点集得出的结果并不太令人信服。
通过对SIFT[35]的抽样测试,可从测试的图集中产生大约1000个特征点。
我们认为特征点的数目如此刚刚好,而这大概发生在DoG特征点可重复性曲线开始下滑的地方。
Smith和Brady[27]表示尽管SUSAN角点检测器没有计算图像的导数,但却可以很好地克服噪音影响,因此并没有进行扩增噪音的实验。
我们认同这种说法:
虽然噪声实验结果显示开始增加噪音的时候检测器性能急速下降,但不久也变平稳,且性能超过了除DoG检测器的所有检测器。
出人意料地是,尽管FAST特征检测器只因提高速度才被设计,但实验结果表明它在每帧超过200个角点的图像中表现更优越。
从图6A中可以看出,9点检测器性能最优。
其余图表中是基于9点和12点检测器进行比较的。
DoG检测器能够很好地处理存在的噪音。
因其卷积是线性的,DoG的计算等同于有DoG核的卷积,而此核又是对称的,这也就等同于相同形状物体的匹配滤波。
在存在附加高斯噪音[36]的情况下,匹配滤波最为理想,由此鲁棒性得以实现。
然而,FAST算法并不能够很好地处理存在的噪音,但可以预料的是,通过分析最少可能的像素数可以实现高速检测算法,由此检测器的性能在噪音降低时最终能够达到平衡。
图6.A:
FAST检测器的比较结果表明n=9时可重复性最好,而n≤8时,检测器开始对边缘强烈响应。
B、C、D:
每帧特征点变化时三个数据集的重复性检测结果。
E:
浅浮雕数据集(每帧500个特征点)在高斯噪音不断增加下的重复性检测结果。
对于FAST和SUSAN检测器,特征点的数量不能任意选择,每帧大约500个特征点是合适的。
5结论
在本文中,我们使用机器学习获得高效快速的角点检测器,它有如下优点:
—比现存的其它角点检测器快数倍;
—在大范围改变下或对于不同种类的特征有较高的重复性。
然而,它也存在着一些不足:
—不能很好地处理噪音;
—当量化圆圈时漏掉了边线,检测器会以某一角度响应一个像素的线宽;
—依赖于阈值大小。
我们也能验证在其它资料中用该方法计算角点可重复性的一些观点,而在此,已经展示了在计算中使用平面影物的重要性。
从以下网站可以获得角点检测的代码:
http:
//mi.eng.cam.ac.uk/˜er258/work/fast.html和http:
//savannah.nongnu.org/projects/libcvd;从以下网站可以获得用来重复性测试的数据集:
http:
//mi.eng.cam.ac.uk/˜er258/work/datasets.html
译文原文出处:
EdwardRosten,TomDrummond.Machinelearningforhigh-speedcornerdetection[C].In9thEuropeanConferenceonComputerVision.2006:
430-443.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 译文