【图像检索】【Windoes】DBoW3在windoes11上的详细安装教程
前言
githup::https://github.com/rmsalinas/DBow3
DBoW,通常指的是基于词袋(Bag of Words, BoW)模型的数据库或算法应用,尤其是在计算机视觉和机器学习领域。
DBoW3是一个用于图像检索和回环检测的高级库,它继承了DBoW2的优点并进一步进行了优化和改进。这个库特别因为被著名的ORB-SLAM系统采用而广受关注,尤其是在回环检测方面展现了其高效性和准确性。回环检测是SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)中的一个重要环节,通过有效地识别出当前帧是否与过去的某一帧属于同一地点,可以帮助纠正SLAM过程中的位置估计错误,减少累积误差,进而提升整个系统的稳定性和准确性。由于其优秀的性能,DBoW3也被广泛应用于图片检索、场景识别等领域。
最近在windoes11上配置DBoW3运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经验避免大家重复踩坑。
安装前的准备
安装Visual Studio,博主安装的是 Visual Studio 2019版本:
安装Cmake,博主安装的是Cmake 3.27.7版本:
安装git:
编译安装OpenCV
1.DBoW3库对OpenCV有依赖,安装OpenCV可以选择下载opencv直接使用【官网地址】或者源码自定义安装【参考博文】。
博主选择下载opencv4.8.0源码进行编译,具体的编译流程不在赘述,建议参考上述链接中博主的给出的参考博文,编译完成后在install文件夹内生成以下内容。
2.将install文件重命名为opencv(博主个人习惯),并拷贝到DBoW(博主建议)路径下:
3.打开opencv\OpenCVConfig.cmake文件,需要着重检查是否OpenCV_FOUND被设置成FALSE:
set(OpenCV_FOUND FALSE)
假设设置成FALSE需要设置成TRUE,否则将无法使用OpenCV库进行构建。
set(OpenCV_FOUND TRUE)
编译安装DBoW3
# 通过git下载DBoW3源码到合适的路径下,需要科学上网
git clone https://github.com/rmsalinas/DBow3.git
1.博主下载源码到DBoW路径下,在DBoW\DBoW3(个人下载路径)目录下创建一个build文件夹:
2.以管理员身份运行cmake软件,where is the source code是DBoW2的文件夹位置,where to build the binaries是编译DBoW2保存的文件夹位置(新建的build路径),在左下角点击Configure。
选择对应vs的版本(博主是vs2019),系统选择x64,最后点右下角Finish:
3.显示Configuring done后,点击generate,显示generating done,成功完成cmake编译:
可能的错误:因为没有找到OpenCV的lib库:
解决方式:在OpenCV_DIR位置设置正确的路径即可,博主的路径为DBoW\opencv\x64\vc16\lib:
4.点击open project,下用VS2019进入工程,配置好Release,X64,然后右键ALL_BUILD,点击生成:
也可以在build目录直接点击DBoW2.sln打开,是一样的效果
需要在以下内容中插入代码iostream头文件:
#if _WIN32
#include <cstdint>
// 插入,编译器无法识别std::xxx
#include <iostream>
#endif
5.在DBoW\DBow3\build\bin\Release路径下,能够看到如下的DBoW2.lib和DBoW2.dll件,代表已经生成完成:
简单测试DBoW3
测试安装是否成功:
# 进入DBow3工程的\build\bin\Release目录下
cd E:\DBoW\DBow3\build\bin\Release
# 执行命令查看运行效果
demo_general.exe orb E:\DBoW\DBow3\utils\images\image0.png E:\DBoW\DBow3\utils\images\image1.png E:\DBoW\DBow3\utils\images\image2.png E:\DBoW\DBow3\utils\images\image3.png
解释demo_general.exe所需的参数:
参数1:特征点检测与描述类型(根据代码可以选择orb brisk等)
参数2:所选择的图片的路径(一个或者多个)
总结
尽可能简单、详细的介绍DBoW3的在windoes11下的安装流程以及解决了安装过程中可能存在的问题。后续会根据自己学到的知识结合个人理解讲解DBoW3的原理和代码。