DynaSLAM是2018年发表在IROS的一篇文章,目前代码已开源。该文章很好的去除了环境中动态物体,并将环境结构进行恢复,本文主要记录自己在配置运行该文章源码时所遇到的一些问题,希望能帮助到大家。
自己电脑使用配置为ubuntu16.04+numpy1.15.2+python2.7,下面进行详细的配置介绍。
ORB-SLAM2的配置较为简单,可直接ORB-SLAM2主页介绍进行配置即可。
Mask_RCNN主页要求使用Python3.4+TensorFlow1.3+Keras2.0.8,但是DynaSLAM使用Python2.7(本人使用Python3.5配置后运行出现PyImport_ImportModule()函数返回为NULL,始终未能解决),因此改用Python2.7配置Mask_RCNN。
安装TensorFlow和Keras(首先安装是为了避免后续的卸载重装):
sudo pip2 install tensorflow==1.3.0
sudo pip2 install keras==2.0.8
sudo pip2 install numpy==1.15.2
安装requirements.txt中包:
git clone https://github.com/matterport/Mask_RCNN.git
cd Mask_RCNN-master
sudo pip2 install -r requirements.txt
执行setup.py文件:
sudo python2 setup.py install
安装pycocotools:
git clone https://github.com/waleedka/coco.git
cd coco-master/PythonAPI
sudo make install
安装TensorFlow和Keras(首先安装是为了避免后续的卸载重装):
sudo pip3 install tensorflow==1.3.0
sudo pip3 install keras==2.0.8
sudo pip3 install scipy==1.2.1
安装requirements.txt中包:
git clone https://github.com/matterport/Mask_RCNN.git
cd Mask_RCNN-master
sudo pip3 install -r requirements.txt
执行setup.py文件:
sudo python3 setup.py install
安装pycocotools:
git clone https://github.com/waleedka/coco.git
cd coco-master/PythonAPI
sudo make install
下载预先训练好的COCO模型权重mask_rcnn_coco.h5 ,将其放到DynaSLAM/src/python目录下,编译DynaSLAM:
chmod +x build.sh
./build.sh
编译完成后按照DynaSLAM主页上指令跑相应的数据集即可.
1、使用Python3配置依赖包后,运行DynaSLAM出错,PyImport_ImportModule()函数返回为NULL。使用Python2.7可以正常运行。
2、编译时遇到fatal error,则更改CMakeLists.txt:
将CMakeLists.txt中
${Pangolin_INCLUDE_DIRS}
/usr/include/python2.7/
/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/
改为
${Pangolin_INCLUDE_DIRS}
/usr/include/python2.7/
/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/
3、DynaSLAM源码中,有一些python文件中将tab与空格混用以及函数定义中出现了一些缩进不匹配,导致编译错误,需自己更改。已将修改后文件上传至CSDN中,有需要者可在此处下载
4、运行MaskRCNN时,很有可能报错提示:
ImportError: No module named _tkinter, please install the python-tk package
无论是配置python3还是配置python2都有可能遇到这个问题,安装相应的包即可
sudo apt-get install python-tk #(python2)
sudo apt-get install python3-tk #(python3)