mask R-cnn, kaiming he的新作。可以同时完成object detection和segmentation,还可以做pose estimation,简直就是功能多多啊。在coco上测试,超过去年竞赛冠军的水平了,代码会在不久的将来放出来。

如果我没记错的话,facebook的feature cascade(????)在coco上效果是挺好的,但是换到pascal voc上效果就差了不少,这点一直没明白为什么。Mask R-cnn也是只在coco上做的实验,是他们不屑做pascal voc的实验还是又和cascade一样,又是只在coco上效果好?

自大一下,之前在做分割时也测试过,对每一个pixel的二类监督,以及做检测时也有这个,只是还没有分那么多类,那部分工作后来因为忙也没测试。

整体过了一遍文章,有几点需要记住:

1. 框架和faster rcnn是类似的,也就是说如果你不熟悉faster rcnn那么请先阅读faster rcnn

2. 模型主要是加入了mask这部分,就是对Regions,不仅仅进行object detection的监督学习,同时还细化到pixels的监督学习。object detection的监督学习就和faster rcnn类似了,主要是IOU是否大于阈值,以及分类类别是否和gt一致。而pixels的监督学习,是看看regions和segmentation gt的intersection,也是类似于IOU吧,只是计算方式不一样,这个是细化到pixels级别的。

3. RPN的参数并不共享,是先训练RPN,分开训练的mask rcnn,参数并不共享。文中说是为了convinent ablation,我猜测可能不好调试,效果不好?faster rcnn证明联调是好的,虽然理论上解释分开才收敛(汗)。

4. 实验部分做的几个小表格,结果值得注意的。分别分析了不同的模式,结果有什么差别。其中有一点是multinomial vs independent masks是说明了svm这种两类分类的效果要比一下子分好多类的效果好吗?还有class-specific vs class-agnostic masks,这点在google的multibox的工作中也有体现。只是这种好像更适用于不能联调的情况,如果模型可以做到end-to-end好像还是有class的更好的。ROIAlign,这个结果比warp或者pooling好了不少。不过文章中提到的感觉有点笼统,就是不像warp或者pooling那么近似的多了,通过插值,使得roi不发生那么大的偏移?这个大概是分割时特有需要注意的地方。等代码放出来再细看实现细节。

5. 模型的application的鲁棒性,就是同样的框架稍微有点变动就可以用在别的任务上了,其中一个实验就是pose estimation.说到这里,文章写得好像缺了concolusion,意思是这个章节就是concolusion了?恩,其实这么说的话,这个pose estimation也算是个坑。

6. 计算量的问题,8GPU,每个GPU是2minibatch.好像kaiming he在微软的工作是一样的,都是8GPU,因此并行起来16张图一起处理。只是这部分代码一直没公开,我估计这篇mask rcnn即使公开代码,也是一个单机版的。回到测试时间,5fps,还可以,反正比faster rcnn慢,但是这就要看应用和科研的需求了。tradeoff怎么选,当然要看另外一篇google的文章了,Speed/accuracy trade-offs for modern convolutional object detectors(话说,我好像当初还挖了个坑,一直没填,汗!)。

先说我理解到的这或许不算是文中精华的6点精华吧,上传一下文章中的图,结构很清晰,懂faster rcnn的自然就懂这张图了。

mask r-cnn的更多相关文章

  1. CVPR2020:三维实例分割与目标检测

    CVPR2020:三维实例分割与目标检测 Joint 3D Instance Segmentation and Object Detection for Autonomous Driving 论文地址 ...

  2. 谣言检测(RDEA)《Rumor Detection on Social Media with Event Augmentations》

    论文信息 论文标题:Rumor Detection on Social Media with Event Augmentations论文作者:Zhenyu He, Ce Li, Fan Zhou, Y ...

  3. ACL权限设置命令setfacl和getfacl命令

    ACL权限设置命令setfacl和getfacl命令 setfacl命令是用来在命令行里设置ACL(访问控制列表).在命令行里,一系列的命令跟随以一系列的文件名. [TOC] 选项 |参数|说明|   ...

  4. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  5. RCNN--对象检测的又一伟大跨越 2(包括SPPnet、Fast RCNN)(持续更新)

    继续上次的学习笔记,在RCNN之后是Fast RCNN,但是在Fast RCNN之前,我们先来看一个叫做SPP-net的网络架构. 一,SPP(空间金字塔池化,Spatial Pyramid Pool ...

  6. ipvsadm参数详解(常用命令)

    [root@localhost ipvsadm]# ipvsadm -h ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.1) U ...

  7. 行为识别(action recognition)相关资料

    转自:http://blog.csdn.net/kezunhai/article/details/50176209 ================华丽分割线=================这部分来 ...

  8. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  9. 架构设计:负载均衡层设计方案(5)——LVS单节点安装

    1.概述 上篇文章<架构设计:负载均衡层设计方案(4)——LVS原理>(http://blog.csdn.net/yinwenjie/article/details/46845997),我 ...

  10. 164. Maximum Gap

    题目: Given an unsorted array, find the maximum difference between the successive elements in its sort ...

随机推荐

  1. Kubernetes中的nodePort,targetPort,port的区别和意义

    1. nodePort 外部机器可访问的端口. 比如一个Web应用需要被其他用户访问,那么需要配置type=NodePort,而且配置nodePort=30001,那么其他机器就可以通过浏览器访问sc ...

  2. equals()方法 与 == 区别

    equals()方法 与 == 区别 : equals():在字符串中比较内容,则必须使用equals(变量),如果相等则为true,否则为false == :使用==比较的是地址是否一致 class ...

  3. 使用Myeclipse导入IDEA项目

    问题描述:使用Myeclipse导入IDEA创建的Web项目,成功导入,但是显示的是一个普通的JAVA项目,无法加载到tomcat下. 解决方案:右键项目Properties,选择Myeclipse- ...

  4. (转)AIX 用户和组管理

    AIX 用户和组管理 原文:https://www.ibm.com/developerworks/cn/aix/library/au-aixuseradmin/ 管理 IBM AIX 中的用户和组是管 ...

  5. Qt 串口连接

    Qt 串口连接 使用 Qt 开发上位机程序时,经常需要用到串口,在 Qt 中访问串口比较简单,因为 Qt 已经提供了 QSerialPort 和 QSerialPortInfo 这两个类用于访问串口. ...

  6. Windows窗体应用开发3--配置标准控件1

    1.掌握主要的Windows窗体控件的功能 2.掌握使用SplitContainer控件的方法 3.掌握使用TreeView控件的方法 注:新建一个WindowsForm 命名为Form2.cs 主要 ...

  7. 接口调试,HttpWebRequest和HttpWebResponse使用,接口回调处理

    public void queryIdCardSelects { string url=“jiekoudizhi.html”; string param="jiekoucanshu" ...

  8. Django Rest Framework进阶二

    一.版本 版本控制:当程序越来越大,后期需要再加入一些功能或者进行二次开发时就需要加上版本号了. 之前我们在没有接触rest_framework之前一般是以下这种方式来实现的 class UserVi ...

  9. orientationchange事件

    orientationchange事件 resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize':

  10. spoon kettle连接数据库失败解决方法

    Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (ja ...