主要参考:
https://blog.youkuaiyun.com/qq_29462849/article/details/81037343#commentBox
https://blog.youkuaiyun.com/l297969586/article/details/79140840
https://www.youtube.com/watch?v=2TikTv6PWDw
一、配置MaskRCNN环境
1、安装Anaconda
官方安装指南(有啥问题直接去找比较全)
http://docs.anaconda.com/anaconda/install/
直接在终端中运行Anaconda的安装程序即可(请输入自己的安装包所在路径)
bash ~/Downloads/Anaconda3-5.3.0-Linux-x86_64.sh
2、在Anaconda下配置自己的MaskRCNN环境
conda create -n MaskRCNN python=3.6 pip #新建一个名字为MaskRCNN的环境,注意python版本和自己的对应
python --version #查看python版本
activate MaskRCNN #激活刚才新建的环境
pip install -r requirement.txt #安装必要的库
新建环境后,一般都会提示你激活和失活的语句,
有的时候是 source activate MaskRCNN, 要加source,请自己仔细看终端输出的反馈
txt里的内容
numpy
scipy
Pillow
cython
matplotlib
scikit-image
tensorflow>=1.3.0
keras>=2.0.8
opencv-python
h5py
imgaug
把上面的内容复制到requirements.txt文件里,保存到当前操作的路径中即可(我就是在~/Download/下保存)
对应的版本号,如果有特殊要求请自己确认下,特别是GPU版本和CUDA对应的
https://blog.youkuaiyun.com/yeler082/article/details/80943040 可以参考该博客
3、克隆安装Mask RCNN Repo
git clone https://github.com/matterport/Mask_RCNN.git
4、安装pycocotools
git clone https://github.com/cocodataset/cocoapi.git
pip install git+https://github.com/cocodataset/cocoapi#subdirectory=pythonAPI
(PS:教程里说pycocotools需要visualc++ 2015 build tools(针对windows),但是那个网址没打开)
如果这个方法没有装成功的话,可以尝试下面博客的方法:
-----------------------------------------------------------------------------------
-
使用命令
git clone git@github.com:lucky-ing/cocoapi.git
把文件下载到本地(clone的地址,建议官方库) -
cd到PythonAPI里面,使用命令
python setup.py build_ext install
安装即可,如果是安装python3,需要使用python3 setup.py build_ext install
BY :lucky__ing
http://www.yanglajiao.com/article/lucky__ing/79407043
--------------------------------------------------------------------------------------
https://github.com/matteorr/coco-analyze
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
# install pycocotools locally
python setup.py build_ext --inplace
# install pycocotools to the Python site-packages
python setup.py build_ext install
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
sudo make install
sudo python setup.py install
before doing above steps install cython
---------------------
BY:yanshuai_tek
https://blog.youkuaiyun.com/yanshuai_tek/article/details/81032260
----------------------------------------------------------------------------------------
5、下载coco预训练的权重
https://github.com/matterport/Mask RCNN/releases]
下载mask_rcnn_coco.h5
6、测试是否安装成功
在终端敲入jupyter notebook
在jupyter中打开,Mask_RCNN/samples/demo.ipynb
修改detection的读入自己找的一张doge的图片,图片放在Mask_RCNN/mrcnn/images 里面
测试安装成功
二、准备自己的数据集(labelme)
1、label工具的选择
参考
官方有一个blog推荐了一些label的工具,截图如下
附上链接:(部分需要科学上网)
2、labelme的安装
最后按照教程
https://blog.youkuaiyun.com/qq_29462849/article/details/81037343#commentBox
https://blog.youkuaiyun.com/l297969586/article/details/79140840
选择了labelme
conda create -n labelme python=3.6 pip
conda activate labelme
pip install labelme
然后日常使用,就下面两句话(我在windows下做的label,操作是一样的)
然后操作基本就很简单了截图如下
保存后会生成一个json文件,
进入json所在文件,用labelme自带的数据转换 高亮语句
@echo off
for %%i in (*.json) do labelme_json_to_dataset "%%i"
pause
把上面语句保存到txt文件中,另存为bat文件,移到你json文件所在目录下,
再终端labelme环境激活的状态下输入
start "" "test.bat"
即可将目录下所有的json文件批量转换
最后得到如截图所示文件
**注意**
1、如果在labelme中同一类物体需要命名为类似cat_1,cat_2,cat_3......cat_20的形式,不然会把所有的mask储存到一个通道,所有的猫识别为一个整体。
2、训练要求一般是正方形,虽然程序是会主动填充白边,但是如果是自己制图的话,建议都将size设为正方形,
3、训练的时候IMAGE_MAX_DIM和IMAGE_MIN_DIM建议和自己图片一样,然后一定要能被2整除
4、我所用的版本省成本的label.png的深度已经是8位不用再额外剪裁
5、尽量在label前确定自己的图像尺寸,否则resize的时候保存的时候可能会出玄学问题,导致训练的时候维度不对
6、如果同一个物体有遮挡,同一只猫好了,只要把属于这只的部分全部mark出来,用同一个label(cat_1)就是把这部分存到同一个通道里
按照参考教程,保存整理为如下几个文件即可,放在Mask_RCNN目录下(你也可以去code里面修改dataset_rooot_path为自己的数据集路径)
pic是label的jpg原图,(ps:我label的png颜色比较鲜艳哎,不是一团黑,确定png的bit depth是8)
3、训练自己的数据
我用的是https://blog.youkuaiyun.com/qq_29462849/article/details/81037343#commentBox
里面分享大code,感谢前辈分享,让小白方便入门
但是我还是喜欢用jupyter那种实时反馈的效果,有需要的话可以去看看
https://github.com/Ella2le/MaskRCNN-train-my-data/blob/master/train_test.ipynb
感觉这种形式,更方便我排错(*/ω\*)
一般只要修改
#number of object
#class_name
即可
其他参数可根据自己的硬件和图像尺寸等信息自行修改
部分参数需要去Mask_RCNN/mrcnn/config.py中去修改