一、背景概述

目标检测是计算机视觉中最重要的课题之一。大多数计算机视觉问题都涉及检测视觉对象类别,如行人、汽车、公共汽车、人脸等。这一领域不仅限于学术界,而且在视频监控、医疗保健、车载传感和自动驾驶。

许多用例,尤其是自动驾驶,需要高精度和实时推理速度。因此,选择适合速度和准确性要求的物体检测器变得至关重要。YOLO(You Only Look Once)是一种单级目标检测器,用于实现两个目标(即速度和准确性)。而今天,我们将通过涵盖所有 YOLO 变体(例如,YOLOv1、YOLOv2、...、YOLOX、YOLOR)来介绍 YOLO 家族。

自成立以来,对象检测领域已经显着增长,并且最先进的架构在各种测试数据集上都能很好地推广。但是要了解这些当前最好的架构背后的魔力,有必要知道这一切是如何开始的,以及我们在 YOLO 家族中已经走到了多远。

物体检测算法分为三类:

1、基于传统计算机视觉

2、基于两阶段深度学习的算法

3、第三个是基于单阶段深度学习的算法

今天,我们将讨论 YOLO 对象检测家族,它属于单阶段深度学习算法。

我们相信这是一篇独一无二的博客文章,在一篇文章中涵盖了所有 YOLO 变体,将帮助您深入了解每个变体,并可能帮助您为您的项目选择最佳的 YOLO 版本。

本课是我们关于YOLO 物体检测器的 7 部分系列教程的第一篇:

YOLO家族简介( 本次教程)

了解实时对象检测网络:您只看一次 (YOLOv1)

更好、更快、更强的物体检测器 (YOLOv2)

使用 COCO 评估器的平均精度 (mAP)

渐进式改进 (YOLOv3)

目标检测的最佳速度和准确性 (YOLOv4)

在darknet中使用 YOLOv4 训练自定义对象检测器

二、物体检测简介

回想一下图像分类中的目标是回答“图​​像中存在什么?”的问题。模型试图通过为图像分配特定标签来理解整个图像。

通常,我们处理图像分类中仅存在一个对象的情况。如图 1所示,我们有一个圣诞老人和几个对象,但主要对象是圣诞老人,它以 98% 的概率被正确分类。那太棒了。在像这样的某些情况下,当图像描绘单个对象时,分类足以回答我们的问题。

但是,在很多场景中,我们不能用一个标签来说明图像中有什么,图像分类不足以帮助回答这个问题。例如,考虑图 2,其中模型检测到三个对象:两个人和一个棒球手套,不仅如此,它还识别每个对象的位置。这称为对象检测。

对象检测的另一个关键用例是自动车牌识别,如图 3所示。现在问自己一个问题,除非您知道车牌的位置,否则您将如何识别车牌的字母和数字?当然,首先,您需要使用物体检测器识别车牌的位置,然后应用第二种算法来识别数字。

对象检测涉及分类和定位任务,用于分析图像中可能存在多个对象的更现实情况。因此,目标检测是一个两步过程;第一步是找到物体的位置。

第二步是将这些边界框分类为不同的类别,因为这种对象检测会遇到与图像分类相关的所有问题。此外,它还面临本地化和执行速度的挑战。

1、面临的挑战

拥挤或杂乱的场景:图像中的物体过多(图 4)使其非常拥挤。这给对象检测模型带来了各种挑战,例如遮挡可能很大,对象可能很小,以及规模可能不一致。

类内方差:对象检测的另一个主要挑战是正确检测同一类的对象,这些对象可能具有高方差。例如,如图 5所示,有 6 个品种的狗,它们都有不同的大小、颜色、毛长、耳朵等,因此检测这些相同类别的物体可能具有挑战性。

类不平衡:这是一个影响几乎所有模式的挑战,无论是图像、文本还是时间序列;更具体地说,在图像领域,图像分类非常困难,目标检测也不例外。我们称之为目标检测中的前景-背景类别不平衡,如图 6所示。

要了解类别不平衡如何在对象检测中造成问题,请考虑包含很少主要对象的图像。图像的其余部分被背景填充。结果,该模型将查看图像(数据集)中的许多区域,其中大多数区域将被视为负片。由于这些负面因素,模型无法学习到有用的信息,并且可能会压倒模型的整个训练。

许多其他挑战与对象检测相关,例如遮挡、变形、视点变化、照明条件和实时检测的基本速度(许多工业应用中需要)。

2、物体检测的历史

目标检测是计算机视觉中最关键和最具挑战性的问题之一,随着它的发展,它在过去十年中创造了历史。然而,这一领域的进展是显着的。每年,研究界都会达到一个新的最先进的基准。当然,如果没有深度神经网络的强大功能和 NVIDIA GPU 的海量计算能力,这一切都是不可能的。

在物体检测的历史上,有两个截然不同的时代:

1、直到 2010 年,传统的计算机视觉方法都在游戏中。

2、从 2012 年开始,当 AlexNet(一种图像分类网络)赢得ImageNet 视觉识别挑战时,卷积神经网络的新时代开始了。

这两个时代的区别在图 7中也很明显,它显示了目标检测的路线图,从 2004 年的Viola-Jones Detector 到2019 年的EfficientDet。值得一提的是,基于深度学习的检测方法更进一步分为两级探测器和单级探测器。

大多数传统的对象检测算法,如 Viola-Jones、定向梯度直方图 (HOG) 和可变形零件模型 (DPM),都依赖于从图像和经典机器学习算法中提取边缘、角落、梯度等手工特征。例如,第一个对象检测器 The Viola-Jones 仅设计用于检测人的正面,在侧面和上下面部方面表现不佳。

然后,2012年迎来了一个新时代。一场彻底改变了计算机视觉游戏规则的革命是,一种深度卷积神经网络 (CNN) 架构AlexNet出于改进 ImageNet 挑战结果的需要而诞生,在 2012 年 ImageNet LSVRC-2012 挑战中取得了相当大的准确性准确度为 84.7%,而第二好的准确度为 73.8%。

然后,这些最先进的图像分类架构开始被用作对象检测管道中的特征提取器只是时间问题。这两个问题是相互关联的,它们依赖于学习强大的高级特征。因此,Girschick 等人。(2014)展示了我们如何使用卷积特征进行目标检测,介绍了 R-CNN(将 CNN 应用于区域提议)。从那时起,对象检测开始以前所未有的速度发展。

如图 7所示,深度学习检测方法可以分为两个阶段;第一种称为两阶段检测算法,在多个阶段进行预测,包括 RCNN、Fast-RCNN Faster-RCNN 等网络。

第二类检测器称为单级检测器,如SSD、YOLO、EfficientDet 等。

