前言

最近开始阅读AnchorFree系列的论文,2015年发布在CVPR的DenseBox基于AnchorFree思路的one-stage目标检测有必要阅读一下,了解下AnchorFree的一些思路,想法。

Abstract

DenseBox,这是一个统一的端到端FCN框架,它通过图像的所有位置和比例直接预测边界框和对象类的可信度。(YOLOV1,V2,V3是预测obj概率,类别条件概率和边界框)

作者指出该DenseBox有两点贡献:

  1. 证明一个FCN在经过仔细设计和优化后可以非常准确和高效地检测多个不同的目标
  2. 表明在多任务学习过程中,结合了landmark localization(关键点定位)时,DenseBox进一步提高了目标检测的准确性。

Introduction

尽管与许多现有sliding window式FCN的检测框架类似,DenseBox是精心设计的,用于检测小尺度严重遮挡下的目标。

这两个关键词“小尺度”和“严重遮挡”引起了我的注意,行人检测方面这两个问题很突出

作者在训练DenseBox时应用了hard negative mining(难分样本挖掘)技术来提高检测性能。
hard negative mining博客理解1
hard negative mining博客理解2

作者为了使检测更好,通过整合多任务学习,将landmark localization(关键点定位)集成到系统中。landmark localization的有效性后面会分析。

Related Work

目标检测通常涉及多任务学习,所谓多任务学习,比如landmark localization(关键点定位),姿态估计,语义分割。
以下有一篇结合了上述三个任务学习的论文。

[46]X. Zhu and D. Ramanan. Face detection, pose estimation, and landmark localization in the
wild. InComputer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on, pages
2879–2886. IEEE, 2012.

DenseBox for Dectection

DenseBox中目标检测的所有组件都被建模为一个完全卷积网络(非最大抑制步骤除外),因此无需生成区域建议。
作者在测试中,系统采用size为m×nm\times nm×n的图像输入,并且输出一个5 channel的m4×n4\frac{m}{4}\times \frac{n}{4}4m​×4n​的feature map。作者将预测框的左上角和右下角坐标分别定义为pt=(xt,yt)p_t=(x_t,y_t)pt​=(xt​,yt​)和pb=(xb,yb)p_b=(x_b,y_b)pb​=(xb​,yb​),输出feature map上位于(xi,yi)(x_i,y_i)(xi​,yi​)的像素用一个5维向量描述一个边界框,向量表示为t^i={s^,dxt^=xi−xt,dyt^=yi−yt,dxb^=xi−xb,dyb^=yi−yb}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\}_it^i​={s^,dxt^=xi​−xt​,dyt^​=yi​−yt​,dxb^=xi​−xb​,dyb^​=yi​−yb​}i​
其中s^\hat{s}s^是目标置信度得分,dxt^,dyt^,dxb^,dyb^\hat{dx^t},\hat{dy^t},\hat{dx^b},\hat{dy^b}dxt^,dyt^​,dxb^,dyb^​表示输出像素位置与target边界之间的距离。最后,将输出map中的每个像素转换为带有分数的边界框,并对分数超过阈值的框应用NMS。

Ground Truth Generation

作者认为不需要将整幅图像放入网络进行训练,原因是作者认为在背景上进行卷积需要花费大量的计算时间。作者采用了策略是裁剪包含人脸和足够背景信息的larget patches进行训练,在本文中,作者在单尺度上训练DenseBox网络,并将其应用到多尺度上进行评估。

作者提出的网络是以类似分段的方式训练的,在训练中,patches被裁剪并调整到size为240×240240\times 240240×240,其中人脸在该patch的中间,高度大概在50像素左右。训练中输出的ground truth是一个size为60×6060\times 6060×60的5通道的map,其中下采样因子为4。ground truth map 的第一个通道的正样本标记区域(输出特征图上对应正样本的标记区域)是一个半径为rcr_crc​的填充圆,该圆位于人脸边界框的中心。半径rcr_crc​与边界框大小成比例,其比例因子设置为输出坐标空间中边界框size的0.3,如图2所示。其余4个通道用最邻近边界框的左上角和右下角之间输出map的像素位置之间的距离(偏移)填充。

如果一个patch出现多个人脸,则如果这些人脸落在我们规定的相对于在patch中心的人脸比例范围内(我们设置为0.8至1.25),则我们将这些人脸作为正样本。其他人脸将被视为负样本。ground truth map中(输出特征图中)表示类置信度得分的第一通道的像素初始化为0,如果在正样本区域内,则进一步设置为1。
在DenseBox中,像素标签由感受野决定。具体地说,如果输出像素满足其感受野包含了一个大致位于其中心且具有给的那个比例的目标的约束,则将该输出像素标记为1。每个像素可以作为一个样本处理,因为每个5通道像素描述一个边界框。

Model Design

图3所示的网络架构源自用于图像分类的VGG 19模型[35]。整个网络有16个卷积层,前12个卷积层由VGG19模型初始化。conv44的输出被送入四个1×1的卷积层,其中前两个卷积层输出类分数的1通道map,后两个卷积层通过4通道map预测边界框的相对位置。最后的1×1卷积层以滑动窗口方式作为完全连接的层。

