摘要: 背包问题的总结,包含了基本背包,完全背包,多重背包,以及各问题的线性空间复杂度/二维空间复杂度解法。acwing有一些比较基础的题可以进行相关测试。 基本背包问题 01背包平方空间复杂度 int pack_01_vn(const vector<int> &costs, const vector<in 阅读全文
posted @ 2020-08-21 22:18 byrock 阅读(75) 评论(0) 推荐(0)
摘要: 学习《程序员的自我修养》一书,进行记录总结。本文为第十章的主要内容。本章主要讨论了程序内存布局、调用惯例、堆栈内存管理。 程序的内存布局 linux下栈空间默认大小是8192K,进程递归次数过多,也就会报stack overflow。 栈与调用惯例 栈 栈保存了函数调用所需要的维护信息,一个函数的栈 阅读全文
posted @ 2020-06-03 22:22 byrock 阅读(77) 评论(0) 推荐(0)
摘要: 解bundle adjustment,由于完全是自己实现这份代码还是存在很大的缺陷,残差只能降低20倍(但是,它至少能下降,能收敛...)。目前看来,仅仅能作为对整个BA过程理解的代码,实际应用概率不大。 本来想实现DSO中的滑窗优化,可是写到后来发现这个东西还是需要前端来支持的,最起码得形成一个由 阅读全文
posted @ 2020-05-24 22:36 byrock 阅读(262) 评论(0) 推荐(0)
摘要: 学习《程序员的自我修养》一书,进行记录总结。本文为第八章的主要内容。本章主要讨论了linux中共享库的版本规划(部署层面),符号版本组织(代码层面),共享库的查找策略创建、安装。 共享库版本 共享库的一个附加便利是,当某个.so内容变化时,在一定情况下,只需要把旧的.so替换为新的即可使程序得到新版 阅读全文
posted @ 2020-05-21 22:23 byrock 阅读(73) 评论(0) 推荐(0)
摘要: 学习《程序员的自我修养》一书,进行记录总结。本文为第七章的主要内容。 静态链接 符号表表示了符号和地址的关系,代码段中只有地址,没有符号,在编译时符号的地址被刷入到代码段。 重定位表,每一项是代码段中需要被重定位的地方和符号的关系。如果符号地址是未知的,那么必须在链接过程中确定,然后根据重定位表将地 阅读全文
posted @ 2020-05-09 22:27 byrock 阅读(219) 评论(0) 推荐(0)
摘要: BA是SLAM中进行全局图优化的一个关键技术。SLAM主流架构是前端(视觉里程计)和后端(全局图优化)构成。里程计负责在轨迹中增量地构建地图,一般情况下里程计都会面临误差累积的问题。需要靠全局图优化调整机器人位姿与路标点位置将误差消除。 基础铺垫 里程计是基于前后帧图像/滑窗内N帧图像的位姿计算,每 阅读全文
posted @ 2020-04-27 22:38 byrock 阅读(423) 评论(0) 推荐(0)
摘要: 研究SLAM过程中,专门看的算法是DSO,其前端是一个直接法结合滑窗优化的产物。在实现滑窗代码时对其理解不够深刻,当翻起书再看时才恍然大悟。总结如下。 前端滑窗优化的残差项和BA的完全不同。在DSO中,点的参数只有深度,而且是在host帧上的深度,残差项的构成原理时像素点根据深度进行重投影的亮度误差 阅读全文
posted @ 2020-04-18 22:44 byrock 阅读(482) 评论(0) 推荐(0)
摘要: 学习《程序员的自我修养》一书,进行记录总结。本文为第六章的主要内容。第四章静态链接,近期才看过,准备过一段时间回头写再加深印象。第五章是windows的PE格式,不准备看了。 进程虚拟地址空间 这部分内容较为容易理解,只记录一下程序和进程的区别。程序是一个静态的概念,是一些预先编译好的指令和数据集合 阅读全文
posted @ 2020-04-17 22:30 byrock 阅读(135) 评论(0) 推荐(0)
摘要: 学习《程序员的自我修养》一书,进行记录总结。本文为第三章的主要内容。 真正了不起的程序员对自己的程序的每一个字节都了如指掌。 ——佚名 目标文件 目标文件是指单个.c源文件(如果有include,则是包含include后)经过编译生成的文件。其格式为ELF(Executable Linkable F 阅读全文
posted @ 2020-04-16 22:41 byrock 阅读(494) 评论(0) 推荐(0)