源码网页(Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow): https://github.com/matterport/Mask_RCNN

看github主页的安装步骤也很简单,但自己一上手各种问题就出来了,这里主要写给自己看的,不喜勿喷,谢谢大家!

第一个坑:pip  

拿到代码的第一步就是去读readme,看到作者的配置是python3.4, tensorflow 1.3, keras 2.0.8 。由于ubuntu 16.04 自带 python2.7和python3.5,也没多想,就用Python3.5了。

第一步:在终端输入:

 sudo pip3 install tensorflow==1.3.
sudo pip3 install keras==2.0.

但是并不是想象的那么简单,报错了,如下:

没关系,这个一看就明白了,告诉我们pip版本太低了,也告诉我们怎么更新了,那就在终端输入

sudo pip install --upgrade pip

开始更新。

直到终端出现:

就是更新完成了。

**如果出现  ImportError:cannot import name main.的错误,只要在终端键入

sudo gedit /usr/bin/pip

from pip import main
if __name__ == '__main__':
sys.exit(main())

  改为

from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())

  就ok了。

**如果提示你的pip无法更新,终端输入

sudo apt-get install python3-pip

重新安装pip,再更新即可。

补充:为了以后使用方便,我将python3.5 的优先级提前。具体操作如下:

查看可替换版本:

 update-alternatives --list python

提示出现  update-alternitives:errror:no alternative for python

说明python的替换版本未安装,终端输入以下命令进行安装:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.

重新输入

update-alternatives --list python

出现

就可以进行版本切换了,终端输入

sudo update-alternatives --config python

输出如下:

输入对应数字选择默认版本。

这里可以参考这位博主写的,很详细:https://blog.csdn.net/qq_42938987/article/details/83990333

第二个坑:Mask_RCNN安装

第一步:在终端输入:

 sudo pip3 install tensorflow==1.3.0
sudo pip3 install keras==2.0.8

这次是没问题的,必须注意的是,这里安装TensorFlow和keras下面命令中pip后的3一定要带着,我就是一开始没带后来会有问题,又卸载重装的。

第二步:按照 Mask_RCNN Readme中的步骤安装即可。

1)安装依赖:

cd Mask_RCNN
sudo pip3 install -r requirments.txt

2) 执行setup.py 文件(要在Mask_RCNN目录下)

sudo python3 setup.py install

这里出现了一个错误是关于opencv-python的

单独安装一下opencv-python:

sudo pip3 install opencv-python

再次安装依赖:

sudo pip3 install -r requirments.txt

是不是好了?

3)安装pycocotools,依然在Mask_RCNN目录下:

git clone https://github.com/waleedka/coco.git
cd coco-master/PythonAPI
sudo make install

My god!又出错了!

幸好告诉我们应该怎么做了,安装一下python3-tk:

sudo apt-get install python3-tk

再执行一下

sudo make install

应该是可以了。

到此,Mask_RCNN安装完成,跑一个demo试试吧!

第三个坑 :python3 import cv2 与ros 冲突

运行一个demo:

这个错误是python3 无法导入cv2.so,没关系,这个很好解决,ctrl+Alt+T打开终端,输入

gedit ~/.bashrc

将ros的环境配置注释掉,如下:

重新打开终端,刷新一下

source ~/.bashrc

在Mask_RCNN下重新打开终端,记住是重新打开终端,很关键,重新运行demo,真的成功了!

结果图:

That’s so cool!