多层次特征融合,从图3可知,conv3_4和conv4_4进行了特征融合。

Multi-Task Training

图3有两个输出,一个是类别置信度Detection loss,另一个是边界框回归Bounding Box Regression loss。这些loss均采用均方误差来计算。

Balance Sampling

负样本的选取过程是学习的关键环节之一。如果简单地在小批量中使用所有负样本,则会使预测偏向于负样本,因为它们在所有样本中占主导地位。此外,如果我们对位于正负区域边缘的样品的损失进行惩罚,探测器将退化。在这里,我们为每个输出像素使用一个二进制掩码来指示它是否在训练中被选中。

Ignoring Gray Zone忽略灰度区域,灰色区域定义在正负样本区域的边界上。不应将其视为正或负,其loss权重应设置为0。对于输出坐标空间中的每个非正样本像素,只有当存在rnear=2r_{near}=2rnear​=2像素长度的正样本像素时,其样本标签igonre flag fignf_{ign}fign​才会设置为1(意味着该样本被忽略,抛弃)。

Hard Negative Mining难负样本挖掘,与支持向量机中的硬负挖掘过程类似,我们通过搜索预测错误的样本而不是随机样本来提高学习效率。负样本挖掘后,预测错误的样本很可能被选择,因此,对这些样本的梯度下降学习可以在较少噪声的情况下实现更稳健的预测。具体来说,通过online bootstrap可以有效地执行负样本挖掘。在前向传播阶段,我们按降序对输出像素的损失进行排序,并将top1%指定为难负样本。在所有的实验中,我们保持所有的正样本像素(样本),并且正负比为1:1。在所有负样本中,有一半是从难负样本中取样的,其余一半是从非难分样本的负样本中随机选取的。为方便起见,作者设置了flag fsel=1f_{sel}=1fsel​=1表示为小批量选择的像素(样本)