在图 8中,您可以看到所有 YOLO 对象检测算法及其演变过程,从 2016 年的 YOLOv1 在 Pascal VOC(20 类)数据集上达到 63.4mAP 到 2021 年在更具挑战性的 MS 上达到 73.3mAP 的 YOLOR COCO 数据集(80 类)。这就是学术界的魅力。凭借不断的努力和坚韧不拔,YOLO 目标检测已经取得了长足的进步!

YOLO的历史

3、什么是单级物体检测器?

单阶段目标检测器是一类单阶段目标检测架构。他们将对象检测视为一个简单的回归问题。例如,输入到网络的输入图像直接输出类概率和边界框坐标。

这些模型跳过了区域提议阶段,也称为区域提议网络,它通常是两阶段对象检测器的一部分,是可能包含对象的图像区域。

图 9显示了单级和两级检测器工作流程。在单阶段中,我们将检测头直接应用于特征图,而在两阶段中,我们首先在特征图上应用区域提议网络。

然后,这些区域被进一步传递到第二阶段,对每个区域进行预测。Faster-RCNN 和 Mask-RCNN 是一些最流行的两阶段目标检测器。

虽然两级检测器被认为比单级目标检测器更准确,但它们涉及多个阶段的推理速度较慢。另一方面,单级检测器比两级检测器快得多。

三、YOLO1

2016 年约瑟夫·雷德蒙等人。在 CVPR 会议上发表了第一个单阶段目标检测器,You Only Look Once: Unified, Real-Time Object Detection 。

YOLO(你只看一次)是对象检测领域的一个突破,因为它是第一个将检测视为回归问题的单阶段对象检测器方法。检测架构只查看一次图像以预测对象的位置及其类别标签。

与两阶段检测器方法(Fast RCNN、Faster RCNN)不同,YOLOv1 没有提案生成器和细化阶段;它使用一个单一的神经网络,可以一次性从整个图像中预测类别概率和边界框坐标。由于检测管道本质上是一个网络,因此可以进行端到端优化;将其视为图像分类网络。

由于该网络旨在以类似于图像分类的端到端方式进行训练,因此该架构非常快,并且基本 YOLO 模型以 45 FPS(每秒帧数)的速度预测图像,以 Titan X GPU 为基准。作者还提出了一个更轻量级的 YOLO 版本,称为 Fast YOLO,它以 155 FPS 的速度处理图像的层数更少。这不是很神奇吗?

YOLO 达到了63.4 mAP(平均精度),如表 1所示,是其他实时检测器的两倍多,使其更加特别。我们可以看到,在平均精度(接近 2 倍)和 FPS 方面,YOLO 和 Fast YOLO 都比 DPM 的实时目标检测器变体有相当大的优势。

YOLO 的泛化性在来自互联网的艺术品和自然图像上进行了测试。此外,它大大优于可变形零件模型 (DPM) 和基于区域的卷积神经网络 (RCNN) 等检测方法。

在我们即将到来的第 2 课中,我们将深入探讨 YOLOv1!

四、YOLO2

Redmon 和 Farhadi (2017)在 CVPR 会议上发表了YOLO9000: Better, Faster, Stronger论文。作者在本文中提出了两种最先进的YOLO 变体:YOLOv2 和 YOLO9000;两者相同,但训练策略不同。

YOLOv2 在Pascal VOC和MS COCO等检测数据集上进行了训练。同时,YOLO9000 旨在通过在 MS COCO 和ImageNet数据集上联合训练来预测 9000 多个不同的对象类别。

改进后的 YOLOv2 模型使用了各种新技术,在速度和准确度上均优于 Faster-RCNN 和 SSD 等最先进的方法。一种这样的技术是多尺度训练,它允许网络以不同的输入大小进行预测,从而允许在速度和准确性之间进行权衡。

在 416×416 输入分辨率下,YOLOv2在 VOC 2007 数据集上达到76.8 mAP ,在 Titan X GPU 上达到67 FPS 。在具有 544×544 输入的同一数据集上,YOLOv2 达到了78.6 mAP和40 FPS。

图 10显示了 YOLOv2 在 Titan X GPU 上的各种分辨率以及其他检测架构(如 Faster R-CNN、YOLOv1、SSD)上的基准。我们可以观察到,几乎所有 YOLOv2 变体在速度或准确度上都比其他检测框架表现得更好,并且在 YOLOv2 中可以观察到准确度(mAP)和 FPS 之间的急剧权衡。

有关 YOLOv2 的详细评论,请观看我们即将推出的第 3 课。

五、YOLO3

Redmon 和 Farhadi (2018) 在 arXiv 上发表了YOLOv3: An Incremental Improvement论文。作者对网络架构进行了许多设计更改,并采用了 YOLOv1 尤其是 YOLOv2 中的大多数其他技术。

本文介绍了一种新的网络架构,称为 Darknet-53。Darknet-53 是一个比以前更大的网络,而且更准确、更快。它以各种图像分辨率进行训练,例如 320×320、416×416。在 320×320 分辨率下,YOLOv3在 Titan X GPU 上以45 FPS的速度运行时达到28.2 mAP,与 Single-Shot Detector (SSD321) 一样准确,但速度提高了 3 倍(如图 11所示)。

我们将在即将到来的第 5 课中彻底分解 YOLOv3。

六、YOLO4

YOLOv4 是许多实验和研究的产物,它结合了各种提高卷积神经网络精度和速度的小型新技术。

本文在不同的 GPU 架构上进行了广泛的实验,并表明 YOLOv4 在速度和准确性方面优于所有其他对象检测网络架构。

2020 年,Bochkovskiy 等人。(著名 GitHub 存储库:Darknet 的作者)在 arXiv 上发表了YOLOv4:目标检测的最佳速度和准确性论文。从图 12中我们可以观察到,YOLOv4 的运行速度比 EfficientDet 快两倍,性能相当,并且将 YOLOv3 的 mAP 和 FPS 提高了 10% 和 12%。

卷积神经网络 (CNN) 的性能在很大程度上取决于我们使用和组合的特征。例如,某些功能仅适用于特定模型、问题陈述和数据集。但批量标准化和残差连接等功能适用于大多数模型、任务和数据集。因此,这些特征可以称为通用的。

博奇科夫斯基等人。利用这个想法并假设一些通用功能,包括

加权残差连接 (WRC)
        跨级部分连接 (CSP)
        交叉小批量标准化 (CmBN)
        自我对抗训练(SAT)
        米什激活
        马赛克数据增强
        DropBlock 正则化
        CioU损失
        结合上述特征可实现最先进的结果:MS COCO 数据集上的 43.5% mAP(65.7% mAP50),在 Tesla V100 GPU 上以 ∼65 FPS 的实时速度。

YOLOv4 模型结合了上述和更多的特征,形成了用于提高模型训练的“Bag of Freebies”和用于提高目标检测器准确性的“Bag-of-Specials”。

