热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

论文阅读笔记五十五:DenseBox:UnifyingLandmarkLocalizationwithEndtoEndObjectDetection(CVPR2015)...

论文原址:https:arxiv.orgabs1509.04874github:https:github.comCaptainEvenDenseBox摘要本文先提出了

论文原址:https://arxiv.org/abs/1509.04874

github:https://github.com/CaptainEven/DenseBox

摘要

       本文先提出了一个问题:如何将全卷积网络应用到目标检测中去?本文提出DenseBox,一个集成的FCN 框架可以直接在图像的位置上预测出目标物的边框及类别。本文两方面贡献:(1)FCN可以用于检测不同的目标(2)在多任务学习过程中结合landmark定位可以进一步提高对目标的检测的准确性。

介绍

       本文只关注一个问题,即如何将FCN应用到目标检测当中去?本文提出DenseBox不需要生成proposal,在训练过程中也可以达到最优。与现存的基于滑动窗的FCN的检测框架相类似,DenseBox更偏重于小目标及较为模糊目标的检测。本文通过对DenseBox训练,使用hard negative mining技术来提升检测性能。为了进一步提高,后面多任务联合学习结合了landmark定位来进一步提升性能。

DenseBox for Detection

       DenseBox的整体流程如下图所示,单一的卷积网路同时输出不同的预测框及类别分数。DenseBox中的所有目标检测模块都为全卷积网络结构,除了NMS处理部分,因此,proposal的生成是没有必要的。测试时,输入图片大小为(mxnx3),输出为(m/4 x n/4 *5),将目标边界框左上角及右下角的点的坐标域定义为,则第i个位置的像素的输出feature map用一个5维向量描述其中s^代表为目标的分数,剩余几个变量代表输出边界框于真是边框之间的距离。最后对带有边框及类别分数的框进行NMS处理。

 

Ground Truth的生成

       没有必要将整张图片送人网络中训练,这样会造成不必要的计算资源的消耗。一种有效的方式是裁剪较大块包含目标物及足够背景信息的patches进行训练。本文进行单一尺度训练,多尺度测试。

       该网络的训练方式形似分割的类型,训练时,图片被裁剪并调整到240x240的大小,输出的ground truth 是一个经过4倍下采样后大小为60x60x5的map,在ground truth map的第一个通道中,positive labeld区域设置一个半径为rc的圆,该圆位于边界框的中心。半径rc与边界框的大小是成比例的。其缩放系数,针对输出坐标域中边框大小设置为0.3。如下图所示,剩余 的四个通道代表最相近(与ground truth比较)边框中左上角及右下角像素点的距离。如果patch中存在多个目标,将那些位于patch中心(0.8至1.25)区域的目标标记为正样本,像素的第一个通道,代表类别的分数,在ground truth中是目标像素值为1,否则为0.本文的方法中每个像素就可以产生一个边框,因此,可以将每个像素当作一个训练样本。

模型设计

       网络结构如下图所示,基于VGG19进行的改进,整个网络包含16层卷积,前12层由VGG19初始化,输出conv4_4后接4个1x1的卷积,前两个卷积产生1-channel map用于类别分数,后两个产生4-channel map用于预测相对位置。最后一个1x1的卷积担当这全连接层的作用。

多层次特征融合

       Part-Level特征关注于目标物的局部细节,进而借此可以区分外形的不同,然而object-level或者high-level特征通常通过一个较大的感受野来对目标进行识别。感受野的范围越大,其上下文信息越丰富,越有利于提高准确性能。本文将conv3_4与conv4_4进行了拼接处理。conv3_4感受野的大小为48x48,与本文的训练目标尺寸大小相似,而conv4_4的感受野更大,为118x118,可以有效的利用全局的文本及上下文信息用于检测。而conv4_4的feature map是conv3_4的一半,因此首先将其进行上采样至相同的分辨率。

多任务学习

       本文使用基于ImageNet预训练的VGG19网络来初始化DenseBox,实际只初始化了前12层卷积,其余的卷积层使用新的卷积替换,并使用xavier进行初始化。

        与Fast R-CNN相似,本文也存在两个子分支输出,第一个输出为目标的类别分数(输出map中的每一个像素),ground truth label为y* 属于{0,1},分类的损失定义如下,使用L2损失(Hinge 损失及交叉熵损失),L2损失效果已经很好。

        第二个分支输出边界框的回归损失,定义如下,用于最小化目标偏移及预测偏移之间的L2损失。

平衡采样

       在学习过程中,负样本的采样挑选是至关重要的部分。如果简单的将mini-batch中的所有负样本都进行处理,将会使模型倾向于负样本。另外,检测器遇到正负样本之间的样本时会发生塌陷。本文使用一个二值mask输出像素,用于决定是否为训练样本。

忽略灰度区域

       将正负区域之间的区域定义为忽略区域,该区域的样本既不是正样本也不是负样本,其损失权重也应设置为0。在输出坐标空间中,对于每一个非正标记的像素,只要其半径范围2内存在任意一个带正标记的像素,则ignore flag fign设置为1。

