基于tensorflow keras实现何凯明大神的Mask R-CNN的介绍 。
其英文的介绍说明,见如下网址。
https://github.com/matterport/Mask_RCNN
中文版,参见如下网址位置。大部分内容做了翻译。
http://www.zhuanzhi.ai/knowledge/b6e08fc997029df3b4f13f1c76110028
此文中缺少自己数据训练,以及代码与论文的差异部分的翻译,特补充。也为了接下来2周自己的试验做准备。
-----------------------
在自己的数据集上训练
为了在自己的数据集上训练模型,需要下面的2个class:
Config
:此class包含了缺省配置,以此类实现一个子类,修改你需要改动的属性。
Dataset:此
class提供了在任何数据集上运行的一个一致的方法。它允许你不用必须修改模型的代码来用新数据集训练。它也支持同时加载多个数据集,这个用来在你想要检测的对象在一个数据集里是都不可用的情况。此class是base class。为了使用它,创建一个新class从它继承,为你自己数据集添加特定的函数,Dataset class 在 utils.py 里,扩展的例子在train_shapes.ipynb 和coco.py文件里。
与论文的不同:
image resizing:为了支持每个batch训练多个图像,我们resize所有图像为相同size。
Bounding Boxes: 为了支持在多数据集上训练,我们选择忽略原数据集上的 bounding boxes。
Learning Rate: 论文里使用0.02的学习率,但我们发现它太高了。我们发现使用更小的学习率收敛更快。
Anchor Strides: 为了减少计算量,内存使用,我们设置滑窗步数为2。