二鹏汽车资讯网

您现在的位置是: 首页 > 经典车型

文章内容

surf算法优缺点_surf算法的缺点_1

ysladmin 2024-06-18
surf算法优缺点_surf算法的缺点       surf算法优缺点的今日更新是一个不断发展的过程,它反映了人们对生活品质的不断追求。今天,我将和大家探讨关于surf算法优缺点的今日更新,让我们一起感受它
surf算法优缺点_surf算法的缺点

       surf算法优缺点的今日更新是一个不断发展的过程,它反映了人们对生活品质的不断追求。今天,我将和大家探讨关于surf算法优缺点的今日更新,让我们一起感受它带来的高品质生活。

1.目前较为成熟的测语速的算法有哪些

2.图像经过卷积计算后低层次特征有用吗

3.matlab中的surf和surfc怎么翻译?请详细点。急用!!!谢谢!

4.opencv 用python 使用surf算法计算出了最后的结果,绘出了图像,之后怎么找出目标位置

5.基于opencv的纸张表面质量检测算法中

surf算法优缺点_surf算法的缺点

目前较为成熟的测语速的算法有哪些

       根据不同的需求来进行不同的处理1空洞这个肯定是像素颜色和周边的不同建议用阈值分割然后轮廓检测2褶皱这个褶皱肯定会有梯度的变化建议检测边缘再计算褶皱的梯度信息3划痕这个和上一个问题相似但是也有不同应该是梯度的方向和强度不同(一个是凹一个是凸)4斑点如果只是点点星星的opencv里也有很多角点检测算法比如surffastORB等但是也不是每个必须独立对应着相应的方法,比如求边缘梯度的时候可以一次性处理处理好多信息。你往下做,还有疑问在这里提问就行,不用另开问题了。

图像经过卷积计算后低层次特征有用吗

       1. Fast算法原理

        我们前面已经介绍过几个特征检测器,它们的效果都很好,特别是SIFT和SURF算法,但是从实时处理的角度来看,效率还是太低了。为了解决这个问题,Edward Rosten和Tom Drummond在2006年提出了FAST算法,并在2010年对其进行了修正。

        FAST (全称Features from accelerated segment test)是一种用于角点检测的算法,该算法的原理是取图像中检测点,以该点为圆心的周围邻域内像素点判断检测点是否为角点,通俗的讲就是若一个像素周围有一定数量的像素与该点像素值不同,则认为其为角点。

        1. 1 FAST算法的基本流程

        在图像中选取一个像素点 p,来判断它是不是关键点。$$I_p$$等于像素点 p的灰度值。

        以r为半径画圆,覆盖p点周围的M个像素,通常情狂下,设置 r=3,则 M=16,如下图所示:

        设置一个阈值t,如果在这 16 个像素点中存在 n 个连续像素点的灰度值都高于$$I_p + t$$,或者低于$$I_p - t$$,那么像素点 p 就被认为是一个角点。如上图中的虚线所示,n 一般取值为 12。

        由于在检测特征点时是需要对图像中所有的像素点进行检测,然而图像中的绝大多数点都不是特征点,如果对每个像素点都进行上述的检测过程,那显然会浪费许多时间,因此采用一种进行非特征点判别的方法:首先对候选点的周围每个 90 度的点:1,9,5,13 进行测试(先测试 1 和 19, 如果它们符合阈值要求再测试 5 和 13)。如果 p 是角点,那么这四个点中至少有 3 个要符合阈值要求,否则直接剔除。对保留下来的点再继续进行测试(是否有 12 的点符合阈值要求)。

        虽然这个检测器的效率很高,但它有以下几条缺点:

        ·获得的候选点比较多

        ·特征点的选取不是最优的,因为它的效果取决与要解决的问题和角点的分布情况。

        ·进行非特征点判别时大量的点被丢弃

        ·检测到的很多特征点都是相邻的

        前 3 个问题可以通过机器学习的方法解决,最后一个问题可以使用非最大值抑制的方法解决。

        1. 2?机器学习的角点检测器

        选择一组训练(最好是跟最后应用相关的)

        使用 FAST 算法找出每幅图像的特征点,对图像中的每一个特征点,将其周围的 16 个像素存储构成一个向量P。

        每一个特征点的 16 像素点都属于下列三类中的一种

        根据这些像素点的分类,特征向量 P 也被分为 3 个子集:Pd ,Ps ,Pb,

        定义一个新的布尔变量$$K_p$$,如果 p 是角点就设置为 Ture,如果不是就设置为 False。

        利用特征值向量p,目标值是$K_p$,训练ID3 树(决策树分类器)。

        将构建好的决策树运用于其他图像的快速的检测。

        1. 3?非极大值抑制

        在筛选出来的候选角点中有很多是紧挨在一起的,需要通过非极大值抑制来消除这种影响。

        为所有的候选角点都确定一个打分函数$$V $$ , $$V $$的值可这样计算:先分别计算$$I_p$$与圆上16个点的像素值差值,取绝对值,再将这16个绝对值相加,就得到了$$V $$的值

        最后比较毗邻候选角点的 V 值,把V值较小的候选角点pass掉。

        FAST算法的思想与我们对角点的直观认识非常接近,化繁为简。FAST算法比其它角点的检测算法快,但是在噪声较高时不够稳定,这需要设置合适的阈值。

        2.Fast实现

        OpenCV中的FAST检测算法是用传统方法实现的,

        1.实例化fast

        参数:

        ·threshold:阈值t,有默认值10

        ·nonmaxSuppression:是否进行非极大值抑制,默认值True

        返回:

        Fast:创建的FastFeatureDetector对象

        2.利用fast.detect检测关键点,没有对应的关键点描述

        参数:

        gray: 进行关键点检测的图像,注意是灰度图像

        返回:

        kp: 关键点信息,包括位置,尺度,方向信息

        3.将关键点检测结果绘制在图像上,与在sift中是一样的

        示例:

        结果:

