A-KAZE论文研读

AKAZE是KAZE的加速版本。KAZE在构建非线性空间的过程中很耗时,在AKAZE中将Fast Explicit Diffusion(FED)加入到金字塔框架可以dramatically speed-up。在描述子方面,AKAZE使用了更高效的Modified Local Difference Binary(M-LDB),可以从非线性空间中利用梯度信息gradient information。M-LDB是旋转和尺度不变的,并且对内存的要求更低。

1 Introduction

最出名的SIFT和SURF都使用了高斯尺度空间Gaussian scale space,区别是SIFT在金字塔框架下构建高斯尺度空间,SURF通过盒子滤波近似得到高斯微分Gaussian derivatives。他们都有一个缺点就是高斯滤波无法保留边缘,它会把所有尺度的细节和噪声平滑到相同的水平。损失了位置精度和独特性。

KAZE和BFSIFT都在非线性尺度空间中进行特征点的检测和描述,这样可以使得模糊根据图像内容自适应地调整,保留边界。KAZE相比于SIFT和SURF,提高了重复度repeatability和独特性distinctiveness。KAZE的缺点是计算量大computationaly intense,因为非线性扩散方程没有解析解analytical solutions,所以需要数值方法numerical methods来近似,其中一种方法就是Additive Operator Splitting(AOS)。BFSIFT则将标准的高斯尺度空间通过双边滤波用各向异性尺度空间来代替。BFSIFT可以提高SIFT在SAR(Synthetic Aperture Radar)图像中的表现,SAR图像中有较多的斑点噪声(speckle noise).但是,双边滤波也是一个耗时的过程,所以无法使用在实时性图像匹配的应用中。

移动设备的计算能力是有限的,所以一些算法希望在保持性能的同时减少计算量。ORB和BRISK都结合了FAST算法和二进制的描述子BRIEF,比SIFT和SURF速度快了许多,但只有在图像变换程度较小时才能保证一定的性能。

在这篇文章中,使用了Fast Explicit Diffusion(FED),可以更快地构建非线性尺度空间,易于实施easy to implement,比AOS更准确。将FED方法应用于金字塔框架中,策略是fine to coarse,由精到粗?

为了达到低计算量,降低对内存的需求,还提出了一种高效的M-LDB描述子。因为原始的LDB方法和BRIEF一样,对旋转和尺度没有不变性,所以要在非线性空间中利用梯度信息进行改进。

2 Nonlinear Diffusion Filtering

非线性扩散方程是将图像在不同尺度水平的亮度的演进描述为流动方程flow function的散度divergence。这个可以通过非线性偏微分方程nonlinear partial differential(PDEs)来表示,因为图像亮度通过非线性尺度空间进行扩散的微分方程的非线性特性。

传导函数的值由差分结构differential structure决定,所以传导函数使得扩散可以根据图像结构自适应滤波。时间t是尺度参数,t越大,得到的图像形式越简单.

传导函数有多种选取方法。传导函数是原始图像的高斯平滑版本的梯度图gradient of a Gaussian smoothed version of the original image的复合函数。其中又有一个对比度参数,决定图像的哪些部分被保留或者加强。

因为没有解析解,需要通过离散化PDE来近似求解。最简单的方法是explicit schemes,因为可以直接使用,缺点是由于稳定问题,许多迭代需要达到理想的尺度水平,这样会造成计算量大。另外一种是使用semi-implicit,可以借助AOS高效计算,因为AOS在任意步长下都是稳定的,缺点是AOS在每一步都需要求解大量的线性方程组。

2.1

FED结合了explicit和semi-implicit方法的优点,同时避免他们的缺点。FED是被explicit的盒子滤波的分解启发的。盒子滤波可以很好地近似高斯核,加快速度,易于实施。主要思想是执行M次循环,每次循环有n步explicit扩散,每一步的步长是变化的,初始步长起源于盒子滤波的因式分解。

                                                                    {\tau _j} = \frac{​{​{\tau _{\max }}}}{​{2{​{\cos }^2}\left( {\pi \frac{​{2j + 1}}{​{4n + 2}}} \right)}} 

