前言

在SSD中,小目标由较浅的层来检测,大目标由较深的层来检测。SSD虽然能够检测不同尺度的目标,但由于浅层特征只能捕获一些基础的视觉模式,语义信息不充足,因此在检测小目标时的性能不是太好;而浅层特征的不理想也会因此影响高级特征的检测性能。

为了解决上述问题,本文设计了一种新的检测网络,称为DES(Detection with Enriched Semantics),它主要包含两个分支:

  • 检测分支:就是目标检测网络中经典的检测器,以VGG16作为backbone,在不同层的特征图上进行检测;
  • 分割分支主要用于增强低级特征的语义信息。它以低级特征作为输入,通过bbox-level segmentation gt作为监督来学习语义分割的信息,然后利用该分支中的语义特征来增强低级特征。下图说明了分割分支进行语义增强的过程。A是输入图像,B是原始低级特征,C是分割分支中的语义特征,D是增强后的低级特征。B被C激活(增强)之后得到D,D能够同时捕获目标的基础视觉模式和语义信息。这可以看作是attention过程。

除此之外,本文还提出全局激活模块(global activation module)它主要用于增强高级特征。它主要由几个全局激活块(global activation block)组成,全局激活块能够以一种自监督的方式学习特征通道与目标类别之间的关系,从而增强高级特征的语义信息。


网络结构