ubuntu 16.04 安装 Mask_RCNN 遇到的问题集锦的更多相关文章

  1. Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2

    Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2:sudo add-apt-repository ppa:team-xbmc/xbmc-nightlysudo ap ...

  2. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  3. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  4. Ubuntu 16.04安装Matlab 2016b教程

    由于代码需要依赖Linux环境,只好尝试着装MATLAB,然而各种问题接踵而至,开始了由MATLAB引发的三天Linux探寻之旅-- 下载Matlab 2016b for Linux https:// ...

  5. ubuntu 16.04 安装 tensorflow-gpu 包括 CUDA ,CUDNN,CONDA

    ubuntu 16.04 安装 tensorflow-gpu 包括 CUDA ,CUDNN,CONDA 显卡驱动装好了,如图: 英文原文链接: https://github.com/williamFa ...

  6. ROS_Kinetic_01 在ubuntu 16.04安装ROS Kinetic 2017.01更新

    ROS_Kinetic系列学习(一),在ubuntu 16.04安装ROS Kinetic. Celebrating 9 Years of ROS! ubuntu16.04已经发布半年多了,ROS的K ...

  7. Ubuntu 16.04 安装 VMware Tools(解决windows和Ubuntu之间不能互相复制粘贴文件的问题)

    Ubuntu 16.04安装虚拟工具VMware Tools,指的是在虚拟机VMWare安装Ubuntu 16.04后再安装VMware Tools的过程.很多人接触Linux都是从虚拟机开始,而安装 ...

  8. Ubuntu 16.04安装JDK(转载)

    1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是OpenJDK,如果需要安装Oracle的JDK这种方法就不合适了,直接跳过看下面的章节. 1.使用ctrl+ ...

  9. Ubuntu 16.04 安装Mysql数据库

    系统环境 Ubuntu 16.04; 安装步骤 1.通过以下环境安装mysql服务端与客户端软件 sudo apt-get install mysql-server apt-get isntall m ...

随机推荐

  1. mongodb安装4.0(rpm)

    虚拟机客户端vmware player linux版本:CentOS Linux release 7.4.1708 (Core) CentOS安装类型:Basic Web Server 参照官网最新文 ...

  2. Django学习笔记之表单验证

    表单概述 HTML中的表单 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言.只要把input标签放在form标签中,然后再添加一个 ...

  3. Linux内存管理 (15)页面迁移

    专题:Linux内存管理专题 关键词:RMAP.页面迁移. 相关章节:反向映射RMAP.内存规整. 页面迁移的初衷是为NUMA系统提供一种将进程迁移到任意内存节点的能力,后来内存规整和内存热插拔场景都 ...

  4. 在Asp.Net Core中使用DI的方式使用Hangfire构建后台执行脚本

    最近项目中需要用到后台Job,原有在Windows中我们会使用命令行程序结合计划任务或者直接生成Windows Service,现在.Net Core跨平台了,虽然Linux下也有计划任务,但跟原有方 ...

  5. 如何伪造IP(转)

    要明白伪装IP的原理,首先要回顾一下TCP的三次握手. 总所周知在链接初始化的阶段, 需要一次三次握手来建立链接, 之后客户端和服务端会依据初始的这个IP地址来通信. 从这个角度上来说, 想真正的伪装 ...

  6. RPC框架原理简述:从实现一个简易RPCFramework说起(转)

    摘要: 本文阐述了RPC框架与远程调用的产生背景,介绍了RPC的基本概念和使用背景,之后手动实现了简易的RPC框架并佐以实例进行演示,以便让各位看官对RPC有一个感性.清晰和完整的认识,最后讨论了RP ...

  7. docker下载镜像received unexpected Http status:500 Internal Server Error

    解决办法 1.就是网上说的 关闭selLinue ,但是对我就没用 2.就是不使用镜像加速 ,但是出现连接超时 3.就是加上具体版本号 结果就成功了 [root@localhost ~]# docke ...

  8. java 的数据类型及其所占的字节数

    1.char java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符. 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字 节的第一个字节都为0,就是浪 ...

  9. ORM基础之字段及其参数介绍

    一.外键ForeignKey 1.字段参数 1.to 设置要关联的表 2.to_field 设置要关联的表的字段(一般不设置,默认使用主键id关联) 3.related_name 反向操作时,使用的字 ...

  10. 自己实现ArrayList与LinkedList类

    ArrayList与LinkedList的底层实现 ArrayList内部由数组实现,LinkedList内部由链表实现. 自己动手实现ArrayList与LinkedList中一些常用方法 Arra ...