我们将在即将到来的第 6 课中使用代码全面介绍 YOLOv4。

七、YOLO5

2020 年,在 YOLOv4 发布后,短短两个月内,Ultralytics 的创始人兼 CEO Glenn Jocher就在GitHub 上发布了 YOLOv5 的开源实现。YOLOv5 提供了一系列在 MS COCO 数据集上预训练的对象检测架构。随后发布了EfficientDet和 YOLOv4。这是唯一没有最初引起一些争议的研究论文的 YOLO 目标检测器;然而,很快,这个概念就被打破了,因为它的能力削弱了噪音。

今天,YOLOv5 是官方最先进的模型之一,拥有巨大的支持,并且更易于在生产中使用。最好的部分是 YOLOv5 在 PyTorch 中原生实现,消除了 Darknet 框架的限制(基于 C 编程语言而不是从生产环境角度构建)。暗网框架随着时间的推移而发展,是一个很好的研究框架,可以与 TensorRT 一起使用、训练、微调、推理;这一切都可以通过暗网实现。但是,它的社区较小,因此支持较少。

PyTorch 中 YOLO 的这一巨大变化使开发人员可以更轻松地修改架构并直接导出到许多部署环境。不要忘记,YOLOv5 是 Torch Hub 展示中托管的官方最先进模型之一。

正如您在下面的 shell 块中所见,您只需 5 行代码即可使用 YOLOv5 和 PyTorch Hub 运行推理。这不是很神奇吗?

在发布时,YOLOv5 是所有已知 YOLO 实现中最先进的。自 YOLOv5 发布以来,该存储库一直非常活跃,自 YOLOv5-v1.0 发布以来已有超过 90 位贡献者。

从开发的角度来看,YOLOv5 存储库提供了大量的功能,使得在各种目标平台上训练、微调、测试和部署变得更加容易。他们提供的一些开箱即用的教程包括:

自定义数据集的训练
        多 GPU 训练
        在TensorRT、CoreML、ONNX 和 TFLite上导出经过训练的 YOLOv5 模型
        修剪 YOLOv5 架构
        使用 TensorRT 部署

此外,他们还开发了一个名为iDetection的 iOS 应用程序,它提供了四种 YOLOv5 变体。我们在 iPhone 13 Pro 上测试了该应用程序,结果令人印象深刻;该模型以接近 30FPS 的速度运行检测。

与 YOLOv4 相同,YOLO v5 在主干和路径聚合网络中使用以 Darknet-53 的跨阶段部分连接作为 Neck。主要改进包括新的镶嵌数据增强(来自 YOLOv3 PyTorch 实现)和自动学习边界框锚。

1、马赛克数据增强

马赛克数据增强的想法首先由 Glenn Jocher 在YOLOv3 PyTorch实现中使用,现在在 YOLOv5 中使用。马赛克增强将四张训练图像以特定比例拼接成一张图像,如图 13所示。马赛克增强对于流行的 COCO 对象检测基准特别有用,帮助模型学习解决众所周知的“小对象问题”——小对象的检测不如大对象准确。

使用镶嵌数据增强的好处是

1、网络可以在一张图像中甚至在其正常上下文之外看到更多的上下文信息。
        2、允许模型学习如何以比平常更小的比例识别对象。
        3、批量归一化将减少 4 倍,因为它将计算每层的四个不同图像的激活统计信息。这将减少训练期间对大的 mini-batch 大小的需求。

2、定量基准

在表 2中,我们展示了在 Volta 100 GPU 上以 640×640 图像分辨率在 MS COCO 验证数据集上的五个 YOLOv5 变体的性能(mAP)和速度(FPS)基准。所有五个模型都在 MS COC 训练数据集上进行了训练。模型基准从 YOLOv5n 开始按升序显示(即具有最小模型足迹的纳米变体到最大模型 YOLOv5x)。

考虑 YOLOv5l;它实现了 10.1 毫秒(或 100 FPS)的推理速度,批量大小 = 1,67.2 mAP,0.5 IOU。相比之下,在 V100 上具有 608 分辨率的 YOLOv4 在 0.5 IOU 下实现了 62 FPS 和 65.7 mAP 的推理速度。YOLOv5 显然是这里的赢家,因为它提供了最好的性能,甚至比 YOLOv4 更快。

3、YOLOv5 Nano 发布

2021 年 10 月,YOLOv5-v6.0 发布,包含许多新功能和错误修复(来自 73 位贡献者的 465 个 PR),带来了架构调整,以及引入新 P5 和 P6 Nano模型的亮点:YOLOv5n 和 YOLOv5n6。Nano 模型~75%比以前的模型具有更少的参数,从 7.5M 到 1.9M,小到可以在移动设备和 CPU 上运行(如图 14所示)。从下图中也可以看出,YOLOv5 明显优于 EfficientDet 变体。此外,即使是最小的 YOLOv5 变体(即 YOLOv5n6)也能比 EfficientDet 更快地达到相当的精度。

4、YOLOv5n 与 YOLOv4-Tiny 对比

由于 YOLOv5n 是 YOLOv5 的最小变体,我们将其与 YOLOv4-Tiny 进行比较,这也是 YOLOv4 模型中最轻的变体。图 15显示 YOLOv5 nano 变体在训练时间和准确度方面明显优于 YOLOv4-Tiny。

八、PP-YOLO

到目前为止,我们已经在两个不同的框架中看到了 YOLO,分别是 Darknet 和 PyTorch;但是,还有第三种实现 YOLO 的框架,称为 PaddlePaddle 框架,因此得名PP-YOLO。PaddlePaddle 是百度编写的深度学习框架,拥有海量的计算机视觉和自然语言处理模型库。

在 YOLOv4 发布不到四个月后,2020 年 8 月,百度(Long 等人)的研究人员发表了 PP-YOLO: An Effective and Efficient Implementation of Object Detector。与 YOLOv4 类似,PP-YOLO 目标检测器也是基于 YOLOv3 架构构建的。

1、PaddleDetection

PP-YOLO 是 PaddleDetection 的一部分,PaddleDetection是一个基于 PaddlePaddle 框架的端到端对象检测开发套件(如图16所示)。它提供了大量的对象检测架构、主干、数据增强技术、组件(如损失、特征金字塔网络等),可以组合成不同的配置来设计最佳的对象检测网络。

简而言之,它提供了对象检测、实例分割、多对象跟踪、关键点检测等图像处理能力,以更快更好的方式简化了这些模型在构建、训练、优化和部署中的对象检测过程。

现在让我们回到 PP-YOLO 论文。

PP-YOLO 论文的目标不是发布一种新颖的物体检测模型,而是一种有效性和效率相对平衡的物体检测器,可以直接应用于实际应用场景。这个目标与 PaddleDetection 开发套件的动机相呼应。因此,新颖之处在于证明这些技巧和技术的组合更好地平衡了有效性和效率,并提供了关于每个步骤对检测器有多大帮助的消融研究。

