Python----目标检测(YOLO简介)

一、 YOLO简介

 

        [YOLO](You Only Look Once)是一种流行的物体检测和图像分割模型, 由华盛顿大学的约瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)开发,YOLO 于 2015 年推出,因其高速度和高精确度而迅速受 到欢迎。

        在计算机视觉(Computer Vision)领域,目标检测(Object Detection)一直是最为基础且至关重要的研究方向之一。随着深度学习的兴起与硬件性能的不断提高,目标检测算法在过去十年间取得了长足的进步,从早期的 R-CNN系列到 SSD、RetinaNet,再到YOLO(You Only Look Once)系列,每一次技术迭代都在速度与精度之间寻找新的平衡点。如今,YOLO 系列已走过了近十年的发展历程,从最初的 YOLOv1(2015)到当下最新的YOLOv12 ,每一个版本都体现了学术界与工业界在网络结构、训练策略、特征融合、损失函数设计等方面的不断探索与突破。

        YOLO 系列的核心思路在于将目标检测看作是一个单阶段(One-Stage)的回归问题:它将输入图像划分为若干网格(Grid),并在每个网格中直接回归边界框(Bounding Box)与类别置信度,从而实现了高效的目标检测。这种端到端、一次性完成检测与分类的思路,极大地提升了检测速度,同时在后续版本中,通过引入更加成熟的特征提取网络与多尺度预测策略,也逐步提升了检测精度。YOLO 系列在无人驾驶、视频监控、机器人视觉等对实时性要求高的应用场景中得到了广泛采用。

二、YOLO v1-v12特点

模型核心思路/创新点主要优点主要缺点
YOLOv1单阶段检测,全局信息速度快,端到端训练定位精度不高,对小目标不友好,Recall 较低
YOLOv2Anchor Boxes,高分辨率预训练,Batch Normalization精度提升,对不同尺度目标适应性增强,训练更稳定对小目标仍有漏检,推理速度在高分辨率下变慢,引入 Anchor 使后处理更复杂
YOLOv3多尺度预测,残差网络,逻辑回归分类小目标检测性能提升显著,多标签检测极小目标检测仍有挑战,网络更深,显存需求增加,精度相比双阶段方法在复杂场景仍有差距
YOLOv4SOTA 技术融合(CSPNet, Mish, Mosaic, CIoU等)精度和速度平衡达到 SOTA 水平,数据增强效果好,边界框回归更精确网络规模大,显存需求高
YOLOv5Focus 模块,自适应 Anchor,工程化优化易用性强,速度快,多尺寸模型选择灵活 
YOLOv6RepVGG 结构,高效推理优化推理速度快,易于工业级部署,适合低算力场景精度与 YOLOv5 大致相当
YOLOv7E-ELAN 结构,多种技巧融合实时检测精度进一步提升 
YOLOv8端到端训练,新网络模块,更好的兼容性训练和推理流程更紧凑,速度快(尤其小模型),部署方便 
YOLOv9引入注意力机制(CBAM/ECA),优化多尺度融合小目标检测 mAP 提升 
YOLOv10Transformer-CNN 融合,EIoU 损失,自适应多尺度训练,半监督学习捕捉全局上下文信息,边界框回归更精确,对多尺度更鲁棒,可利用无标注数据提升性能 
YOLOv11可解释性(注意力热图),自适应 Anchor V2提供模型可解释性,更好地适应不同数据集目标分布 
YOLOv12注意力机制深度集成,FlashAttention 优化,分布式训练,大规模数据特征表达能力强,高分辨率下注意力计算高效,泛化性能极佳,特定任务性能突出 

三、YOLO发展历程 

