自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hansry的博客

All that is real is rational, and all that is rational is real.

  • 博客(14)
  • 资源 (4)
  • 收藏
  • 关注

原创 SLAM学习——回环检测

1.回环检测回环检测的关键,就是如何有效的检测出相机经过同一个地方这件事。它关系到我们估计的轨迹和地图在长时间下的正确性。由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失后,我们还可以利用重定位。有些时候,我们把仅有前端和局部后端的系统称为VO,把带有回环检测和全局后端的系统称为SLAM。 回环检测的方法:基于里程计的几何关系和基于外观。 基于几何关系是说,当我们发现当...

2017-07-28 00:40:29 15755 6

原创 SLAM学习——后端(二)

1.投影模型和BA代价模型对于观测模型而言,我们可以简单的用以下的模型进行表示:z=h(x,y)上图中,P点是世界坐标系的点,中间的畸变模块满足:r2c=u2c+v2crc2=uc2+vc2r_{c}^{2}=u_{c}^{2}+v_{c}^{2}把观测返程抽象出来,有:z=h(x,y) ,这里的x指代此时相机的位姿,即外参R,t,对应的李代数为 ξξ\xi。路边y即为三维点p,若...

2017-07-27 01:10:40 2888

原创 SLAM学习——后端(一)

1.概述对于里程计而言,只有短暂的记忆。而在后端优化中,我们更加考虑一段更长时间内(或所有时间内)的状态估计问题。 与之前略有不同,我们令xkxkx_{k}为k时刻的所有未知量,包含了当前位姿与m个路标点,则写成表达式可为:xk=Δ{xk,y1⋯ym}xk=Δ{xk,y1⋯ym}x_{k}\overset{\Delta }{=}\begin{Bmatrix} x_{k}, & y_{1}...

2017-07-22 13:54:57 3404 1

原创 Ubuntu14.04 opencv2.4.8和opencv3.2多版本共存

首先,由于本人使用了ROS,因此在安装ROS的时候安装了ros-indigo-destop-full顺便安装了版本2.4.8的opencv,因为ROS里面的一些文件需要依赖于该版本的opencv,例如cv_bridge和image_pipeline。所以卸掉opencv2.4.8再装opencv3.2(因为有些代码需要用到opencv3)貌似不明智。故我们在原有的opencv2.4.8的版本基础上...

2017-07-18 16:50:55 8611 10

原创 设计前端(二)

1.特征提取和匹配前面我们所说的,仅凭俩帧的估计是不够的。我们会将特征点缓存成一个小地图,计算当前帧和地图之间的位置关系。忽略掉很多关键点,只关心当前帧与上一时刻帧(即参考帧),即我们只考虑如下图所示的运动:以传统的匹配特征点(ORB-slam)——求PnP的方法(接下来可以使用光流法/直接法——ICP求解ICP),流程如下图:1.对新来的当前帧,提取关键点和描述子。 2.如...

2017-07-17 23:29:43 524 1

原创 设计前端(一)

1.搭建VO框架A. SLAM库是一个小型库,库的组织结构如下:1.bin 用来存放可执行的二进制文件。 2.include/myslam存放SLAM模块的头文件,主要是.h文件,当把包含目录设到include,引用自己的头文件时,需要写include“myslam/xxx.h”。 3.src 存放源代码文件,主要是.cpp文件。 4.test 存放测试文件,也是.cpp文件。 5...

2017-07-17 19:33:29 818

原创 视觉里程计(四)

1.直接法如下图为空间点P在第一帧和第二帧的映射,而R,t(exp(ξ∧)exp(ξ∧)exp(\xi^{\wedge } ))则为第一帧到第二帧的转换矩阵。在直接法中,不通过特征法,而是通过相机的位姿(在直接法中是已知的)来估计第二个相机中的像素位置。直接法:当相机估计位置不好时,p2p2p_{2} 和 p1p1p_{1}的外观就会有差别。通过优化位姿,来减小差别。这个又是一个最小二...

2017-07-15 21:52:16 2004

原创 视觉里程计(三)

1.特征点法分析及改进特征法在视觉里程计中虽占主流,但是依旧有其缺点: 1.关键点的提取与描述子的计算非常耗时。 2.使用特征点时,忽略了出特征以外的所有信息。一副图像有几十万个像素,而特征点只有几百个,可能忽略了大部分有用的图像。 3.相机会运动到特征缺失的地方,如一堵墙一个空荡荡的走廊等。解决思路: 1.保留特征点,但只计算关键点,不计算描述子,同时使用光流法跟踪特征点运动。 ...

