导言
这篇博客主要记录了我实现Mask R-CNN中demo的过程,及遇到问题的解决办法。源码下载地址稍后给出。
实现Mask R-CNN的demo一共需要下载以下两个文件:
1、Mask R-CNN源码
2、训练好的权重mask_rcnn_coco.h5
上面两个文件可以从网盘下载:
链接: https://pan.baidu.com/s/1qC5Rguvoyrppp4lZsa1TaQ 密码: satp
一、环境配置信息
关于基于pycharm的tensorflow环境配置在我之前的这篇博客环境配置。这里主要列出软件和各种库的版本:
1、配置信息
ubuntu 16.04
pycharm 2018.1.2
python 3.5.2
tensorflow-gpu 1.4.0
cuda 8.0. #使用nvcc -V 查看
cudnn 6.0
numpy 1.14.2
skimage 0.13.1
keras 2.0.8
scipy 1.0.1
pip 10.0.1
2、工具说明
1)、pycocotools
在Ms coco上训练数据时需要安装pycocotools,具体方法参见这个博客。
2)、关于Jupyter和Pycharm
这两个都是使用python非常方便的工具,mask-rcnn的源码是在Jupyter上跑的,而我选择的是Pycharm。所有会有部分地方的代码需要调整,主要就是从ipynb类型的文件中把代码拷出来粘贴到新的python文件中。
3、在pycharm中安装上述库
pycharm作为一个强大的IDE,上面的大部分库可以直接在pycham中安装:
file->settings->Project->project Interpreter,出现如下效果:
点击右上角的+符号,在出来的界面搜索框输入需要安装的库名称,在右下角可以选择安装的版本。一切都很方便。
二、代码结构说明
1、项目目录
首先把下载的mask rcnn源码解压到任意文件,在pycharm中新建项目,把解压后的全部文件拷贝到pycham中新建项目的根目录中。同时把训练好的权重文件mask_rcnn_coco.h5也拷贝过去。
项目结构如下:
2、文件概述
图片展示的目录结构有部分是我自己添加的代码,没有影响。
以ipynb结尾的文件是基于Jupyter的,就是code+markdown的模式。
如果想要在pycharm中运行,可以把每个ipynb类型文件中的代码拷贝出来,放到一个新建的python文件中运行。
首先介绍一下每个文件的大概作用,来源于matterport-Mask_RCNN官方教程翻译:
demo.ipynb 最简单的开始方式。展示了使用一个在MS COCO上预训练的模型在你的图片上实现图像分割。包括了在任意图片上实现图像检测和实例分割的代码。
train_shapes.ipynb 展示了怎么训练Mask R-CNN用自己的数据集。这个教程包括了一个玩具数据集来演示训练一个新数据集。
Visualize 文件主要是实现可视化的结果
inspect_data.ipynb 这个教程展示了不同的预处理步骤来准备训练数据
inspect_model.ipynb 这个教程深度解析了mask rcnn执行目标检测和语义分割的每一步。
inspect_weights.ipynb