UnitBox An Advanced Object Detection Network

UnitBox An Advanced Object Detection Network

在目前的物体检测系统中,利用深度卷积神经网络(CNNs)来预测物体候选的边界框,与传统的区域建议方法相比,获得了性能上的优势。然而,现有的深度CNN方法假设对象边界为4个独立变量,可分别由 l 2 l_2 l2 loss进行回归。这样一个过度简单的假设与广受好评的观察结果相反,即这些变量是相关的,导致定位的准确性降低.为了解决这个问题,我们首先引入了一种新型的Intersectiono ver Union(IoU)损失函数用于边界框预测,它将预测框的四个边界作为一个整体单位进行回归。

利用IoU损失和深度全卷积网络的优点,引入了UnitBox,它能够精确有效地定位,对不同形状和尺度的物体具有鲁棒性,收敛速度快。我们将UnitBox应用于人脸检测任务中,在FDDB基准测试中获得了所有已发布方法中性能最好的。

1. INTRODUCTION

视觉目标检测可以看作是两个任务的组合:目标定位(对象所在位置)和视觉识别(对象的外观)。虽然深卷积神经网络(CNNs)在视觉目标识别方面取得了重大突破[3],[11],[13],但基于CNN的目标检测器也在广泛的应用中取得了最新的成果,如人脸检测[8],[5]、行人检测[9],[4]等[2],[1],[10]。

目前,大多数基于CNN的对象检测方法[2][4][8]可以概括为三步流水线:首先,从给定图像中提取区域提案作为对象候选。流行的区域提案方法包括Selective Search[12]、EdgeBoxes[15]或级联检测器的早期阶段[8];其次,将提取的提案送入深度CNN进行识别和分类;最后,采用边界盒回归技术将粗提案重新划分为更精确的对象边界。在这个流水线中,区域提案算法构成了效率的主要瓶颈。一方面,传统的区域建议算法只具有低层特征,对局部外观变化(如局部遮挡)非常敏感,这些算法很容易失败。另一方面,这些方法中的大多数通常基于图像过分割[12]或稠密滑动窗口[15],这些方法的计算成本很高,并且妨碍了它们在实时检测系统中的部署。

为了克服这些缺点,最近还应用深度CNN来生成对象提案。在著名的Faster R-CNN方案[10]中,训练了一个区域提案网络(RPN)来从锚箱中预测对象候选的边界框。但是,由于锚框的尺度和长宽比是预先设计和固定的,因此RPN表现出难以处理形状变化较大的对象候选物,特别是对于小对象。

在这里插入图片描述

另一个成功的检测框架DenseBox[5]利用特征映射的每个像素来回归一个4-D距离向量(当前像素和包含它的候选对象的四个边界之间的距离)。然而,DenseBox将四个边距优化为四个独立变量,在简单的l2损失下,如图1所示。这些变量是相关的,应该联合回归,这与直觉背道而驰。

此外,为了平衡不同尺度的边界框,DenseBox需要将训练图像补丁的大小调整为固定的尺度。因此,DenseBox需要对图像金字塔进行检测,这不可避免地影响了框架的效率。

本文提出了一种高效的、基于CNN的物体检测网络,称为UnitBox,它采用全卷积网络架构,直接在特征图上预测物体边界以及像素化分类得分。它采用全卷积网络架构,直接预测对象边界以及特征图上的pixel-wise分类得分。

特别地,UnitBox利用了一种新的(IoU)损失函数进行边界盒预测。IoU损失直接使预测的边界框与ground truth之间的最大重叠,并将所有bound variables作为一个整体进行回归(见图1)。UnitBox不仅能更精确地预测盒子,而且能更快地收敛训练。

同样值得注意的是,由于IoU损失,UnitBox启用了可变尺度训练。这意味着UnitBox能够对任意形状和尺度的物体进行定位,并且只需在单一尺度上进行一次测试,就可以进行更有效的测试。我们将UnitBox应用于人脸检测任务,并在FDDB[6]上取得了所有已发表方法中最好的性能。

2. IOU LOSS LAYER

在介绍UnitBox之前,我们首先介绍所提出的IoU loss层,并与本节中广泛使用的l2 loss进行比较。这里声称了一些重要的称谓:对于图像中的每个像素(i,j),ground truth的边界框可以定义为一个四维向量:

在这里插入图片描述

x ~ t \widetilde x_t x t x ~ b \widetilde x_b x b x ~ l \widetilde x_l x l x ~ r \widetilde x_r x r分别代表当前像素位置(i,j)与ground truth,的上界、下界、左界和右界之间的距离。为简单起见,本文其余部分省略脚注i、j。因此,预测的边界盒定义为 x = ( x t , x b , x l , x r ) \mathbf x=(x_t,x_b,x_l,x_r) x=(xt,xb,xl,xr)。如图1所示。