与YOLOv4类似,本文也尝试结合现有的各种技巧,既不增加模型参数和FLOP的数量,又尽可能提高检测器的精度,保证检测器的速度几乎不变。然而,与 YOLOv4 不同的是,本文没有探索不同的骨干网络(Darknet-53、ResNext50)和数据增强方法,也没有使用神经架构搜索(NAS)来搜索模型超参数。

2、PP-YOLO 性能

通过结合所有技巧和技术,在批量大小 = 1 的 Volta 100 GPU 上进行测试时,PP-YOLO 实现了 45.2% 的 mAP 和 72.9 FPS 的推理速度(如图 17所示),这表明在有效性和效率,超过了著名的最先进的检测器,如 EfficientDet、YOLOv4 和 RetinaNet。

​3、PP-YOLO架构

​单阶段检测模型一般由主干、检测颈和检测头组成。PP-YOLO 的架构(如图 18所示)与 YOLOv3 和 YOLO4 检测模型非常相似。

PP-YOLO检测器分为三部分:

Backbone:目标检测器中的主干是一个完全卷积的网络,有助于从图像中提取特征图。它在精神上类似于预训练的图像分类模型。所提出的模型没有使用 Darknet-53 架构(在 YOLOv3 和 YOLOv4 中),而是使用 ResNet50-vd-dcn 作为主干。

在所提出的主干模型中,3×3 卷积层在架构的最后阶段被可变形卷积取代。ResNet50-vd 的参数数量和 FLOPs 远小于 Darknet-53。与 YOLOv3 相比,这有助于实现稍高的 mAP 39.1。
检测颈部:特征金字塔网络(FPN)通过特征图之间的横向连接创建特征金字塔。如果你仔细看下图,C3、C4 和 C5 阶段的特征图作为 FPN 模块的输入。

检测头:检测头是对象检测管道的最后一部分,用于预测对象的边界框(定位)和分类。PP-YOLO的头部与YOLOv3的头部相同。预测最终输出使用 3×3 卷积层,后跟 1×1 卷积层。

最终输出的输出通道为3(K+5), 在哪里ķ是类的数量(MS COCO 数据集为 80),3 是每个网格的锚点数量。对于每个anchor,前K个通道是预测类概率,四个通道是边界框坐标预测,一个通道是objectness score的预测。

在上述 PP-YOLO 架构中,菱形注入点表示 coord-conv 层,紫色三角形表示 DropBlocks,红色星号表示 Spatial Pyramid Pooling。

​4、技巧的选择

如果你还记得,我们讨论过这篇论文结合了各种技巧和技术来设计一个有效且高效的目标检测网络;现在,我们将简要介绍它们中的每一个。这些技巧都已经存在,来自不同的论文。

更大的批量大小:利用更大的批量大小有助于稳定训练并让模型产生更好的结果。批量大小从 64 变为 192,因此,学习率和训练计划也随之更新。

指数移动平均线:作者声称使用训练参数的移动平均线在推理过程中产生了更好的结果。

DropBlock 正则化:它是一种类似于 Dropout 正则化的技术,用于防止过拟合。但是,在 Dropout 块正则化中,丢弃的特征点不再是随机散布而是组合成块,整个块被丢弃。所以这是一个结构化的 dropout,其中来自特征图的连续区域的神经元被一起丢弃,如图 19所示。

在 PP-YOLO 中,DropBlock 仅应用于检测头(即 FPN),因为将其添加到主干会降低模型的性能。

Intersection over Union (IoU) Loss:增加了一个额外的loss(即IoU loss)来训练模型,而YOLOv3中使用了现有的L1 loss,大部分YOLO架构没有被替换。添加了一个额外的分支来计算 IoU 损失。这是因为 mAP 评估指标强烈依赖于 IoU。

 IoU Aware:由于最终检测置信度中不考虑定位精度,因此添加了一个 IoU 预测分支来测量定位精度。而在推理过程中,预测的 IoU 分数乘以分类概率和客观性分数来预测最终的检测置信度。

Matrix Non-Maximum Suppression (NMS):软 NMS 版本的并行实现比传统 NMS 使用更快,并且不会带来任何效率损失。软网管是顺序工作的,不能并行实现。

空间金字塔池(SPP)层:在 YOLOv4 中实现的 SPP 层也应用于 PP-YOLO,但仅在顶部特征图中应用。添加 SPP 会增加 2% 的模型参数和 1% 的 FLOPS,但这会让模型增加特征的感受野。

更好的预训练模型:使用在 ImageNet 上具有更好分类精度的预训练模型,从而获得更好的检测性能。蒸馏的 ResNet50-vd 模型用作预训练模型。

5、结果

在介绍 PP-YOLO 之前,我们了解到 PP-YOLO 比 YOLOv4 运行得更快,平均精度得分更好,从 43.5% 提高到 45.2%。PP-YOLO 的详细性能如表 3所示。

比较了 Volta 100 GPU 上的模型有和没有 TensorRT(以加速推理)。从表中我们可以得出结论,与 YOLOv4 相比,MS COCO 数据集上的 mAP 得分从 43.5% 提高到 45.2%,并且FPS 从 62 到 72.9(没有 TensorRT)。

该表还显示了具有其他图像分辨率的 PP-YOLO,与其他最先进的检测器相比,PP-YOLO 在速度和精度的平衡方面似乎确实具有优势。

6、消融研究

作者进行的消融研究显示了这些技巧和技术如何影响模型的参数和性能。在表 4中,PP-YOLO 从表示为 B 的第二行开始,其中检测器使用 ResNet50 作为具有可变形卷积的主干。当您移至下一行 C 时,将技巧添加到先前的模型架构中,并且始终遵循相同的方法。性能增益和参数和 FLOPS 的增加显示在相应的列中。

我们强烈建议您查看该论文以获取更多详细信息。

https://arxiv.org/pdf/2007.12099v3.pdfhttps://arxiv.org/pdf/2007.12099v3.pdf

九、Scaled-YOLOv4

在CVPR会议上发表了题为“Scaled-YOLOv4: Scaling Cross Stage Partial Network”的论文。到目前为止,这篇论文已经收集了超过 190 次引用!借助 Scaled-YOLOv4,作者通过有效扩展网络的设计和规模,推动了 YOLOv4 模型的发展,超越了 Google Research Brain 团队今年早些时候发布的最先进的EfficientDet 。

PyTorch 框架中 Scaled-YOLOv4 的实​​现。

