自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 python3和pip3安装

sudo apt-get update 下面指令安装的是python3.5 sudo apt-get install python3 如果想让python自动指向python3的话: update-alternatives --install /usr/bin/python python ...

2020-01-03 11:05:26

阅读数 14

评论数 0

原创 神经网络训练经验

网路介绍: 层数太深,变得难训练,特别是全连接层不要超过3层 训练容易卡在输出值的均值附近(平坦期) 减少batch size可以有效跨越训练的平坦期 最差的GPU运算一半也有最好的cpu运算的10倍效率 用小batch度过平坦期后,也需要加大batchsize。因为当小batch下降到...

2020-01-01 13:19:07

阅读数 13

评论数 0

原创 docker常用指令

把image存为文件,用于传输: docker save -o xxx.tar image_name 把文件导出成image: docker load -ixxx.tar 启动带gpu的image: docker run -it --rm --gpus all image_nam...

2020-01-01 12:41:30

阅读数 16

评论数 0

原创 docker之pytorch+CUDA

docker之pytorch+CUDA

2019-12-26 15:58:59

阅读数 28

评论数 0

原创 docker之matlab

https://github.com/mathworks-ref-arch/matlab-dockerfile

2019-12-26 15:57:05

阅读数 52

评论数 0

原创 opencv stitch 里面几个scale的整理

所有scale都是和原始图片的比例。 所有xxx_xxx_aspect都是两个scale的比值,比如seam_work_aspect就是seam和work之间的比例。 work_scale:提取特征点的图片大小,所有后面匹配,homography的计算都是基于这个size的。 seam_sc...

2019-12-26 13:32:15

阅读数 14

评论数 0

原创 RTI DDS的xml说明

RTI DDS使用的xml有几种类型。 录制和播放程序使用的xml。 指定topic, domain,存放文件名等。 用于建立DDS各种对象的配置文件。比如datawriter,paticipant等 根目录是<dds> <domain_library> ...

2019-12-11 19:50:29

阅读数 27

评论数 0

原创 录制和播放RTI DDS(6.0)数据

录制和播放程序: /home/chamo/rti_connext_dds-6.0.0/bin/rtirecordingservice -verbosity 3 /home/chamo/rti_connext_dds-6.0.0/bin/rtirepalyservice 执行文件可以不带任何参数...

2019-12-11 16:23:10

阅读数 17

评论数 0

原创 地图显示技术

为什么地图显示是一个问题 当地图大了后,需要分块存储,并按照层级去索引。 地图显示技术分为哪些部分? 地图数据:Open Street Map 地图数据提供商一般会以Api的形式把自己的数据共其他人使用。 也可以用文件形式来存储,比如GeoJson,或者ssql数据库 ...

2019-12-09 17:15:19

阅读数 32

评论数 0

原创 javascript的image对象,在设置src属性后,会随机加载图像失败

debug了一下午的问题。为了在canvas里面显示选择的一张图片,我先把图片转成base64格式,然后设置到一个image里面。但问题是有的时候canvas能够拿到图片数据,有时候不行。 原因是image在加载base64的时候,需要一些时间。但是JavaScript很多函数都是非block的...

2019-11-11 21:10:10

阅读数 32

评论数 0

原创 sshpass使用心得

简介: 使用ssh或者scp的时候需要手动输入密码。在写脚本的时候,这点是不允许的。但因为ssh也不支持pipe或者<<等方式输入密码。说以有了sshpass这样一个模拟输入密码的程序。 安装: sudo apt-get install sshpass 用法: sshpass...

2019-11-05 13:37:51

阅读数 84

评论数 0

原创 Chamo VPS v4.0 技术概念

概述: v4.0的目的是实现地图从无到有的这个过程的建立。要求不管数据的多少,地图都需要有一定的呈现形式,并且随着数据的增加,地图能够稳定的丰富起来。而且数据的增加不会带来非线性的维护的增加。最后能够接受各种质量的数据。 新概念: 视觉指纹:Visual Finge Print(VFP) ...

2019-10-25 14:35:23

阅读数 57

评论数 0

原创 鱼眼相机原理

