Skip to content

RyanCCC/Mask_RCNN

Repository files navigation

Mask_RCNN

基于Tensorflow实现Mask RCNN,主要参考matterport/Mask_RCNN

文件说明

  1. contourprocess

    建筑物掩膜的处理

  2. largest interior rectangle

    最大内接矩形算法(largest_interior_rectangle):https://github.com/lukasalexanderweber/lir

    imageimageimage

  3. 道格拉斯普克算法

运行DouglasPeuker.py即可

  1. 关于config文件

config文件包含两个,一个是在utils文件夹下的config.py,这一配置文件是训练以及推理过程中的基础设置的配置文件,里面包括基础的配置。另一个是根目录下的config文件,继承utils文件夹下的config.py,主要配置训练集,测试图像等路径。

训练

训练的时候注意一点:GPU数量暂时只能设定为1,如果需要多块GPU进行并行训练,可查看matterport/Mask_RCNN中有并行训练模型的代码。

训练数据的结构遵循VOC格式,包含三个文件夹:imgsmask以及yaml文件夹,分别存放原图、掩膜图像以及yaml文件,如何制作数据集请参考:Semantic-Segmentation-Datasets

image

制作好数据集后,修改config.py文件,运行train.py文件即可进行训练。

推理

修改config文件后运行inference.py文件即可。

ONNX推理可以参考:Deployment:MaskRCNN

模型评估

  1. Calculating mean Average Recall (mAR), mean Average Precision (mAP) and F1-Score

  2. compue_ap

  3. 语义分割之评价指标

模型转换

使用convert.py可以进行模型转换。如将权重和计算图转换成Tensorflow saved_model的格式。也可以将tensorflow的模型转换成ONNX的格式。详情请参考文档。 一些简单的使用例子如下:python .\convert.py --flag --saved_model .\save_model\ --save_onnx ./test.onnx或者python .\convert.py --weight .\model\village_building.h5 --label .\data\building.names --save_onnx ./test.onnx --saved_pb

参数说明:

  • weight:待转换的权重文件
  • label:标签文件的路径
  • saved_pb:是否保存pb文件
  • saved_pb_dir:保存pb文件的路径
  • saved_model:保存tensorflow模型
  • save_onnx:保存onnx文件路径
  • opset:onnx算子类型
  • flag:带有这个标记说明是tensorflow model模型转换成onnx,否则为权重转换成onnx模型

调试问题

  1. Input image dtype is bool. Interpolation is not defined with bool data type

image

参考:Input image dtype is bool. Interpolation is not defined with bool data type:pip install -U scikit-image==0.16.2

参考

  1. Mask RCNN源码解读
  2. Mask RCNN综述以及建筑物实例分割

Releases

No releases published

Packages

No packages published

Languages