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 ...
随机推荐
- 如何在 messager/alert/confirm等消息提示框中 获取 / 设置 嵌入 html内容中的 input[type=checkbox]等的选中状态?
总结, 有3点: 不能/不要 在 这些消息框 / 提示框/ 对话框中的 回调函数中去写代码: 获取嵌入 内容中input.checkbox的选中状态, 因为 虽然在这些框存在的时候, 这个 check ...
- 看完它,你就全懂了十大Wifi芯片原厂!
看完它,你就全懂了十大Wifi芯片原厂! 来源:全球物联网观察 概要:不知不觉中,WiFi几乎已攻占了整个世界.现在只要你上网,可能就离不开WiFi了. 2014年是物联网WiFi市场关键的转折期 ...
- 根据指定id取出数组中指定对象
// 需求:根据Id取出数组中指定的对象 let arr = [ { id: 1, rotationAngle: 330, target: '目标1' }, { id: 2, rotationAngl ...
- 在CSS中,link里 的rel="stylesheet"是什么意思?
rel是relationship的英文缩写,它描述了当前页面与href所指定文档的关系:stylesheet就是样式表的意思:CSS是 Cascading Style Sheet(级联样式表)的缩写 ...
- SSRF服务器端请求伪造
SSRF漏洞原理 SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞一般情况下,SSRF访问的目标是从外网无法 ...
- 洛谷P 1427 小鱼的数字游戏
题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...
- eclipse将项目打包成jar在linux中运行
最近因为项目需要,做了几个外挂程序做数据传输,涉及到项目打包操作,在此记录一下打包步骤和其中出现的问题. 1.首先右键项目文件夹,点击export,弹出如下选择框,在其中输入jar搜索,并选择JAR ...
- swagger2使用
添加依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swag ...
- php实现自定义中间logo的微信小程序码
小程序码生成的时候是默认使用小程序后台设置的小程序icon图片的,但是在有些场景我们可能要替换成我们自己想要的icon. 下面先放代码: public function makeNewQrCodeAc ...
- MySQL 8.0.18 在 Windows Server 2019 上的安装(MSI)公开
AskScuti MySQL : Windows Server 2019 安装 MySQL 8.0 温馨提示:为了展现我最“魅力”的一面,请用谷歌浏览器撩我.那个 IE 啊,我很无奈. 一切就绪,点我 ...