小孔模型和鱼眼模型的比较 普通的小孔模型的示意图: 鱼眼模型的示意图: 对于小孔模型,在焦距一定的情况下感光片的面积直接决定了视场角。因为在小孔模型中,光都是直线传播的。 因为鱼眼相机中,光通过镜头后,光路发生转向。在焦距和感光片大小都一定的情况下,也可以得到不同的视场角。 鱼眼...

2019-10-24 13:30:34

阅读数 232

评论数 0

原创 libjpeg在交叉编译后读取jpg图片失败

libjpeg是一个非常古老的代码,但居然是c/c++世界里面唯一读写jpg格式的代码。古老的jpeg竟然用到一个叫setjmp的非结构动态跳转语句。 问题描述: 在ubuntu中交叉编译QNX上运行的opencv的imgcodecs库。imgcodecs会调用libjpeg这个库,所以同时交...

2019-10-18 22:00:21

阅读数 28

评论数 0

原创 交叉编译原理分析

什么是交叉编译: 交叉编译是指在一种环境(操作系统+芯片指令)中编译另外一种环境的程序。 名词定义: host:执行编译操作的环境 target:最终运行编译结果的环境 有些什么特殊的地方: 编译器一定是host中的程序,但是编译器输出的程序却是是target中运行的。 host上面不...

2019-10-17 11:33:21

阅读数 31

评论数 0

原创 ROS和DDS的区别总结

背景: ROS是在机器人领域大家常用的通信中间件。DDS是一个很古老的用在很多safe-critical领域的通信中间件(航天,汽车,战舰,金融等)。两者要解决的问题都是一样的:灵活,可靠的通信网络。并且两者都是在实际使用诞生的协议,所以都有很强的实用性。但两者有一些不同的价值观: ROS所在...

2019-10-16 13:19:01

阅读数 214

评论数 0

原创 EGLStream理解

视频流的数据量巨大,如果要在不同的进程间传输视频流就必须考虑一些数据传输的底层问题,比如尽量不要做拷贝。以及互斥问题,不能一个程序还没把一张图片读完,共享的内存就被改变了。 EGLStream就提供了这样一种功能,支持多个进程间进行无拷贝的视频流传输。 EGLStream主要原理是设置了pro...

2019-10-13 12:03:16

阅读数 30

评论数 0

原创 不显示gcc的警告消息的方法

有的时候遇到模板编程,warning一大堆,结果error消息完全看不到了。可以在编译选项中加入-w来禁止warnings显示。 注意-W和-w是不同的。-w后面不用加任何东西,代表不显示所有的warning。-W需要加入各种选项,比如-Wall,-Werror等。 ...

2019-10-09 11:44:51

阅读数 11

评论数 0

原创 最简单的makefile

makefile现在已经很少直接去编写了,主要是考虑到代码的可移植性,不过偶尔还是需要阅读和修改一下makefile。这里把makefile最基本的用法总结下: chamo: cp sss sss1 chamo1: chamo gcc hello.c makefile其实不用...

2019-10-03 21:45:21

阅读数 30

评论数 0

原创 CAN BUS原理理解

CAN BUS的各种特点这里就不多说了,随便搜搜就有很多介绍,这里着重从底层逻辑上讲清楚CAN BUS是怎么传输数据的。另外本文中电学相关的知识不一定严谨,大家能懂意思就行了。 电线传输数据的原理: 如上图,B房间的人要知道A房间的信息,只需要A房间的人在电线a和b之间加上一个电压脉冲。B...

2019-10-02 14:36:36

阅读数 112

评论数 0

原创 gcc 9 安装

sudo apt install software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt install gcc-7 g++-7 g...

2019-09-28 16:14:17

阅读数 417

评论数 0

原创 ROS以及Catkin build安装

①Setup your sources.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list...

2019-09-07 11:46:51

阅读数 176

评论数 0

原创 大规模视觉定位地图关键技术:综述

大规模视觉定位地图需求: 室外有和GPS对齐的能力,室内有和语义地图对齐的能力。 只得到xyz值的意义不大,一定还要和某些语义关联起来。虽然基于定位地图可以自己建立各种语义信息,这样保证了语义信息和定位信息的对齐,但另外一种途径就是让生成的定位地图直接和其他语义地图对齐。室外的话gps坐标作为...

