- 博客(22)
- 收藏
- 关注
原创 流形上的预积分
博主读研后时间比较忙,很长时间没有更新博客了,之前的一家公司合作的一个和imu相关的项目,博主使用了预积分,由于预积分是不计算重力的,博主也没有专门说明,导致沟通交流不当,项目出现问题,因此今天特来写一个预积分的博客,希望大家喜欢。
2017-09-08 01:29:19
2958
2
原创 线程池
线程池这几天闲着没事,参考lsd-slam的线程池,做了一个更加泛化的版本,用的c++11的线程库,个人感觉还是比较强大的,拿出来和大家分享一下,代码在git上有托管,这是最新发布的1.2版本:ThreadPool线程池的使用这个东西是使用其实比较简单,只需要在项目里面加入ThreadPool.h头文件就可以正常使用,注意编译的时候打开-std=c++11编译flag以及-Wl,–no-as-nee
2016-08-02 21:06:48
796
1
原创 sd-slam源码解读第六篇:GlobalMapping
# lsd-slam源码解读第六篇:GlobalMapping标签(空格分隔): lsd-slam地图优化可以说是整个技术里面最简单的一部分了,核心其实就是g2o,可以看到这个里面代码也不多,总共加起来不到1000行,实际上就是这些工作,都是在为g2o服务g2oTypeSim3Sophus这个文件里面定义了图优化需要使用的基本定点class VertexSim3 : public g2o::Base
2016-07-02 20:42:28
5560
2
原创 lsd-slam源码解读第五篇:DepthEstimation
lsd-slam源码解读第五篇:DepthEstimation标签 : lsd-slam同样的,我希望在看这篇之前,读者已经对算法有了一定的了解,否则我估计这篇博客看起来会很吃力,如果还不太了解算法,建议先看第三篇:lsd-slam源码解读第三篇:算法解析 深度估计是整个lsd-slam最核心的部分,它和orb-slam在对深度的处理上有极大的不同,主要体现在: orb-slam直接使用了三角化,
2016-06-30 12:11:55
11029
3
原创 lsd-slam源码解读第四篇:tracking
lsd-slam源码解读第四篇:tracking标签(空格分隔): lsd-slam进入这一篇之前,我希望你已经很明白了lsd-slam的算法,这很重要,如果不明白算法,阅读后续的代码无异于阅读天书,如果不太明白算法,请先阅读我写的第三篇:lsd-slam源码解读第三篇:算法解析LGSX于是就进入了Tracking文件夹里的第一个类型LSGX,这里面有3个类,分别是LSG4,LSG6和LSG7,他们
2016-06-25 16:08:56
9892
2
原创 lsd-slam源码解读第三篇:算法解析
lsd-slam源码解读第三篇:算法解析标签: lsd-slam我希望朋友们看着篇博客的时候已经看过我写的第二篇:lsd-slam源码解读第二篇:DataStructures 与此同时对代码已经有一定的了解,如果有朋友还未下载到源码,请看我的第一篇:http://blog.csdn.net/lancelot_vim/article/details/51706832当你对Frame有一定的了解后,自
2016-06-21 22:41:00
14806
3
翻译 视觉定位原理:对极几何与基本矩阵
对极几何与基本矩阵标签(空格分隔): slam对极几何 本质上两幅图之间的对极几何是图像平面与以基线为轴的平面束的交的几何,这种几何被广泛同于双目成像原理中 如图所示,摄像机由相机中心C,C’以及各自的成像平面表示,对于任意一个空间中的点X,在两个像平面上的点分别为x,x’,第一幅图像上的点x反向投影成空间三维的一条射线,它由摄像机中心和x确定,这条射线向第二个图像平面上投影得到一条直线l’,显
2016-06-21 00:55:46
25267
1
原创 lsd-slam源码解读第二篇:DataStructures
lsd-slam源码解读第二篇:DataStructures第一篇: lsd-slam源码解读第一篇:Sophus/sophus在进入具体算法之前,我觉得有必要先明白内部数据是怎样储存的,所以第一篇之后的内容自然是数据结构,这些这些数据包括图像,深度预测,帧的ID,以及变换矩阵等等,如果你不太清楚变换矩阵(包括平移,旋转等)是什么,请看我写的源码解读第一篇的内容最科学的欣赏源码方式,必然是先看内存管
2016-06-19 01:27:21
6781
5
原创 lsd-slam源码解读第一篇:Sophus/sophus
lsd-slam源码解读第一篇:Sophus/sophus所谓slam即Real-time Simultaneous Localization and Mapping,实时定位与地图重建,lsd是一个大规模的单目视觉半稠密slam项目,优点和前景我就不多说了,做机器人和AR的朋友们估计早就已经铭记于心,在进入正题之前,我在这里给出官网和代码链接,有兴趣的朋友可以上去看看 官网:http://vis
2016-06-18 19:09:54
14992
9
原创 google deepMind DQN 源码解读(1)
google DQN 源码解读(1)首先train_agent.lua文件进入,执行第一行代码:if not dqn then require "initenv"end由于没有dqn这个变量,之后会跳转initenv.lua文件,对环境进行配置进入这个文件之后,瞬间可以得到一个table: dqn = {} 之后require一些文件,其中torch,nn,nngraph是torch自
2016-06-12 16:37:42
7561
1
原创 马尔可夫决策过程
马尔可夫决策过程马尔科夫决策过程马尔可夫决策过程是一个离散时间的随机过程,有六元组{S,A,D,P,r,J}\{S, A, D, P, r, J \}组成,六元组中: 1. SS有限维的环境状态空间 2. AA是有限维的动作空间,DD为初始状态的概率分布,如果初始状态的确定的,DD在该初始状态下的概率为1,当初始状态是以相等的概率从所有状态中选择时,DD可以忽略。 3. P(s,a,s′)∈[
2016-06-07 14:03:08
4647
原创 线性判别函数、判定面以及感知器
线性判别函数和判定面标签: 模式分类线性机不知道你还记不记得前面讲过的判别函数的问题(见概述,贝叶斯策略,最大似然估计) 一个”判别函数”是指由x的各个分量的线性组合而成的函数: g(x)=wTx+w0g(x) = w^Tx + w_0 这里ww是”权向量”,w0w_0被称为”阈值权”或者”偏置”,一般情况下有c个这样的判别函数,分别对应c类中的一类,我们总是选取gig_i取得最大值的那个类型(
2016-05-30 20:13:46
1666
原创 切空间距离
切空间距离标签(空格分隔): 模式分类在很多分类算法中,如果不加考虑地随意选择距离度量,会存在很多问题。例如,对于knn算法,如果不加考虑地使用了欧几里得距离即d=∑|xi−yi|2−−−−−−−−−√d = \sqrt{\sum|x_i - y_i|^2},那么在这个问题上可能给你带来毁灭性的结果。 \qquad \qquad \qquad \qquad \qquad 如上图所示,如果手写体
2016-05-25 16:27:45
1957
原创 概率神经网络实现Parzen窗方法
概率神经网络实现Parzen窗方法标签(空格分隔): 模式分类假设我们要实现一个Parzen估计,共有n个d维度的样本,都是随机从c个类别中选取的,这种情况下,输入层由d个输入单元组成,每个输入单元都与n个模式单元相连。每一个模式单元都与c个类别中的其中之一相连。 从输入层到模式层的连线表示为可以修改的权系数,这些系数都可以通过训练得到。这些权重可以用一个向量θ\theta表示,但为了与神经网络术
2016-05-24 17:10:00
1651
原创 非参数估计
非参数估计标签(空格分隔): 模式分类@author lancelot-vim概率密度的估计估计未知概率密度的一个基本事实是:一个向量x⃗ \vec{x}落在区域R中的概率为:P=∫Rp(x′)dx′P = \int_R p(x')dx',因此P是概率密度p(x)p(x)取了平滑的版本,所以,我们可以根据概率P来估计密度函数p.假设n个样本x1,x2, ... ,xnx_1, x_2,\ ... \
2016-05-24 16:06:17
1520
原创 第一个c++调用Lua程序
第一个c++调用Lua程序main.cpp#include <lua.hpp>#include <lualib.h>#include <stdio.h>#include <string.h>int main(){ char buf[256]; int error; lua_State *L = luaL_newstate(); luaL_openlibs(L);
2016-05-11 16:31:04
1437
原创 隐马尔可夫模型的计算
隐马尔可夫模型的计算标签: 模式分类@author lancelot-vim约定一些新的术语,并且将重新整理记号系统。通常把隐马尔可夫模型图称为有限状态机(finite state machine, FSM),如果网络内部得转移都和概率相关,那么这样得网络叫做马尔可夫网络。这种网络是严格符合因果关系的,因为下一时刻状态的概率,之和上一时刻状态有关,如果只要选择好相应得合适得初始状态,每个特定得状态发
2016-05-11 12:25:34
2388
1
原创 隐马尔可夫模型
隐马尔可夫模型标签: 模式分类@author lancelot-vim在一些与时间相关的问题中,我们会遇到t时刻发生的事件受t-1时刻发生事件的直接影响,处理这些问题时,隐马尔可夫模型(hidden markov model, HMM)得到了最好的应用,例如在语音识别或者手势识别领域,隐马尔可夫模型具有一组已经设计好的参数,他们可以最好地解释特定类别中的样本。在使用中,一个测试样本被归类为能产生最大
2016-05-11 09:43:54
1053
原创 主成分分析和判别函数
主成分分析和判别函数标签: 模式分类@author lancelot-vim主成分分析考虑n个d维的样本x1,x2...xnx_1, x_2...x_n ,如何使用一个d维的向量x0x_0,来代表这n个样本,确切说,我们希望这n个样本和它的代表x0x_0之间的距离的和越小越好,特别的,使用欧几里得距离来定义误差函数J0(x0)J_0(x_0):J0(x0)=∑nk=1||x0−xk||2J_0(x_
2016-05-11 09:42:23
1862
原创 充分统计量
充分统计量标签: 模式分类@author lancelot-vim定义我们把任何关于样本集DD的函数都称为一个统计量,一个充分统计量就是一个关于样本集DD的函数ss(允许是向量形式的函数),其中包含了能有助于估计某种参数θ\theta的全部相关信息,就是说我们希望充分统计量的定义能够有这样的约束条件:p(θ|s,D)=p(θ|s)p(\theta|s,D)=p(\theta|s) 举个例子说:对于
2016-05-11 09:20:42
20151
1
原创 贝叶斯估计
贝叶斯估计标签: 模式分类@author lancelot-vim类条件密度贝叶斯分类方法的核心是后验概率P(wi|x⃗ )P(w_i |\vec{x}) 的计算。贝叶斯公式告诉我们,如何根据类条件概率密度p(x⃗ |wi)p(\vec{x}|w_i) 和各类别的先验概率P(wi)P(w_i) 来计算这个后验概率,加入你有数据集DD,那么根据贝叶斯公式:P(wi|x⃗ ,D)=p(x⃗ |wi,D)
2016-05-11 09:18:29
5234
原创 概述,贝叶斯策略,最大似然估计
概述,贝叶斯策略,最大似然估计标签: 模式分类@author lancelot-vim绪论宽度和数量直方图:光泽度和数量直方图:宽度-光泽度联合分类图:简单归纳:从单一特征得到的分类一般不强将单一特征组合起来成多特征分类能得到更强的分类器分类器模型简单(如图中红色线条)会比较弱,分类器太强(如图中蓝色线条)可能会过分类以上问题,可能会存在如果鲈鱼分错,可能不会有太大的问题,但反之可能造成很大
2016-05-11 09:15:53
1462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人