3.1、YOLOv1

        YOLOv1,即“You Only Look Once”的第一个版本,由 Joseph Redmon 等人在 2015 年提出,其论文标志着目标检测领域向端到端、单阶段方法的重要转变。YOLOv1 首次将目标检测视为一个可以直接从图像像素到边界框和类别预测的回归问题,这与当时主流的两阶段检测器有着显著的不同。

        YOLOv1 的网络结构借鉴了 GoogLeNet 的思想,采用卷积神经网络作为其主干网络。最初版本包含 24 个卷积层,经过微调后增加到 28 个。网络中交替使用 1×1 和 3×3 的卷积核来提取图像特征。最终,网络在一个特征图上输出一个维度为 S×S×(B×5+C) 的张量。其中,S 代表网格的大小(例如 7×7),B 是每个网格预测的边界框数量(例如 2),5 表示每个边界框包含的 4 个坐标值以及 1 个置信度分数,C 则是目标类别的数量。

        YOLOv1 的核心创新在于其单阶段检测流程、对全局信息的利用以及其高速的检测能力。与需要先生成候选区域的 Faster R-CNN 等两阶段检测器不同,YOLOv1 直接在整个图像的网格上预测边界框和类别,极大地简化了检测流程。此外,YOLOv1 将整张输入图像作为一个整体进行处理,在预测时能够考虑到全局的上下文信息,而不仅仅关注局部的候选区域。由于只需进行一次网络前向传播,YOLOv1 的推理速度远高于传统的两阶段检测器。

        然而,YOLOv1 也存在一些局限性。由于每个网格单元只能预测有限数量的目标,当图像中目标过多、尺寸过小或分布较为复杂时,其检测效果会显著下降,导致定位精度不高。同时,网格划分限制了特征图的分辨率,使得模型对小目标的检测能力较弱,容易发生漏检。在早期版本中,边界框的回归方式较为简单粗糙,也导致了较低的召回率。

        尽管存在不足,YOLOv1 在 PASCAL VOC 2007 数据集上取得了 63.4% 的平均精度均值(mAP),在当时已具备一定的竞争力,但与 Faster R-CNN 相比仍有差距。YOLOv1 的提出在学术界引发了对单阶段目标检测器的广泛关注,并为后续 YOLO 系列的快速发展奠定了重要的基础。

3.2、YOLOv2

        YOLOv2,由 Joseph Redmon 和 Ali Farhadi 于 2017 年提出,其论文标题为 “YOLO9000: Better, Faster, Stronger”,旨在改进 YOLOv1 的不足,进一步提升目标检测的精度以及对不同尺度目标的适应性。YOLOv2 在前代的基础上引入了多项关键创新,使其性能得到了显著提升。

        YOLOv2 的主干网络采用了更深的网络结构——Darknet-19,它包含了 19 个卷积层和 5 个最大池化层。Darknet-19 网络广泛使用 3×3 卷积与 1×1 卷积的组合来提取丰富的特征,并且在所有的卷积层之后都加入了 Batch Normalization 层,这有助于加速网络收敛并提高训练的稳定性。

        YOLOv2 的核心创新点包括引入 Anchor Boxes(先验框)、采用 Batch Normalization、进行高分辨率预训练以及使用 Dimension Clusters。借鉴 Faster R-CNN 和 SSD 等模型的思想,YOLOv2 引入了 Anchor Boxes,使得每个网格单元能够预测多个不同大小和长宽比的候选边界框,从而显著提高了模型对多目标和不同尺度目标的检测能力。Batch Normalization 的应用有效减少了过拟合的风险,加快了训练速度,并使网络更加稳定。YOLOv2 还采用了先在低分辨率(224×224)图像上进行分类预训练,然后再切换到高分辨率(448×448)进行检测的方式,以保证网络能够适应高分辨率的特征。此外,YOLOv2 通过对训练集中目标框的尺寸分布进行聚类分析,自动学习得到更优的 Anchor Boxes 尺寸,减少了人工设置的工作量,并提升了网络对目标尺度的适应性。

        得益于这些改进,YOLOv2 在 PASCAL VOC 2007 数据集上的平均精度均值(mAP)达到了 76.8%,相较于 YOLOv1 提升了约 13%。在 COCO 数据集上,YOLOv2 也取得了不错的性能表现。虽然在精度上与当时最先进的检测器相比仍有差距,但其在检测速度方面依然保持着明显的优势。

        尽管 YOLOv2 相较于 YOLOv1 有了显著的提升,但它仍然存在一些不足之处。例如,对于非常小的目标,模型仍然容易出现漏检的情况。此外,在高分辨率输入下,网络的推理速度也会相应减慢。Anchor Boxes 的引入虽然提升了检测性能,但也使得网络的预测过程更加复杂,需要进行更多的后处理步骤。这些问题也为后续的 YOLO 系列模型提供了改进的方向。