2019-08-27 19:47:58

阅读数 229

评论数 0

原创 大规模视觉定位地图关键技术:基于ORB-SLAM的纯视觉定位算法

问题: 纯视觉,使用特征点描述符,尽可能多的利用各种信息的前提下,什么样的定位算法最好? 需求: 要有高效的全局匹配能力。 需要用里程计来弥补地图匹配不好的区域。 要有全局地图可以提高里程计的精度。 里程计和全局的结果要能平滑的融合。 结论: 尝试了很多方案后,觉得使用给予ORB-S...

2019-08-27 18:19:38

阅读数 146

评论数 0

原创 大规模视觉定位地图关键技术:GPS数据边缘化

问题: 为了对大量gps数据的平均,需要保留所有gps以及相关的图像数据,这会让建图中的BA操作非常慢。因为会处理大量的冗余的视觉信息。如果把冗余的视觉信息扔掉,用于gps平均的数据又不够多。 原理: 本研究提出可以对剔除掉的gps数据进行边缘化。让这些剔除掉的gps信息让然对系统有作用。其...

2019-08-25 12:44:37

阅读数 78

评论数 0

原创 大规模视觉定位地图关键技术:使用视觉匹配提升GPS的绝对定位精度

问题: 单目相机的弱点在于很难把同一个地点不同方向的特征对齐。比如道路上两个方向行驶的车,虽然空间位置很近,但是从视觉的共視关系上看却很远。如果只使用视觉的话,唯一能够对不同方向的地图进行对齐的信息就是十字路口。但这种方式不是十分稳定。能够提供绝对位置的gps的精度在10米左右,又不够用。 视...

2019-08-25 12:35:42

阅读数 287

评论数 0

原创 生命十问

物竞天择,适者生存。随着科技的发展,环境对人类的选择作用已经非常弱了,那么人类现在是进化了还是退化了呢? 假如一个人生活在一个绝对物质丰富的空间,并且他们的寿命也是绝对永生的。换句话说任何为了生存而做的事情都是无意义的。也不用担心任何时间不够用的事情。可以想象这对男女的生活是这样的:饿了就吃,吃...

2019-08-25 11:07:48

阅读数 2092

评论数 12

原创 因为stl ABI不一致造成的链接错误

有这样一种现象,本来所有连接都好好的,通过cmake然后多连接一个库后,本来找得到的函数也出现大量的undefined symbol错误。 可能的原因是在新的库的findPackdge中设置了GLIBCXX_USE_CXX11_ABI这个选项。 先解释ABI是什么。ABI叫做程序二进制接口,就...

2019-08-20 12:14:32

阅读数 96

评论数 0

原创 g2o报Update contains a nan for vertex和 found NaN in error for edge错误的原因

这两个错误的意思是出现某些edge的误差计算出来是无穷大或者计算出来的更新值是无穷大。而且经常是迭代到一定次数后出现。 造成的原因多是某些数据异常,比如BA中出现同一帧不同的2d点连接到相同的3d点上面。所以报这种错误的时候需要对数据有更严格的合理性筛除。 ...

2019-08-20 12:01:26

阅读数 48

评论数 0

原创 建图和定位算法研发心得:好的算法是被具体场景不断打磨出来的

开门点题:细节是魔鬼 很多人喜欢问别人你用的什么slam框架呀?ORB-SLAM,VINS,LOAM,Cartography还是什么?或者问你是用的开源的框架还是自己的算法? 其实我最终用的算法是所有开源框架的综合加上部分自己设计的算法。 其实哪个框架的选择并不重要,没有一个框架能够真正完全...

2019-08-20 11:11:13

阅读数 194

评论数 1

原创 视觉定位受天气影响的实验

理论上当太阳在不同的角度的时候,物体上形成的阴影图案不同,从而造成视觉特征的不同。本工作测量了不同光照对视觉定位的实际影响。 阴天数据建图,阴天数据定位 这是最容易的case,全天候都能有很好的匹配。这里不专门进行测试。 晴天数据建图,晴天数据定位 当天上午10点开始的,测试是每隔1小...