GitHub - WongKinYiu/ScaledYOLOv4: Scaled-YOLOv4: Scaling Cross Stage Partial NetworkScaled-YOLOv4: Scaling Cross Stage Partial Network - GitHub - WongKinYiu/ScaledYOLOv4: Scaled-YOLOv4: Scaling Cross Stage Partial Networkhttps://github.com/WongKinYiu/ScaledYOLOv4

所提出的基于跨阶段部分方法的检测网络可以向上和向下扩展,在速度和准确性的两端都击败了以前的小型和大型对象检测模型的基准。此外,网络缩放方法修改了网络的深度、宽度、分辨率和结构。

图 20显示了 Scaled-YOLOv4-large 模型实现了最先进的结果:MS COCO 数据集的 55.5% AP(73.4% AP50)在 Tesla V100 GPU 上以 ∼16 FPS 的速度。

另一方面,称为 Scaled-YOLOv4-tiny 的更轻版本在 RTX 2080Ti GPU 上以 ∼443 FPS 的速度实现 22.0% AP(42.0% AP50),同时使用 TensorRT(半精度 FP-16)优化(批量大小= 4)。

1、什么是模型缩放?

卷积神经网络架构可以在三个维度上进行缩放:深度、宽度和分辨率。网络的深度对应于网络中的层数。宽度与卷积层中过滤器或通道的数量相关。最后,分辨率只是输入图像的高度和宽度。

图 21更直观地理解了跨这三个维度的模型缩放,其中 (a) 是基线网络示例;(b)-(d) 是常规缩放,仅增加网络宽度、深度或分辨率的一维;(e) 是一种提议的(在 EfficientDet 中)复合缩放方法,它以固定的比例统一缩放所有三个维度。

EfficientDet 中的模型缩放

传统的模型缩放方法是改变模型的深度,即增加更多的卷积层。例如,Simonyan 等人设计的 VGGNet。在不同阶段堆叠了额外的卷积层,并使用这个概念来设计 VGG-16 和 VGG-19 架构。

以下方法通常遵循相同的模型缩放方法。首先, He等人提出的ResNet架构。(2015)使用深度缩放来构建非常深的网络,例如 ResNet-50、ResNet-101,这允许网络学习更复杂的特征,但会遇到梯度消失的问题。后来,Zagoruyko 和 Komodakis (2017)考虑了网络的宽度,他们改变了卷积层的内核数量以实现缩放,因此,宽 ResNet (WRN),同时保持相同的精度。虽然 WRN 的参数比 ResNet 多,但推理速度要快得多。

然后近年来,复合缩放使用复合系数统一缩放卷积神经网络架构的深度/宽度/分辨率的所有维度。与任意缩放这些因子的传统做法不同,复合缩放方法使用一组固定缩放系数统一缩放网络宽度、深度和分辨率。

而这也是 scaled-YOLOv4 也试图做的事情,即使用最优的网络缩放技术来实现 YOLOv4-CSP -> P5 -> P6 -> P7 检测网络。

2、Scaled-YOLOv4 对 YOLOv4 的改进

Scaled-YOLOv4 使用最优网络扩展技术来实现 YOLOv4-CSP -> P5 -> P6 -> P7 网络。

修改了宽度和高度的激活,允许更快的网络训练。

改进的网络架构:骨干优化和 Neck(路径聚合网络)使用 CSP 连接和 Mish 激活。

训练期间使用指数移动平均线 (EMA)。

对于网络的每个分辨率,训练一个单独的网络,而在 YOLOv4 中,单个网络在多个分辨率上进行训练。

3、CSP 化的 YOLOv4

YOLOv4 专为在通用 GPU 上进行实时对象检测而设计。在 Scaled-YOLOv4 中,YOLOv4 被重新设计为 YOLOv4-CSP,以获得最佳的速度/精度权衡。

(2021 年)在论文中经常提到他们“CSP 化”了对象检测网络的给定部分。这里的 CSP-ize 意味着应用Cross Stage Partial Networks论文中提出的概念。CSP 是一种构建卷积神经网络的新方法,可减少各种 CNN 网络的计算:高达 50%(对于 FLOP 中的 Darknet 主干)。

在 CSP 连接中:

一半的输出信号沿着有助于生成更多具有大感受野的语义信息的主路径。
        信号枢轴的另一半有助于以较小的感受野保留更多的空间信息。

图 22显示了 CSP 连接的示例。左边是标准网络,右边是 CSP 网络。

4、扩展 YOLOv4-Tiny 模型

YOLOv4-tiny 模型与 Scaled-YOLOv4 模型有不同的考虑,因为在边缘,各种约束都会发挥作用,例如内存带宽和内存访问。对于 YOLOv4-tiny 的浅层 CNN,作者期待OSANet在深度较小时具有良好的计算复杂性。

表 5显示了 YOLOv4-tiny 与其他微小物体检测器的性能比较。同样,与其他微型模型相比,YOLOv4-tiny 实现了最佳性能。

表 6显示了 YOLOv4-tiny 在不同嵌入式 GPU 上测试的结果,包括 Xavier AGX、Xavier NX、Jetson TX2、Jetson NANO。如果采用 FP16 和 batch size = 4 来测试Xavier AGX和Xavier NX,帧率可以分别达到290 FPS和118 FPS。

YOLOv4-tiny 在嵌入式设备上的 FPS

另外,如果使用TensorRT FP16在通用GPU RTX 2080ti上运行YOLOv4-tiny,当batch size分别等于1和4时,各自的帧率可以达到773 FPS和1774 FPS,速度非常快。

YOLOv4-tiny 无论使用哪种设备都可以实现实时性能。

5、扩展 YOLOv4-CSP 模型

为了检测大图像中的大物体,作者发现增加 CNN 主干和颈部的深度和阶段数量是必不可少的(据报道,增加宽度几乎没有效果)。这允许他们首先扩大输入大小和阶段数量,并根据实时推理速度要求动态调整宽度和深度。除了这些比例因子之外,作者还在论文中改变了他们模型架构的配置。

YOLOv4-large 专为云GPU而设计;主要目的是实现物体检测的高精度。此外,还开发了一个完全 CSP 化的模型 YOLOv4-P5,并将其扩展到 YOLOv4-P6 和 YOLOv4-P7,如图 23所示。

YOLOv4-large 的架构,包括 YOLOv4-P5、YOLOv4-P6 和 YOLOv4-P7。

YOLOv4-P6 在宽度缩放因子等于 1 时可以在视频上达到 30 FPS 的实时性能。当宽度缩放因子等于 1.25 时,YOLOv4-P7 在视频上可以达到 16 FPS 的实时性能。

6、数据增强

YOLOv4 中的数据增强是 YOLOv4 令人印象深刻的性能的关键贡献之一。在 Scaled-YOLOv4 中,作者首先在增强较少的数据集上进行训练,然后在训练结束时调高增强以进行微调。他们还使用“测试时间增强”,其中将几个增强应用于测试集。然后在这些测试增强中对预测进行平均,以进一步提高它们的非实时结果。

