GCNv2-SLAM的评测

pip下载了evo工具,需要先安装numpy

此时用systemback创建了一个刚跑出来的还原点

evo突然找不到命令、重启即可

ORB-SLAM2 的安装运行

一次成功 Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_在ubuntu20.04上面配置orb-slam2并运行(保姆级)_9527风先生的博客-CSDN博客

 

轨迹跟踪

evo评测的指令evo安装、evo使用方法详细介绍使用教程,SLAM轨迹精度评估工具,如何用来评估ORB-SLAM2生成的轨迹精度,评估激光雷达SLAM与视觉SLAM的轨迹精度,量化SLAM的误差_evo评估orbslam2 单目-CSDN博客

效果很好,之前是没有装好词袋库

精度在三厘米左右

ORB-SLAM2在两厘米左右

二者的对比图,几乎重合,定位精度符合要求

计算效率对比

图像匹配对比

只作了定性的稳定性分析

能不能作匹配点准确个数、平均分布来对比??

来自文章python RF-Net An End-to-End Image Matching Network based on Receptive Field

定性匹配结果,正确匹配用绿线表示,失败匹配用红线表示。这些列是SIFT、FAST检测器与硬网描述符集成、LF-Net和RF-Net。上面两行图片来自EF Dataset[34],下面两行图片来自HPatches[1]。我们使用最近邻距离比(0.7)作为匹配策略,K = 1024个关键点来匹配两幅图像。如图所示,绿线越多,红线越少,匹配效果越好

来自:python AdaLAM Revisiting Handcrafted Outlier Detection

图2。我们实验的成功案例。符合地面真极几何的匹配用绿色表示,其他匹配用红色表示。例子包括非常稀疏对应,局部重复结构,弱纹理,强旋转和透视变形的情况

看不明白但感觉有用

来自:python Matching Features without Descriptors:
Implicitly Matched Interest Points

我们提出了一个CNN兴趣点检测器,它提供隐式匹配的兴趣点:不需要描述符进行匹配。这张图片说明了网络的输出。色相表示哪个通道对给定像素有最强的响应,亮度表示响应。圆圈表示兴趣点,这是每个通道的全局最大值。线条表示P3P定位后的内部匹配

来自:python Key.Net Keypoint Detection by Handcrafted and Learned CNN Filters

表3:最佳检测器与HardNet和最先进的检测器/描述符的匹配分数(%)。HPatches序列,视点和光照的结果。关键。Net架构对视点匹配得分最高,而LF-Net+HardNet对光照序列匹配得分最高

来自python GMS Grid-Based Motion Statistics for Fast, Ultra-robust Feature Correspondence2019

运行时间:GMS在单个CPU线程中的运行时。GMS- s和GMS- r分别使用不同的设置重复基本GMS 5次和8次,因此运行时间是线性增加的。GMS- sr所消耗的计算成本是基本GMS的40倍,该图未显示。注意,多尺度和多旋转解可以通过使用多阈值编程来加速,因为在不同的重复中不存在数据依赖

用本文方法测特征点:

【精选】GCNv2_SLAM结果复现_dna葡萄糖的博客-CSDN博客

1.增加test1.cc之后 在cmakelist添加

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(test1 src/test1.cc)
target_link_libraries(test1 ${PROJECT_NAME})

2. 报错,前两行改动

ORB_SLAM2::GCNextractor* mpleftGCNextractor = new ORB_SLAM2::GCNextractor(1000,1.2,8,20,7);

ORB_SLAM2::GCNextractor* mprightGCNextractor = new ORB_SLAM2::GCNextractor(1000,1.2,8,20,7);

3.报opencv的错,是图片位置不对,没有读进去

4.成功编译但报libtorch的错,之前的解决办法是下载1.10版本,不想改

换了1.11.0 好一些(但是只有1.10.0才能跑通GCN2),但是报错,把下面这句注释掉了

const char *net_fn = getenv("GCN_PATH");

// net_fn = (net_fn == nullptr) ? "gcn2.pt" : net_fn;

module = torch::jit::load(net_fn);

5.结果报这个错

./test1
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
已放弃 (核心已转储)

到这里没办法了。。。也不给具体错误

发现一个增加了单双目的程序 尝试运行

package opencv改成3

添加环境变量 /opt/...setup.bash   export....

刷新

rosbuild我注释掉了 又说找不到torch

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值