易学智能

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8066|回复: 21

深度学习重量级开源项目(二)Mask R-CNN

[复制链接]

10

主题

16

帖子

321

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
321
发表于 2018-8-23 18:34:26 | 显示全部楼层 |阅读模式
1.项目简介
https://github.com/matterport/Mask_RCNN为源码网址,这是github上基于Python 3、Keras和TensorFlow的Mask R-CNN实现。Mask R-CNN模型会给图像中的每个目标生成边界框和分割掩码。它基于特征金字塔网络(FPN)和ResNet101架构。模型效果可参考下图:


2. 项目的实际应用
a)4K分辨率(4096×2160)视频下进行目标检测和实例分割


b)通过添加棒球场地、足球场地、网球场地和篮球场地等地理标识来改进OpenStreetMap。效果图如下图所示:
注:OpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。[1]


c)显微镜图像中细胞核的分割,效果如下图所示:


d)医疗机器人中的目标检测与分割,用于给机器人手臂操作医疗零部件时提供空间位置信息


e)将卫星图像转换为地图,效果如下图所示:


f)从地理空间图像中生成矢量掩码,效果如下图所示:


3 项目包含的内容
a) 基于FPN和ResNet101架构的源代码
b) 基于MS COCO数据集的模型训练代码
c) 基于MS COCO数据集的预训练权重
d) 使用Jupyter可视化查看算法的每一步流程
e) 为支持多gpu训练设计的类(class)
f) 能在MS COCO数据集上对指标进行评估
g) 使用自己的数据集进行训练的样例
4 快速开始使用项目
a) demo.ipynb 展示了一个使用预先在MS COCO数据集上训练过的模型来分割图像中的目标。它包括对任意图像进行对象检测和实例分割的代码。
b) train_shapes.ipynb展示如何在自己的数据集上训练Mask R-CNN模型。这个案例通过一个示例数据集来演示如何在一个新数据集上进行训练。
c) (model.py, utils.py, config.py) 这些文件包含模型的主要实现。
d) inspect_data.ipynb这个案例可视化了在准备训练数据前,不同数据预处理过程。
e) inspect_model.ipynb这个案例深入研究了检测和分割目标的步骤。它提供了算法流程中每个步骤的可视化展示。
f) inspect_weights.ipynb这个案例检查训练过的模型权重文件,查找异常情况。
5 模型检测过程
5.1 Anchors排序和过滤
可视化第一阶段RPN(区域候选网络)的每一步,显示正的anchors和负的anchors以及anchors框位置精修。如下图所示:


5.2 边界框位置精修
进过非极大值抑制(NMS)处理后,可以得到虚线框的检测结果。在第二阶段通过将检测结果进行边界框位置精修得到实线框,结果如下图所示:


5.3 掩码生成
生成Masks之后将Masks缩放并放在图像的正确位置。


5.4 层激活
检查不同层的激活情况来发现异常信号(数值全为零或随机噪声),通常这个步骤会有帮助。具体如下图所示:


5.5 权重直方图
另一个有用的调试工具是检查权重直方图,这些都包含在inspect_weights.ipynb案例中。权重直方图如下所示。


5.6 TensorBoard的日志记录
TensorBoard是另外一个很棒的调试和可视化工具。模型可以在每个epoch结束时,记录损失值以及保存模型权重。损失值图如下所示:


5.7 把不同的部分组合形成最终的结果
将框预测,Mask预测,类别预测组合形成最终的结果,如下图所示:


参考网站:
[1]Open Street Map
https://baike.baidu.com/item/Open%20Street%20Map/11057294?fr=aladdin&fromid=3171606&fromtitle=openstreetmap


回复

使用道具 举报

10

主题

16

帖子

321

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
321
 楼主| 发表于 2018-8-24 10:05:16 | 显示全部楼层
有意思
回复

使用道具 举报

2

主题

3

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2018-8-24 10:46:41 | 显示全部楼层
这个项目很有趣,不知道还可以用到哪些地方
回复

使用道具 举报

46

主题

77

帖子

702

积分

xdtech

Rank: 5Rank: 5

积分
702
发表于 2018-8-24 10:53:23 | 显示全部楼层
learnAI 发表于 2018-8-24 10:46
这个项目很有趣,不知道还可以用到哪些地方

可以用于自动驾驶、医疗行业等
回复

使用道具 举报

13

主题

53

帖子

131

积分

注册会员

Rank: 2

积分
131
发表于 2018-9-8 11:26:27 | 显示全部楼层
易学智能 发表于 2018-8-24 10:53
可以用于自动驾驶、医疗行业等

mask-rcnn是去年发明的网络架构吧,算是比较前沿的网络架构
回复

使用道具 举报

10

主题

72

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2018-9-10 08:19:36 | 显示全部楼层
黑崎一护 发表于 2018-9-8 11:26
mask-rcnn是去年发明的网络架构吧,算是比较前沿的网络架构

mark,将来学习一下
回复

使用道具 举报

2

主题

27

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2018-9-12 09:58:29 | 显示全部楼层
我记得有英文的demo案例,自己实现maskrcnn,能给个讲解就好啦
回复

使用道具 举报

13

主题

53

帖子

131

积分

注册会员

Rank: 2

积分
131
发表于 2018-9-15 09:32:12 | 显示全部楼层
菜鸟闯世界 发表于 2018-9-12 09:58
我记得有英文的demo案例,自己实现maskrcnn,能给个讲解就好啦

在哪?求给链接
回复

使用道具 举报

19

主题

68

帖子

225

积分

论坛管理

Rank: 4

积分
225
发表于 2018-9-18 10:56:34 | 显示全部楼层
兄台,你东西哪儿找的,demo链接在此https://engineering.matterport.c ... orflow-7c761e238b46
回复

使用道具 举报

2

主题

28

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2018-9-20 14:39:42 | 显示全部楼层
路过学习~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易学智能

GMT+8, 2024-12-22 11:57 , Processed in 0.018721 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表