- 博客(56)
- 资源 (3)
- 收藏
- 关注
原创 基于深度学习的三维点云识别
基于深度学习的三维点云识别一、什么是三维物体识别 随着三维成像技术的发展,结构光测量、激光扫描、ToF等技术趋于成熟,物体表面的三维坐标能够精准而快速的获取,从而生成场景的三维数据,能够更好地感知和理解周围环境。三维数据包含了场景的深度信息,能够表示物体的表面形状,在机器人、AR/VR、人机交互、遥感测绘等多个领域具有广阔的应用前景。 三维数据由传感器直接获得,可以表示为深度图、点云、网...
2018-10-10 10:23:34 30936 10
原创 多视图几何——变换层次总结(射影变换,仿射变换,相似变换,欧式变换)
书中的2D变换总结:书中的3D变换总结:变换层级欧式->相似->仿射->射影,变换的层级提高,失真越来越严重,不变性质越来越少,变换矩阵的自由度越来越高。后面的变换都兼容前面的变换。(以下自由度针对3D)欧式变换刚体运动,仅旋转和平移。保持图形的形状、大小不变,仅改变空间位置。6自由度:3旋转(R)+3平移(t)相似变换与欧式变换相比,增加一个缩放,仍保持形...
2019-07-08 21:02:51 1355
原创 C++基础问题总结
1. 空类的sizeof值对于无成员函数,无成员变量的空类,其sizeof值为1. 虽然没有成员占内存,但必须在内存中占一定空间,由编译器决定(VS)。在空类中添加函数,其sizeof还是1。因为实例中不储存类函数相关内容,只通过函数地址调用。若有虚函数,则会为类生成虚函数表。在实例中添加指向虚函数表的指针。因此占一个指针的空间。2. 拷贝构造函数拷贝构造函数的形参不能是同类对象,...
2019-06-04 13:14:05 310
原创 Bundle adjustment 总结
BA最小化重投影误差:X=argmin∑i=1Ni∑j=1Nj∣∣ei,j(X)∣∣X=argmin\sum_{i=1}^{N_i}\sum_{j=1}^{N_j}||e_{i,j}(X)||X=argmini=1∑Nij=1∑Nj∣∣ei,j(X)∣∣求解方法:使用LM算法优化求最优解。每一次迭代中的增量求解为:δX∗=argmin∣∣J(X)δX+E(X)∣∣+λ∣∣D(X...
2019-04-04 22:21:22 984
原创 [论文笔记] ElasticFusion: Dense SLAM Without A Pose Graph
一、overview提出了一种密集SLAM方法,使用RGBD数据,进行跟踪和建图。主要贡献:surfel-based稠密建图。将surfel分为激活区域和非激活区域,一段时间内未观测到的归入非激活区域。每一帧,尝试把激活模型中当前相机估测位姿部分,登记至非激活模型在当前帧的部分,若登记成功,则检测到闭环,进行非刚体变换。发生闭环的非激活部分再次激活,放入登记的区域。(感觉意思是每一帧把...
2019-03-14 20:37:37 1277
原创 [论文笔记]Probabilistic data association for semantic slam
1. introduction读完总结,感觉这篇文章的主要思想是,提出数据关联,并根据语义的类别结果计算数据关联的概率,然后在优化过程中,根据之前的数据关联作为概率权重,引入与目标检测位置有关的误差项,从而让目标检测来辅助位姿估计。数据关联和识别问题是不同类别之间离散的,而传统SLAM是连续优化的。本文的目标是利用目标检测,整合尺度(metric)信息和语义(semantic)信息,用于传感...
2019-01-24 18:13:54 2346 1
原创 [论文笔记] MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
1. introduction目前的SLAM系统存在两个待完善的地方:默认场景是静态的,把动态的物体当作外点,没能追踪场景的动态物体。仅构造几何地图,或地图只有像素级的语义信息,没有物体级的信息。contribution:构造了实例级的三维地图结合MASK RCNN的目标检测和几何的物体边缘检测方法,细化实例边缘能够追踪场景中的刚体动态物体,而非把它们当作外点排除,只排除动态的...
2019-01-22 17:15:10 1567
原创 [论文笔记] semi-dense 3d semantic mapping from monocular slam
semi-dense 3d semantic mapping from monocular slam1. introduction这篇论文的思想比较易懂,使用单目LSD-SLAM+deeplab,生成半稠密的语义地图。文章解释了,对于RGBD或双目相机,存在尺度限制问题,他们只能在有限的深度范围内工作,而对于室内室外的衔接能力弱。因此选用了单目SLAM。此外,2D语义分割是在关键帧上做的,也并...
2019-01-21 11:45:47 2066 2
原创 [LeetCode] 最大子序列问题总结
152. 乘积最大子序列乘积最大子序列题目描述给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。思路不用dp数组,维护一个到当前位置i的最大值mmax...
2019-01-18 17:28:38 363
原创 [论文笔记] Fusion++: VolumetricObject-LevelSLAM
1. introduction本文结合了MASK RCNN,说是语义SLAM,其实基本没用到语义信息,而是结合了物体检测结果,对每个物体进行三维重建,建立物体级的地图。并完善了基于这个地图的初始化、删除、更新、跟踪、重定位、图优化的工作。存在的不足还是挺多的,默认场景是静态的,并且不追踪动态物体。MASK RCNN的阈值很高,这样漏检应该是比较严重的。MASK RCNN并非实时,30帧运行一次...
2019-01-18 11:39:10 1826 1
原创 [论文笔记] DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments
DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments一、 introduction这篇文章主要提出了结合语义信息和运动特征点检测,来滤除每一帧中的动态物体,从而提高位姿估计的准确性。同时建立了语义八叉树地图。在高运动的场景中,与ORB SLAM2相比提升明显。但也存在不足,如仅能识别20种物体,并只认为人是移动的类别;八叉树...
2019-01-14 16:30:10 8725 10
原创 [LeetCode] 378. Kth Smallest Element in a Sorted Matrix
这道题感觉比较经典,值得收藏一下(感觉是面试喜欢的类型_(:з)∠)_Kth Smallest Element in a Sorted Matrix题目描述给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。matrix = [[ 1, 5, 9],[10, 11, 13],[12, 13, 1...
2019-01-11 17:51:19 141
原创 [论文笔记]ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
ORB-SLAM 2一、 introduction单目的缺点:未知地图的尺度需要初始化地图会有尺度漂移难以处理纯旋转本文的贡献:完成结合单目、双目、RGBD的slam系统,包含回环检测、重定位、地图重用功能。证明使用BA的精度高于ICP和最小化深度误差。使用近处或远处的双目点和单目观测,取得的精度高于当前最优的双目SLAM。使用轻量级的定位模式,当无法建图时,能够有效的...
2019-01-10 13:17:06 1221
原创 [论文笔记]ORB-SLAM: a Versatile and Accurate Monocular SLAM System
ORB-SLAM一、introductionPTAM缺少闭环检测缺少对于闭塞(occlusion)的处理重定位时对视角的不变性低自启动(bootstrapping)时需要人工干涉ORB SLAM以PTAM为基础contributions:使用ORB features在tracking、mapping、relocalization、loop closing任务中,保证在视点...
2019-01-07 17:53:22 607
原创 Semantic Fusion代码阅读笔记
semantic fusion是基于elastic fusion,结合FCN和CRF的语义SLAM开源框架。最近在看语义SLAM,觉得这篇文章不错,代码也有开源,就读了代码,力求搞懂代码流程,参考其程序的组织实现方式。目前只看了src部分,elastic fusion部分的论文还没有读,读过之后再来读代码。不过其中接口封装的比较好,难度倒不是很大。项目网站我注释后的代码一、程序框架项目分...
2019-01-04 16:18:54 2243 3
原创 视觉SLAM十四讲-第十三讲笔记
本讲是最后一讲!讲了不同地图的表示方法=-=一、概述前面所讲的地图都是特征点的集合,也就是稀疏地图,实际上还有各种地图,面向各种任务:稀疏地图:定位稠密地图:导航、避障、重建语义地图:交互二、单目稠密重建1. 立体视觉要进行稠密重建,就要知道每一个像素的深度,其方法是:单目:三角化多目:视差深度:直接对于单目,需要使用参考帧,和它移动一小段后的当前帧,对其中的匹配点...
2018-12-26 22:34:00 1218 1
原创 视觉SLAM十四讲-第十二讲笔记
讲完了前端后端,这一讲讲的是回环检测。比起之前的内容要容易理解多了=-=一、 回环检测概述1. 一些概念1.1. 回环检测的意义回环检测的作用:消除累积误差。累积误差是怎么来的呢?前端根据局部(相邻或相近)帧给出位姿估计,后端也是根据前端已有的结果进行优化(比如p(xk∣xk−1)p(x_k|x_{k-1})p(xk∣xk−1)),这样,当前端每一帧都存在误差时,基于误差的估计就会更...
2018-12-26 21:15:45 1005
原创 视觉SLAM十四讲-第十一讲笔记
后端优化主要有两种方法,一是以BA为主的图优化,另一种是使用位姿图的优化方法。本讲将讲述位姿图的优化方法。一、 位姿图介绍后端优化的目标是在前端给出位姿和路标的初始估计值后,使用已得的全部数据对其进行优化。其中特点是:特征点变量数远大于位姿变量数特征点变量会趋于稳定其中特征点变量在几次优化后的情况分为两种:收敛:其空间位置会收敛至一个值(三维坐标)保持不动。发散:称为外点,处于...
2018-12-24 16:46:53 732 2
原创 [LeetCode] 236. 二叉树的最近公共祖先(LCA)
LCA也忘了… 人生真是艰难qwq。参考博客:二叉树最近公共祖先详解(LCA问题详解题目介绍给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1...
2018-12-23 15:14:02 538
原创 [LeetCode] 合并K个元素的有序链表、链表排序、复制带随机指针的链表
刷了leetcode 高级题集的链表部分,emmm都不会QWQ。按照网上题解写了一遍,记录一下。前两道排序的题,排序部分很简洁也很模板化。题目中建立dummy节点的操作也值得记录。第三道题是理解链表的好题目。总之三道题都很值得去做并记忆。ヾ(◍°∇°◍)ノ゙23. 合并K个元素的有序链表题目Merge k sorted linked lists and return it as one...
2018-12-19 22:49:47 214
原创 视觉SLAM十四讲-第十讲笔记
本讲开始进入后端模块。后端优化目前分为基于滤波器的方法和基于非线性优化的方法,本讲讲述以EKF为代表的滤波器法,以及稀疏性。一、 后端优化概述1. 后端模块的作用前端估计得到:kkk时刻相机的位姿,xkx_kxk地图中路标jjj的世界坐标,yjy_jyj前端估计只基于kkk的前一时刻或前几时刻。后端优化所做的,则是根据到目前为止观测到的所有信息,优化之前的估计结果。后端优化中...
2018-12-16 22:01:02 1355 1
原创 Elastic Fusion/Semantic Fusion运行记录
持续记录使用摄像头、数据集运行Elastic Fusion和Semantic Fusion的方法和结果。使用的Elastic Fusion是Semantic Fusion项目下的模块,没有另行搭建。一、 Elastic Fusion1. TUM数据集1.1 准备数据集使用TUM数据集,从官网下载rgbd_dataset_freiburg1_desk.tgz,解压。1.2 数据格式转换...
2018-12-14 17:08:50 1699 6
原创 Ubuntu 16.04 配置 SemanticFusion
一、 写在最开始的说明SemanticFusion依赖ElasticFusion和Caffe但是SemanticFusion的源码里包含了ElasticFusion和Caffe源码模块,必须要从SemanticFusion下编译一次,就不用自己另外下载了(并不知道这里的caffe能不能在别的项目用)。配置前已经装好的依赖:CUDA, cuDNN, 源码编译的OpenCV3.4, Pytho...
2018-12-07 17:40:44 1385 14
原创 [LeetCode] x 的平方根
x 的平方根题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。思路即求res∗res<=x and (res+1)∗(res+1)>xres*res<=x \ and \ (res+1)*(res+1)&gt...
2018-11-28 11:31:12 148
原创 [LeetCode] 29.两数相除
两数相除题目给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。说明:被除数和除数均为 32 位有符号整数。除数不为 0。假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。本题中,如果除法结果溢出,则返回 2...
2018-11-28 10:14:44 114
原创 [论文笔记]Meaningful Maps With Object-Oriented Semantic Mapping
一、主要内容这篇文章做的也是semantic mapping的工作,创新的点是,不单给了每个点类别,同时给出了object的概念,存储了每一个object的3d点云。最终的地图是由object的点云和背景构成的语义地图。文章新意不太多,主要是加了物体检测,但是SSD+额外的基于几何的点云分割感觉有点绕弯。另一篇用mask RCNN的应该更好。(不过文章引用和related works写的很好。...
2018-11-27 18:09:04 2526
原创 [论文笔记] SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
一、 主要内容最近开始看语义SLAM的内容(叹。主要贡献1.融合的state of the art的SLAM系统ElasticFusion,使用CNN进行语义分割,加上条件随机场对分割结果的优化,设计了semantic mapping的系统。2.使用的摄像头为RGB-D,系统帧率达到25Hz,保证了实时性。3.提出(?)了语义地图中,每个点类别概率的更新方法。额外收获1.结合视频连续...
2018-11-26 18:04:01 2151 1
原创 c++ 预处理指令
1. 什么是预处理指令以#开头为标识,后接指令关键字的一行语句。在编译前对代码转换。2. 指令关键字includedefine定义宏。注意参数要括起来:#define SQE(x) (x*x) // wrong#define SQE(X) ((x)*(x)) // correct条件编译指令决定哪些代码被编译,哪些不被编译。# define DEBUGtest(){#...
2018-11-19 17:09:13 377
原创 视觉SLAM十四讲-第九讲笔记
本讲搭建了一个完整的前端框架。在匹配方案上,使用了相邻两帧匹配、与地图匹配两种方法;在位姿估计方法上,使用了PNP方法、PNP+bundle adjustment的方法。这份代码实现的只有位姿估计和优化,虽然是PnP,但没有估计3d点深度,而是从深度图中取出的。也没有优化地图中特征点的位置。一、程序框架1. 数据结构1.1. camera相机内参,实现坐标转换。成员变量相机内参数成...
2018-11-11 16:10:54 2530
原创 [LeetCode] 75.颜色分类
题目颜色分类给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]要求:原地算法复杂度O(n)不使用库函数思路充分利用只有三个元素的特性。方法一 —— 计数填...
2018-11-11 13:26:05 324
原创 ubunu16.04 编译带有viz模块的opencv3.4
emmmmm编译opencv坑太多了,把踩过的坑记录下来。主要的坑是:libtiff要自己编译!VTK要自己编译!cmake时注意加参数!1.下载源码http://opencv.org/releases.html去官网下载源码包,解压。unzip opencv-3.4.1.zip2.安装依赖项cmakesudo apt-get install cmake依赖库sudo a...
2018-11-08 13:56:03 1673 1
原创 PointNet++复现
代码运行分类任务python train.py下载数据集并训练,后可接参数,这里使用--batch_size=4python evaluate.py --num_votes 12 测试 0.901/0.907eval mean loss: 0.372334eval accuracy: 0.901945eval avg class acc: 0.876547 airplane...
2018-11-08 09:38:55 4210 8
原创 视觉SLAM十四讲-第八讲笔记
一、主要内容SLAM中的视觉里程计分为两部分,一是特征点法,先提取特征点,把特征点看做三维空间中的不动点,根据特征点匹配关系进行位姿和深度估计,通过最小化重投影误差优化相机运动;二是不使用特征点,根据图像灰度直接估计的直接法。第七讲中讲了特征点法,本讲将介绍直接法。直接法的问题关键点的提取和描述子的构造很耗时。忽略了特征点以外的信息。在没有纹理或者纹理重复的地方,难以准确匹配。解决...
2018-11-03 13:53:55 988 1
原创 视觉SLAM十四讲-第七讲笔记
主要内容本章开始进入视觉里程计(VO)部分,VO按是否需要提取特征,分为特征点法的前端和不提特征的前端。这一章讲的是基于特征点法的前端,分为以下内容。特征点法:找到两张2D图像上的匹配点。对极几何:根据2D-2D特征点对求解R,t。三角测量:根据2D-2D特征点求深度。PnP:根据3D点云和匹配的2D图像求R,t。ICP:求两个点云之间的R,t。关系是:特征点法找到2D图像的...
2018-11-01 16:41:46 3484 2
原创 [LeetCode] - 奇偶链表
奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例1:输入: 1->2->3->4->5->NULL输出: 1->3->5-&am
2018-10-30 15:06:13 266
原创 PointNet复现
一、代码运行1.分类任务1.1训练python train.py --batch_size=8显卡显存太小,只能跑batch size为8的,训练250个epoch。1.2测试python evaluate.py --visu结果:eval mean loss: 0.488872eval accuracy: 0.878444eval avg class acc: 0.85...
2018-10-30 14:16:43 6297 18
原创 视觉SLAM十四讲-第六讲笔记
状态估计问题SLAM模型:状态方程:xk=f(xk−1,uk)+wkx_k=f(x_{k-1},u_k)+w_kxk=f(xk−1,uk)+wk运动方程:zk,j=h(yj,xk)+vk,jz_{k,j}=h(y_j,x_k)+v_{k,j}zk,j=h(yj,xk)+vk,j其中:x:相机位姿。可以由旋转矩阵TTT或者李代数exp(ϵexp(\epsilonexp...
2018-10-23 11:49:44 1599 1
原创 三维数据表示方法
参数化表示方法parametric surface用参数化的函数来表示曲面。易于生成曲面上的点。难以分辨正面/背面,是否在面上,难以表示复杂平面(进而产生mesh)模糊表示方法implicit:模糊函数。易于表示内部/外部,是否在面上。难以生成具体点,只能表示相对位置。无法实时渲染。Binary volumetric grids根据距离函数匹配阈值,转化为二值网格。...
2018-10-18 16:39:52 8623
原创 ubuntu16.04使用anaconda安装gpu版tensorflow + alias为命令创建别名
=-=前期准备注意顺序!!不能先安装python!先装anoconda,再装cuda环境,最后装tensorflow。设置显卡驱动:右上角系统设置-软件和更新-附加驱动-选则如下设置-应用更改。安完需要重启一下。安装anaconda我安装的是python 3.5版本的。先去官网下载。找到linux对应的64bit版本(.sh后缀)https://www.anaconda.com/d...
2018-10-16 10:40:04 510
原创 [LeetCode] 326 - 3的幂。c语言精度问题。
题目链接:3的幂题目描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。要求不用循环或递归,O(1)判断。有各种奇奇怪怪的方法,打表int范围内的3的次幂比对,int范围内最大的3的次幂一定是n倍数,求log3(n)是否为整数,三进制判断是否只有首位为1等等。我用了判断log3(n)是否为整数的方法。C语言的log只有以10和e为底的,其他要用换底公式,如:log3(n)=lo...
2018-10-15 21:05:50 534
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人