一、源码和数据集的准备
获取git开源项目代码
https://github.com/matterport/Mask_RCNN
一下载2.1的前三个文件,和2.0的第一个h5文件,coco.h5是预训练权重,也放入源码
项目文件结构如下:
samples/logs:训练模型保存的位置
配置好环境。尽量它用啥版本就安装什么版本。Requirements
遇到问题先到git中的问题,搜索。
二、使用
项目文件代码很多!!!
核心文件model.py
utils.py辅助小方法
先samples/ballon.py/logs/balloon.py
训练配置参数
train
--dataset=../../balloon
--weights=coco
测试配置参数
splash
--weight=./logs/balloon20191023T1451/mask_rcnn_balloon_0030.h5 #训练好的模型或者别人的模型
--image=../../balloon/val/14898532020_ba6199dd22_k.jpg
三、原理
FPN层的作用
R_CNN中仅使用最后一层特征图进行特征提取,但是顶层特征中忽略了小物体的一些信息使得检测效果并不好,这该如何改进?
FPN:金字塔网络
FPN思想:将多个阶段特征(卷积之后得到特征,先掌握Resnet)图融合在一起,这就相当于有了高层的语义特征,也就有了低层的轮廓特征。
FPN层的作用:
Resnet101的五个阶段
不改变特征图大小的层归为一个阶段
每次抽取的特征都是每个阶段的最后一层的输出
问题:特征图大小会发生变化,如何融合呢?
五个损失函数