Loss with Mask带标志位的loss,作者定义对每一个样本t^i={y^i,d^i}\hat{t}_i=\{ \hat{y}_i, \hat{d}_i\}t^i​={y^​i​,d^i​}的flag函数M(t^i)M(\hat{t}_i)M(t^i​):
M(t^i)={0,figni=1orfigni=01,otherwise−−−(3)M(\hat{t}_i)= \begin{cases} 0, & f^i_{ign}=1\ or\ f^i_{ign}=0 \\ 1, & otherwise \\ \end{cases}---(3) M(t^i​)={0,1,​figni​=1 or figni​=0otherwise​−−−(3)
将分类和框回归loss与上述M结合起来,多任务的损失可以表示为:
Ldet(θ)=∑i(M(t^i)Lcls(y^i,yi∗)+λloc[yi∗>0]M(t^i)Lloc(d^i,di∗))−−−(4)L_{det}(\theta)=\sum_i{ \left( M(\hat{t}_i)L_{cls}(\hat{y}_i,y^*_i)+\lambda_{loc}[y^*_i>0]M(\hat{t}_i)L_{loc}(\hat{d}_i,d^*_i) \right)}---(4) Ldet​(θ)=i∑​(M(t^i​)Lcls​(y^​i​,yi∗​)+λloc​[yi∗​>0]M(t^i​)Lloc​(d^i​,di∗​))−−−(4)
其中θ\thetaθ是网络中的一组参数,Iverson bracket function[yi∗>0][y^*_i>0][yi∗​>0]仅在ground truth得分yi∗y^*_iyi∗​是正数时被激活。对于负样本(背景),应忽略框回归loss,因为它无法被表示。分类和回归任务之间的平衡由参数λloc\lambda_{loc}λloc​控制。

Other Implementation Details其他实施细节,在训练中,如果输入patches包含以特定比例居中的对象,则将其视为“positive patch”。这些patches仅包含正样本周围的负样本。为了充分挖掘整个数据集中的负样本,我们还从训练图像中随机裁剪出随机比例的补丁,并将其调整为相同大小,然后将其馈送到网络。我们把这种贴片称为“random patch”,训练中“positive patch”和“random patch”的比例为1:1。此外,为了进一步提高我们模型的鲁棒性,我们还随机加噪声给每个补丁,然后再将它们送入网络。具体来说,我们应用左右翻转、平移移位(25像素)和缩放变形(从[0.8,1.25])。

Refine with Landmark Localization


在这一部分中,我们展示了在DenseBox中,由于完全卷积的体系结构,只需堆叠几层就可以实现landmark localization。此外,我们可以通过融合landmark热图和人脸评分图来细化检测结果。如图4所示,我们为landmark localization合并了另一个同级分支输出。假设存在N个landmark,landmark localization分支输出N个response maps,每个像素表示在该位置作为landmark的置信度得分。作者指出用在该任务上的ground truth maps的外观和用于检测的ground truth十分相似。

对于一个landmark 实例 likl^k_ilik​(第i个实例的第k个landmark),其ground truth是位于输出坐标空间中第k个response map上相应位置的正样本区域。与分类任务类似,landmark localization loss LlmL_{lm}Llm​被定义为预测值和标签之间的L2L_2L2​损失,并且仍然应用负样本挖掘和忽略区域。

最终输出细化分支,以分类得分map和landmark localization map为输入,对目标检测结果进行细化。

总结

论文后面主要比较了各个方法模型的区别,改进,和策略,多涉及人脸还有汽车的数据集,本人主要关注的点是以下几点:

  • Ground Truth 生成的策略,作者在这方面的思路,如何去区分正负样本
  • landmark就是关键点,一个框就是两个关键点,引入该概念其实就是AnchorFree的思想
  • hard negative mining 困难样本和复杂样本的挖掘,平衡loss的策略,以及一些灰色区域即背景区域的处理
  • 网络结构将分类和回归拆开,解耦了分类头和回归头(相比YOLOV3)

后续会研究更多AnchorFree的论文的思路

DenseBox Unifying Landmark Localization with End to End Object Detection相关推荐

  1. DenseBox: Unifying Landmark Localization with End to End Object Detection

    DenseBox: Unifying Landmark Localization with End to End Object Detection arxiv: http://arxiv.org/ab ...

  2. Delving into Localization Errors for Monocular 3D Object Detection 论文学习

    论文地址:Delving into Localization Errors for Monocular 3D Object Detection Github地址:Delving into Locali ...

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

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

  4. 文献记录(part41)--Residual multi-task learning for facial landmark localization and expression ...

    学习笔记,仅供参考,有错必纠 关键词:面部地标定位:面部表情识别:深层神经网络:多任务学习 随便看看- 文章目录 Residual multi-task learning for facial lan ...

  5. Dynamic Head: Unifying Object Detection Heads with Attentions

    Dynamic Head 论文标题:Dynamic Head: Unifying Object Detection Heads with Attentions 论文地址:https://arxiv.o ...

  6. Dynamic Head: Unifying Object Detection Heads with Attentions 阅读

    Abstract 这里就是说在目标检测领域,很多工作都想提高检测头的性能,这篇文章提出了动态头,也就是Dynamic Head,来将检测头和注意力(Attention)结合.在尺度(scale-awa ...

  7. Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读

    Dynamic Head: Unifying Object Detection Heads with Attentions论文阅读 摘要 介绍 相关工作 方法 Dynamic Head 扩展到现存的检 ...

  8. Dynamic Head Unifying Object Detection Heads with Attentions 论文阅读笔记

    Dynamic Head Unifying Object Detection Heads with Attentions论文阅读笔记 这是微软在CVPR2021发表的文章,在coco数据集上取得了目前 ...

  9. Deep Learning for Weakly-Supervised Object Detection and Object Localization: A Survey

    摘要 弱监督目标检测(WSOD)和定位(WSOL),即使用图像级标签检测图像中包含边界框的多个或单个实例,是CV领域中长期存在且具有挑战性的任务. 随着深度神经网络在目标检测中的成功,WSOD和WSO ...

最新文章

  1. Bruce Eckel教你如何爬出 Gradle 的“坑”?
  2. Android高级编程(笔记)-第6章 数据存储、检索和共享--2--本地文件
  3. 卷积核个数和输入输出通道数的关系
  4. 通过HttpClient来调用Web Api接口~续~实体参数的传递
  5. 走过20年……你出现在哪里?
  6. MPI 环境搭建问题-运行程序闪退
  7. 深入了解Blazor组件
  8. html 隐藏input
  9. 动态规划——最长公共子序列
  10. 大数据可视化类型有哪些
  11. 关于大型网站技术演进的思考(十)--网站静态化处理—动静整合方案(2)
  12. DELL 灵越系列笔记本 1427 更换显示屏
  13. 2016年全球半导体厂商TOP20排名
  14. html返回到处乱跑,电脑鼠标乱动不受控制(鼠标到处乱跑不听使唤)
  15. JVM高级特性与实践(九):类加载器 与 双亲委派模式(自定义类加载器源码探究ClassLoader)
  16. 4K、2K、1080p、720p、480p、240p常见视频清晰度
  17. HR看到个华为 21级程序员的简历,月薪27w,那是什么概念!
  18. 【Spark NLP】第 12 章:情感分析和情绪检测
  19. 基于Python的贝壳某城市二手房交易分析及预测系统 文档+项目源码+演示视频
  20. python50行小游戏_50行python代码实现的贪吃蛇小游戏

热门文章

  1. 董事长 CEO 总裁 总经理 区别
  2. VueCLi跑项目时卡在98% after emitting CopyPlugin无法运行
  3. 【数据库基础】数据库的视图操作
  4. Could not get a resource from the pool 错误解决
  5. CC00388.CloudKubernetes——|KuberNetesCI/CD.V26|——|Jenkins.v06|自动构建Java应用.v06|报错处理|
  6. excel表格如何转换成word表格_Word如何制作表格?Word制作表格超实用技巧
  7. 【此间乐,不思蜀】 大一不想咸鱼的暑假7.17
  8. 05.【Java】字符串(String与StringBuffer)
  9. elasticsearch启动常见错误
  10. Flutter技术与实战(4)