2019-07-24 21:48:05

阅读数 85

评论数 3

原创 基于RTK的视觉定位精度测量

移动中的相机的视觉自定位的精度是比较难测量的。最容易的情况是在室外,把视觉定位地图和rtk对齐后,使用定位时的rtk作为真值。 图像的分辨率对精度的影响很大,rolling shutter影响也很大。在不在意太高精度的情况下,这些参数都不重要。但只要这些参数能够做得更精细,应该能做到室外定位精度...

2019-07-23 23:09:54

阅读数 225

评论数 0

原创 视觉建图融合gps的合并工具测试

描述: 把两个bag的数据分别计算自己的轨迹后,和gps做刚体对齐 找两个轨迹的共視关系 通过两个轨迹的点云匹配后得到两个轨迹的相似变换,把第二个轨迹变换到第一个轨迹的坐标系下 加入gps边的pose graph 优化 加入gps的BA优化 数据分析: 第一个bag的轨迹 ...

2019-07-05 15:47:10

阅读数 740

评论数 2

原创 视觉定位地图数列化总结,把protobuf转为自定义的文件存取

描述: 地图数据本来用protobuf存储的,现在要改为用fstream来存储。本文总结了fstream的各种经验。 protobuf最大单文件不能大于67mb protobuf会占用很多额外的空间,也就是probuf存出来的文件比实际需要的要大 protobuf不方便优化存储的结构 ...

2019-07-03 11:33:30

阅读数 116

评论数 0

原创 pose graph优化总结

描述: pose优化相比BA优势在于: 更快,也就是能处理更大规模的数据 可以做按层级来优化,也就是可以处理超大规模的数据,并且可以根据更新量的特点,只做某个层级的优化。 可以修正更大的便宜修正 全局优化的步骤为: 通过点云匹配,把各个submap通过sim3整体变换到近似的位...

2019-07-03 10:21:00

阅读数 317

评论数 0

原创 提取图像中直线的直线方程的神经网络

描述: 一张图片中画有一条带噪音的直线,求这条线的方程 这些线的粗细,颜色等等都不一样。 做这个事情的目的有: 因为可以自动产生大量的训练数据,所以方便用来研究简单的神经网络的规律 大神经网络小神经网络的区别 训练的规律 误差函数,目标设定的规律 数据的需求的规律 对...

2019-06-23 18:08:50

阅读数 224

评论数 0

原创 强化学习里面Bellman Equation的理解

首先要明白return和reward的区别。reward是指在当前状态s下,进行a操作。环境反馈的奖励。而return是指在当前状态s下,后续连续进行无限个a操作的奖励的和。所以强化学习的目的是选择一个a,能使后续一系列操作得到的奖励最大。 再说Q函数,Q函数就是就是当前状态s和当前操作a到re...

2019-06-23 00:13:26

阅读数 402

评论数 0

原创 纯视觉的相机姿态计算工具

描述: 只基于视频流获得相机轨迹以及特征点 因为是纯视觉的,所以生成的点云的尺度和朝向不定,需要后续的工作来和gps,激光轨迹或者imu对齐 代码: 工程:https://github.com/rabienrose/3d_vision/blob/master/visual_map/src/v...

2019-06-21 14:45:12

阅读数 122

评论数 0

原创 DBOW词袋训练工具

代码:https://github.com/rabienrose/3d_vision/blob/master/visual_map/src/vslam/Examples/Monocular/create_vol.cc 启动脚本:https://github.com/rabienrose/3d_v...

2019-06-21 10:25:49

阅读数 231

评论数 0

原创 视觉建图和定位框架

描述: 先用视觉的方式离线建立地图,然后用实时的方式基于地图进行定位。只是在一向比较通用的技术。 此项目目的是建立一套能兼容各种传感器,各种场景的解决方案。 不同的传感器和场景需要用到不同的算法,要设计一个框架把这些方法都结合在一起就是本项目的最终目标。 内容: 存储3d点,2d点,共识关...

2019-06-20 18:54:42

阅读数 311

评论数 1

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