基于Tensorflow实现Mask RCNN,主要参考matterport/Mask_RCNN。
-
contourprocess
建筑物掩膜的处理
-
largest interior rectangle
最大内接矩形算法(largest_interior_rectangle):https://github.com/lukasalexanderweber/lir
-
道格拉斯普克算法
运行DouglasPeuker.py
即可
- 关于config文件
config文件包含两个,一个是在utils
文件夹下的config.py
,这一配置文件是训练以及推理过程中的基础设置的配置文件,里面包括基础的配置。另一个是根目录下的config
文件,继承utils
文件夹下的config.py
,主要配置训练集,测试图像等路径。
训练的时候注意一点:GPU数量暂时只能设定为1,如果需要多块GPU进行并行训练,可查看matterport/Mask_RCNN中有并行训练模型的代码。
训练数据的结构遵循VOC格式,包含三个文件夹:imgs
、mask
以及yaml
文件夹,分别存放原图、掩膜图像以及yaml文件,如何制作数据集请参考:Semantic-Segmentation-Datasets
制作好数据集后,修改config.py
文件,运行train.py
文件即可进行训练。
修改config文件后运行inference.py
文件即可。
ONNX推理可以参考:Deployment:MaskRCNN
使用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模型
Input image dtype is bool. Interpolation is not defined with bool data type
参考:Input image dtype is bool. Interpolation is not defined with bool data type:pip install -U scikit-image==0.16.2