maskrcnn用于目标检测_Mask RCNN用于船舶检测和分割

a8ea75fcccd7e84c487aaf4eeb192df2.png

作者 | Gabriel Garza

来源 | Medium

编辑 | 代码医生团队

在这篇文章中,将使用Mask R-CNN构建一个模型,该模型将卫星图像作为输入,然后检测海洋中的任何船只,输出一个分割图像中每个船舶实例的mask。将使用 Kaggle Airbus Challenge提供的训练和开发数据集以及Matterport的伟大Mask R-CNN实施库。

链接到github中的代码:

https://github.com/gabrielgarza/Mask_RCNN

深度学习最激动人心的应用之一是机器理解图像的能力。李飞飞将此称为赋予机器“看见能力”。如下面的图像(a)中所述,检测和分割中存在四类主要问题。

62738a88125da52988c4c8507b3e3bee.png

(a)李飞飞斯坦福课程 - 检测和分割

实例分割有几种方法,在这篇文章中将使用Mask R-CNN

Mask R-CNN

Mask R-CNN是对快速R-CNN的扩展。更快的R-CNN预测边界框和Mask R-CNN本质上增加了一个分支以并行地预测对象Mask。

464f36823ea4901e12da0972a2e9393f.png

Mask R-CNN框架用于实例分割。资料来源:

https://arxiv.org/abs/1703.06870

1ac6d1d5d411ac41d7bb97d08b79525c.png

Mask R-CNN预测边界框和对象Mask的示例

不详细讨论Mask R-CNN如何工作,这里是一般步骤:

  1. 骨干模型:标准卷积神经网络,用作特征提取器。例如,它会将1024x1024x3图像转换为32x32x2048要素图,作为下一层的输入。

  2. 区域提议网络(RPN):使用由多达200K锚定框定义的区域,RPN扫描每个区域并预测对象是否存在。RPN的一大优势是不扫描实际图像,网络扫描特征图,使其更快。

  3. 感兴趣区域分类和边界框:在该步骤中,算法将RPN提出的感兴趣区域作为输入并输出分类(softmax)和边界框(回归量)。

  4. 分段Mask:在最后一步中,将正ROI区域作为输入的算法和具有浮点值的28x28像素Mask生成为对象的输出。在推理期间,这些Mask按比例放大。

使用Mask R-CNN进行训练和推理

将使用Matterport构建的令人敬畏的Mask R-CNN库,而不是基于研究论文复制整个算法。必须A)生成训练和开发设置,B)做一些争论加载到库中,C)在AWS中设置训练环境进行训练,D)使用迁移学习从coco预开始训练的重量,和E)调整模型,以获得良好的结果。

第1步:下载Kaggle数据并生成Train和Dev Splits

Kaggle提供的数据集包含数十万个图像,因此最简单的方法是将它们直接下载到将要进行训练的AWS机器上。一旦下载它们,就必须将它们分成train和dev集合,这将通过python脚本随机完成。

强烈建议使用Spot实例从Kaggle使用Kaggle的API下载数据,并将该压缩数据上传到S3存储桶。您稍后将从S3下载该数据并在训练时解压缩。

Kaggle提供了一个名为train_ship_segmentations.csv的csv文件,其中包含两列:ImageIdEncodedPixels(运行长度编码格式)。假设已经将图像下载到  ./datasets/train_val/路径中,可以将图像拆分并将图像移动到train和dev中,使用以下代码设置文件夹:

train_ship_segmentations_df = pd.read_csv(os.path.join("./datasets/train_val/train_ship_segmentations.csv")) 
msk = np.random.rand(len(train_ship_segmentations_df)) 0.8 
train = train_ship_segmentations_df[msk] 
test = train_ship_segmentations_df[~msk] # Move train set for index, row in train.iterrows

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值