目标检测算法优化技巧:Bag of Freebies for Training Object Detection

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~

作者简介

魏凯峰:计算机视觉、深度学习、机器学习爱好者,CSDN博客专家“AI之路”。

本文介绍了目标检测算法的一些优化技巧,目前已经在GluonCV中实现了,整体看下来和之前的那篇 图像分类算法优化技巧:Bag of Tricks for Image Classification 类似。这篇介绍的优化技巧具体而言包括mixup、label smoothing、学习率修改策略的选择、跨卡BN层计算和随机尺度训练,接下来详细介绍。

论文:Bag of Freebies for Training Object Detection Neural Networks

论文链接:https://arxiv.org/abs/1902.04103

mixup

mixup是指将2张输入图像按照一定权重合并成一张图像,基于这种合成图像进行训练的模型更加鲁棒,能够有效降低对抗图像的影响。如图Figure2是在分类算法中使用mixup的例子:

Figure3是在目标检测算法中使用mixup的例子,合并之后的图像标签包含2张输入图像的所有标签,可以看出这种思想在实现上还是比较容易理解的。

针对mixup作者做了不同参数设置下的实验效果对比,如Table1所示,这里涉及一个名词:weighted loss,在图表中也做了解释,因为模型训练用的图像来自2张原输入图像通过不同权重合并得到的(如Figure3所示),因此在计算损失函数时(损失函数是基于目标计算的),属于不同输入图像的目标的权重也是不一样的,需要和输入图像在合并时的权重对应。而Table5中第二行的0.5:0.5 evenly表示合成是按照0.5和0.5的权重进行,因此最后计算损失时目标的权重也相等。

为了证明mixup的视觉效果,作者做了前段时间比较有意思的大象贴图实验,如Figure5所示,第一行使用常规的训练方式训练YOLO v3模型,第二行则是采用mixup方式训练YOLO v3模型,可以看出后者能够有效检测到图像贴上的大象(mix-1和orig-1的对比),不过在orig-2和mix-2的对比中,二者都能检测到大象,这一点在文中没有做详细的解释。

label smoothing

label smoothing是分类算法中采用的优化方式,作者将其引入到目标检测算法的分类支路部分。label smoothing的思想很直接,首先来看看原来分类算法的交叉熵损失函数,公式如下:

其中qi表示真实标签,pi是预测值,因为q是one-hot形式(假设分类类别数是K,那么q就是1×K的向量,且其中只有对应的真实类别位置是1,其余都为0)。pi的计算公式如下,这是常见的softmax函数,假设真实类别是i,那么模型训练过程中会不断使得zi远大于zj,这样pi就越接近1,这样公式2中的L就越接近0,虽然这是训练目标,但训练过程越趋近于这种情况,反而是越容易过拟合的。

所以label smoothing的思想就是对真实标签q进行改造,使其不再是one-hot形式,公式如下所示,其中K表示类别数,e是一个很小的常数。举个例子,假设K=5,e=0.1,那么原来q=[0,0,1,0,0],现在q’=[0.02,0.02,0.92,0.02,0.02]。这样在公式2中,当q‘处于非真实标签时仍然有损失值(比如0.02),就使得pi不会非常接近1,这就降低了过拟合风险。

学习率变化策略

学习率变化采用cosine函数且增加warm-up,这部分内容可以直接看Figure6。图中(a)是常见的step修改策略和cosine修改策略+warm-up的学习率变化对比图,可以看到cosine在初始和结束阶段的变化都比较缓慢,在中间部分变化相对快一些,整体而言相比step方式变化会更加平稳一些,这种方式有利于训练过程的稳定,包括warm-up的引入,也是为了训练的起始阶段能够更加稳定地进行。

跨卡BN层

跨卡BN层的计算(synchronized batch normalization),因为目标检测算法的单卡batch size一般不能设置得像分类算法那样大,但是较小的batch size对于单卡计算BN层参数而言并不是很有利,因此跨卡BN层相当于基于多卡数据计算BN层参数,这样计算得到的统计结果更加可靠。

随机尺度训练

随机尺度训练是指在模型训练阶段采用随机大小的数据进行训练,比如当前批次或epoch采用320×320大小的输入,但是在下一个批次或epoch则采用416×416。这种做法来自YOLO算法,尺寸一般在固定的几个数值中随机选择,比如{320, 352, 284, 416, 448, 480, 512, 544, 576, 608},相邻数值相差32,表示stride。

实验结果

实验部分采用的模型包括YOLO v3和Faster RCNN,数据集部分采用PASCAL VOC和COCO。Table2是优化的YOLO v3模型在VOC2007测试集上的效果提升对比。

Table3是优化的Faster RCNN模型在VOC2007测试集上的效果对比。数据增强部分,因为two stage算法涉及ROI的裁剪,因此影响小一些,相比之下在one stage类型算法中影响较大。

Table4是在COCO数据集上的效果对比,YOLO v3的效果提升尤其明显。

(0)

