maskrcnn实现.md
Mask R-CNN实现(https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46)
数据传输流程以及基本概念:
1、Backbone:
(standard convolutional neural network (typically, ResNet50 or ResNet101)
早期层检测低层特征(边缘和角落),后期层依次检测高层特征(汽车、人、天空)。
转换成feature map,为以下层提供输入
Feature Pyramid Network
特征金字塔网络(FPN)是由与Mask R-CNN相同的作者提出的一种扩展,可以更好地表示多尺度的对象。
FPN通过添加第二个金字塔来改进标准的特征提取金字塔,该金字塔从第一个金字塔获取高级特征并将其传递到较低的层。通过这样做,它允许每个级别的特性同时访问较低级别和较高级别的特性。
ResNet101 + FPN backbone
- Region Proposal Network (RPN)
RPN扫描这么多锚的速度有多快?非常快,
滑动窗口由RPN的卷积特性处理,它允许RPN并行扫描所有区域(在GPU上)。此外,RPN不直接扫描图像(即使我们在图像上绘制锚点以作说明)。相反,RPN扫描backbone映射内容,通过这些优化,RPN可以在大约10毫秒内运行,这是根据介绍RCNN的论文得出的结论。
做法:
RPN为每个锚点生成两个输出:
1、前景或背景、前景暗示可能在盒子里的是一个前景对象
2、对象可能不在图像中间,因此RPN估计一个增量(x、y、宽度、高度变化的百分比)来改进锚盒以更好地适应对象。
锚点过多:使用RPN预测,我们选择可能包含对象的顶部锚,并细化它们的位置和大小。如果多个锚点重叠过多,我们将保留前景得分最高的锚点,而放弃其余的锚点(称为非最大抑制)。在那之后,我们有最后的建议(感兴趣的地区)
输出顺序
3、ROI Classifier & Bounding Box Regressor
此阶段在RPN提出的感兴趣区域(ROIs)上运行。就像RPN一样,它为每个ROI产生两个输出:
1、ROI中对象的类。不像RPN,它有两个类(FG/BG),这个网络更深入,并有能力将区域划分为特定的类(人、车、椅子等)。它还可以生成一个后台类,这将导致ROI被丢弃。
2、包围框细化:与RPN中的细化非常相似,其目的是进一步细化包围框的位置和大小以封装对象。
ROI Pooling
ROI池是指裁剪功能图的一部分并将其调整为固定的大小,但是实现细节不是这样,Mask R-CNN的作者提出了一种他们称之为ROIAlign的方法,在这种方法中,他们在不同的点上采样特征图并应用双线性插值。
- Segmentation Masks
这就比以前的faster-RCNN更好点,掩码分支是一个卷积网络,它接受ROI分类器选择的正区域并为其生成掩码。生成的掩模是低分辨率的:28x28像素。但是它们是软掩码,用浮点数表示,因此它们比二进制掩码包含更多的细节、我们将预测的掩码放大到ROI边界框的大小,这样就得到了最终的掩码,每个对象一个掩码。
其他
数据集训练选择:
Flickr 上找到75张图片训练
为什么没有用百万数据训练:首先,学习迁移。这只是意味着,我不再从头开始训练模型,而是从一个在COCO数据集上训练过的权值文件开始(我们在github repo中提供了这个文件)。虽然COCO数据集没有包含一个气球类,但是它包含了很多其他的图像(~120K),所以训练的权重已经学习了很多在自然图像中常见的特征,这真的很有帮助。其次,考虑到这里的简单用例,我并不要求这个模型具有很高的准确性,所以微小的数据集就足够了。
图像标注工具的选择:有很多工具可以对图像进行注释。由于它的简单性,我最终使用了VIA (VGG图像注释器)。它是您下载并在浏览器中打开的单个HTML文件。最初几张图片的注释非常慢,但是一旦我习惯了用户界面,我就会在一分钟内注释一个对象。
VIA工具将注释保存在JSON文件中,每个掩码是一组多边形点。我没有找到这种格式的文档,但是通过查看生成的JSON很容易就能找到。我在代码中加入了注释来解释如何进行解析。
为新数据集编写代码的一个简单方法:是复制cocoa .py并根据需要进行修改。我就是这么做的。我将新文件保存为balloons.py
配置……
……..
训练:遮罩R-CNN是一个相当大的模型。特别是我们的实现使用了ResNet101和FPN。所以你需要一个拥有12GB内存的现代GPU。也许少一点也行,但我没试过。我使用了Amazon的P2实例来训练这个模型,对于这个小数据集,训练花费不到一个小时。
训练结果如右:
Color splash
最后,现在我们有了对象蒙版,让我们使用它们来应用颜色飞溅效果。方法非常简单:创建一个灰度版本的图像,然后在由对象蒙版标记的区域中,从原始图像中复制颜色像素。下面是一个例子:

maskrcnn实现.md的更多相关文章
- win10编译maskrcnn benchmark
步骤 1. 按照官网的Option1安装步骤安装 https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/INSTALL. ...
- 好用的Markdown编辑器一览 readme.md 编辑查看
https://github.com/pandao/editor.md https://pandao.github.io/editor.md/examples/index.html Editor.md ...
- github上readme.md 格式
参考:https://github.com/guoyunsky/Markdown-Chinese-Demo/edit/master/README.md
- .md文件的语法
md全称是Macdown,.md文件可以当记事本一样使用,作为编辑软件,还可以自己添加样式,图片,链接等,可以用记事本打开,也可以保持样式排版转换为html文件,语法比较简单..md除了编辑容易的优势 ...
- md语法之行内代码和代码片续集
md语法之行内代码和代码片 一行之内嵌入一小段代码, 简称行内代码. 其方法为: 用撇号把代码围起来. 比如: import numpy as ny就可以了. 代码片的方法: 三个连续的撇号+pyth ...
- md语法之行内代码和代码片
md语法之行内代码和代码片 比如说要在行内写上一句或者半句代码(代码的意思就是某种脚本语言), 用撇号围起来就可以了. 比如: import pandas as pd 写代码片(单独的一块脚本语言)的 ...
- bootstrap 之 xs,sm,md,lg && 主要颜色
mobile – xs ( <768px ) tablet – sm ( 768~991px ) desktop – md ( 992~1170px ) large desktop – lg ( ...
- Markdown(MD)写作
简洁的写作 目前正逐步使用Makedown来写博客或其它的文档,本文记录一下Markdown的相关知识 Markdown语法 标题 # 内容 (一级标题) ## 内容 (二级标题) ### 内容 (三 ...
- /MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
一.MD(d).MT(d)编译选项的区别 1.编译选项的位置 以VS2005为例,这样子打开: 1) 打开项目的Property Pages对话框 2) 点击左侧C/C ...
随机推荐
- nunjucks如何使用?
基本的使用 const nunjucks = require('nunjucks') // nunjucks.configure({ autoescape: true }); // const res ...
- jquery click事件中的return false
提交表单数据时设定了type="submit"属性,单击提交按钮后会默认刷新页面 但是在使用jquery的click事件时没出现跳转 $('button').click(funct ...
- PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- Android_小账本小结
登录界面:支持登录.注册以及游客登录,单纯的小账本的话其实用不到这些个登录,单纯为了巩固学习知识. 尚未部署到服务器,账号等数据暂时保存在本地数据库中. 游客登陆:游客登录会直接跳到主页中,不影响使用 ...
- Tomcat中相关配置详解
tomcat的相关配置 server.xml <Server port="8005" shutdown="SHUTDOWN"> <!-- 属性 ...
- pytest之assert断言
assert pytest允许您使用标准Python断言来验证Python测试中的期望和值.例如,你可以写下 # content of test_assert1.py def f(): return ...
- nginx 启动报错找不到nginx.pid文件
这个问题的出现应该是系统找不到nginx的配置文件nginx.conf,所以,我们要告诉系统配置文件的位置:' --- 使用nginx -c /usr/local/nginx/conf/nginx.c ...
- RabbitMQ+PHP教程
RabbitMQ+PHP 教程一(Hello World) RabbitMQ+PHP 教程二(Work Queues) RabbitMQ+PHP 教程三(Publish/Subscribe) Rabb ...
- TAB_JG_COMMAND_SERVERINFO
简介 存储设备基本信息 表结构
- 打开UML类图的正确姿势
UML(Unified Modeling Language) 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言.UML的定义包括UML语义和UML表示法两个元素.UML是在 ...