综上所述,作者展示了基于 CSP 方法的 YOLOv4 目标检测神经网络可上下扩展,适用于小型和大型网络;因此,他们称之为 Scaled-YOLOv4。此外,所提出的模型(YOLOv4-large)在 test-dev MS COCO 数据集上实现了 56.0% AP 的最高精度,使用 TensorRT-FP16 为小型模型 YOLOv4-tiny RTX 2080Ti 实现了 1774 FPS 的极高速度,以及最佳速度和其他 YOLOv4 模型的准确性。

到目前为止,我们已经介绍了七款 YOLO 物体检测器,可以说,对于物体检测来说,2020 年是迄今为止最好的一年,对于 YOLO 家族来说更是如此。我们了解到,YOLOv4、YOLOv5、PP-YOLO 和 Scaled-YOLOv4 一个接一个地达到了目标检测的最先进水平。

现在让我们继续下一个 YOLO 检测器,看看 2021 年会发生什么!

十、PP-YOLOv2

2021 年,百度发布了 PP-YOLO 的第二个版本,名为PP-YOLOv2: A Practical Object Detector,作者是 Xing Huang 等人。发表在 arXiv 上,在对象检测领域取得了新的高度。

从论文的标题可以很容易地推断出这篇论文背后的动机是开发一种目标检测器,它可以实现良好的准确度并以更快的速度进行推理。因此,一个实用的物体检测器。此外,由于本文是先前工作(即 PP-YOLO)的后续,作者希望开发一种在有效性和效率之间取得完美平衡的检测器,并实现这一点,类似于集成技巧和遵循技术,重点是消融研究。

通过结合多种有效的改进,PP-YOLOv2 显着提高了性能(即在 MS COCO2017 测试集上从 45.9% mAP 提高到 49.5% mAP)。此外,在速度方面,PP-YOLOv2 在 640×640 图像分辨率下以 68.9FPS 的速度运行,如图 24所示。此外,PPYOLOv2 引入了两种不同的主干架构:ResNet-50 和 ResNet-101,与 PPYOLOv1 不同,后者仅使用 ResNet-50 主干发布。

提议的 PP-YOLOv2 与其他物体检测器的比较。

在 TensorRT 引擎的支持下,在半精度(FP16,batch size = 1)上,PP-YOLOv2-ResNet50 推理速度进一步提高到 106.5 FPS,超过了其他最先进的物体检测器,如 YOLOv4-CSP 和YOLOv5l 具有大致相同数量的模型参数。

当检测器的主干从 ResNet50 替换为 ResNet101 时,PP-YOLOv2 在 MS COCO2017 测试集上实现了 50.3% 的 mAP,实现了与 YOLOv5x 相似的性能,在速度上明显超过 YOLOv5x 近 16%。

所以现在你知道如果你的老板要求你处理一个涉及物体检测的问题,你需要选择哪个检测器。当然,如果 KPI 是要以更快的速度实现良好的性能,答案将是 PP-YOLOv2 :)!

​1、重温 PP-YOLO

到目前为止,我们知道 PP-YOLOv2 建立在 PP-YOLO 论文中取得的研究进展之上,该论文作为 PP-YOLOv2 的基线模型。

PP-YOLO 是 YOLOv3 的增强版本,其中主干被 Darknet-53 的 ResNet50-vd 取代。许多其他改进是通过严格的消融研究通过利用总共 10 个技巧进行的,例如

DropBlock 正则化
        可变形卷积
        坐标转换
        空间金字塔池化
        IoU 损失和分支
        网格灵敏度
        矩阵网管
        更好的 ImageNet 预训练模型

2、细化的选择

路径聚合网络 (PAN):为了检测不同尺度的对象,作者在对象检测网络的颈部采用了 PAN。在 PP-YOLO 中,特征金字塔网络被用来组成自下而上的路径。与 YOLOv4 类似,在 PP-YOLOv2 中,作者遵循 PAN 的设计来聚合自上而下的信息。

Mish Activation Function:检测网络的颈部采用mish激活函数;因为 PP-YOLOv2 使用了预训练的参数,因为它在 ImageNet 分类数据集上具有 82.4% 的 top-1 准确率。它在 YOLOv4 和 YOLOv5 等各种实际目标检测器的主干中被证明是有效的。

更大的输入尺寸:检测更小的物体通常是一个挑战,并且随着图像在网络中的遍历,小尺度物体的信息会丢失。因此,在 PP-YOLOv2 中,增加了输入大小,扩大了对象的面积。结果,性能将提高。最大输入大小 608 增加到 768。由于更大的输入分辨率占用更多内存,因此批量大小从每个 GPU 24 个图像减少到每个 GPU 12 个图像,在不同的输入大小上均匀绘制[320, 352, 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768]。

IoU Aware Branch:在PP-YOLO中,IoU-aware loss是以与初衷不一致的软权重格式计算的。因此,在 PP-YOLOv2 中,软标签格式可以更好地调整 PP-YOLO 的损失函数,并使其更加了解边界框之间的重叠。

表 7显示了在 Volta 100 GPU 上对 MS COCO mini 验证拆分推理进行改进的消融研究。在表中,A指的是基线 PP-YOLO 模型。然后,在B中,将 PAN 和 Mish 添加到A中,显着提高了2 mAP;虽然B比A慢,但准确度的提升是值得的。

MS COCO 数据集上 PP-YOLOv2 的消融研究。“†”表示结果包括边界框解码时间(1~2毫秒)。

YOLOv4 和 YOLOv5 在 640 图像分辨率上进行了评估,PP-YOLOv2 的输入大小增加到 640 用于训练和评估以进行公平比较(如图C所示)。

可以看到D(更大的输入大小)和E(IoU 感知分支)中的增量 mAP 增益 没有减少推理时间,这是一个好兆头。

有关 PP-YOLOv2 与其他最先进的物体检测器的速度和准确度比较的更多详细信息,请查看他们关于 arXiv 的论文中的表 2 。

https://arxiv.org/pdf/2104.10419.pdfhttps://arxiv.org/pdf/2104.10419.pdf

十一、YOLOX

​        2021年,葛等人。在 arXiv 上发表了名为YOLOX:2021 年超越 YOLO 系列的技术报告。到目前为止,我们学习的唯一无锚的 YOLO 对象检测器是 YOLOv1,但 YOLOX 也以无锚的方式检测对象。此外,它还进行了其他先进的检测技术,如解耦头、利用强大的数据增强技术和领先的标签分配策略SimOTA来实现最先进的结果。

YOLOX 使用单个 YOLOX-L 模型赢得了流媒体感知挑战(与 CVPR 2021 联合举办的自动驾驶研讨会)的第一名。

