YOLOv4团队最新开源!YOLOv4改进版!!!Scaled-YOLOv4解读
摘要:
该文提出一种“网路扩展(Network Scaling)”方法,它不仅针对深度、宽度、分辨率进行调整,同时调整网络结果,作者将这种方法称之为Scaled-YOLOv4。
由此得到的YOLOv4-Large取得了SOTA结果:在MS-COCO数据集上取得了55.4%AP(73.3% AP50),推理速度为15fps@Tesla V100;在添加TTA后,该模型达到了55.8%AP(73.2%AP50)。截止目前,在所有公开论文中,YOLOv-Large在COCO数据集上取得最佳指标。而由此得到的YOLOv4-tiny取得了22.0%AP(42.0%AP50),推理速度为443fps@TRX 2080Ti;经由TensorRT加速以及FP16推理,batchsize=4时其推理速度可达1774fps。
论文PDF版本可在公众号【计算机时间联盟】后台回复【20201118】下载
本文第4章涉及的开源代码
YOLOv4-CSP: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-csp
YOLOv4-tiny: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-tiny
YOLOv4-large: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-large
该文的主要贡献包含以下几点:
-
设计了一种强有力的“网络扩展”方法用于提升小模型的性能,可以同时平衡计算复杂度与内存占用;
-
设计了一种简单而有效的策略用于扩展大目标检测器;
-
分析了模型扩展因子之间的相关性并基于最优划分进行模型扩展;
-
通过实验证实:FPN structure is inherently a once-for-all structure
-
基于前述分析设计了两种高效模型:YOLOv4-tiny与YOLOv4-Large。
Scaled-YOLOv4
接下来,我们将尝试把YOLOv4扩展到不同的GPU(包含低端和高端GPU)。
CSP-ized YOLOv4
YOLOv4是一种针对通用GPU设计的实时目标检测方案。在这里,作者对YOLOv4进行重新设计得到YOLOv4-CSP以获取最佳的速度-精度均衡。
Backbone
在CSPDarknet53的设计中,跨阶段的下采样卷积计算量并未包含在残差模块中。因此,作者推断:每个CSPDarknet阶段的计算量为。从该推断出发,CSPDarknet比DarkNet具有更好的计算量优势(k>1)。CSPDarkNet53每个阶段的残差数量分别为1-2-8-8-4。为得到更好的速度-精度均衡,作者将首个CSP阶段转换为原始的DarkNet残差层。
Neck
更有效的降低参数量,作者将PAN架构引入到YOLOv4中。PAN架构的处理流程见下图a,它主要集成了来自不同特征金字塔的特征。改进后的处理流程见下图b,它还同时引入了ChannelSplitting机制。这种新的处理方式可以节省40%计算量。
SPP
原始的SPP模块位于Neck中间部分,作者同样将SPP插入到CSPPAN中间位置,见上图b。
YOLOv4-tiny
YOLOv4是专为低端GPU而设计的一种架构,其计算模块见下图。在这里,作者采用CSPOSANet+PCB架构构成了YOLOv4的骨干部分。
在计算模块中,,。通过计算,作者推断得到k=3,其对应的计算单元示意图见上图。至于YOLOv4-tiny的通道数信息,作者延续了YOLOv3-tiny的设计。
YOLOv4-large
YOLOv4-large是专为云端GPU而设计的一种架构,主要目的在于获得更好的目标检测精度。作者基于前述分析设计了一个全尺寸的YOLOv4-P5并扩展得到了YOLOv4-P6和YOLOv4-P7。其对应的网络结构示意图见下图。
作者通过实验发现:YOLOv4-P6(宽度缩放因子1)可以达到30fps的实时处理性能;YOLOv4-P7(宽度缩放因子1.25)可以达到15fps的处理速度。
Experiments
作者在MSCOCO-2017数据集上验证了所提Scaled-YOLOv4的性能,作者提到并未采用ImageNet进行预训练,所有YOLOv4模型均从头开始训练。YOLOv4-tiny的训练了600epoch;YOLOv4CSP训练了300epoch;YOLOv4-large先训练了300epoch,然后采用更强的数据增广技术训练了150epoch。其他训练相关的超参作者采用k-mean与遗传算法决定。
Ablation study on CSP-ized model
作者首先针对CSP-ized模型进行了消融实验分析,结果见下表。作者从参数量、计算量、处理流程以及平均精度方面进行了CSP-ization的影响性分析。作者采用Darknet53作为骨干网络,选择FPN+SPP与PAN+SPP作为neck进行消融分析。作者同时还采用了LeakyReLU与Mish进行对比分析。
从上表可以看到:CSP-ized模型可以极大的降低参数量与计算量达32%,同时带来性能上的提升;同时还可以看到:CD53s-CFPNSPP-Mish、CD53s-CPANSPP-Leaky与D53-FPNSPP-Leaky相同的推理速度,但具有更高的指标(分别搞1%和1.6%AP),且具有更低的计算量。
Ablation study on YOLOv4-tiny
接下来,我们将通过实验来证实:CSPNet+partial的灵活性。作者将其与CSP-Darknet53进行了对比,结果见下表。
从上表可以看到:所设计的PCB技术可以使模型更具灵活性,因为它可以更具实际需要进行结构调整。同时也证实:线性缩放方式的局限性。作者最终选择COSA-2x2x作为YOLOv4-tiny,因其取得最佳的精度-速度均衡。
Scaled-YOLOv4 for object detection
上图给出了本文所提Scaled-YOLOv4与其他SOTA目标检测方法的对比,可以看到:所提方法在不同约束下均取得了最佳的均衡。比如,YOLOv4-CSP与EfficientDet-D3具有相同的精度,但具有更开的推理速度(1.9倍);YOLOv4-P5与EfficientDet-D5具有相同的精度,推理速度则快2.9倍。类似现象可见:YOLOv4-P6 vs EfficientDet-D7, YOLOv4-P7 vs EfficientDet-D7x。更重要的是:所有Scaled-YOLOv4均达到了SOTA结果。
与此同时,作者还给出了添加TTA后的YOLOv4-large性能,可以看到分别可以得到1.1%,0.6%与0.4%AP的指标提升。
作者还对比了YOLOv4-tiny与其他tiny目标检测器的性能对比,见下表。可以看到:YOLOv4-tiny取得了最佳的性能。
最后,作者在不同的嵌入式GPU上测试了YOLOv4-tiny的性能,见下图。可以看到:无论哪种硬件平台下,YOLOv4-tiny均可以达到实时性。经过TensorRT FP16优化后的YOLOv40tiny最高可以达到1774fps的推理速度。
YOLO系列相关文章
1. YOLOv1: https://arxiv.org/abs/1506.02640
2. YOLO9000:https://arxiv.org/abs/1612.08242
3. YOLOv3: https://arxiv.org/abs/1804.02767
4. YOLO-Lite: https://arxiv.org/abs/1811.05588
5. Gaussian YOLOv3: https://arxiv.org/1904.04620
6. REQ-YOLO: https://arxiv.org/abs/1909.13396
7. xYOLO: https://arxiv.org/abs/1910.03159
8. YOLO-Nano: https://arxiv.org/abs/1910.01271
9. CSPNet:https://arxiv.org/abs/1911.11929
10. YOLOv4: https://arxiv.org/abs/2004.10934
11. Poly-YOLO: https://arxiv.org/abs/2005.13243
12. PP-YOLO: https://arxiv.org/abs/2007.12099
论文标题:Scaled-YOLOv4:Scaling Cross Stage Partial Network
链接:https://arxiv.org/2011.08036
代码: https://github.com/WongKinYiu/ScaledYOLOv4
文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。
原文链接:kings.blog.csdn.net/article/details/109766170
- 点赞
- 收藏
- 关注作者
评论(0)