${\tau _{\max }}$ 是不违反explicit scheme的稳定条件的最大步长。对应的一次FED循环的停止时间${\theta _n}$ 可以由下式得到:

                                                                   {\theta _n} = \sum\limits_{j = 0}^{n - 1} {​{\tau _j}} = {\tau _{\max }}\frac{​{​{n^2} + n}}{3} 

个别步长其实会违反稳定条件,但是由于FED和盒子滤波的相似性,我们最终在FED停止循环会得到稳定的scheme。非线性扩散方程的矩阵形式:

                                                                        \frac{​{​{L^{i + 1}} - {L^i}}}{\tau } = A\left( {​{L^i}} \right){L^i} 

A\left( {​{L^i}} \right)是图像传导函数的编码,$\tau $是一个常数,表示时间步长,保证满足稳定条件。在explicit scheme中,解${L^{i + 1}}$可以直接由前一个演化水平${L^i}$和图像传导函数A\left( {​{L^i}} \right)求得:

                                                                      {L^{i + 1}} = \left( {I + \tau A\left( {​{L^i}} \right)} \right){L^i} 

I是单位矩阵identity matrix。先验估计${L^{i + 1,0}} = {L^i}$ ,则FED的n次循环是:

                                                 {L^{i + 1,j + 1}} = \left( {I + {\tau _j}A\left( {​{L^i}} \right)} \right){L^{i + 1,j}},j = 0,...,n - 1 

${\tau _j}$是每次的可变步长。需要注意的是在每次循环中,A\left( {​{L^i}} \right)是保持不变的。

3 Accelerated-KAZE Features

3.1 Building a Nonlinear Scale Space with Fast Explicit Diffusion

和KAZE一样,第一步建立O个octaves,S个sub-levels,并计算出每子层的高斯尺度,为了使用扩散方程,要把离散的尺度因子转换成时间单位。从高斯平滑的图像,可以求得对比度因子,可取值为梯度直方图的70%。

在得到输入图像和对比度因子之后就可以开始FED算法了。分成两个循环,外循环有M-1个,因为我们目标是得到M个过滤后的图像。每一个外循环需要计算对应的内循环的最小步数。在2D图像中,考虑的方框大小是1个像素时(considering a grid size of 1 pixel for the image derivatives),满足违反稳定条件的最大step size是${\tau _{\max }} = 0.25$。每个外循环的时间$T = {t_{i + 1}} - {t_i}$ ,每个内循环的时间在公式中已被定义,只有几组离散的取值。为了满足循环时间T的任意性In order to allow arbitrary cycle times T,需要计算内循环的最短循环长度n,将每次内循环时的steps sizes乘一个缩放因子$q = T/{\theta _n}$ ,其中${\theta _n} \ge T$

在文献6,7中使用FED的策略是coarse to fine的金字塔分解pyramidal decomposition.,因为这些文章的应用场景是去噪,图像修复inpainting或者可变的图像光流variational optical flow,感兴趣的是演化的稳定状态,t逼近于无穷大,使用coarse to fine可以更快地达到稳定状态。而在我们在研究内容中,目标是得到一组过滤后的图像,使用的策略是fine to coarse。

在每一个octave中达到最后一个子层后,需要进行倍数为2 的下采样,使用平滑模板\left( {\frac{1}{4},\frac{1}{2},\frac{1}{4}} \right) 。下采样后的图像作为下一个octave的初始图像,并开始FED循环。在下采样之后还需要重新调整对比度因子,因为平滑模板使得边缘对比度减少了25%,所以对比度因子需要乘0.75进行调节。

3.2 Feature Detection

对每一个过滤后的图像求其Hessian矩阵的特征值determinant。为了考虑每个过滤图像的octave,对不同尺度的算子归一化使用尺度因子进行归一化

                                                           {L^i}_{Hessian} = \sigma _{i,norm}^2(L_{xx}^iL_{yy}^i - L_{xy}^iL_{xy}^i) 

