学习
实践
活动
工具
TVP
写文章

ORB暴力匹配

import cv2 from skimage import transform as transform from skimage.feature import (match_descriptors, ORB imread('C:/Users/xpp/Desktop/Lena.png',0)#原始图像 img2=cv2.imread('C:/Users/xpp/Desktop/face.png',0)#原始图像 orb =cv2.ORB_create()#实例化 kp1,des1=orb.detectAndCompute(img1,None)#找出图像中的关键点#找出图像中的关键点 kp2,des2=orb.detectAndCompute matches[:30], None, flags=2)#前20个点绘制直线 pylab.figure(figsize=(20,10)) pylab.imshow(img3) pylab.show() 算法:ORB ORB算法结合了FAST算法与BRIEF算法优点,是目前最快的目标检测算法。 文献:Bian, J., Lin, W. Y., Matsushita, Y., Yeung, S.

10520

ORB关键点匹配

from skimage import transform as transform from skimage.feature import (match_descriptors, ORB, plot_matches rgb2gray(imread('C:/Users/xpp/Desktop/face.png')),img1.shape,anti_aliasing=True) descriptor_extractor=ORB (n_keypoints=200)#ORB关键点匹配 descriptor_extractor.detect_and_extract(img1) keypoints1,descriptors1=descriptor_extractor.keypoints Image2",size=20) pylab.show() 算法:ORB关键点检测是使用定向的FAST检测方法和旋转的BRIEF描述符。与BRIEF相比,ORB具有更大的尺度和旋转不变性。

12520
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Fast ORB-SLAM

    ORB-SLAM2是该领域的一种基准方法,但是ORB-SLAM2中描述子的计算非常耗时,并且必须选择图像作为关键帧,否则描述子无法重用。 在此基础上,本文提出了一种高效的轻量化视觉SLAM系统fast orb-slam。与ORB-SLAM2等间接方法不同,我们的方法只在帧被选为关键帧时计算描述子。 我们的方法比ORB-SLAM2快两倍,定位精度也很好。 ? ● 内容精华 系统介绍 Fast ORB SLAM,一个完整、健壮、重量轻的视觉SLAM系统。 从这个图中,我们的方法比ORB-SLAM2在两个数据集中产生了比ORB-SLAM2更好的精度,包括一个低纹理区域。 ? 与ORB-SLAM2相比,我们的方法运行速度几乎是ORB-SLAM2的两倍,具有很强的竞争力。

    47630

    ORB图像特征检测

    #ORB算法推导 ORB采用FAST (features from accelerated segment test) 算法来检测特征点。 ORB主要解决BRIEF描述子不具备旋转不变性的问题。当我们选取点对的时候,是以当前关键点为原点,以水平方向为X轴,以垂直方向为Y轴建立坐标系。 组成一个矩阵S 下面是OpenCV中的ORB实现函数 ORB::ORB(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold 匹配点集 std::vector<KeyPoint> keypoints_1,keypoints_2; ORB orb; orb.detect(img_1, keypoints _2; orb.compute(img_1, keypoints_1, descriptors_1); orb.compute(img_2, keypoints_2, descriptors

    55660

    ORB特征提取策略对ORB-SLAM2性能的影响

    前言 在ORB-SLAM2的论文中,作者提到了一种使图像中提取的ORB特征分布更加均匀的方法。这种策略是否有助于提高SLAM的性能?为什么作者不使用OpenCV中的ORB特征提取的实现? 本文将通过实验,比较这两种ORB特征提取方法对ORB-SLAM2性能的影响。 两种ORB特征器效果对比 随便从TUM数据集中取出一张照片,分别使用OpenCV的实现和ORB-SLAM2的实现提取1000个ORB特征,效果如下图。 大部分序列下,ORB-SLAM2版本的精度更高。fr1_xyz序列,OpenCV版本的精度稍高,但是和ORB-SLAM2的精度也差不太多。 总结 ORB-SLAM2中的ORB特征提取方法相对于OpenCV中的方法,提高了ORB-SLAM2的轨迹精度和鲁棒性。增加特征提取的均匀性可以提高系统精度,但是似乎会降低特征提取的重复性。

    43010

    图像特征点|ORB特征点

    ORB特征包括特征点和描述子。特征点用于筛选比较“特殊”的点,而描述子用来描述某个点周围的特征。接下来将分别介绍这两部分。 ORB特征点采用FAST(features from accelerated segment test)算法来检测特征点。 ORB并没有解决尺度一致性问题,在OpenCV的ORB实现中采用了图像金字塔来改善这方面的性能。ORB主要解决BRIEF描述子不具备旋转不变性的问题。 ORB算法最大的特点就是计算速度快 。 这首先得益于使用FAST检测特征点,FAST的检测速度正如它的名字一样是出了名的快。 最后我们来看一下在OpenCV里面使用ORB匹配的结果。 ?

    62020

    ORB_SLAM论文解读

    ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal在2015年提出的视觉SLAM系统,它吸取了以往SLAM系统的优点,是当前开源SLAM系统中对精度、速度和细节综合处理较好的一个 由于ORB-SLAM原始论文涉及内容较多,研究起来有一定的入门难度,笔者将ORB-SLAM的论文进行翻译和归纳整理,做成PPT的形式,方便研究参考,希望能对大家有所帮助。 ORB:an efficient alternative to SIFT or SURF. ICCV2011 [2]Raul Mur-Artal, J. M. M. Montiel et al. ORB-SLAM: a Versatile and Accurate Monocular SLAM System.IEEE TRANSACTIONS ON ROBOTICS 其中涉及射影几何方面的知识可以参考经典著作 ORB_SLAM详解_by_Hongwenxie_v1.pptx

    1.8K130

    OpenCV特征点检测——ORB特征

    目录 什么是ORB 如何解决旋转不变性 如何解决对噪声敏感的问题 关于尺度不变性 关于计算速度 关于性能 Related posts 什么是ORB ? ORB是是ORiented Brief的简称。 ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, ORB: an efcient alternative ORB就是试图解决上述缺点中的1和2. 如何解决旋转不变性: 在ORB的方案中,是采用了FAST作为特征点检测算子。FAST应用的很多了,是出名的快,以防有人不知道,请看这里: ? 关于计算速度: ORB是sift的100倍,是surf的10倍。 关于性能: 下面是一个性能对比,ORB还是很给力。点击看大图。 ? 特征的使用 看到OpenCV2.3.1里面ORB特征提取算法也在里面了,套用给的SURF特征例子程序改为ORB特征一直提示错误,类型不匹配神马的,由于没有找到示例程序,只能自己找答案。

    80770

    OpenCV特征点检测------ORB特征

    ORB算法 ORB是是ORiented Brief的简称。 ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, ORB: an efcient alternative ORB就是试图解决上述缺点中的1和2. 如何解决旋转不变性: 在ORB的方案中,是采用了FAST作为特征点检测算子。 关于计算速度: ORB是sift的100倍,是surf的10倍。 关于性能: 下面是一个性能对比,ORB还是很给力。点击看大图。 (ORB特征论文:ORB: an efficient alternative to SIFT or SURF.点击下载论文) 经过查找发现: 描述符数据类型有是float的,比如说SIFT,SURF描述符

    15110

    ORB-SLAM——a Versatile and Accurate Monocular SLAM System)

    ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统 摘要 本文提出了ORB-SLAM,在大小场景、室内室外环境下都可以实时操作的一种基于特征的单目SLAM系统。 我们已经在论文[11]中演示了基于ORB特征的位置识别性能。需要申明的是,虽然本文的方案中采用ORB算法,但所提出的技术并不仅限于该特征。 最后,根据保留的FAST的角点计算方向和ORB特征描述子。ORB特征描述子将用于算法后续所有的特征匹配,而不是像PTAM算法中那样根据图像区块的相关性进行搜索。 表4显示了PTAM算法和ORB_SLAM算法相对地面真值的误差。从表中数据可以看出,ORB-SLAM比PTAM可以更精准地多定位2倍的图像帧。 在该试验中,PTAM并没有实现重定位,而ORB-SLAM重定位了78%的图像帧,如表4所示。图8显示了ORB-SLAM重定位的一些实验图例。

    9820

    ORB-SLAM3系列-多地图管理

    然后一个新地图被初始化,具体的过程参考ORB-SLAM2和ORB-SLAM中的地图初始化过程。评判tracking是否失败的标准: 匹配的特征点的数量:当前帧和局部地图的匹配数量。 一旦有了候选关键帧,地图和匹配的地图点,就可以按照ORB-SLAM中进行重新定位。主要包括利用PnP进行鲁棒的位姿估计和RANSAC阶段,然后进行匹配搜索、进行只优化位姿的非线性优化。

    51510

    ORB-SLAM3系列-多地图管理

    然后一个新地图被初始化,具体的过程参考ORB-SLAM2和ORB-SLAM中的地图初始化过程。评判tracking是否失败的标准: 匹配的特征点的数量:当前帧和局部地图的匹配数量。 一旦有了候选关键帧,地图和匹配的地图点,就可以按照ORB-SLAM中进行重新定位。主要包括利用PnP进行鲁棒的位姿估计和RANSAC阶段,然后进行匹配搜索、进行只优化位姿的非线性优化。

    31220

    一文详解ORB-SLAM3

    摘要 ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。 和那些仅利用最新的几帧数据的里程计相比,ORB-SLAM3是第一个能够在所有算法阶段重用所有先前信息的系统。 ORB-SLAM3是基于ORB-SLAM2和ORB-SLAM-VI构建的系统,他可以在纯视觉或者视觉惯导的系统中鲁棒的运行(单目、双目和RGB-D利用针孔或者鱼眼模型,你也可以自己定义模型)。 在这些BAs之后,我们说地图已经成熟了,也就是说尺度、IMU参数和重力方向已经被准确地估计出来了,这种初始化方法比ORB-SLAM-VI和VI-DSO都好的多。 几何检验包括检验图像窗口中是否有和地图点描述子匹配的上的ORB特征点(汉明距离)。如果有几个匹配候选帧,首先去除不正确的匹配,还需要检验和排第二的候选帧比较距离比。

    66900

    Android OpenCV(五十七):ORB特征点FLANN匹配

    前言 Android OpenCV 系列的上一篇文章中,我们学习了 ORB 特征点的暴力匹配方式。 fun orbFeatures(source: Mat, keyPoints: MatOfKeyPoint, descriptor: Mat) { val orbDetector = ORB.create

    84630

    OpenCV中ORB特征提取与匹配

    OpenCV中ORB特征提取与匹配 FAST特征点定位 ORB - (Oriented Fast and Rotated BRIEF)算法是基于FAST特征检测与BRIEF特征描述子匹配实现,相比BRIEF ORB特征提取跟纯BRIEF特征提取相比较,BRIEF方式采用随机点方式得最终描述子、而ORB通过FAST得到特征点然后得到描述子。 旋转不变性 ORB比BRIEF方式更加合理,同时具有旋转不变性特征与噪声抑制效果,ORB实现选择不变性特征,是通过对BRIEF描述子的特征点区域的计算得到角度方向参数。主要原理是使用几何距公式。 ORB算法根据角度参数提取BRIEF描述子,实现旋转不变性特征。随机ORB算法通过贪心算法进一步发现低相关性描述子作为最终二值字符串描述子输出。 通常是256位的特征描述子,完整的ORB特征描述子算法流程图如下: ?

    3.3K71

    OpenCV官方:AKAZE和ORB目标检测对比

    介绍 在本教程中,我们将使用AKAZE和ORB本地特性来查找视频帧之间的匹配和跟踪对象运动。 ; Ptr<AKAZE> akaze = AKAZE::create(); akaze->set("threshold", akaze_thresh); Ptr<ORB> orb ::create("BruteForce-Hamming"); Tracker akaze_tracker(akaze, matcher); Tracker orb_tracker(orb ()->set("nFeatures", stats.keypoints); orb_res = orb_tracker.process(frame, stats); orb_stats (akaze_res, akaze_draw_stats); drawStatistics(orb_res, orb_draw_stats); vconcat(akaze_res

    41730

    一文详解ORB-SLAM3

    摘要 ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。 和那些仅利用最新的几帧数据的里程计相比,ORB-SLAM3是第一个能够在所有算法阶段重用所有先前信息的系统。 ORB-SLAM3是基于ORB-SLAM2和ORB-SLAM-VI构建的系统,他可以在纯视觉或者视觉惯导的系统中鲁棒的运行(单目、双目和RGB-D利用针孔或者鱼眼模型,你也可以自己定义模型)。 在这些BAs之后,我们说地图已经成熟了,也就是说尺度、IMU参数和重力方向已经被准确地估计出来了,这种初始化方法比ORB-SLAM-VI和VI-DSO都好的多。 几何检验包括检验图像窗口中是否有和地图点描述子匹配的上的ORB特征点(汉明距离)。如果有几个匹配候选帧,首先去除不正确的匹配,还需要检验和排第二的候选帧比较距离比。

    66120

    时隔多年,ORB-SLAM3终于来了

    首先回顾一下历史:ORB-SLAM首次在2015年被提出,它的改进版ORB-SLAM2在2017年被提出,同年提出了ORB-SLAM-VI,时隔3年,ORB-SLAM3横空出世,朋友圈、学术群里到处都在热议这个挂在 开始之前,先放两条ORB-SLAM3的展示视频撑撑场面。 ORB-SLAM3基于ORB-SLAM2以及ORB-SLAM-VI进行改进,上图是其系统框图。 这个改进使得ORB-SLAM3比ORB-SLAM2具有更高的精度。 场景识别 此处较为简单,与ORB-SLAM2基本类似,只是增加了重力向校验的步骤。 总结 基于ORB-SLAM/ORB-SLAM2以及ORB-SLAM-VI,本文提出了ORB-SLAM3,它是一个功能更加完整,性能更加出众的SLAM系统。

    70340

    ORB-SLAM3 Initializer.cpp函数解读

    Initializer::Initializer(const Frame &ReferenceFrame, float sigma, int iteration...

    16110

    扫码关注腾讯云开发者

    领取腾讯云代金券