提高训练效率的实时目标检测(附源码)

计算机视觉研究院专栏

作者:Edison_G

在目标检测模型的training time, inference speed, 和accuracy之间寻找trade off,重点关注如何在保持另外两个指标的情况下,减少模型的训练时间。

启示:

1、单纯的数据扩增能增加数据数量,但也会降低数据质量,导致需更多的训练时间才会收敛;

2、根据Linear Scaling Rule,学习率与batchsize一般情况下呈线性正比,增加高质量的sample也能起到类似batchsize的作用,从而可以提高学习率,缩短模型训练时间;

3、在精度方面,实验显示res18下与CenterNet都在COCO上达到了28.1的mAP,但0.5的mAP比CenterNet低了1个点左右,0.75的mAP比CenterNet高了0.6个点,所以猜测TTFNet可能检测出的bbox更加紧凑,因此提高了mAP。

简要

现在目标检测器很少能同时实现训练时间短,推理速度快,精度高。为了达到平衡,作者就提出了Train-Friendly Network(TTFNet)。作者从light-head, single-stage, and anchor-free设计开始,这使得推理速度更快。然后作者重点缩短训练时间。 

我们注意到,从注释框中编码更多的训练样本与增加批处理大小具有相似的作用,这有助于扩大学习速率和加速训练过程。为此作者就介绍了一种利用高斯核对训练样本进行编码的新方法。此外,为了更好地利用信息,还设计了主动样本权重。在MSCOCO上的实验表明,TTFNet在平衡训练时间、推理速度和精度方面具有很大的优势。它比以前的实时检测器减少了7倍以上的训练时间,同时保持了最先进的性能。此外,super-fast版本的TTFNet-18和TTFNet-53可以分别是SSD300和YOLOv3的训练时间不到十分之一。

历史回顾&背景

目标检测器的精度,推理速度,训练时间等方面都得到了广泛关注和不断提高。然而,很少工作可以在它们之间取得良好的平衡。直观地说,推理速度较快的检测器应该有较短的训练时间。然而,事实上大多数实时检测器比非实时检测器需要更长的训练时间。高精度检测器可以大致分为两种类型之——它们的推理速度慢,而且需要大量的训练时间。

第一类网络(Huang, L.; Yang, Y.; Deng, Y.; and Yu, Y. 2015. Densebox: Unifying landmark localization with end to end object detection.)一般依靠heavy检测头或复杂后处理。虽然这些设计有利于精度的提高和快速收敛,但它们显著降低了推理速度。因此,这种类型的网络通常不适合实时应用。

为了加快推理,研究人员努力简化检测头和后处理,同时保持准确性(Zoph, B., and Le, Q. V. 2017. Neural architecture search with reinforcement learning.)。在最近的一项名为CenterNet的研究中,推理时间进一步缩短,几乎与主干网络消耗的时间相同。然而,所有这些网络不可避免地需要很长的训练时间。这是因为这些网络由于简化而难以训练,使得它们在很大程度上依赖于数据增强和较长的训练时间。例如,CenterNet需要在公共数据集MSCOCO上进行140个epochs训练。相比之下,第一类网络通常需要12个epochs。

动机

根据Linear Scaling Rule,可以通过增大batchsize提高learning rate,然而仔细分析SGD的公式,我们也可以通过增加高质量的正样本个数来起到同样的作用。也就是不仅可以增大n,也可以增大m。

回顾随机梯度下降(SGD)的公式,权重更新表达式可以描述为:

至于目标检测,图像x可以包含多个注释框,这些框将被编码到训练样本s∈Sx。Mx=|Sx|表示图像x中所有框产生的样本数, 因此上公式可以表述为:

为了简化,假设mx对于小批量B中的每个图像x是相同的。关注个体训练样本s,上式可以改写为:

线性缩放规则是在经验中发现的,如果批处理大小乘以k,则学习速率应该乘以k,除非网络正在迅速变化,或者采用非常大的mini-batch批处理。也就是说,用小的mini-batch Bj和学习速率η执行k迭代基本上相当于用大的mini-batch ∪j∈[0,k)Bj和学习速率kη执行1迭代,只有当我们可以假设:

这个条件通常是在大规模的真实世界数据下满足的。

较大的学习速率不能帮助CenterNet更快地收敛,并且删除数据增强会导致性能变差。根据上面的结论,我认为这是因为CenterNet在训练过程中只在目标中心编码一个单一的回归样本。这种设计使得CenterNet在很大程度上依赖于数据增强和较长的训练时间,导致不友好的训练时间。 

为了减少网络对数据增强的依赖,同时减少训练时间,我认为需要更好的编码回归样本的策略。在这一动机的指导下,作者提出新的方法,在 ablation研究中进行更全面的实验可以进一步验证新方法的优越性。

新方法

TTFNet的体系结构如上图所示。在实验中使用ResNet和DarkNet作为主干网络。 主干网络提取的特征被采样到原始图像的1/4分辨率,这是通过Modulated Deformable Convolution(MDCN)和上采样层实现的。在MDCN层之后是批归一化(BN)和ReLU。上采样的特征然后分别通过两个头部为不同的目标。 