为了计算二阶导,我们利用了添加了步长step size的Scharr滤波器。Scharr滤波器是近似旋转不变性的。首先在空域spatial location内寻找极大值点maxima。具体是在每一个演化水平evolution level i上检查检测器的响应,响应大于设定的阈值并且是否在3x3的邻域内是极大值。这样可以迅速舍弃掉非极大值响应。对每一个潜在的极大值点,再检验其在上下相邻的演化水平的${\sigma _i} \times {\sigma _i}$窗口内是否是极大值。相比于SIFT和SURF在27个像素的范围内寻找极值,这样可以及早地剔除掉非极大值。最后,通过对Hessian矩阵的行列式进行二次方程2D quadratic function的拟合可以得到特征点的亚像素sub-pixel级别的精确定位。

3.3 Feature Description

二进制描述子如BRIEF,ORB,BRISK被广泛认可,因为可以很高效地被计算和匹配。虽然如此,直到最近人们才弄清楚这些二进制描述子的工作机理。Ziegler的工作表明不是之前认为的二进制描述子可以估计图像的梯度信息,而是kendall的 tau矩阵下的局部敏感哈希locality sensitive hashing(LSH)。他们还提出了LUCID描述子,使用了一个稳定的排序算法对特征点邻域内的像素值进行排序。使用Kendall的tau距离的复杂度是O(nlogn),所以建立使用汉明距离。LUCID的结果比BRIEF要稍微差一点,表明使用哈希进行降维没有提升性能。

我们提出了M-LDB,从非线性尺度空间提取了梯度gradient和强度intensity信息。LDB在文献20中被提出,LDB的基本原则和BRIEF是一样的,但是为了更具有鲁棒性,是在区域的均值之间使用二进制集binary tests而不是单独的像素之间using binary tests between the average of areas instead of single pixels for additional robustness.对于强度值intensity values,比较区域中水平和垂直方向的偏导,每个比较结果用3bits表示。LDB提出使用可变的方框grids,将邻域patch分成2x2,3x3,4x4的方框。如果描述子是垂直upright的(没有旋转不变性),这些子方框的均值可以使用积分图integral images很快被计算出来。但是,如果考虑特征点的选择,积分图就失效了,访问子方框中的点就变得很耗时。旋转不变性通过KAZE中的方法找到主方向,然后LDB的方框根据主方向调整到水平或者垂直方向。Instead of使用子方框中所有的像素计算均值,而是对方框进行下采样,采样的倍数是特征点所在尺度的函数,与尺度相关的采样scale-dependent sampling使得描述子对尺度变换具有鲁棒性。实验表明这种对均值的近似表现良好。M-LDB可以使用特征点检测步骤中计算出的导数,减少了描述子生成过程中的计算量。

M-LDB计算得到强度图和梯度图的相同区域下的均值的近似值。由比较对得到的布尔值之间不是互相独立的。可以使用文献20中的随机选取二进制字符串的子集减小描述子的大小,或者使用文献5和15中的ORB算法改善结果。

4 Experimental Results

我们使用文献9中的VLBenchmarks框架来评估检测器的可重复度http://www.vlfeat.org/benchmarks/。VLBenchmarks是一个MATLAB的框架,用于测试图像特征检测和描述子,使用了文献12中对于局部检测器评估的协议。重复度衡量的是包含相同场景的两幅不同的图像在特征检测之后被检测到的区域的重叠程度。The detector repeatability measures to what extent do detected regions overlap exactly the same scene region by comparing detected features in two images of the same scene.我们认为当重叠错误率overlap error小于40%时认为是对应的correspondence。此外,我们还附加认为对应区域的特征点的相对位置必须小于2.5个像素,例如$\left\| {​{x_a} - H\left( {​{x_b}} \right)} \right\| < 2.5$ ,H是两幅图像之间单应矩阵真值true homography。实验比较了A-KAZE与BRISK、ORB、SURF、SIFT和KAZE。KAZE使用了作者的源码,其余算法使用了OpenCV库。

