
3_视觉slam
文章平均质量分 55
陈昊-1
路漫漫,行则将至;
展开
-
1_7后端优化
所谓Bundle Adjustment可以理解为从任意特征点发射出来的几束光线,它们会在几个相机的成像平面上变成像素或是检测到的特征点。如果我们调整各相机姿态和各特征点的空间位置,使得这些光线最终收束到相机光心,简称BA。对这个最小二乘进行求解,相当于对位姿和路标同时做了调整,也就是所谓的BA。相机投影过程是从一个世界坐标系中的点p出发,把相机的内外参数和畸变考虑进来,最后投影成像素坐标。具体,这里的x指代此时相机的位姿,即外参R,t,对应的李群为T,李代数。y为路标,即三维点p,而z为观测数据,即。原创 2023-06-01 20:32:34 · 763 阅读 · 0 评论 -
1_5 光流法计算VO(optical_flow)
由于上述的光流公式是一个二元一次方程,欠定的,所以需要引入额外的约束。(2) 在不同图像中寻找特征匹配, 非常耗时 O(n^2) 暴力匹配。(1) 在图像中提取特征点并计算特征描述, 非常耗时 ~10+ms ORB,shift耗时更多;(3) 利用匹配点信息计算相机位姿, 比较快速原创 2023-05-31 16:20:37 · 1069 阅读 · 0 评论 -
1_4 3D点与2D匹配计算相机pose
对于BA方法实际上是通过优化最小误差进行实现,而优化方法可以有多种方式,包括采用高斯-牛顿法、g2o、ceres等工具库,这里介绍高斯-牛顿法和g2o两种方法;直接法可以利用opencv中已有的函数solvePnP(pts_3d, pts_2d, K, Mat(), r, t, false)进行求解;对于已知3D点和2D点的匹配关系,进而计算相机位姿的方法有两大类,一类是直接求解法,包括DLS、PNP等;一类是基于BA的优化方法;为了简化计算,这里将。原创 2023-05-30 08:51:38 · 820 阅读 · 0 评论 -
1_2 图像与图像间恢复pose
采用opencv的findEssentialMat(points1, points2, focal_length, principle_point)函数可以根据图像匹配点计算出本质矩阵,进而通过opencv的recoverPose(essential_matrix, points1,points2,R,t, focal_length, principle_point)计算出旋转R和平移t。由于2d图像计算出的旋转平移没有尺度信息,所以计算过程中采用了归一化信息,即t的模长为1。原创 2023-05-29 21:25:06 · 275 阅读 · 0 评论