matlab中的surf和surfc怎么翻译?请详细点。急用!!!谢谢!

       本节主要介绍提取低层次特征信息的方要方法。在有些情形下,这些信息对理解图是足够的。但是,低层次特征提取函数的目的通常是为更高级分析提供信息。用于边界,角点和运动提取的方法,非常具有Robustness以及性能特久所必备的特性。

       基本概述

       低层次特征是不需要任何形状/空间关系的信息就可以从图像中自动提取的基本特征,如:常用地阈值方法就是作为点处理的一种低层次特征提方式。所有低层次方法都可以应用于高层次特征提取,从而在图像中找到形状。众所周知,我们可以从漫画家所描绘的画像识别人,这就是我们了解的第一种低层次特征,称之"edge detection"。它的目的要是要制作一个线图。有些技术比较基础,有些技术比较先进,我们了解其中一些最受欢迎的方法。一阶检测算子相于一阶微分法,二阶边缘检测算子相当于高一阶微分处理。边缘检测的另一种形式称相位一致性(phase congruency).其次,我们也考虑到一下角点检测,检测线条因高曲率而急转折处的那些点,看作是局部特征提取技术,以及更先进的方法将其扩展到对局部区域/兴趣块进行检测。本节由一阶、二阶边缘检测算子,其它边缘检测算子,相位一致性和局部特征检测这几部分具体内容组成。

       一阶边缘检测算子

       基于边缘检测的分析不易受整体光照强度变化的影响,许多图像理解方法都以边缘为基础。边缘检测强调的是图像对比度。检测对比度即亮度上的差别,可以增强图像中的边界特征,这些边界出现正是图像亮度上的差别。目标边界实际上是亮度级的阶梯变化,而边缘是阶梯变化的位置。可以使用一阶微分使边缘变化增强检测边缘位置,除当输入扫信号没有发生变化。

       亮度变化可能通过对相邻点进行差分处理来增强。对水平方向上的相邻点进行差分处于是可以检测垂直方向上的亮度变化,通常被称为水平边缘检测算子(horizontal edge detector).因为其差分值为零,所以水平算子寻不会显示水平方向的亮度变化。同时,需要一个垂直边缘检测算子对垂直方向上的相邻点进行差分处理,这样可以确定水平方向上,而不是垂直方向上的亮度变化,因而垂直边缘检测算子检测的是水平边缘。常见一阶边缘检测算子如下所述:

       Sobel边缘检测算子

       Sobel算子是两个Prewitte模板中心像素的权重取2倍的值。是由向量方式确定边缘的两个mask组成的。Sobel算子的这个通用形式缩合了一条坐标轴上最优平滑和另一条坐标轴上的最优差分。换而言之,Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。它对于象素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。

       

       由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。更为详细知识,请参考博文特征提取差分近似图像导数算子之Sobel算子。

       Canny边缘检测算子

       Canny边缘算子由三个主要目标形成:第一、无附加响应的最优检测,即不失去重要的边缘,不应有虚假的边缘;第二、实际边缘与检测到的边缘位置之间的偏差最小;第三、减少单边缘的多重响应而得到单响应。这一点被第一个目标是减少噪声响应。第二个目标是正确性,即要在正确位置检测到边缘。第三个目标限制的是单个边缘点结于亮度变化定位。Canny指出高斯算子对图像平滑处理是最优的。

       

       更为详细知识,请参考博文特征提取图像函数二阶导数过零点之Canny边缘检测算子。

       二阶边缘检测算子

       一阶边缘检测的前提是微分处理可以使变化增强,而且图像亮度在特征边界处存在变化。处理程如下图所示:

       图a图像数据的横截图,图b所示的一阶边缘检测的结果f'(x) = df/dx 是一个峰值,表示图a所示信号f(x)的变化比例最大。另外还可以采用高阶导数;应用于同样的横截图数据,图c所示的导数f"(x) = df'(x)/dx,当信号的变化比例最大时其值也最大,而当变化比例为常数时其值为0。在一阶导数的峰值位置变化比例为常数。这就是二阶导数过零点位置,并在此位置变正负符号。由此可知,除了一阶微分以外,另一个方法是应用二阶微分,并在二阶信息里找到过零点。

       Laplacian算子

       Laplacian算子是一个实现二阶微分的模板。二阶微分可以利用两个相邻一阶微分的差值来近似。如果将原始图像通过拉普拉斯变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。基于拉普拉斯变换的图像增强已成为图像锐化处理的基本工具。如下图所示:

