-
转载 VINS 细节系列 - readIntrinsicParameter()
一、 相机标定参数读取trackerData[0].readIntrinsicParameter(sConfig_file)1、 readIntrinsicParameter()函数void FeatureTracker::readIntrinsicParameter(const string &calib_file){ m_camera = CameraFactory::instance()->generateCameraFromYamlFile(calib_f
2021-09-16 22:30:16 23 0
-
转载 参考系列2:优化库——ceres(三)实战案例
实战案例1.1 CmakeLists.txt配置cmake_minimum_required(VERSION 2.8)project(ceres)find_package(Ceres REQUIRED)include_directories(${CERES_INCLUDE_DIRS})add_executable(test test.cpp)target_link_libraries(test ${CERES_LIBRARIES})1.2 示例:ceres入门例子#i
2021-08-18 13:18:39 46 0
-
转载 参考系列2:优化库——ceres(二)深入探索ceres::Problem
1-1 ???? Problem类函数总览整个Problem函数内部的核心操作实际上是由类对象内部的internal::scoped_ptr problem_impl_; 操作的,这层关系就好比STL 提供的 queue 和stack和deque的关系,queue 和stac的内部实际上都是deque实现的专业术语叫做配接器 (adapters);秀一把C++概念(可不看) 容器 (containers) : 各种数据结构,如 vect
2021-08-18 13:00:38 54 0
-
转载 参考系列2:优化库——ceres(一)快速概览
1 ???? ceres快速概览基本概念对于任何一个优化问题,我们首先需要对问题进行建模,之后采用合适的优化方法,进行求解。在求解的过程中,往往需要进行梯度下降求取最优,这里涉及了导数计算。所以在代码中使用Ceres进行优化时,需要包含基本内容:建模、优化、求导方法。1.1 ????问题建模和求解1.1.1 问题建模对于形如 下 问题来说:这样便完成了一个优化问题的建模 !在写代码时,我们构建问题之后需要先定义代价函数,定义时需要指明求导方式,之后将残差块加入到
2021-08-18 11:29:36 54 0
-
转载 VINS-Mono 中的 liftProjective() 函数
在VINS-Mono中的视觉前端里,经常会使用 liftProjective() 这个函数,如下所示:for (unsigned int i = 0; i < cur_pts.size(); i++){ Eigen::Vector2d a(cur_pts[i].x, cur_pts[i].y); //a为像素坐标 Eigen::Vector3d b; m_camera->liftProjective(a, b); //b为无畸变的归一化坐标 cur_un_
2021-08-05 22:15:20 56 0
-
原创 相机、IMU、世界坐标系的转换关系
假设相机、IMU、世界坐标系的结构如下:
2021-05-31 22:05:18 563 0
-
转载 从零开始一起学习SLAM | 掌握g2o顶点编程套路
小白:师兄,上一次将的g2o框架《从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码》真的很清晰,我现在再去看g2o的那些优化的部分,基本都能看懂了呢!师兄:那太好啦,以后多练习练习,加深理解小白:嗯,我开始编程时,发现g2o的顶点和边的定义也非常复杂,光看十四讲里面,就有好几种不同的定义,完全懵圈状态。。。师兄,能否帮我捋捋思路啊师兄:嗯,你说的没错,入门的时候确实感觉很乱,我最初也是花了些时间才搞懂的,下面分享一下。g2o的顶点(Vertex) 从哪里来的?师兄:在《
2021-03-19 22:30:07 80 0
-
转载 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
小白:师兄师兄,最近我在看SLAM的优化算法,有种方法叫“图优化”,以前学习算法的时候还有一个优化方法叫“凸优化”,这两个不是一个东西吧?师兄:哈哈,这个问题有意思,虽然它们中文发音一样,但是意思差别大着呢!我们来看看英文表达吧,图优化的英文是 graph optimization 或者 graph-based optimization,你看,它的“图”其实是数据结构中的graph。而凸优化的英文是 convex optimization,这里的“凸”其实是凸函数的意思,所以单从英文就能区分开它们。
2021-03-19 22:04:47 125 0
-
转载 从零开始一起学习SLAM | 掌握g2o边的代码套路
小白:师兄,g2o框架《从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码》,以及顶点《从零开始一起学习SLAM | 掌握g2o顶点编程套路》我都学完啦,今天给我讲讲g2o中的边吧!是不是也有什么套路?师兄:嗯,g2o的边比顶点稍微复杂一些,不过前面你也了解了许多g2o的东西,有没有发现g2o的编程基本都是固定的格式(套路)呢?小白:是的,我现在按照师兄说的g2o框架和顶点设计方法,再去看g2o实现不同功能的代码,发现都是一个模子出来的,只不过在某些地方稍微改改就行了啊师兄:是这
2021-03-20 09:49:24 77 0
-
原创 常用导航坐标系 及 转换关系 (理论+程序)
一、坐标系定义与符号约定 在捷联惯导中,涉及到多种坐标系,下面给出常用的坐标系的定义: 1)惯性坐标系(i 系):以地球质心为原点, 轴指向地球自转轴, 轴位 于赤道面指向空间任意点, 轴与其构成右手系。该坐标系不随地球自转而转动, 但是由于地球质心绕太阳公转以及太阳系绕银河系公转,因此,该系不是绝对惯 性系,然而这些影响十分微弱,低于惯导的噪声水平,因而可以忽略不计,该系 可以认为是一个惯性系2)地心地固系(e 系):与大地测量中的 ECEF 系一致理解:某一时..
2020-12-01 15:33:23 3097 0
-
原创 slam project 出现 double free or corruption (out)问题
解决将set( CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3" )改成set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )就删掉了一个-march=native然后重新编译,居然就可以运行了 。————————————————
2020-06-13 20:10:38 831 6
-
原创 视觉SLAM 评测工具 evo
一、安装evo工具,git clone https://github.com/MichaelGrupp/evo.git然后进入evo文件夹pip install --editable . --upgrade --no-binary evo二、绘制或者导出一个或多个轨迹cd evo-master/test/dataevo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plo...
2020-11-18 15:56:30 205 3
-
转载 Ceres详解(三)最小二乘问题构建与求解
在前两讲中,我们研究了Ceres中代表最小二乘问题的 Problem类以及代表误差函数的类 CostFunction,本讲我们以Bundle Adjustment为例,研究如何利用这两个类构建最小二乘问题,并使用 ceres::Solve()函数求解。例子中使用的数据集为Bundle Adjustment in the Large数据集,完整的示例代码参见github。构建最小二乘问题首先我们需要构建一个BALProblem对象用于数据集的读取和存储,该类的源代码位于bal_probl.
2020-11-14 19:34:31 721 0
-
转载 Ceres详解(二) CostFunction
代价函数CostFunction与其他非线性优化工具包一样,ceres的性能很大程度上依赖于导数计算的精度和效率。这部分工作在ceres中称为 CostFunction,ceres提供了许多种 CostFunction模板,较为常用的包括以下三种:1、自动导数(AutoDiffCostFunction):由ceres自行决定导数的计算方式,最常用的求导方式。2、数值导数(NumericDiffCostFunction):由用户手动编写导数的数值求解形式,通常在残差函数的计算使用无法直接调用的
2020-11-14 19:27:29 1037 0
-
转载 Ceres 详解(一) Problem类
引言Ceres 是由Google开发的开源C++通用非线性优化库(项目主页),与g2o并列为目前视觉SLAM中应用最广泛的优化算法库(VINS-Mono中的大部分优化工作均基于Ceres完成)。Ceres中的有限边界最小二乘问题建模为以下形式:Ceres的求解过程包括构: 建最小二乘和求解最小二乘问题 两部分,其中构建最小二乘问题的相关方法均包含在Ceres::Problem类中,涉及的成员函数主要包括 Problem::AddResidualBlock()和 Problem::AddP
2020-11-14 18:59:11 889 0
-
原创 VINS 细节系列 - 光束法平差法(BA)Ceres 求解
一、理论部分学习过VINS的小伙伴应该知道,在SFM(structure from motion)的计算中 光束法平差法 - BA(Bundle Adjustment)的重要性!本人也是学习过一段时间后对其有了更加深刻的理解,那咱们就 先理论 后程序!1、 光束平差法 光束: 源于 bundle of light, 指的是三维空间中的点投影到像平面上的光束,而重投影误差正是利用这些光束来构建的,因此强调光束也正是描述其优化模型的来源!平差:感觉像测绘里面的内容!由于测量仪器的..
2020-11-12 16:05:45 1370 5
-
转载 VINS 细节系列 - 窗口优化
https://blog.csdn.net/heyijia0327/article/details/53707261
2020-11-09 15:03:07 244 0
-
原创 VINS 细节系列 - 特征点三角化
一、原理上一步通过对极几何约束估计了相机运动得到R、t;接下来,需要用相机的运动估计特征点的空间位置。三角测量:通过在两处观察同一个点的夹角,从而确定该点的距离。通过最小二乘法求解。s1*x1=s2*R*x2+t;已知R和t,分别求s1和s2;s1*x1^*x1=0=s2*x1^*R*x2+x1^*t;二、代码详解1、主框架int main(int ar...
2020-04-05 20:16:06 442 0
-
原创 VINS 细节系列 - Pnp (3D-2D)
一、概念PnP (Perspective-n-Point) 问题是在 已知特征点的世界坐标 及其在 某一相机位姿下的归一化坐标,求解 相机坐标与世界坐标 之间的 旋转矩阵和平移向量;PnP 问题有很多种求解方法,例如用三对点估计位姿的 P3P 、直接线性变换(DLT)、EPnP。此外,还能用非线性优化的方式,构建最小二乘问题并迭代求解,也就是万金油式的 Bundle Adjustment,具体理论可以看下面连接: https://blog.csdn.net/hltt3838/art.
2020-11-08 18:16:47 295 2
-
转载 VINS 细节系列 - 预积分
一、IMU的模型以t时刻,IMU作为参考系,我们能够得到以下的IMU模型:左边是IMU的测量值,包括了3轴的加速度,以及3轴的角速度信息;右边第一项是陀螺仪和加速度计的真值,第二项是偏移偏移,最后一项是测量噪声项。注意一点的是,由于IMU测量的时候,是除了重力加速度外,所有外力对IMU参考系力的和对系统产生的加速度,会把反向重力加速度测量在内。意思是,当IMU自由落体的时候,加速度的读数是0;IMU平放在桌子上的时候,读数是g。这里假设噪声 na,nb 是服从高斯正态分布,而 ba,
2020-11-06 12:12:22 319 0
-
转载 VINS 细节系列 - 坐标转换关系
前言在学习VINS-Mono过程中,对初始化代码中的坐标转换关系做出了一些推导,特意写了博客记录一下,主要记录大体的变量转换关系。相机和IMU的外参若需要VINS标定旋转外参,则进入以下代码: if (initial_ex_rotation.CalibrationExRotation(corres, pre_integrations[frame_count]->delta_q, calib_ric)) { ROS_WARN("initial extrin
2020-11-05 21:32:57 321 1
-
原创 VINS 细节系列 - 初始姿态 g2R() 问题
目录一、相关概念二、初始化重力对齐理论部分程序部分双目加IMU的初始化理论部分程序部分一、相关概念假设有IMU坐标系和相机坐标系如下:IMU 和 相机有规定其本身的x,y,z轴的方向1、imu 一般规定右前下分别为x,y,z轴2、相机一般认为,z轴平行于镜头朝外,x轴与像平面的水平方向一致,从左到右,y轴与像平面垂直方向一致,从上到下假如: 相机坐标系作为参考坐标系,解算出了 imu坐标系 在 cam坐标系 下的位姿: R ,tt...
2020-11-05 17:59:07 450 2
-
原创 VINS 细节系列 - IMU 相机 外参在线标定
一、概念所谓的外参是从 相机(Camera)坐标系 到 IMU坐标系 的相对旋 Rbc ,在该函数中用的ric表示的;其他过多的就不解释了,具体看我的博客:https://blog.csdn.net/hltt3838/article/details/109356748二、原理这里求解外参用的方法是最小二乘法,构建 AX = 0 的形式,然后使用奇异值分解(SVD)对 A 矩阵进行分解,最小奇异值对应的右向量就是 AX = 0 的非零解。下面就是构建最小二乘形式的过程:上.
2020-11-05 13:42:04 344 0
-
原创 VINS 细节系列 - 视差检查
一、原因为了保证系统的实时性和准确性,需要对当前帧之前某一部分帧进行优化,而不是全部历史帧,优化帧的个数便是滑动窗口的大小。不难理解,为了维持窗口大小,要去除旧的帧添加新的帧,即边缘化 Marginalization。到底是删去最旧的帧(MARGIN_OLD)还是删去刚刚进来窗口倒数第二帧(MARGIN_SECOND_NEW),就需要对 当前帧与之前帧 进行视差比较,如果是当前帧变化很小,就会删去倒数第二帧,如果变化很大,就删去最旧的帧 --- 理解一下这个意思!...
2020-11-04 16:57:34 335 0
-
原创 相机运动估计 三、 3D - 3D: ICP
1 SVD 方法 2 非线性优化方法于是,在非线性优化中只需不断迭代,我们就能找到极小值。而且,可以证明 [6],ICP 问题存在唯一解或无穷多解的情况。在唯一解的情况下,只要我们能找到极小值解,那么 这个极小值就是全局最优值——因此不会遇到局部极小而非全局最小的情况。这也意味着 ICP 求解可以任意选定初始值。这是已经匹配点时求解 ICP 的一大好处。 需要说明的是,我们这里讲的 ICP,是指已经由图像特征给定了匹配的情况下,进行 位姿估计的问题。在...
2020-11-03 11:19:44 228 0
-
原创 相机运动估计 二、3D - 2D
一、3D-2D: PnP 直接线性变换2 P3P3 Bundle Adjustment
2020-11-03 11:09:55 179 0
-
原创 SLAM 学习详细资料总结
SLAM大佬网站1、跟踪SLAM前沿动态论文,更新的很频繁https://github.com/YiChenCityU/Recent_SLAM_Research2、很全视觉slam资料大全https://github.com/tzutalin/awesome-visual-slam3、开源SLAM列表https://github.com/OpenSLAM/awesome-SLAM-list4、很全面的SLAM教程https://link.zhihu.com/?target=h
2020-10-20 07:58:50 384 2
-
转载 OpenCV函数精讲之 -- imread()函数
一、目标学习imread()函数正确读入图像的方式,imread()用不对,对以后的图像处理有很大的影响。有时候图片是灰度图,但是你用imread()读入后它就变成了彩色图,只不过它的三个通道的值是一样的。灰度图是单通道的。彩色图是三通道的(B,G,R),但是彩色图像的三通道的值相同时它也是灰色的。二、函数说明函数原型:Mat imread( const String& filename, int flags = IMREAD_COLOR );参数说明: 1. 第一..
2020-09-21 15:25:54 86 0
-
转载 Ceres Solver 具体案例分析
参考:https://blog.csdn.net/u014709760/article/details/88091720/一、简介本篇博客结合例子 详细 介绍一下 Ceres库 的基本使用方法Ceres 可以解决边界约束鲁棒 非线性最小二乘法优化问题,其概念可表达如下:其在工程和科学领域有非常广泛的应用,比如统计学中的曲线拟合,或者在计算机视觉中依据图像进行三维模型的构建等其中:别忘了 。。。。。使用流程使用Ceres求解非线性优化问题,可以分为三个...
2020-09-16 21:04:10 581 0
-
转载 处理关键帧、李群李代数、特征点法与直接法
SLAM已完成1、实现RANSAC随机采样一致性的框架,可以作为初值,然后再非线性优化求最优,优缺点 22、如何对匹配好的点做进一步的处理,更好保证匹配效果(汉明距离小于最小距离两倍、RANSAC)2、描述一下SIFT或者SURF特征检测,匹配(博客)3、简述一下Bundle Adjustment的过程(笔记以及知乎)4、如何求解Ax=b(博客)5、凸优化(博客)7、ICP迭代最近...
2020-05-03 18:49:21 332 0
-
转载 手推BA
介绍BABA本质是一个优化模型,目的是:通过最小化重投影误差/光度误差,来优化相机参数【R|t】以及路标世界点。BA是一个图优化模型,一般选择LM算法并在此基础上利用BA模型的稀疏性进行计算。BA:视觉重建中提炼出最优的3D模型和相机参数,每个特征点都会反射几束光线,当相机位姿和特征点位置做出最优调整后,这些光线收束到相机光心。根据相机的投影模型构造代价函数,利用非线性优化(GN或LM)求解...
2020-05-03 18:51:26 88 0
-
转载 RANSAC在图像匹配上应用
前言:1、如何对匹配好的点做进一步的处理,更好保证匹配效果答:1、汉明距离应小于最小距离两倍(二进制的描述子,不同位数的个数为汉明距离) 2、RANSAC消除误匹配2、RANSAC与最小二乘区别:最小二乘法尽量去适应包括局外点在内的所有点。相反,RANSAC能得出一个仅仅用局内点计算出模型,并且概率还足够高。但是,RANSAC并不能保证结果一定正确,为了保证算法有足够高的合理概率,必须小...
2020-05-03 19:38:37 129 0
-
转载 SLAM秋招知识点总结——自动驾驶算法、3D视觉岗位(附有解答)
前言本文为楼主在学习SLAM过程中相关知识点总结,包含多视图几何、常见SLAM系统源码解析、相关数学知识、图像处理问题、机器视觉知识点、《十四讲》精品总结、基本库安装等系列。这些知识点帮助我在2020年秋招面试自动驾驶岗位过程中有了系统认知。2020年新冠疫情影响滞留在家,把之前学习的知识点做了系统总结,所有问题都有解答,并附有链接,希望可以帮助到之后寻找相关岗位的同学。目录一、多视图几何求...
2020-05-03 19:58:54 177 0
-
转载 基本矩阵F、本质矩阵E、单应矩阵H的关系
前言:立体视觉几何中有以下问题:1.已知一幅图像中一点,如何寻找另一幅图像中这个点的对应点(可用光流法、特征点匹配法)2.已知两幅图像中两点是对应关系,如何求解两相机的相对位置和姿态【R|t】3.已知多幅图像中同一3D点的对应点,如何求解该3D点的3D坐标对极几何/基础矩阵 的出现可以解决问题2。之前有总结过:https://blog.csdn.net/try_again_later/...
2020-05-03 18:38:15 524 2
-
转载 卡尔曼滤波推导+贝叶斯滤波推导+粒子滤波推导
一、Kalman Filter1、前言1、两个传感器测量同一个信号,为了减小误差我们可以采用取平均的方式,进一步的我们采用加权平均(由方差大小分配),加权平均是一种静态分配方式。方差是随外界环境而变的,加权值也应该随之改变,这就是卡尔曼滤波出现的原因,它是一种动态更新加权值,不断迭代的算法。卡尔曼是对模型预测值以及传感器观测值加权平均,模型只有一个步长,x(k-1)得到x(k),其中x(k-1...
2020-05-03 20:18:02 258 0
-
转载 边缘检测算子Soble、Laplace、Canny
边缘指的是图像中像素的值有突变的地方。边缘检测一般分为三步,分别是滤波、增强、检测。基本原理都是用高斯滤波器进行去噪,之后在用卷积内核寻找像素梯度。常用有三种算法:canny算子,sobel算子,laplacian算子。***sobel算子:***一阶导数算子,引入局部平均运算,对噪声具有平滑作用,抗噪声能力强,计算量较大,但定位精度不高,得到的边缘比较粗,适用于精度要求不高的场合。lapl...
2020-05-04 08:24:41 674 0
-
转载 SIFT、SURF、ORB特征点检测与匹配
一、特征点检测算法1、SIFTScale Invariant Feature Transform,尺度不变特征变换。SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。SIFT算法主要有以下几个步骤:高斯差分金字塔的构建使用组和层的结构构建了一个具有线性关系的金字塔(尺度空间),这样可以在连续的高斯核尺度上查找图像的特征点;另外,它使用一阶的高斯差分来近似高斯的...
2020-05-04 08:36:23 1229 2
-
转载 理解SURF
先说结论Sift算法的优点 是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是: 计算量大,对边缘光滑目标的特征点提取能力较弱。Surf(Speeded Up Robust Features):是SIFT特征的一种近似计算,在相似性能甚至更好性能的同时提高了算法的速度。减少计算量体现在:1、尺度空间: 使用盒式滤波器结合积分图像,而非使用DOG高斯...
2020-05-04 09:09:20 546 0
-
转载 理解SIFT
最近看ORB-SLAM2源代码,构造Frame类部分出现了很多图像金字塔的内容,加上想起师兄和我讲的:图像算法岗的 SIFT、SURF、FAST、ORB 特征子肯定要会的呀,所以花了一晚上对SIFT特征子深入探究了下,期间感谢kyu_saku、Brook@CV以及zddhub、Rachel-Zhang的博客,根据上述博客对SITF由浅入深的进行理解。天涯路清晨对SIFT的介绍更清晰。...
2020-05-04 09:02:34 534 0
-
转载 手眼标定AX=XB原理
现在的机器人少不了有各种传感器,传感器之间的标定是机器人感知环境的一个重要前提 。所谓标定,是指确定传感器之间的坐标转换关系。 由于标定的传感器各异,好像没有特别通用的方法手眼标定法是标定摄像头与机械臂的一个经典方法,不过这个思想也适用于其他传感器,比如自动驾驶中激光雷达与摄像头之间的标定,比如东京大学的这篇工作《LiDAR and Camera Calibration using Motion Estimated by Sensor Fusion Odometry》。手眼标定法的核心公式只有一个,A.
2020-05-12 10:22:19 794 0
-
-
转载 视觉SLAM常见面试题 (中)
https://blog.csdn.net/weixin_44580210/article/details/91790044
2020-06-06 17:51:58 346 0
-
转载 视觉SLAM常见面试题 (下)
常见面试题1、 视觉SLAM框架及组成 a) SLAM即实时定位建图,按照使用的传感器分为激光SLAM(LOAM、V-LOAM、cartographer、gmapping)与视觉SLAM,其中视觉SLAM又可分为单目SLAM(MonoSLAM、PTAM、DTAM、LSD-SLAM、ORB-SLAM(单目为主)、SVO)、双目SLAM(LIBVISO2、S-PTAM等)、RGBD SLAM(KinectFusion、ElasticFusion、Kintinous、RGBD SLAM2、RT...
2020-06-06 09:01:10 4139 2
-
转载 视觉SLAM常见面试题 (上)
文章目录 1、 视觉SLAM方法一般分为 特征点法、直接法、和光流法,简述概念,及优缺点。 特征点法 直接法 光流法 2、 视觉SLAM常用相机包括:单目,双目,RGB-D相机,简述优缺点、常用的相机型号? 单目 双目...
2020-06-06 08:45:21 1168 0
-
原创 Eigen和Sophus 用法的详细介绍
一、Eigen提供了快速的矩阵线性代数运算,矩阵、向量、旋转矩阵、变换矩阵。Eigen是纯头文件搭建成的库,使用时只需引入Eigen的头文件即可,不需要链接库文件target_link。#include CMakeLists.txt需要添加头文件include_directories("/user/include/eigen3");1、基本运算...
2020-04-05 20:26:09 413 0
-
原创 相机运动估计 一、2D - 2D
本节内容已在笔记本进行推导分为2D-2D、3D-2D、3D-3D。三位场景中的同一个三维点在不同视角下的像点存在着一种约束关系:对极约束,基础矩阵E是这种约束关系的代数表示,并且这种约束关系独立与场景的结构,只依赖与相机的内参K和外参R t(相对位姿)。1、可以通过通过匹配的像点对计算出两幅图像的基础矩阵E,2、然后分解基础矩阵得到相机的相对位姿R t。本节内容对极约束通过...
2020-04-05 18:09:54 680 0
-
原创 非线性优化 (曲线拟合) 问题:高斯牛顿、g2o 方法总结
一、g2o图优化(General Graph Optimization)g2o最基本的类结构是怎么样的呢?我们如何来表达一个Graph,选择求解器呢?我们祭出一张图:先看上半部分。SparseOptimizer 是我们最终要维护的东东。它是一个Optimizable Graph,从而也是一个Hyper Graph。一个 SparseOptimizer 含有很多个顶点 (都继承自 Bas...
2020-04-05 16:59:35 570 2
-
转载 《视觉SLAM十四讲精品总结》3:OpenCV 与点云图
一、OpenCV 图像灰度图中,用0-255的整数表示灰度大小,一张宽度为640像素,高度为480像素分辨率的灰度图表示为:unsigned char image[480][640]二维数组,先行后列访问图像中某个像素,需要指明他的坐标,灰度值 I(x,y)的读数unsigned char pixel=image[y][x]遍历图像: for(int y=0;...
2020-04-05 16:56:24 227 0
-
转载 《视觉SLAM十四讲精品总结》5:VO——ORB特征提取和匹配
一、简介视觉里程计法:提取、匹配图像特征点,然后估计两帧之间的相机运动,给后端提供较好的初始值。角点的局限:例如:从远处上看上去是角点的地方,当相机走近后,可能就是角点了。或者,当旋转相机的时候,角点的外观会发生变换。进而,我们提出了SIFT,SURF,ORB特征。特征点由提取关键点和计算描述子两部分组成。关键点:该特征点在图像的位置,具有朝向、大小的信息。描述子:描述关键点...
2020-04-05 16:13:31 510 0