热门标签 | 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



推荐阅读
  • Android 常用工具类源码大全
    Android常用工具类源码大全 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 花瓣|目标值_Compose 动画边学边做夏日彩虹
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Compose动画边学边做-夏日彩虹相关的知识,希望对你有一定的参考价值。引言Comp ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
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社区 版权所有