如图 25 (右)所示,YOLOX-Nano 只有 0.91M 参数,在 MS COCO 数据集上实现了 25.3% 的 AP,超过NanoDet 1.8% 的 AP。对 YOLOv3 进行各种修改后,在 COCO 上的准确率从 44.3% 提高到了 47.3%。

YOLOX 和其他最先进的物体检测器的速度精度权衡()和精简模型的尺寸精度曲线(右)。

YOLOX-L 在与 YOLOv4-CSP、YOLOv5-L 参数大致相同的 Tesla V100 上以 68.9 FPS 的速度在 COCO 上实现了 50.0% AP,比 YOLOv5-L 高出 1.8% AP。

YOLOX 是在 PyTorch 框架中实现的,其设计考虑了开发人员和研究人员的实际使用。因此,YOLOX 部署版本也已在 ONNX、TensorRT 和 OpenVino 框架中提供。

在过去的 2 年中,目标检测学术界的重大进展集中在无锚检测器、高级标签分配策略和端到端(无 NMS)检测器。然而,这些技术还没有应用于 YOLO 对象检测架构,包括最近的模型:YOLOv4、YOLOv5 和 PP-YOLO。它们中的大多数仍然是基于锚点的检测器,具有用于训练的手工分配规则。这就是发布 YOLOX 的动机!

1、YOLOX-Darknet53

选择带有 Darknet-53 主干的 YOLOv3 作为基线。然后,对基础模型进行了一系列改进。

从基线到最终的 YOLOX 模型,训练设置主要相似。所有模型都在 MS COCO train2017 数据集上训练了 300 个 epoch,批量大小为 128。输入大小从 448 到 832 均匀绘制,步幅为 32。在单个 Tesla Volta 100 GPU 上使用 FP16 精度(半精度)和批量大小 = 1 测量 FPS 和延迟。

(1)YOLOv3-基线

它使用 DarkNet-53 骨干网和称为 YOLOv3-SPP 的 SPP 层。与原始实现相比,修改了一些训练策略,例如

指数移动平均线权重更新
        余弦学习率表
        分类和客观性分支的 BCE 损失
        回归分支的 IoU 损失

通过这些增强,YOLOv3 基线在 MS COCO 验证集上实现了 38.5% 的 AP,如表 8所示。所有模型都在 Tesla V100 上以 640×640 分辨率进行测试,FP16 精度和批量大小 = 1。下表中的延迟和 FPS 是在没有后处理的情况下测量的。

YOLOX-Darknet53 在 MS COCO val 上的 AP (%)

(2)解耦头

        图 26显示了YOLOv3 到 YOLOv5 模型中使用的耦合头(顶部)和 YOLOX 中的解耦头(底部)。这里的 head 表示不同尺度的输出预测。例如,在耦合头中,我们有一个预测张量(详细解释见下图)。而这种方式的问题在于,通常我们在训练过程中将分类和定位任务放在同一个头脑中,在训练过程中经常相互竞争。结果,模型难以正确分类和定位图像中的每个对象。

因此,在 YOLOX 中使用了用于分类和定位的解耦头,如图 26底部)所示。对于 FPN 特征的每一层,首先应用一个 1×1 的卷积层将特征通道减少到 256 个。然后添加两个平行的分支和两个 3×3 的卷积层,分别用于分类和定位任务。最后,在本地化分支中添加了一个额外的 IoU 分支。

YOLOv3 头和建议的解耦头之间的差异说明

解耦头允许 YOLOX 模型比耦合头收敛得更快,如图 27所示。此外,在 x 轴上,我们可以观察到解耦头的 COCO AP 分数如何比 YOLOv3 头提高得更快。

带有 YOLOv3 耦合和 YOLOX 解耦头的检测器的训练曲线。

(3)强大的数据增强

添加了类似于 YOLOv4 的 Mosaic 和 MixUp 数据增强技术以提高 YOLOX 性能。Mosaic 是由ultralytics-YOLOv3提出的一种有效的增强策略。

使用上述两种增强技术,作者发现在 ImageNet 数据集上预训练主干并没有什么好处,因此他们从头开始训练模型。

(4)无锚检测

为了开发高速目标检测器,YOLOX 采用了一种无锚机制,减少了设计参数的数量,因为现在我们不再需要处理锚框,这大大增加了预测的数量。因此,对于预测头中的每个位置或网格,我们现在只有一个预测,而不是预测三个不同锚框的输出。每个对象的中心位置被认为是一个正样本,并且有一个预定义的缩放范围。

简单来说,在anchor-free检测中,每个网格的预测从3减少到1,直接预测四个值,即网格的左上角和网格的高宽两个偏移量预测框。

通过这种方法,检测器的网络参数和 GFLOPs 降低了,它使检测器更快,不仅性能提高到 42.9% AP,如表 8所示。

(5)多正数

为了与 YOLOv3 的分配规则保持一致,anchor-free 版本为每个对象只选择一个正样本(中心位置),而忽略其他高质量预测。然而,优化那些高质量的预测也可能带来有益的梯度,这可能会缓解训练期间正/负采样的极端不平衡。在 YOLOX 中,中心 3×3 区域被指定为正,在FCOS 论文中也称为“中心采样” 。结果,检测器的性能提高到 45.0% AP,如表 2所示。

2、其它骨干

(1)在 YOLOv5 中修改 CSPNet

为了公平比较,YOLOX 用 YOLOv5 修改后的 CSP v5 主干以及 SiLU 激活和 PAN 头替换了 Darknet-53 主干。通过利用其缩放规则 YOLOX-S、YOLOX-M、YOLOX-L 和 YOLOX-X 模型被生产出来。

表 9显示了 YOLOv5 模型和 YOLOX 生产的模型之间的比较。所有 YOLOX 变体都显示出 ∼3.0% 到 ∼1.0% AP 的一致改进,使用解耦头仅增加了边际时间。以下模型在 Tesla Volta 100 GPU 上以 640×640 图像分辨率、FP16 精度(半精度)和批量大小 = 1 进行了测试。

根据 MS COCO 数据集上的 AP (%) 以及参数、GFLOP 和延迟因子,生成的 YOLOX 变体与现有 YOLOv5 变体的比较。

(2)微型和纳米探测器

我们将 YOLOX 模型与 YOLOv5 进行了比较,它们的大小分别为小、中、大和超大(更多参数)。作者更进一步,将 YOLOX 模型缩小为具有低于 YOLOX-S 变体的参数,从而产生 YOLOX-Tiny 和 YOLOX-Nano。YOLOX-Nano 专为移动设备而设计。为了构建这个模型,采用了深度卷积,得到了一个只有 0.91M 参数和 1.08G FLOPs 的模型。

如表 10所示,YOLOX-Tiny 与 YOLOv4-Tiny 和 PPYOLO-Tiny 进行了比较。同样,YOLOX 在模型尺寸比同类产品更小的情况下表现出色。

