- 博客(66)
- 资源 (10)
- 收藏
- 关注

原创 视觉SLAM笔记--第8篇: DSO编译运行
DSO编译运行1. DSO编译运行1.1 安装依赖库1.2 编译1.3 运行测试1.4 测试结果2. 出现的问题2.1 evo评估问题1. DSO编译运行1.1 安装依赖库编译DSO依赖库包括:OpenCV(版本>3.0)Eigen3Pangolinziplib(不需要下载)前三个依赖库安装教程:安装教程;1.2 编译# 将DSO代码拷贝下来git clone https://github.com/JakobEngel/dso.git# 安装依赖库sudo apt-ge
2020-05-27 17:05:49
1951
2

原创 视觉SLAM笔记--第7篇: 单目相机位姿估计流程
单目相机位姿估计流程整体流程1. 坐标系变换2. 对极约束3. 单目初始化4. 三角测量5. 求解空间3D坐标6. 最小化重投影误差整体流程1. 坐标系变换已知:匹配的像素点对(u,v),(u′,v′)(u,v),(u^{'},v^{'})(u,v),(u′,v′),相机内参矩阵KKK求解:相机归一化坐标(X′,Y′,1)(X^{'},Y^{'},1)(X′,Y′,1)通过相机与像素间的坐标变换关系,可以得到下面公式:[uv1]=[fx0cx0fycy001][X′Y′1]\left[
2020-05-09 12:07:29
4655

转载 视觉SLAM笔记--第6篇: 单目初始化和三角测量
单目初始化和三角测量参考博客1. 三角测量2. 单目初始化参考博客参考博客:https://blog.youkuaiyun.com/llfjcmx/article/details/834103181. 三角测量在得到了相机的运动之后,下一步我们需要用相机的运动来估计特征点的空间位置,但是在单目SLAM中,仅通过单张图像是无法获得像素的深度信息的,需要用三角测量(三角化)的方法来估计地图点的深度。三角测量是指通过在两处观察同一个点的夹角,来确定该点的距离。考虑图像I1,I2I_{1},I_{2}I1,I2
2020-05-08 20:52:36
3692
1

原创 视觉SLAM笔记--第5篇: 基础矩阵F和单应矩阵H的推导过程,区别分析
基础矩阵F和单应矩阵H的推导过程,区别分析参考博客1. 基础矩阵F1.1 Essential Matrix1.2 Fundamental Matrix1.3 两者区别2. 单应矩阵H3. 基础与单应矩阵区别4. 详细推导求解参考博客参考博客:https://blog.youkuaiyun.com/try_again_later/article/details/886555631. 基础矩阵F1.1 E...
2020-05-07 22:16:35
3248
1

原创 视觉SLAM笔记--第4篇: 高斯牛顿法(GN)和列文伯格-马夸特算法(LM)的算法流程,优劣分析
GN和LM的算法流程,优劣分析参考博客数学基础(泰勒展开)1. 高斯牛顿法(GN法)1.1 基本原理1.2 GN迭代算法步骤1.3 优缺点2. 列文伯格-马夸特法(LM法)2.1 基本原理2.2 LM迭代算法步骤2.3 优缺点参考博客参考博客: https://blog.youkuaiyun.com/heshaofeng2ly/article/details/105812746#3GN_50参考博客:L...
2020-05-07 16:55:37
6418

转载 深度学习--第15篇: Pytorch保存和加载模型参数
Pytorch保存和加载模型参数参考博客1. 保存模型和参数2. 仅保存参数3. 加载pytorch预训练模型3.1 加载预训练模型和参数3.2 只加载模型不加载预训练参数参考博客参考博客: https://blog.youkuaiyun.com/lscelory/article/details/81482586pytorch的模型和参数是分开的,可以分别保存或加载模型和参数。pytorch有两种模...
2020-05-05 15:12:58
2197
1

原创 深度学习--第13篇: Pytorch优化器
Pytorch优化器1. 优化器含义2. 优化器Optimizer2.1 optimizer的属性2.2 optimizer的方法2.3 optimizer实例展示1. 优化器含义pytorch的优化器:管理并更新模型中可学习的参数的值,使得模型输出更接近真实标签导数:函数在指定坐标轴上的变化率方向倒数:指定方向上的变化率梯度:一个向量,方向为方向倒数取得最大值的方向2. 优化器...
2020-05-04 21:09:58
710

原创 深度学习--第12篇: Pytorch损失函数
Pytorch损失函数1. 损失函数概念2. 损失函数2.1 nn.CrossEntropyLoss2.2 nn.NLLLoss2.3 nn.BCELoss2.4 nn.BCEWithLogitsLoss2.5 其他损失函数1. 损失函数概念损失函数:衡量模型输出与真实标签的差异2. 损失函数2.1 nn.CrossEntropyLoss交叉熵损失函数,.功能:nn.LogSoft...
2020-05-04 15:55:35
572

转载 深度学习--第11篇: Pytorch权值初始化
Pytorch权值初始化参考博客背景知识1. 梯度消失和爆炸2. Xavier初始化2.1 Xavier均匀分布初始化2.2 Xavier正态分布初始化3. Kaiming初始化3.1 Kaiming正态分布初始化3.2 Kaiming均匀分布初始化参考博客参考博客: https://blog.youkuaiyun.com/weixin_42147780/article/details/103238195...
2020-05-04 09:10:48
1403
2

原创 深度学习--第10篇: Pytorch卷积层,池化层,线性层和激活函数层
Pytorch卷积层,池化层,线性层和激活函数层1. 卷积层 Conv Layer1.1 卷积 1d/2d/3d1.2 nn.Conv2d1.3 转置卷积 nn.ConvTranspose2. 池化层 Pooling Layer2.1 最大池化 nn.MaxPool2d2.2 平均值池化 nn.AvgPool2d2.3 最大池化上采样 nn.MaxUnpool2d3. 线性层 Linear Lay...
2020-05-03 15:11:30
6027

原创 深度学习--第9篇: Pytorch模型创建与nn.Module
Pytorch模型创建与nn.Module1. 模型创建步骤1.1 构建模型的两要素2. nn.Module属性2.1 torch.nn2.2 nn.Module3. 模型容器Containers3.1 nn.Sequential3.2 nn.ModuleList3.3 nn.ModuleDict3.4 容器总结4. AlexNet创建1. 模型创建步骤1.1 构建模型的两要素 - 构建子...
2020-05-02 22:56:58
1261
1

原创 深度学习--第8篇: Pytorch数据读取DataLoader与Dataset
Pytorch数据读取DataLoader与Dataset包含一个实例程序, 人民币二分类程序, 主要是学习数据集的划分和读取
2020-04-30 11:41:04
3302

原创 问题小记--第2篇: os常用模块
os常用模块1. 创建文件夹2. 目录与路径拼接3. 遍历目录与子文件4. 过滤序列后缀5. copy文件6. 数据分割实例1. 创建文件夹import os1. 创建文件夹os.makedirs(new_dir)实例:os.makedirs("./data")函数:# 判读路径下是否存在文件夹,没有则创建def makedir(new_dir): if not o...
2020-04-29 18:55:11
242
1

原创 深度学习--第7篇: Pytorch自动求导与逻辑回归
Pytorch自动求导与逻辑回归1. 自动求导 torch.autograd1.1 torch.autograd.backward1.2 torch.aurograd.grad2. 逻辑回归(线性二分类模型)3. 机器学习模型训练步骤1. 自动求导 torch.autograd1.1 torch.autograd.backward# torch.autograd.backward() 功...
2020-04-27 17:41:20
299

原创 深度学习--第6篇: Pytorch计算图与动态图机制
Pytorch计算图与动态图机制1. 计算图1.2 计算图实例2. 动态图1. 计算图通过计算图的示意,我们很容易的可以理解模型参数训练的过程,这个过程很像模型的前向传播和方向传播。节点表示数据, 边表示运算.叶子节点很重要,非叶子节点的梯度在计算后会被释放,以优化内存开销,当然可以使用retain_grad()保存.1.2 计算图实例import torchx = to...
2020-04-27 14:33:26
441

原创 深度学习--第5篇: Pytorch张量操作与线性回归
Pytorch张量操作与线性回归1. 张量操作1.1 张量拼接1.2 张量切分1.3 张量索引1.4 张量变换2. 张量运算3. 线性回归1. 张量操作dim : 表示张量的维度, 例如2维张量,dim=0或者1, 当dim=0表示对行方向处理; dim=1表示对列方向处理;对于多维张量,dim从小到大取值表示具体某一维度.实例: a = torch.ones([1,3])dim...
2020-04-26 21:03:06
438

原创 问题小记--第1篇: pytorch中随机初始化种子
随机数种子manual_seedtorch.manual_seed(seed)用于设计初始化种子,保证每次随机初始化数据时,得到的数据是相同的. 从下面的实例可以看出,随机初始化种子相当于固定了随机初始化的顺序,保证每次随机初始化的数据都是相同的.import torchseed = 10torch.manual_seed(seed) # 设置随机初始化种子 1a = torc...
2020-04-26 20:53:03
997
1

原创 深度学习--第4篇: Pytorch张量介绍与创建
Pytorch张量介绍与创建1. 张量介绍2. 张量创建2.1 张量数据类型2.2 直接创建2.3 依据数值创建(形状)2.3.1 torch.zeros()2.3.2 其他的张量创建函数1. 张量介绍张量是一个包含多个同类数据类型的多维数组, 是标量,向量和矩阵的高维拓展.Tensor与VariableVariable是torch.autograd中的数据类型,主要用于封装Tensor,...
2020-04-26 16:06:03
472

原创 深度学习--第3篇: Numpy
Numpy库常用操作1. Numpy常用属性2. 创建矩阵2.1 array创建矩阵2.1 获取矩阵属性2.2 创建矩阵关键字2.3 创建随机矩阵2.4 改变矩阵形状3. 矩阵的运算3.1 常规运算3.2 矩阵的乘法(点乘)3.3 矩阵的转置3.4 矩阵的逆3.5 常用矩阵函数4. 获取矩阵信息4.1 获取最值4.2 获取平均值4.3 获取方差4.4 获取标准差4.5 矩阵求和4.6 矩阵累积求和...
2020-04-25 14:36:03
329

原创 深度学习--第2篇: Anaconda+Pytorch(CPU版本)环境配置
Anaconda+Pytorch环境配置--CPU版本1. Anaconda下载安装2. 安装Pytorch2.1 创建虚拟环境2.2 激活虚拟环境2.3 安装CPU版本2.4 测试安装1. Anaconda下载安装参考上一篇博客: 博客链接2. 安装Pytorch2.1 创建虚拟环境conda create -n pytorch python=3.62.2 激活虚拟环境# 激活...
2020-04-21 13:07:38
784
1

原创 深度学习--第1篇: Anaconda+Tensorflow(CPU版本)环境配置
Anaconda+Tensorflow环境配置--CPU版本1. Anaconda下载安装1.1 清华镜像源下载1.2 Anaconda安装1.3 Anaconda环境变量2. 安装Tensorflow2.1 创建虚拟环境2.2 激活虚拟环境2.3 安装CPU版本1. Anaconda下载安装1.1 清华镜像源下载Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux...
2020-04-19 20:53:05
950
3

原创 视觉SLAM笔记--第3篇: SLAM轨迹评估工具(evo安装与使用)
SLAM轨迹评估工具--evo安装及使用1. evo安装1.1 更新pip1.2 安装evo2. evo使用2.1 数据集转换格式2.2 evo命令格式2.3 其他参数选项-[options]2.4 显示轨迹evo_traj2.5 绝对位姿误差evo_ape2.6 相对位姿误差evo_rpe3. 后续计划1. evo安装1.1 更新pip# 打开终端,笔者是在python2.7基础上更新,当...
2020-04-18 11:34:31
5143
7

原创 视觉SLAM笔记--第2篇: ORB_SLAM2编译运行
ORB_SLAM2编译运行1. ORB-SLAM2编译运行1.1 安装依赖库1.2 编译1.3 运行测试1.4 测试结果2. 出现的问题及解决方案2.1 "cv_bridge"问题2.2 链接库问题3. 后续计划1. ORB-SLAM2编译运行1.1 安装依赖库编译ORBSLAM2需要的第三方依赖库包括:OpenCV ( 版本 >2.4.3)Eigen3 (版本 > 3.1...
2020-04-17 22:57:57
1299
2

原创 C++编程--第1篇: CMakeLists.txt编写
CMakeLists.txt编写及应用1. 初级应用2. 中级应用3. 高级应用1. 初级应用仅包含源代码文件,没有附加共享库文件和第三方库.内容# 设置cmake最小支持版本,及工程名cmake_minimum_required(VERSION 2.8)project(工程名)# 设置C++11标准set(CMAKE_BUILD_TYPE "Release")set(CMA...
2020-04-17 15:23:10
401
1

原创 图像检索论文--第1篇:From Coarse to Fine: Robust Hierarchical Localization at Large Scale(CVPR-2019)
From Coarse to Fine: Robust Hierarchical Localization at Large Scale摘要1. Introduction2. Related Work2.1 6-DoF visual localization:基于结构和基于图像2.2 Scalable localization:可扩展定位2.3 Learned local features:局部特...
2020-04-17 09:53:47
1969

原创 ROS学习--第2篇: 创建ROS工作空间
ROS创建工作空间参考博客1. 创建工作空间2. 编译工作空间3. 设置环境变量4. 创建功能包5. 编译功能包后续计划参考博客博客链接:https://blog.youkuaiyun.com/weixin_42237429/article/details/902380001. 创建工作空间# 创建ROS工作空间目录mkdir -p ~/catkin_ws/srccd ~/catkin_ws/s...
2020-04-16 21:13:44
399

原创 视觉SLAM笔记--第1篇: Ubuntu16.04搭建SLAM开发环境
ubuntu16.04搭建SLAM开发环境参考博客1. Eigen线性代数库2. Opencv开源视觉库参考博客[博客链接]:https://blog.youkuaiyun.com/qq_38373843/article/details/827927201. Eigen线性代数库安装sudo apt-get install libeigen3-devsudo updatedblocate ...
2020-04-16 20:14:14
1199

原创 ROS学习--第1篇: Ubuntu16.04+ROS Kinetic安装
Ubuntu16.04+ROS Kinetic安装1. 设置sources.list,更新软件源2. 获取公钥导入key3. 更新package4. 安装ROS-kinetic完整版5. 初始化rosdep6. 配置ROS环境7. 安装依赖项1. 设置sources.list,更新软件源sudo sh -c '. /etc/lsb-release && echo "deb ht...
2020-04-15 22:15:17
771

原创 ROS学习--第3篇: AMCL粒子滤波机器人定位仿真
ROS机器人AMCL粒子滤波定位仿真amcl粒子滤波定位仿真步骤1. 下载功能包2. 建图3. 使用aviz和gazebo进行amcl粒子滤波定位仿真amcl粒子滤波定位仿真步骤1. 下载功能包 功能包:mrobot_amcl 链接:https://pan.baidu.com/s/1590978uKNFk3q3-hKu-r_w 提取码:32p5 2. 建图功能包...
2020-04-15 17:03:37
1444
1

原创 C++编程--第2篇: 文件重定向(Linux)
C++文件重定向(Linux)1. 文件重定向的目的2. 重定向命令3. 文件重定向格式及例子1. 文件重定向的目的Linux系统允许我们采用文件重定向的方式,将可执行文件与标准输入和标准输出文件关联起来,其目的:便于在终端输入的多条信息以文件的形式输入,并可以将打印到终端的信息以文件的方式保存。2. 重定向命令 < //标准重定向输入命令; ...
2020-04-15 16:27:27
281

原创 Ubuntu学习--第1篇: win10+ubuntu16.04双系统安装--删除UEFI引导(SLAM开发环境)
win10+ubuntu16.04双系统安装--删除UEFI引导1. 转发博客2. 删除UEFI系统下的Ubuntu启动项功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UM...
2020-04-15 15:58:42
1398
3
原创 剑指offer-第二版
【剑指offer-第二版】习题感悟(一刷)1. 面试流程2. 面试的基础知识2.1 C++基础知识面试题1:赋值运算符函数面试题2:实现单例模式2.2 数据结构面试题3:数组中重复的数字面试题4:二维数组中查找面试题5:替换字符串中的空格面试题6:从尾到头打印链表面试题7:重建二叉树面试题8:二叉树的下一个节点面试题9:两个栈实现队列or两个队列实现栈2.3 算法和数据操作1. 面试流程一般分为三轮面试:2-3轮技术面,1轮HR面每一轮技术面试分为3个环节:行为面试,技术面试,提问环节行为面试:自
2024-03-09 18:26:32
734
1
原创 数据结构与算法
常用排序算法可以分为:选择排序、冒泡排序、插入排序、快速排序、堆排序。1.1 选择排序原理:两层for循环,第一层遍历整个数组,第二层遍历除第一层之外的元素。如果是升序则将最小值放到最前列,最终实现升序排序。时间复杂度:O(N2)O(N^2)O(N2)1.2 冒泡排序原理:双层for遍历,第一层循环遍历整个序列,第二层循环是将相邻两个值比较,并将最大值排到后面。之后便使用第一层继续遍历,此时后面的就会变为有序区,每遍历一次将最大值放到序列最后。时间复杂度:O(N2)O(N^2)O(N2)1.3 插
2024-03-09 18:25:47
1065
1
原创 LeetCode热题100——动态规划
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?在「杨辉三角」中,每个数是它左上方和右上方的数的和。
2023-11-21 22:03:18
431
原创 LeetCode热题100——贪心算法
换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处;解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。输入:nums = [2,3,1,1,4]输入:[7,1,5,3,6,4]
2023-11-19 14:23:14
623
原创 LeetCode热题100——图论
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。值 2 代表腐烂的橘子。输入:grid = [值 0 代表空单元格;值 1 代表新鲜橘子;
2023-11-18 10:30:36
870
原创 LeetCode热题100——二分查找
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]// 题解:两次二分法找到左和右} else {left = 0;} else {
2023-11-16 22:11:18
548
CatDog_Classifical.zip
2020-05-01
图灵机器人支持v1和v2版本代码
2019-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人