2.1 L2 Loss Layer

l2损失在优化中被广泛使用。在[5],[7]中,也采用l2损失通过CNN对对象边界框进行回归,可以将其表示为:

在这里插入图片描述

其中L为localization error。

然而,l2损失用于边界盒预测有两个主要缺点。第一种是在l2损失中,边界盒的坐标(以xt,xb,xl,xr的形式)作为四个独立变量进行优化。这个假设违反了一个对象的边界是高度相关的事实。它导致了一些失败的情况,即预测框的一个或两个边界非常接近地面真相,但整个边界框是不可接受的;此外,从公式2中我们可以看到,给定两个像素,一个落在较大的边界框中,而另一个落在较小的边界框中,前者对惩罚的影响将大于后者,因为l2损失是非标准化的。这种不平衡的结果是,CNNs更多关注较大的物体,而忽略较小的物体。为了处理这个问题,在以前的工作中[5],CNNs在训练阶段是固定尺度的图像patches,而在测试阶段则应用在图像金字塔上。这样一来,l2损失被归一化,但检测效率也受到了负面影响。

2.2 IoU Loss Layer: Forward

下面,我们提出一个新的损失函数,命名为IoU损失,它完美地解决了上述缺点.给定一个预测的边界框x(经过ReLU层,我们有 x t , x b , x l , x r ≥ 0 x_t,x_b,x_l,xr\geq 0 xt,xb,xl,xr0)和相应的ground truth x ~ \widetilde x x ,我们计算IoU损失,如下所示

在这里插入图片描述

In Algorithm 1, x ~ ≠ 0 \widetilde x\ne0 x =0表示像素(i,j)落在一个有效的目标边框内;X为预测框的面积; w i d e t i l d e widetilde widetilde为ground truth box的面积; I h , I w I_h,I_w Ih,Iw分别为交集 I 的高度和宽度,U为并集。

值得注意的是, 0 ≤ I o U ≤ 1 , L = − l n ( I o U ) 0\le IoU\le 1,\mathcal L=-ln(IoU) 0IoU1,L=ln(IoU)本质上是输入为IoU的交叉熵损失:我们可以把IoU看作是一种从伯努利分布中抽样的随机变量,with p ( I o U = 1 ) = 1 p(IoU=1)=1 p(IoU=1)=1,变量IoU的交叉熵损失为 L = − p l n ( I o U ) − ( 1 − p ) l n ( 1 − I o U ) = − l n ( I o U ) \mathcal L=-pln(IoU)-(1-p)ln(1-IoU)=-ln(IoU) L=pln(IoU)(1p)ln(1IoU)=ln(IoU)

与l2损失相比,我们可以看到,IoU损失不是独立优化四个坐标,而是将边界框作为一个单元。因此,IoU损失可以提供比l2损失更准确的边界框预测。此外,该定义自然地将IoU规范为[0,1],而不管边界框的尺度如何。这个优势使得UnitBox可以用多尺度的物体进行训练,而只在单尺度的图像上进行测试。

2.3 IoU Loss Layer: Backward

为了推导IoU损失的反向算法,通常需要计算X w.r.t. x的偏导数,标记为 ∇ x X \nabla_x X xX (为简单起见,我们用x表示xt、xb、xl、xr中的任何一个)。

在这里插入图片描述

b e c a u s e X = ( x t + x b ) ∗ ( x r + x l ) because \quad X=(x_t+x_b)*(x_r+x_l) becauseX=(xt+xb)(xr+xl)

计算I w.r.t x的偏导数,记为 ∇ x I \nabla_x I xI

在这里插入图片描述

最后我们可以计算localization loss L w.r.t. x的梯度。

在这里插入图片描述

从公式7中,我们可以对IoU loss层有更好的理解: ∇ x X \nabla_x X xX是预测边界盒的惩罚,它与损失的梯度成正比。 ∇ x I \nabla_x I xII为交汇区的惩罚,与损失梯度呈负比例。所以总体上为了最小化IoU损失,公式7倾向于交点面积尽可能大,而预测框尽可能小。极限情况是交点面积等于预测框,即完全匹配。

3. UNITBOX NETWORK

在这里插入图片描述

在IoU loss层的基础上,我们提出了一个pixel-wise的物体检测网络,命名为UnitBox。如图2所示,UnitBox的架构来源于VGG-16模型[11],在该模型中,我们去掉了全连接层,增加了两个分支的全卷积层,分别预测pixel-wise bounding boxes和分类得分。在训练中,UnitBox的输入有三个大小相同的输入:原始图像,推断像素的置信热图落在目标对象(正)或非目标对象(负)中,边界框热图推断所有正像素处的 ground truth boxes。

