自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 从零开始学习SLAM(三)

axis例如,要创建一个围绕 Z 轴顺时针旋转 π/4 弧度(45度)的AngleAxisd或者是。

2024-07-04 18:14:39 769

原创 【学习】开发板接口

工作用到机器的开发板 有如上三个接口。最右是仿真器,中间是RS232串口,最左是电源线。

2024-06-26 15:17:57 357

原创 c++ 线程安全与线程管理

C++11引入了标准库中的多线程支持,包括std::thread类和各种同步机制互斥锁std::mutex : 互斥锁用于保护共享资源,确保同一时间只有一个线程能够访问该资源,以防止数据竞争。条件变量std::condition_variable : 条件变量用于线程之间的通信,允许一个或多个线程等待某个条件(或者事件)的发生,而另一个线程则可以通知这些等待的线程该条件已经满足。原子操作std::atomic : 原子操作用于无锁编程,提供对基本数据类型的原子读写操作,防止数据竞争而无需显式的锁机制。

2024-06-25 18:24:20 378

原创 c++字典

如果更关注性能且不需要有序性,可以选择std::unordered_map。在C++中,“字典”通常指的是std::map或std::unordered_map,它们是标准库中提供的关联容器,用于存储键值对。std::unordered_map:键值对无序,但查找、插入和删除速度更快,适用于不需要顺序的场景。例如,如果你需要按字母顺序遍历元素。使用 std::map std::map 是一种有序的关联容器,键值对按键排序。使用 std::unordered_map std::unordered_map。

2024-06-24 17:24:49 218

原创 c++ 矩阵应用

选择适当的场景:固定大小的矩阵:如果矩阵的大小在编译时已知且不会变化,使用二维数组可能更合适,因为它更简单和直接。动态大小的矩阵:如果矩阵的大小需要在运行时动态调整,或者需要使用std::vector提供的其他灵活性和算法支持,那么std::vector更适合,尽管在性能上可能会稍有损失。性能要求:如果性能是关键问题,尤其是对于大型数据集和复杂的数学运算,可以考虑使用专门的线性代数库如Eigen或Armadillo,它们在性能和功能上都有优势。

2024-06-17 21:00:11 921

原创 【c++】列表的增删改查

C++ 标准库提供了多种容器,用于不同的需求和使用场景。

2024-06-12 21:03:28 523

原创 从零开始学习Slam-旋转矩阵&旋转向量&四元组(二)

本文参考:计算机视觉life 仅作笔记用书接上回,上回不清不楚的介绍了旋转矩阵&旋转向量和四元组现在回顾一下重点:本着绕谁谁不变的变则假设绕z轴旋转θ,旋转矩阵为:再回顾一下旋转向量的表示以及这个基本记不住的罗德里格斯公式,记不住也没事:已知旋转矩阵定义是沿着Z轴旋转45°。请按照该定义初始化旋转向量、旋转矩阵、四元数、欧拉角。请编程实现:1、以上四种表达方式的相互转换关系并输出,并参考给出的结果验证是否正确。2、假设平移向量为(1,2,3),请输出旋转矩阵和该平移矩阵构成的欧式变换矩阵,并根

2024-05-31 17:49:25 290 1

原创 注意力机制

注意力机制最早是由神经科学家 Donald Olding Hebb 在 1949 年提出的。Hebb 观察到,大脑中的突触连接强度会随着两个神经元的活动的相互关联性而增强。他提出了“细胞之间的联结,就是心理之间的联结”的著名原则,即被称为“赫布学习规则”。在深度学习领域,注意力机制在 2014 年由 Bahdanau 等人首次引入到神经网络机器翻译模型中,这种模型也被称为“注意力机制编码器-解码器模型”。

2024-05-30 14:32:14 621 2

原创 with关键字

在 PyTorch 中,torch.no_grad() 返回一个上下文管理器,当使用 with torch.no_grad(): 语句时,PyTorch 会在进入 with 代码块时禁用梯度计算,并在退出代码块时重新启用梯度计算(如果之前已经启用)。在这个例子中,with torch.no_grad(): 创建了一个上下文,在该上下文中梯度计算被禁用。在这个示例中,with torch.no_grad(): 创建了一个上下文管理器,在这个代码块内执行的所有操作都不会计算梯度。() 方法来实现的。

2024-05-24 15:50:45 301

原创 小波变换衡量信号相似度

最近做纸币防伪的水印防伪这一块,了解了少量小波变换的知识,本篇文章专业性差,仅作为笔记使用Ψ (x)是小波函数python 的 PyWavelets(pywt)库中,

2024-05-14 18:05:02 241

原创 金山面试总结

C++ 的三大特性通常指的是封装、继承和多态。这三个特性是面向对象编程中的基本概念,这三个特性共同构成了面向对象编程的基础,它们使得代码更加模块化、可扩展和易于维护。封装(Encapsulation):封装是将数据和操作数据的方法(即函数)捆绑在一起的机制。通过封装,对象的内部细节被隐藏,只暴露出公共的接口供外部使用。这种方式可以保护数据不被直接访问和修改,提高代码的安全性和可维护性。

2024-04-16 18:19:42 640

原创 模型轻量化

影响神经网络推理速度主要有 4 个因素:FLOPs、MAC、计算并行度、硬件平台架构与特性(算力、GPU内存带宽)

2024-04-11 17:30:59 1186

原创 从零开始学习Slam-旋转矩阵&旋转向量&四元组

旋转矩阵的概念,参考一个在这里 二维向量p 逆时针旋转θ的旋转矩阵为cosθsinθ​−sinθcosθ​。

2024-04-07 10:42:21 915

原创 yolov5 - 生成动态库

