我们提出了一个概念上简单、灵活和通用的用于目标实例分割(object instance segmentation)的框架。我们的方法能够有效地检测图像中的目标,同时还能为每个实例生成一个高质量的分割掩码(segmentation mask)。这个方面被称为 Mask R-CNN,是在 Faster R-CNN 上的扩展——在其已有的用于边界框识别的分支上添加了一个并行的用于预测目标掩码的分支。Mask R-CNN 的训练很简单,仅比 Faster R-CNN 多一点计算开销,运行速度为 5 fps。此外,Mask R-CNN 可以很容易泛化到其它任务,比如,让我们可以在同一个框架中估计人类的姿态。我们在 COCO 难题套件的所有 3 种任务(track)上都得到了最佳结果,其中包括实例分割、边界框目标检测和人物关键点检测(person keypoint detection)。没有使用其它的技巧,Mask R-CNN 的表现超越了在每个任务上所有已有的单个模型,包括 COCO 2016 挑战赛的获胜模型。我们希望我们的简单又有效的方法能成为一个坚实的基础,能帮助简化实例层面识别的未来研究。我们将会公开相关代码。

Mask_RCNN Keras

这是一个在Python 3,Keras和TensorFlow基础上的对Mask R-CNN的实现。这个模型为图像中的每个对象实例生成边界框和分割掩码。它是在 Feature Pyramid Network (FPN) 和 ResNet101基础上实现的。

这个项目包括包括: - 在FPN和ResNet101基础上构建的Mask R-CNN的源代码。 - MS COCO的训练代码 - 预训练的MS COCO 权重 - 使用Jupyter notebooks 来可视化检测过程的每一个步骤 - 用于多GPU训练的ParallelModel类 - MS COCO指标评估(AP) - 用于训练你自己数据集的例子

代码被整理和设计得很容易被扩展。 如果在你的研究中使用了这份代码,请考虑引用此项目。 如果您从事3D视觉的相关研究,你可能会发现我们最近发布的Matterport3D数据集同样很有用

开始

  • demo.ipynb 最简单的事从这里开始. 这里演示了怎么用一个MS COCO预训练的模型来分割你的图片。里面包含了对任意图片进行目标检测和实体分割的代码。
  • train_shapes.ipynb  演示怎么在你自己的数据集上训练Mask R-CNN。这个notebook通过一个简单的模拟数据来展示怎么用在新的数据集上。
  • (model.py, utils.py, config.py): 这几个文件是Mask RCNN 的主要实现部分
  • inspect_data.ipynb. 这个notebook对几个不同的数据处理步棸进行可视化。
  • inspect_model.ipynb  这个notebook深入代码演示物体检测和分割过程,还提供了对每一步的可视化。
  • inspect_weights.ipynb 这个notebook用来观察训练模型的权重以及检查一些特例。

一步一步的检测

为了方便理解和调试模型,我们提供了三个notebook (inspect_data.ipynb, inspect_model.ipynb, inspect_weights.ipynb),包含实验的可视化过程,还可以让你一步一步的观察每个点的输出过程。下面是一些例子。

1. 锚点排序和过滤

第一步候选区域(Region Proposal)网络的可视化以及沿着anchor box refinement 的正锚点和负锚点。

2. boundingbox 精简

这是一个最终的检测区域(虚线)以及改善后的结果(实线)例子。

3. 掩码生成

生成的掩码例子。这些掩码随后会被缩放放置在图片的合适区域。

4. 每一层激活值的可视化

通常观察不同层激活对于解决检测中遇到的一些问题很有帮助。(全零值,或者随机噪声)

5. 权重直方图

另外一个调试技巧就是观察权重的直方图。这里是inspect_weights.ipynb notebook.给出的演示效果。

6.TensorBoard 可视化

还有一个非常重要的调试和可视化工具是TensorBoard. 这个模型被配置为记录loss值的变化,并在每个epoch后保存权值。

7. 组合得到最终结果

在MS COCO上训练

我们提供预训练的权值让你更简单的上手。 你还可以用这些权重为七点训练自己的模型。训练和验证的代码在coco.py中。你可以在notebook中引入这个模块或者直接从命令行运行。

Train a new model starting from pre-trained COCO weights python3 coco.py train --dataset=/path/to/coco/ --model=coco
Train a new model starting from ImageNet weights python3 coco.py train --dataset=/path/to/coco/ --model=imagenet
Continue training a model that you had trained earlier python3 coco.py train --dataset=/path/to/coco/ --model=/path/to/weights.h5
Continue training the last model you trained. This will find the last trained weights in the model directory. python3 coco.py train--dataset=/path/to/coco/ --model=last

你也可以像这样运行COCO的验证代码:

训练优化方法,学习率以及其他参数都是在coco.py 中设置。

Python安装依赖包

  • Python 3.4+ • TensorFlow 1.3+ • Keras 2.0.8+ • Jupyter Notebook • Numpy, skimage, scipy, Pillow

MS COCO 要求:

为了训练MS COCO,你需要以下:

  • pycocotools (installation instructions below)
  • MS COCO Dataset
  • Download the 5K minival and the 35K validation-minus-minival subsets. More details in the original Faster R-CNN implementation. 如果你使用Docker,代码已经在 Docker container中验证通过。

