自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极客园地

Coding时静若处子,玩乐时动如脱兔

  • 博客(274)
  • 资源 (8)
  • 收藏
  • 关注

原创 VI-SLAM技术讨论

当前,为了在实际场景中获得更加精确和稳定的效果,通常采用多传感器融合的方式。其中,采用低成本的IMU与相机融合为视觉惯性SLAM 系统的研究得到了越来越多的关注。IMU传感器可以得到三个轴的角速度以及加速度测量,其测量过程不受光照等因素的影响,与相机具有高度互补性:一方面,可以利用IMU较高的采样频率提高系统的输出频率,进而提高视觉对动态环境和复杂环境的鲁棒性;另一方面,IMU可以借助视觉信息消除自身的累积积分误差。本文将从目前市面上的传感器类别来分析VI-SLAM的各个系统研究现状,然后分别对比各个传感器

2024-05-19 15:33:02 1007

原创 Unity实现动态数字变化

最近的项目需要动态显示数字,所以使用Text组件,将数字进行变化操作过程记录下来。

2024-04-20 21:31:08 682

原创 SolidWorks上手直接开整

本科学3D建模的时候,学习过犀牛Rhine,当时就惊叹于入籍紧密集成的可视化编程环境,后来又简单学习过了3DMax、Maya,平时使用的频率不多,所以还是初学者水平,现在课题组需要自研一个原型机,需要工业级的曲面建模,所以开始尝试接触SolidWorks,希望这次接着项目的机会能够更加深入学习建模。接着,点击特征工具栏,熟识特征工具栏的命令,这些是对草图进行特征编辑的功能,比如拉伸,切除,旋转,扫描等。打开solidworks,新建零件图,首先,你需要明白,任何草图的绘制都需要先选择基准面。

2024-04-10 20:29:20 932

原创 将ORB-SLAM3用图像增强的方式打开

ORB-SLAM3在复杂光照环境下,特征提取和特征匹配的性能明显下降,其准确性和鲁棒性收到很大影响,尤其是当周围环境获取的ORB特征点数量不足时,位姿的估计过程无法进行,甚至或导致初始化和跟踪失败的情况,目前工程所需在复杂光照下运行SLAM,ORB-SLAM3是工程性非常好的SLAM算法,所以打算将图像增强用于ORB-SLAM3的特征提取,增强光照环境下的鲁棒性。

2024-03-25 12:14:18 782

原创 图像增强技术总结

最近科研需要改进算法,需要先对图像进行增强后处理,所以对图像增强技术做一个总结。图像增强的目的就是要提高图像的质量,在图像处理中,有两种提高图像质量的方法:一是图像在采集的过程中,知道图像质量降低的原因,根据原因进行图像恢复,图像复原等处理,二是不管图像质量降低的过程,针对图像本身增强,后者就是本文讨论的内容。图像增强处理技术基本上可以分成两大类,一类是空域处理方法,一类是频域处理方法。

2024-03-04 10:52:14 303

原创 ORB-SLAM3运行自制数据集进行定位教程

目前手上有一个特定的任务,做应急救援的视觉SLAM,目前公共数据集比较少,考虑自建数据集,从网络上爬虫火灾、地震的等手机录制的视频,应用一些现有成熟ORB-SLAM3系统到这个数据集上看效果,然后根据效果得到一些模型改进思路。首先制作相机标定文件,然后使用Cmake工程结合ORB-SLAM3,接着爬虫获取智能手机录制应急救援场景的视频文件,对应时间戳信息,将视频分成多帧图片,最后得到自制数据集。

2024-02-12 10:47:05 950

原创 双目相机立体匹配基础

双目匹配就是用左相机和右相机去拍摄同一个点,目的是找到三维世界的同一个点,也就是在左相机和右相机中的成像点之间的像素差(视差),根据视差去求解深度,那么找到左相机点到右相机的同一个对应点这个过程就是双目相机立体匹配。

2024-02-01 20:46:07 611

原创 imu_utils安装及标定教程

本文使用香港科技大学的imu_utils方差工具标定,首先将INDEMIND双目惯性模组静止放置三个小时。然后采集IMU数据,生成Allan方差数据,由图分析得到加速度和角速度的高斯白噪声和随机游走Bias误差。

2024-01-22 21:56:51 494

原创 双目相机标定基础总结