作为刚学习动态库的新手抑或是c++还未入门的菜狗(Me)来说,Linux入门简单,无需复杂操作,因为Linux下gcc编译的执行文件默认是ELF格式,无需初始化入口,也无需对函数做特别声明,编写方便。

2024-03-26 11:25:50 468 2

原创 YoloV5 原文理解&工程实践(一)

在 YOLOv5 中,“Focus” 是一种特殊的卷积层,用于替代传统的下采样操作。它的作用是在减少特征图的尺寸的同时,更好地保留物体的细节和小尺寸目标。Focus 层可以采用切片操作把特征图拆分成多个块,采用隔列采样+通道拼接,从而实现特征图的下采样。这种方式有助于增强网络对小目标的感知能力,并提高目标检测的准确性。(如下图)return p# 采用隔项切片操作 特征图由(b,c,w,h) ->(b,4c,w/2,h/2)

2024-02-27 20:09:12 1185 1

原创 从零开始学习SLAM-齐次坐标

齐次坐标是一种在计算机图形学和几何代数中常用的表示方法。它是一种将欧几里德空间中的点和向量统一起来的方法。使用齐次坐标可以简化对点和向量的运算,例如平移、旋转和投影等操作。此外,齐次坐标还可以方便地表示无穷远点和方向向量,从而更灵活地描述几何变换和投影。在二维空间中,一个点 (x, y) 可以使用齐次坐标表示为 (x, y, 1),一个向量 (a, b) 可以表示为 (a, b, 0)。

2024-02-26 18:12:31 964 2

原创 c++ tuple

C++11 引入了一个新的标准库类型 std::tuple,它代表一个包含多个值的元组。我们可以使用 std::get 函数来获取元组中的值,或者使用 std::tie 函数将元组中的值一次性分配给对应的变量。我们可以在定义时指定该元组包含的值的类型,也可以在创建时初始化元组的值。std::get 的第一个参数是要访问的元组中的值的索引,从 0 开始计数。另外,对于一个元组中的值的类型,我们也可以使用 auto 关键字来自动推断。当使用 std::tie 时,我们可以将多个值一次性分配给对应的变量。

2024-02-04 16:55:27 381 2

原创 c++ 字典操作

【代码】c++ 字典操作。

2024-01-31 17:02:37 676

原创 c++使用初始化列表进行初始化

【代码】c++使用初始化列表进行初始化。

2024-01-31 15:11:16 435 1

原创 解压不同压缩包命令

首先需要安装p7zip-full软件包:sudo apt-get install p7zip-full。首先需要安装rar工具:sudo apt-get install rar。

2023-12-06 10:08:54 65 1

原创 Ubuntu 连不上网【已解决】

有时候,重启网络服务可以帮助恢复到默认的网络连接。你可以通过VPN客户端软件断开连接,或者在终端中使用相应的命令来停止VPN服务。尝试了搜索到的n种方法 ,改成桥接模式,设置DNS什么的,都没见效,通过。查看ip,发现连上了vpn的ip地址。修改ip地址即可解决。在系统的网络设置中检查VPN配置,并确保没有设置为自动连接。

2023-12-05 16:41:35 651 1

原创 马尔可夫链和状态转移矩阵(零散持续学习中。。。)

【代码】马尔可夫链和状态转移矩阵(零散持续学习中。。。

2023-11-02 15:57:40 70

原创 C++ Lambda表达式

lambda函数的运用有时起到了简化代码量的作用,避免了单独的声明与定义,但会产生额外的算力开销,在实际开发中,我们可以根据具体情况权衡利弊,选择偏好的编程风格。Lambda 表达式可以像对象一样使用,比如可以将它们赋给变量和作为参数传递,还可以像函数一样对其求值。Lambda表达式的限定符值为mutable,其意义是可以在函数体内修改按值捕获的变量;值捕获:将外部变量以const引用的方式传递到Lambda表达式中,在表达式中。),并返回他们的和,返回值的类型为lambda函数自动推断的返回类型。

2023-10-11 16:13:26 61

原创 指针数组的解释

变量 str 存储的是指向字符串第一个字符的指针,即字符串的起始地址。两个例子中:第一种赋值方式是将数组元素的地址赋给指针数组的元素,第二种赋值方式直接将字符串常量的地址赋给指针数组的元素。由于指针数组 names 的元素是指向字符串常量的指针,因此 *names[i] 实际上获取了每个字符串的第一个字符。这里的names[i]是指针,指向了字符串常量,cout 将根据指针所指向的内存地址输出字符串的内容。这个数组有三个元素,每个元素都是一个 int* 类型的指针,可以分别指向一个 int 类型的变量。

2023-10-08 17:23:31 52 2

原创 TRIDes加密算法之-字节与二进制的相互转换

3DES,也称为 3DESede 或 TripleDES,是三重数据加密算法,是加密领域的经典算法,如今安全性已经达不到要求,使用已经不那么广泛。由于公司业务需要,学习了trides算法,并编写了程序。原理介绍是参考的==“南隅笙箫””==,代码编写调试过程中遇到的主要问题就是十六进制字符与二进制的相互转换,因为算法中有大量的按位操作的内容,现在介绍下这部分的解决代码

2023-09-15 17:12:53 134 2

原创 决策树与随机森林学习(原理)

本文仅为初学者的总结,如有不妥,还请指正。

2023-04-20 18:22:59 304 1

原创 ArcGIS当前许可不支持影像服务器(已解决)

点击确定就能顺利裁剪了。

2023-04-14 21:04:46 3785 5

原创 Arcgis学习

2023-04-12 17:02:02 118 1

原创 【遥感图片识别代码学习】

合并成矢量后,就能在arcgis查看效果。

2023-04-04 10:10:06 233 2

原创 【Docker学习记录】

docker 命令

2023-03-24 21:30:35 50 1

空空如也

空空如也

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

TA关注的人

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