DES的整体结构如下图所示:

  • 检测分支:如图的上半部分,采用SSD作为检测分支;
  • 分割分支:如图的左下部分,分割分支被添加到第一个预测层conv4conv4conv4_333中,采用bbox-level segmentation label对分割任务进行监督。图中黑色的箭头是输入流,即以conv4conv4conv4 _333作为输入,然后生成经过增强的低级特征conv4conv4conv4 _3′3^{'}3′,替代原始特征图进行后续的检测,也就是图中的红色箭头,表示输出流。
  • 全局激活模块:如图的右下部分,由于高级特征的分辨率较低,因此很难在它们上面进行分割任务,全局激活模块就是为了增强高级特征的语义信息。

1. 低级特征的语义增强

低级特征的语义增强是通过分割分支实现的,这里的语义分割采用的是弱监督的形式,即不再是pixel-level annotation,而是bbox-level annotation,使用bbox-level segmentation gt作为监督。

设X∈RC×H×WX \in \Bbb R^{C \times H \times W}X∈RC×H×W是低级特征图conv4conv4conv4 _333,G∈{0,1,2,...,N}H×WG \in \lbrace 0,1,2,...,N \rbrace ^{H \times W}G∈{0,1,2,...,N}H×W是segmentation gt,那么预测的分割结果YYY就为:

YYY满足:

通过以上两个式子可以得到中间结果g(X)∈RC′×H×Wg(X)\in \Bbb R^{C^{'} \times H \times W}g(X)∈RC′×H×W,它可以用于生成语义特征图ZZZ:

这个ZZZ用于激活原始低级特征图XXX:X′=X⨀ZX^{'}=X \bigodot ZX′=X⨀Z,X′X^{'}X′就是增强后的低级特征图,它会取代检测分支中的XXX进行后续的检测。

分割分支的处理过程如下图所示:

从中间特征图g(X)g(X)g(X)开始,出现两条分路:

  • 第一条FFF路径用于生成分割预测YYY,它采用1×1×(N+1)1 \times 1 \times (N+1)1×1×(N+1)的卷积层,后跟softmax层;
  • 第二条HHH路径用于生成语义特征图ZZZ,采用1×11 \times 11×1的卷积,通道数与XXX相同,生成的ZZZ以element-wise相乘对XXX进行激活。

然后说一下分割模块中gt的生成。如果某个像素点GhwG_{hw}Ghw​位于某bbox内,就将该bbox的标签分配给GhwG_{hw}Ghw​;如果GhwG_{hw}Ghw​位于多个bbox内,哪个bbox最小,就把该bbox的标签分配给GhwG_{hw}Ghw​;如果GhwG_{hw}Ghw​没有位于任何bbox内,就认为它是背景。这样可以保证GGG中的每个像素只会被分配一个标签。

如上图所示,如果某个像素点同时落入person和horse的bbox中,那么该像素点会被分配person的标签

2. 高级特征的语义增强

全局激活模块主要包含三个阶段的操作:

  1. 空间池化:给定输入X∈RC×H×WX \in \Bbb R^{C \times H \times W}X∈RC×H×W,空间池化操作能够得到ZZZ,其维度是CCC:

  2. channel-wise learning:生成激活图(activation map),其中W2∈RC×C′,W1∈RC′×CW_2 \in \Bbb R^{C \times C^{'}},W_1 \in \Bbb R^{C^{'} \times C}W2​∈RC×C′,W1​∈RC′×C,默认C′=14CC^{'}=\frac{1}{4}CC′=41​C:

  3. broadcasted multiplying:用SSS和XXX相乘得到X′X^{'}X′,Xihw′=Xihw⋅SiX^{'}_{ihw}=X_{ihw} \cdot S_iXihw′​=Xihw​⋅Si​,最终X′X^{'}X′会替换检测分支中的XXX以进行后续的检测。

3. 多任务训练

在训练时,分割任务使用的是交叉熵损失,原始的目标检测损失为Ldet(I,B)L_{det}(I,B)Ldet​(I,B),将这两个结合起来,可以得到新的损失函数为:

最终需要优化的目标函数为:


结论

本文是对SSD的改进,分割分支采用弱监督语义分割来为浅层特征提供丰富的语义信息,全局激活模块用于为高级特征提供全局上下文信息,提高高级特征的检测能力。

Single-Shot Object Detection with Enriched Semantics 论文笔记相关推荐

  1. Single shot object detection SSD using MobileNet and OpenCV

    微信公众号:小白图像与视觉 关于技术.关注yysilence00.有问题或建议,请公众号留言. 主题:Single shot object detection SSD using MobileNet ...

  2. 《Single-Shot Object Detection with Enriched Semantics》论文笔记

    1. 概述 导读:这篇文章提出了新的一阶段检测算法Detection with Enriched Semantics(EDS),该算法在检测网络中通过semantic Segmentation bra ...

  3. Single-Shot Object Detection with Enriched Semantics

    转载于:https://www.cnblogs.com/ya-cpp/p/9279235.html

  4. (DES)Single-Shot Object Detection with Enriched Semantics

    Introduction des网络是SSD的另一个改版,它也考虑到高分辨率的特征语义低, 对于SSD直接使用这些特征分类效果差的问题提出了对低层特征图训练语义分割网络,并与网络得到的显著图进行元素相 ...

  5. ECCV 2020 DETR:《End-to-End Object Detection with Transformers》论文笔记

    目录 简介 动机 贡献 方法 实验 简介 本文出自FaceBook AI,方法很新颖,不同于已有的R-CNN一系列,也不同于Yolo一系列,也不同于FCOS.CenterNet等最新的Anchor F ...

  6. Unifying Voxel-based Representation with Transformer for 3D Object Detection (UVTR)论文笔记

    原文链接:https://arxiv.org/abs/2206.00630 1.引言 统一表达对多模态的知识迁移和特征融合是必不可少的. 目前的统一表达可大致分为输入级和特征级的.输入级方法在网络开始 ...

  7. Detection with Enriched Semantics(DES)算法笔记

    论文:Single-Shot Object Detection with Enriched Semantics 论文链接:https://arxiv.org/abs/1712.00433 Detect ...

  8. DES(Detection with Enriched Semantics)算法详解

    DES算法详解 论文背景 实验结果 算法简介 算法结构 语义信息增强过程 与之前算法的区别 算法细节 Semantic enrichment at low level layer Semantic e ...

  9. Sparse R-CNN: End-to-End Object Detection with Learnable Proposals论文翻译

    Sparse R-CNN: End-to-End Object Detection with Learnable Proposals论文翻译 摘要 1.介绍 2.相关工作 3.Sparse R-CNN ...

最新文章

  1. JUnit报initializationError的解决方法
  2. vs2010常用快捷键
  3. HBase 2.0 之修复工具 HBCK2 运维指南
  4. [JSP暑假实训] 一.MyEclipse安装及JAVA基础知识
  5. geoserver发布瓦片_Geoserver2.15.1配置自带GeoWebCache 插件发布ArcGIS Server瓦片
  6. 从源码分析RocketMQ系列-Producer的invokeSync()方法
  7. Java优先级队列PriorityQueue
  8. 【Android开发】之编译脚本Makefile编写
  9. 2021年度训练联盟热身训练赛第二场(ICPC North Central NA Contest 2019,南阳师范学院),签到题ABCDEFGIJ
  10. caffe上手:使用INRIA行人数据集对BVLC Caffe进行fine-tuning
  11. pano2vr.exe下载
  12. U-Net-Convolutional Networks for Biomedical Image Segmentation论文翻译——中文版
  13. oracle 索引详解 注:转自红黑联盟非原创
  14. VBA学习之一:基本知识
  15. 广东外语外贸大学教务系统一键查分
  16. Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012
  17. centos7 ceph 集群部署
  18. kinectfusion解析_2019/02/09 对于KinectFusion 的理解
  19. 威锋网金狮奖落下大幕,2017年度科技榜单出炉
  20. 华为笔记本matebook13_华为MateBook 13酷睿i3版体验:极致的2K屏轻薄笔记本

热门文章

  1. 100个精选Python实战项目案例,初学者练手必备
  2. cluego使用说明_生信分析绘图神器,你值得拥有!
  3. 三分钟搞明白Java内存分布,再也不怕了!!!
  4. Synchronized相关的面试题
  5. jquery.uploadify php,jquery插件uploadify使用详解
  6. 怎样开始入门学计算机,新手如何开始学电脑 新手学电脑从何入门
  7. 数据库应用——DQL查询数据(连表查询 子查询 详细案例)
  8. loopback接口介绍
  9. Spring学习笔记之MyBatis
  10. java不死神兔总数_Java基础知识强化之IO流笔记13:递归之不死神兔问题(斐波那契数列)...