Mask R-CNN for Object Detection and Segmentation

这是Python 3,Keras和TensorFlow上Mask R-CNN的实现。该模型为图像中的每个对象实例生成边界框和分割掩码。它基于特征金字塔网络(FPN)和ResNet101主干网。

该存储库包括:

  1. 在FPN和ResNet101上构建的Mask R-CNN的源代码。
  2. MS COCO的训练代码
  3. 预先训练的MS COCO权重
  4. Jupyter笔记本电脑在每一步都可以看到检测管道
  5. 用于多GPU培训的ParallelModel类
  6. MS COCO指标评估(AP)
  7. 训练您自己的数据集的示例

该代码被记录并设计为易于扩展。 如果您在研究中使用它,请考虑引用此存储库。 如果您从事3D视觉工作,您可能会发现我们最近发布的Matterport3D数据集也很有用。 这个数据集是由我们的客户拍摄的3D重建空间创建的,这些客户同意将它们公开供学术使用。 你可以在这里看到更多的例子。

Getting Started

  1. demo.ipynb是最简单的开始。 它展示了一个使用MS COCO预先训练的模型来分割自己图像中的对象的例子。 它包括在任意图像上运行对象检测和实例分割的代码。
  2. train_shapes.ipynb显示了如何在您自己的数据集上训练Mask R-CNN。 这款笔记本引入了一个仿真数据集(Shapes)来演示新数据集的训练。
  3. (model.py,utils.py,config.py):这些文件包含主掩码RCNN实现。
  4. inspect_data.ipynb。 该笔记可视化不同的预处理步骤以准备训练数据。
  5. inspect_model.ipynb这个笔记深入到执行检测和分割对象的步骤。 它提供了管道每一步的可视化。
  6. inspect_weights.ipynb这款笔记检查训练好的模型的权重并查找异常和奇怪的模式。

Step by Step Detection

为了帮助调试和理解模型,有3个笔记(inspect_data.ipynb,inspect_model.ipynb,inspect_weights.ipynb)提供了大量的可视化,并允许逐步运行模型来检查每个点的输出。 这里有一些例子:


  1. Anchor sorting and filtering
    可视化第一阶段区域提案网络的每一步,并显示正面和负面的锚点以及锚点框架细化。

  2. Bounding Box Refinement
    这是第二阶段最终检测框(虚线)和应用于它们的细化(实线)的示例。

  3. Mask Generation
    生成的掩码的示例。 然后将它们缩放并放置在正确位置的图像上。
  4. Layer activations
    通常检查不同层的激活以寻找麻烦迹象(全零或随机噪声)是有用的。
  5. Weight Histograms
    另一个有用的调试工具是检查重量直方图。 这些都包含在inspect_weights.ipynb笔记中。

  • Logging to TensorBoard
    TensorBoard是另一个伟大的调试和可视化工具。 该模型配置为记录损失并在每个时期结束时保存权重。
  • Composing the different pieces into a final result
  • Training on MS COCO

    Training on Your Own Dataset

    Differences from the Official Paper

    Contributing

    Requirements

    Projects Using this Model

    你可能感兴趣的:(Python,人工智能)