Mask RCNN主要是用来干什么的呐?
对物体进行
实时的
分割。
Mask RCNN能够有效的检测图片中的objects,同时对每个instance的高质量的segmentation mask
一 环境配置
参考
https://www.youtube.com/watch?v=2TikTv6PWDw
1) 创建一个conda环境
创建一个名为Mask RCNN的环境
conda create -n MaskRCNN python=3.6 pip
2)下载所有的依赖库
requirements.txt的下载地址:
https://github.com/markjay4k/Mask-RCNN-series/blob/master/requirements.txt
activate MaskRCNN
pip install -r install requirements.txt
解释一下这些库的作用
numpy ——以矩阵为基础的数学计算模块,卷积运算都是矩阵运算,属于纯数学,比如傅里叶变换
scipy ——是基于Numpy,有一些高阶抽象和物理模型,比如滤波器
cython ——将C和Python结合起来的工具,可以方便调用C/C++
Pillow ——是Python中的图像处理库,主要包括图像存储,图像显示,格式转换以及基本的图像处理操作
scikit-image—— 是一个图像处理和计算机视觉的算法集合。当然提到图像不得不提opencv,opencv库是CV届绝对的大佬,但是为什么还要用skimage呢?原因是opencv用于我们的tensorflow训练数据预处理实在是太大才小用了,而且opencv的安装也不是很方便。所以,需要一些更加精简轻便的框架来帮助我们做数据预处理,scikit-image就是这样一个扩展包
keras ——如果说 Tensorflow 或者 Theano 神经网络方面的巨人. 那 Keras 就是站在巨人肩膀上的人. Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包。
Keras的教程:
https://morvanzhou.github.io/tutorials/machine-learning/keras/
jupyter ——是一个编写Python的编译器
错误:
我下载到Scikit-learn出现中断的情况,因此我把Scikit-learn放到最后下载,不要着急,学校的网已经够快了,都下载了一天
ImportError: Could not find 'cudart64_90.dll'.
最后还是出现之前的老毛病,tensorflow的版本太高,我的CUDA是8.0的,CUDA9.0和tensorflow1.5是兼容的,CUDA 8.0和tensorflow1.3是兼容的,所以只能重新下载一个1.3.0版本的tensorflow
测试tensorflow是否安装好,打开jupyter notebook
import tensorflow as tf
如果运行没有报错,那就是安装好了
3)下载Mask R-CNN
git clone http://github.com/matterport/Mask_RCNN.git
4)下载pycocotools
Microsoft COCO 是一个标注过的图片数据集,可用以目标检测、分割和描述生成等。
pycocotools需要VS2015的编译
下载cocoapi
git clone http://github.com/philferriere/cocoapi.git
安装pycocotools
pip install git+http://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
出现了一点小问题,没有安装Cython,pip install Cython就好啦
5)下载预先训练好的参数
https://github.com/matterport/Mask_RCNN/releases
下载 mask_rcnn_coco.h5,把这个.h5文件放入下载好的Mask_RCNN文件夹下
训练的时候还是有各种包没有导入进去
No module named 'cv2'
No module named 'imgaug'
然后又把所以的提示没有的依赖库都下载了一遍
二 检测图片
参考:
https://www.youtube.com/watch?v=2TikTv6PWDw
最后在cmd中输入jupyter notebook
打开 根目录/samples/demo.ipynb