对抗网络之目标检测应用:A-Fast-RCNN

news/2024/7/10 1:36:12 标签: A Fast RCNN, OHEM, 目标检测, Hard Example, 对抗网络

对抗网络目标检测应用:A-Fast-RCNN

       论文:A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection 【点击下载】

       Caffe代码:【Github】


一. 深度学习正确的打开方式

       深度学习的根基在于样本,大量的样本决定了深度网络的精确度和收敛性,针对样本的挖掘是深度学习的一个重要研究方向,这里我们先回顾两个概念 Easy Example 和 Hard Example

Easy Example:

       直观上来讲,太易于识别的样本对于训练来讲意义并不太大,有一部分就够了,因为太明显了嘛,傻子都认识;

Hard Example

       比较难以区别的样本,比如目标在 变形、遮挡、逆光 等情况下的 Performance,别人不说你都不认识那种。

       样本挖掘 通常是找出样本中的 Hard Examples,用来提高网络对于目标的判别能力,讲到这里,可能大多数人都会 Refer 到经典的 OHEMonline hard example mining 。

       论文:Training Region-based Object Detectors with Online Hard Example Mining【点击下载】

       Caffe代码:【Github】


二. OHEM

       传统机器学习中训练 SVM 的时候,通过初始的分类器进行分类(检测)测试,得到的误报即称为 Hard Example,将其加入到训练样本中,重新训练分类器,这种方法称为 Bootstrap(自举)。

       OHEM 就是 BootStrap 方法在深度卷积网络中的应用。

       先来看网络架构图:

        

       这是基于 Fast RCNN 的结构进行改造的,卷积网络的上半部分是 Fast RCNN 的网络。修改加工的地方在于:

1)添加了一个 Hard ROI Sampler,用于挖掘 Loss 比较大的 Proposal;

2)为了加快速度,复制了一个 ROINet,两个子网络-图中 (a)和(b)共享参数;

      (a) 只做正向传播 forward,标注为 Read-only;

      (b) 根据 Sampler 传回的结果(hard examples),同时进行正反向传播 - 红色部分。

       与原网络的差异在于 通过 Sampler 对 Loss 结果进行排序,将Loss最大的 k个作为 Hard Examples,进行误差回传,这样做的意义在于充分利用了 Hard Examples,增加了网络的辨识度。


三. 对抗网络引入

       当下生成式对抗网络(GAN)大热,而 GAN 的最核心的作用就是造假,造的假的越来越接近真的,逼迫 “Detector” 不断突破自我来进行判别。

       GAN在最后生成的这些 Example 就可以称为 Hard Example

       将对抗学习和Fast R-CNN结合,来增加遮挡和姿态变化的物体的数量,这种做法可行性在于:

1)实际样本中可能这种情况比较少;

2)现实搜集的样本仅包含部分场景,很难 cover 多数的遮挡和变形情况;

      作者提到一个长尾效应,20%的场景在80%的情况下不会出现,来看下图:

        

       因此,通过自动生成的方式来获得这些样本将变得很有意义,可以通过这些样本来 Teach 网络什么是“遮挡”和“变形”,区别于传统的直接生成样本图片的方法,作者采用的是在特征图上进行“某些”变换:

a)通过添加 Mask来实现实现特征的部分遮挡;

b)通过操纵特征响应来实现特征的部分变形;

 > Adversarial Spatial Dropout Network

       处理遮挡的对抗网络,通过 Mask(Dropout)来实现,网络结构:

        

       网络结构基础是 Fast RCNN 网络,在阴影部分做了一些处理:

1)添加了一个 Mask层,作为遮挡掩码,并通过前面两个FC层来生成 Mask,共同构成对抗网络部分;

2)根据 Loss 选择 Mask;

       Occlusion Mask 是二值掩码(值为0或1),大小与传入的 Feature 一致,假设ASDN的输入特征图是d×d×c(AlexNet中,d=6,c=256),对应 Mask 尺寸也是 d×d。对应像素 Mij 值为1时,drop 所有特征通道对应的特征。