相关推荐

  • 目标检测训练trick超级大礼包—不改模型提升精度,值得拥有

    昨日新上arXiv的一篇论文<Bag of Freebies for Training Object Detection Neural Networks>,来自Amazon的研究人员(包括 ...

  • 视频目标跟踪从0到1,概念与方法

    作者:ANKIT SACHAN 编译:ronghuaiyang 导读 从目标跟踪的应用场景,底层模型,组件,类型和具体算法几个方面对目标跟踪做了全方面的介绍,非常好的入门文章. 在今天的文章中,我们将 ...

  • 【目标检测算法解读】yolo系列算法一

    前言 大家好,这是目标检测算法解读系列的第一篇文章,在这个系列中小糖豆会对经典的目标检测算法进行解读,在每个算法原理讲解完后,会有相应的源代码解析.小糖豆认为学习一个算法,既要弄清楚它的原理,又要真正 ...

  • YOLO系列之YOLO

    实时目标检测一直是yolo系列的追求之一,从yolo v1开始,作者就在论文中强调real-time.在后期的v2和v3的发展过程中,慢慢在P&R(尤其是recall rate)上下不少功夫. ...

  • SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

    无人机因为硬件计算能力较弱,要在其上实现实时的目标检测,需要算法参数量小.占用内存少.推断时间短.常见的算法往往难以直接应用. 一种比较直接的做法是对模型进行剪枝,尽量减少模型卷积层不必要的通道. 今 ...

  • 【YOLOX】新一代 anchor-free 目标检测器,吊打一切!

    OLOX 介绍 YOLOX 在 YOLO 系列的基础上做了一系列工作,其主要贡献在于:在 YOLOv3 的基础上,引入了「Decoupled Head」,「Data Aug」,「Anchor Free ...

  • 使用 YOLO 进行目标检测

    重磅干货,第一时间送达 自从世界了解人工智能以来,有一个特别的用例已经被讨论了很多.它们是自动驾驶汽车.我们经常在科幻电影中听到.读到甚至看到这些.有人说,我们将在2010年拥有自动驾驶汽车,有人说到 ...

  • [综述类] 一文道尽深度学习中的数据增强方法(上)

    00 什么是数据增强 在深度学习项目中,寻找数据花费了相当多的时间.但在很多实际的项目中,我们难以找到充足的数据来完成任务. 为了要保证完美地完成项目,有两件事情需要做好: 1.寻找更多的数据: 2. ...

  • 综述:目标检测二十年(2001-2021)

    作者丨派派星 来源丨CVHub 编辑丨极市平台 极市导读 目标检测领域发展至今已有二十余载,本文将对目标检测领域近20年的发展做一次系统性的介绍,并为目标检测构建一个完整的知识体系架构. 引言 目标检 ...

  • 低信噪比下的红外弱小目标检测算法研究综述

    低信噪比下的红外弱小目标检测算法研究综述

  • 基于局部对比度机制的红外弱小目标检测算法

    0 引言 随着红外焦平面性能水平的不断提高,红外探测系统在军事和民用中得到了广泛的应用,尤其是在制导.预警等领域具有非常重要的应用价值[1].其中,能否及时准确地检测到远距离目标,是关系到能否有效地制 ...

  • 目标检测算法YOLOF:You Only Look One-level Feature

    本文介绍 CVPR 2021 接收的目标检测论文 You Only Look One-level Feature. 原论文作者来自:中科院自动化所.中科院大学人工智能学院.中国科学院脑科学与智能技术卓 ...

  • 实测U^2-net显著目标检测算法

    今天体验了下U^2 -Net,在2020年的时候刷爆了 reddit 和 twitter,号称是当年最强的静态背景分割算法.u-2-net 的结构长什么样? 长得像U型,原来是基于语义分割网络u-ne ...

  • 重读 CenterNet,一个在Github有5.2K星标的目标检测算法

    本文带领大家重温Objects as Points 一文,其于2019年4月发布于arXiv,谷歌学术显示目前已有403次引用,Github代码仓库已有5.2K星标,无论在工业界和学术界均有巨大影响力 ...

  • 行人重识别算法优化技巧:Bags of Tricks and A Strong Baseline

    本周四(3月28日)晚,澳大利亚阿德莱德大学博士生王鑫龙,将为我们分享联合点云分割中的实例和语义(CVPR2019),公众号回复"39"即可获取直播详情. 作者简介 TeddyZh ...

  • ECCV 2018 | CornerNet:目标检测算法新思路

    极市平台是专业的视觉算法开发和分发平台,加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖 ...

  • 大盘点 | 2020年5篇目标检测算法最佳综述

    作者丨Cynthia Yawain 编辑丨极市平台 本文为极市平台原创整理. 引言 在过去的一年中,计算机视觉领域出现了许多优秀的工作,并推动了相关领域的技术发展与进步.去年上半年,极市曾盘点过计算机 ...

  • 【目标检测算法解读】yolo系列算法三

    前言 本文是yolo系列算法文章的第三篇,也是目前为止yolo系列算法的最终篇.从原理上看,yolov3并没有实质性的创新,主要是借鉴了一些时下state-of-the-art模型的优秀思想.本文重点 ...