DynaSLAM环境配置ubuntu 18.04 (持续更新中)

安装tensorflow-1.14.0版本时,我的电脑只能选择CPU的版本,所以安装GPU版本会出现很多问题,只有这个命令可用:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==1.14.0

值得注意的是,这个版本是无法正确运行的,因为在执行时候仍然会报错,所以后缀需要改成1.12.3

同时需要安装的keras版本为2.0.9
安装命令:

sudo pip install keras==2.0.9

但是有会出现一个新的问题就是提示你安装的numpy检测到多个版本或者出现版本过高的问题,这里的numpy1.16.0版本是上面安装tensorflow和keras时候自带的版本,需要单独卸载,反复执行命令:

sudo pip uninstall numpy

直到出现无numpy存在的提示后,安装对应的numpy1.15.0版本:

pip install numpy==1.15.0

至此,出现
在这里插入图片描述Mask R-CNN正常工作.

在上述问题解决后,便开始编译DynaSLAM的文件,又出现新的问题:在这里插入图片描述问题出在哪里呢?就在于DynaSLAM根目录下的CMakeLists.text文件中,因为Monocular目录下根本没有mono_carla文件,所以将文件中最后三行注释即可:
参考:https://blog.csdn.net/lexiaoxiaoxiao/article/details/101561416

#add_executable(mono_carla
#Examples/Monocular/mono_carla.cc)
#target_link_libraries(mono_carla ${PROJECT_NAME})

继续编译

完成之后,下载了一个动态TUM数据集进行验证:

 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /home/eagle/DataSet/TUM/rgbd_dataset_freiburg3_walking_xyz /home/eagle/DynaSLAM/Examples/RGB-D/associations/fr3_walking_xyz.txt

在这里插入图片描述这里跑不完整,所以修改TUM3.yaml中提取的ORB特征点数量1000—>3000,成功跑完,没有问题,同时没有调用Mask网络,并且存储inpainted的帧:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml home/eagle/DataSet/TUM/rgbd_dataset_freiburg3_walking_xyz home/eagle/DynaSLAM/Examples/RGB-D/associations/fr3_walking_xyz.txt  ./maskpath ./inpaintedFrame

这里出现了总线错误,显示核心已转储。
这里的问题从终端中不好解决,于是选择使用Clion这个IDE寻找问题,最终发现有一处问题:来自于src源文件中MaskNet.cc中的此行代码。
在这里插入图片描述问题原因全网只有一个解决方式:已于图片中给出网址。
电脑配置的的是Opencv3.2.0,可能会与tensorfow产生冲突,所以建议使用Opencv2.4.11版本,所以尝试同时安装两个版本的Opencv,所以现在安装Opencv2.4.11的话必须要修改安装路径,不能直接安装在CmakeLists下所给的默认路径“usr/local”,否则会出现新安装的版本覆盖之前安装的Opencv版本的问题。但是自己创建文件夹安装的时候又会出现安装新版本Opencv报错:1. linux/videodev.h找不到 2. sys/videodev.h找不到 的问题(猜测是修改了安装路径导致的问题,目前仍在解决)。

尝试卸载opencv3.2.0版本后再装opencv2.4.11

安装opencv2.4.11遇到的问题(opencv3.1.0可以正常安装):
1.Configuring incomplete, errors occurred!
See also “D:/OpencvSources/CMakeFiles/CMakeOutput.log”.
See also “D:/OpencvSources/CMakeFiles/CMakeError.log”.
需要修改几个相应的文件错误以及Ubuntu 18.4不支持opencv-2.3.11自带的OpenCVDetectCXXCompiler.cmake,需要修改此文档,见:https://blog.csdn.net/u010003609/article/details/100086911#commentBox

(这个错误非常隐蔽!!!!!!!)

值得一提的是更换OpenCv版本后,之前运行的ORB_SLAM2需要重新执行以下build.sh文件,不然会出现

./Examples/Monocular/mono_tum: error while loading shared libraries: libopencv_core.so.3.1: cannot open shared object file: No such file or directory
”

报错!

(1)/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录。
(2)In file included from /home/kunb/slam_code/opencv-2.4.9/modules/highgui/src/cap_ffmpeg_impl.hpp:60:0,
from /home/kunb/slam_code/opencv-2.4.9/modules/highgui/src/cap_ffmpeg.cpp:45:
/home/kunb/slam_code/opencv-2.4.9/modules/highgui/src/ffmpeg_codecs.hpp:104:7: error: ‘CODEC_ID_H264’ was not declared in this scope
{ CODEC_ID_H264, MKTAG(‘H’, ‘2’, ‘6’, ‘4’) },
^~~~~~~~~~~~~
/home/kunb/slam_code/opencv-2.4.9/modules/highgui/src/ffmpeg_codecs.hpp:105:7: error: ‘CODEC_ID_H264’ was not declared in this scope
{ CODEC_ID_H264, MKTAG(‘h’, ‘2’, ‘6’, ‘4’) },
^~~~~~~~~~~~~
/home/kunb/slam_code/opencv-2.4.9/modules/highgui/src/ffmpeg_codecs.hpp:106:7: error: ‘CODEC_ID_H264’ was not declared in this scope
{ CODEC_ID_H264, MKTAG(‘X’, ‘2’, ‘6’, ‘4’) },
(后面太长,不贴了)

编译时候:

 cmake -DENABLE_PRECOMPILED_HEADERS=OFF -D WITH_FFMPEG=OFF..

(3)./home/eagle/opencv-2.4.11/modules/contrib/src/rgbdodometry.cpp:65:12: fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory
解决方法:首先确保Eigen已经安装了,然后找到Eigen所在的路径。我的在/usr/include/eigen3这里

然后将

 #  include <unsupported/Eigen/MatrixFunctions>

改成

# include </usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

至此Opencv2.4.11编译安装完成。

更换Opencv版本后需要进行重新编译整体文件,Mask-R CNN至此可以开始正常工作。
在这里插入图片描述

在这里插入图片描述
对运行过程中的问题进行研究,发现上述问题是因为Extracted ORB Featured Points数量不够,所以在脚本文件中对提取的特征点数量由1000——>3000,正常运行,但是问题还有一个是:

Light Tracking not working because Tracking is not initialized...

cautious!这是因为RBD_D模式下,不需要初始化,因为只有Monocular没有深度信息,所以才需要初始化。

本片博客参考的安装过程来自两位大神的博客:
https://blog.csdn.net/qq_27399933/article/details/107549920
https://blog.csdn.net/qq_43525260/article/details/105746452#commentBox
https://blog.csdn.net/l243225530/article/details/105900272(核心转储的问题)

本片论文是针对Legion y7000的环境配置过程中出现的问题而作。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值