Facebook AI Research 的文章,刚刚开源到github,代码: https://github.com/facebookresearch/deepmask 。其开源代码主要来自于两篇文章,想学习一下这个代码,还是先把出处的两篇文章看完吧。

简介与思想:
经典的目标检测系统主要包括两个部分:提取proposal、将每一个候选proposal输入进行目标分类。本文则提出另一种思路:基于discriminative convolutional network的方法。

该模型将两个部分进行合并:输入图像patch,输出一个segmentation mask;然后第二部分判断是一个特点目标的可能性大小。在test时候,模型可以产生一系列segmentation mask,每一个mask对应是各种目标的可能性分数。实验证明,该模型显著优于proposal算法。同时,该方法的recall精度十分突出,并且可以检测出训练时没有出现的类别。

对于proposal算法来说,重点在于以下几点:高recall(proposed regions应该最大程度包含可能存在目标的区域);regions的数量整体尽可能少;regions应该与目标精确一致。

现有proposal算法分类:1)目标打分:通过对bounding box的打分确定proposal

2)种子点分割:multiple seed regions开始,产生分离的前景-背景分割作为每个种子点

3)超像素融合:用各种heuristics算法对过度分割进行融合。

不同proposal算法的不同主要在于产生proposal方法(bounding box/segmentation mask)和proposal是否进行排序。本文的主要不同在于和一般的segmentation mask产生proposal方法相比,本文并不适用low-level segmentation,而是使用deep-network结构。即产生segmentation的proposal部分已经使用深度网络。

本文认为该算法优于其他。

样本包含3个部分:1)输入RGB图像patch:Xk;

2)对应图像patch的二维mask:Mk,Mk为{1,-1};

3)标签:Yk,Yk为{1,-1},来指明是否patch含有目标。

当一个patch Xk赋予的标签Yk=1,则说明他满足以下条件:1)输入patch大约中心包含目标;2)目标满满存在并在指定的尺度大小范围内。否则,即便目标一部分存在,Yk=-1。

网络结构:

上图为本文的模型结构。其中,本文使用的网络结构(图中的前半部分)是VGG-A结构(包含8个3*3的卷积层,5个2*2的max-pooling层)。由于卷积层特征图提供的空间信息对于分割的重要性,本文去除了最后一个max-pooling层,因此最终使用4个pooling层的结构。

Segmentation:分割部分的网络如图中所示,由一个单独的1*1卷积层(包含ReLU非线性层)+分类层组成。分类的classification layer由h*w个像素分类器组成,每一个负责识别给定的像素是否属于patch中心的目标。每一个像素分类器都要能够充分利用整个feature map的信息,来获得对目标的完整的view。这里注明:和语义分割不同的是,本文的网络旨在获得单一目标,而不是多个目标。

这里还存在一个问题,每一个分类器只有一个对于目标的partial view,因此最后的分类器将存在大量多余参数。因此这里讲分类层改成2个线性层+1个非线性层,来减少参数。同时进一步降采样减少h*w的输出尺度来配合输入维度。

Scoring:这部分主要用来判断该图像patch满足条件:1)输入patch中心包含目标;2)在指定的尺度大小范围内。这部分主要由2*2的max-pooling层+2个全连接层(含ReLU非线性层)组成,输出为一个反应目标是否在输入patch中心的可能性分数。

Loss函数:

每个位置(Xk, Mk, Yk)的segmentation 网络+object分数的和。

从loss函数可以看出,网络尝试在每一个patch处产生一个segmentation mask,甚至当no known object is present.

Full Scene Inference:

有多个位置和尺度时,考虑解决方案是十分必要的。这里通过在多个location和scale下应用模型解决。下图展示了在单一图像尺度下多次运用模型下的segmentation输出(主要是在最后的全连接层得到特征图上多次处理得到分割结果):

后面略去一些实施过程中的参数设置等具体问题,作者在文章中有非常仔细的介绍。

思路与结构部分的码字到此结束,实验结果如下图,具体实验结果的分析下篇详细介绍。
--------------------- 
作者:潇湘_AQ 
来源:CSDN 
原文:https://blog.csdn.net/u012905422/article/details/52335697 
版权声明:本文为博主原创文章,转载请附上博文链接!

