角点检测方法总结
- 格式:docx
- 大小:55.16 KB
- 文档页数:4
双目立体视觉中角点检测的方法研究王苏娅【摘要】双目立体视觉是计算机视觉研究中最为活跃的一个分支,是智能机器人科学发展的重要标志.它是由不同位置的2台或者1台摄像机(CCD)经过移动或旋转拍摄同一场景,通过图像获取、摄像机标定、特征提取和匹配,进而通过计算空间点在2幅图像中的视差,获得场景的深度信息.本文在SUSAN角点检测的基础上,提出了基于图像平均灰度的阈值选取方法,使阈值的选取不再盲目,保证了用SUSAN算法进行角点检测的实用性和适用性.仿真试验表明,用该方法进行特征点的提取,减少了匹配时间,提高了匹配精度,得到了较好的效果.【期刊名称】《新技术新工艺》【年(卷),期】2013(000)004【总页数】3页(P55-57)【关键词】立体视觉;特征点提取;SUSAN算法;平均灰度【作者】王苏娅【作者单位】西安铁路职业技术学院,陕西西安710014【正文语种】中文【中图分类】TP391.4计算机视觉是一门研究如何使机器“看”的科学,其研究目的是使计算机具有通过二维图像信息来认知三维环境信息的能力,这种能力不仅使机器能感知三维环境中物体的几何信息(如形状、位置、运动姿态等),而且能进一步对它们进行描述、存储、识别与理解[1]。
双目立体视觉是计算机视觉的一个重要分支,即由不同位置的2台或者1台摄像机(CCD)经过移动或旋转拍摄同一幅场景,通过计算空间点在2幅图像中的视差,获得该点的三维坐标值。
计算机双目立体视觉系统包括图像获取、摄像机标定、特征提取、图像匹配和三维重建5个部分,如图1所示。
特征点的提取和匹配问题是本文研究的关键问题,在分析对比了Harris角点检测算法[2]、SIFT算法及SUSAN角点检测[3-4]算法等几个常用算法后,深入讨论了SUSAN角点检测算法,并对其进行了一定优化,最后结合实际图形进行了特征点的提取和匹配。
图1 计算机双目立体视觉系统1 SUSAN原理Harris和Stephen借鉴Moravec的思想,提出了著名的Plessey角点检测算子[5]。
达芬奇边角定位达芬奇边角定位(Corner Localization)是一种计算机视觉中的图像处理技术,用于精确定位图像中的角点。
角点是图像中两条边交汇的位置,具有明显的边缘变化。
达芬奇边角定位技术的应用范围广泛,包括图像拼接、目标检测、运动跟踪等领域。
一、角点检测的意义在图像中,角点是一种重要的特征点,具有以下几个特点:1. 角点是图像中边缘变化最为明显的位置,可以用来标识物体的边界;2. 角点在不同尺度下具有不变性,对图像缩放和旋转具有较好的鲁棒性;3. 角点是稀疏的,相比于图像中的其他像素点,角点的数量相对较少,因此可以用来进行特征匹配和跟踪。
二、达芬奇边角定位算法原理达芬奇边角定位算法的基本原理是通过检测图像中的边缘,并计算边缘的方向和梯度。
根据边缘的方向和梯度,可以判断该点是否为角点。
1. 边缘检测需要对图像进行边缘检测。
常用的边缘检测算法有Sobel算子、Canny算子等。
这些算法可以提取图像中的边缘信息,并计算边缘的方向和梯度。
2. 梯度计算在边缘检测之后,需要计算每个像素点的梯度。
梯度表示图像中像素值的变化程度,可以用来判断边缘的强度和方向。
常用的梯度计算方法有Sobel算子和拉普拉斯算子等。
3. 角度计算在计算梯度之后,可以根据梯度的方向计算角度。
角度表示边缘的方向,可以用来判断该点是否为角点。
常用的角度计算方法是使用反正切函数。
4. 角点判断通过计算边缘的方向和梯度,可以判断该点是否为角点。
一般来说,如果该点的梯度大于一定阈值,并且在其周围的邻域内没有其他边缘点,则可以认定该点为角点。
三、达芬奇边角定位的应用达芬奇边角定位技术在计算机视觉中有着广泛的应用。
以下是一些典型的应用场景:1. 图像拼接在图像拼接中,达芬奇边角定位可以用来确定重叠区域的角点,从而实现图像的自动对齐和融合。
通过检测角点,可以准确地找到两幅图像之间的对应点,进而实现图像的拼接。
2. 目标检测在目标检测中,达芬奇边角定位可以用来提取图像中的特征点,并根据这些特征点进行目标匹配。
Harris 角点检测算法编程步骤及示例演示也不说那么多废话了,要介绍啥背景意义之类的,角点检测,顾名思义,就是检测角点,最简单的就是两条线的交点了,还有比如下国际象棋的棋盘格子的交点之类的,反正就是检测这些点。
简单将Harris 角点检测算法的思想说下,就是拿一个小窗在图像中移动,通过考察这个小窗口内图像灰度的平均变换值来确定角点。
1)如果窗口内区域图像的灰度值恒定,那么所有不同方向的偏移几乎不发生变化;2)如果窗口跨越一条边,那么沿着这条边的偏移几乎不发生变化,但是与边垂直的偏移会发生很大的变化;3)如果窗口包含一个孤立的点或者角点,那么所有不同方向的偏移会发生很大的变化。
面给出具体数学推导:设图像窗口平移量为( u,v) ,产生的灰度变化为E(u,v),有E(u,v)二sum[w(x,y)[l(x+u,y+v)-l(x,y)F2棋中w(x,y)为窗口函数, l(x+u,y+v为平移后的灰度值,l(x,y)为平移前的灰度值。
有泰勒公式展开可得:l(x+u,y+v)=l(x,y)+lx*u+ly*v+0(uA2,v八2);lx,ly分别为偏微分,在图像中为图像的方向导数因此E(u,v)=sum[w(x,y) [lx*u+ly*v+O(u八2,v八2)]八2],可以近似得到E(u,v)=sum[w(x,y) [lx*u+ly*v]^2],即E(u,v)二[u,v][lx八2,lx*ly;lx*ly,ly八2][u,v]T令M=[lx八2,lx*ly;lx*ly,ly八2],因此最后对角点的检测成了对矩阵M的特征值的分析了,令M 其特征值为x1,x2;当x1>>x2或者x2>>x1,则检测到的是边缘部分;当x1,x2都很小,图像窗口在所有移动的方向上移动灰度级都无明显变化.当X1,X2都很大时且相当,检测到的是角点。
编程时用x1,x2不方便,因此定义角点响应函数;R二det(M)-k(trace(M))八2;其中det(M)为矩阵M的行列式,trace(M)为矩阵M的迹。
棋盘格检测方法
棋盘格检测可以采用局部平均自适应阈值化、图像膨胀、四边形检测和角点检测等方法。
具体步骤如下:
1. 局部平均自适应阈值化:用于分离各个黑块四边形的衔接,通过膨胀白色像素点来缩小黑块四边形并断掉衔接。
2. 图像膨胀:通过膨胀操作,进一步分离各个四边形。
3. 四边形检测:计算每个轮廓的凸包,进行多边形检测,判断是否只有四个顶点,若是则为四边形。
再利用长宽比、周长和面积等约束去除一些干扰四边形。
4. 角点检测:将每个四边形作为一个单元,根据邻近关系进行排序。
然后,取对角两个四边形相对的两个点的连线的中间点作为角点。
无邻近四边形的为干扰四边形,两个邻近四边形为边界处四边形,四个邻近四边形为内部四边形。
此外,为了提高棋盘格检测的稳定性和可靠性,可以考虑以下因素:
1. 局部自适应阈值化的窗口大小设置。
2. 膨胀的次数。
3. 该流程是否需要多次重复操作。
以上信息仅供参考,如有需要,建议咨询计算机视觉领域专业人士。
简述fast角点及其算法原理和实现过程FAST角点检测算法是一种用于在图像中快速检测角点的方法。
它的全称是Features from Accelerated Segment Test,即通过加速的线段测试提取特征。
FAST角点检测算法具有快速、稳定和鲁棒性强的特点,在计算机视觉和图像处理领域被广泛应用。
FAST角点检测算法的原理是基于图像中的像素点与其周围像素点之间的亮度差异。
根据角点的定义,角点处的像素点与其周围像素点具有明显的亮度差异。
FAST算法通过在像素点周围的圆上选择一组像素点,通过简单的亮度比较来判断是否为角点。
具体来说,FAST 算法选取一个像素点,选择与其相邻的16个像素点,并设定一个阈值t。
如果在这16个像素点中有n个像素点的亮度与中心像素点的亮度之差超过阈值t,且这n个像素点连续分布在圆上或圆上的某一段,那么该像素点就被判定为角点。
FAST角点检测算法的实现过程可以分为以下几个步骤:1. 选择阈值t和连续像素个数n:根据具体应用场景,选择合适的阈值t和连续像素个数n。
阈值t的选择直接影响到检测到的角点数量和质量,过高的阈值会导致角点数量过少,而过低的阈值则会导致角点数量过多。
连续像素个数n的选择则取决于角点的大小和形状。
2. 对图像进行灰度化处理:将彩色图像转换为灰度图像,以便于后续的像素亮度比较。
3. 遍历图像像素:从图像的第二行第二列像素开始遍历,对于每一个像素点,判断其是否为角点。
4. 判断像素点是否为角点:对于每一个像素点,计算其与周围16个像素点之间的亮度差异,如果有n个像素点的亮度差异超过阈值t,且这n个像素点连续分布在圆上或圆上的某一段,那么该像素点就被判定为角点。
5. 非极大值抑制:由于FAST算法的判定条件较宽松,同一个角点可能会被多个像素点检测到。
因此,在检测到角点后,需要进行非极大值抑制,保留亮度最大的角点。
通过以上步骤,就可以实现FAST角点检测算法。
关键点检测技术简介关键点检测技术是计算机视觉领域中的一项重要技术,它可以在图像或视频中自动检测出一些重要的特征点,这些特征点可以用于图像匹配、目标跟踪、三维重建等应用。
本文将对关键点检测技术进行简要介绍。
一、关键点检测的基本原理关键点检测的基本原理是在图像中寻找一些具有显著性、不易受到图像变换影响的特征点。
这些特征点可以是角点、边缘点、斑点等。
在检测过程中,通常会使用一些特定的算法来寻找这些特征点,例如Harris角点检测算法、SIFT算法、SURF算法等。
二、常用的关键点检测算法1. Harris角点检测算法Harris角点检测算法是一种基于图像灰度变化的角点检测算法。
它通过计算图像中每个像素点的灰度值变化率,来判断该点是否为角点。
该算法简单易懂,计算速度快,但对于一些复杂的图像场景,检测效果可能不太理想。
2. SIFT算法SIFT算法是一种基于尺度空间的关键点检测算法。
它通过在不同尺度下对图像进行高斯滤波,来寻找具有不同尺度的特征点。
该算法具有较好的旋转、缩放不变性,但计算量较大,对于实时性要求较高的应用场景不太适用。
3. SURF算法SURF算法是一种基于加速图像特征点检测的算法。
它通过使用快速哈希表等数据结构,来加速特征点的匹配和识别。
该算法具有较好的计算速度和鲁棒性,但对于一些复杂的图像场景,检测效果可能不太理想。
三、关键点检测的应用关键点检测技术在计算机视觉领域中有着广泛的应用。
例如,在图像匹配中,可以使用关键点检测技术来寻找两幅图像中的相同特征点,从而实现图像的对齐和融合。
在目标跟踪中,可以使用关键点检测技术来跟踪目标的运动轨迹。
在三维重建中,可以使用关键点检测技术来提取物体表面的特征点,从而实现三维模型的重建。
关键点检测技术是计算机视觉领域中的一项重要技术,它可以为图像匹配、目标跟踪、三维重建等应用提供有力的支持。
随着计算机视觉技术的不断发展,关键点检测技术也将不断得到改进和完善,为更多的应用场景提供更好的服务。
HarrisCorner(Harris⾓检测)在做图像匹配时,常需要对两幅图像中的特征点进⾏匹配。
为了保证匹配的准确性,所选择的特征必须有其独特性,⾓点可以作为⼀种不错的特征。
那么为什么⾓点有其独特性呢?⾓点往往是两条边缘的交点,它是两条边缘⽅向变换的⼀种表⽰,因此其两个⽅向的梯度变换通常都⽐较⼤并且容易检测到。
这⾥我们理解⼀下Harris Corner ⼀种⾓点检测的算法⾓点检测基本原理:⼈们通常通过在⼀个⼩的窗⼝区域内观察点的灰度值⼤⼩来识别⾓点,如果往任何⽅向移动窗⼝都会引起⽐较⼤的灰度变换那么往往这就是我们要找的⾓点。
如下图右下⾯我们看⼀下Harris的数学公式,对于[x,y]平移[u,v]个单位后强度的变换有下式,I(x+u,y+v)是平移后的强度,I(x,y)是原图像像素。
对于括号⾥⾯的值,如果是强度恒定的区域,那么它就接近于零,反之如果强度变化剧烈那么其值将⾮常⼤,所以我们期望E(u,v)很⼤。
其中w是窗函数,它可以是加权函数,也可以是⾼斯函数利⽤⼆维泰勒展开式我们有所以其中⼀阶可以近似为于是我们可以给出Harris Corner的如下推导,其中Ix,Iy是x,y⽅向的Gradient模,乘以位移得到位移后的量对于⼩的位移,我们可以⽤双线性插值⽅法近似:其中M为2*2矩阵如下在本质上我们可以把⼆次项看成⼀个椭圆函数,我们对M进⾏特征值分析有λ1,λ2根据λ1,λ2的值我们可以把其分为三类:1.λ1,λ2都很⼩且近似,E在所以⽅向接近于常数;2.λ1>>λ2,或者λ2>>λ1, E将在某⼀⽅向上很⼤;3.λ1,λ2都很⼤且近似,E将在所以⽅向上很⼤;如图所⽰:最后我们通过计算⾓点响应值R来判断其属于哪个区间其中k⼀般为常数取在0.04-0.06间。
算法步骤:1.计算图像x,y⽅向的梯度I x,I y2.计算每个像素点的梯度平⽅3.计算梯度在每个像素点的和4.定义在每个像素点的矩阵H,也就是前⾯的M5.计算每个像素的⾓点响应6.设置阈值找出可能点并进⾏⾮极⼤值抑制代码:close allclear allI = imread('empire.jpg');I = rgb2gray(I);I = imresize(I,[500,300]);imshow(I);sigma = 1;halfwid = sigma * 3;[xx, yy] = meshgrid(-halfwid:halfwid, -halfwid:halfwid);Gxy = exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));Gx = xx .* exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));Gy = yy .* exp(-(xx .^ 2 + yy .^ 2) / (2 * sigma ^ 2));%%apply sobel in herizontal direction and vertical direction compute the %%gradient%fx = [-1 0 1;-1 0 1;-1 0 1];%fy = [1 1 1;0 0 0;-1 -1 -1];Ix = conv2(I,Gx,'same');Iy = conv2(I,Gy,'same');%%compute Ix2, Iy2,IxyIx2 = Ix.*Ix;Iy2 = Iy.*Iy;Ixy = Ix.*Iy;%%apply gaussian filterh = fspecial('gaussian',[6,6],1);Ix2 = conv2(Ix2,h,'same');Iy2 = conv2(Iy2,h,'same');Ixy = conv2(Ixy,h,'same');height = size(I,1);width = size(I,2);result = zeros(height,width);R = zeros(height,width);Rmax = 0;%% compute M matrix and corner responsefor i = 1:heightfor j =1:widthM = [Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy(i,j)];R(i,j) = det(M) - 0.04*(trace(M)^2);if R(i,j)> RmaxRmax = R(i,j);endendend%% compare whith thresholdcount = 0;for i = 2:height-1for j = 2:width-1if R(i,j) > 0.01*Rmaxresult(i,j) = 1;count = count +1;endendend%non-maxima suppressionresult = imdilate(result, [1 1 1; 1 0 1; 1 1 1]); [posc,posr] = find(result == 1);imshow(I);hold on;plot(posr,posc,'r.');本⽂原创,转载请注明出处。
利用角点法及角点
角点在图像处理中是一个重要的概念,它可以用来描述图像中的特殊点,通常指的是图像中两条边缘相交的地方。
在计算机视觉和机器人技术中,利用角点法和角点进行目标检测、跟踪和定位等方面都有着广泛的应用。
在角点法中,主要是通过检测图像中的角点来进行目标跟踪和定位。
这种方法基于图像的灰度变化来检测角点,即在图像中检测出与周围像素有显著灰度差异的点。
角点的检测通常采用基于导数的方法,如Sobel算子、Laplacian算子等。
通过这些算子可以计算出图像中每个像素的梯度值,并利用梯度值来检测角点。
在角点的应用中,主要是用来进行图像配准、跟踪和定位等方面。
在医学图像处理中,利用角点法和角点可以实现对CT和MRI图像的
配准和分割等操作。
在机器人领域中,角点可以用于机器人的导航和环境识别等方面。
此外,在计算机视觉中,利用角点法和角点可以实现人脸识别、物体识别等应用。
总之,利用角点法和角点进行图像处理是一种非常有效的方法,它可以用于目标检测、跟踪和定位等方面,具有广泛的应用前景。
- 1 -。
图像特征提取方法详解图像作为一种重要的信息载体,广泛应用于各行各业。
在图像处理和计算机视觉领域,图像特征提取是一个非常重要的步骤。
它可以帮助计算机理解图像中的信息,进行图像识别、分类、目标检测等任务。
本文将详细介绍几种常用的图像特征提取方法,包括边缘检测、角点检测、纹理特征提取和颜色特征提取。
边缘检测边缘是图像中灰度变化最明显的地方,因此边缘检测是图像处理中的基本操作。
边缘检测的目的是找出图像中的边缘像素,常用的方法包括Sobel算子、Prewitt算子和Canny边缘检测算法。
Sobel算子和Prewitt算子是基于梯度的边缘检测方法,它们通过对图像进行卷积操作,找出图像中的垂直和水平边缘。
而Canny边缘检测算法则是一种多阶段的边缘检测方法,包括高斯滤波、计算梯度、非最大抑制和边缘连接四个步骤。
这些方法可以有效地提取图像中的边缘特征,为后续的图像识别和分析提供重要的信息。
角点检测角点是图像中突出的、明显的特征点,对于目标识别和跟踪非常重要。
角点检测的目的是找出图像中的角点像素,常用的方法包括Harris角点检测和Shi-Tomasi角点检测。
Harris角点检测是一种基于局部灰度变化的角点检测方法,通过计算图像中各个像素点的角点响应函数,找出图像中的角点。
Shi-Tomasi角点检测是对Harris角点检测的改进,它使用了更稳定的角点响应函数,对角点的检测结果更加准确。
这些方法可以帮助计算机找出图像中的关键特征点,为目标识别和跟踪提供重要的依据。
纹理特征提取图像的纹理特征是图像中的局部结构特征,对于图像分类和分割非常重要。
常用的纹理特征提取方法包括灰度共生矩阵、小波变换和局部二值模式。
灰度共生矩阵是一种描述像素间灰度关系的统计方法,通过统计图像中灰度级别相邻像素对的出现频率,来描述图像的纹理特征。
小波变换是一种多尺度分析方法,它可以将图像分解成不同尺度的小波系数,提取图像的纹理特征。
局部二值模式是一种描述像素点与其邻域像素点灰度关系的方法,通过对局部像素点进行二值化处理,来描述图像的纹理特征。
"Good Features to Track"(GFTT)是一种用于计算机视觉中特征点检测的方法。
它最初是由 Jianbo Shi 和 Carlo Tomasi 在论文 "Good Features to Track" 中提出的。
这个方法主要用于光流估计等计算机视觉任务中,通过选择图像中对于跟踪稳定且易于计算的特征点来提高算法的效果。
以下是Good Features to Track的主要思想和算法步骤:1. 角点检测: GFTT主要关注图像中的角点,因为角点通常在不同的图像之间更容易跟踪。
角点是图像中两个边缘交汇的地方。
2. Harris角点检测: GFTT基于Harris角点检测算法。
Harris 角点检测通过计算图像中每个像素点周围区域的灰度变化来判断是否存在角点。
这是通过计算特征值来完成的,其中至少一个特征值很大表示存在角点。
3. 响应函数: GFTT使用一个称为响应函数(response function)的值来评估每个像素点的角点特性。
该函数考虑了Harris角点检测中的特征值。
4. 非极大值抑制:为了确保选取的特征点分布均匀,GFTT使用非极大值抑制(non-maximum suppression)来消除冗余的特征点。
5. 阈值筛选:可以设置阈值,只保留响应函数值大于阈值的特征点,以进一步过滤掉一些不太显著的特征。
总体来说,GFTT的目标是选择那些在图像中容易跟踪的特征点,以便在光流估计等任务中提供更好的性能。
这一方法被广泛应用于计算机视觉领域,如目标跟踪、结构光等领域。
在实际应用中,除了GFTT,还有其他一些特征点检测算法,如SIFT(尺度不变特征变换)和SURF(加速稳健特征)等。
Halcon学习(十五)角点检测* This program compares the result of different operators* which detect points of interest*dev_update_off ()Dark := 100Background := 175Light := 250Angle := rad(45)Size := 3create_test_image (Image, Background, Light, Dark)dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, 0, 512, 512, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_color ('black')dev_set_line_width (3)** Foerstner interest points detectorpoints_foerstner (Image, 1, 2, 3, 200, 0.3, 'gauss', 'true', RowJunctions, ColJunctions, CoRRJunctions, CoRCJunctions, CoCCJunctions, RowArea, ColArea, CoRRArea, CoRCArea, CoCCArea)gen_cross_contour_xld (CrossFoerstner, RowJunctions, ColJunctions, Size, Angle)dev_display (Image)dev_display (CrossFoerstner)disp_message (WindowHandle, 'Foerstner interest points detector', 'window', 12, 12, 'black', 'true') disp_continue_message (WindowHandle, 'black', 'true')stop ()** Harris interest points detectorpoints_harris (Image, 0.7, 2, 0.04, 0, RowHarris, ColHarris)gen_cross_contour_xld (CrossHarris, RowHarris, ColHarris, Size, Angle)dev_display (Image)dev_display (CrossHarris)disp_message (WindowHandle, 'Harris interest points detector', 'window', 12, 12, 'black', 'true') disp_continue_message (WindowHandle, 'black', 'true')stop ()** Harris binomial interest points detectorpoints_harris_binomial (Image, 5, 15, 0.04, 1000, 'on', RowHarrisBinomial, ColHarrisBinomial) gen_cross_contour_xld (CrossHarrisBinom, RowHarrisBinomial, ColHarrisBinomial, Size, Angle)dev_display (Image)dev_display (CrossHarrisBinom)disp_message (WindowHandle, 'Harris binomial interest points detector', 'window', 12, 12, 'black', 'true')disp_continue_message (WindowHandle, 'black', 'true')stop ()** Sojka interest points detectorpoints_sojka (Image, 9, 2.5, 0.75, 30, 90, 0.5, 'true', RowSojka, ColSojka)gen_cross_contour_xld (CrossSojka, RowSojka, ColSojka, Size, Angle)dev_display (Image)dev_display (CrossSojka)disp_message (WindowHandle, 'Sojka interest points detector', 'window', 12, 12, 'black', 'true') disp_continue_message (WindowHandle, 'black', 'true')stop ()** Lepetit interest points detectorpoints_lepetit (Image, 3, 1, 20, 35, 'interpolation', RowLepetit, ColLepetit)gen_cross_contour_xld (CrossLepetit, RowLepetit, ColLepetit, Size, Angle)dev_display (Image)dev_display (CrossLepetit)disp_message (WindowHandle, 'Lepetit interest points detector', 'window', 12, 12, 'black', 'true')红色的create_test_image (Image, Background, Light, Dark)这个函数为外部函数(即自己所写函数)具体的过程创建见下一节。
常见特征检测算法介绍特征检测算法是计算机视觉领域中常用的技术之一,用于从图像或视频中提取出具有一定重要性或者代表性的特征点或区域。
这些特征点或者区域可以帮助我们进行图像匹配、物体识别、边缘检测等任务。
下面将介绍几种常见的特征检测算法。
1.SIFT(尺度不变特征变换)SIFT是一种基于局部特征的算法,最初由Lowe 在1999 年提出。
它通过寻找图像中的尺度和旋转不变性的关键点,来提取特征点。
SIFT 算法先对图像进行多尺度的高斯滤波,然后计算出尺度空间极值点。
随后,选取关键点并计算其主方向。
最后,通过在关键点周围的窗口里计算梯度直方图,生成特征描述子。
2.SURF(加速稳健特征)SURF是一种快速且具有不变性的特征检测算法,由Bay等人于2024年提出。
它采用了一种叫做积分图像的计算方法来加速特征的提取过程。
SURF 的关键点提取过程与SIFT 类似,但是采用了一种叫作Haar小波响应的方法来计算特征描述子。
3.FAST(特征快速)FAST 是一种具有高速性能的角点检测算法,由Rosten 和Drummond 在2024年提出。
它通过比较像素点灰阶值和邻域像素点的灰阶值来判断是否为关键点。
FAST 算法具有简单、快速和鲁棒的特点,被广泛应用于图像和视频中特征点的检测。
4. Harris 角点检测算法Harris 角点检测算法是一种基于图像灰度变化的特征检测算法,由Harris和Stephens 在1988 年提出。
它通过计算图像灰度在不同方向上的变化率,来判断一些像素点是否为角点。
Harris 角点检测算法简单、快速,且对光照变化和图像旋转具有一定的不变性。
5. ORB(Oriented FAST and Rotated BRIEF)ORB 是一种特征点检测和描述子生成算法,由Rublee等人于2024年提出。
ORB 算法结合了FAST 点检测和BRIEF 描述子生成算法,同时引入了旋转不变性和仿射不变性,提高了算法的鲁棒性和性能。
角点检测不确定度评定方法陈杰春;赵丽萍;郭鸣【摘要】提出一种评定角点检测不确定度的新方法.建立了一个像素强度不确定度数学模型,该数学模型在像素强度不确定度与像素强度和图像梯度之间建立了联系.给出了实现角点检测不确定度评定的具体方法:首先利用像素强度不确定度数学模型估计每个参与角点检测的像素的强度不确定度,然后再用蒙特卡罗方法估计出角点检测的不确定度.以经典SUSAN角点检测算子为例,对文中提出的角点检测不确定度评定方法进行了验证.实验结果表明,使用该方法能准确地估计出角点检测结果的不确定度.%This paper proposes a new method for uncertainty evaluation of corner detection. A mathematical model which relates the uncertainty of pixel intensity with the pixel intensity and image gradient is presented. To evaluate the uncertainty of corner detection, the uncertainty associated with the intensity of each pixel, which belongs to the target to be detected, is evaluated by using the mathematical model presented in the paper. Then the uncertainties associated with the output of a corner detector are evaluated by using Monte Carlo Simulation. The method was validated by using classical SUSAN corner detector as an example. The experimental results show that the uncertainty of corner detection can be evaluated accurately using this method.【期刊名称】《应用光学》【年(卷),期】2011(032)003【总页数】5页(P477-481)【关键词】角点检测;不确定度;评定;蒙特卡罗方法【作者】陈杰春;赵丽萍;郭鸣【作者单位】东北电力大学,自动化工程学院,吉林,吉林,132012;东北电力大学,理学院,吉林,吉林,132012;东北电力大学,自动化工程学院,吉林,吉林,132012【正文语种】中文【中图分类】TP391引言角点是二维数字图像中的重要特征之一,通常被定义为图像中亮度变化剧烈的点或图像边缘曲线上曲率极大值的点[1]。
角点检测(Corner Detection)
角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。
也称为特征点检测。
角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。
而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。
这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。
现有的角点检测算法并不是都十分的鲁棒。
很多方法都要求有大量的训练集和冗余数据来防止或减少错误特征的出现。
角点检测方法的一个很重要的评价标准是其对多幅图像中相同或相似特征的检测能力,并且能够应对光照变化、图像旋转等图像变化。
角点检测的方法有:Moravec角点检测算法,FAST角点检测算法,Harris角点检测法和
shi_tomas角点检测法等。
1.1.1Moravec角点检测算法
Moravec角点检测算法Moravec角点检测算法是最早的角点检测算法之一。
该算法将角点定义为具有低“自相关性”的点。
算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch 的相关性。
这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。
如果像素位于平滑图像区域内,周围的patch都会非常相似。
如果像素在边缘上,则周围的patch在与边缘正交的方向上会有很大差异,在与边缘平行的方向上则较为相似。
而如果像素是各个方向上都有变化的特征点,则周围所有的patch都不会很相似。
Moravec会计算每个像素patch和周围patch的SSD最小值作为强度值,取局部强度最大的点作为特征点。
Moravec角点检测算法有几个很明显的缺陷:1,强度值的计算并不是各向同性的,只有离散的8个45度角方向被考虑。
因为patch的评议比较最多只有8个方向;2,由于窗口是方形并且二元的,因此相应函数会有噪声;3,对边缘的相应太简单,因为强度值尽取SSD的最小值;
1.1.2 FAST角点检测算法
Edward Rosten and TomDrummond 在2006年提出了一种简单快速的角点探测算法,该算法检测的角点定义为在像素点的周围邻域内有足够多的像素点与该点处于不同的区域。
应用到灰度图像中,即有足够多的像素点的灰度值大于该点的灰度值或者小于该点的灰度值。
考虑下图中p点附近半径为3的圆环上的16个点,一个思路是若其中有连续的12个点的灰度值与p点的灰度值差别超过某一阈值,则可以认为p点为角点。
这一思路可以使用机器学习的方法进行加速。
对同一类图像,例如同一场景的图像,可以在16个方向上进行训练,得到一棵决策树,从而在判定某一像素点是否为角点时,不再需要对所有方向进行检测,而只需要按照决策树指定的方向进行2-3次判定即可确定该点是否为角点。
1.1.3 Harris角点检测
当一个窗口在图像上移动,在平滑区域如图(a),窗口在各个方向上没有变化。
在边缘上如图(b),窗口在边缘的方向上没有变化。
在角点处如图(c),窗口在各个方向上具有变化。
Harris角点检测正是利用了这个直观的物理现象,通过窗口在各个方向上的变化程度,决定是否为角点。
图2.1 Harris角点检测窗口移动图示
将图像窗口平移[u,v]产生灰度变化E(u,v)
由:,得到:
对于局部微小的移动量[u,v],近似表达为:
其中M是2*2 矩阵,可由图像的导数求得:
E(u,v)的椭圆形式如下图:
图2.2 E(u,v)的椭圆形式
定义角点响应函数R为:
Harris角点检测算法就是对角点响应函数R进行阈值处理:R > threshold,即提取R的局部极大值。
1.1.4 Shi-Tomasi 算法
Shi-Tomasi 算法是Harris 算法的改进。
Harris 算法最原始的定义是将矩阵M 的行列式值与M 的迹相减,再将差值同预先给定的阈值进行比较。
后来
Shi 和Tomasi 提出改进的方法,若两个特征值中较小的一个大于最小阈值,则会得到强角点。
如上面第二幅图中,对自相关矩阵M 进行特征值分析,产生两个特征值和两个特征方向向量。
因为较大的不确定度取决于较小的特征值,也就是,所以通过寻找最小特征值的最大值来寻找好的特征点也就解释的通了。
Shi 和Tomasi 的方法比较充分,并且在很多情况下可以得到比使用Harris 算法更好的结果。