?

       更为详细知识,请参考博文特征提取差分近似图像导数算子之Laplace算子。

       Marr-Hildreth算子

       Marr-Hildreth方法也是利用高斯滤波。理论上,需要一帧图像,它是图像高斯算子与图像进行卷积计算后的二阶微分。Marr-Hildreth算子的一个优点是赛马场能够给出封闭的边缘边界,而Canny算子不能。另一个优点是它能够避免延后Threshold的递归计算。更为详细知识,请参考博文特征提取Marr-Hildreth边缘检测器。

       LoG算子

       Laplacian of Gaussian计算可以利用高斯差分来近似,其中差分是由两个高斯滤波与不同变量的卷积结果求解获得。从两个平滑算子的差分得出的是二阶边缘检测。图下所示,在1-D空间,不同变量的两个高斯分布相减形成一个一维算子,其横截面图与LoG算子的形状是一样的。

       更为详细知识,请见参考博文特征提取LOG算子。

       DoG算子

       高斯函数的差分是可以通过将图像与高斯函数进行卷积得到一幅图像的低通滤波结果,即去噪过程,这里的Gaussian和高斯低通滤波器的高斯一样,是一个函数,即为正态分布函数。同时,它对高斯拉普拉斯LoG的近似,在某一尺度上的特征检测可以通过对两个相邻高斯尺度空间的图像相减,得到DoG的响应值图像。如下图所示:

?

       关于DoG算子更为详细知识,请见参考博文特征提取DOG算子。

       其它边缘检测算子

       边缘检测方法有许多。很显然,任何实现在计算成本和效率都要有折中。在有些情况下,很难判断Canny和Marr-Hilderth算子相关的复杂性。这一定程度在于图像本身。即:很少图像图像不含一些不利的noise。这些情形都需要要让边缘检测算子来处理。而且,找到形状后,经常需要提取许多低层次次信息,以便根据信息是否用来判断是用于更加精确的形状检测处理。

       SUSAN算子源于一个只想找出边缘方法,由于除了边缘,还可以用于找到corner并在保存结构的情形下减少图像noise,实质上,SUSAN处理是最小核相似区,主要累计以核为中心的模板各个成分之间的差质.更为详细知识,请见参考博文特征提取SUSAN算子。此算子还含有一个利用非极大值亦制计算边缘方向的方法。其优点是简便,因为处理简单,而且可以找到时其他特征类型扩展。

       相位一致性

       边缘检测算子的比较研究突出了它们的一些内在问题:不完全整Contour,Threshold选择和noise响应问题。当局部光照变化,选择单个阈值值通常不能用于图像中的所有区域。我们将发现其中有些问题可以在高层次上得到处理,因为高层次处理时形状提取可以调节部分数据而屏弃假的信息。

       相位一致性(phase congruency)方法是一个特征检测算子,它有两个主要优点:第一,可以检测大范围的特;第二、对局部和平滑光照变化具有不变性。正如其名,它是基于相位(即时间)考虑的频域处理。图下所示是显示检测出的1-D特征,其中特征是实线。

       图(a)所示的是有noise阶梯函数,图(b)所示的是峰值。通过Fouier变换分析,任何函数都是由不同频率的sina波控制叠加而成的。就阶梯函数而言,各个频率(图(a)中的虚线)都在同一时间上产生多种变化,叠加起来成为边缘。同样地,峰值是各个频率在同一时间达到峰值而产生的;图(b)中实线表示峰值,虚线表示其中一些组成的频率。这表明,为了找到我们相要的特征,可以确定一些同时发生事件点:这就是相位一致性。 通过一般化处理,一个三角形波由峰值和谷值组成:相位一致性意味组成信号的峰值各谷值是完全一致。图(a)所示的组成sina波是这样得到的,对一个阶梯(step)进行Fouier变换,然后根据其幅度和相位麦乳精确定那些sina波。

       这两个优点其实就是一致性检测具有局部对比度不变性:即使阶梯边缘强度变小,sina波不断叠加,其变化位置不变。在图像中,这意味着即使我们变化对比度,仍然可要检测边缘。如图下所示。

       图中图像右下方的建筑特在Canny算子图像中没有被检测到,而在相味一致性方法图中显示得很清楚。如查对度再次变化,那么canny算子参数也要重新的进行调整优化。而相位一致性方法不存在类似问题。

       定位特征提取

       通过测量特殊的图像特征来得到局部特征是传统的方法。其主要局部曲率的峰值(即:角点),利用角点来分析图像。以及一些最新方法,利用基于区域或图像块(SIFT,SURF)的分析来提高性能。首先,我们先介绍一些经典的算子检测方法。

       Trajkovic算子检测

       Trajkovic算子角点提取方法存在价值是在角点提取的效果上,它优于同时期的其他角点(如Moravec角点,Harris角点)提取方法,同时,从算法的运行速度角度而言,它比同是期的其他角点提取方法要快很多。Trajkovic在速度方面的表现于决定它能够应用对实时要求比较高的系统中。但是Trajkovic也有缺点是它不具备旋转不变性,对噪声比较敏感,对对角点的响应值比较大等。对于这些缺点也会有相应的方法,但不能完全的解决这些缺点。Trajkovic算子计算角点量是在一个小的圆形窗口内,并且考虑了所有通过圆心的直线,即计算了每一个可能的方向上的灰度值变化程度。更为详细知识,请见参考博文特征提取图像角点检测之Trajkovic算子。

       Moravec检测器

       Moravec的原理就是通过滑动二值矩形窗口寻找灰度变化的局部最大值。Moravec角点检测算法是最早的角点检测算法之一,虽然该算法有很多缺点而且实用性也很差,但是它是很多算法的基础,

       该算法将角点定义为具有低“自相关性”的。算法会检测图像的每一个像素,将像素周边的一个邻域作为一个窗口,并检测这个窗口和周围其他窗口的相关性。这种相关性通过两个窗口间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。如果像素位于平滑图像区域内,周围的窗口都会非常相似。如果像素在边缘上,则周围的窗口在与边缘正交的方向上会有很大差异,在与边缘平行的方向上则较为相似。而如果像素是各个方向上都有变化的特征点,则周围所有的窗口都不会很相似。Moravec会计算每个像素窗口和周围窗口的SSD最小值作为强度值,取局部强度最大的点作为特征点。更为详细知识,请见参考博文特征提取Moravec检测器。

       Harris检测器

       Harris角点检测器的优点是对二维平移和旋转,少量光照变化,少量视角变化都不每感,而且其计算其很小。另一方面,当有较大变化,视角变化以及对比鲜明的剧烈变化时,它就失去了原先的不变性。从经典的Harris角点检测方法不难看出,该算法的稳定性和k有关,而k是个经验值,不好把握,浮动也有可能较大。鉴于此,改进的Harris方法直接计算出两个特征值,通过比较两个特征值直接分类,这样就不用计算Harris响应函数了。另一方面,我们不再用非极大值抑制了,而选取容忍距离:容忍距离内只有一个特征点。该算法首先选取一个具有最大最小特征值的点(即:max(min(e1,e2)),e1,e2是harris矩阵的特征值)作为角点,然后依次按照最大最小特征值顺序寻找余下的角点,当然和前一角点距离在容忍距离内的新角点呗忽略。更为详细知识,请见参考博文特征提取Harris角点检测。

       区域/图像块分析:尺度不变特征变换(SIFT)

       SIFT算法主要包括两个阶段,一个是SIFT特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量;第二阶段是SIFT特征向量的匹配。SIFT方法中的低层次特征提取是选取那些显特征,这些特征具有图像尺度(特征大小)和旋转不变性,而且对光照变化也具有一定程度的不变性。此外,SIFT方法还可以减少由遮挡、杂乱和噪声所引起的低提取概率。更为详细知识,请见参考博文图像分析尺度不变特征变换(SIFT)特征提取分析。

       区域/图像块分析:SURF

       引入尺度不变的特征,主要的思想是每个检测到的特征点都伴随着对应的尺寸因子。当我们想匹配不同图像时,经常会遇到图像尺度不同的问题,不同图像中特征点的距离变得不同,物体变成不同的尺寸,如果我们通过修正特征点的大小,就会造成强度不匹配。

       为了解决这个问题,提出一个尺度不变的SURF特征检测,在计算特征点的时候把尺度因素加入之中。SURF与SIFT算法相似,SIFT算法比较稳定,检测特征点更多,但是复杂度较高,而SURF要运算简单,效率高,运算时间短一点。第一、SURF算法是对SIFT算法加强版,同时加速的具有鲁棒性的特征。第二、标准的SURF算子比SIFT算子快好几倍,并且在多幅下具有更好的鲁棒性。SURF最大的特征在于采用了harr特征以及积分图像integral image的概念,这大大加快了程序的运行时间。为了实现尺度不变性的特征点检测与匹配,SURF算法则先利用Hessian矩阵确定候选点,然后进行非极大抑制,计算复杂度降低多了。更为详细知识,请见参考博文图像分析SURF特征提取分析。