图2展示了使用牛津大学数据集的含旋转synthetic rotation和高斯噪声变换的图像组的检测器重复度得分。对于旋转中的合成变换synthetic changes,我们consider的是Graffiti图像组中的第一幅图像。AKAZE在所有实验中都取得了很好的表现,KAZE的得分和AKAZE接近,但是KAZE的速度慢了几个数量级severl orders of magnitude slower。KAZE在相同的图像分辨率下进行非线性扩散滤波和特征检测。A-KAZE在每个尺度上进行下采样,加快了非线性尺度空间的构建和检测。下采样没有对检测器产生负面影响,这是因为非线性扩散滤波作用在每个像素的很小的邻域上mainly acts within a fairly small vicinity around each pixel.。AKAZE性能更好的一个原因是FED方法比AOS更加精确,所以在FED下的非线性扩散方程离散化的错误更少。

对于快速特征点检测算法如ORB和BRISK,当增加了像素位置限制后,这些算法的表现出现了急剧下降,尤其是BRISK。注意,我们的评估和文献10中的不同,因为文献10中只考虑了特征点之间的overlap area error。ORB没有在尺度空间上进行非极大值抑制,所以在不同的尺度上会出现重复的特征点。我们认为ORB和BRISK检测表现较差的原因是使用了FASR角点检测的变形。正如文献1中的评估结果所说,FAST用于解决大尺度图像变换下的图像匹配问题是不可靠的is unreliable for solving image matching problems under large image transformations.。综上,基于Hessian矩阵或者高斯差分的特征检测是更受欢迎的。表1描述了结合了检测器和描述子在评价指标Matching Score(MS)和Recall(RC)下的表现,这两个指标的具体含义可以在文献8中找到。MS = # Correct Matches=# Features,描述了导致正确匹配的特征点数目,RC =

# Correct Matches=# Correspondences,和MS相似,但是受到重复度的影响,因为重复度影响correspondences的数目。我们采取了SIFT中的最近邻比率的匹配准则nearest neighbor distance ratio matching criteria,使用的描述子的距离比值是0.8.判断是否是正确匹配对的准则和检测器的准则一样:重叠区域错误为40%,像素位置误差为2.5个像素。

我们还使用随机比特选择的方法测试了改变描述子的大小对于性能的影响。在表1中可以看到,486bits的A-KAZE和KAZE在大部分实验中都取得了最好的表现,例外是在Boat图像组中SIFT取得了更好的效果。256bits版本的A-KAZE的性能和486bits版本相近,更有意思的是,64bits版本的A-KAZE在近一半的情景下甚至可以取得比原始版本A-KAZE更好的表现。

图3中的a,b以Precision为纵坐标,Precision = # Correct Matches=# Putative Matches。a图描述了Precision与描述子比特数的关系,可以看到在描述子长度大于96bits时,性能表现和486bits的完全版本处于同一个水平,在比特数大于128后性能提升很有限。图b是Wall数据集的视角变化的实验,表现了性能与M-LDB的通道数的关系。3通道指描述子综合考虑了强度intensity和想,y方向上的微分,单通道指仅仅考虑了强度。

图c描述了结合了检测器和描述子的时间性能评估。不同算法对Graffiti图像组的第一幅图像提取1000个特征点,图像的尺寸为800x640,。实验平台的CPU是Intel Core i7-3770。借助了OpenCV图像库对算法进行实现,因为OpenCV对算法的速度进行了优化,所以还另外增加了使用SURF源码和来自VLFeat库实现SIFT的实验。A-KAZE比ORB和BRISK要慢,但是快于SURF,SIFT,KAZE。A-KAZE与KAZE的性能接近,但是速度是KAZE的好几个数量级。因为使用了二进制的描述子,在匹配步骤可以使用汉明距离而高效地计算。此外,还利用文献22中的高帧率的目标追踪检测图像集来比较A-KAZE和BRISK和ORB的检测器性能。

5 Conclusions

文章介绍了运用在特征检测和描述中的FED算法。通过FED算法可以减少在构建非线性空间中的计算量。还介绍了一个全新的LDB的改进版本作为描述子,这种描述子更高效,对旋转和尺度变换具有不变性。A-KAZE在检测和描述中都取得了很好的性能,计算量小,占用内存也小。A-KAZE的源码使用了C++作为语言,并且调用了一些OpenCV中的函数。可以在作者网站进行下载。www.robesafe.com/personal/pablo.alcantarilla/kaze.html

