Object Detection: One-stage Detector DenseBox

继上一篇文章Object Detection : One-stage Detector YOLO,我们可以窥探到回归(regression)、端到端(end-to-end)思想在目标检测问题上的应用。下面开始单阶段目标检测器系列的第二篇,DenseBox。YOLO -> DenseBox -> SSD -> YOLO v2 -> Retina -> YOLO v3 ...
摘要由CSDN通过智能技术生成

继上一篇文章Object Detection : One-stage Detector YOLO,我们可以窥探到回归(regression)、端到端(end-to-end)思想在目标检测问题上的应用。下面开始单阶段目标检测器系列的第二篇,DenseBox。
YOLO -> DenseBox -> SSD -> YOLO v2 -> Retina -> YOLO v3 -> CornerNet -> CenterNet -> AlignDet

DenseBox: Unifying Landmark Localization with
End to End Object Detection

论文地址:1509.04874v3

1. 背景介绍

在卷积神经网络(CNN)兴起之前,大多模型是基于滑动窗口法(sliding-window based method)进行目标检测:首先提取图片不同尺寸(scales),不同位置(locations)的手工特征(handcrafted features);然后有些模型可能会做一些几何限制(geometric constraints),比如人的头、手臂、躯干、腿;最后用分类器(classifier)对这些特征进行分类。CNN兴起之后,人们使用全卷积网络(FCN)近似(approximate)滑动窗口法,这种方法使得模型能够端到端(end-to-end)训练,而且从零学习参数和特征提取(scratch)的方式大大提升了目标检测器的性能。

在这里插入图片描述
如上图,将输入的16x16x3的图片经过多层卷积操作(convolution),得到2x2x4的输出。整个过程相当于在原图上做14x14的窗口滑动,且步长为2,产生四个候选框(proposals), 输出的每个像素(pixel)对应于一个候选框。这就是全卷积网络近似滑动窗口法的过程描述。(ps:图中的FC不是全连接,依然是卷积操作)

不过,这样固定大小与步长的窗口是远远不够的 (可以了解一波overfeat)。对此YOLO就淘汰了滑动窗口法:它将原始图片分割成互不重合的网格单元(cell),每个网格单元负责检测落入其中的目标,通过卷积产生的特征图的各元素对应于原图的每个网格单元,然后用特征图各元素的值去定位中心(center)落在对应网格单元内的目标。这也不失为一种优雅的解决方式。

与YOLO相似,DenseBox也是全卷积网络,但仍遵循滑动窗口的特性(sliding window fashion)。它致力于小目标(small objects)以及遮挡检测(occlusion),比如人脸(human face),远处的汽车(far-away car)。

虽然两阶段模型在精度上较单阶段检测器有更大的优势,但由于R-CNN两阶段模型产生区域提议(proposals)分辨率较低(low resolution),同时缺乏上下文信息(context),直接或间接影响了分类的性能。所以DenseBox朝着小目标突破也是有一定的前瞻性的。

所以作者的贡献在于:(1) 设计全卷积网络实现小目标及遮挡目标的高精度检测;(2) 使用多任务训练(multi-task)进一步提升检测性能,也就是添加了标识点定位(landmark localization)任务分支。

2. 模型介绍

在这里插入图片描述
由上图可以了解到DenseBox的检测流程:首先是输入多个尺寸的同一张图片,即图像金字塔(image pyramid); 然后经过卷积&池化操作,再进行上采样,融合浅层与深层的特征再进行卷积操作,将得到的结果转化为检测框,并对检测框进行非极大值抑制(non-maximum supression, NMS),得到最终的结果。

2.1 模型的输入&输出

接下来定义一些符号。假如输入的图片大小为 m ∗ n ∗ 3 m*n*3 mn3, 则模型的最终输出是 m 4 ∗ m 4 ∗ 5 \frac{m}{4}*\frac{m}{4}*5 4m4m5,这意味着每4个像素点生成一个检测框,这样一来可以产生很密集的检测框,故命名为DenseBox。定义目标检测框的左上角(left top)和右下角(right bottom)为 p t = ( x t , y t ) p_t = (x_t, y_t) pt=(xt,yt), p b = ( x b , t b ) p_b = (x_b, t_b) pb=(xb,tb),最终输出的每个像素点 ( x i , y i ) (x_i, y_i) (xi,yi)描述了检测框的信息,用向量 t i ^ = { s ^ , d x t ^ = x i − x t , d y t ^ = y i − y t , d x b ^ = x i − x b , d y b ^ = y i − y b } i \hat{t_i} = \{\hat{s}, \hat{dx^t} = x_i - x_t, \hat{dy^t} = y_i-y_t, \hat{dx^b} = x_i - x_b, \hat{dy^b} = y_i - y_b\}_i ti^={ s^,dxt^=xixt,dyt^=yiyt,dxb^=xixb,dyb^=yi

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值