【YOLOv4探讨 之一】 总体认识
1.总体思想
YOLO模型本来就是奔着工业化去的,从v1到v3基本上都是在主体框架上不断的改进。v1是雏形,构建了YOLO的主体设计模型;v2引入标准化和FPN,提高了准确度;v3引入残差结构,大大增加了深度,提升了性能。而到了v4,就是将当前最流行的改善效果的方法来个了大乱炖,同时还保证你在比较“简陋”(一个1080 Ti or 2080 Ti GPU)的条件下能够又快又好向前发展。有了这个思路,我们就要看看YOLOv4这个“佛跳墙”里面增加了什么山珍海味。
论文《YOLOv4: Optimal Speed and Accuracy of Object Detection》摘要中将这些方法称为features,有的feature通用、有的feature专用,然后假设通用的有:加权残差连接(WRC, Weighted-Residual-Connections),跨阶段局部连接(CSP, Cross-Stage-Partial-connections), 交叉最小下批次归一化(CmBN, Cross mini-BatchNormalization), 自对抗训练(SAT, Self-adversarial-training)和Mish激活(Mish-activation);接着再兑上Mosaic数据分割DropBlock标准化,CIoU损失函数;最后再挑选一些组合组合,提升了性能。创新点在哪呢?使得YOLOv4可以在使用单个CPU的条件下训练出数据并快速探测目标,保证可速度和精度,扩大了模型的应用场景的范围。作者说YOLOv4主要目标就是设计一个工业用途的快速探测器,并对并行计算进行优化,所有的features都是围绕这个目标。
对于YOLOv4增加的features,光看这一堆名词都有些神经恍惚,加进来的都是啥么?其实也没那么复杂,原始创新就那么多,更多的是组合创新,就是把一些简单的features合并成更加复杂的features,然后使得新的features具备多种优势。由于这个合并的过程中需要解决一些连接组合的小问题,所以各路研究僧们都在施展法术,组合之后,命名一些新的名词,也算自己的成果嘛。
但是真的只是炖了一锅“佛跳墙”那么简单吗?非也,Alexey之所以是一个高级厨师,是因为他能够站在全局的高度进行顶层设计,论文中的目标识别的总体结构图很值得把玩,我已经兴奋的控制不住要展(dao)示(tu)了: