主要内容

当地的特征检测和提取

当地的特点和他们的描述符,这是一个紧凑的向量表示当地社区,是许多计算机视觉算法的基石。他们的应用程序包括图像配准、目标检测和分类,跟踪和运动估计。使用当地的特性使这些算法能够更好地处理规模变化,旋转和闭塞。计算机视觉的工具箱™提供快速、哈里斯,ORB,和史&预探测角特性的方法,筛选,冲浪,KAZE和ms方法检测blob特性。工具箱包括筛选、冲浪、KAZE反常的,轻快的,ORB,猪描述符。你可以混合和匹配探测器和描述符取决于应用程序的需求。

地方特色是什么?

地方特色是指一个模式或不同结构中发现的一个图像,如一个点,边缘,或小图像块。他们通常与图像相关的补丁,不同于它的直接环境纹理,颜色,或强度。功能实际上代表了什么并不重要,只是,这是不同于它的环境。地方特色的例子有斑点、角落和边缘像素。

例1。角检测的例子
我= imread (“circuit.tif”);角落= detectFASTFeatures(我“MinContrast”,0.1);J = insertMarker(我,角落,“圆”);imshow (J)

利益和地方特色的应用程序

地方特色让你找到图像通讯不管闭塞,观察条件的变化,或存在的混乱。此外,地方特色的特性使其适用于图像分类、等图像分类与袋的视觉语言

使用当地的特性在两个基本方面:

  • 本地化锚点用于图像缝合或三维重建。

  • 为检测或分类表示图像内容紧凑,无需图像分割。

是什么造就了一个好地方特性?

基于探测器依靠梯度和强度变化的方法检测好地方特色。这些特性包括边缘,斑点,和地区。好地方特色展示以下属性:

  • 可重复检测:
    当给定两个同一场景的图像,大多数探测器特性,发现在这两个图片是相同的。特点是健壮的观看条件变化和噪声。

  • 独特的:
    周围的社区功能中心变化足以允许可靠的对比功能。

  • 可以定位的:
    功能有一个独特的位置分配给它。观察条件的变化不会影响它的位置。

功能检测和特征提取

特征检测选择区域的图像有独特的内容,如角落或斑点。使用特征检测来找到他们的兴趣点,您可以使用进行进一步处理。这些点并不一定对应于物理结构,如表的角落。特征检测的关键是找到本地特性保持不变,这样您就可以检测到它们即使在旋转或规模变化的存在。

特征提取包括计算描述符,通常是围绕区域检测功能。描述符依靠图像处理当地的像素邻域转换成一个紧凑的向量表示。这个新的表示许可比较社区无论规模或方向的变化。描述符,如筛选或冲浪,依靠当地梯度计算。二进制文件描述符,如轻快,ORB或反常,依赖于对当地强度差异,然后编码到一个二进制向量。

选择一个特征检测器和描述符

选择最好的特征检测器和描述符通过考虑应用程序的标准和你的数据的性质。第一个表将帮助您理解的一般标准来驱动您的选择。接下来的两个表提供详细的探测器和描述符可以在计算机视觉的工具箱。

考虑选择一个检测器和描述符

标准 建议

在你的图像类型的特性

使用一个探测器适合您的数据。例如,如果您的图像包含一个图像的细菌细胞,使用blob探测器而不是角落探测器。如果你的形象是一个城市的鸟瞰图,您可以使用角落探测器发现人造建筑。

上下文的使用特点:

  • 匹配要点

  • 分类

猪、冲浪和KAZE描述符适用于分类任务。相比之下,二进制文件描述符,如ORB、轻快和畸形,通常用于发现点图像之间的对应关系,这是用于注册。

类型的失真出现在你的图像

选择一个探测器和描述符,地址在您的数据失真。例如,如果没有规模变化,考虑一个角落探测器不处理规模。如果您的数据包含一个更高层次的变形,如规模和旋转,然后使用筛选,冲浪,ORB,或者KAZE特征检测器和描述符。冲浪和KAZE方法是计算密集型。

性能需求:

  • 实时性能要求

  • 精度和速度

基于二进制描述符通常更快但不准确比梯度描述符。更大的准确性,同时使用几个探测器和描述符。

选择一个检测函数基于功能类型

探测器 功能类型 函数 规模的独立
[1] 角落里 detectFASTFeatures 没有
最小特征值算法[4] 角落里 detectMinEigenFeatures 没有
角落探测器[3] 角落里 detectHarrisFeatures 没有
筛选[14] detectSIFTFeatures 是的
冲浪[11] detectSURFFeatures 是的
KAZE[12] detectKAZEFeatures 是的
轻快的[6] 角落里 detectBRISKFeatures 是的
女士[8] 地区统一的强度 detectMSERFeatures 是的
ORB[13] 角落里 detectORBFeatures 没有

请注意

检测函数返回对象包含的信息功能。的extractHOGFeaturesextractFeatures函数使用这些对象来创建描述符。

选择一个描述符方法

描述符 二进制 函数和方法 不变性 典型的使用
规模 旋转 发现点对应 分类
没有 extractHOGFeatures(,……) 没有 没有 没有 是的
枸杞多糖 没有 extractLBPFeatures(,……) 没有 是的 没有 是的
筛选 没有 extractFeatures(,”,方法”、“筛选”) 是的 是的 是的 是的
冲浪 没有 extractFeatures(,”,方法”、“冲浪”) 是的 是的 是的 是的
KAZE 没有 extractFeatures(,”,方法”、“KAZE”) 是的 是的 是的 是的
是的 extractFeatures(,”,方法”、“”) 是的 是的 是的 没有
轻快的 是的 extractFeatures(,”,方法”、“轻快的”) 是的 是的 是的 没有
ORB 是的 extractFeatures(,”,方法”、“ORB”) 没有 是的 是的 没有
  • 简单的像素附近的关键点

没有 extractFeatures(,”,方法”、“”) 没有 没有 是的 是的

请注意

  • extractFeatures函数提供了不同的提取方法最佳匹配您的应用程序的要求。当你不指定“方法”输入的extractFeatures函数,该函数会自动选择方法基于类型的输入点类。

  • 二进制文件描述符是快速但不精确的定位。他们不适合分类任务。的extractFeatures函数返回一个binaryFeatures对象。该对象允许Hamming-distance-based匹配度量中使用matchFeatures函数。

使用当地的特性

注册两个图片是一个简单的方法来了解地方特色。这个例子中发现两个图像之间的几何变换。它使用地方特色找到距离锚点。

显示两张图片

第一个图片是原始图像。

原始= imread (“cameraman.tif”);图;imshow(原始);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。”width=

第二个图片是原始图像旋转和缩放。

规模= 1.3;J = imresize(原始、规模);θ= 31;扭曲= imrotate (J,θ);图imshow(扭曲)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。”width=

检测原始和扭曲的图像之间的匹配特性

检测匹配冲浪功能的第一步是确定变换需要纠正扭曲的形象。

ptsOriginal = detectSURFFeatures(原始);ptsDistorted = detectSURFFeatures(扭曲);

提取特征和比较发现两张图片之间的气泡

相对应的检测步骤大概发现了几个团结构在两个图像。比较发现blob特性。这个过程是通过特征提取,确定本地块描述符。

[featuresOriginal, validPtsOriginal] =extractFeatures(原,ptsOriginal);[featuresDistorted, validPtsDistorted] =extractFeatures(扭曲,ptsDistorted);

可能不是所有的原始点用于提取描述符。点可能会被拒绝,如果他们太接近的图像边界。因此,除了返回的有效点特征描述符。

补丁的大小用来计算描述符决定在特征提取步骤。补丁的大小对应的尺度特性检测。不管补丁的大小,这两个特征向量,featuresOriginalfeaturesDistorted在这样一种方式计算,它们的长度相等。描述符允许您比较检测功能,不管他们的大小和旋转。

找到候选人匹配

获得候选人之间的匹配输入的描述符的特性matchFeatures函数。候选人匹配暗示可以包含一些无效的匹配结果。相匹配的两个补丁可以显示但可能不是正确的匹配特性。桌子角落可以看起来像一个椅子的角落,但这两个特性显然不匹配。

indexPairs = matchFeatures (featuresOriginal featuresDistorted);

找到图像点位置

返回的每一行indexPairs包含两个指标之间的候选特征匹配图像。使用索引收集实际的图像点位置。

matchedOriginal = validPtsOriginal (indexPairs (: 1));matchedDistorted = validPtsDistorted (indexPairs (:, 2));

显示匹配的候选人

图showMatchedFeatures(原始的、扭曲、matchedOriginal matchedDistorted)标题(“候选匹配点(包括异常值)”)

