【CNN调参】目标检测算法优化技巧

上次bbuf分享了亚马逊团队的用于分类模型的bag of tricks, 详见:链接, 本文继续梳理一下目标检测trick, 解读这篇19年同样由亚马逊团队发表的《Bag of Freebies for Training Object Detection Neural Networks》。先来看看效果,在使用了trick后,Faster R-CNN能提高1-2个百分点,而YOLOv3则提高了5个百分点。

1. 简介

目标检测模型相比于分类模型的研究相比,更缺少普遍性,并且网络结构和优化目标更加复杂。

本文主要是基于Faster R-CNN和YOLOv3来探索目标检测网络的调整策略。这些策略不会改变模型的结构,也不会引入额外的计算代价。通过使用这些trick,可以比SOTA提高最多5个百分点。

2. Trick

2.1 mixup

mixup也是图片分类中的一个非常有效的trick, 具体流程如下图所示:

简单来讲就是将两张图片通过不同的比例进行融合,同时图片对应的one-hot编码也以相同的比例相乘,从而构造出新的数据集。 本质上,mixup在成对样本及其标签的凸组合(convex combinations)上训练神经网络,可以规范神经网络,增强训练样本之间的线性表达。 其优点是:

  • 改善了网络模型的泛化能力
  • 减少对错误标签的记忆
  • 增加对抗样本的鲁棒性
  • 稳定训练过程

本文提出了针对目标检测的视觉连贯的mixup方法(Visually Coherent Image Mixup for Object Detection),操作流程如下图所示:

通过上图也很容易理解,但在这里要引入一篇有意思的工作,指出了当时SOTA的目标检测器的缺陷,论文名称为:“Elephant in the room”。注意两张图结合的方式是直接叠加, 取最大的宽高,不进行resize。

大象通常都出现在自然场景下,数据集中是不存在背景是室内的图片的,Elephant in the room就是作者将大象图片抠出,然后直接放在室内场景下,并使用SOTA目标检测器进行检测,如下图所示:

可以看到使用SOTA(faster rcnn nas coco)检测大象的效果并不是很好,而且大象位置不同,也会给其他目标检测的效果带来影响,比如说上图中(d)和(f)图中cup这个对象没有被检测出来。

上图是一个猫在不同的背景下的检测结果,可以看到虽然ROI中内容大体不变,但是结果却有比较大的变化,这种现象叫做特征干扰,同一个目标在不同背景被检测为不同的物体,在ROI之外的特征对最终结果会产生影响,这说明特征干扰对检测过程产生干扰,对检测结果产生不利影响。

针对以上问题,本文提出的是视觉连贯的mixup方法可以比较好的解决,如下图所示:

可以看到,上图中使用了视觉连贯的mixup方法之后,“Elephant in the room”也可以很有效的被检测出来,可以比较好的解决“Elephant in the room”这个问题。

作者也用实验证明了使用这种mixup可以让大象的召回率大幅度提升,并且对其他目标影响降低到了1.27%

2.2 Classfication Head Label Smoothing

Label Smoothing也是上一篇分类中使用到的trick, 在目标检测问题中也一样适用。Label Smoothing 原理简单来说就是:在分类的时候,比如二分类把原先的标签(0,1) (称为hard target) 转成 soft target,具体方法就是 y‘ = y (1 ? α) + α/K 这里α 是个超参数常量,K就是类别的个数 。

2.3 数据预处理

在图像分类问题中,一般都会使用随机扰乱图片的空间特征的方法来进行数据增强, 比如随机翻转、旋转、抠图等。这些方法都可以提高模型的准确率、避免过拟合。

这部分主要对以下几种增强方法进行试验:

  • 随机几何变换:随机抠图、随机膨胀、随机水平翻转和随机resize。
  • 随机颜色抖动:亮度、色调、饱和度、对比度。

2.4 其他

  • 训练策略:使用余弦学习率+warmup的方法。

上图是step方法和cosine方法的对比,预先的方法上升更快,不过最终结果比较接近,差的也不是很多。

  • 跨卡同步Batch Normalization。
  • 多尺度训练,和YOLOv3中的训练方式一样。从{320,352,384,416,448,480,512,544,576,608 }中选择一个尺度进行训练。

3. 实验

上图分别展示了在YOLOv3和Faster-RCNN上使用以上trick后的效果。其他实验结果就不一一列举了,感兴趣可以仔细读一下paper。

4. 补充

ASFF这篇论文被很多人认为是YOLO中最强的改进版本,不仅仅是他提出的ASFF模块,更因为他有一个非常强的、融合了很多trick的baseline。

