加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
早上刷到YOLOv4之时,非常不敢相信这是真的!
paper:https://arxiv.org/pdf/2004.10934.pdf,
code:https://github.com/AlexeyAB/darknet
核心中的核心:作者将
Weighted-Residual-Connections(WRC), Cross-Stage-Partial-connections(CSP), Cross mini-Batch Normalization(CmBN), Self-adversarial-training(SAT),Mish-activation Mosaic data augmentation, DropBlock, CIoU
等组合得到了爆炸性的YOLOv4,可以吊打一切的YOLOv4.在MS-COCO数据上:43.5%@AP(65.7%@AP50)同时可以达到65fps@TeslaV100.
作者设计YOLO的目的之初就是设计一个快速而高效的目标检测器。该文的贡献主要有以下几点:
作者在现有实时网络的基础上提出了两种观点:
网络结构选择是为了在输入分辨率、网络层数、参数量、输出滤波器数之间寻求折中。作者研究表明:CSPResNeXt50在分类方面优于CSPDarkNet53,而在检测方面反而表现要差。
网络主要结构确定了后,下一个目标是选择额外的模块以提升感受野、更好的特征汇聚模块(如FPN、PAN、ASFF、BiFPN)。对于分类而言最好的模型可能并不适合于检测,相反,检测模型需要具有以下特性:
一句话就是:选择具有更大感受野、更大参数的模型作为backbone。下图给出了不同backbone的上述信息对比。从中可以看到:CSPResNeXt50仅仅包含16个卷积层,其感受野为425x425,包含20.6M参数;而CSPDarkNet53包含29个卷积层,725x725的感受野,27.6M参数。这从理论与实验角度表明:CSPDarkNet53更适合作为检测模型的Backbone。
在CSPDarkNet53基础上,作者添加了SPP模块,因其可以提升模型的感受野、分离更重要的上下文信息、不会导致模型推理速度的下降;与此同时,作者还采用PANet中的不同backbone级的参数汇聚方法替代FPN。
最终的模型为:CSPDarkNet53+SPP+PANet(path-aggregation neck)+YOLOv3-head = YOLOv4.
为更好的训练目标检测模型,CNN模型通常具有以下模块:
作者从上述模块中选择如下:激活函数方面选择Mish;正则化方面选择DropBlock;由于聚焦在单GPU,故而未考虑SyncBN。
为使得所涉及的检测器更适合于单GPU,作者还进行了其他几项额外设计与改进:
总而言之,YOLOv4包含以下信息:
模型的好坏最终还是要通过实验来验证,直接上对比表:
更多的消融实验分析如下:
各位小伙伴还是赶紧去研究一下原文吧,在极市平台后台回复YOLOv4即可获取论文下载链接。
推荐阅读:
△长按添加极市小助手
△长按关注极市平台,获取最新CV干货
觉得有用麻烦给个在看啦~