Hard Negative Mining

       通过寻找预测较差的样本来提高学习效率。经过negative mining后,分错的负样本更容易被挑出来,对于这些样本基于随机梯度下降的学习可以产生噪音小而且更为鲁棒的预测。negative mining可以通过在线提升来提高性能。在前向传递过程中,按分类损失将像素按降序排列,top1%的为hard-negative。在实验中,将positive于negative的比例设置在1:1.在negative samples中,一半来自于hard-negative,剩余的从非hard-negative中随机采样。为了方便,将被挑选的像素设置标记fsel=1.

Loss with Mask

       为每个样本,定义mask ,函数如下

       本文的整体损失为,回归损失只对正样本起作用,本文将目标d*除以标准目标的高(ground truth map中为50/4)进行正则化,设置

 

细节增强

       将特定尺寸中心处包含目标中心的输入patch称为"positive patch",这些patches在正样本的周围只包含负样本。本文将输入图片中随机进行裁剪,并resize到相同的大小送入网络中,这类patch称为"random patches","positive patch"与"random patch"的比例为1:1,另外,为了提升网络的鲁棒性,对每个patch进行了jitter操作,left-right flip,translation shift(25个像素),尺寸变形([0.8,1.25])

       基于mini-batch的SGD训练,batchsize=10,loss及梯度通过贡献的像素个数进行正则化。global learning rate开始为0.001,每100K迭代,学习率衰减10倍。momentum设置为0.9,权重衰减为0.0005

Refine with Landmark Localization

        在DenseBox中由于是全卷积网络,因此,基于landmark定位可以通过简单添加一些层来进行实现。通过融合landmark heatmaps及目标score maps来对检测结果进行增强。如下图所示,增加了一个分支用于landmark定位,假设存在N个landmarks,landmark 定位分支将会输出N个响应maps,其中,每个像素值代表该位置为landmark的置信分数。该任务的ground truth maps与检测的十分相似,对于一个landmark 实例,landmark k的第i个实例,其对应的ground truth 是位于输出坐标空间中第k个响应 map上的positive 标记的区域。半径rl应当较小从而避免准确率的损失。与分类任务相似,landmark 定位损失也是定义为预测值与真实值的L2损失。同样使用negative mining及ignore region。

 

        将分类score map及landmark localization maps作为输入的增强分支的最终输出用于增强检测结果。通过一些高层次空间模型来了解landmark confidence及边界框分数的方法来进一步提高检测性能。本文使用带ReLU的卷积来近似空间模型,增加了增强分支后的整体损失函数如下所示。

Experiment

References

       [1] Y. Bengio, A. Courville, and P. Vincent. Representation learning: A review and new perspectives. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 35(8):1798–1828, 2013.

       [2] G. Bertasius, J. Shi, and L. Torresani. Deepedge: A multi-scale bifurcated deep network for top-down contour detection. arXiv preprint arXiv:1412.1123, 2014.

       [3] X. Chen, K. Kundu, Y. Zhu, A. Berneshawi, H. Ma, S. Fidler, and R. Urtasun. 3d object proposals for accurate object class detection. In NIPS, 2015.

       [4] R. G. Cinbis, J. Verbeek, and C. Schmid. Segmentation driven object detection with fisher vectors. In Computer Vision (ICCV), 2013 IEEE International Conference on, pages 2968– 2975. IEEE, 2013.

转:https://www.cnblogs.com/fourmi/p/10771387.html



推荐阅读
  • iOS 百度地图使用指南:基本定位与地理编码
    本文详细介绍如何在 iOS 应用中集成百度地图,实现基本的地图定位和地理编码功能。配置详情请参考官方文档:http://developer.baidu.com/map/index.php?title=iossdk ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 在iOS开发中,多线程技术的应用非常广泛,能够高效地执行多个调度任务。本文将重点介绍GCD(Grand Central Dispatch)在多线程开发中的应用,包括其函数和队列的实现细节。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 本文介绍如何在Access VBA中处理参数查询时将整数正确地传递给查询,避免因类型转换导致的数据类型不匹配错误。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • PBO(PixelBufferObject),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(DirectM ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 持续集成持续部署持续交付今天,我将谈论开发人员的一个误解:持续集成是关于运行自动化集成管道的…什么是持续集成(CI) ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 注意力汇聚:NadarayaWatson 核回归
    Nadaraya-Watson核回归是具有注意力机制的机器学习范例。Nadaraya-Watson核回归的注意力汇聚是对训练数据中输出的加权平均。从注意力的角度来看, ... [详细]
  • 开发笔记:共享单车数据分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了共享单车数据分析相关的知识,希望对你有一定的参考价值。共享单车数据分析和共享单车用户行为分析PPT从数据分 ... [详细]
  • seaborn箱线图_Seaborn线图的数据可视化
    seaborn箱线图Hello,folks!Inthisarticle,wewillbetakingtheSeaborntutorialaheadandunderstandingt ... [详细]
  • 循环发电厂电能输出预测
    前言本次项目是就某联合循环发电厂的数据,运用线性回归模型进行预测电能输出,若文中出现错误的地方,还望指正,谢谢!目录1.数据来源及背景2.数据探索分析3.相关分析4.回 ... [详细]
author-avatar
XhiaoSai_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有