为了预测置信度,在VGG stage-4的最后添加三层:一个步长为1的卷积层,内核大小为512x3x3x1。上采样层,直接进行线性插值,将特征图调整到原始图像大小。裁剪层,将特征图与输入图像对齐。之后,我们得到与输入图像大小相同的1通道特征图,在此基础上利用sigmoid交叉熵损失对生成的置信度热图进行回归;在另一个分支中,为了预测边界盒热图,我们使用VGG stage-5最后类似的三个堆叠层,卷积核大小为512×3×3×4。此外,我们还插入了一个ReLU层,使边界盒预测是非负值。预测的边界与第2节提出的IoU loss联合优化。最终的loss以两个分支的loss的加权平均值计算。

下面就UnitBox的架构设计做一些说明。1)在UnitBox中,我们在VGG阶段-4的末尾连接置信度分支,而在阶段-5的末尾插入bounding box分支。原因是要将边界盒作为一个单元进行回归,边界盒分支需要比置信分支更大的感受野。而直观上,对象的边界框可以从置信度热图中预测出来。这样一来,边界框分支可以看作是一种自下而上的策略,从置信度热图中抽象出边界框;2)为了保持UnitBox的效率,我们尽可能少地添加额外的层。与DenseBox[5]中插入三个卷积层进行边界盒预测相比,UnitBox只使用一个卷积层。因此,UnitBox每秒可以处理10多张图像,而DenseBox处理一张图像需要几秒钟;3)虽然在图2中,bounding box分支和置信度分支共享一些较早的层,但它们可以用不共享的权重分别进行训练,以进一步提高有效性。

在这里插入图片描述

有了信心热图和边界盒,我们现在可以准确地定位物体。以人脸检测为例,首先在阈值置信热图上用椭圆拟合出人脸边界盒。由于人脸椭圆过于粗糙,无法定位目标,因此我们进一步选取这些粗椭圆的中心像素,并从这些像素中提取出相应的边界框。尽管该定位策略很简单,但还是显示出能够提供高精度的人脸的边界框,如图3所示。

4. EXPERIMENTS

在本节中,我们将提出的IoU loss以及UnitBox应用在人脸检测任务上,并报告我们在FDDB基准上的实验结果[6]。UnitBox的权重由一个在ImageNet上预训练的VGG-16模型初始化,然后在公共人脸数据集WiderFace[14]上进行微调。我们在微调中使用mini-batch SGD,并将批大小设置为10。按照[5]的设置,动量和权重衰减因子分别设置为0.9和0.0002。学习率设置为 1 0 − 8 10^{-8} 108。微调过程中不使用数据增强。

4.1 Effectiveness of IoU Loss

在这里插入图片描述

在这里插入图片描述

首先,我们研究了IoU损失的有效性。为了训练具有l2 loss的单元盒,我们只需将图2中的IoU loss层替换为l2 loss层,并将学习速率降低到10-13(因为l2 loss通常要大得多,10-13是最大可训练值),其他参数和网络架构保持不变。图4(a)比较了两种损失的收敛性,其中X轴代表迭代次数,Y轴代表detection miss rate。我们可以看到,采用IoU损失的模型比采用l2损失的模型收敛得更快、更稳定。另外,在整个微调过程中,UnitBox的失误率远低于UnitBox-l2。

在图4(b)中,我们选择UnitBox(16k迭代)和UnitBox-l2(29k迭代)的最佳模型,并比较它们的ROC曲线。虽然迭代次数较少,但有 IoU 损失的 UnitBox 仍然明显优于有 l2 损失的 UnitBox。此外,我们还研究了IoU loss和l2 loss对比例变化的鲁棒性。如图5所示,我们将测试图像从60像素调整到960像素,并在图像金字塔上应用UnitBox和UnitBox-l2。给定同一位置的一个像素(用红点表示),在这个像素处画出预测的边界框。从结果可以看出,1)正如2.1节中所讨论的,l2损失很难处理不同尺度的物体,而IoU损失效果很好;2)在没有联合优化的情况下,l2损失可能会准确地回归一两个边界,例如本例中的上边界,但不能提供饱和的整个边界盒预测;3)在x960测试图像中,人脸的尺寸甚至比UnitBox中神经元的感受野更大(约200像素)。出乎意料的是,在极端情况下,UnitBox仍然可以给出一个合理的边界框,而UnitBox-l2则完全失效。

在这里插入图片描述

在这里插入图片描述

[外链图片转存中…(img-qULtDmA2-1596770675161)]

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值