- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 关于opencv中solvepnp中UPNP与DLS与EPNP的参数
由于当前的实现不稳定,有时会给出完全错误的结果,因此无法使用SOLVEPNP_DLS和SOLVENP_UPNP方法。如果传递这两个标志中的一个,则将使用SOLVEPNP_EPNP方法。
2025-03-04 22:16:17
242
原创 关于矩阵求导
实际上原理是,将矩阵与x做求导,求得一个展开项,利用展开项中的每一项进行求解,最终得到一个完整的雅各比矩阵,将该雅各比矩阵恢复成AX的形式,将变量再换出来,从而得到矩阵求导的宏观形式。
2025-02-22 20:27:00
68
原创 关于matlab中rotm2eul的注释错误问题
在这里,写的是默认的旋转矩阵的顺序为‘ZYX’,对应的旋转轴的顺序为Z、Y、X。但是实际上,在实际的应用中,旋转的顺序应该是,X、Y、Z轴的顺序。Rx*X,因此旋转顺序为X、Y、Z。但是在矩阵运算中,由于Y=Rz。
2025-02-01 19:47:06
426
3
原创 基于yolov8的实例分割全过程详细教学
(3)修改数据集的配置文件ultralytics-main\ultralytics\cfg\datasets\coco128-seg.yaml ,换上自己数据集的路径以及标签名称,和目标检测一样;修改model的配置文件ultralytics-main\ultralytics\cfg\models\v8\yolov8-seg.yaml 下的类别,将80类换成自己的类别个数。这里由于保存的是json所以要更新为txt格式,记得修改路径。在当前文件夹下运行,记得更换一下下面的路径。
2024-07-25 01:03:03
586
原创 MSF编译中遇到的问题整理,视觉惯性松组合//视觉惯性松耦合
home/li/MSF/src/asctec_mav_framework/asctec_hl_interface/src/hl_interface.h:51:10: fatal error: mav_msgs/RollPitchYawrateThrust.h: 没有那个文件或目录。解决方案:https://blog.youkuaiyun.com/jiehanwang/article/details/104388526。解决方案:https://codeleading.com/article/50261199377/
2024-03-07 21:49:45
1241
原创 梯度下降与牛顿法与高斯牛顿的差异分析
在梯度下降与牛顿法的优化函数中,都是最二次型进行优化,因此计算偏导数的时候会有一个原来的函数项,这个函数项是一个求和项,因此会很大,导致在进行片导数迭代的时候出现问题,所以往往在前面处以一个项数。而在高斯牛顿中,直接对函数进行泰勒展开,没有这个项,J的计算直接就是原函数的片导数,然后再按照残差项数进行求和。才发现一个以前忽略的问题。
2024-02-21 21:42:47
395
原创 【无标题】
i++) 这个accvector里面的长度进行积分,所以得到的预计分实际上是针对两帧图像之间的时间,但是里面包含的惯性的数据仍然在作世界坐标系下的累积积分。///id_pts.second[0].second可以认为是image的map类型中的第id_pts个点的vector的第0个数的Eigen::Matrix<double, 7, 1>此时的 RS[j] 还表示的是上一个时刻的旋转,还没有更新,注意这里的 j 表示的图像帧的数量。ok,在上一张中,重点针对processIMU这个函数进行了讲解。
2024-02-03 21:39:13
445
原创 VINS-FUSION-RGBD | |代码程序分析(2)
相当于是把 t0时刻的 feature 给删掉了,所以t1的feature 给变成了新的t0时刻的feature。因此当IMU的最老的时间小于t0,就POP(imu),然后将小于最新帧的一段时间的IMU数据统统保存accVector,然后返回准备后面作预计分。否则需要继续等待IMU数据的更新,直到 最旧特征的时间戳小于等于最新的IMU的时间戳。而这个线程是最重要的一个线程,由于线程的同步性,该处得到的线程理论上是一直开启的。这是处理全部量测的线程,IMU的预积分,特征点的处理等等都在这里进行.
2024-02-01 01:17:40
910
原创 VINS-FUSION-RGBD | |代码程序分析(1)
由于网上大部分的程序都是针对原来的VINS-fusion的单双目,很少有针对RGBD的解释,正好项目需求,因此在这里对该程序进行分析。读取每一个相机的外参数,当然这里有一个好玩的事情是,在双目的机体系的原点是左目相机,但是在这里却是一个未知的位置。相对与单双木的程序,本程序仅仅针对RGBD的情况,代码也基本上继承了原来的程序。这里面主要的工作就是读取相机的内参数,当然是调用了其他文件夹里面的函数。非常的多的变量与函数,当然在初始化变量的时候运行的是构造函数。基本上就是在原有的参数上加入了深度相机的外参数。
2024-01-31 23:06:41
711
原创 求助!!关于slovepnp函数位姿解算的z轴存在一个负号的问题
更奇怪的事情是由于空间点的Z数值设置0,其实此时世界坐标系的Z轴向没有在公式中体现,不论Z是正向还是反向,Z=0,都满足公式。在使用solvepnp函数计算距离与姿态的时候,得到的数据的位置一直存在一个z轴的数据与预计数据相差一个负号的问题。我的猜想是,在solvepnp的函数中默认的世界坐标系的z轴的正方向与相机的z轴相同,但是又说不通!是因为solve’pnp计算的是Pw到Pc的T,所以计算的相机在世界坐标系下的坐标需要秋逆矩阵。但是很尴尬,我在这里得到的数据是z是一个负数。详情说明请参考这个简书。
2024-01-17 00:21:56
611
4
原创 关于最速下降法与牛顿法的说明
实际上,最速下降法可以认为是在局部使用使用一次函数即直线函数进行近似,因此,只有一个迭代的方向可以求解出来,而实际上,迭代方向并不是最终想要获取的东西,实际上我们想要的地方是最终更新的坐标位置,因此更新的位置需要进一步用迭代方向乘上一个步长,这个在深度学习里面用learning rate表示,从而可以更新坐标。牛顿法保留了泰勒展开的二阶项,实际上可以认为是用二次函数即抛物线进行近似,y=x*x;显然,二次函数的最小值可以直接用函数求导等于0去求解,直接求解出更新的坐标的位置,没有迭代方向一说。
2024-01-03 17:12:23
447
原创 队列的使用法
注意:栈和队列的pop()方法,仅仅删除栈顶和队列的首元素,并不返回,如需截获元素,在pop()方法之前使用top()或者font()方法。访问队首元素,q.front()、访问队尾元素,q.back()访问队列中的元素个数,q.size()判断队列空,q.empty()入队,q.push(x)出队,q.pop()
2023-08-17 10:04:19
95
原创 关于经纬度坐标与gnu坐标转换的问题
///gnu坐标需要有一个初始点作为原点。因为在SLAM中,使用的是相对坐标系,而且是直角坐标系,所以显然与当 视觉与卫星组合或者惯性导航系统组合时,会出现较大的问题,因此需要把坐标统一转换到GNU坐标系下进行。ok,至于数据,可以看https://download.youkuaiyun.com/download/qq_36738025/88223066。当然由于c++垃圾的画图。
2023-08-16 21:55:34
274
1
原创 【无标题】
至于先验的状态预测,是什么方程 就怎么计算,也没有多余的说明。一个是状态方程的雅克比矩阵,一个是量测方程的雅克比矩阵。这两个不同点在于EKF中的Ja与Jh,如此便可以有效的解决上述的问题。简单的说就是将两个进行了替换。其实很容易发现的问题是。
2023-08-07 15:04:19
122
1
原创 关于cmake的编译过程中加入动态连接库、静态连接库、头文件等(持续更新)
add_library( hellowshared SHARED hellow.cpp )#需要添加,而且是动态连接库。include_directories(“/usr/include/eigen3”) #不需要编译,直接添加的头文件。add_library( hellowstay hellow.cpp )#需要添加,且静态连接库,生成.a的文件。cmake里面的CMakeList里面有很多东西。
2023-08-03 11:13:42
341
原创 【无标题】
其实我一直不能理解的是为什么明明可以利用重载去定义多种函数,为什么要对()重载,现在发现了,函数不能直接定义对象,但是利用()的重载可以。原文链接:https://blog.youkuaiyun.com/dxd_123456/article/details/78066863。// t是对象,不是函数,这里t 重载()运算符,所以这样使用。// t是对象,不是函数,这里t 重载()运算符,所以这样使用。//这里的括号运算符重载的是加法的功能,返回和。//或许可以称之为伪函数。//或许可以称之为伪函数。
2023-07-21 00:00:57
98
1
原创 【无标题】
最后使用的是 MT_Software_Suite_linux-x64_2021.4。所以以前的mti700的驱动不能用,所以需要使用最新的2021年版本的驱动。关于ubutn20.04配置 mti700的坑。由于ubutu20.04比mti700新不少。虽然有点很神奇的意思。
2023-07-15 01:55:42
183
1
原创 sd_1_大图切分成小图像算法
pic1 = imread(‘D:\BaiduNetdiskDownload\九峰山旅游区\九峰山旅游区_Level_17.tif’);sd_1_大图切分成小图像算法。
2023-06-05 11:03:10
111
原创 关于卡尔曼滤波的p阵初始值的简单分析与实验结果说明
实际上如果上面的式子是单维度的,其实会变成我们熟悉的东西,就是数列,其实理论上来说,由于j与q都是订制,显然p阵应当会收敛到一个定值。那么问题来了,P阵的更新实际上只与p的初始值有关,当量测数据一定时,理论上来说,通过该数据上,可以感性的发现量测数据之间的关系,而这个关系应当是一定的,所以协方差矩阵应当是一定的。由于卡尔曼滤波的p阵的协方差有效的反映了不同数据之间的联系,因此通过p阵更新将p阵进行自适应迭代,再更新了传播噪声的Q阵之后,从而可以自适应的完成协方差矩阵的自适应修正。由于K阵里面包含了R阵。
2023-03-13 15:13:15
1474
转载 转载||Mikolajczyk 图像组免费下载,不用积分,感谢大佬
http://nsidc.org/data/search/#keywords=sea+ice/sortKeys=updated,desc/facetFilters=%257B%257D/pageNumber=1/itemsPerPage=25 遥感海冰数据下载。计算机视觉有哪些比较好的公开课?补充计算机视觉基础。VGG 数据 http://lear.inrialpes.fr/people/mikolajczyk/Database/ http://www.robots.ox.ac.uk/~vgg/
2023-02-16 09:57:11
345
原创 关于opencv中Mat、 vector<Point2f>\ vector<Point3f>赋值的问题
关于opencv中Mat、 vector\ vector赋值的问题
2022-10-14 11:54:32
2527
原创 2021-08-16
//Draw matches Mat imgMatches; drawMatches(img1, keypoints1, img2, keypoints2, matches, imgMatches); namedWindow("Matches"); imshow("Matches", imgMatches);///////////这里要有一个imshow,不然显示不出来
2021-08-16 19:12:11
116
原创 关于getSegmentationArr的函数的注解
关于getSegmentationArr的函数的注解#显然path, n_classes, width, height分别是路径、标注的种类、图像的宽、图像的高。def getSegmentationArr(path, n_classes, width, height):#下面首先生成用来储存数据的0矩阵,n_classes为种类 seg_labels = np.zeros((height, width, n_classes)) try: img = cv2.imrea
2021-08-13 11:34:56
102
原创 2021-08-13镜头畸变校正
c++中镜头的畸变校正cameraMatrix为内参矩阵;distCoeffs为畸变参数#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/core.hpp>#include "opencv2/imgproc.hpp"#include "opencv2/calib3d.hpp"#include <opencv2/highgui.hpp>#include <
2021-08-13 11:33:15
224
原创 2021-08-09
g2o用法总结1.g2o用顶点和边组成,因此在多数情况下需要使用自己构建顶点与边,在此过程中顶点里面给出了估计值的更新方式,而边里面给出了误差的更新方式,因此,两者构成了迭代的过程。带估计的参数构成节点,而观测数据构成了边。1.class G2O_TYPES_SBA_API EdgeProjectXYZ2UV : public BaseBinaryEdge<2, Vector2D, VertexSBAPointXYZ, VertexSE3Expmap>这是第一句,<2, Vecto
2021-08-09 20:13:46
246
转载 学习笔记(1):ROS机器人开发仿真教程-03-ROS文件系统与功能代码包
本课程是关于ROS机器人开发的教程,讲解了ROS开发的基本概念,演示了基础代码的编写,让大家尽快上手。另外,课程还讲解了仿真机器人的模型、观察和控制。目的是用尽量短的时间让大家掌握ROS开发的流程。...
2021-01-23 16:25:54
146
因为在SLAM中,使用的是相对坐标系,而且是直角坐标系,所以显然与当 视觉与卫星组合或者惯性导航系统组合时,会出现较大的问题,因
2023-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人