Reference:

https://blog.csdn.net/small_munich/article/details/79585808

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和你抢“饭碗”的40家服务机器人企业大盘点!

来源&#xff1a;物联网智库摘要&#xff1a;本文将对国内近40家服务机器人企业进行汇总介绍&#xff0c;所选企业在其相应版块活跃度较高。从三个大类进行了细分盘点。国家机器人联盟&#xff08;IFR&#xff09;根据应用环境将机器人分为了工业机器人和服务机器人。服务机器人…

YOLO9000

YOLO9000是YOLO的第三个版本。前两个版本是YOLO v1&#xff0c;YOLO v2&#xff0c;在CVPR2017的文章《Better,Faster,Stronger》中的前半部分都是对前两个版本的介绍&#xff0c;新的内容主要在Stronger部分。YOLO9000中的9000指的是YOLO可以对超过9000种图像进行分类。 Bett…

吴恩达作业4:权重初始化

权重初始化的 正确选择能够有效的避免多层神经网络传播过程中的梯度消失和梯度爆炸问题&#xff0c;下面通过三个初始化的方法来验证&#xff1a; sigmoid导数函数&#xff1a;最大值小于0.25&#xff0c;故经过多层反向传播以后&#xff0c;会导致最初的层&#xff0c;权重无…

先发制人!Waymo将首推商用载人自动驾驶服务,Uber们怕不怕?

编译&#xff1a;费棋来源&#xff1a;AI科技大本营“真的&#xff0c;真的很难。”11 月举办的一场会议上&#xff0c;Alphabet 旗下 Waymo CEO John Krafcik 对做自动驾驶汽车技术的艰难不无感慨。在他看来&#xff0c;未来几十年内&#xff0c;自动驾驶汽车将一直存在限制&a…

利用ORB/AKAZE特征点进行图像配准

Kp1,kp2都是list类型&#xff0c;两幅图都是500个特征点。这和ORB论文中的数据是一样的。4.4章节 Matches也是list类型&#xff0c;找到325个匹配对。 AKAZE文章中提到一个指标&#xff1a;MS(matching score)# Correct Matches/# Features, 如果overlap area error 小于40%…

吴恩达作业5:正则化和dropout

构建了三层神经网络来验证正则化和dropout对防止过拟合的作用。 首先看数据集&#xff0c;reg_utils.py包含产生数据集函数&#xff0c;前向传播&#xff0c;计算损失值等&#xff0c;代码如下&#xff1a; import numpy as np import matplotlib.pyplot as plt import h5py …

十年之后,数字孪生将这样改变我们的工作与生活

来源&#xff1a;资本实验室数字孪生是近几年兴起的非常前沿的新技术&#xff0c;简单说就是利用物理模型&#xff0c;使用传感器获取数据的仿真过程&#xff0c;在虚拟空间中完成映射&#xff0c;以反映相对应的实体的全生命周期过程。在未来&#xff0c;物理世界中的各种事物…

什么是图像

图像&#xff0c;尤其是数字图像的定义&#xff0c;在冈萨雷斯的书中是一个二维函数f(x,y),x,y是空间平面坐标&#xff0c;幅值f是图像在该点处的灰度或者强度。下面通过OpenCV中最常用的图像表示方法Mat来看一下在计算机中是怎么定义图像的。 Mat的定义 OpenCV在2.0之后改用…

吴恩达作业6:梯度检验

梯度检验的目的就是看反向传播过程中的导数有没有较大的误差&#xff0c;首先看Jtheta*x的梯度检验&#xff1a;代码如下 import numpy as np """ Jx*theta的前向传播 """ def forward_propagation(x,theta):Jx*thetareturn J ""&quo…

10年后的计算机会是怎样的?

作者&#xff1a;孙鹏&#xff08;剑桥大学计算机系博士&#xff09;来源&#xff1a;新原理研究所上个世纪三十年代&#xff0c;邱奇和图灵共同提出了通用计算机的概念[1]。在接下来的十多年里&#xff0c;因为战争需要下的国家推动&#xff0c;计算机得以很快从理论发展成为实…

