最近在搞YOLO和SLAM结合的工作,于是复现了GitHub上点赞量最高的YOLO-DynaSLAM。链接甩给大家:bijustin/YOLO-DynaSLAM (github.com)https://github.com/bijustin/YOLO-DynaSLAM
在复现过程中遇到不少问题,首先它的代码是在ORB-SLAM2和DynaSLAM的基础上改进的,将耗时的Mask 改为了YOLO,说是可以实时,并且和DynaSLAM相同的是,它也使用了几何方法和YOLO结合来完成动态特征点的检测和去除。跑过ORB-SLAM2的大佬应该知道,想跑通ORB-SLAM2需要安装各种依赖项和库,并且pangolin和opencv版本也会导致复现不成功,这里复现的首要环节也是配置环节,按照ORB-SLAM2的库去安装即可,不知道的小伙伴可以参考这篇大佬的博客:Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_orbslam2运行_9527风先生的博客-CSDN博客
环境配置好之后,按照GitHub上yolo-danySLAM的作者给的步骤往下进行即可。但是复现之后效果并不像作者所说的那样。我运行命令是./Examples/RGB-D/rgbd_tum_yolo Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /SATA2/ZZW/YOLO-DynaSLAM/data/rgbd_dataset_freiburg3_walking_xyz/ /SATA2/ZZW/YOLO-DynaSLAM/Examples/RGB-D/associations/associate.txt我觉得因该是运行了yolo版的,但是事实情况是,人身上的特征点还在,并没有类似yolo去除的痕迹,而且运行起来非常卡顿,不是帧率低那种卡,是运行个几帧就卡一会不动那种。刚开始我以为是因为在Ubuntu虚拟机上可能没用GPU加速的原因,后来部署到实验室的服务器上跑还是这样,不知道是代码的问题还是我复现的问题,有知道的大佬欢迎私聊或者评论。这里放上跑通之后的效果:
背景黑色数字是帧,这里它其实是卡在38帧不动了我截的图,半天才动一下,可以看见人身上的特征点还在。
这个是跟踪丢失的情况,背景写的是几何方法不工作了,slam跟踪丢失几何不工作很正常,但是没跟踪丢的时候,像之前那个图的情况,也没感觉几何方法在工作呀,更没用yolo检测的痕迹,实在是搞不懂了。求助各位大佬
更新版:感谢评论大佬的指点,之前是因为我没有完全理解作者的意思,运行指令输入不全导致YOLOv3net没有工作,在我之前的指令最后加上YOLO即可运行YOLO模式,初始化时间有点久,还是跟实时性有关,虽然现在把人像特征带点去除了,帧率还是不高,跑以来有点卡顿。这里附上YOLO模式下的效果图,其实也就和作者在GitHub上挂的图几乎一样了