3.3、YOLOv3

        YOLOv3 由 Joseph Redmon 和 Ali Farhadi 于 2018 年在论文 “YOLOv3: An Incremental Improvement” 中提出。相较于 YOLOv2,YOLOv3 在网络结构和检测头的设计上进行了显著的改进,旨在进一步提升目标检测的性能,尤其是在小目标检测方面。

        YOLOv3 的核心网络结构是 Darknet-53,这是一个比 YOLOv2 的 Darknet-19 更深的网络,并且引入了残差连接(Residual Connections)以缓解深层网络中常见的梯度消失问题。Darknet-53 不仅在目标检测任务中表现出色,在图像分类任务上也展现了优秀的性能。此外,YOLOv3 借鉴了特征金字塔网络(FPN)的思想,在网络的不同深度层输出多个尺度的特征图,分别用于预测不同大小的目标:高分辨率的浅层特征图用于检测小目标,中等分辨率的特征图用于检测中等大小的目标,而低分辨率的深层特征图则用于检测大目标。

        YOLOv3 的核心创新点包括多尺度预测、改进的边界框预测以及分类方式的改变。通过在三个不同的尺度上进行检测,YOLOv3 显著提升了对小目标的检测性能。在边界框预测方面,YOLOv3 对每个网格单元预测 3 个 Anchor Boxes,并在网络输出层对坐标进行相对偏移量的回归,从而提高了边界框的精确度。此外,YOLOv3 使用逻辑回归(Logistic)代替了 Softmax 来预测每个类别的置信度,这一改变使得模型能够支持多标签检测,即一个目标可以同时属于多个类别。

        在性能表现方面,YOLOv3 在 COCO 数据集上的平均精度均值(AP50)达到了 57.9%,相较于 YOLOv2 有了进一步的提升。同时,YOLOv3 依然保持了较高的推理速度,能够达到每秒数十帧的水平。尤其值得一提的是,YOLOv3 对小目标的检测精度有了显著的提高,使其更适用于无人机航拍、视频监控等需要检测小目标的场景。

        尽管 YOLOv3 在性能和速度上都取得了显著的进步,但它在极小目标检测方面仍然面临挑战。此外,由于网络规模的增大,YOLOv3 对显存的需求也相应增加。与双阶段检测方法(如 Faster R-CNN)相比,YOLOv3 在某些复杂的场景下的精度仍然存在差距,但其在实时性方面所拥有的巨大优势使其在许多应用中更具吸引力。

