【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

猜你喜欢

转载自blog.csdn.net/caiqidong321/article/details/132432171