实训day2 yolo4学习

yolo4

大量的feature可以增加卷积神经网络(CNN)的精度。在大量数据集上的连接特征的实践测试,和对于结果的理论分析都很需要。一些特征只针对于特定的模型,或者只针对小类型数据库,但其他特征,像 batch-normalization
and residual-connections,(批正常化和剩余连接),都应用于大量的model。我们假定这样通用的特征包括WRC,CSP,CMBN,SAT 和Mish-activation。我们用了 新特征:
WRC
CSP
CmBN
SAT
Mish activation
Mosaic data augmentation
CmBN
DropBlock regularization
CIoU loss
连接其中一部分特征,去得到最先进的一个结果:43.5% AP (65.7% AP50) for the MS COCO dataset at a real-time speed of ∼65 FPS on Tesla V100.

1. Introduction

1.1 大多数基于CNN的对象探测器是只可以应用于推荐系统。比如,通过城市监控搜索免费停车场是能用低速精确度模型的,然鹅撞车警告是与高速不准确模型关联的。增强实时物体探测器的精度不仅为了提示生成精确系统(hint generating recommendation systems),也是为了独立进程管理和减少人工输入服务。实时物体探测器操作在GPU上可以让他们的事务用途更便宜。最精准的城市神经网络不是实时操作的,并且需要大量的GPU去训练大mini-batch-size.这样的问题通过创造一个CNN,来解决在一个卷积GPU上实时操作,这样的训练只需要一个卷积GPU。
什么是mini-batch-size?
1.2 这次工作的主要目标是设计一个更高速的生产系统的物体探测器,以及对并行计算进行优化,而不是低速的计算体积理论指示器。我们希望设计的对象可以被简单地训练和使用。比如说,任何人用卷积GPU可以训练和测试可以达到实时,高质量,且有说服力的对象检测器结果。V4的贡献如下:

  • 我们发明一个有效的对象检测器,每个人用1080 Ti or 2080 Ti GPU 去训练一个极快和准确的对象探测器。
  • 我们通过这个对象探测器的训练验证了最新的Bag-of-Freebies and Bag-of-Specials 方法
  • 我们修正了最新的方法,让他们更有效和合适于单一GPU训练,包括CBN,PAN,SAM.

图一

图一讲的是对MS COCO的物体探测器的两个指标:FPS和AP.可以看出v4有两倍Efficientdet那么快,也比v3增加了很多。

图二

两个阶段的探测器
在这里插入图片描述

  • 输入:图片,补丁,金字塔。。。
  • 骨干
  • neck
  • 密集预测
  • 稀疏预测

related work

物体探测模型

一个模型探测器通常包括两个部分,一个backbone,用于imageNet的先训练,一个head,用于预测classes和bound ingbox。对在GPU上的探测器,backbone可以是 VGG,ResNet, ResNeXt,or DenseNet. 对CPU上的探测器,Backbone可以是SqueezeNet , MobileNet
, or ShuffleNet。至于head部分,通常分为两类:一阶的对象探测器和二阶的对象探测器。最有代表性的二阶对象探测器是R-CNN系列,包括fast R-CNN, faster R-CNN, R-FCN,
and Libra R-CNN。将一个两阶的物体探测器做成anchor-free的对象探测器也可以,像RepPoints 。对于一阶对象探测器,最有代表性的是yolo,ssd,retinanet。最近几年,anchor-free的一阶对象探测器被做成,像CenterNet, CornerNet, FCOS。最近几年的对象探测器通常插入一些层,在backbone和head之间,这些层通常用于去收集不同阶段的特征图。可以称为neck。通常,一个neck由若干条自顶向下的路径和若干由上到下的路径组成。这样的网络有Feature Pyramid Network (FPN), Path Aggregation Network (PAN), BiFPN, and NAS-FPN。除了以上模型之外,一些人着重于直接建立新backbone (DetNet,DetNAS )或者为对象探测建立一个新的整个模型 (SpineNet, HitDetector) 。

Bag of freebies(什么意思?)

通常,一个传统的物体探测器是可以离线训练的。因此,研究者通常喜欢这个优点并且建立更好的训练方法,可以让物体探测器接收更好的精确度而不需要增加推理成本。我们称这个方法(只改变训练方法或者只增加训练成本)为“Bag of freebies”。数据增加是通常通过物体探测方法和达到Bag of freebies的定义形成的。数据增加*(什么是data augmentation?)* 的目的是增加输入图片的可变性,所以被设计的物体探测器模型有更高的稳健性从不同的环境中获得物体。比如说,光度畸变和几何畸变是两个常见的数据增加方法,他们十分有利于物体探测任务。在解决光度畸变时,我们调整了亮度,对比度,色调、饱和度和噪声;对于几何失真,我们添加了随机缩放、剪切、翻转和旋转。
以上的数据增加方法都是像素级调整,并保留调整区域内的所有原始像素信息。除此之外,一些人参与数据调整,着重于模拟闭塞问题。他们在图像分类和识别上取得了很好的结果。 比如说 random erase [100] and CutOut [11]可以随机选择一个图片的矩形区并随即填充 ,或者零的余值(?)
对于hide-and-seek 和grid mask,他们随机或几乎选择多个矩形区域在一张图片上,并用0替换它们。 如果相似的概念应用于特征图,就是 DropOut [71], DropConnect [80], and DropBlock [16]methods。除此之外,一些研究者提出用多个图片一起区增加数据。例如,mixup用两个图片以不同的系数去乘或重叠,然后通过重叠率去调整标签。对于cutmix,它盖住裁剪的图片在其他图片的矩形区域上,并且调整标签,为了达到最大尺寸区域。除了以上方法,GAN也是用于数据增加,这样很有效率得减少了纹理偏度通过CNN学习。
不同于以上方法,一些其他的 bag of freebies methods专用于解决数据库的可能会有偏度的语义分布。在解决语义偏度的问题时,一个很重要的问题是不同类别的数据不平衡。这个问题通常通过 hard negative example mining 和online hard example mining在两阶物体探测器中解决。但是example mining方法不适用于一阶对象探测器,因为这种属于密集度预测架构。因此某人提出了焦点损失去解决不同类型之间的数据不平衡问题。另一个问题是很难去表达不同类别的练习的层次,用the one-hot hard表示法。这种代表结构通常用于执行标签时。(什么是label?)
标签平滑的提出是为了转换hard标签to soft标签为了训练,可以让模型更robust。为了获得更好的软标签,提出了知识蒸馏去设计标签提炼网。

bag of specials

安装pytorch

我用的是anaconda来安装,先用acaconda创建了pytorch环境

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值