【VSLAM】HF-Net框架学习(一)——配置环境以及运行Demo程序

HF-Net是一个可以提取图像描述子(global_descriptors)和图像中的特征点(keypoints)及其描述子(local_descriptors)的卷积神经网络,前者用于图像检索,后者配合 SuperGlue/NN 等特征匹配算法可用于相机位姿计算。因此 HF-Net 的应用场景就是 SLAM中的地图定位与位姿恢复。

HF-Net论文地址

HF-Net代码地址

下面是安装步骤:

(1)下载源码

git clone https://github.com/ethz-asl/hfnet.git

(2)环境初始化

方法一:

作者写了一个初始化的脚本

make install

方法二:

但这里不打算使用该脚本,怕把Ubuntu环境搞乱了,还是自己按脚本内容一步一步来

#1.安装jupyter notebook
conda activate base
pip install jupyter
#2.创建一个虚拟环境用于HF-Net,虽然作者指定tf版本为1.12,但测试1.14也行,这里就安装1.14版本
conda create -n tf114 python=3.7
#3.把tf114虚拟环境添加到jupyter notebook中
conda activate tf114
conda install ipykernel
pip install --upgrade jupyter_client
python3 -m ipykernel install --user --name tf114  --display-name "tf114"
#4.开始配置tf114虚拟环境
conda activate tf114
pip install tensorflow_gpu==1.14.0
pip install keras==2.2.5
pip install protobuf==3.20.0
pip install pandas==1.0.0
pip install sklearn
pip install matplotlib==3.0.0
pip install numpy==1.19
pip install opencv-python==4.2.0.32
pip install scipy
pip install tqdm
pip install pyyaml
pip install flake8
pip install matplotlib
pip install protobuf
pip install sklearn
pip install pillow
pip install deepdish
#5.创建项目路径文件settings.py
cd hfnet
sh setup/setup.sh
# 运行后会让你在终端中输入两个路径:DATA_PATH和EXPER_PATH,前者是存放训练图像和预训练模型权重,后者存放 hfnet的训练输出,路径要为绝对路径,不要带~,例如我的是:
# DATA_PATH:/home/xxx/Project/python/tensorflow/hfnet/data/input
# EXPER_PATH:/home/xxx/Project/python/tensorflow/hfnet/data/output
# 路径会定义在./hfnet/settings.py文件中,后续也可以自己修改两个路径

(3)下载训练好的模型权重

下载地址

image-20230822170801983

下载好,解压后,将saved_models文件夹复制到EXPER_PATH路径下

(4)运行Demo程序

作者提供了一个Demo程序demo.ipynb,可以快速感受HF-Net提取的特征点的匹配结果

cd hfnet
# 打开jupyter notebook
conda activate base
jupyter notebook

jupyter运行后,打开demo.ipynb文件,修改运行环境为自己配置的虚拟环境tf114

image-20230822171302871

然后一步步运行,加载模型哪一步,如果是下图则加载成功:

image-20230822171412640

最后看一下匹配效果,在光照变换剧烈的情况下也可以成功匹配

image-20230822171435431

### 运行ORB-SLAM系统配置实时测试 #### 配置环境与依赖项 为了使ORB-SLAM能够正常工作,需确保已正确安装所需的所有依赖库。这通常包括但不限于OpenCV、Eigen以及Pangolin等第三方库[^1]。 对于Linux操作系统而言,可以通过包管理器快速获取这些资源;而对于Windows平台,则可能需要手动下载对应的预编译二进制文件或是通过CMake自行构建项目源码。 #### 下载并准备数据集 由于当前阶段尚未完成相机内部参数校准作业,在此之前可以借助公开可用的数据集合来进行初步验证实验。例如TUM RGB-D Benchmark提供了丰富的室内场景RGB图像序列及其对应的真实位姿信息,非常适合用来调试SLAM程序性能表现[^2]。 #### 编译与执行代码 当切准备工作就绪之后,接下来就是按照官方文档指示克隆仓库至本地计算机上,并依据README.md中的说明逐步操作直至顺利完成整个工程的编译过程。旦确认无误后即可加载选定好的样本资料夹路径作为输入源启动应用程序: ```bash ./Examples/mono_tum Vocabulary/ORBvoc.txt Examples/TUM1.yaml ``` 上述命令假设正在尝试单目视觉模式下的定位任务,其中第个参数指向词汇表的位置而第二个则是针对特定硬件设备定制化的YAML格式设定档名。 #### 结果可视化及分析 随着算法不断处理新到来的画面帧数,终端界面会同步打印出估计出来的六自由度变换矩阵(即旋转和平移向量)。与此同时,还可以利用MATLAB脚本或者其他专门设计用于比较预测轨迹同实际运动路线之间差异程度的专业软件——比如EVO toolkit——进步量化评估效果优劣情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值