3.4、YOLOv4

        YOLOv4 由 Bochkovskiy 等人在 2020 年的论文 “YOLOv4: Optimal Speed and Accuracy of Object Detection” 中提出。该工作通过整合当时最先进(SOTA)的技术,例如 Mosaic 数据增强、CSPNet 和 Mish 激活函数等,旨在进一步提升 YOLO 系列的检测精度和速度,实现了性能上的显著飞跃。

        YOLOv4 的核心网络结构是 CSPDarknet53。它结合了 Cross Stage Partial Network(CSPNet)的思想,将主干网络分成两个部分并行计算,然后在后续阶段进行融合。这种结构设计有效地减轻了重复梯度计算,降低了计算量,并提升了模型的推理速度。此外,YOLOv4 在网络的某些层中使用了 Mish 激活函数。相较于传统的 ReLU 和 Leaky ReLU,Mish 激活函数对梯度的平滑性更好,有助于网络更好地收敛。

        YOLOv4 的核心创新在于系统性地总结并应用了大量能够提升目标检测精度和速度的“技巧”,作者将其归纳为 “Bag of Freebies” 和 “Bag of Specials”。“Bag of Freebies” 指的是那些在不增加推理开销的情况下能够提升模型精度的改进方法,例如 Mosaic 和 CutMix 等数据增强技术以及标签平滑(Label Smoothing)等。“Bag of Specials” 则指的是那些会带来少量额外推理开销,但能够显著提升模型精度的组件,例如空间金字塔池化(SPP)以及 DIoU(Distance IoU)或 CIoU(Complete IoU)等改进的 NMS(Non-Maximum Suppression)方法。特别值得一提的是 Mosaic 数据增强,它通过将多张图像随机拼接成一张用于训练,显著提升了网络的泛化能力。同时,YOLOv4 在边界框回归时使用了 CIoU 或 DIoU 损失,这增强了对预测框形状和中心点位置的约束,从而提高了定位的准确性。

        在性能表现方面,YOLOv4 在 COCO 数据集上达到了 43.5% 的 AP(val2017),在速度和精度之间取得了当时最优的平衡,达到了 SOTA 水平。相较于 YOLOv3,YOLOv4 在检测精度上有了明显的提升,并且依然保持了实时检测所需的推理速度。这使得 YOLOv4 在实际应用中具有很高的价值。

3.5、YOLOv5

        YOLOv5 的出现颇具争议,因为它并非由 YOLO 系列的原始作者 Joseph Redmon 提出,而是由 Ultralytics 团队于 2020 年在 GitHub 上开源。尽管其命名引发了一些社区讨论,但 YOLOv5 基于 PyTorch 实现,并采用了更加现代化的工程化手段进行打包,这极大地便利了开发者的使用和部署。

        YOLOv5 引入了一些关键的改进。首先是 Focus 模块,它被应用于网络的输入端,用于对图像进行切分和拼接操作。与直接的卷积下采样相比,Focus 模块能够保留更多的特征信息。其次,YOLOv5 采用了自适应 Anchor 机制,在训练开始前通过 K-Means 聚类算法自动生成更符合数据集特性的 anchor 框,从而减少了手动调整 anchor 参数的成本。此外,YOLOv5 非常注重工程化优化,提供了完善的训练和推理脚本,并且在 GitHub 上保持着积极的更新和维护,使其在实际项目中更易于集成和应用。

        YOLOv5 衍生出了多个不同规模的版本,包括 YOLOv5s、YOLOv5m、YOLOv5l 和 YOLOv5x 等。这些不同尺寸的模型在精度和速度上有所权衡,能够满足从轻量级应用到追求高精度的各种需求。在后续的版本中,YOLOv5 还引入了 PANet 作为特征融合网络以及空间金字塔池化(SPP)等组件,以进一步提升性能。

        在 COCO 数据集上,YOLOv5 的各个版本在速度和精度之间形成了一个分布式的性能谱。开发者可以根据具体的应用需求在这两者之间进行选择。例如,YOLOv5s 作为最小的模型,在普通的 GPU 上即可实现超过 100 FPS 的超实时推理速度,而 YOLOv5x 作为最大的模型,则在目标检测精度方面更具竞争力。

3.6、YOLOv6

        YOLOv6 由旷视(Megvii)于 2022 年开源,其主要目标是构建一个工业级的高效目标检测系统。YOLOv6 在设计上特别强调推理速度和易部署性,并为此进行了大量的优化工作,使其更适用于实际的工业应用场景。

        YOLOv6 的核心创新点包括采用 RepVGG 结构、优化训练策略以及实现高效推理。模型使用了 RepVGG 等结构化的卷积模块,这种设计将网络的结构在训练阶段和推理阶段进行了解耦。在训练时,RepVGG 使用多分支结构以获得更高的精度,而在推理时,这些分支会被等效地合并成一个简单的卷积层,从而简化了推理图,减少了计算量,并提高了推理速度。此外,YOLOv6 还对数据增强、损失函数等训练策略进行了改进,以提升模型在复杂工业场景下的鲁棒性。针对 TensorRT 等主流推理引擎,YOLOv6 进行了专门的优化,减少了算子的冗余,使得模型在实际部署中能够达到更优的速度表现。

        在性能方面,YOLOv6 在 COCO 数据集上取得了与 YOLOv5 相当的检测精度,但在推理速度方面可能更具优势。由于其高度的工业化特性和对高效推理的优化,YOLOv6 非常适合在嵌入式设备和低算力等资源受限的场景中进行快速部署和应用。