上表中的BoF代表的就是以上解读的这篇:《Bag of Freebies for Training Object Detection Neural Networks》,可以通过对比看到提高了大约4个百分点。IoU代表的是使用了IoU loss,GA代表Guided Anchoring, GA主要是用于解决特征不对齐和anchor设置的问题(这也是一阶段检测方法的弱点),如下图所示,具体讲解可以看: https://zhuanlan.zhihu.com/p/55854246

实际上ASFF模型带来的提升只有1个百分点左右,而以上结合了各种trick的强大的baseline是ASFF出彩的一个强有力的保证。

以上涉及到的trick的具体实现应该可以在ASFF官方实现中找到:https://github.com/ruinmessi/ASFF

5. Reference

https://arxiv.org/pdf/1902.04103

https://arxiv.org/pdf/1808.03305

https://github.com/ruinmessi/ASFF

原文地址:https://www.cnblogs.com/pprp/p/12544099.html

时间: 2024-10-28 21:00:27

【CNN调参】目标检测算法优化技巧的相关文章

第二十八节,目标检测算法之R-CNN算法详解

Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014. R-CNN的全称是Region-CNN,它可以说是第一个成功将深度学习应用到目标检测上的算法.后面要讲到的

6. 目标检测算法之Fast R-CNN算法详解(转)

6. 目标检测算法之Fast R-CNN算法详解(转) 原文链接:https://www.cnblogs.com/zyly/p/9246418.html 目录 一 Fast R-CNN思想 问题一:测试时速度慢 问题二:训练时速度慢 问题三:训练所需空间大 二 算法简述 三 算法详解 1.ROI池化层 2.训练 3.训练样本 4.损失函数 [8]目标检测(4)-Fast R-CNN Girshick, Ross. "Fast r-cnn." Proceedings of the IEE

5. 目标检测算法之R-CNN算法详解(转)

5. 目标检测算法之R-CNN算法详解(转) 原文链接:https://www.cnblogs.com/zyly/p/9246221.html 目录 一 R-CNN思路 二 算法简述 三 训练步骤 四 优缺点 Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conferenc

无人超市目标检测算法的选型

经过测试得出以下结论:1.传统的目标检测算法主要有以下几种:(1) 基于Boosting框架:Haar/LBP/积分HOG/ACF feature+Adaboost (2) 基于SVM:HOG+SVM or DPM等 (3) 模版匹配(特殊情况下可以用到)人工特征和LBP,HAAR特征级联分类器容易出现找不到目标的情况,但是优点是响应速度快,硬件投入低,训练模型快速因为有时候找不到目标所以舍弃.2.现在采用深度学习的方法,主要尝试了以下几种方法(1)cnn fast-cnn faster-cnn

第二十八节、基于深度学习的目标检测算法的综述

在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑动窗口,bounding box.以及IOU,非极大值抑制等概念. 这里将会综述一下当前目标检测的研究成果,并对几个经典的目标检测算法进行概述,本文内容来自基于深度学习的目标检测,在后面几节里,会具体讲解每一种方法. 在深度度学习的目标检测算法兴起之前,传统的目标检测算法是怎样的呢? 传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤: 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域: 提取候选区域相关的视觉特

4. 基于深度学习的目标检测算法的综述(转)

4. 基于深度学习的目标检测算法的综述(转) 原文链接:https://www.cnblogs.com/zyly/p/9250195.html 目录 一 相关研究 1.选择性搜索(Selective Search) 2.OverFeat 二.基于区域提名的方法 1.R-CNN 2.SPP-Net 3.Fast R-CNN 4.Faster R-CNN 5.R-FCN 三 端对端的方法 1.YOLO 2.SSD 四 总结 在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑

SQL Server 聚合函数算法优化技巧

Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值执行计算并返回单一的值.聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. v1.写在前面 如果有对Sql server聚合函数不熟或者忘记了的可以看我之前的一片博客.sql server 基

深度学习 目标检测算法 SSD 论文简介

深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf 二.代码训练测试: https://github.com/weiliu89/caffe/tree/ssd  一.论文算法大致流程: 1.类似"anchor"机制: 如上所示:在 featur

[转载]基于模糊Choquet积分的目标检测算法

前言: 原文地址为:http://www.cnblogs.com/pangblog/p/3303956.html 正文: 本文根据论文:Fuzzy Integral for Moving Object Detection-FUZZ-IEEE_2008的内容及自己的理解而成,如果想了解更多细节,请参考原文.在背景建模中,我们对于像素的分类总是采用非此即彼的方式来分,即该像素要么是背景要么是前景.然而,由于噪声.光照变化以及阴影等特殊情况导致像素会存在错误,即像素存在一定的不确定性.为了处理这种不确