首先将双目相机的标定进行总结,然后推导本征矩阵和基本矩阵的公式,推导比较复杂, 根据前面双目标定的到的参数进行立体校正。

2024-01-09 16:34:48 1050

原创 单目相机标定理论及张正友标定法总结

我们的真实世界是三维的,拍摄的图片是二维的,相机起到的就是映射的过程,可以把相机看成一个广义的函数,输入的三位场景,输出是二维的图片(灰度图),一般情况下我们看到的是彩色图,彩色图是RGB三通道,每个通道可以认为是一张灰度图,也就是三维场景经过广义的函数(相机)得到照片,函数(映射关系)是不可逆的,也就是说我们无法从二维照片恢复出三维世界,相机是物理模型很难用数学模型完全量化,所以我们就需要一个简化的数学模型来代表复杂的三维到二维的成像过程。

2024-01-01 10:19:34 1134

原创 2023年度学习总结

我被CSDN认证为博客专家啦!这也算是C站对我创作能力的认可。从大一开始在CSDN写作,坚持至今。刚开始写博客只是当作一个学习笔记,把学到的东西记录下来,方便以后重复学习。渐渐地,随着写技术的深度增加,访问量也越来越多,自己的写作能力也慢慢地有所提高。就这样,访问量的提高,粉丝的好评,也让自己的自信心逐渐提高,于是形成了一个良性循环,从而越写越好,越写越多。C站记录了我关于技术的成长,之后的计划是出版一本关于技术的书。十年饮冰,难凉热血。学以致知,然后学以致用。幸运的是,曾经的菜鸟像鸵鸟一样把头扎进沙漠,

2023-12-31 15:00:28 1531

原创 ORB-SLAM3的Local&MapMerging线程详解

ORB-SLAM3的Local&MapMerging线程的代码主要集中于LocalClosing.cc的run()函数中,主要执行五个函数分别是:CheckNewKeyFrames() 函数、NewDetectCommonRegions()函数、MergeLocal()函数、MergeLocal2()函数、CorrectLoop() 函数。如果新进入的关键帧,在闭环检测的过程中,如果是当前地图下的,不用进入MergeLocal()函数和MergeLocal2()函数,直接做闭环校正;在非当前地图下,先做地图

2023-12-27 10:54:15 859

原创 ORB-SLAM3的Local Mapping线程详解

Local Mapping线程是ORB-SLAM3的三大线程之一。关键帧是通过根据经验去添加一些约束给帧,然后输出关键帧,如果能被观测到更多特征点的话,那么我们就能把其作为关键帧。第一部分是插入关键帧;第二部分是去除地图点,不是所有的地图点都是好的,对地图点进行一个筛选;第三部分,为了结果更优,生成一些新点;第四部分,局部BA做优化;第五部分,IMU初始化,IMU好的初值,测量数据对结果来说会有很大的促进左右;第六部分,去除关键帧,前面冗余的关键帧进行筛选;第七部分,对IMU尺度进行优化,优

2023-12-26 10:57:32 545

原创 Vulkan入门指南

图形学这个学说国内研究的还是少,现存的资料英文居多,现在的图形学API都是基于光栅化,写完软渲染之后就知道光栅化的底如何实现的,学会软渲染和软光线追踪这两门,图形学就算入门了。OpenGL是黑盒子,它能提供好用的API,没有办法进行一个深入的优化,所有东西都包装在一起没有办法看到底层变化的实现逻辑。Vulkan的底层全部铺出来,每一步都需要自己去实现,很麻烦,但与之同时可以做更多的优化。如果你的性能瓶颈在CPU和GPU的一个数据交互上,这个时候可以使用Vulkan,Vulkan会为CPU减轻非常多的负担。

2023-12-21 21:19:40 585

原创 利用OpenGL学习计算机图形学

使用OPENGL (Open Graphics Library)可以用来进行虚拟模型的渲染,OPENGL一个跨语言、跨平台的图形编程接口,具有2D/3D 建模、坐标变换、交互技术、纹理映射等功能,包含几百个核心函数,通过这些函数可以便捷、快速地渲染虚拟模型。

2023-12-18 15:16:37 430

原创 利用Ransac算法进行平面拟合