什么是图像变换

还是看OpenCV官方手册&#xff0c;我觉得这样可以同时学习如何使用函数和如何理解一些基本概念。 首先&#xff0c;这里的几何变换geometrical transformations是针对2D图像而言的&#xff0c;不改变图像内容而是将像素网格变形deform the pixel grid&#xff0c;映射到目标图…

MSRA20周年研究趋势文章|图像识别的未来:机遇与挑战并存

文/微软亚洲研究院 代季峰 林思德 郭百宁识别图像对人类来说是件极容易的事情&#xff0c;但是对机器而言&#xff0c;这也经历了漫长岁月。在计算机视觉领域&#xff0c;图像识别这几年的发展突飞猛进。例如&#xff0c;在 PASCAL VOC 物体检测基准测试中&#xff0c;检测器的…

吴恩达作业7:梯度下降优化算法

先说说BatchGD用整个训练样本进行训练得出损失值&#xff0c;SGD是只用一个训练样本训练就得出损失值&#xff0c;GD导致训练慢&#xff0c;SGD导致收敛到最小值不平滑&#xff0c;故引入Mini-batch GD&#xff0c;选取部分样本进行训练得出损失值&#xff0c; 普通梯度下降算…

什么是单应矩阵和本质矩阵

知乎上面的大牛还是很多&#xff0c;直接搜Homography或者单应矩阵就能得到很多大神的回答&#xff0c;可能回答中的一句话或者一个链接就够自己学习很久。 其实在之前研究双目视觉的时候就接触了对极几何&#xff0c;通过视觉就可以得到物体的远近信息&#xff0c;这也是特斯…

tensorflow实现反卷积

先看ogrid用法 from numpy import ogrid,repeat,newaxis from skimage import io import numpy as np size3 x,yogrid[:size,:size]#第一部分产生多行一列 第二部分产生一行多列 print(x) print(y) 打印结果&#xff1a; newaxis用法&#xff1a; """ newaxis…

寿命能推算吗?加州大学科学家提出“预测方法”

来源&#xff1a;中国科学报从古至今&#xff0c;从国内到国外&#xff0c;从炼丹术到现代科学&#xff0c;长生不老似乎一直是人类乐此不疲的追求。但若要延缓衰老&#xff0c;首先要弄清是什么造成了衰老。近日&#xff0c;加州大学洛杉矶分校&#xff08;UCLA&#xff09;生…

Deep Image Homography Estimation

在知乎问题&#xff1a;深度学习应用在哪些领域让你觉得「我去&#xff0c;这也能行&#xff01;」&#xff1f;中遇到一篇提交在arXiv 2016&#xff08;arXiv不是正式发表&#xff0c;只是可以证明原创性&#xff0c;提供时间戳的网站&#xff09;的文章《Deep Image Homograp…

tensorflow:双线性插值反卷积

首先生成333的黑色图片 """ 生成333黑色图像 """ def produce_image():size 3x, y ogrid[:size, :size] # 第一部分产生多行一列 第二部分产生一行多列z x yz z[:, :, newaxis] # 增加第三维# print(z)img repeat(z, 3, 2)/12 # 在第三…

腾讯医疗AI新突破:提出器官神经网络,全自动辅助头颈放疗规划 | 论文

来源&#xff1a;量子位腾讯医疗AI实验室又有新研究。这次跟美国加州大学合作&#xff0c;在国际权威期刊《Medical Physics》发表最新研究成果&#xff1a;《器官神经网络&#xff1a;深度学习用于快速和全自动整体头颈危及器官靶区勾画》AnatomyNet: Deep Learning for Fast …

视频制作中的绿幕与拜耳阵列

先来欣赏一些大片背后的特效。 现在国内的电影市场越来越大&#xff0c;做短视频的自媒体也越来越多&#xff0c;在他们的后期视频制作的片花中可以看到很多都在使用绿幕或者蓝幕&#xff0c;这是为什么呢&#xff1f; 首先肯定是为了抠图的方便。将主体部分抠出再将通过特效…