目录
前言
由于YOLO的源码采用Python编写,ORB_SLAM3则采用C++编写,要将YOLO与SLAM结合,常见的方法有以下三种:
1 先跑一遍YOLO程序,获得带有检测目标边界框的语义信息,然后再运行ORB_SLAM3结合边界框的语义信息去标记特征点,但这样做实际意义不大,YOLO和SLAM异步运行;
2 使用UNIX域Socket实现Python和C++通信,该协议仅需要经过网络协议栈,不需要打包拆包、计算校验和、维护序列号应答,可以实现较高的通讯效率;
3 使用C++去部署YOLO,在ORB_SLAM3中单独写一个类用于实现YOLO目标检测,笔者使用libtorch部署YOLO。
1 环境配置
笔者使用Ubuntu20.04,内核版本如下(使用uname -a
查看):
Linux z 5.15.0-101-generic #111~20.04.1-Ubuntu SMP Mon Mar 11 15:44:43 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
建议包安装的版本与下面列出的一致,已经过验证可以完美运行。
1.1 安装ROS Noetic
建议使用ROS去配置基础环境,其可以帮助我们解决许多依赖的问题,具体的安装方法可以参考笔者的这篇文章,非常简单!
1.2 安装OpenCV 4.2.0
下载:OpenCV 4.2.0
下载完成后解压,进入./opencv-4.2.0目录执行:
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 && sudo make install
安装过程中如果出现IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz
报错或卡住的情况,可以参考笔者的这篇文章解决:
解决OpenCV4.2.0安装时出现IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz报错或卡住
1.3 安装Eigen 3.3.9
下载:eigen 3.3.9
下载完成后解压,进入./eigen-3.3.9
目录执行:
mkdir build && cd build && cmake .. && sudo make install
1.4 安装Pangolin 0.5
下载:Pangolin 0.5
直接安装会出现错误,需要修改部分的代码,具体的安装过程可以参考笔者的这篇文章:
1.5 安装LibTorch 1.7.0 cpu
下载:LibTorch 1.7.0 cpu
不需要安装,直接在CMakeLists.txt中声明路径即可。