论文精读 Learning to Segment Object Candidates(一)相关推荐

  1. Learning to Segment Object Candidates

    看下源代码 class DeepMask(nn.Module):def __init__(self, config=default_config, context=True):super(DeepMa ...

  2. 论文精读 《CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection》

    CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection 文章目录 CaDNN: Categori ...

  3. 分割候选区域--FastMask: Segment Multi-scale Object Candidates in One Shot

    FastMask: Segment Multi-scale Object Candidates in One Shot CVPR2017 https://github.com/voidrank/Fas ...

  4. 论文精读 ——《BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection》

    文章目录 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection 论文精读 摘要(Abstract·) 1 ...

  5. 论文精读——CenterNet :Keypoint Triplets for Object Detection

    论文地址:https://arxiv.org/abs/1904.08189 论文代码:https://github.com/Duankaiwen/CenterNet 发布时间:2019.4.17 发布 ...

  6. DSOD: Learning Deeply Supervised Object Detectors from Scratch论文

    学习目标: DSOD: Learning Deeply Supervised Object Detectors from Scratch 从0开始检测训练对象网络!! 学习时间: 啊哈,偷懒了好久啊哈 ...

  7. [深度学习论文笔记DoDNet: Learning to segment multi-organ and tumors from multiple partially labeled datasets

    DoDNet: Learning to segment multi-organ and tumors from multiple partially labeled datasets DoDNet:学 ...

  8. 论文精读《OFT: Orthographic Feature Transform for Monocular 3D Object Detection》

    OFT: Orthographic Feature Transform for Monocular 3D Object Detection 文章目录 OFT: Orthographic Feature ...

  9. 李沐论文精读: ResNet 《Deep Residual Learning for Image Recognition》 by Kaiming He

    目录 1 摘要 主要内容 主要图表 2 导论 2.1为什么提出残差结构 2.2 实验验证 3 实验部分 3.1 不同配置的ResNet结构 3.2 残差结构效果对比 3.3 残差结构中,输入输出维度不 ...

最新文章

  1. 4GL之Non-SCROLLING CURSOR
  2. python iot平台_Python MQTT连接到Azure Iot中心
  3. Ubuntu 16.04 GNOME在桌面左侧添加启动器(Launcher)
  4. linux字符串转大写_在 Linux 命令行中转换大小写
  5. 封装caffe-windows-gpu(支持模型有多个输出)
  6. 消息队列遥测传输(MQTT)介绍
  7. JavaScript 是一种什么样的语言
  8. java中== 和 .equals()的区别
  9. 语言程序设计第4版黄洪艺_庞皓计量经济学第4版题库
  10. 【java与智能设备】01_2Android简介与环境搭建——开发环境
  11. 安装Numpy的简单方法
  12. 广州数控车床M代码指令讲解
  13. 图像处理: 超像素(superpixels)分割 SLIC算法
  14. react + hooks 中使用aliplayer
  15. QQ应用自动登录最小化功能
  16. Scrapy框架:Request和Response对象,使用Request发送get请求、FormRequest发送post请求
  17. Dual UOM in Oracle EBS
  18. unity实现点线智能连接+1
  19. 【Skynet】开始创建服务的代码流程
  20. “躲不开”的科技革命,第一季:远离舒适区!

热门文章

  1. komodo edit linux,Komodo Edit是什么
  2. 【c语言】蓝桥杯算法提高 JOE的算数
  3. 【c语言】蓝桥杯算法提高 c++_ch02_04
  4. 软件测试用户故事评审实验报告,软件测试评审题目.doc
  5. 模拟撞击_研究人员打造出能让橄榄球头盔承受住反复撞击的液态纳米泡沫
  6. 添加时间数据时 出现多一天或者少一天的问题 解决方案
  7. (多图) 基于并行流水线结构的可重配FIR滤波器的FPGA实现
  8. 屏幕元素属性的控制盒屏幕事件的中止
  9. 4、Eternal框架-持有者
  10. 【星辰傀儡线·命运环·卷二 尘埃】 3 誓言