蓝羽飞鸟
GO
展开
-
orb slam3地图,共视图更新部分源码解读
共视图,关键帧,地图,BA部分源码解读原创 2022-07-13 16:54:08 · 414 阅读 · 0 评论 -
Semantic SLAM源码解析
这个语义SLAM建图是基于ROS的下面上源码解析:首先从semantic_cloud.py出发,这里接收相机读入的topic, 会得到RGB图和深度图,同时会起orb_slam2计算位姿,我们这里不讨论orb_slam2的算法细节,那是另一个大话题了。node: semantic_cloud:换个dataset这个mean还要改semantic_cloud.py里面有depth_img对齐,但是orb_slam里面没有,所以Orb_slam里面要用对齐的深度图...原创 2022-07-07 11:35:03 · 721 阅读 · 0 评论 -
orb slam3根据匹配特征点重建相机pose部分源码解读
本节解释了用前后两帧匹配的Keypoint对来重建相机pose地图点类型在MapPoint类,里面包含很多信息,就不一一列举了,参考MapPoint.h大致包含了世界坐标,keyframe和它的observationsview direction, 参照的keyframe, 做matching的best descriptor,bad flag(提示不好的点,但是目前不移除)后面提取的Map point会保存在mvpMapPoints里此部分在Tracking::Track(),进入Map* p原创 2022-05-27 13:49:41 · 467 阅读 · 0 评论 -
SOLD2算法详解之2: 特征点检测,点NMS(CVPR 2021)
sold2算法中的特征点检测对应了junction_decoder部分input的image经过Hourglass net的backbone之后,过一个junction_decoder的小网络,网络结构如下conv3x3, s=2, p=1conv1x1input image size = [1, C, H, W]junction_decoder output size = [1, 65, H/8, W/8]这个65是什么意思呢,1~64表示的是8x8 patch内有特征点的位置标1,其余是原创 2022-04-04 21:33:52 · 1048 阅读 · 0 评论 -
SOLD2算法详解之1 backbone(CVPR2021 源码解析)
SOLD2是ETH的 Self-supervised Occlusion-aware Line Description and Detection,它是一种多视角的线检测,线匹配算法,可以处理遮挡下的线匹配。以往特征匹配都是基于点的,比如SIFT,SURF等,而ETH提出了基于线的特征匹配,由于是基于神经网络,所以不需要手动设计特征,而且基于自监督学习,不需要人工标注。这里先不把重点放在自监督,先看一下如何从视角不同的图像中提取线特征,线检测和匹配,走完整个检测和匹配的流程。算法流程基于源码和测试样例原创 2022-04-01 20:11:28 · 2064 阅读 · 0 评论 -
orb slam3 orb特征提取与匹配部分源码解读
提取ORB特征: ExtractORB函数, 传入灰度图ORB特征提取第一步,提取FAST角点:计算图像金字塔,金字塔图像保存在mvImagePyramid里,按从底层到上层的顺序保存8叉树特征点,计算8叉树时,外边框16pixel的不要,分成35x35的小块, 但要根据长和宽能不能整除做调整,在276x1244的图像中,是39x36的小块,按块扫描图像,每行每列重叠6个像素,每块区域提取FAST角点,阈值取20,用到NMS,如果用阈值20提取不到特征点,就把阈值降到7再次提取,因为这提取的是原创 2022-05-12 10:15:00 · 774 阅读 · 0 评论 -
SOLD2算法之3: 特征点与heatmap结合检测有效线段(CVPR 2021)
input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4]heatmap_decoder用于检测出线段的heatmap先看heatmap_decoder,它的结构如下conv 3x3, s=1, p=1pixelShuffel(2)这个block出现2次,然后接一个conv 1x1PixelShuffel起了重要的上采样及改变channel的作用。backbone net出来的channel=256被两个pixelShuffel(2.原创 2022-04-08 16:55:32 · 737 阅读 · 0 评论 -
SOLD2算法之4: line matching,遮挡问题(CVPR2021 源码解析)
当两张图片中都检测到线段之后,就要进行线段的匹配。回想特征点匹配时,是用描述子descriptor计算距离进行匹配,直线也是这样。直线的descriptor是用网络得到的。input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4]descriptor_decoder由conv3x3 (s=1, p=1) 和conv1x1组成得到的descriptor output为[1, 128, H/4, W/4]那检测到的线段和这个descri原创 2022-04-09 23:01:50 · 718 阅读 · 0 评论 -
orb slam3之BA部分源码解读
提前透露一下,用的是g2o库Optimizer::GlobalBundleAdjustemnt(mpAtlas->GetCurrentMap(),20); 迭代次数是20然后进入BundleAdjustment(vpKFs,vpMP,nIterations,pbStopFlag, nLoopKF, bRobust);vpKFs是所有的keyframes, vpMP是所有的map points, nLoopKF是0, bRobust是true现在有2个keyframe, 473个map poin原创 2022-05-27 10:59:47 · 388 阅读 · 0 评论