训练过程:

1)模型预训练:首先屏蔽掉 ASDN 部分,单独训练 Fast RCNN 网络 10k 次;

2)ASDN 网络初始化:

      通过 d/3×d/3 的滑动窗口(原特征图的1/9)进行遮挡测试,每个特征图会得到10种不同的遮挡情况(包括完全不遮挡,如下图),生成的新特征图通过 Fast RCNN 判别,选择损失值最高的那个为最优(因为它最能骗过分类器)。

      将选择的 Grid 最优的样本和对应 Mask组成训练样本{(X1,M1), (X2,M2), ……,(Xn, Mn)},Loss 函数描述为:

      

      其中 Aij 表示对应特征图 Xp 在 i,j 位置对应的输出。

      ASDN 单独训练 10k 次。

3)阈值采样

      通过上面的训练过程,我们得到一个连续的热度图(不再是二维掩码),或者叫灰度图,作者选择其中影响最大的1/3来生成mask(不是固定阈值),这里采用了一个 Trcik,先选择最大的 1/2  ,再从里面选取 2/3 set to 0,这个不重要。

4)联合训练

      将 Fast RCNN 与 ASDN 进行联合训练(joint training)。

      受强化学习的启发,只采用 hard examples mask 来训练 ASDN。

   

 > Adversarial Spatial Transformer Network

       处理形变的对抗网络,通过在特征图上产生形变,让检测器难以判别。

    STN回顾:

       包含三个部分:定位网络(localisation network)、网格生成器(grid generator)和采样器(sampler)

       定位网络 估计形变参数(如旋转、平移距离和缩放因子),网格生成器 和 采样器 会用到这些参数来产生形变后的特征图。

       STN 的贡献在于生成的网络是可微的,这样定位网络的参数可以通过分类目标的残差回传得到,具体内容参考论文:Spatial Transformer Networks 。

   Aversarial STN:

       这里只关注旋转特征,其中定位网络由3个全连接层构成,前两层是由fc6和fc7初始化得到。

       与 ASDN 类似,ASTN 和 Fast R-CNN 也需要联合训练,如果ASTN的变换让检测器将前景误判为背景,那么这种空间变换就是最优的。与 ASDN 不同的是,由于 ASTN 是可微的,我们可以直接通过分类误差反向传播,fine-tune 定位网络的参数。

   执行细节:

       首先旋转角度不能太大(太大了肯定识别不出,没什么意义),文中把旋转角度限制在(-10,10),同时,按照特征图维度将Channels 划分为 4个 parts(对应4种不同的旋转方向),这样可以增加旋转操作的复杂性,避免 Trivial 变形。

   对抗网络融合:

       ASDN 和 ASTN 提供了两种不同的变化,通过将这两种变形相结合(ASDN 输出作为 ASTN 的输入),检测器可以训练的更加鲁棒。


 > 实验结果

       在 VOC2017 上的测试结果(可以对比一下单独的 ASDN 和 ASTN 的网络,以及两者都采用的 mAP):

        

       作者分别进行了 遮挡 和 变形方法的对比:

1)Table2 是针对 4种丢弃策略进行对比,得到最好的效果是 ASDN联合训练 的结果;

2)ASTN 和 随机抖动(random jittering)做了对比,发现使用AlexNet,mAP分别是58.1%h和57.3%,使用VGG16,mAP分别是69.9%和68.6%,ASTN 的表现都比比随机抖动效果好。

       作者对不同类别进行了分析:

        

       可以看到,有一些种类的 AP 是下降的,有好也有坏,但功大于过。好的原因在于测试样本中可能出现了比较多的遮挡和形变情况;降低的原因在于对于正常目标的特征抽象能力下降。

        定性分析:某些遮挡样本 可能会导致错分的情况(这是一把双刃剑啊),也就是说,过尤不及,当你想对目标特征的兼容性太强的时候,走向了另一个极端。

        

       另外,作者给出了在 VOC2012 和 MS COCO 下的测试结果,都较原来有显著提高。