2017-07-14 22:04:08 2857 1

原创 视觉里程计(二)

1.3D-2D:PnPPnP(Perspective-n-Point)是一种求解3D到2D点对运动的方法。描述了当知道n个3D空间点及其投影位置时,如何估计相机的位姿。 对象:双目或RGB-D视觉里程计 原理:如果俩张图像中其中一张特征点已知,那么最少只需要3个点对(一个额外点验证结果) 优势:对比对极约束而言,PnP只需要3个点即可估计其相机的位姿PnP求解问题的方法:3对点估计位...

2017-07-12 22:57:06 4639

原创 SLAM——ORB特征提取、对极约束(E\F)、单应矩阵和三角测量

1.特征点法视觉SLAM主要分为视觉前端和优化后端。前端也称为视觉里程计(VO),根据相邻图像的信息估计处粗略的相机运动,给够后端提供较好的初始值。 VO的实现方法,按是否需要提取特征,可分为特征点的前端和不提特征点的直接法前端。VO的主要问题是如何根据图像估计相机的运动:从图像选取有代表性的点(路标),在相机发生微笑变化时会保持不变,接着从各个图片找到相同的点,进而讨论相机位姿估计问题。...

2017-07-12 00:58:52 11037

原创 Ceres库和g2o库的使用

1.Ceres库Ceres库向通用的最小二乘问题的求解,定义优化问题,设置一些选项,可通过Ceres求解。 Ceres求解的最小二乘问题最一般形式为:minx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤ujminx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤uj\underset{x}{min}\frac{1}{2}\sum_{i}p...

2017-07-11 16:09:45 6464 1

原创 SLAM学习——非线性优化

1.状态估计问题对于SLAM经典模型,我们知道是由一个运动方程和一个观测方程构成,如下方程:{xk=f(xk−1,uk)+wkzk,j=f(yj,xk)+vk,j{xk=f(xk−1,uk)+wkzk,j=f(yj,xk)+vk,j\left\{\begin{matrix} \mathit{x}_{k}=f(\mathit{x}_{k-1},\mathit{u}_{k})+\mathit{...

2017-07-10 23:07:42 5491 2

原创 SLAM学习——相机与图像

1.针孔模型一般而言,我们通过小孔成像来描述相机的成像原理,对其进行数学建模,如下图所示。其中O-x-y-z为相机坐标系,O’-x’-y’-z’为成像平面物理坐标系,o-u-v为像素坐标系,通过此几何模型,我们可以得到:Z/f=-X/X’=-Y/Y’,其中负号表示这个在成像平面上所形成的像是倒的,我们可以对该模型进行一定的处理,将负号去掉,得到以下模型:以上分别为真实成像平面、...

2017-07-10 16:05:36 2681

原创 SLAM学习——李群与李代数

1.李群与李代数基础三维旋转矩阵构成特殊正交群SO(3),而变换矩阵构成了特殊欧氏群SE(3):其中特殊正交群SO(3)和特殊欧氏群SE(3),对加法不封闭,而对乘法封闭。则有:群,是一种集合加上一种运算的代数结构,主要满足有:封闭性、结合律、幺元、逆等性质。而李群,则是指具有连续光滑性质的群。对于李代数,考虑任意旋转矩阵 R,会随着时间变化而变化,即为时间的函数:R(t)。 则有:通过对其时间的

2017-07-09 20:12:42 17791

Opencv2链接CUDA9.0中cmake修改版

opencv 2.4.* 链接cuda 9的时候会有依赖问题,通过修改opencv源码中的cmake, 可以解决opencv在cuda9.0编译上的依赖问题。

2019-05-29

图优化工具,G2o

In this document we describe a C++ framework for performing the optimization of nonlinear least squares problems that can be embedded as a graph or in a hyper-graph. A hyper-graph is an extension of a graph where an edge can connect multiple nodes and not only two. Several problems in robotics and in computer vision require to find the optimum of an error function with respect of a set of parameters. Examples include, popular applications like SLAM and Bundle adjustment.

2018-09-26

《Robotics, Vision and Control — Fundamental Algorithms in MATLAB》

《Robotics, Vision and Control — Fundamental Algorithms in MATLAB》

2018-04-06

机器学习实战源代码及数据

机器学习实战源码及数据,希望能帮到大家,希望多交流机器学习的相关算法及应用

2017-10-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除