算法
文章平均质量分 61
zhanglehes
这个作者很懒,什么都没留下…
展开
-
g2o -- circle_fit代码解析
***/class VertexCircle : public g2o::BaseVertex { // 顶点包含3个参数public:void setToOriginImpl() override { // 设置顶点的初始值void oplusImpl(const double* update) override { // 增量更新函数/***/原创 2024-03-05 11:15:57 · 411 阅读 · 0 评论 -
g2o -- curve_fit代码解析
***/class VertexParams : public g2o::BaseVertex { // 它包含三个参数public:void setToOriginImpl() override {} // 设定参数的原始值void oplusImpl(const double* update) override { // 增量更新函数,调整当前参数的值// 构造参数增量/***/原创 2024-03-04 20:02:23 · 491 阅读 · 0 评论 -
g2o--icp代码解析
概要个人理解Icp是一种location算法。我们先将全局的事物特征化,提取出特征点。在求解过程中,将观察的的图像,同样进行特征化。将全局点与当前特征点进行匹配,就可以求得观察者当前的位姿。Icp算法通常分为粗匹配和精细匹配两部分。粗匹配是将观察特征点移动到对应全局特征点的附近,而精细匹配这是将一个一个对应的特征点,使用最小二乘优化进行调整。在精细匹配的过程中,特征点对的选取也很重要,icp是一套迭代的算法,每次变换后都需要重新选取特征点对。原创 2024-01-29 17:54:17 · 535 阅读 · 0 评论 -
欧拉角,四元数,旋转矩阵以及它们的转换关系
欧拉角,四元数,旋转矩阵以及它们的转换关系原创 2023-04-19 09:37:40 · 451 阅读 · 0 评论 -
隐马尔可夫模型在map-matching中的应用
状态值的取值空间:图中所示有五条线段,因此状态空间为{S1,S2,S3,S4,S5}。考虑到map-matching是一个处理连续轨迹点的问题,因此我们可以以当前点的位置坐标出发,一定范围内的link都属于状态空间。有时连续两个gps点的位置差异过大,超过一定范围的点称之为跳点,对于跳点需要过滤掉。{o1,o2,o3,o4,o5,o6,o7,o8}(经纬度,方向,速度等)。转移概率矩阵:这里最主要考虑到的是轨迹的连续性。原创 2022-10-11 19:24:06 · 1507 阅读 · 1 评论 -
一种路网划分的策略
一条link包含起点(start_node)和终点(end_node),非极端情况下,这条link所属的分片可以等价于起点所属分片与终点所属分片的并集(最多属于两个分片),这样就将link所属分片的问题转化为点所属分片的问题。遍历每一条link,将start_node和end_node离散化成represent_node1和represent_node2,并利用上述的映射关系,找出对应的分片数,其值就是link对应的分片值。在上图中,link1/2/4均满足之前的假设,只有link3是横跨的3个分片。原创 2022-09-30 16:07:22 · 526 阅读 · 0 评论 -
一致性哈希(CONSISTENT HASH)的GO实现
一致性hash简介主要针对多cache的应用场景,当cache服务器变动时,希望cache中的信息尽可能被使用到; 需要做好负载均衡,同时不能因为添加和删除cache节点造成部分节点负载过重;代码实现1、类的定义type SortedKeys []uint32func (x SortedKeys) Len() int { return len(x) }f...原创 2020-03-17 12:25:37 · 456 阅读 · 0 评论 -
一种快速加载大文件的方法
问题的来源是这样的。我们的服务有大概20G的索引文件(大概两百多个文件),现在的加载方式是使用mmap(该命令之后会有专门的一篇文章介绍)。使用这个命令的好处就是初始化速度非常快,但是也带来了一些问题。比如第一次查询某个词的时候速度就会特别慢,这当然和mmap只建映射却不拷贝有关。为了解决该问题,领导让我思考一下如何能快速的把20G的文件加载进来。我是这么考虑的。首先一个一个文件读取是最简原创 2014-09-01 15:29:50 · 1581 阅读 · 0 评论 -
一种trie树 的实现方式
Trie树,又被称为前缀树。 它查询的基本原理是通过当前字的下一个字定位到其子节点。如果我们限制所有有效的输入仅是普通的英文字母,那么它最多会有52个子节点。我之前见过的一种做法就是一旦插入产生第一个子节点, 所有52个节点会同时生成。这种做法的好处是查询速度非常快, 因为直接通过输入的字符就直接可以定位到子节点。缺陷也非常的明显, 即是上述的应用场景都会造成严重的空间浪费.。如果我们把原创 2015-01-28 11:38:39 · 707 阅读 · 0 评论