3.7、YOLOv7

        YOLOv7 由 Wang 等人在 2022 年提出,并在 GitHub 上开源。其核心目标是在实时目标检测领域实现新的突破,通过更有效地利用网络结构,在速度和精度之间取得更优的平衡点。

        YOLOv7 的关键创新在于引入了 E-ELAN(Extended Efficient Layer Aggregation Network)结构。E-ELAN 是对 YOLOv5 中使用的 ELAN 结构的扩展和改进,它使得特征在网络中能够更充分地流动和重用,从而显著提高了网络的学习能力和效率。此外,YOLOv7 还继承了 YOLOv4 和 YOLOv5 中的许多有效技巧,例如自适应 Anchor 框、Mosaic 和 MixUp 等数据增强方法,以及 DIoU 或 CIoU 损失函数和 NMS 等后处理技术。

        在性能表现方面,YOLOv7 在 COCO 数据集上实现了多种模型规模下的最先进(SOTA)实时检测性能。相较于 YOLOv5 和 YOLOv6,YOLOv7 在精度上均有一定程度的提升,同时保持了较高的推理速度,使其在需要实时目标检测的应用场景中更具竞争力。

3.8、YOLOv8

        YOLOv8 由 Ultralytics 团队于 2023 年初发布,代表了 YOLO 系列在社区开源项目层面的一次重大更新,它在 YOLOv5 的基础上进行了多方面的重构,并提供了更加灵活的命令行工具和模型定义。

        YOLOv8 的核心创新点包括强调端到端的训练流程,以及探索了新的网络模块设计。在网络设计上,YOLOv8 致力于减少中间环节,使得模型的训练和推理流程更加紧凑高效。同时,它引入了一些新的卷积模块和特征融合方式,旨在通过更简洁和优化的结构,在相同的推理速度下实现更高的平均精度均值(mAP)。此外,YOLOv8 还注重提升兼容性,提供了官方的 Docker 镜像和持续集成/持续部署(CI/CD)脚本,方便开发者在各种不同的环境下进行快速部署。

        YOLOv8 同样面临了与 YOLOv5 类似的命名争议,但这并未影响其在社区中获得的广泛认可,其易用性和性能依然备受肯定。在一些性能测试中,YOLOv8 相对于 YOLOv5、YOLOv6 甚至 YOLOv7 展现出一定的优势,尤其是在小型模型(如 YOLOv8s)上,其推理速度更快。

3.9、YOLOv9

        YOLOv9 的核心思路在于通过在主干网络的关键位置引入注意力机制,例如 CBAM(Convolutional Block Attention Module)或 ECA(Efficient Channel Attention)等模块,来增强网络对图像中目标区域的关注度。此外,YOLOv9 还优化了多尺度特征融合的策略,旨在使网络在检测小目标和被遮挡目标时表现出更强的优势。

        在性能方面,YOLOv9 相较于 YOLOv8 在小目标检测场景下的平均精度均值(mAP)取得了 1% 至 2% 的提升,并且在推理速度上基本保持了与 YOLOv8 相当的水平。这意味着 YOLOv9 在提高对具有挑战性目标(如小目标)的检测能力的同时,依然能够维持较高的实时性。