RANSAC算法是“Random Sample Consensus”的缩写,它的全称是随机抽样一致性算法。算法可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。RANSAC算法是不确定的算法——它是由一定的概率得出一个合理的结果,为了提高概率必须提高迭代次数。首先对算法进行学习,然后根据理论在Unity实践中实现平面拟合。RANSAC的基本假设是:(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;(2)“局外点”是不能适应该模型的数据;

2023-12-07 16:21:25 817

原创 相机标定:理论与实践

先讨论相机模型,说明投影关系的描述,介绍相机的内外参,最后完成标定。

2023-11-10 19:10:33 247

原创 Kalibr标定INDEMIND双目相机

INDEMIND这款相机有硬件同步,但是imu的数据还是不够准确,所以还是需要进行标定。虽然出场已经进行过标定,但是数据仍不够准确,而目前也没有针对这款IMU相机的标定教程,所以从Kalibr安装开始,进行双目相机的标定、IMU的标定、相机和IMU联合标定,做以记录。

2023-10-30 10:57:25 345

原创 IMU预积分的过程详解

角速度是陀螺仪得到的, B是刚体,IMU与相机的物体坐标系,W是世界坐标系,与角速度和陀螺仪的偏置有关系,与陀螺仪存在的噪声有关,当运动过快时,相机会出现运动模糊,或者两帧之间重叠区域太少以至于无法进行特征匹配,所以。当图像发生变化时,本质上我们没法知道是相机自身发生了运动,还是外界条件发生了变化,所以。某一时刻的旋转乘角速度, 速度与加速度是有关系的,位姿也可以通过速度求解出来的。加速度是由R旋转乘加速度减重力加速度的差,加速度计的偏置,噪声。而有了IMU,即使在相机数据无效的那段时间内,也能保持一个。

2023-10-24 21:27:33 949

原创 INDEMIND双目惯性模组运行VINS-Fusion教程

最近使用VIO算法做视觉SLAM,尝试一下VINS-Fusion算法在INDEMIND这款IMU相机上的表现,做以记录。

2023-10-16 15:25:41 231

原创 ORB-SLAM2运行自制数据集进行定位教程

ORB-SLAM2只做定位的话,精度还是挺准确的,所以用单目摄像头录制视频,制作自己的数据集跑一下,看看定位精度,将过程加以记录。

2023-10-08 16:15:33 1171 5

原创 Ubuntu 18.04安装Kalibr保姆级教程

在安装Kalibr需要OpenCV2版本,但是目前环境的很多依赖都是需要OpenCV3,于是寻找两个版本共存的解决方案。网上没有详细对Kalibr从安装到标定使用的完整教程,对初学者不是很友好,所以记录自己的学习过程,方便以后参考。

2023-09-20 21:37:19 1203

原创 ORB-SLAM3的Tracking线程详解

最近在学习ORB-SLAM3的Tracking线程,主要从一下几个方面进行讲解:ORB-SLAM3初始化、传感器输入模块、Tracking线程子模块、Tracking线程代码详解。其中包括ORB-SLAM3整个系统初始化的代码是如何实现的,单目、双目、RBB-D以及结合IMU的输入的情况,Tracking线程是怎么样处理数据的,代码逻辑是怎么样的;按照Tracking线程每一步实现的功能。

2023-09-17 10:56:14 356

原创 ORB-SLAM系列算法演进

ORB-SLAM算法是特征点法的代表,当前最新发展的ORB-SLAM3已经将相机模型抽象化,适用范围非常广,虽然ORB-SLAM在算法上的创新并不是很丰富,但是它在工程上的创新确实让人耳目一新,也能更好的为AR、机器人的算法实现落地。而且它的代码简明扼要,每个模块非常清晰,对初学者也十分友好,是入坑视觉SLAM的不二法门。下面将介绍ORB-SLAM系列算法演进。

2023-08-22 11:50:15 452

原创 ORB-SLAM3数据集配置与评价

在ORB-SLAM3运行EuRoC和TUM-VI数据集并作以评价。EuRoC利用微型飞行器(MAV ) 收集的视觉惯性数据集,TUM-VI 是由实验人员手持视觉-惯性传感器收集的数据集。这两个是在视觉SLAM中比较常用的公开数据集,所以测试并加以记录。

2023-07-27 22:26:18 1113

原创 IMU和视觉融合学习笔记

利用纯视觉信息进行位姿估计,对运动物体、光照干扰、场景纹理缺失等情况,定位效果不够鲁棒。当下,视觉与IMU融合(VI-SLAM)逐渐成为常见的多传感器融合方式。视觉信息与IMU 数据进行融合,根据融合方式同样可分为基于滤波器和基于优化两类。按照是否把图像特征信息加入状态向量,又可以分为松融合与紧融合两类。双目相机加入imu模块的的好处,是解决了高速运动中间数据处理的问题。相机运动过程中间出现模糊,两帧之间重叠区域太少,因此很难做特征点匹配。相机自己又能在慢速运动中间解决 imu的漂移问题,这两者是互补的。在

2023-07-21 21:40:47 2419

原创 IMU参数标定学习笔记

标定IMU,就需要对IMU误差的来源进行建模,其实IMU测量过程中的误差是由很多不同的方面所引起的,建模是对一些比较明显的误差,已知的原因把它构建成数学模型,一些我们不知道的误差源那么就无视它,因为把所有误差都考虑进来会很复杂,这个是没有必要的。我们主要关心三个方面的误差来源

2023-07-20 17:06:40 1716

原创 相机标定学习笔记

相机模型承担了联系二维图像与三维物理世界的作用,为了得到精确的相机模型,需要对所使用的双目相机进行标定,包括对两个镜头的内参标定及两镜头之间的外参标定。双目标定使用 Kalibr 标定工具,同时标定两镜头内参及外参。INDEMIND双目相机使用 OV9281 图像传感器,可以最高每秒 50 帧的速率采集 1280x800 分辨率的图像,同时采用 M12 定焦镜头,该镜头畸变较大,因此采用 Pinhole-equidistant 相机模型进行标定。

2023-07-19 20:41:47 1687

原创 如何有效阅读文献

作为研究生要保持看文献的能力,以《面向大规模图像定位的高效优先匹配(Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization)》文献为例,本文记录了自己在学习过程中如何阅读文献技巧。首先看到一篇论文的情况下,先去从标题看一下内容做的是什么,第一个做的是匹配(Matching),匹配是方法,目标作用于定位(Localization),场景是大规模(Large-Scale)。标题需要仔细斟酌……

2023-07-14 18:01:52 244

原创 VI-SLAM系统对比

任何类型的相机对运动物体,视线遮挡,光照剧烈变化等恶劣情况下都不够鲁棒,而惯性测量单元(IMU)对环境基本没有要求,并且IMU可以提供高频的位姿估计,视觉一般只能提供低频的位姿。依据视觉与IMU的特点,视觉与IMU融合的SLAM系统逐渐受到广泛关注,已成为SLAM系统的研究热点。视觉与IMU融合的SLAM系统,称之为VI-SLAM系统,本博客针对目前主流的VI-SLAM进行对比。

2023-07-05 21:25:48 416

原创 INDEMIND双目视觉惯性模组实时生成点云并保存点云图

目前最近的SDK版本是1.4.2,这个相机成本便宜,有硬同步的IMU,频率也够高,自带标定,对于目前我只做视觉SLAM定位足够用了。然而封库,其他各种依赖库要跟着SDK的库,OpenCV不使用ROS自带的版本,使用单独版本3.4.3等等。这个SDK组织得真的是一言难尽,所以分析SDK中实时显示点云图代码并加以改进,记录下学习的过程。

2023-06-26 11:30:35 940

原创 2023年“兆易创新杯”第十八届中国研究生电子设计竞赛有感

今年的电赛给我的感觉是时间真的紧张,可能是因为去年有疫情原因影响所以能准备的时间到七月份,今年不到月底就要全部出成品。我们团队一直在自研一款增强现实眼镜,从硬件设计到软件实现全部由我和另外两个小伙伴一起完成,所以就把我们做出来的原型机的一部分拿出来改了改参赛了。

2023-06-25 12:02:32 1030 2

原创 INDEMIND相机ROS bag包数据的回放

实验需要IMU相机,跑算法是在ROS下跑,在 ROS 系统中,可以使用 bag 文件来保存和恢复系统的运行状态,比如相机话题的 bag 包,然后回放用来进行联合外参标定,也可以使用EVO工具显示算法轨迹,这里记录下我学习官方的 rosbag 教程的笔记。

2023-06-22 21:47:27 609

原创 Ubuntu18.04安装EVO工具教程

EVO工具全名为“Python package for the evaluation of odometry and SLAM”,使用Python写的轨迹评估工具,目前在SLAM领域论文中的“使用率”逐渐上升,可以说已经成为了作为SLAMer一定要会用的工具。最近需要使用evo工具评测SLAM算法性能并可视化结果所以加以记录。

2023-06-06 17:28:02 1507 2

原创 Unity API详解——Time类

Time类是Unity中获取时间信息的接口类,只有静态属性。本博客介绍Time类的一些静态属性。

2023-06-01 16:34:50 824

原创 Windows源码安装INDEMIND双目惯性模组

最近电赛准备在Win10的平台上做一个增强现实眼镜,所以IMU相机也是必不可少的传感器,记录Windows源码安装INDEMIND双目惯性模组。

2023-05-22 15:37:42 538

原创 关于单目视觉 SLAM 的空间感知定位技术的讨论

尝试关于单目视觉 SLAM 的空间感知定位技术的学习,做以调查。SLAM算法最早在机器人领域中提出,视觉SLAM又可以分为单目、双目和深度相机三种传感器模式,在AR应用中通常使用轻便、价格低廉的单目相机设备。仅使用一个摄像头作为传感器完成同步定位与地图创建操作,具有系统结构简单、成本低且易实现等优点。正是尺度不确定性才使得单目SLAM 能够在大尺度和小尺度环境之间进行自由转换。所以单目视觉SLAM成为增强现实领域的研究热点。我近期的工作将从以下几个方面进行阐述:PTAM算法、ORB-SLAM算法……

2023-05-17 22:01:31 1703

原创 Unity API详解——Rigidbody类

Rigidbody类的功能是用来模拟GameObject对象在现实世界中的物理特性,包括重力、阻力、质量、速度等。对RIgidbody对象属性的赋值代码通常放在脚本的OnFixedUpdate()方法中。本博客主要介绍Rigidbody类的一些实例属性和实例方法,最后对Rigidbody类中功能相近、关联性较强的API之间的关系进行了注解。

2023-05-10 21:50:47 695

原创 Unity API详解——Random类

在Random类中,涉及的静态属性有insideUnitCircle属性、insideUnitSphere属性、onUnitSphere属性、rotationUniform属性、rotation属性和seed属性。由于属性insideUnitCircle、insideUnitSphere和onUnitSphere功能相近,属性rotationUniform和rotation的功能也相近,于是把它们放到一起介绍,接下来详细介绍这些属性。

2023-05-01 16:30:52 2001 1

原创 Unity API详解——Quaternion类

Quaternion类又称四元数,由x、y、z和w这4个分量组成,属于struct类型。在Unity中,用Quaternion来存储和表示对象的旋转角度。Quaternion的变换比较复杂,对于GameObject一般的旋转及移动,可以用Transform中的相关方法实现。本博客介绍Quaternion类的一些实例属性、静态方法和运算符,并对Quaternion类相乘运算符“*”的两种重载格式在功能上的异同进行了简要的注解。

2023-04-28 11:40:37 1840

音乐播放器

纯C语言写的音乐播放器,清晰的DB存储过程剖析与设计的过程

2018-08-08

2018蓝桥杯真题模拟50道及答案

类似蓝桥杯的真题模拟,难度适当,Java语言编程50题及答案,喜欢的小伙伴可以练练手

2018-04-15

SSH网上商城项目+MySQL实战完整源码

使用SSH框架实现类似淘宝的购物车功能,包括如何添加到购物车,清空购物车等功能

2018-04-15

notepad.rar

基于Android的简单记事本的设计,自定义Adapter的实现方法,使用SQLite3存储、SharedPreferences应用

2018-04-15

num_pt.rar

基于多线程、AsyncTask、Adapter、IntentFilter、自定义View、消息队列等技术的一款数字拼图的Android项目

2018-04-15

Whac-A-Mole

基于多线程、AsyncTask、Adapter、IntentFilter、自定义View、消息队列等技术的一款欢乐打地鼠的Android项目

2018-04-15

gcc-5.4.0.tar.gz

GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件

2018-04-13

caffe-master.zip

Caffe是一个清晰,可读性高,快速的深度学习框架。 它由伯克利人工智能研究(BAIR)/伯克利视觉和学习中心(BVLC)和社区贡献者开发。Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口;可以在CPU和GPU直接无缝切换

2018-04-13

空空如也

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

TA关注的人

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