自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小红鱼的博客

大风起兮,必有人扶摇直上!

  • 博客(84)
  • 收藏
  • 关注

原创 STL容器

STL容器(7种)vector(数组)deque(双端数组)stack(栈)queue(队列)list(双向链表)set/multiset/unordered_set(集合)map/multimap/unordered_map(键值对)1. 理论基础特点:数据结构和算法分离组成:STL主要由容器、算法和迭代器三大部分组成概念:容器:把你的元素copy到容器中;迭代器:相当于一个指针;算法:算法和迭代器无缝连接分类:序列式容器(与插值顺序有关,如vector,list,deque)

2021-11-30 16:31:22 1619

原创 KeyPoint关键点

KeyPoint{ float size, float angle = -1, float response = 0, int octave = 0, int class_id = -1size: 该关键点邻域直径大小octave:从哪层金字塔得到的此关键点class_id: 当对图片进行分类是,用class_id对每个关键点进行区分,默认为-1...

2021-08-09 19:49:25 869

原创 修改ubuntu开机启动顺序

sudo vim /etc/default/grub其中的“GRUB_DEFAULT=0”就是设置的默认启动项了,根据开机grub顺序修改它(第一项从0开始)sudo update-grub重新生成GRUB启动配置项

2020-08-04 08:26:20 1316 1

原创 OpenCV学习笔记

convertTosrc.convertTo(dst, type, scale, shift)转换到另外一种数据类型:dst:目的矩阵;type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同;scale:比例因子;shift:将输入数组元素按比例缩放后添加的值;dst(i)=src(i)xscale+(shift,shift...

2020-06-23 15:57:51 842

原创 Typora常见使用快捷键

1. 插入公式输入"$$"加enter键ctrl+shirt+m2. 插入代码ctrl+shirt+k

2020-05-12 16:39:19 490 1

原创 好看的图片

2020-05-04 21:46:58 297

原创 向量求导的二个公式

∂xTa∂x=∂aTx∂x=a\frac{\partial \mathbf{x}^{T} \mathbf{a}}{\partial \mathbf{x}}=\frac{\partial \mathbf{a}^{T} \mathbf{x}}{\partial \mathbf{x}}=\mathbf{a}∂x∂xTa​=∂x∂aTx​=a∂xTBx∂x=(B+BT)x\frac{\partial \...

2020-04-28 16:16:45 883

原创 EVO使用

evo是一个用来评估SLAM系统测量数据以及输出估计优劣的Python工具1. 安装EVOpip install evo --upgrade --no-binary evo2. 使用测量指标:evo_ape:绝对位姿误差evo_rpe:相对位姿误差常用命令:evo_traj:绘制轨迹,一条或多条,支持kitti,eurco,tum三种格式evo_res:根据指标比较分...

2020-04-04 21:38:43 4740 2

原创 图像的线特征提取与跟踪

LSD: Line Segment Detector线段检测器LSD是一种局部提取直线的算法,速度比Hough要快。 LSD是一种直线检测分割算法,它能在线性的时间内得出亚像素级精度的检测结果。该算法被设计成自适应模式,无需手动调参。作者将自己的论文(LSD: a Line Segment Detector,2012)及代码( c++)放到自己的主页上:LSD详解opencv使用头文件及命...

2020-03-20 22:16:25 9603 12

原创 Eigen库头文件分析

Eigen库被分为一个Core模块和其他一些模块,每个模块有一些相应的头文件。 为了便于引用,Dense模块整合了一系列模块;Eigen模块整合了所有模块。一般情况下,include<Eigen/Dense> 就够了。...

2020-02-22 22:19:51 1677

原创 git的使用教程

git下载与配置sudo apt install git github config --global user.name "你的github用户名"github config --global user.email "你的github邮箱"git工作流程一般工作流程如下:clone Git 资源作为工作目录在clone 的资源上添加和修改文件如果其他人修改了,你可以更新资源...

2020-02-22 22:05:17 89 1

原创 Opencv3的头文件

通常使用头文件(opencv中常用头文件的集合):#include"opencv.hpp"常用头文件说明#include “opencv2/core.hpp”核心功能模块,主要包含了opencv基本数据结构,动态数据结构,绘图函数,数组操作相关函数,辅助功能与系统函数和宏#include “opencv2/imgproc.hpp”图像处理模块,主要包含了图像的变换,滤波直...

2020-02-12 12:01:36 1123

原创 VIM最实用的快捷键命令

命令说明G文尾gg文首$行尾^行首x删除当前光标所在字符dd删除当前光标所在行u撤销上一步操作/全文搜索(用完后取消高亮:noh)n向下搜索N向上搜索yy复制当前行P粘贴w正向移动到下一个单词b反向移动到上一个单词f{char}当前行查找指定字符(;前进,后退...

2020-02-12 11:48:07 279

原创 查看系统的磁盘使用情况

df -kh

2020-02-05 13:55:52 704

原创 apt和dpkg的区别

apt命令apt是一个客户/服务器系统。在服务器上先复制所有deb包,然后用apt分析工具(genbasedir)根据每个deb包的包头信息对所有的deb进行分析,并将该分析救过记录在一个文件中,这个文件被称为deb索引清单,apt服务器的deb索引清单只与base文件夹中,一旦apt服务器内的deb有所改动,一定要使用genbasedir产生新的deb索引清单。客户端再进行安装或升级时一定...

2020-01-14 20:10:28 2005

原创 循环神经网络(RNN)

单词文本如果采用one_hot编码,数据会稀疏且高维Word Embedding:将源数据映射到另外一个空间,其中这个映射具有injective(单射)和structure preserving(结构保存,比如在x所属的空间上x1<x2,那么映射后在y空间上同理y1<y2),常见的两种embedding方式为word2vec和gloveBatch[word num,b,word...

2020-01-13 20:34:00 419

原创 python版本切换

用 update-alternatives 来为整个系统更改 Python 版本update-alternatives --list python #罗列可用的python版本若报错,则python尚未链接至update-alternativesupdate-alternatives --install /usr/bin/python python /usr/bin/python2.7...

2020-01-12 10:32:22 212

原创 卷积神经网络(CNN)

模仿人眼的一个局部相关性、局部感受的机制(感受野),提出的网络叫做卷积神经网络,每次感受一个小的方块(视野),窗口方块移动时,权值是共享的。feature mappooling层(池化)下采样:BatchNorm优点:收敛更快;更好的性能;更具有鲁棒性经典的网络架构1. AlexNet(2012,8层)在ImageNet挑战赛上,将错误率降了10个百分点,吸引了众多学者的关注...

2020-01-11 09:24:51 663

原创 nn.Module模块的使用

特点每一层都是nn.Modulenn.Module都嵌套在nn.Module中常见的模块LinearReLUSigmoidConv2dConvTransposed2dDropoutetc.Container容器nn.Sequential()parameters参数管理net.parameters()net.named_parameters()to(dev...

2020-01-11 09:06:38 2359 1

原创 GAN介绍

What I cannot create, I do not understand.我没有创造出它,说明我对它没有理解透彻Nash Equilibrium(纳什均衡)GeneratorDiscriminatorGAN的原理:min⁡Gmax⁡DL(D,G)=Ex∼pr(x)[log⁡D(x)]+Ez∼pz(z)[log⁡(1−D(G(z)))]=Ex∼pr(x)[log⁡D(x)]...

2020-01-10 10:05:09 304

原创 神经网络全连接的pytorch使用

Pytorch代码:import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom visdom import Visdombatch_size=200...

2020-01-08 22:00:16 430

原创 如何避免过拟合和欠拟合

减少过拟合:减少数据;将模型换成一个浅层模型;正则化;dropout;early stopping设置交叉验证将数据集分为训练集、dev和测试集dev用来提前防止训练过拟合,每隔一段时间观察testperformace,选取最好的性能模型test是真实交给客户,用来测量模型的真实性能,test不能用来反馈给模型训练K-fold交叉验证:每次迭代都随机将训练数据集划分为k份,将其中的k...

2020-01-08 15:47:38 552

原创 AutoEncoder介绍

什么是自动编码器自动编码器最开始作为一种数据压缩的方法,特点:1)跟数据相关程度高2)压缩数据是有损的应用:1)数据去噪 ???2)可视化降维3)生成数据 ???自动编码器的结构通常我们使用神经网络模型作为编码器和解码器。PyTorch实现自动编码器多层感知器class autoencoder(nn.Module): def __init__(self): ...

2020-01-08 15:46:09 775

原创 随机梯度下降

激活函数原始激活函数:阈值函数(大于0为1,小于0为0)缺点不可导改进激活函数:sigmoid(0~1之间)f(x)=σ(x)=11+e−xf(x)=\sigma(x)=\frac{1}{1+e^{-x}}f(x)=σ(x)=1+e−x1​优点是可导且易导:σ′=σ(1−σ)\sigma^{\prime}=\sigma(1-\sigma)σ′=σ(1−σ)缺点是会在两端会...

2020-01-02 21:57:01 214

原创 PyTorch的基础使用

基本数据类型torch.FloatTensortorch.ByteTensortorch.IntTensortorchl.cuda.FloatTensor利用函数a.type():返回数据类型type(a):python自带的数据类型检验,只能返回torch.Tensor,不能提供额外的信息isinstance():数据类型的检验...

2020-01-02 19:57:04 461

原创 训练集、验证集(dev)和测试集

在模型训练的时候通常将我们所得的数据分成3部分:训练集、dev验证集和测试集dev用来统计的那一评估指标、调节参数,选择算法;而test用来在最后整体评估模型性能dev和训练集一起被输入到模型算法中,但又不参与模型训练,可以一边训练一边根据dev查看指标dev和测试集都是用来评估模型好坏,但dev只能用来统计单一评估指标;而测试集能够提供更多的评估模型指标,如混淆矩阵、roc、召回率、F1...

2019-12-31 09:39:12 4181

原创 Tensor--什么是张量?

A tenseor is something that transforms like a tensor!在不同的参考系下按照某种特定的法则进行变换的一个量,就是张量从物理学角度张量是一个不随坐标而改变的,物理系统内在的量用张量语言描述的物理定律自动保证了不随参考系变化的这一性质从数学角度一维数据是向量,二维数据是矩阵,三维及其以上的数据称为张量张量的提出,目的是希望数据在...

2019-12-30 10:24:15 172

原创 深度学习初见

Google:TensorFlow(Keras)Facebook:PyTorch(Caffe)本质区别:动态图优先还是静态图优先动态图:在运行时可以改变公式,暂停,查看临时变量静态图:定义公式——给输入——返回输出(不能停下来和改变)...

2019-12-27 19:07:43 180

原创 vins位姿图优化

重定位的方案:1、快速重定位通过回环检测得到回环帧,将回环帧信息发布给vins_estimator节点在窗口中进行局部优化,得到了loop_info(T_i_j)后返回给位姿图节点,然后得到T_w1_j,结合已知的T_w2_j,得到T_w1_w2(shift_t);2、全局优化重定位通过pnp得到loop_info(T_i_j),作为残差信息放在ceres优化中,从最早的回环帧到当前帧均为...

2019-12-19 13:33:32 1774 1

原创 c++如何读取文件

头文件stdio.h读文件FILE* pFile;pFile=fopen(file_path,"r");int fscanf ( FILE * stream, const char * format, ... ); //从一个流中执行格式化输入,之后fscanf遇到空格和换行时结束while(fscanf()!=EOF); //判断文件是否到末尾fcolse(pFile)...

2019-12-17 09:58:22 2226

原创 ROS的常见的消息类型

1. sensor_msgs::Image# This message contains an uncompressed image# (0, 0) is at top-left corner of image#Header header # Header timestamp should be acquisition time of image ...

2019-12-12 10:07:37 2628

原创 eigen和matlab的对比和类似使用

Matlab和Eigen的对应用法1、Eigen库的基本数据变量#include <Eigen/Dense>Matrix<double, 3, 3> A; // 固定大小的双精度矩阵,和Matrix3d一样。Matrix<double, 3, Dynamic> B; // 固定行数,列数为动态大小Mat...

2019-12-11 23:14:40 3326 4

原创 ubuntu安装显卡驱动的两种方法

1. 软件更新设置系统设置->软件更新->附加驱动->选择nvidia最新驱动->应用更改2. 官网下载好对应驱动编译Nvidia中文官网是: Nvidia官网(需要下好linux系统下的驱动,文件拓展名.run,注意该文件最好放在主目录下,方便安装)打开终端,先删除旧的驱动sudo apt purge nvidia*禁用自带的nouvea...

2019-12-11 21:45:12 2779

原创 linux特殊符号笔记

管道和重定向:|、>、>>、<重导向就是使命令改变它所认定的标准输出。“>”可将结果输出到文件中,该文件原有内容会被删除,“>>”则将结果附加到文件中,源文件内容不会被删除。“<”可以改变标准输出。cat date1.txt>>data2.txt管道“|”可将命令的结果输出给另一个命令作为输入之用rpm -qa|grep...

2019-12-11 21:32:20 86

原创 g2o学习笔记

g2o整体框架综上所述,在g2o中选择优化方法一共需要三个步骤:选择一个线性方程求解器,从PCG、CSparse、Choldmod三个选一选择一个BlockSolver选择一个迭代器,从GN、LM、Doglog中选自定义顶点(Vertex)和边(Edge)在整体框架图中,可以看到不管是顶点还是变,都可以说是继承子basexxx这个类的,因此我们在自定义的时候,也可以仿照着继承...

2019-12-11 21:28:20 357

原创 SSH原理和运用

什么是SSHssh是一种网络协议,用于计算机之间的加密登录本文针对的实现是OpenSSH,讨论其在Linux中的用法最基本的用法SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令:$ ssh user@hostssh的默认端口是22,即你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。$ ssh -pp 2...

2019-12-11 20:56:55 120

原创 gcc和g++的编译连接过程

一、编译的四个阶段1、 预处理:生成后缀为“.i”的文件2、编译:转为汇编语言,后缀为”.s“的文件3、汇编:转为二进制目标文件,后缀为“.o”的文件4、连接:多个目标文件(二进制)结合库函数等综合成能独立执行的文件,后缀为”.out“的文件gcc无法进行第4步的库文件连接,而g++则能完整编译出可执行的文件(实际上g++从步骤1到步骤3都是调用gcc完成的,步骤4则是由自己完成的)...

2019-12-11 20:30:47 379

原创 ros图像和Opencv图像之间的转换

1、简介正常ROS以自己的sensor_msgs/Image消息格式传递图像,但如果将图像与Opencv库结合使用,会编译报错:这时候需要使用CvBridge库,提供ROS和Opencv之间的接口,可以将ROS图像转换成Opencv中cv::Mat格式,反过来转换亦可。2、CvBridge类介绍CvBridge定义了一个包含opencv图像的CvImage类型。CvImage包含额外的...

2019-12-11 19:30:16 1653

原创 Linux下的目录命名的意义

1、/bin :获得最小的系统可操作性所需要的命令2、/boot :内核和加载内核所需的文件3、/dev :终端、磁盘、调制解调器等的设备项4、/etc :关键的启动文件和配置文件5、/home :用户的主目录6、/lib :C编译器的库和部分C编译器7、/media :可移动介质上文件系统的安装点8、/opt :可选的应用安装包9、/proc :所有正在运行进程的映像10、/r...

2019-12-11 19:00:09 100

原创 vim命令

命令说明vim进入vimi进入输入模式esc退出输入,进入命令模式shift+q::w保存:q退出:q!强制退出

2019-12-11 18:48:00 73

空空如也

空空如也

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

TA关注的人

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