3.10、YOLOv10

        YOLOv10 的核心思路是在特征提取阶段引入轻量级的 Transformer 模块,并将其与卷积神经网络(CNN)并行或串行地融合,以更好地捕捉图像的全局上下文信息。此外,YOLOv10 还采用了更精细的 IoU 变体损失函数,例如 EIoU(Efficient Intersection over Union),来进行更精确的边界框回归。

        YOLOv10 的改进之处在于引入了自适应多尺度训练策略,该策略在训练过程中动态调整输入图像的分辨率,从而增强模型对不同尺度目标的鲁棒性。此外,YOLOv10 还探索了半监督学习的方法,在部分应用场景下,可以利用无标注的数据来进一步提升检测性能。

3.10、YOLOv11

        YOLOv11 的一个关键目标是提升模型的可解释性。为此,它在网络中嵌入了可视化模块,能够实时输出注意力热图,从而帮助研究人员分析网络在进行目标检测时所关注的关键区域,这对于理解模型的工作机制至关重要。

        YOLOv11 还引入了自适应 Anchor V2 机制。与之前的自适应 Anchor 方法不同,V2 版本在训练过程中能够动态地更新 Anchor 框的大小和比例,以便更好地适应不同数据集中的目标分布特性,从而提高模型对各种目标尺寸和形状的适应能力。

3.10、YOLOv12

        YOLOv12 的核心设计理念是“注意力集成”。它在骨干网络和特征融合层中深度整合了多种类型的注意力机制,包括自注意力、CBAM 和 ECA 等。这种设计旨在在不显著增加计算量的前提下,大幅提升网络对图像特征的表达能力。值得一提的是,YOLOv12 的部分实现还结合了 FlashAttention 等硬件级优化技术,使得注意力计算即使在高分辨率的输入下依然能够保持高效。

        为了追求极致的性能,YOLOv12 采用了分布式训练框架,例如 ZeRO 和 Megatron-LM。借助这些框架,YOLOv12 能够在数亿甚至数十亿图像的超大规模数据集上进行训练,从而获得了极佳的泛化性能,使其在面对各种复杂的真实世界场景时都能表现出色。

        在性能表现方面,YOLOv12 在 COCO、OpenImages 等大型目标检测数据集上,依然保持着速度与精度平衡方面的行业领先地位。更令人瞩目的是,在一些特定的应用任务中,例如无人机航拍和自动驾驶场景,YOLOv12 的平均精度均值(mAP)和推理帧率都达到了新的高度,展现了其强大的实力。

四、YOLO系列信息汇总

4.1、YOLOv1

  • 论文: "You Only Look Once: Unified, Real-Time Object Detection"

  • 论文地址: https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Redmon_You_Only_Look_CVPR_2016_paper.pdf

4.2、YOLOv2 / YOLO9000

  • 论文: "YOLO9000: Better, Faster, Stronger"

  • 论文地址: https://arxiv.org/pdf/1612.08242

4.3、YOLOv3

  • 论文: "YOLOv3: An Incremental Improvement"

  • 论文地址: https://arxiv.org/pdf/1804.02767

4.4、YOLOv4

  • 论文: "YOLOv4: Optimal Speed and Accuracy of Object Detection"

  • 论文地址: https://arxiv.org/pdf/2004.10934

  • 代码地址: GitHub - AlexeyAB/darknet: YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )

4.5、YOLOv5

  • 发布日期: 无论文发表

  • 开源地址: GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

4.6、 YOLOv6

  • 论文: "YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications"

  • 论文地址: https://arxiv.org/pdf/2209.02976

  • 代码地址: GitHub - meituan/YOLOv6: YOLOv6: a single-stage object detection framework dedicated to industrial applications.

4.7、YOLOv7

  • 论文: "YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors"

  • 论文地址: https://openaccess.thecvf.com/content/CVPR2023/papers/Wang_YOLOv7_Trainable_Bag-of-Freebies_Sets_New_State-of-the-Art_for_Real-Time_Object_Detectors_CVPR_2023_paper.pdf

  • 代码地址: GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

4.8、YOLOv8

  • 发布日期: 2023年1月

  • 作者: Ultralytics 团队

  • 论文: 无论文发表

  • 开源地址: https://github.com/Pertical/YOLOv8

