公众微信网站建设,在线ps,用自己的计算机做服务器建网站,公司做网站的费用用途写什么KAZE是发表在ECCV2012的一种特征点检测算法#xff0c;相比于SIFT和SURF#xff0c;KAZE建立的高斯金字塔是非线性的尺度空间#xff0c;采用加性算子分裂算法(Additive Operator Splitting, AOS)来进行非线性扩散滤波。一个很显著的特点是在模糊图像的同时还能保留边缘细节…KAZE是发表在ECCV2012的一种特征点检测算法相比于SIFT和SURFKAZE建立的高斯金字塔是非线性的尺度空间采用加性算子分裂算法(Additive Operator Splitting, AOS)来进行非线性扩散滤波。一个很显著的特点是在模糊图像的同时还能保留边缘细节。邹宇华在CSDN中有一系列文章进行了讲解。
AKAZE 是加速版KAZE特征即Accelerated KAZE Features。由KAZE原作者在2013年在KAZE基础上进行改进。ORB与AKAZE应该算是state of the art。关于ORB与AKAZE的详细对比可以看2015年的论文。small_munich在博客中提到与SIFT、SURF算法相比AKAZE算法更快同时与ORB、BRISK算法相比可重复性与鲁棒性提升很大实验结果表明akaze算法从匹配性能与算法耗时都优于orb算法。其实我认为在一定范围内没有绝对的优劣还是要看自己的应用场景在之前看ORB的论文中作者也通过引用文献提到SIFT在涂鸦图像有更好的性能。ORB通常应用在移动设备中在ORB论文中作者就在安卓手机上进行了测试流行的SLAM中也有很多采样的是ORB-SLAM算法。small_munich在博文中给出了OpenCV版AKAZE匹配代码的百度网盘链接和ORB-LDB描述子代码。
在百度学术上可以很容易找到KAZE论文引用已经有100多但是却很难找到AKZE。最后从博文中找到了作者的个人主页。OpenCV官方https://docs.opencv.org/trunk/d8/d30/classcv_1_1AKAZE.html文档。CUDA版本的AKAZE的github主页https://github.com/donlk/cuda_akaze 。OpenCV还对AKAZE和ORB进行了对比。
1 Introduction
Multiscale image processing多尺度图像处理的重要性。对于每一个检测到的特征detected features会产生对应的局部描述子local description。
多尺度方法的思想很简单就是通过对原图滤波进而构建尺度空间。滤波是对于尺度或者时间变化的近似。对于高斯尺度空间滤波是通过原图与高斯核进行卷积得到的。高斯核的标准差越大得到的图像表示也更简单。但是高斯尺度空间是一种简单的尺度空间表示方法并不是唯一的线性空间。高斯尺度空间通过选择一些粗糙的尺度coarser scales来减少噪声并且增强突出的结构代价是损失了局部精度localization accuracy这是因为高斯模糊Gaussian blurring对所有尺度上的细节和噪声都进行了平滑而没有考虑目标objects的边界。
所以我们希望模糊的时候可以根据图像内容自适应地调整保留细节和边缘。庆幸的是非线性尺度空间已经被人提出来了更庆幸的是本文作者是第一个将其运用在特征检测和描述中的。然后作者分析了一下为什么放着现成的非线性尺度空间没人用主要是因为非线性空间方法中的forward Euler scheme需要很小的步长才能达到收敛所以计算量大导致效率不高所幸有人对此做出了改进主要是使用了AOS(Additive Operator Splitting)方法。AOS还可以解决线性方程的对三角系统具体方法是托马斯算法高斯提纯算法的一个特殊变形。
使用AOS方法和可变传导扩散建立了非线性空间从图像的不同变形中提取出重复性高和独特性强的特征点。特征点命名为KAZE在日语中是风的意思为了纪念尺度空间分析之父日本学者Iijima。同时风在自然界中也是由于非线性流动造成的与图像中的非线性扩散很像。
2 Related Work
主要讲了SIFT和SURF算法。SIFT是在DoG中寻找极值。SURF受SIFT的启发使用了积分图从而可以使用盒子滤波对对高斯derivatives进行近似而不是在整个尺度空间进行计算。在计算描述子时在邻域使用Haar小波。还提到了两种SURF的改进CenSurE和M-SURF。KAZE相比于SURF适当牺牲了一点计算量但在特征点检测和描述上取得了很大的进步。
Nonlinear Diffusion Filtering
非线性扩散方法图像亮度L的在不同尺度的演变描述为流动方程flow function的散度divergence。这个过程由非线性偏导方程来表示 这个方程中包括了散度divergence和梯度gradient。方程中除了图像的坐标xy还有一个参数是t它表示了尺度t越大图像表示也越简单。
其中传导函数是很重要的也是文章的关键。传导函数应该根据图像内容做自适应。Perona和Malik提出了一种传导函数根据图像的梯度大小减小在边缘处的扩散增强在区域内部的平滑。 其中 是对高斯平滑后的图像的梯度。传导函数c又引出了一个新的传导函数g K是对比度因子contrast factor控制了扩散的水平。g1提升了高对比度的边缘g2提升了宽区域部分。还有一种g3在边缘周围平滑的强度远大于穿过边缘的平滑。KAZE中默认使用g2. 关于k值的选择作者提到可以手动选择一个固定值也可以根据对图像梯度的估计做自适应的调整。K决定了哪些边缘被增强哪些边缘被取消canceled。作者选取了平滑过后的图像的梯度直方图的70%作为k值。图1展示了随着k值的增大只有梯度更大的边缘才会被保留。
3.2 AOS Schemes
对于非线性扩散滤波中的非线性偏微分方程没有解析解analytical solution。因此需要使用数值分析方法numerical methods来求取近似解。一个可能的离散化方法是linear-implicit和semi-implicit。离散差分方程的矩阵形式 是每一个维度的图像传导的矩阵形式。在semi-implicit中为了计算解 需要求解方程的线性系统。可以得到解 Semi-implicit在任意步长是稳定的。此外它创造了离散非线性扩散尺度空间。而且必须要求解方程的线性系统这个系统的矩阵是对三角并且对角占优的(Tridiagonal and diagonally dominant)。这样系统就可以使用高效的托马斯方法传统系统中熟知的高斯elimination方法。
4 KAZE Features
介绍一下KAZE特征点的检测和描述方法。首先使用AOS方法和可变的传导扩散构建非线性尺度空间尺度空间的大小由进化时间决定。 2D的特征点features of interest是在尺度空间上的尺度归一化的(scale-normalized determinant)Hessian矩阵响应的局部最大值。最后计算特征点的主方向考虑图像的一阶微分first order image derivatives实现尺度和旋转不变性。
4.1 非线性尺度空间的构建
和SIFT类似离散后的尺度空间包含O个octaves和S个sub-levels但是和SIFT不同的是KAZE的尺度空间始终是基于原图的操作而不是在每一层进行下采样。每一个子层的尺度因子可用下式表示 这里的尺度因子其实是以像素为单位的即高斯模板的大小以像素为单位我们需要将单位由像素转换到以时间为单位因为非线性扩散滤波器是根据时间定义的。二者的关系是 。这样就可以得到每一个子层以时间为单位的表达式。 需要注意的是t与 的关系只是在构建尺度空间时两种参数之间的对应关系二者对应得到的图像之间没有对应关系。不过当我们选择的扩散函数g是常数1的话可以得到等效于高斯尺度空间的结果。事实上在非线性尺度空间中随着进化的进行在大部分像素部分传导函数会趋于常数例外就是图像的边缘部分。
对于输入图像首先要进行高斯卷积减少噪声和其他人为因素artefacts的影响。计算图像的梯度直方图按照3.1小节得到对比度因子(contrast parameter) k然后使用AOS通过迭代就可以得到非线性尺度空间。 第一行是高斯线性尺度空间得到的图像。第二行是使用传导函数g3得到的非线性扩散尺度空间。
4.2 Feature Detection
特征点的检测首先要计算尺度归一化的Hessian在不同尺度下的响应值。为了实现尺度不变性差分算子需要根据尺度大小归一化因为空间导数的幅度随着尺度而下降。(For multiscale feature detection, the set of differential operators needs to be normalized with respect to scale, since in general the amplitude of spatial derivatives decrease with scale [5])
我的理解是这样的因为极值和SIFT中一样是空域和相邻尺度空间上的极值。但是在计算Hessian响应的时候要计算二阶偏导而导数大小会与尺度有关所以要归一化然后再比较寻找最大值。找到最大值之后再和SIFT一样利用泰勒展开对真正的极值点进行拟合逼近。
作者在计算一阶和二阶导数时使用的滤波器是3x3大小的Scharr因为这种滤波器可以更好地近似旋转不变性。虽然需要对每一个像素点计算多尺度下的导数但是我们把计算结果保存下来在计算描述子的步骤就可以重复使用从而降低计算量。
4.3 Feature Description
寻找主方向。和SURF方法一样利用特征点的邻域找到主方向。邻域是一个半径为 的范围 是特征点所在的尺度大小。 对邻域内的点计算x和y方向的梯度并且使用高斯进行加权(Gaussian centered at the interest point)这样越是靠近特征点的采样点的重要性就越高。在圆形的邻域内以60度的扇形为滑窗进行转动扫描计算扇形内的矢量之和挑选最长的矢量最为主方向。
建立描述子。使用M-SURF描述子来适应非线性空间。对于尺度大小为 的特征点在其 的矩形邻域内计算x和y方向的偏导。这个领域又被分成4x4个子区域每一个区域大小为 每两个子区域之间重叠 。对于每一个子区域对其高斯加权之后可以得到一个描述向量 这个向量是4维的那么4x4个子区域我们一共可以得到64维的描述子。但是在得到64维描述子之前还要对每一个子区域的向量再进行一次以特征点为中心的高斯加权。考虑到主方向矩形区域内的点都转到了主方向此外梯度的计算也根据了主方向。所以我们得到的64维描述子是旋转不变的。邹的博客中写到作者的代码提供了SURF、M-SURF和G-SURF三种描述向量其中G-SURF是作者在2013年发表的论文[7]中提出的新的特征描述算法。另外作者还提供了这三种向量的简化计算版本即将主方向固定为右上方up-right然后再计算描述向量。 5 Experimental Results and Discussion
实验图像来自mikolajczyk的数据集。他在牛津大学工作过所以这个数据集其实就是牛津大学的那个数据集。Mikolajczyk的主要研究内容就是图像和视频的识别和匹配而且这个大牛正在招博士生http://www.imperial.ac.uk/people/k.mikolajczyk。还是说这个数据集数据集里面包含了图像模糊、亮度变化、视角变化、尺度变化、缩放、旋转和JPEG压缩等图像序列。此外每组图像序列与其第一幅图像的真实变换关系是已知的。但是这个数据集没有考虑噪声的因素于是KAZE的作者自己建立了一个数据集使用递增的方差来模糊图像。Blur不算是对噪声的模拟吗
作者比较了SURF、SIFT和CenSurE。SURF通过一个闭源closed-source的库实现SIFT使用Vedaldi的库http://www.vlfeat.org/实现。CenSurE算法使用OpenCV的STAR检测器实现使用M-SURF作为描述子。几种方法的金字塔层数都设置为相同的特征点检测时候的阈值也设置为一个合适的值使得对一幅图像可以得到的特征点数目近似相同。
5.1 KAZE Detector Repeatability
两幅图像之间的检测器的重复度Repeatability的定义出现在文献13中它描述了可以匹配的点的数目和两幅图中出现的可见特征点数目的最小值之间的比值。至于什么叫特征点可以匹配作者提出了一个新的指标overlap error A和B是两个区域H是单应矩阵homography。如果overlap error小于50%就认为两个特征点可以匹配。 上图展示了不同图像变换下不同算法的重复度表现。可以看到不同的变换关系下表现最好的都是KAZE在模拟高斯噪声情况下KAZE的重复度比SURF和STAR高出20%比SIFT高出40%。其中又以传导函数g2表现最好。 更适合宽大区域如被Hessian检测出的blob-like features。 适用于高对比度的边缘如角点检测corner detection。 实验还对检测描述和匹配进行了综合评估。描述子使用文献14中的方法进行评估使用了precision和recall图。 对于没有视角和旋转变换的几组图像使用的描述子是upright版本的这种版本没有添加主方向。可以加快速度且性能良好。 上图就是precision-recall图使用的匹配策略是最近邻匹配。除了Boat和Graffti图像组其他图像组中KAZE都明显高于其他算法。即便在Boat和Graffti中KAZE的correspondences的数目也大约是SURF和SIFT的两倍算法示例的括号里面就是correspondences的数目。
5.3 Image Matching for Deformable Surfaces
除了在基准数据集benchmark datasets上进行评估还测试得到了表面变形deformable surfaces情况下的匹配结果。文献23中提出了一种变形表面上的检测方法可以从匹配对中剔除外点discard outliers。在检测与重建中在模板图像和目标图像中找出尽可能多的对应点correspondences是很重要的
图6就是在paper dataset上的实验结果。检测出两幅图像的特征点后实验最近邻比率法NNDR(nearest neighbor distance ratio)得到假定的匹配对putative correspondences然后使用文献23中的方法剔除外点。 a是paper dataset中的帧号为262的图像(b)的帧号为315(c)是不同NNDR比率下的内点inliers数量。可以看出在表面变形的例子中KAZE得到的内点数目更多。
5.4 Timing Evaluation
测试了以g2为传导函数的KAZE的各个步骤的耗时并和SURFSIFTSTAR进行了对比。
与SURF和STAR相比KAZE计算量更大最耗时的步骤是建立非线性尺度空间的过程。KAZE的耗时与SIFT相当。KAZE以计算机增加为代价得到了性能的提升。在改进中度图像的每一个尺度并行化AOS的计算业务AOS将整个扩散滤波分离成一维的独立的进程。
6 Conclusions and Future Work
作者使用AOS和可变传导扩散构建了非线性空间与之前的最优算法state-of-the-art methods如SIFTSURFCenSurE比较适度增加了计算量得到了检测和描述上的提升。
作者的下一步工作重心仍然放在非线性扩散滤波上一方面致力于更高质量的如文献21中的增强相干性的扩散滤波另一方面致力于通过简化或者硬件编程实现KAZE的加速。KAZE还可以用于大尺度目标的识别和3D重建。
邹宇华在博客中针对KAZE代码进行了优化可以接近SURF的速度。还对KAZE和SIFT做了详细的比较SIFT的代码可以自适应改变金字塔层数。KAZE使用KNNMatch不需要过滤误匹配对若使用BFmatch或者FlannMatch大部分需要过滤才能找到正确的Homography而有时又会因为过滤使得匹配对过少。博客中还将KAZE特征点检测方法和常规的描述方法做了组合使用表明传统基于线性空间的描述方法不适用于KAZE。
Reference
1.邹宇华https://blog.csdn.net/chenyusiyuan/article/details/8710462
2.akaze_trackinghttps://blog.csdn.net/Small_Munich/article/details/79418389
3.KAZE作者http://www.robesafe.com/personal/pablo.alcantarilla/kaze.html