<div>
<p></p>
<div style="text-align:center;">
<img alt="7e30aea7715efe785f38db29b58c8430.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-38ea8f9d8343ffc0397e98ad790f20c4.png">
</div>
<blockquote>
本文源自知乎
</blockquote>
Alpha猫:目标检测之YOLOv4zhuanlan.zhihu.com
<div style="text-align:center;">
<img alt="" src="">
</div>
<p>本文是YOLO系列的一个继承篇,由俄罗斯开发者Alexey Bochkovskiy和两位中国台湾开发者Chien-Yao Wang和Hong-Yuan Mark Liao联合推出。</p>
<p>作者总结了近些年的深度学习目标检测技巧,进行了大量的实验,使得YOLOv4在精度和速度上都表现得非常出色。</p>
<h2>Abstract</h2>
<p>卷积神经网络(CNN)中有大量的特性可以进行改进而提高精度。这些特性组合需要在大型数据集上进行测试,同时对结果进行理论证明。其中的一些特性仅仅适合于一些特定的模型和问题,或者仅适用于小规模数据集;而例如batch-normalization和residual-connections这样的方法则适用于大多数的模型、工作和数据集。类似的还包括:</p>
<ul><li>Weighted-Residual-Connections(WRC)</li><li>Cross-Stage-Partial-connections(CSP)</li><li>Cross mini-Batch Normalization(CmBN)</li><li>Self-adversarial-training(SAT) and Mish-activation</li></ul>
<p>本文利用WRC,CSP,CmBN,SAT, Mish activation,Mosaic data augmentation,CmBN,DropBlock regularization,and CIoU loss实现了一个更高水平的结果:43.5% AP (65.7% </p>
<div style="text-align:center;">
<img alt="" src=""> ) for the MS COCO dataset at a real-time speed of ~65 FPS on Tesla V100。
</div>
<h2>Introduction</h2>
<p>大多数基于CNN的目标检测器仅仅适用于推荐系统。例如在城市中摄像机拍摄免费停车位时,使用速度慢却精度高的模型,而在监控汽车的碰撞时则使用识别速度快却精度不高的模型。因此提升实时的目标检测器是很有必要的。不仅用于生成推荐系统,并且利于独立的流程管理和减少人力。在传统的GPU上进行实时的目标检测运算会带来更小的代价。当下,最精确的神经网络并不具备实时性,并且需要使用大量的GPU进行小批量的运算。我们通过创建一个CNN并利用一个GPU来解决这些问题。</p>
<p>这项工作的主要目标是提升生产系统中目标检测器的速度以及优化并行运算,而不是BFLOP。</p>
<p>我们希望设计的对象能够更容易地训练和使用。任何人使用传统的GPU便能够进行实时的训练和测试,并能够获得高质量的实时监测结果。</p>
<p></p>
<div style="text-align:center;">
<img alt="3b0527a02119c80da7eea909cb5fbbd0.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f9b12f0c90197a1bc912135d2b8c862d.png">
</div>
<p>我们做出了如下贡献:</p>
<ol><li>我们构建了一个高效且强大的目标检测模型。这使得每一个人能够使用一个1080Ti或2080TiGPU来训练一个超快速和精确的目标检测器。</li><li>在检测器训练时,我们验证了最先进Bag-of Freebies and Bag-of-Specials目标检测方法的影响。</li><li>我们对一些先进的方法进行修改,包括CBN、PAN、SAM,使得它们更加的高效并适合单GPU运算。</li></ol>
<h2>Related Work</h2>
<p><b>Object detection models</b></p>
<p>现在的检测器通常由两部分组成,一 部分是在ImageNet上预训练的主干网络,另一部分则用来预测物体类别以及边界框。</p>
<p>对于那些在GPU平台上运行的检测器,它们的主干网络可能为VGG、ResNet、ResNeXt或DenseNet。</p>
<p>而对于那些在CPU平台上运行的检测器,他们的检测器可能为SqueezeNet ,MobileNet, ShufflfleNet。</p>
<p>头部一半分为一阶段目标检测器和二阶段目标检测器。最具代表性的二阶段目标检测器R-CNN系列,包括fast R-CNN,faster R-CNN ,R-FCN [9],Libra R-CNN。也可以使得二阶段目标检测器成为anchor-free目标检测器,例如RepPoints。至于一阶段目标检测器,最具代表性的网络包括YOLO、SSD、RetinaNet。</p>
<p>近年来,一阶段的anchor-free目标检测器在不断发展,包括CenterNet、CornerNet、FCOS等。在近些年来的发展,目标检测器通常是在头部和主干网络之间加入一些层,这些层被用来收集不同阶段的特征图,可以称之为目标检测器的颈部。这部分通常由几个自下而上和自上而下的路径组成。</p>
<p>拥有这种机制的网络包括Feature Pyramid Network (FPN),Path Aggregation Network (PAN),BiFPN和NAS-FPN。</p>
<p>除了上述模型外,一些研究人员将重心放在了研究主干网络上(DetNet,DetNAS),而还有一些研究人员则致力于构建用于目标检测的新的模型(SpineNet,HitDetector)。</p>
<p>总的来说,一般的目标检测器由以下几部分组成:</p>
<p><b> Input</b>: Image, Patches, Image Pyramid |
|