OHEM 对比:

       本方法和 OHEM(Online Hard Example Mining)有些类似,都属于对 Hard Example 的挖掘,区别在于本方法是创建并不存在的Hard Positive 样本,而 OHEM 则是挖掘利用现有的 所有 Hard 样本,现实意义更高。

       测试结果:在VOC 2007数据集上,本文方法略好(71.4% vs. 69.9%),而在VOC 2012数据集上,OHEM更好(69.0% vs. 69.8%)。作者又做了实验,VOC 2012数据集下,our approach+OHEM(71.7%),two OHEM(71.2),two our approach(70.2%),发现两个 OHEM 和 两个 our models 效果都不如混合效果好,说明这两种方法可以有效互补。

Conclusion:

       将对抗网络引入目标检测,确实开了先河,估计以后还会有人在此基础上进一步改进。

       从改善效果上来讲,并不比 OHEM 有多好的效果,也许是仿造的数据和真实性还存在差距,也许是真实世界的长尾并没有太多的影响,anyway,也许像大家说的一样,“学术意义大于工程意义”,就看接下来的童鞋如何 Follow 和改进了。


http://www.niftyadmin.cn/n/904599.html

相关文章

NAND FLASH

NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个…

Linux学习第十二篇之网络命令write、wall、ping、ifconfig

一、write命令: 命令名称write命令所在路径/usr/bin/write执行权限所有用户语法write [用户名]功能描述给用户发信息,以CtrlD保存例如:write user1 注意:只能给在线用户发送消息 二、wall命令 命令名称wall命令英文原意write all命令所在路径…

DenseNet:更接近于真实神经网络的跨层连接

一. 提出背景CVPR2017 的 Best Paper,简单大气上档次!论文:Densely Connected Convolutional Networks 【点击下载】Caffe代码:【Github】受 Highway、ResNet 等算法思路的启发,提出一种跨层的连接网络,思路…

今天学习的小命令

批量创建2019年每日的文件夹&#xff1a; mkdir 2019-{0{1..9},{10..12}}-{0{1..9},{10..31}}&&rm -rf 2019-{0{4,6,9},11}-31 && rm -rf 2019-02-{29..31} 将cat输入的内容保存到a.txt文件中 [roota wgk]# cat <<EOF >a.txtnihaoma?welcome to chin…

彩色复合视频信号DECODE图像质量不好的原因

在复合视频信号里&#xff0c;彩色信息与灰度信息共享一个带宽&#xff0c;一个正弦波幅度和相位的变化&#xff0c;代表传输图像的色度信息&#xff0c;如图1所示。因此&#xff0c;为了正确地显示图像&#xff0c;必须分离灰度和色度信息。 图1 在复合视频信号里&#xff0c;…

NoScope:极速视频目标检测

一.提出背景在基于CNN的方法提升到一个很高的准确度之后&#xff0c;效率又成为人们所关注的话题&#xff0c;目前兼备准确度和效率的方法包括 SSD、YOLO v2&#xff0c;其检测效率通常能到达 30-100FPS&#xff0c;而这里面的代价就是上万块的显卡&#xff0c;这个代价是相当高…

java_变量和常量

一、变量&#xff08;可以改变的量&#xff09; 1.命名规则&#xff1a; a.遵循标识符命名规则: 1.关键字是不能用作标识符的 2.区分大小写 3.可以包含数字、字母、下划线、美元符号$,但是不能以数字作为开头 b.尽量使用有意义的单词 c.一般首字母小写 例如:int speed; boolean…

Mark 一些有意思的深度学习方向

1. VQAVisual Question Answering&#xff0c;给出一张图片&#xff0c;就该图片提出任何问题&#xff1f;自动get到你所期望的答案。这属于Visual Reasoning 的范畴&#xff0c;学者们不满足于传统的图像识别、分割、Caption等工作&#xff0c;尝试去挖掘更高级的机器推理能力…