1、MaskRcNN是一款开源的基于TensorFlow的图像识别的工具,对新手个人认为很友好,我之前从来没有使用过相关的东西,但是仍然依靠教程成功的跑完代码,训练了自己的数据集,以及明白了整个流程,过程中肯定会遇到很多问题,但是大部分的问题网络上都能够搜到相应的解决方式,只要大家跟着教程一点点的进行,一定可以成功运行的。
2、注明这是一个针对新手,从来没使用过相关图像识别的人的教程。
3、不清楚问题可以留言,看到后一定及时回复
参考博文-数据集训练教程:
https://blog.youkuaiyun.com/qq_29462849/article/details/81037343
https://blog.youkuaiyun.com/l297969586/article/details/79140840
参考博文-安装教程:
https://blog.youkuaiyun.com/chenmoran0928/article/details/79999073
https://blog.youkuaiyun.com/wjd1994/article/details/79326088
正文开始:
一、整体流程
整体来说,就是需要 安装python 3.6与anaconda,CUDA和cudnn 的安装,然后在anaconda中创建一个名叫Mask_RCNN的环境,当然叫什么都行,只是一个名字,接下来安装maskrcnn所需要的所有的包,再进行安装GPU版本tensorflow 1.5.0,再安装pycocotools,安装OpenCV和imgaug。之后就可以正式跑代码,可以先尝试官方给的sample,加载官方预训练权重,运行MaskRCNN的demo
二、环境配置
1、 CUDA和cudnn 的安装,并注意版本,建议就是装Cuda 9.0 和 cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
- Cuda 9.0 Toolkit (版本要求极高,最新是Cuda 9.1是不兼容之后的tensorflow1.5的) (windows) https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal(patch也需要下载,选择日期最新的)
(ubuntu) https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal(patch也需要下载,选择日期最新的) - cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0。(官网) https://developer.nvidia.com/rdp/form/cudnn-download-survey
需要先注册然后选择上面的版本要求下载。Cuda和Cudnn可能打开网页很慢,但是下载的时候速度还可以,有些用梯子的人可以考虑还是国内下载的好。
2、背景环境
- 关于python,要不要提前装,我觉得是没必要的,因为之后在anaconda里面会进行配置的,所以暂时不装。
-
然后就是git,可以自己找下教程,因为本来我电脑里面已经有了
Git(官方版下载速度很慢,可以考虑国内链接) 官方链接:https://git-scm.com/downloads
-
还有就是Windows需要MicrosoftBuild Tools 2015
(官方)https://www.microsoft.com/en-us/download/details.aspx?id=48159
(建议VS2015完整开发软件)https://www.visualstudio.com/zh-hans/vs/older-downloads/)
3、anaconda3安装,注意默认的python版本是3.7
- anaconda 官方网站下载速度很慢,可以使用清华大学镜像和中科大镜像。
(官网)https://www.anaconda.com/download/
(清华镜像)https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
4、安装完毕以后,打开anaconda Navigatror(在开始菜单可以找到),输入
conda create -n tensorflow pip python=3.5 #创建一个环境
接下来输入
activate tensorflow #注意一定要激活刚才创建的环境
继续输入
pip install tensorflow-gpu==1.5.0 #安装tensorflow
如果这里出现问题,很有可能是python版本不对,需要改一下python版本:
5、后续安装各种需要的库 ,一步到位
关于需要用到的可以参考如下
pip install numpy scipy cython h5py Pillow scikit-image keras theano jupyter six
自己可以再试试别的,看有没有用到但是没安装的,比如那个coco,上个版本就一直出错
import os
import sys
import random
import math
import numpy as np
import skimage.io
import matplotlib
import matplotlib.pyplot as plt
import coco
import utils
import model as modellib
import visualize
6、 安装两个插件。找到 ipython和Spyder并安装
在所创建的MaskRCNN中首先把channels左边的选项改成ALL,然后在最右边的搜索框里输入opencv,就可以找到opencv了。点击最下面的apply就可以安装好。当然也可以选择下面Ubuntu的方法。
测试一下:在Anaconda Prompt中启动tensorflow环境,并运行ipython,import tensorflow发现成功: 同样,在Anaconda Prompt中启动tensorflow环境,并运行Spyder,等一会儿后会启动Spyder IDE,import tensorflow 同样成功:
7、安装 pycocotools.coco
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
python setup.py build_ext --inplace
python setup.py build_ext install
后两步安装失败,是因为pycocotools不支持windows。
但是有大神已经修改出了windows版本,https://github.com/philferriere/cocoapi。
执行:
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
安装成功!
测试以下:import coco 成功
8、测试还需要装matplotlib,因为发现import导入的时候报错,之后发现少什么包也可以用这个
pip install matplotlib
9、安装imgaug
pip install imgaug
安装时候可能报错,其实就是少了一个模块,先本地安装这个模块,下载这个模块,然后进行本地安装。
- 通过过这个网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely
(这是一个非常好的扩展包非正式网址,建议大家mark起来) 中找到适合自己python版本的shapely下载到指定路径 - pip install piexif-1.1.0b0-py2.py3-none-any.whl(.whl安装包名称),具体请看文末-4解释
10、下载下来Mask_RCNN,Mask_RCNN官网
链接:https://github.com/matterport/Mask_RCNN
解压之后放置位置
10、预训练权重
-
预训练权重是神经网络训练后得到的超参数,也就是说整个模型不需要再训练了,你可以直接加载官方的训练结果直接应用。下载链接:
https://github.com/matterport/Mask_RCNN/releases
找到mask_rcnn2.0下面的mask_rcnn_coco.h5点击下载。然后将这个h5文件复制或移动到MaskRCNN文件夹中就可以了,这个文件夹和你的环境名称一样这不是巧合,事实上他就是你activate的那个环境。一般都会在C:/user/用户名里面。提醒,请不要因为一会儿运行的demo在samples文件夹里就把这个h5文件存在samples里面,应该存在MaskRCNN的根目录里面,因为默认打开的路径是根目录里。 -
官网下载非常慢,可以在这下载对应的mask_rcnn_coco.h5模型,这里给出百度网盘下载地址
链接:https://pan.baidu.com/s/1drKvfg 密码:yer9
11、8. 运行MaskRCNN的demo
最后我们将用预训练权重来识别示例文件,可以用自带的demo来运行。在命令行里面输入jupyter notebook打开。找到Mask_RCNN文件夹,找到sample里的demo.ipynb,单击打开运行。ipynb是ipython notebook的缩写,是一个记事本,notebook这个IDE可看做使用浏览器打开的编辑器。
上面是markdown格式写的,不是代码,下面才是。在代码区域按快捷键shift+ctrl可以运行,IN[ ] 代表运行的顺序,当方框里不是数字而是 * 的时候代表没有运行完,需要等待完成。
之后一直运行到最后一个就可以出结果啦。
值得注意的是,请每次想运行MaskRCNN或者与之有关的项目的时候,在命令窗口请先输入
activate MaskRCNN //windows
可能出现问题:
1、运行时报错:ModuleNotFoundError: No module named ‘imgaug’
pip install imgaug
这个安装完就没有事情了
2、注意修改代码的时候应该注意不能使用Tab键,用四个空格进行替代
3、日常报错 module ‘keras.engine.topology’ has no attribute ‘load_weights_from_hdf5_group_by_name’
点击就能看到解决方式,其实就是 用saving来取代代码中的topology。位置在2010行左右,三个位置。 load_weights 函数。
4、如何安装whl文件
-
下载.whl文件 百度输入:TensorFlow pypi查看到最近能用的最新.whl版本为1.5.0rc1:
点开该链接:
选择好适合自己系统的版本,然后下载!重点来了:一般来说直接下载都比较慢,这个时候把链接丢进迅雷,嘿嘿,只要有人已经下过,迅雷很快就会下好了!
如果迅雷依然还是很慢的话,就直接在百度上输入:“TensorFlow
1.5下载”,找找百度盘或者优快云等等网站有没有下载好的。直到把.whl文件下载下来! -
安装.whl文件 打开CMD窗口,可以看到当前的路径为:C:\Users\Administrator
先用cd
命令将路径转为.whl文件所在路径,这里我的.whl文件就放在桌面,所以直接输入:cd
C:\Users\Administrator\Desktop 可以看到路径已经成功转到桌面:
此时直接输入:pip install piexif-1.1.0b0-py2.py3-none-any.whl(.whl安装包名称)
名字那么长,谁会慢慢输啊,这里有个小窍门:只输入前面一部分,例如输入上图文件名中的开头字母T,然后按Tab键,剩余的名字就会自动给补全,补全,补全!重要的事说三遍。接下来按回车,文件即可自动安装!
5、关于spyder运行py文件
spyder 运行python文件 %run a.py 运行 a为文件名
6、注意,在安装包的时候可能你会觉得特别的慢,如果觉得慢的话,可以先进行翻qiang,这样的话速度就会快很多,如果还是有问题,还请留言私信