4.9、YOLOv9

  • 发布日期: 2024年2月

  • 作者/贡献者: WongKinYiu 等

  • 论文: "YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information"

  • 论文地址: https://arxiv.org/pdf/2402.13616

  • 代码地址: GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

4.10、YOLOv10

  • 发布日期: 2024年5月

  • 作者: 清华大学

  • 论文: "YOLOv10: Real-Time End-to-End Object Detection"

  • 论文地址: https://arxiv.org/pdf/2405.14458

  • 代码地址: GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]

4.11、YOLOv11

  • 发布日期: 2024年9月

  • 作者: Ultralytics 团队

  • 论文: 无论文发表

  • 开源地址: GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀

4.12、YOLOv12

  • 论文: "YOLOv12: Attention-Centric Real-Time Object Detectors"

  • 代码地址: sunsmarterjie/yolov12: YOLOv12: Attention-Centric Real-Time Object Detectors

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OLED(SSD306)移植全解-基于IIC

OLED(SSD306)移植全解-基于IIC 一,什么是oled?二,什么是IIC协议三,IIC通信流程:四,针对SSD1306的IIC通信流程(结合芯片手册版)1,主机发送起始信号2&#xff…

LangChain【7】之工具创建和错误处理策略

文章目录 一 LangChain 自定义工具概述二创建自定义工具的三种方法2.1 方法一:tool 装饰器2.1.1 同步方法案例2.1.2 工具描述方式1:传参2.1.3 工具描述方式2:文档字符串 2.2 方法二:StructuredTool类2.2.1 StructuredTool创建自定…

【信息系统项目管理师-选择真题】2025上半年(第二批)综合知识答案和详解(回忆版)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…

「EN 18031」访问控制机制(ACM - 1):智能路由器的安全守卫

家用路由器要是出口欧洲,可得留意欧盟EN18031标准里的访问控制机制。以路由器为例,访问控制机制(ACM)能决定谁能连入网络、访问哪些网站。比如通过设置不同的用户角色和权限,家长可以限制孩子设备的上网时间和可访问的…

关于项目多语言化任务的概述

今天的任务一个是关于多语言化的,也就是i18n,我需要做的呢首先是知道项目多语言是怎么实现的,一般情况下没有多语言化这个功能的时候,我们会写一个页面,默认是英文,然后里面的文本都是英文,那么…

护网行动面试试题(2)

文章目录 51、常见的安全工具有哪些?52、说说Nmap工具的使用?53、近几年HW常见漏洞有哪些?54、HW 三(四)大洞56、获得文件读取漏洞,通常会读哪些文件57、了解过反序列化漏洞吗?58、常见的框架漏…

Transformer-BiGRU多变量时序预测(Matlab完整源码和数据)

Transformer-BiGRU多变量时序预测(Matlab完整源码和数据) 目录 Transformer-BiGRU多变量时序预测(Matlab完整源码和数据)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现Transformer-BiGRU多变量时间序列预测&…

SOC-ESP32S3部分:31-ESP-LCD控制器库

飞书文档https://x509p6c8to.feishu.cn/wiki/Syy3wsqHLiIiQJkC6PucEJ7Snib ESP 系列芯片可以支持市场上常见的 LCD(如 SPI LCD、I2C LCD、并行 LCD (Intel 8080)、RGB/SRGB LCD、MIPI DSI LCD 等)所需的各种时序。esp_lcd 控制器为上述各类 LCD 提供了一…

苹果电脑深度清理,让老旧Mac重焕新生

在日常使用苹果电脑的过程中,随着时间推移,系统内会积累大量冗余数据,导致电脑运行速度变慢、磁盘空间紧张。想要让设备恢复流畅,苹果电脑深度清理必不可少。那么,如何进行苹果电脑深度清理呢?接下来为你详…

如何处理React中表单的双向数据绑定?

