如何分析TensorFlow8中的Mask-RCNN

如何分析TensorFlow 8中的Mask-RCNN,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联,为您提供重庆网站建设成都网站制作、网站营销推广、网站开发设计,对服务成都塑料袋等多个行业拥有丰富的网站建设及推广经验。成都创新互联网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!

今天带大家学习如何利用Mask R-CNN实现实例分割

Q & A

Q1. Mask R-CNN 是什么?

答:Mask R-CNN是实例分割的一种算法。

Q2. 实例分割是什么?

答:实例分割就是要在每一个像素上都表示出来目标所属的具体类别。 

实例分割的难度在于要先对一张图片所有的目标进行正确的检测同时还要对每个示例进行分割。检测的目的是把每一个单个目标分类然后用bounding box标定出来,而实例分割的目的是区分每一个像素为不同的分类而不用区别不同的目标。 

如何分析TensorFlow 8中的Mask-RCNN

正文

一. 环境准备

本文介绍如何通过 Mask-RCNN 来实现行人检测,假设你已经对 SSD、YOLO、Faster RCNN 等框架有所了解。

1. 准备 TensorFlow 环境

Tensorflow (>= 1.0.0)

Numpy

2. Gtihub 代码

   代码下载:https://github.com/CharlesShang/FastMaskRCNN

3. 下载CoCo数据

下载地址:http://http://cocodataset.org/#download

Web下载比较慢,可以从我的网盘下载:https://pan.baidu.com/s/1jHJdlVg#list/path=%2F

4. 下载 ReNet50

wget http://download.tensorflow.org/models/resnet_v1_50_2016_08_28.tar.gz

解压得到  resnet_v1_50.ckpt

二. 代码编译运行

代码编译可以参考 Github 说明,这里也给出如下流程:

1. make coco工具

cd ./libs/datasets/pycocotools  
make

2. 将下载的 COCO 数据放到 ./data 目录下,将数据转换成 tf 所需格式;

按照说明文件:

a)在 data下建一个 coco 文件夹,将指定的5个文件 copy到该目录;

b)将zip文件解压缩;

c)在根目录下建立 output/mask_rcnn 文件夹,用于存放 log;

d)执行格式转换脚本(大概会花一小时);

python download_and_convert_data.py

可能会提示Python某些库错误,没关系,安装一下就好了,可以将pip源换成国内的,pip install  -i https://pypi.tuna.tsinghua.edu.cn/simple  pil

sudo pip install pil   # or python -m pip install Pillow  
sudo pip install scikit-image   sudo apt-get install python3-tk

3. 提前训练好的 Resnet模型

在data下新建 pretrained_models 目录,将 resnet_v1_50.ckpt 放到目录下。

4. Make编译

cd ./libs  
make

5. 训练数据

python ../train/train.py
如何分析TensorFlow 8中的Mask-RCNN

当你观察到Loss的时候,说明训练过程已经成功开始了,不要着急,等着Loss慢慢减少吧,原作者训练 8-GPU 花了32个小时。

三. 训练效果

根据训练生成的 Log文件,存放在 output里面:

如何分析TensorFlow 8中的Mask-RCNN

设置 TensorBoard 的logdir,来看一下训练效果:

如何分析TensorFlow 8中的Mask-RCNN

可以看到整个的 loss 的变化情况,还是很有成就感的,需要说明一下,在训练过程中可能 loss 会有震荡的情况,没有关系,等到逐渐下降就好了。

看一下生成的 Graphs:

如何分析TensorFlow 8中的Mask-RCNN

四. Demo 运行

Github 上未给出 Demo 运行方法,需要我们自己找脚本来实现。

这里作者就不给出具体 code 了,请大家自行发挥。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


当前文章:如何分析TensorFlow8中的Mask-RCNN
文章URL:http://myzitong.com/article/jgieos.html