检测头在物体中心附近的位置产生高激活,而回归头直接预测从这些位置到box四面的距离。由于目标中心对应于特征映射处的局部最大值,因此可以在2D最大池的帮助下安全地抑制非最大值。然后利用局部最大值的位置来收集回归结果。 

最后,可以得到检测结果。 新提出的方法有效地使用了大中型目标中包含的注释信息,但对于包含很少信息的小目标,推广是有限的。为了在较短的训练计划中提高小目标的检测性能,添加了shortcut connections来引入高分辨率但低级别的特征。shortcut connections从主干的2级,3级和4级引入特征,每个连接由3×3卷积层实现。第二、第三和第四阶段的层数设置为3、2和1,除了shortcut connections中的最后一层外,ReLU遵循在每个层。

对比CenterNet,主要在以下两方面进行改进:

center localization

对于Center点的位置回归,两个方法都用到了高斯核来增加正样本的数量,也都用到了Focal Loss。但是CenterNet核CornerNet一样,高斯核里的参数sigema只和bbox的面积有关,没有充分考虑bbox的纵横比,而TFFNet为长和宽分别设置了sigema,从而更加合适。

size regression

这部分才是本此作者提出的重点,也是增加高质量样本的实际做法。CenterNet只把heatmap上Object的Center点以及相邻的4个点作为正样本进行物体的大小回归监督,并且只回归bbox的w和h。

而TFFNet继续采取高斯核的方式增加正样本的个数,同时每个正样本回归对应点到bbox四个边的距离。

实验

不同核结果

在shortcut connections中使用不同设置时,速度-准确性权衡如下

与其他性能比较

TTFNet vs. CenterNet

可视化

✄------------------------------------------------

如果想加入我们“计算机视觉研究院”,请扫二维码加入我们。我们会按照你的需求将你拉入对应的学习群!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

扫码关注我们

公众号 : 计算机视觉战队

关注回复:TTFNet,获取源码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 抱歉,我没有直接提供钢材表面缺陷检测系统源代码的能力。不过,您可以在网上搜索钢材表面缺陷检测系统,然后找到基于 YOLOv5 的开源项目,从而获取源代码。您也可以向开源社区寻求帮助,或者在网上请教其他相关专家。希望我的回答对您有所帮助。 ### 回答2: 基于yolov5的钢材表面缺陷检测系统源码是一种用于检测钢材表面缺陷的计算机视觉系统。该系统使用yolov5目标检测算法作为基础,并针对钢材表面缺陷进行了优化和训练。 这个系统的源码包含了建立和训练模型所需的代码和数据集。首先,源码包含了数据预处理部分,可以将原始的钢材表面图片进行清洗和标注,生成训练所需的数据集。然后,源码还包含了模型的构建和训练过程,其中使用了yolov5的网络结构和损失函数,并对该模型进行了特定的调整和优化,以适应钢材表面缺陷检测的需要。训练过程中,可以使用GPU加速,以提高训练速度。 在系统训练完成后,源码还提供了测试和部署的代码。测试部分可以对训练好的模型进行精度评估和性能测试,以验证模型的准确性和鲁棒性。部署部分可以将训练好的模型应用到实际的钢材表面缺陷检测中,包括读取图像、预测缺陷位置和类型,并输出结果。 总的来说,基于yolov5的钢材表面缺陷检测系统源码提供了一种方便、高效、准确的解决方案,能够在工业领域中应用于钢材表面缺陷的自动检测和分类,提升生产效率和产品质量。 ### 回答3: 基于YOLOv5的钢材表面缺陷检测系统源码是一个利用YOLOv5目标检测模型来识别钢材表面缺陷的程序代码。YOLOv5是一种快速而精准的目标检测算法,能够在实时性和准确性之间取得平衡,适用于工业场景中的缺陷检测。 该系统源码主要包括以下几个方面的内容: 1. 数据集准备:针对钢材表面缺陷进行数据采集和标注,生成用于模型训练的数据集。这些数据集需要包含正常和缺陷样本的图像,并对其进行标注,标记出缺陷的位置和类型。 2. 模型构建:基于YOLOv5的网络结构,创建模型架构,并进行相应的配置。这里需要定义模型的输入输出尺寸、损失函数、优化器等,并选择合适的超参数。 3. 模型训练:使用数据集训练模型,通过反向传播算法更新模型的权重和偏置,使其能够准确地检测出钢材表面的各种缺陷。训练过程需要进行多轮迭代,直到模型收敛并达到较好的检测效果。 4. 模型评估:使用测试集对训练好的模型进行评估,计算模型在准确率、召回率等指标上的表现。通过评估结果可以了解模型的性能,并进行必要的调整和优化。 5. 模型应用:将训练好的模型部署到实际的钢材缺陷检测系统中,实时地对钢材表面进行缺陷检测。在检测过程中,模型通过分析输入图像中的物体边界框和类别预测,确定钢材表面是否存在缺陷,并给出相应的缺陷类型和位置信息。 基于YOLOv5的钢材表面缺陷检测系统源码能够提供高效、准确的检测功能,为工业生产中的质量控制和缺陷修复提供了有效的支持。通过自动化的缺陷检测,可以提高生产效率,减少人力成本,并提供了更精确、可靠的判断依据,确保生产过程中的质量和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉研究院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值