自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lucas1997的博客

上海交大研究生在读

  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 Effective C++part 5 实现

文章目录尽可能延后变量定义式的出现时间尽量少做转型动作尽可能延后变量定义式的出现时间当定义一个变量而其类型带有一个构造函数或析构函数,当程序的控制流(control flow)到达这个变量定义式时,就要承担构造成本,离开作用域时,就要承担析构成本。即使这个变量没有被使用。例如:std::string encryptPassword(const std::string& password){ using namespace std; string encrypted; if

2020-12-19 15:18:43 334

原创 2020-12-09

点”——位置细胞 Place Cell我在哪儿?我来过这里吗?O’Keefe发现当小白鼠跑到实验房间的某个地方的时候,海马体内的某一个特定的神经细胞A就会激活,而周围的其他细胞是的,而跑到其他地方的时候,这个细胞A就会抑制,而另外一个细胞就会激活。这种对自身在环境中所处位置而产生对应反应的神经细胞,就是位置细胞。而每个位置细胞所对应的实际位置区域便被定义为这个细胞的place field。通过一系列的实验,O’Keefe 推测,这些位置细胞组合在一起,形成了一个认知地图(cognitive map)。通

2020-12-09 19:05:03 453

原创 Effective C++第四部分 设计与声明

文章目录让软件可以被正确使用,不易被误用像设计type一样设计Class让软件可以被正确使用,不易被误用接口开发首先需要考虑客户可能做出什么样的错误假设设计一个表现日期的classclass Date {public: Date(int month, int day, int year); ...};该类第一可能以错误的次序传递参数,第二可能传递一个无效的月份或天数许多客户端错误可以因为导入新类型而获得预防, 因此可以导入外覆类型(wrapper types)来区别天数、月份和

2020-12-04 15:54:17 472

原创 Effective C++ 第三部分 资源管理

使用的资源就必须还给系统, 常见的资源:内存, 文件描述器(file descriptors)、互斥锁(mutex locks)、网络sockets、图形界面中的字型和笔刷、数据库连接。以对象管理资源把资源放入对象中,这样就可以使用C++的“析构函数自动调用机制”确保资源被释放。许多资源被动态分配于heap内而后被用于单一区块或函数内,他们应该再控制流离开那个区块或函数时被释放。标准程序库提供的auto_ptr正是针对这种形式设计的特制产品, auto_ptr是一个“类指针(pointer-like)”

2020-11-26 16:30:07 286

原创 Neuronal Circuit Policies

对线虫的抽头撤回(TW)神经回路进行建模,该回路负责蠕虫,对机械触摸刺激的反射反应。该电路称为抽头抽头(TW),它包含9个神经元类,这些神经元类通过化学和电突触连接在一起。然后预测了电路的突触极性(是兴奋性的还是抑制性的),这表明在存在触摸刺激的情况下,电路实现了前向和后向反射之间的竞争行为。实现三个任务:1.倒立摆的控制 2、控制汽车登上陡坡 3.泊车我们在这项工作中的主要贡献是证明在标准控制和RL设置下,秀丽隐杆线虫脑的紧凑神经元回路模型作为可解释的连续时间递归神经网络的性能。在我们的实验评估中,

2020-11-24 18:56:17 948 1

原创 Effective C++学习笔记 Part2 构造/析构/赋值运算

Effective C++ Part 2了解C++默默编写并调用了哪些函数不想使用编译器自动生成函数, 明确拒绝为多态基类声明virtual析构函数不让异常逃离析构函数不在构造和析构过程中调用virtual函数operator=返回一个reference to *this在operator= 中处理“自我赋值”复制对象勿忘其每一个成份了解C++默默编写并调用了哪些函数一个空类会声明的函数:copy构造函数, copy assignment操作符、析构函数如果没有声明构造函数:编译器声明默认的defau

2020-11-21 20:51:09 231 2

转载 如何加快Dijkstra算法的运行速度?

如何加快Dijkstra算法的运行速度?在Dijkstra算法中,面对单源单目标的最短路径,如果遇到了要relax的节点u就是目标节点t,显然就可以执行结束了。Dijkstra算法Dijkstra算法的探索路径是从源一直往目标前景,那么加速它的一个角度就是从源开始探索的时候,同时从目标点向源开始探索,这种算法即Bi-Directional Search。Bi-Directional Search具体操作位,从源点和从目标两个方向均开始搜索,轮流的执行。两个方向的搜索意味着,在初始化的时候将有两个路

2020-11-21 18:42:25 555

转载 拓扑排序入门

在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。一直做改操作,直到所有的节点都被分离出来。如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无解的情况。下面是算法的演示过程。下面是我以前的写法,比较好理解,但是效率低 //b[]为每个点的入度for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ if(

2020-11-21 16:01:39 156

原创 MIT CS6.006 最短路径专题

单源最短路径·找出一个带权有向图从起点到终点权重和最小的路径。几个变体:1.单目的地最短路径问题2.单结点对最短路径问题3.所有节点对最短路径问题一个隐藏的重要性质:两个节点之间的一条最短路径也包含着其它的最短路径,也就是说,最短路径的子路径也是最短路径一般性,我们可以假定找到的最短路径中没有环路,即他们都是简单路径,由于图G=(V, E)中任意无环路径最多包含|V|个不同的节点,所以它至多包含|V-1|条边。因此最短路径至多是|V-1|。松弛操作(relaxation)对一条边(u,

2020-11-18 17:43:12 298

原创 C++ 指针和引用的异同点

相同点:都是地址的概念:指针指向一块内存,他的内容是所指内存的地址,引用是某块内存的别名不同点:指针是一个实体,而引用仅仅是一个别名 在使用时候引用无需解引用,而指针需要解引用(*) 指针只能在定义时别初始化一次,之后不可在变,指针一般可变(除非常量指针) 引用不能为空而指针可以为空 “sizeof引用”得到的是所指向的对象的大小,而“sizeof指针”得到的是指针本身的大小联系:引用在语言内部使用指针来实现的 对一般应用而言,把引用理解为指针,不会犯严重语义错误。引用是操作受限了

2020-11-16 21:17:37 166

原创 C++ NULL和nullptr区别

在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。一、C程序中的NULL在C语言中,NULL通常被定义为:#define NULL ((void *)0)所以说NULL实际上是一个空指针,如果在C语言中写入以下代码,编译是没有问题的,因为在C语言中把空指针赋给int和char指针的时候,

2020-11-16 10:06:30 395

原创 笔记

从代码的整体结构来说整个,整个模型相当复杂。每一个类对象和函数都有复杂的调用关系,定义的参数量越巨大,这对于详细定义模型模型的各个环节参数,精细化模型是有帮助形成成熟的商业化模型。但是从科研角度上,代码的可读性和理解要求更高,很容易看着看着1000+的代码就发昏了。大量的参数的定义和反复传递,太容易忘了。我们就抽丝剥茧一个函数一个函数的来看,整个网络的框架。模型总体结构分析然后就几个关键的模块,总体结构参照原文这么看代码好像不多,但是几乎所有的模型都是已经定义好的函数和类。尤其是其中的Conv

2020-10-21 15:49:12 371

原创 笔记2

Abstract开篇直接说明现在建模的gap,图像和视频模型独立分割的状况,发出疑问能否融合有点进行统一建模Visual saliency modeling for images and videos is treated as two independent tasks in recent computer vision literature.Can image and video saliency modeling be approached via a unified model, wit

2020-10-21 15:48:56 516 1

转载 【泡泡机器人转载】SLAM: 现在,未来和鲁棒年代

摘要SLAM是由同步环境地图构建和运行于其中的机器人状态估计组成。SLAM领域过去30年取得了令人瞩目的成就,其在大场景应用成为了可能,这一技术被见证了成功地被应用于工业领域。本文中,我们研究了SLAM最新进展,从SLAM形成的事实标准开始讲解,回顾了相关工作,这涵盖了一系列广泛的主题,包含长时间建图过程中的鲁棒性和尺度问题,建图过程中的特征和语义表示,理论上的性能保证,主动SLAM和其扩展,还有其他前沿课题。这篇文章为非专家读者提供了一个指南。这是一篇标志性的论文:本文以批判的眼光看待已有的研究成果,

2020-07-13 16:34:08 1586

转载 ElasticFusion解析资源

泡泡机器人ElasticFusion讲解PPT:http://pan.baidu.com/s/1eSDuhZsElasticFusion 解析https://blog.youkuaiyun.com/fuxingyin/article/details/51433793ElasticFusion 中的 Randomized Ferns 重定位/回环检测 论文和代码解析https://blog.youkuaiyun.com/fuxingyin/article/details/51436430...

2020-07-13 13:37:55 632

原创 StaticFusion

主要内容面向动态环境基于面元的RGB-D SLAM系统,主要内容如下:同时估计RGB-D相机位姿并分割当前帧图片中的静态像素。将当前帧像素的静态概率当做一个取值范围为的连续变量,和位姿一起联合优化。 构建静态场景的面元地图。为此,地图中的每个面元添加额外的生存能力项,由对应观测像素的静态概率决定。如果生存能力过小,则表明该面元属于动态面元,从地图中移除该面元。 代码地址:raluca-scona/staticfusion。缺点初始若干帧内不能有大量动态物体,这样才能保证初始静态场景面元..

2020-07-11 09:23:58 481

原创 EM-Fusion: Dynamic Object-Level SLAM

主要内容面向动态环境的物体级别RGB-D SLAM系统,Fusion++(robot L:【论文阅读2】Fusion++: Volumetric Object-Level SLAM)的动态场景扩展版本,具体改进如下:使用期望最大法(EM)的框架解决SLAM问题。 E步:作者结合Mask R-CNN的实例分割和几何信息(像素的SDF值),计算每个像素属于每个物体的概率,见公式(7)。归一化后,进一步得到每个像素属于每个物体的归一化概率,即关联似然,见公式(5)。 M步:使用深度图片和SDF物体地图

2020-07-11 09:23:43 827

原创 DynaSLAM

摘要假设环境刚体性在SLAM算法中是典型的。这种强假设限制了大多数SLAM在真实环境中的使用,这是一些相关应用的目标,如服务机器人或自动驾驶。Bescos等人展示了DynaSLAM,一种视觉SLAM系统,建立在ORB-SLAM2上,增加了动态物体检测和背景修补。DynaSLAM在动态场景中是鲁棒的。作者能够通过多视图几何,深度学习或者两者同时来检测动态物体。得到的静态场景地图允许修补被动态物体遮挡的帧背景。DynaSLAM 超过了标准SLAM的表现在高动态环境中。同时,它也估计了环境静态部分的地图,对于

2020-07-10 20:42:14 1845

原创 Surfel-based Mapping: SemanticFusion

摘要使用视觉感知得到更鲁棒,准确和细节的建图已经被证明是移动机器人在许多应用中的促成因素。对于机器人智能和用户交互的下一个阶段,地图需要从几何和外观上进行拓展——它们必须包含语义。McCormac等人通过组合CNNs和SOTA SLAM系统ElasticFusion,提供了室内RGB-D视频序列间的长期稠密对应。这些对应允许多视角的CNN的语义预测通过概率融合到地图中。这不仅提供了一个有效的语义3D地图,而且在NYUv2数据集上展示出融合多个预测提高了2D单帧语义标号的准确性。系统能够实时运行,达到25

2020-07-10 20:28:12 1037

原创 Point-based Semantic Monocular SLAM

主要内容在ORB-SLAM中添加直接法。 利用每帧中每个特征点的测量信息:深度测量(三角化结果),语义标号(CNN输出)和特征点匹配精度(公式(13)(14)),维护每个特征在地图中的性质:深度,语义标号,和内点率(属于静态物体的概率)。维护过程以概率方式而非简单的加权平均方式来完成。 在相机位姿估计中,只使用内点率较高(推断为静态物体)的ORB特征点。N. Brasch, A. Bozic, J. Lallemand, F. Tombari. Semantic Monocular SLAM fo

2020-07-10 20:04:41 339 3

转载 概率图模型学习笔记:HMM、MEMM、CRF

作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。概率图模型学习笔记:HMM、MEMM、CRF一、Preface二、Prerequisite 2.1 概率图2.1.1 概览2.1.2 有向图 vs. 无向图2.1.3 马尔科夫假设&马尔科夫性2.2 判别式模型 vs. 生成式模型2.3 序列建模三、H.

2020-07-10 20:02:29 1969

原创 SuMa++: LiDAR-based Semantic SLAM

主要内容基于语义的3D LiDAR SLAM。利用每帧点云中逐点的语义标号,建立全局语义地图。特别地,主要创新点在于利用语义信息滤除动态物体并改变ICP的残差权重,从而提高定位和建图的精度及地图的整洁性(去除了动态残影)。主要贡献单帧点云逐点的精修语义标号 通过检查当前帧观测点的语义标号和地图中关联面元的语义标号的一致性,滤除地图中的动态面元 未通过上述一致性的关联,在点面ICP中减少该残差的权重。X. Chen, A. Milioto, E. Palazzolo, P. Giguere,

2020-07-10 19:25:41 546

原创 Meaningful Maps With Object-Oriented Semantic Mapping

基于RGB-D数据的语义建图(SLAM帮助语义)。具体过程如下首先利用SSD执行单帧RGB图片(2D)物体检测。 接着基于检测结果和深度信息,利用3D分割算法进一步分割3D点云。 最终利用ORB-SLAM2的相机位姿信息将每帧的3D点云分割结果合并到地图中,建立语义点云地图。特色:非物体只维护点云,物体维护点云和类别标号。 点云分别在每个观测帧中维护。好处是闭环后点云也可以跟着观测帧的位姿变化。 语义更新:简单累加,取最大值。未来工作语义帮助SLAM。利用语义信息提高SLAM的精度,

2020-07-10 19:04:33 510

原创 Object-based Semantic SLAM: MID-Fusion

主要内容利用RGB-D相机估计:相机位姿 物体几何信息。每个物体维护一个octree,树中存储该物体的多种几何信息,如TSDF值。 物体语义信息。属于每类物体的概率。 物体运动信息。是否运动。 物体位姿信息。6DoF位姿。创新点相机和物体跟踪:使用测量不确定性加权[19]。 单帧RGB图片的物体的掩膜分割:Mask R-CNN实例分割+Maskfusion的边缘精修。 基于体素的物体模型:包含符号距离函数(SDF),密度,前景概率和对应的权重。 单帧掩膜与现存物体模型的关联:考虑

2020-07-10 18:56:35 554

原创 SegMatch: Segment based place recognition in 3D point clouds

R. Dube, D. Dugas, E. Stumm, et al. SegMatch: Segment based place recognition in 3D point clouds.IEEE International Conference on Robotics and Automation, 5266-5272, 2017.摘要Dube等人首次提出基于分割的3D点云场景识别方法。与局部(基于关键点)和全局(基于全局描述子)的场景识别方法不同,基于分割的场景识别方法既考虑了局部特征,.

2020-07-10 17:02:50 881

原创 Fusion++: Volumetric Object-Level SLAM

主要内容本文提出了一种物体实例级别的基于体素的语义SLAM系统, 主要内容包括:对每个物体实例维护一个TSDF体素地图. 对非物体(背景)维护一个TSDF体素地图,使用KinectFusion进行局部跟踪. 基于物体的重定位方法. 包含相机位姿和物体位姿的因子图优化. 包含相机位姿-物体位姿和相机位姿-相机位姿约束不足假设静态场景摘要McCormac等人提出了一种在线的物体级别的SLAM系统,能够建立持续准确的任意物体的3D地图。一个RGB-D相机在一个杂乱室内环境中运动,Mask

2020-07-10 16:43:18 868

原创 SLAM++: Simultaneous Localization and Mapping at the Level of Objects

R. F. Salas-Moreno, R. A. Newcombe, H. Strasdat, P. H. Kelly. SLAM++: Simultaneous Localization and Mapping at the Level of Objects.IEEE Conference on Computer Vision and Pattern Recognition, 1352-1359, 2013.主要内容本文主要贡献是提出了一种物体辅助SLAM中相机定位的方法.主要内容如下:K.

2020-07-10 16:23:19 1453 3

转载 MIT 计算机操作环境导论Missing Semester Lesson 10 Q&A

最后一节课,我们回答学生提出的问题:学习操作系统相关内容的推荐,比如进程,虚拟内存,中断,内存管理等 你会优先学习的工具有那些? 使用 Python VS Bash脚本 VS 其他语言? source script.sh和./script.sh有什么区别? 各种软件包和工具存储在哪里?引用过程是怎样的?/bin或/lib是什么? 我应该用apt-get install还是pip install去下载软件包呢? 用于提高代码性能,简单好用的性能分析工具有哪些? 你使用那...

2020-07-01 11:31:49 429

转载 MIT 计算机操作环境导论Missing Semester Lesson 9 安全和密码学

去年的这节课我们从计算机用户的角度探讨了增强隐私保护和安全的方法。 今年我们将关注比如散列函数、密钥生成函数、对称/非对称密码体系这些安全和密码学的概念是如何应用于前几节课所学到的工具(Git和SSH)中的。本课程不能作为计算机系统安全 (6.858) 或者 密码学 (6.857以及6.875)的替代。 如果你不是密码学的专家,请不要试图创造或者修改加密算法。从事和计算机系统安全相关的工作同理。这节课将对一些基本的概念进行简单(但实用)的说明。 虽然这些说明不足以让你学会如何设计安全系统或者...

2020-07-01 11:30:41 507

转载 SLAM综述性论文阅读手记

==1 简介== 古典年代(1986-2004):这一时期,引入了SLAM概率论推导方法,包括基于扩展卡尔曼滤波、粒子滤波和最大似然估计。第一个挑战是效率和数据关联(求解位姿)的鲁棒性问题。 算法分析年代(2004-2015):有许多SLAM基本特性的研究,包括可观测性,收敛性和一致性。研究者们理解了稀疏特征在高效SLAM解决方案中的重要角色,开发了主要开源SLAM库。 以下为主要的综述文献: 【2006】 《Simultaneous localization and mapping: part

2020-06-12 23:38:23 4381

转载 MIT 计算机操作环境导论Missing Semester Lesson 8 元编程

我们这里说的 “元编程(metaprogramming)” 是什么意思呢?好吧,对于本文要介绍的这些内容,这是我们能够想到的最能概括它们的词。因为我们今天要讲的东西,更多是关于流程,而不是写代码或更高效的工作。本节课我们会学习构建系统、代码测试以及依赖管理。在您还是学生的时候,这些东西看上去似乎对您来说没那么重要,不过当您开始实习或走进社会的时候,您将会接触到大型的代码库,本节课讲授的这些东西也会变得随处可见。必须要指出的是,“元编程” 也有用于操作程序的程序” 之含义,这和我们今天讲座所介绍的概念是完..

2020-06-03 14:17:37 357

转载 MIT 计算机操作环境导论Missing Semester Lesson 7 调试及性能分析

代码不能完全按照您的想法运行,它只能完全按照您的写法运行,这是编程界的一条金科玉律。让您的写法符合您的想法是非常困难的。在这节课中,我们会传授给您一些非常有用技术,帮您处理代码中的 bug 和程序性能问题。调试代码打印调试法与日志“最有效的 debug 工具就是细致的分析,配合恰当位置的打印语句” — Brian Kernighan,Unix 新手入门。调试代码的第一种方法往往是在您发现问题的地方添加一些打印语句,然后不断重复此过程直到您获取了足够的信息并找到问题的根本原因。另外一.

2020-05-31 16:05:06 903

原创 Pytorch CPU运行与GPU运行

需要在Pytorch下跑一SalGAN,但是代码居然用CPU来计算,将其改为GPU版。Pytorch下使用GPU计算需要三步,记录一下:1.将数据载入GPU:input-> input.cuda()2.将模型载入GPUmodel = model.cuda()3.将输出的预测转为numpy格式result.data.numpy() -> result.data.cpu().numpy()...

2020-05-29 15:36:38 3091

转载 MIT 计算机操作环境导论Missing Semester Lesson 6 Git 版本控制(Git)

Version control systems (VCSs) are tools used to track changes to source code (or other collections of files and folders). As the name implies, these tools help maintain a history of changes; furthermore, they facilitate collaboration. VCSs track changes t

2020-05-27 23:38:54 481

原创 DSO在Euroc上运行经验贴

网上DSO基本上都是在TUM数据集上跑得,教程也比较多,写论文需要,使用DSO跑了一下Euroc数据集,踩了很多坑,花了一天的时间才调通,记录一下。本机运行环境:Ubuntu16.04 其它环境只要安装过ORB-SALM2的应该不用做额外的配置1.安装DSO,教程很多,不做赘述,不过ziplib这个包需要注意,如果图片数据集是以zip格式存储方式进行读取的话需要安装这个包,当然直接建一个文件夹放图片也行。2.按照教程运行DSO,运行Euroc数据集的命令为 ./dso_dataset f

2020-05-24 02:10:00 2210 7

转载 深度学习结合SLAM 研究现状总结

深度学习结合SLAM 研究现状总结深度学习结合SLAM 语义slam 语义分割 端到端SLAM CNN-SLAM DenseSLAM orbslam2 + ssd LSD-SLAM + CNN SemanticFusion Mask1. 用深度学习方法替换传统slam中的一个/几个模块: 特征提取,特征匹配,提高特征点稳定性,提取点线面等不同层级的特征点。 深度估计 位姿估计 重定位 ...

2020-05-22 15:55:03 2670

转载 MIT 计算机操作环境导论Missing Semester Lesson 5 命令行环境

In this lecture we will go through several ways in which you can improve your workflow when using the shell. We have been working with the shell for a while now, but we have mainly focused on executing different commands. We will now see how to run several

2020-05-12 14:31:32 446

转载 MIT 计算机操作环境导论Missing Semester Lesson 4 数据整理

Have you ever wanted to take data in one format and turn it into a different format? Of course you have! That, in very general terms, is what this lecture is all about. Specifically, massaging data, w...

2020-04-27 18:50:53 564

转载 MIT 计算机操作环境导论Missing Semester Lesson 3 编辑器 (Vim)

Writing English words and writing code are very different activities. When programming, you spend more time switching files, reading, navigating, and editing code compared to writing a long stream. It...

2020-04-14 17:44:45 670

转载 MIT 计算机操作环境导论Missing Semester Lesson 2 Shell 工具和脚本

Shell ScriptingSo far we have seen how to execute commands in the shell and pipe them together. However, in many scenarios you will want to perform a series of commands and make use of control flow ...

2020-04-01 22:42:10 814

S3DIS配准版.zip

Stanford large-scale 3D Indoor Spaces Dataset (S3DIS)

2020-06-04

KITTI数据集网盘分享

KITTI数据集百度网盘分享

2020-06-15

modelnet.txt

modelnet-40数据集 百度云分享

2020-06-04

空空如也

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

TA关注的人

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