TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)
依赖库版本
版本很重要, 错了不一定能跑起来
MASK R-CNN == 2.1
tensorflow == 1.15
keras== 2.0.8
scipy== 1.2.1
其他版本没有试过
一. 原材料
- Jupyter Notebook
安装教程移步到: Windows 下无痛安装 Jupyter Notebook与配置
- TensorFlow
安装教程移步到: Windows 下无痛安装 TensorFlow (CPU版)
- MASK R-CNN 源代码
下载地址: https://github.com/matterport/Mask_RCNN/releases
点击Source code(zip)下载源码到本地, 解压后放到Juyper Notebook文件存放路径, 如E:\Jupyter_Files, Jupyter Notebook 如何更改工作路径, 上面Jupyter Notebook安装教程里有讲
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第1张图片](http://img.e-com-net.com/image/info8/6c7994269c6a4f1a8f68e11464659331.jpg)
- COCO API
下载地址: https://github.com/cocodataset/cocoapi
如上图下载到本地, 解压后放到Juyper Notebook文件存放路径, 如E:\\Jupyter_Files
以上两个源码放到相同路径, 如下图, 我下载的coco-master
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第2张图片](http://img.e-com-net.com/image/info8/925b73070849480094f83e35ffd34a28.jpg)
- Microsoft Visual Studio 2015
网上一搜一大堆, 安装路径你喜欢就好, 注意, 选自定义安装, 编程语言把C++勾上, 其他默认值, 以下就简称VS2015了
二. 运行步骤
- 打开Jupyter Notebook
打开后可以看到刚才下载的两个文件夹已经显示出来
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第3张图片](http://img.e-com-net.com/image/info8/9e52f5082ca74627b4420cc256677df1.jpg)
- 打开Mask_RCNN-2.1->demo.ipynb, 打开demo.ipynb后部分截图如下
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第4张图片](http://img.e-com-net.com/image/info8/d5d5a4b529ab4d98a6b6f51e30aa26bd.jpg)
- 切换Kernel
选择Kernel->Change kernel, 切换到你想要的Kernel
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第5张图片](http://img.e-com-net.com/image/info8/1d7831fa74fb49188bb417f286d7678b.jpg)
- 选择Demo源码的第1个Code 单元格, 单元格边框会变成绿色, 绿色表示此单元格是可以编辑的, 蓝色表示不能编辑
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第6张图片](http://img.e-com-net.com/image/info8/5d50f58a97a1421cb81ac74bfb25cfae.jpg)
- 激动人心的时刻来了, 按Shfit+Enter运行刚才选中的单元格, 看能不能运行, 答案是: NO!!!, 在单元格下面会输出一些错误信息, 这些信息就是我们这次要填的坑, 错误信息的顺序和上面import 语句的顺序有关系
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第7张图片](http://img.e-com-net.com/image/info8/5cd4bc9020154af390c60492abb0d6dd.png)
坑1: 看红框说的, 意思是你没有安装skimage, 那先来填这个坑
打开你心爱的Anaconda Prompt, 激活Jupyter Notebook选用的核所在的Environment, 输入pip install scikit-image安装skimage, 等待其安装完成
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第8张图片](http://img.e-com-net.com/image/info8/cfa209ea159b4114b1c7ab8e71780ab2.png)
好不容易不skimage安装完成, 我们再选择第1个Code单元格, 按Ctrl+Enter运行试试看会怎样,OMG, 又来了一个坑, 此坑如下图
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第9张图片](http://img.e-com-net.com/image/info8/3c22395930fb4248b35b6e803cf4bd61.jpg)
坑2: 红框是说你没有安装matplotlib, 聪明的你是不是已经打开了Anaconda Prompt, NO, NO, NO, 还有其他更容易的安装方法, 移步到 https://blog.csdn.net/yx123919804/article/details/84111774, 仿照第6步安装更方便
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第10张图片](http://img.e-com-net.com/image/info8/34d24f476f1648ad8d5a23d654f60f7a.jpg)
坑3: 安装完成matplotlib再来运行一次, 看还有没有坑, 果然还有
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第11张图片](http://img.e-com-net.com/image/info8/8bce3ee279e44ff1baab01b196fe9187.jpg)
如何填? 仿照安装matplotlib安装keras
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第12张图片](http://img.e-com-net.com/image/info8/9a35bec126204d31a6528f94d31f1480.jpg)
坑4: 填好了再运行一次, 这次显示的坑有两个, 不过先只填红框的那个
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第13张图片](http://img.e-com-net.com/image/info8/4e32ea8e07ca4344a351b3d349eb8fe0.jpg)
怎么填? 聪明的你可能已经看到了红框上面的这名话: # https://github.com/aleju/imgaug (pip3 install imgaug), 不就是运行一下pip3 install imgaug吗? 因为我们有选择运行的Environment, 所以我们不这样做, 而是在Anaconda Prompt中激活Environment, 然后输入pip install imgaug 进行安装
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第14张图片](http://img.e-com-net.com/image/info8/fc2354497db24ac9a616f4d5f3b26966.png)
坑5: 好, 现在已经填好了4个坑s, 再来运行一次, 又来一个坑, 这次输出越来越多, 表示我们越接近成功了
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第15张图片](http://img.e-com-net.com/image/info8/33eec4561b0e470188a0b377454c2a2a.jpg)
这个坑可以仿matplotlib填, 但是搜索的名字不是cv2, 而是opencv, 哈哈, 被坑了吧
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第16张图片](http://img.e-com-net.com/image/info8/475e02c3c6734273a514bd893e94f9a6.jpg)
坑6: opencv安装完毕, 再来运行一次, 你可能已经猜到还有坑, 恭喜你, 猜对了, 而且这个坑还有一点大, 说没有pycocotools这个模块
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第17张图片](http://img.e-com-net.com/image/info8/39574d52a2cf446285247ac5779cf511.jpg)
How Fill? 确保Microsoft Visual Studio 安装成功了后, 打开Anacon Prompt, 并激活你选择的Environment, 再将目录切换到cocoapi, 怎么切换? 比如我的cocoapi在E:\Jupyter_Files\cocoapi-master\PythonAPI, 那就先输入E:回车,切换到E盘, 再输入cd E:\Jupyter_Files\cocoapi-master\PythonAPI 目录下
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第18张图片](http://img.e-com-net.com/image/info8/ab27eb14c8854c609f15e31da3f55c7f.png)
坑7: 目录切换完成, 再输入python setup.py install, 就开始安装pycocotools, 不过先告诉你又会来一个坑, 如下图
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第19张图片](http://img.e-com-net.com/image/info8/2a70018d881e45219ad996aad4f48f2a.png)
What the fuck~, 这个坑还是比较好填的, 大家跟我做, 在资源管理器中打开E:\Jupyter_Files\cocoapi-master\PythonAPI, 里面有一个setup.py的文件
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第20张图片](http://img.e-com-net.com/image/info8/ca6b9b42cb164b3fba0c43317d08f4df.jpg)
打开它, 怎么打开? 当然双击啊, 如果你电脑上没有python编辑环境, 可以用安装好的 VS2015打开
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第21张图片](http://img.e-com-net.com/image/info8/f4246120a24243e0b75ca80300aefacd.png)
把红框框的那一行改成extra_compile_args=[] # originally was [’-Wno-cpp’, ‘-Wno-unused-function’, ‘-std=c99’], 简单点说就是把extra_compile_args赋值一个空list, 把后面的用#注释掉, 免得以后你想改回来, 改完后如下图
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第22张图片](http://img.e-com-net.com/image/info8/8fa715c346c24ff786582b0c7bc7ffba.png)
坑8: 再走一个 python setup.py install 试试? 来一个坑说无法打开源文件: “pycocotools/_mask.c”: No such file or directory
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第23张图片](http://img.e-com-net.com/image/info8/258949eb5ff9463587a65a5ff4082c5d.png)
一步一步跟我填, 首先要问为什么打开不呢? 嗯~这个是还有一个依赖项没有安装, 仿安装matplotlib安装Cython
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第24张图片](http://img.e-com-net.com/image/info8/526c9c511ebb48adb30819584fe5f6cf.jpg)
安装完成后再打开坑7中的那个 setup.py文件,
在最开始增加两行
from distutils.core import setup
from Cython.Build import cythonize
然后再把setup里面的内容改成
setup(
name='pycocotools',
packages=['pycocotools'],
package_dir={'pycocotools': 'pycocotools'},
version='2.0',
ext_modules=cythonize(ext_modules)
)
改完后如下图
![from](http://img.e-com-net.com/image/info8/94b40cb2d9da4307a1362ff0ced41fa1.png)
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第25张图片](http://img.e-com-net.com/image/info8/777159a385634c728bfc8938a1a43d28.png)
好了, 坑8就这样被填好了, 再再走一个 python setup.py install 试试?
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第26张图片](http://img.e-com-net.com/image/info8/7b1ae4aa1a1a499b964d0d082cb44403.png)
不出所料, 安装完成, 在Environment路径下生成一个pycocotools的文件夹, 就问你神不神奇!
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第27张图片](http://img.e-com-net.com/image/info8/3b63938c4c61472480b931fb75acc456.jpg)
如果在site-packages文件夹下找不到pycocotools文件夹, 那就到D:\Anaconda3\envs\tf_cpu\Lib\site-packages\pycocotools-2.0-py3.7-win-amd64.egg文件夹中看看, 你的Anaconda和Environments路径可能和我的不一样, 你知道意思就行
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第28张图片](http://img.e-com-net.com/image/info8/2961c17bd1524663afa6fe684536df5c.jpg)
再用Ctrl+Enter运行第1个Code单元格试试? 已经没有错误输出了
最后还有一个不算坑的坑, 没有错误输出了后, 就要开始下载mask_rcnn_coco.h5了, 这个是训练的权重参数, 有200多M, 网速慢的话要多等一下, In旁边方括号里面的*号表示这个单元格正在执行, 执行完成后会显示一个数字, 下载完成再Ctrl+Enter, 第1个Code单元格已经没有错误信息了
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第29张图片](http://img.e-com-net.com/image/info8/872e7f32b0b74f688e3eed04ad088e02.png)
![download](http://img.e-com-net.com/image/info8/5451a5c9c0ea481eb9b41a7ef69677af.png)
坑9: 第1个Code单元格是填完了, 但是Demo还是不能运行, 我们试一下, 点上方工具栏Cell->Runn All, 运行全部单元格, 会看到第3个Code单元格下面有错误信息输出, 说没keras.engine.topology没有load_weights_from_hdf5_group_by_name这个属性
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第30张图片](http://img.e-com-net.com/image/info8/be9a62b2ce39453cb1b57fa08c363fba.jpg)
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第31张图片](http://img.e-com-net.com/image/info8/3c3e2159fde048f78987da0580e58900.jpg)
这个也比较好填, 看上面错误定位的文件是model.py, 那我们打开它, 搜索"topology"会有3个地方要改, 第1个如下图, 把from keras.engine import topology注释掉, 改成from keras.engine import saving
![k9-1](http://img.e-com-net.com/image/info8/e858c3c818fe4516bee926be7e33269c.jpg)
![k9-2](http://img.e-com-net.com/image/info8/7b034013a2484873a06551184db2f341.jpg)
再搜索"topology", 还有下图这个地方有两处要改
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第32张图片](http://img.e-com-net.com/image/info8/b9c01a90ce6d49b1b0d481a22767c8d5.jpg)
也是把topology改成saving, 改完后保存, 如果有必须的话, 重新打开Jupyter Notebook, 再打开demo
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第33张图片](http://img.e-com-net.com/image/info8/fd1f0e65cecb48a5b23446039007e91d.jpg)
至此, 所有的坑都填好了, 再Run All 试一下, 是不是看到了科学都不能解释的现象, 图像中的物体被检测出来了, 就问你惊不惊喜, Run All 之后, 再次运行的话, 只运行最后那Run Object Detection单元格就可以检测了, 如果要检测自己的图像, 只要把图像放到images文件夹下就可以了
![TensorFlow MASK R-CNN Demo Windows 无痛搭建 (CPU版)_第34张图片](http://img.e-com-net.com/image/info8/5537304cbee34ed1b56bdbc9fa1ce8a5.jpg)