图包含一个坐标轴对象。坐标轴对象与标题候选匹配点(包括异常值)包含4图像类型的对象,线。”width=

分析功能的位置

如果有足够数量的有效匹配,去除错误匹配。这个场景是RANSAC算法的有效技术。的estimateGeometricTransform2D函数实现M-estimator样品一致(MSAC),这是一个变种的RANSAC算法。MSAC发现几何变换和分离内围层(正确匹配)异常值(伪匹配)。

[tform, inlierIdx] = estimateGeometricTransform2D (matchedDistorted matchedOriginal,“相似”);inlierDistorted = matchedDistorted (inlierIdx:);inlierOriginal = matchedOriginal (inlierIdx:);

显示匹配的点

图showMatchedFeatures(原始的、扭曲、inlierOriginal inlierDistorted)标题(“匹配点(仅内围层)”)传说(“ptsOriginal”,“ptsDistorted”)

图包含一个坐标轴对象。坐标轴对象与标题匹配点(窗)包含4图像类型的对象,线。这些对象代表ptsOriginal ptsDistorted。”width=

验证计算几何变换

计算几何变换应用于扭曲的形象。

outputView = imref2d(大小(原始));恢复= imwarp (tform扭曲,“OutputView”,outputView);

显示图像和原始图像中恢复过来。

