Mask R-CNN资源汇总

引言

最近因为毕设需要用到Mask R-CNN,从网上找了很多资料学习,把觉得有帮助的一些内容收集起来,写到这篇文章中。

Github项目:GitHub - matterport/Mask_RCNN: Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow

原理讲解

1.论文及原理

论文:http://cn.arxiv.org/pdf/1703.06870v3

参考资料:mask-rcnn解读_u010901792的专栏-CSDN博客_maskrcnn

Mask RCNN 学习笔记 - 勇者归来 - 博客园

2.代码详解

参考资料:

MASK_RCNN代码详解(1)-Basebone部分 - 知乎

MASK_RCNN代码详解(2)-RPN部分 - 知乎

MASK_RCNN代码详解(3)-Heads部分 - 知乎

MASK_RCNN代码详解(4)-Losses部分 - 知乎

MASK_RCNN代码详解(5)-锚框生成过程 - 知乎

MASK_RCNN代码详解(6)-ProposalLayer - 知乎

MASK_RCNN代码详解(7)-PyramidROIAlign - 知乎

MASK_RCNN代码详解(8)-DetectionTargetLayer - 知乎

环境配置

参考资料:​​​​​​配置MaskRCNN环境超详细教程(win10/ubuntu 16.04+tensorflow1.5.0 GPU版)_chenmoran0928的博客-CSDN博客_maskrcnn环境搭建

要注意的是,由于使用tensorflow-gpu版本时对cudacudnn的版本要求极高,一定要对应好,否则会遇到很多奇奇怪怪的问题。

训练数据集

1.如何训练自己的数据集

参考资料:MaskRCNN训练自己的数据集 小白篇 - 灰信网(软件开发博客聚合)

这篇文章描述过程非常详细,基本照着做就可以了,(目前在网上能找到的绝大部分都是基于一个DrugDataset()的代码进行改编的,需要根据自己的数据集文件将对应的文件路径进行代码修改

2.训练过程太慢以及数据缓存处理的技巧

参考资料:​​​​​​关于Mask R-CNN训练及数据读取缓慢的问题解决_Wang CVer的博客-CSDN博客_mask rcnn训练慢

这个博主根据DrugDataset()中重写的draw_mask()函数中的数据缓存导致训练过程太慢进行了修改(主要原因是draw_mask()中有一个3层for循环,导致大量cpu资源用于处理这三个for循环产生瓶颈,而gpu却很难拿到数据进行训练)。

主要分两个步骤,一是将原始数据集中的mask在训练前预处理成.npz格式(后面附的完整代码),二是在训练过程中直接读取对应的.npz文件(即已预处理好的mask),节省了cpu资源,使gpu运行效率大幅提升。

P.S. 后续遇到其他好的文章再继续更新

Mask RCNN 是基于Kaiming 之前的工作 FPN (Feature Pyramid Network) 很形象地说就是用FPN产生的检测结果, 后面加了一个分割的网络. 文章中用到了 Top-Down + Bottom-Up 最近很流行的多层网络, 因为最开始Faster-RCNN只是在最后一层上面检测, 很容易丢掉小目标物体, 并且对细节遮挡也很不敏感. 最近的趋势就是结合多层 特征, 答主孔涛就很早发现了这个insight, 做出了HyperNet 并中了CVPR roal!!!作者:Oh233 链接:https://www.zhihu.com/question/57403701/answer/153060743 来源:乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Mask R-CNN 这个结果确实很强,但要同时注意它主要是加上了许多(都是很有用的)engineering techniques 。 比如说 anchor 从 12 增加到了15个,图像 size 从600变成了800,还有ROI batch size变到了512,从FPN那篇paper来看,这些 better practice 会有对性能十分明显的提升 (table 3 baseline: AP=26.3 -> 31.6)。而我们组16年的coco分割竞赛冠军 ,Fully Convolutional Instance-aware Semantic Segmentation (FCIS)的代码昨晚终于开源了。限于计算资源,我们并没有加上这些改进。这些改进应该是比较 general 的,也会适用于 FCIS。欢迎大家试用一波。FCIS 提供了一种简单高效的框架去解决 instance segmentation 的问题。跟之前 COCO 2015 的冠军 MNC 相比,它的主要不同在于 mask estimation 和 detection 是共同做的,而不是先估计 mask 再做 detection。在 FCIS 中 detection/mask estimation 之间通过 inside/outside score map 互相影响,利用了这两个紧密相连 task 之间的共性。现在 release 版本基于支持多卡训练的MXNet,msracver/FCIS。实际上大概今年一月份我们就已经写出了外面可以使用的Caffe版本,但是当时官方 Caffe 只支持单卡做复杂任务的训练,对于COCO这种大规模数据集来说用单卡训练的话一下子几周的时间就过去了。考虑到大家用起来会非常蛋疼,最后还是决定没有release这个版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值