- 博客(32)
- 收藏
- 关注
原创 joint-lidar-camera-calib
在无标定目标的环境中,激光雷达-摄像头系统内在和外在参数的联合标定。本文旨在在没有棋盘格的情况下,标定摄像头的内参和激光雷达-摄像头的外参,同时保持与基于标定目标的方法相当的精度。我们的方法仅需要。由于有纹理的平面在城市环境中普遍存在,因此该方法在各种标定场景中具有广泛的适用性。关于该方法的详细描述,请参阅我们的。标定流程概述如下面的图所示。
2024-12-11 19:10:18
315
原创 在已经有的docker镜像中打包新的组件
方法 1是通过创建Dockerfile来定制镜像,适用于你需要频繁重建镜像或者需要版本控制的场景。方法 2是手动修改容器并提交为新镜像,适用于快速修改和测试。通常,推荐使用Dockerfile方式,因为它可以记录镜像的构建过程,更加可维护和透明。
2024-12-07 16:07:53
750
原创 Online Monocular Lane Mapping
本研究提出了一种基于单目相机和里程计的实时车道线建图系统,用于生成基于样条的车道地图。我们提出的技术将车道关联过程建模为一个二分图分配问题,并通过结合Chamfer距离、位姿不确定性和横向序列一致性来为边赋权。此外,我们精心设计了控制点初始化、样条参数化和优化方法,以逐步创建、扩展和精炼样条。与先前使用自建数据集评估性能的研究不同,我们的实验是在公开可访问的OpenLane数据集上进行的。实验结果表明,我们的方法在车道关联、里程计精度和整体车道地图质量方面都有所提升。
2024-12-06 19:09:48
1362
原创 匈牙利算法 Hungarian Algorithm
本文主要学习B站的内容做一个总结:匈牙利算法(Hungarian Algorithm)是一种解决或的算法。其主要用于解决如下问题:给定一个,找出一种方式将矩阵的每一行和每一列都匹配上,使得总成本最小。
2024-12-04 15:59:11
543
原创 SuperPoint Self-Supervised Interest Point Detection and Description
本文出自近几年备受瞩目的创业公司,发表在CVPR 2018,一作特征点检测器以及描述子网络共享一个单一的前向encoder,只是在decoder时采用了不同的结构,根据任务的不同学习不同的网络参数。这也是本框架与其他网络的不同之处:其他网络采用的是先训练好特征点检测网络,然后再去进行对特征点描述网络进行训练。网络共分成以下4个主要部分,在此进行详述。
2024-12-03 15:02:31
430
原创 道格拉斯-普克算法(Douglas-Peucker algorithm)
道格拉斯-普克算法 是一种用于简化多边形或折线的算法,目标是减少点的数量,同时保持原始形状的主要特征。这通常用于地图简化和图形处理: 假设有一个折线:A → B → C → D → E,使用道格拉斯-普克算法简化,阈值设为某个值。算法会检查B、C、D等点的距离,保留关键点,去掉不必要的点,最终得到简化后的折线。
2024-11-26 14:33:12
460
原创 Ceres计算Bundle Adjustment
Bundle Adjustment,中文名称是光束法平差,经典的BA目的是优化相机的pose和landmark,其在SfM和SLAM 领域中扮演者重要角色。开发Ceres的主要原因之一是需要解决大规模的Bundle Adjustment. 目前bundle adjustment 优化框架最为代表的是ceres solver和g2o ,据说ceres的命名是天文学家Piazzi闲暇无事的时候观测一颗没有观测到的星星,最后用least squares算出了这个小行星的轨道,故将这个小行星命名为ceres。
2024-11-25 16:23:49
577
原创 glog 安装报错:R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5
在安装编译gflag的时候在cmakelist中添加。然后重新编译安装gflag,然后再编译安装glog。
2024-11-18 19:53:26
139
原创 opencv kdtree & pcl kdtree 效率对比
由于项目中以一个环节需要使用kdtree ,对性能要求比较严苛,所以看看那个kdtree效率高一些。对比了opencv和pcl。
2024-11-15 11:17:46
564
2
原创 pencv + opencv_contrib 编译
在目录中创建build 文件夹,在终端中执行,然后make -j8 && make install。
2024-11-15 10:34:19
238
原创 计算机视觉-单应矩阵
是射影几何中的一个术语,又称之为射影变换。当相机发生纯旋转,或者若场景中的特征点都落在同一平面上(比如墙,地面等)时,计算基础矩阵或者本质矩阵往往会有很大的误差(因为此时平移量t特别小),此时需要用到单应矩阵主要用来解决两个问题:(1)表述真实世界中一个平面与他对应图像的透视变换(2)通过透视变换实现图像从一个视图变换到另一个视图的转换。
2024-11-10 17:18:52
1600
原创 本质矩阵分解计算R&t
上一文章中描述了本质矩阵的计算,,那么计算得到本质矩阵有什么用?其中一个应用是通过本质矩阵计算得到2D-2D的相对变换。在相关矩阵计算时,一般会在两幅图像中,根据特征找到对应匹配对后估计出基础矩阵F或本质矩阵E,如果是直接估计出基础矩阵F,且知道两幅图中的相机参数分别为K1、K2,则可以直接得到本质矩阵E对于本质矩阵与相对变换的R和t有如下关系(注意这里指的相对变换是从第一幅图变换到第二幅图的位姿相对变换)集体的求解方法参考4中参考文献。
2024-10-29 19:04:20
742
原创 设计模式深入理解-工厂模式
工厂模式属于创建型模式,它提供了一种创建对象的最佳方式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。1. 简单工厂模式 该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建进行了一层薄薄的封装。该模式通过向工厂传递类型来指定要创建的对象,使用参数驱动,其UML...
2020-06-21 15:47:29
344
原创 Mosquitto 权限管理
Mosquitto 权限是根据 topic 控制的、类似与目录管理。您可以设定每个用户订阅/发布权限、也可以设定每个用户可访问的topic范围、从而达到权限控制的目的。1: 给这两个用户配置不同的权限 admin1 设置为订阅权限,并且只能访问的主题为"root/topic/#" admin2 设置为发布权限,并且只能访问的主题为"root/topic/#"如果用 admin 进行发布是不会成功的、反过来用 admin2 进行订阅同样不会接受到任何信息。因为他们的权限不同。2
2020-06-13 18:04:53
1391
原创 Centos7 升级GCC编译器
最近项目使用C++11原子操作,编译代码无法通过,提示no matching function for call to ‘atomic_init(std::atomic_uint*, unsigned int&),查找资料,也找不到stdatomic.h文件,感觉应该是当前GCC版本无法支持原子操作,我的版本是GCC4.8.5。有人说:因为GCC官网说:gcc在4.7就支持c11标准了。然而C11标准说:你得有stdatomic.h这个头文件,作为C语言标准库自带原子操作库。这年头怎么能没有原子
2020-06-09 21:54:59
1715
2
原创 Mosquitto常用命令
1 mosquitto服务器的搭建 服务器这里使用了阿里云的服务器,mosquitto默认需要1883的TCP入端口。需要在安全策略里设置一下。端口当然也可以选其他端口进行配置。服务安装# 服务器终端安装mosquitto和mosquitto-clients,后者是一些客户端,方便我们测试用sudo apt install mosquitto mosquitto-clients服务状态查看sudo systemctl status mosquitto客户端监听# ...
2020-06-07 16:37:41
7682
1
原创 ptotobuff
之前在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,而在最近的开发中接触到了 Google 的 ProtoBuf.1 什么是Protobuffprotocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等, Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 你可以定义数据的结构
2020-06-07 16:09:32
758
1
原创 Mqtt与mosquitto
1 MQTT概述1.1 基本概念MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。1.1.1 MQTT设计规范由于
2020-06-07 15:28:07
1180
原创 深度学习图像分割:U-Net 体系结构
深度学习图像分割:U-Net 体系结构 U-Net是一种卷积神经网络(CNN)方法,由Olaf Ronneberger、Phillip Fischer和Thomas Brox于2015年首次提出,它可以更好的分割生物医学图像。我们将要探讨的论...
2020-04-12 17:05:55
4301
原创 How to install the NVIDIA drivers on CentOS 8
How to install the NVIDIA drivers on CentOS 8The NVIDIA Driver is a program needed for your NVIDIA Graphics GPU to function with better performance. It communicates between your L...
2020-03-31 21:39:22
760
原创 系统环境: windows10 + Anaconda3 + Pycharm
准备:系统环境: windows10 + Anaconda3 + Pycharm(1)环境配置:打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: 输入:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_cha...
2018-03-26 11:11:33
888
转载 区域生长算法的一种C++实现
区域生长算法的一种C++实现 区域生长算法是一种图像分割方法,能够将图像中具有相同特征的连通区域分割出来,同时保证较好的边缘信息。 区域生长算法的优点是简单,容易实现;但空间和时间复杂度较高,对分割图像要求较高,否则容易形成孔洞和过分割。 区域生长算法的基本思想是首先获取分割区域的一个种子点,然后在种子点的周围搜索与该种子点有相似性质的像素点,合并到种子区域中。然后将合并
2017-10-02 11:08:57
2267
原创 C++ 单例模式
C++设计模式——单例模式问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再delete,不要告诉我你是这么干的。在C++中,可以构造一个日志模块的
2017-08-29 11:25:02
244
原创 C++11 实现单例模式
#ifndef SINGLETON_H#define SINGLETON_H#include #include #include using namespace std;namespace Common{template class CSingleton{public:static inline T* Instance(
2017-08-29 11:03:07
329
转载 Shell Sort
希尔排序介绍希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元素进行直接插入
2017-08-16 15:22:21
243
转载 Hash Table
Hash表 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。1.Hash表的设计思想 对于一
2017-08-14 21:05:09
214
原创 Git学习笔记
Git简介Git是分布式版本控制系统。Git的诞生 很多人都知道,Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代
2017-04-21 16:51:30
283
原创 VS2012使用技巧总结 (自动添加注释)
VS2012使用技巧总结 使用番茄助手自动生成代码注释 操作:【VASSISTX】—-【Visual Assist X Options】—-【 Advanced 】 —- 【 Suggestions】—【Edit VA Snitpets】 比如添加一个 ff 的快捷键注释这一如下 然后打开代码,输入ff,就会有提示代码自动注释 使用命令行查看类的内存布局
2017-03-31 20:32:19
1745
原创 SHFileOperation的用法
文件操作SHFileOperation的用法 在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构–SHFILEOPSTRUCT,告诉Windows执行什么
2017-03-18 15:52:04
2372
原创 并行异构计算OpenMP
OpenMP学习笔记1. 什么是opemMP OpenMP应用编程接口API是在共享存储体系结构上的一个编程模型,是一个编译器指令和库函数的集合2. openMP配置 VS2012面目属性对话框中,”配置属性”->”C/C++”->”语言”将openMP支持设置为”YES”3. 语法说明 #pragma omp parallel for 用来指定后面的for循环为并行执行的,要求fo
2017-03-18 15:50:31
679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人