图imshowpair(原始的,恢复,“蒙太奇”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。”width=

图像配准使用多个特性

这个例子是建立在“使用本地功能”的结果的例子。使用多个探测器和描述符对使您能够结合和加强你的结果。多个双也非常有用当你不能获得足够的好比赛(窗)使用单一特征检测器。

加载原始图像。

原始= imread (“cameraman.tif”);图;imshow(原始);文本(大小(原始的,2),大小(原始的,1)+ 15,图片由麻省理工学院的,“字形大小”7“HorizontalAlignment”,“对”);

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象,文本。”width=

规模和原始图像创建旋转扭曲的形象。

规模= 1.3;J = imresize(原始、规模);θ= 31;扭曲= imrotate (J,θ);图imshow(扭曲)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。”width=

在图像检测的功能。使用的探测器第一,紧随其后的是冲浪探测器。

ptsOriginalBRISK = detectBRISKFeatures(原始,“MinContrast”,0.01);ptsDistortedBRISK = detectBRISKFeatures(扭曲了,“MinContrast”,0.01);ptsOriginalSURF = detectSURFFeatures(原始);ptsDistortedSURF = detectSURFFeatures(扭曲);

从最初的和扭曲的图像中提取描述符。轻快的特性使用默认反常的描述符。

[featuresOriginalFREAK, validPtsOriginalBRISK] =extractFeatures(原,ptsOriginalBRISK);[featuresDistortedFREAK, validPtsDistortedBRISK] =extractFeatures(扭曲,ptsDistortedBRISK);[featuresOriginalSURF, validPtsOriginalSURF] =extractFeatures(原,ptsOriginalSURF);[featuresDistortedSURF, validPtsDistortedSURF] =extractFeatures(扭曲,ptsDistortedSURF);

首先确定候选匹配,匹配反常的描述符,然后浏览描述符。获得尽可能多的特征匹配,从检测器和匹配阈值低于默认值。一旦你得到一个工作的解决方案,你可以逐步提高阈值,以减少所需的计算负载提取和匹配特性。

indexPairsBRISK = matchFeatures (featuresOriginalFREAK,featuresDistortedFREAK,“MatchThreshold”现年40岁的“MaxRatio”,0.8);indexPairsSURF = matchFeatures (featuresOriginalSURF featuresDistortedSURF);

获得的候选匹配点轻快和冲浪。

matchedOriginalBRISK = validPtsOriginalBRISK (indexPairsBRISK (: 1));matchedDistortedBRISK = validPtsDistortedBRISK (indexPairsBRISK (:, 2));matchedOriginalSURF = validPtsOriginalSURF (indexPairsSURF (: 1));matchedDistortedSURF = validPtsDistortedSURF (indexPairsSURF (:, 2));

可视化的假定的匹配。

图showMatchedFeatures (matchedOriginalBRISK原始的,扭曲的,matchedDistortedBRISK)标题(“假定的匹配使用的&狂”)传说(“ptsOriginalBRISK”,“ptsDistortedBRISK”)

图包含一个坐标轴对象。坐标轴对象使用快&狂与公认的标题匹配包含4图像类型的对象,线。这些对象代表ptsOriginalBRISK ptsDistortedBRISK。”width=

结合候选匹配快和冲浪的地方特性。使用位置属性结合的点位置的和浏览功能。

matchedOriginalXY =[matchedOriginalSURF.Location;matchedOriginalBRISK.Location];matchedDistortedXY =[matchedDistortedSURF.Location;matchedDistortedBRISK.Location];

确定的内围层分和几何变换快和浏览功能。

[tformTotal, inlierIdx] =estimateGeometricTransform2D (matchedDistortedXYmatchedOriginalXY,“相似”);inlierDistortedXY = matchedDistortedXY (inlierIdx:);inlierOriginalXY = matchedOriginalXY (inlierIdx:);

显示结果。结果提供了更多的比赛比使用单一特征检测器的例子。

图showMatchedFeatures(原始的、扭曲、inlierOriginalXY inlierDistortedXY)标题(“匹配点使用冲浪和快(窗))传说(“ptsOriginal”,“ptsDistorted”)

图包含一个坐标轴对象。坐标轴对象与标题匹配点使用冲浪和快(窗)包含4图像类型的对象,线。这些对象代表ptsOriginal ptsDistorted。”width=

比较原始和恢复图像。

outputView = imref2d(大小(原始));恢复= imwarp (tformTotal扭曲,“OutputView”,outputView);图;imshowpair(原始恢复,“蒙太奇”)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。”width=

引用

[1]Rosten E。,和T. Drummond. “Machine Learning for High-Speed Corner Detection.”9日欧洲计算机视觉。1卷,2006年,页430 - 443。

[2]Mikolajczyk, K。和c·施密德。“绩效评估当地的描述符”。IEEE模式分析与机器智能。问题10卷。27日,2005年,页1615 - 1630。

[3]哈里斯,C。,和M. J. Stephens. “A Combined Corner and Edge Detector.”第四届阿尔维愿景会议学报》上。1988年8月,页147 - 152。

[4],J。,和C. Tomasi. “Good Features to Track.”《IEEE计算机视觉与模式识别会议。1994年6月,第593 - 600页。

[5]Tuytelaars, T。,和K. Mikolajczyk. “Local Invariant Feature Detectors: A Survey.”基金会和趋势在计算机图形学和远见。3卷,第三期,2007年,页177 - 280。

[6]Leutenegger, S。,M. Chli, and R. Siegwart. “BRISK: Binary Robust Invariant Scalable Keypoints.”《IEEE国际会议。ICCV, 2011年。

[7]nist, D。,和H. Stewenius. "Linear Time Maximally Stable Extremal Regions."10日欧洲计算机视觉。法国马赛的:2008年,5303号,183 - 196页。

[8]Matas, J。,O. Chum, M. Urba, and T. Pajdla. "Robust wide-baseline stereo from maximally stable extremal regions."英国机器视觉会议学报》上。2002年,页384 - 396。

[9]Obdrzalek D。,S. Basovnik, L. Mach, and A. Mikulik. "Detecting Scene Elements Using Maximally Stable Colour Regions."通信在计算机和信息科学。La Ferte-Bernard法国:2009,卷82 CCIS(2010 12 01), 107 - 115页。

[10]Mikolajczyk, K。,T. Tuytelaars, C. Schmid, A. Zisserman, T. Kadir, and L. Van Gool. "A Comparison of Affine Region Detectors. "国际计算机视觉杂志》上。65卷,1 - 2号,2005年11月,页43 - 72。

[11]湾,H。,A. Ess, T. Tuytelaars, and L. Van Gool. “SURF: Speeded Up Robust Features.”计算机视觉和图像理解(CVIU)。3号卷。110年,2008年,页346 - 359。

[12]Alcantarilla,功率因数,A. Bartoli, and A.J. Davison. "KAZE Features",7577年2012年大会,第六部分,信号214年,2012页

[13]Rublee E。,V. Rabaud, K. Konolige and G. Bradski. "ORB: An efficient alternative to SIFT or SURF." In2011年国际会议上计算机视觉学报》上,2564 - 2571。2011年西班牙巴塞罗那。

[14]劳,David G . .“独特的形象特征尺度不变的要点。”Int。j .第一版。愿景60,不。2 (2004):91 - 110。

相关的话题