opencv 用python 使用surf算法计算出了最后的结果,绘出了图像,之后怎么找出目标位置

       surf:3-D shaded surface plot.surf是关键词surface的简写了。surfc中的c代表contour.等高线的意思。matlab命令基本是英文的简写。

基于opencv的纸张表面质量检测算法中

       这个用不着SURF。只需要聚色彩就可以了。芬达主要由橙色与黑色组成。只需要按橙色与黑色设计两个向量指标,立刻就可以看出来,只有芬达同时符合这两个峰值。

       你显然没有做过数据处理的经验。这个东西。甚至用不着opencv的核心功能。只需要用它的图像采集然后处理一下图像就可以了。

       当然芬达是一个对象。你还需要将对象与背景分享出来。这个时候,可以使用一些类似人脸识别的算法。

       但是换作是我自己。显然不会这样做。我只需要计算颜色距离相似度。把相似的颜色自动分成区域。然后计算区域的重心与离散度。就可以轻松分离出哪些区域是背景,哪些是对象。

       opencv里面是没有那种算法的,它只是提供一些常用的计算函数。具体的算法,由于你的需求比较特殊,相信应该没有现成的瑕疵检测算法,好在你的需求难度应该不大,通过常用的图像识别算法,比如纹理算法(Gabor算法)、SURF算法就可以找到白纸上瑕疵,这些瑕疵都是相当于一张白纸的特征点嘛!基本思想就是借用图像识别、匹配过程的思想——找图像上的特征点。白纸一般是提取不出特征点的,要是提取出来了,那就说明白纸上有东西(洞、褶皱或者异物)。

       今天关于“surf算法优缺点”的探讨就到这里了。希望大家能够更深入地了解“surf算法优缺点”,并从我的答案中找到一些灵感。