整合一下能够查到的资料,然后结合自己的理解,算是对这篇文章的一个小小的总结吧。这是CVPR2018的一篇关于小目标检测的文章,出发点是作者认为小目标的检测信息随着层数的增加而不断地丢失了,所以想利用语义分割强化浅层的特征信息(这里强化可能用得不准确,但是我是这么理解的)。整体的网络框架分为三个部分Detection Branch (这里简称DB)+ Segmentation Module (这里简称SM)+ Global Activation Module(这里简称GAM)。SM和GAM本质上都是采用的语义分割的方式增强语义信息并且随着SSD往更高层进行传递。

整体结构框图:

操作过程以DB为主框架:1、在浅层网络中选择SM增强low level特征的语义信息。SM模块的输入是DB主框架的con4_3输出以及用anchor定义的语义分割ground truth, 输出再返回到con4_3作为下一层的输入,这样就可以将低层的语义分割结果融合到高层特征信息中。2、高层通过GAM增强high level的特征语义信息,GAM本质上也就是attention的思想,首先计算特征权重然后根据权重来融合多尺度的特征信息。

SM模块是这篇论文中重点强调的一个模块,这个部分主要有两个作用,通俗点理解就是产生增强的语义信息并且通过训练使得输出的语义信息增强效果越来越好。其中H支路是输入x在经过4个atrous convolution(既保证了特征图的尺寸不变,也能减少卷积过程中的噪声)卷积之后经过H()函数操作得到类似attention中的mask z,最后x与z做点乘得到,且以为后续检测工作的输入。F支路的作用是利用损失函数训练H支路得到的attention,和分割算法类似,分割算法是针对每个像素点做分类,在F支路中训练所用的ground truth中的每个像素点的标签为对应ground truth框的标签,如果一个像素点同时在多个ground truth框中,则该点的标签为面积最小的那个框的标签,其他情况的点标签都是背景。

网上有一大堆对于sm模块的公式分析,关于通道数以及维度之类的,个人觉得文章中提到的一大串公式里,最能体现出和语义分割关系的是公式:

F支路最后的输出Y中每个点的通道数为N+1,这里的特征投影中每个点在所有的channel上的累加和为1,而且值最大的那个点对应的标签就是分割得到的图像中对应点的标签。

图4表示ground truth的生成方式,图像中像素的标签不需要额外再标注,图2表示segmentation module,A是输入图像,B是输出图像经过特征提取之后的feature map,C是对应的输出Z,D是B和C点乘之后的结果,也就是文章强调的需要增强的小目标的语义特征。

由GAM模块的计算公式就可以很直观的看出来和语义分割非常像,这个模块主要包含三个操作:spatial pooling相当于给输入的特征图做了归一化处理,而channel-wise learning则是利用两层激活函数突显了特征图的权重信息,最后的broadcasted multiplying将S和输入x点乘得到最后的输出,类似于attention的思想。

整个损失函数包括检测的损失函数和分割损失函数,分割的损失函数就是文章设计的SM模块中的训练损失函数。整体实验效果虽然比同年CVPR的另外一篇文章低一点,但是结果还是很好的。

Single-Shot Object Detection with Enriched Semantics的更多相关文章

  1. Single Shot Multibox Detection (SSD)实战(下)

    Single Shot Multibox Detection (SSD)实战(下) 2. Training 将逐步解释如何训练SSD模型进行目标检测. 2.1. Data Reading and In ...

  2. A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection

    作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6817781.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...

  3. Single Shot Multibox Detection (SSD)实战(上)

    Single Shot Multibox Detection (SSD)实战(上) 介绍了边界框.锚框.多尺度对象检测和数据集.现在,我们将利用这些背景知识构建一个目标检测模型:单次多盒检测(SSD) ...

  4. deep learning on object detection

    回归工作一周,忙的头晕,看了两三篇文章,主要在写各种文档和走各种办事流程了-- 这次来写写object detection最近看的三篇文章吧.都不是最近的文章,但是是今年的文章,我也想借此让自己赶快熟 ...

  5. SSD: Single Shot MultiBox Detector

    By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexande ...

  6. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  7. Object Detection︱RCNN、faster-RCNN框架的浅读与延伸内容笔记

    一.RCNN,fast-RCNN.faster-RCNN进化史 本节由CDA深度学习课堂,唐宇迪老师教课,非常感谢唐老师课程中的论文解读,很有帮助. . 1.Selective search 如何寻找 ...

  8. 谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

    视频中的物体识别 摘要 物体识别(Object Recognition)在计算机视觉领域里指的是在一张图像或一组视频序列中找到给定的物体.本文主要是利用谷歌开源TensorFlow Object De ...

  9. object detection[content]

    近些年,随着DL的不断兴起,计算机视觉中的对象检测领域也随着CNN的广泛使用而大放异彩,其中Girshick等人的<R-CNN>是第一篇基于CNN进行对象检测的文献.本文欲通过自己的理解来 ...

随机推荐

  1. N042第一周

    1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. slackware:SUSE Linux Enterprise Server,OpenSuse debian:ubuntu,dee ...

  2. Knative 实战:如何在 Knative 中配置自定义域名及路由规则

    作者 | 元毅 阿里云智能事业群高级开发工程师 当前 Knative 中默认支持是基于域名的转发,可以通过域名模板配置后缀,但目前对于用户来说并不能指定全域名设置.另外一个问题就是基于 Path 和 ...

  3. Creator 2.2.0 终于等来了这款Shader组件神器!一招搞定Effect特效

    先看下视频演示: ShaderHelper2支持Creator 2.2.0 视频录完后才想起,还没在微信小游戏中测试,赶紧试试,下面是在微信开发者工具中的截图. 径向模糊 探照灯 提供了一个Shade ...

  4. 基于jquery,php实现AJAX长轮询(LongPoll),类似推送机制

    HTTP是无状态.单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应.若要实现聊天室.WEBQQ.在线客服.邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)” ...

  5. Python网络爬虫之cookie处理、验证码识别、代理ip、基于线程池的数据爬去

    本文概要 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时, ...

  6. JavaFX简介和Scene Builder工具的安装使用简易教程

    JavaFX概述和简介 富互联网应用是那些提供与Web应用程序类似的功能,并可作为桌面应用程序体验的应用.与用户的正常网络应用程序相比,它们提供更好的视觉体验.这些应用程序可作为浏览器插件或作为虚拟机 ...

  7. (Java) RedisUtils

    package com.vcgeek.hephaestus.utils; import org.springframework.beans.factory.annotation.Autowired; ...

  8. python基础-字符串(str)类型及内置方法

    字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ...

  9. Git学习以及使用

    最近学习了下git的使用,不得不感叹真的是甩了svn几条街 官网下载实在太慢,附加一个网站方便大家下载https://github.com/waylau/git-for-win 安装好后打开Git B ...

  10. 关于self

    关于self 就像C++的this 但是不同之处是他不是关键字,只代表第一个参数,可以用任何一个普通变量代替 self在对象的方法中表示当前对象本身,如果通过对象调用一个方法,那么该对象会自动传入到当 ...