安装

  • Clone this repository
  • Download pre-trained COCO weights (mask_rcnn_coco.h5) from the releases page.
  • (可选) To train or test on MS COCO install pycocotools from one of these repos. They are forks of the original pycocotools with fixes for Python3 and Windows (the official repo doesn't seem to be active anymore).
  • Linux: https://github.com/waleedka/coco
  • Windows: https://github.com/philferriere/cocoapi. You must have the Visual C++ 2015 build tools on your path (see the repo for additional details)

更多例子


  1. Keras [https://github.com/matterport/Mask_RCNN\]
  2. TensorFlow [https://github.com/CharlesShang/FastMaskRCNN]
  3. Pytorch [https://github.com/felixgwu/mask_rcnn_pytorch\]
  4. caffe [https://github.com/jasjeetIM/Mask-RCNN]
  5. MXNet [https://github.com/TuSimple/mx-maskrcnn]
原文发布时间为:2017-11-9
本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号
原文链接:【前沿】何恺明大神ICCV2017最佳论文Mask R-CNN的Keras/TensorFlow/Pytorch 代码实现

【前沿】何恺明大神ICCV2017最佳论文Mask R-CNN的Keras/TensorFlow/Pytorch 代码实现相关推荐

  1. 聊聊恺明大神MAE的成功之处!

    卷友们好,我是rumor. 这两天忍不住又卷去看CV领域的论文了,主要是前些日子恺明大神的MAE太过强大,感觉不看会错过一个亿.看了之后果然不负我的期待,大道至简,思路太清晰了.太深刻了,给他投光我的 ...

  2. 何恺明大神新作:一种用于目标检测的主流ViT架构,效果SOTA

    链接:https://arxiv.org/abs/2203.16527 作者单位:Facebook AI Research 1导读 3月30日,何恺明大神团队在ArXiv上发布了最新研究工作,该工作主 ...

  3. 何恺明大神巨作:Faster R-CNN 论文笔记

    视频链接:https://www.bilibili.com/video/BV1j5411e7aH/ 何恺明大神奠基Two-stage目标检测算法的一篇巨作. 1.看abstract时候的问题(看其他部 ...

  4. 聊聊我眼中恺明大神MAE的成功之处

    卷友们好,我是rumor. 这两天忍不住又卷去看CV领域的论文了,主要是前些日子恺明大神的MAE太过强大,感觉不看会错过一个亿.看了之后果然不负我的期待,大道至简,思路太清晰了.太深刻了,给他投光我的 ...

  5. 那些年,我们一起追过的恺明大神!

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 来源丨AI算法与图像处理 编辑丨极市平台 导读 何恺明是CV领域的大神,发表过需要有对后续CV ...

  6. 何恺明大神新作--UnNAS:无监督神经网络架构搜索

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 作者:江山如画 编辑:Cver 链接:https://zhuanlan.zhihu.com/p ...

  7. 今日重磅!恺明大神又一力作!重新思考万能的ImageNet预训练模型

    译者 | 刘畅 林椿眄 整理 | Jane 出品 | AI科技大本营 Google 最新的研究成果 BERT 的热度还没褪去,大家都还在讨论是否 ImageNet 带来的预训练模型之风真的要进入 NL ...

  8. 基于tensorflow keras实现何凯明大神的Mask R-CNN的介绍

    基于tensorflow keras实现何凯明大神的Mask R-CNN的介绍 . 其英文的介绍说明,见如下网址. https://github.com/matterport/Mask_RCNN 中文 ...

  9. 一周AI回顾 | 特斯拉AI负责人说神经网络正在改变编程,机器学习大神Bengio新论文专注RNN优化

    本期一周AI看点包括行业热点.投融资.业界观点.技术前沿以及应用等方面. 行业 英特尔将同AMD合作PC芯片 共同对抗英伟达 <华尔街日报>援引知情人士的消息称,英特尔将发布一款移动处理器 ...

最新文章

  1. 76项!海南省崖州湾种子实验室揭榜挂帅项目立项结果公示
  2. Linux基础7 文件管理类命令
  3. 整理一份程序员常用的各类工具、技术站点
  4. 【渝粤题库】陕西师范大学300011 历史文献学
  5. android 图片叠加xml,Android实现图片叠加效果的两种方法
  6. 第五节:轻松掌握 vue 实例的生命周期
  7. cnn加工是什么意思_天秤座R-CNN:全面平衡的目标检测器
  8. python中可迭代对象_什么是python中的可迭代对象(iterable object)?
  9. python3.7安装opencv4.1_树莓派4的opencv4.1.0--python3.7的开发环境安装
  10. OOAD-1 GOF中的23种设计模式的分类和功能
  11. 【经典书】机器学习导论(附PDF)
  12. 学习使用php简单读取pdf文件总页数的方法
  13. POI设置导出的EXCEL锁定指定的单元格
  14. 论文翻译:2021_Towards model compression for deep learning based speech enhancement
  15. GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化
  16. redis限制set大小_redis set大小限制_微信文件大小限制
  17. 10.31周报-人体姿态估计CPN
  18. python如何判断列表是否为空_python简单判断序列是否为空的方法
  19. css为何要清除浮动及清除浮动的方法
  20. 软件测试质量体系管控

热门文章

  1. android shape的使用
  2. 解析RecyclerView的缓存机制
  3. android:fitsSystemWindows=“true”
  4. android组件化开发视频教程,教你打造一个Android组件化开发框架
  5. java aop面向切面编程
  6. TP5.0 PHPExcel 数据表格导出导入(引)
  7. bzoj 2006 [NOI2010]超级钢琴 rmq+堆
  8. 类 Class 对象、定义、方法
  9. android clipdrawable 小例子
  10. Linux统计某文件夹下文件、文件夹的个数