在前端开发中,双向数据绑定(Two-way Data Binding)是指视图(View)与数据模型(Model)之间保持同步:当模型发生变化时,视图会自动更新;当视图(用户输…

手机上网可以固定ip地址吗?详细解析

在移动互联网时代,手机已成为人们日常上网的主要设备之一。无论是工作、学习还是娱乐,稳定的网络连接都至关重要。许多用户对IP地址的概念有所了解,尤其是固定IP地址的需求。那么,手机上网能否固定IP地址?又该如何实现…

Spring Boot + Prometheus 实现应用监控(基于 Actuator 和 Micrometer)

文章目录 Spring Boot Prometheus 实现应用监控(基于 Actuator 和 Micrometer)环境准备示例结构启动和验证验证 Spring Boot 应用Prometheus 抓取配置(静态方式)Grafana 面板配置总结 Spring Boot Prometheus 实现应用监控&…

rk3588 上运行smolvlm-realtime-webcam,将视频转为文字描述

smolvlm-realtime-webcam 是一个开源项目,结合了轻量级多模态模型 SmolVLM 和本地推理引擎 llama.cpp,能够在本地实时处理摄像头视频流,生成自然语言描述, 开源项目地址 https://github.com/ngxson/smolvlm-realtime-webcamhttps…

原生js操作元素类名(classList,classList.add...)

1、classList classList属性是一个只读属性&#xff0c;返回元素的类名&#xff0c;作为一个DOMTokenList集合(用于在元素中添加&#xff0c;移除及切换css类) length:返回类列表中类的数量&#xff0c;该属性是只读的 <style> .lis { width: 200px; …

九.C++ 对引用的学习

一.基本概念 引用即内存的别名 int a 10; int& b a; 引用本身不占用内存&#xff0c;并非实体&#xff0c;对引用的所有操作都是在对目标内存进行操作 引用必须初始化&#xff0c;且不能更换对象 int c 5; b c; // 仅仅是在对引用的目标内存进行赋值 #include <ios…

7.2.1_顺序查找

知识总览&#xff1a; 顺序查找&#xff1a; 算法思想&#xff1a; 从头到脚挨个找或者从脚到头挨个找适用于线性表(顺序存储和链式存储都适用)&#xff0c;又叫线性查找 实现&#xff1a; 1个数组elem指向数组的起始位置&#xff0c;索引从0开始遍历数组直到找到目标值返回…

视觉SLAM基础补盲

3D Gaussian Splatting for Real-Time Radiance Field Rendering SOTA方法3DGS contribution传统重建基于点的渲染NeRF 基础知识补盲光栅化SFM三角化极线几何标准的双目立体视觉立体匹配理论与方法立体匹配的基本流程李群和李代数 李群和李代数的映射李代数的求导李代数解决求导…

如何利用 Redis 实现跨多个无状态服务实例的会话共享?

使用 Redis 实现跨多个无状态服务实例的会话共享是一种非常常见且有效的方案。无状态服务本身不存储会话信息&#xff0c;而是将用户的会话数据集中存储在外部存储中&#xff08;如 Redis&#xff09;&#xff0c;这样任何一个服务实例都可以通过查询外部存储来获取和更新用户的…

《chipyard》docker使用

一、启动/重启服务 二、登入/退出 容器对象查看 sudo docker ps -a # 查看容器列表 登入已例化的容器 sudo docker exec -it -u root 737ed3ddd5ff bash # 737ed3ddd5ff<容器名称/ID> 三、容器编辑 删除单个容器 sudo docker stop <容器ID> #停止容器 s…

浏览器工作原理06 [#]渲染流程(下):HTML、CSS和JavaScript是如何变成页面的

引用 浏览器工作原理与实践 简单回顾下上节前三个阶段的主要内容&#xff1a;在HTML页面内容被提交给渲染引擎之后&#xff0c;渲染引擎首先将HTML解析为浏览器可以理解的DOM&#xff1b;然后根据CSS样式表&#xff0c;计算出DOM树所有节点的样式&#xff1b;接着又计算每个元素…