- 博客(13)
- 收藏
- 关注
原创 手眼标定(Tsai—Lenz算法)
涉及到了,罗德里格斯向量,四元数,罗德里格斯变换,凯莱变换,李群李代数这些数学知识,没有一定的这方面的知识,这个推导看起来还是比较麻烦的(笔者比较懒,详细推导就不写了)笔者最近太忙,没太多时间扣字了,附两张图,字很难看,笔者写的不对的地方可以评论。
2024-03-29 20:06:48
941
1
原创 opencv中的FileStorage类
对于opencv中的FileStorage,在对int double float char等单个元素组成的vector输出到文件中时,遍历保存和直接输出保存的格式是不同的,对于opencv中自带的Mat矩阵以及string等类型,直接输出和遍历保存的格式是相同的,清楚这点对我们引用这些文件写代码的时候是有用处的。
2024-03-18 00:05:32
610
原创 Ubuntu上使用vscode,头文件画波浪线显示无法找到路径的问题
摁键盘CTRL+SHIFT+P,也许摁左边的CTRL+SHIFT没用,那就摁中间的CTRL+SHIFT,键盘上一般有两个一样的这个摁键。解决完标准库,再去解决第三方库,要去手动添加第三方库的头文件路径,自己根据自己安装的位置,找到绝对路径然后添加。两种头文件,一个是c++的标准库,一个是第三方库,都找不到路径,画了波浪线报错。大功告成,开始HELLO WORLD吧!
2024-03-16 10:14:40
685
1
原创 调用支持cmake的第三方库
但是,当我们不想把他安装在系统默安装路径时,通过修改CMAKE_INSTALL_PREFIX,改变库的安装路径,此时find_package()函数不能直接找到Config.cmake文件(Config.cmake文件是随着库的安装一起移动的),需要在find_package()函数中显示式指定寻找Config.cmake文件的路径,即CMAKE_INSTALL_PREFIX修改后的路径, find_package(库名 REQUIRED PATHS “路径”),
2024-03-12 21:59:02
496
2
原创 K-means算法在bow上的应用
我们在每一层的每一个节点进行一次K-means,获得K个节点,即K个聚类中心,根据我们想要获得的词袋向量的维数,设置K的值,以及层数,这和k-d树的原理是相似的,这样就构建了一个有结构的“字典”,在查找“单词”的时候,就可不用逐个搜索,只需要对每一层查找最近的聚类中心,直到最底层查询到“单词”。2.对每一个样本、计算它与每个中心点之间的距离,取最小的作为它的归类。4.如果每个中心点都变化很小,则算法收敛,退出;1.随机选取k个中心点:c1,…3.重新计算每个类的中心点。
2024-03-11 11:11:21
473
原创 经典机器学习算法:K邻近算法
对于与机器学习,笔者的认识是,他在模仿人类大脑的思考方式,人类大脑几乎做的所有事情都是判断一个东西是什么,这个东西能干吗,判断一个东西是什么,这是典型的分类问题,是根据自己从小到大接触到的事物进行判断,眼前的物体是一个什么东西,训练数据就是自己见过的所有东西,大脑对输入数据进行分类,这就类比于机器学习中的分类问题;这个东西能干嘛,是根据自己曾经的所有的生活经验去判断一个东西的功能,可以说是一种预测行为,也就是机器学习中的回归问题。因此将机器学习大致的分为回归问题和分类问题是非常合理的。
2024-03-11 09:39:08
910
转载 SLAM中的优化、李群李代数和BA
两个李代数指数映射乘积完整形式由BCH公式给出,当其中的存在小量的时候,小量的二次以上的项忽略掉后可得到如下线性近似表达:1)第一个近似公式中ϕ1ϕ1可得对求导后将只剩下。此时可得:
2024-03-10 18:30:28
283
1
原创 奇异值分解求解线性最小二乘问题
对于这个线性变换矩阵A(无论是矩阵还是方阵),都是对向量X的线性变换,那么我们可以对矩阵A进行分解,分析他对不同的向量X可以起到哪些效果的线性变换。奇异值分解得到三个矩阵,左奇异矩阵,奇异值矩阵,右奇异矩阵,奇异矩阵都是正交矩阵。对于一个矩阵A,如果它是一个 m×n 的矩阵,那么通过线性变换 y = Ax,输入向量 x 的维度是 n,输出向量 y 的维度是 m。特别地,当 m = n 时,矩阵 A 是一个方阵,线性变换将向量从一个 n 维空间映射到另一个 n 维空间。对于最小二乘问题只能获得近似解。
2024-03-02 10:49:27
633
原创 比较常用的优化方法——G-N,LM
在之前的文章中讲到了最速下降法以及牛顿法,这两种方法各有利弊,最速下降法是函数的一阶泰勒展开式,对于多维自变量标量函数只需要计算一个雅可比矩阵,就可以得到函数的下降方向,虽然雅可比矩阵计算量比较小,但是一阶泰勒展开式的拟合性比较差,导致步长不能过长,进而导致步数增加。而牛顿法是函数的二阶泰勒展开式,需要计算海塞矩阵,才可以得到函数的下一个步点,虽然走的步数相对较少,但每一步需要的计算量比较大。
2024-03-01 17:32:33
2185
原创 基础的优化方法——梯度下降法,牛顿法
无论在哪个领域,对于初学者而言,会对很多名词的概念产生混肴,本文介绍了两种最基本的优化算法——梯度下降法和牛顿法,万丈高楼平地起,其他优化算法基本上是在这两种算法的基础上加以改进得到的。
2024-02-28 22:58:48
1958
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