来源|周威@知乎,https://zhuanlan.zhihu.com/p/159209199
作者:Miracle R 编译:ronghuaiyang 导读 对YOLOv4中的Mish激活函数进行解释和优缺点对比。 在这里,我们会来看看YOLOv4,特别是它的优化器,使用的两个bags的优化函数:在训练期间使用的“Bag of Freebies (BoF)”和在推理期间使用的“Bag of Specials (BoS Bag of Specials包含了用于YOLOv4架构的主干和检测器的低计算成本模块。这些是: ? 在这里,我们可以看到Mish激活函数同时存在于主干和检测器中。 在YOLOv4中使用Mish函数的原因是它的低成本和它的平滑、非单调、上无界、有下界等特点,与其他常用函数如ReLU和Swish相比,提高了它的性能。 在YOLOv4中,使用了Mish函数+ CSPDarknet53的组合,尽管代价有点高,但它极大地提高了检测的准确性,因此使Mish成为**“Specials”**之一。 ? ?
AlexeyAB大神继承了YOLOv3, 在其基础上进行持续开发,将其命名为YOLOv4。 Darknet原作者pjreddie在readme中承认了YOLOv4 来看看YOLOv4和一些SOTA模型的对比,YOLOv4要比YOLOv3提高了近10个点。 ? FPS vs AP 1. 思维导图 YOLOv4总体上可以划分为两部分,一部分是讲Bag of freebies和Bag of Specials; 另外一部分讲的是YOLOv4的创新点。 ? YOLOv4的思维导图 Bag of freebies和Bag of specials涉及到的大部分trick在GiantPandaCV公众号历史文章中都有介绍,所以不一一列举,主要讲一下YOLOv4的创新点 所以有人多人都说YOLOv4是拼凑trick得到的。
YOLOv4是精度速度最优平衡, 各种调优手段是真香,本文主要从以下几个方面进行阐述: YOLOv4介绍 YOLOv4框架原理 BackBone训练策略 BackBone推理策略 检测头训练策略 检测头推理策略 YOLOV4论文: https://arxiv.org/pdf/2004.10934.pdf YOLOV4代码: https://github.com/AlexeyAB/darknet 2.YOLOv4 这里YOLOv4用了DropBlock正则化的方法。 在YOLOv4中,使用修改后的SAM而不应用最大值池化和平均池化。 ? 在YOLOv4中,FPN概念逐渐被实现/替换为经过修改的SPP、PAN和PAN。 本文从YOLOv4介绍,YOLOv4框架原理,BackBone训练策略,BackBone推理策略,检测头训练策略,检测头推理策略这几个大方面进行详细的阐述了YOLOv4中所用到的各种策略,希望对大家有所帮助
大神接棒,YOLOv4来了! 当大家以为再也见不到YOLOv4的时候,然鹅今天 YOLOv4 来了! YOLOv4的作者阵容里并没有Joe Redmon,也验证了大神曾说不再继续CV研究的这条消息。 YOLO官方github正式加入YOLOv4的论文和代码链接,也意味着YOLOv4得到了Joe Redmon的认可,也代表着YOLO的停更与交棒。 ? 关于YOLOv4,Amusi 曾写过这样一篇文章来预宣传(现在想想,应该是全网第一个这样介绍的):等待YOLOv4的期间,它还在更新 YOLOv4的一作是 Alexey Bochkovskiy,用过YOLO YOLOv4 正文 ? 感受一下YOLOv4实验的充分性(调参的艺术) ? ? 感受一下性能炸裂的YOLOv4实验结果 ? ? ? ? 论文篇幅很长,高达17页,干货满满!
YOLOv3发布于2018年3月份,当时 CVer 第一时间进行了推文报道,详见:YOLOv3:你一定不能错过 如今时隔快两年,YOLOv3并没有进化到YOLOv4,但不影响大家对YOLOv3的关注度。
PANet: PANet位在于YOLOv4模型的neck,主要通过保留空间信息来增强实例分割过程。 ? 为YOLOv4做的修改 PANet通常使用自适应特征池化将相邻的层相加到一起进行mask预测。 但是,在YOLOv4中使用PANet时,这种方法做了点修改,例如,不是相加相邻的层,而是对它们应用一个拼接操作,以提高预测的准确性。 ? YOLOv4采用了PANet,由于其简单的实现和高性能,提高了预测的准确性,速度是EfficientDet的两倍。 ? 在YOLOv4中测试时,它显示出了令人惊叹的结果,并大大提升了特征提取过程,保证了它在YOLOv4模型的neck的位置。
深度剖析目标检测算法YOLOV4 目录 简述 yolo 的发展历程 介绍 yolov3 算法原理 介绍 yolov4 算法原理(相比于 yolov3,有哪些改进点) YOLOV4 源代码日志解读 下图是 YOLOV4 源代码的页面,github: https://github.com/AlexeyAB/darknet ? 顺便说一句,YOLOV3 的作者也是认可 YOLOV4 的改进的,在 YOLOV3 的官网 https://github.com/pjreddie/darknet 也是给出了 YOLOV4 的链接。 yolov4 算法原理 ? 还是借用某位大神画的结构图,记不清名字了,是在抱歉。 YOLOV4 源代码日志解读 ? 网络层数: YOLOV4 总共层数有 161 层,YOLOV3 是 106 层,网络层数增加是非常明显的。
PANet: PANet位在于YOLOv4模型的neck,主要通过保留空间信息来增强实例分割过程。 YOLOv4的改进 PANet通常使用自适应特征池化将相邻的层相加到一起进行mask预测。 但是,在YOLOv4中使用PANet时,这种方法做了点修改,例如,不是相加相邻的层,而是对它们应用一个拼接操作,以提高预测的准确性。 YOLOv4采用了PANet,由于其简单的实现和高性能,提高了预测的准确性,速度是EfficientDet的两倍。 在YOLOv4中测试时,它显示出了令人惊叹的结果,并大大提升了特征提取过程,保证了它在YOLOv4模型的neck的位置。
结论: 测试10张图片,计算平均耗时: yolo_cpp_dll.dll 自己编译生成的 yolov3 18ms 100% yolov3-tiny 5ms 检出率60% 比较节省gup资源 yolov4 35ms 检出率90% yolo_cpp_dll_gpu.dll--旧版的dll,以前同事留下的 yolov3 19ms 70% yolov3-tiny 6ms 检出率40% yolov4 34ms 检出率0% 结论:dll对测试效果也有影响,yolov3-tiny检出速度快但是检出率不高,yolov4虽然做了优化,但是在耗时和检出率上反而下降了 ,原因不详!
完整的权重文件和项目都放在后台了,回复“yolov4” 即可获取。 欢迎分享,帮助更多的小伙伴! 使用YOLOv4、DeepSort和TensorFlow实现的目标跟踪。 YOLOv4是一种非常优秀的算法,它使用深卷积神经网络来执行目标检测。更详细的介绍可以参考之前文章。 吊打一切的YOLOv4的tricks汇总! # Convert darknet weights to tensorflow model python save_model.py --model yolov4 # Run yolov4 deep /outputs/demo.avi --model yolov4 # Run yolov4 deep sort object tracker on webcam (set video flag to /outputs/webcam.avi --model yolov4 --output 后面接的是目标跟踪输出结果视频文件的存储路径。
参考前文 windows 10安装CUDA和cuDNN,地址是:https://xugaoxiang.com/2019/12/18/windows-10-cuda-cudnn/, 这里不再赘述。
微信公众号:OpenCV学堂 前一阵子YOLOv4发布了,后面就是YOLOv5,估计再过几天就要YOLOv10086了,这个时代技术进步太魔幻,改几个参数就可以继续升级版本。 2020.718 OpenCV4.4发布了,支持YOLOv4推理,于是我立刻测试了一波。 模型下载 YOLOv4的相关模型合集在这里 https://github.com/AlexeyAB/darknet/wiki/YOLOv4-model-zoo 我使用的是基于COCO预训练模型: YOLOv4 -Leaky OpenCV4.4 DNN OpenCV4.4 支持YOLOv4,这个是它的官方release里面说的,其实我早就发现了YOLOv4可以通过OpenCV4.2直接跑,怎么OpenCV4.4 OpenCV4.4 DNN + YOLOv4对象检测演示 跟YOLOv3一样,YOLOv4也有三个输出层,完成推理之后,需要在进一步通过NMS实现对重叠框的去除,什么是NMS(非最大抑制),看下图就懂啦
YOLO对象检测模型自问世以来受到计算机视觉开发者的追捧、应用广发,已经陆续发出了三个版本分别是YOLOv1~YOLOv3,现在YOLOv4也出炉了,精度与速度全面超越YOLOv3版本,废话不多说了,有图为证 YOLOv4改进 作者的改进主要是基于以下几点: 1.可以使用1080Ti或者2080Ti训练一个超级快与高精度的对象检测器 2.在训练时使用BOF(Bag-of-Freebies)与BOS(Bag-of-Specials 总结: 最终的YOLOv4网络组成如下: - BackBone CSPDarknet53 - Neck: SPP,PAN - Head: YOLOv3 ? 训练阶段各种数据增强的方法: ?
1再看YOLOv4 YOLOv4是一个高精度的单阶段目标检测模型,它通过生成边界框坐标并为每个类分配概率,将目标检测任务转换为一个回归问题。 图1 YOLOv4 在网络架构中,将残差模块集成到ResNet网络结构中,获得DarkNet53。 此外,YOLOv4具有较高的计算成本和较长的训练时间,这可能不适用于现场移动设备。 2改进YOLOv4 为了解决上述与实时疾病检测程序相关的问题,本研究对最先进的YOLOv4算法进行了改进和优化,用于在复杂的背景环境中准确预测细粒度图像多属性检测。 改进后的YOLOv4网络架构的完整示意图如图3所示。
火灾检测数据集图像2059张:包含大火-小火,建筑起火、草原起火、森林起火、车辆(汽车、卡车、摩托车、电动车)起火、白天-黑夜起火等场景;
PP-YOLO评估显示出更快的推断(x轴)和更好的准确性(y轴) PP-YOLO评估指标显示出比现有的最新对象检测模型YOLOv4更高的性能。 YOLOv4于今年春天由Alexey AB在YOLO Darknet存储库中发布。YOLOv4主要是其他已知计算机视觉技术的集合,并通过研究过程进行了组合和验证。 PP-YOLO胜过2020年4月23日发布的YOLOv4结果。 作者的意图似乎不只是“引入一种新颖的新型检测器”,而是展示了仔细调整对象检测器以最大化性能的过程。 论文中显示了这些指标,胜过了YOLOv4和EfficientDet的当前发布结果。 此外,已经表明,在YOLOv5 Ultralytics存储库上训练YOLOv4体系结构的性能要优于YOLOv5,并且,以过渡方式,使用YOLOv5贡献进行训练的YOLOv4的性能将胜过此处发布的PP-YOLO
例如,任何使用传统GPU进行训练和测试的人都可以获得实时、高质量、令人信服的对象检测结果,如图1所示的YOLOv4结果。 ? 我们的主要贡献如下: 我们开发了一个高效、强大的目标检测模型。 最后,我们选择CSPDarknet53主干、SPP添加模块、PANet路径聚集颈和YOLOv3(基于锚的)头作为YOLOv4的架构。 3.4 YOLOV4 直接直接放英文好理解: ? ? 4.
近日,就有研究者在 GitHub 上更新了基于 PyTorch 的 YOLOv4。 从今年 4 月 YOLOv4 发布后,对于这个目标检测框架,问的最多的问题或许就是: 「有没有同学复现 YOLOv4 的, 可以交流一下么」。 近日,有研究者在 GitHub 上开源了一个项目:基于 PyTorch 深度学习框架的 YOLOv4 复现版本,该版本基于 YOLOv4 作者给出的实现 AlexeyAB/darknet,并在 PASCAL attentive YOLOv4 该项目向主干网络添加了一些注意力方法,如 SEnet、CBAM。 ? SEnet (CVPR 2017) ? 准备工作 1. git 复制 YOLOv4 库 准备工作的第一步是复制 YOLOv4。
YOLOv5的代码是开源的,因此我们可以从github上克隆其源码。不得不说GitHub的确是全球最大的男性交友网站,里面的人个个都是人才,yolov5发布才一年左右的时间,YOLOv5就已经更新了5个分支了,分别是yolov5.1-yolov5.5分支。该项目就是利用的yolov5.5分支来作为讲解。