YOLOX-Tiny 和 YOLOX-Nano 在 MS COCO 验证数据集上的 AP (%) 比较

十二、YOLOv6https://arxiv.org/pdf/2209.02976.pdfhttps://arxiv.org/pdf/2209.02976.pdf

十三、YOLOv7
机器学习笔记 - YOLOv7 论文简述与推理YOLO 系列对象检测模型已经取得了长足的进步。YOLOv7 是这个著名的基于锚的单次目标检测器系列的最新成员。它带来了一系列改进,包括最先进的准确性和速度。以 COCO 数据集为基准,YOLOv7 tiny 模型实现了 35% 以上的 mAP,YOLOv7(正常)模型实现了 51% 以上的 mAP。论文地址YOLOv7 是 YOLO 系列中最先进的新型物体检测器。根据 YOLOv7 论文,它是迄今为止最快、最准确的实时物体检测器。YOLOv7 通过将其性能提升一个档次建立了一个重要的基准。https://skydance.blog.csdn.net/article/details/127419959

总结

快速总结一下:

1、我们通过介绍对象检测开始本教程:对象检测与图像分类有何不同、检测中的挑战以及什么是单级和两级对象检测器。

2、然后向您介绍了第一个称为 YOLOv1 的单级检测器。

3、然后我们简要介绍了 YOLOv2、YOLOv3 和 YOLOv4。

4、接下来,我们讨论了由 Ultralytics 开发的 YOLOv5,这是继 YOLOv4 之后在 PyTorch 中实现的第一个 YOLO 模型。

5、然后是百度在 PaddlePaddle 框架中实现的 PP-YOLO,其表现出优于 YOLOv4 和 EfficientDet 的可喜结果。

6、然后讨论了 YOLOv4 的扩展,称为 Scaled-YOLOv4,它基于跨阶段局部方法进行向上和向下缩放,在速度和准确性。

7、然后我们讨论了 PP-YOLO 的第二个版本,称为 PP-YOLOv2,它对 PP-YOLO 进行了各种改进,从而显着提高了 MS COCO2017 测试集上的性能(即从 45.9% mAP 到 49.5% mAP)。

8、然后我们讨论了 YOLOv1 之后的无锚对象检测网络 YOLOX。YOLOX 在 CVPR 研讨会上获得了 Streaming Perception Challenge 的第一名,在准确性和速度上均优于 YOLOv5 大型和纳米模型。

机器学习笔记 - YOLO家族简介相关推荐

  1. 机器学习笔记——受限玻尔兹曼机简介

    整理自:http://blog.echen.me/2011/07/18/introduction-to-restricted-boltzmann-machines/ 0x01 intro 假设我们让一 ...

  2. [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)

    [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning:深度学习简介) PDF VIDEO Ups and downs of Deep Le ...

  3. 吴恩达机器学习笔记:(一)机器学习方法简介

    吴恩达机器学习笔记 Supervised Learning(监督学习) Unsupervised Learning(无监督学习) clustering 聚类算法 market segments 市场细 ...

  4. 机器学习笔记的github镜像下载(github个人star数量排名175)

    黄海广博士在github开源了机器学习及深度学习个人笔记,成为热门项目,详情报道见文章.其中机器学习笔记10000+star,深度学习笔记7200+star.个人star数量23310,排名githu ...

  5. Yolo家族算法分析

    1 历史简介 2 YOLO算法思想 YOLO算法的基本思想: (1)将图片划分为S×SS \times SS×S个网格: (2)计算每个边界框和置信度: (3)计算每个网格属于某个类别的概率: (4) ...

  6. 【资料】机器学习笔记的github镜像下载(github个人star数量排名175)

    黄海广博士在github开源了机器学习及深度学习个人笔记,成为热门项目,详情报道见文章.其中机器学习笔记10000+star,深度学习笔记7200+star.个人star数量23310,排名githu ...

  7. 【机器学习笔记11】高斯混合模型(GMM)【上篇】原理与推导

    文章目录 推荐阅读 前言 高斯混合模型简介 GMM与K-mean 高斯混合模型的概率密度函数 几何角度 混合模型角度 可能会弄混的地方 隐变量的分布与隐变量的后验概率分布 极大似然估计 EM算法求近似 ...

  8. 超给力的 520 页机器学习笔记!图文并茂可能更适合你,文末附下载方法

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 来自:AI派 前段时间,来自SAP(全球第一大商业软件公司)的梁劲(Jim Liang ...

  9. 机器学习笔记之前馈神经网络(一)基本介绍

    机器学习笔记之前馈神经网络--基本介绍 引言 从机器学习到深度学习 频率学派思想 贝叶斯学派思想 深度学习的发展过程 引言 从本节开始,将介绍前馈神经网络. 从机器学习到深度学习 在机器学习笔记开始- ...

最新文章

  1. 博客园博客账号意外被封怎么办?
  2. Java数据结构2:堆排序思考
  3. 私有5g网络_欧洲通过FUDGE5G的启动来支持工业4.0的云原生私有5G
  4. 在Putty或mRemote下输入和显示中文
  5. WINCE6.0+S3C6410下的DM9000A驱动
  6. Git关于pull,commit,push的总结
  7. java 容器、二叉树操作、107
  8. 数据处理程序的一点经验
  9. 科普向--详解JavaScript中的数据类型
  10. 必填字段的自定义JSF验证器
  11. CPU和MMU(内存管理单元)
  12. Python学习——02-Python基础——【9-面向对象进阶】——isinstance(obj,cls)、反射等...
  13. 过去一年顶级借贷服务商BTC总托管资产平均增长超700%
  14. linux 配置内网yum源
  15. 图像变换——对数变换
  16. paip.提升用户体验--radio图片选择器 easyui 实现..
  17. eda多功能时钟设计_Altera FPGACPLD设计 基础篇+高级篇(附随书光盘)
  18. 非平稳序列的随机性分析(SAS)
  19. word中如何单独修改某一页页眉
  20. 鼠标自动不停地按右键

热门文章

  1. Mac上FDM替代迅雷
  2. android批量添加联系人,Android实现批量添加联系人到通讯录
  3. Nodejs一键实现微信内打开网页url自动跳转外部浏览器访问的功能
  4. ubuntu 10.04 wine qq2009
  5. 浅谈构建个人资料库和知识库
  6. 工厂车间安灯(Andon)系统
  7. 基于模糊神经网络的连续退火炉温度控制系统研究
  8. windows系统上虚拟机安装苹果雪豹系统的ios和phoneGap开发环境搭建
  9. 用python画微笑脸表情_一种检测视频中人脸微笑表情的方法与流程
  10. 思科c220 m3服务器准系统,HP DL380G9服务器准系统 P440AR+电池