【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考

news2024/11/18 3:29:15

PP-YOLOE: An evolved version of YOLO

Abstract

  • 在本报告中,我们介绍了PP-YOLOE,一种具有高性能和友好部署的工业最先进的目标探测器。我们在之前的PP-YOLOv2的基础上进行优化,采用无锚模式,更强大的骨干和颈部配备CSPRepResStage, ET-head和动态标签分配算法TAL。我们为不同的实践场景提供s/m/l/x模型。结果,pp - yoloe - 1在COCO测试开发上实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,与之前的先进工业车型PP-YOLOv2和YOLOX相比,分别实现了(+1.9 AP, +13.35%提速)和(+1.3 AP, +24.96%提速)的显著提升。在TensorRT和fp16精度下,PP-YOLOE推理速度达到149.2 FPS。我们还进行了大量的实验来验证我们设计的有效性。源代码和预训练模型可在PaddleDetection PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. (github.com)。
  • 论文地址:[2203.16250] PP-YOLOE: An evolved version of YOLO (arxiv.org)
  • 首先PP-YOLOE-l 在COCO数据集上达到了51.4mAP。相比较PP-YOLOv2提升1.9AP和13.35%的速度,相比较YOLOX提升1.3AP和24.96%的速度。PP-YOLOE中主要的改进点是:anchor-free,powerful backbone and neck,TAL动态label assign,ET-head
  • 该检测器的设计机制包括Anchor free无锚盒机制,可扩展的backbone和neck,由CSPRepResStage(CSPNet+RMNet)构成,使用Varifocal Loss(VFL)和Distribution focal loss(DFL)的头部机制ET-head,动态标签分配算法Task Alignment Learning(TAL)

Introduction

  • 单级目标检测器由于具有良好的速度和精度平衡,在实时应用中很受欢迎。单级探测器中最突出的结构是YOLO系列。自YOLOv1以来,YOLO系列目标检测器在网络结构、标签分配等方面发生了巨大的变化。目前,YOLOX在Tesla V100上以68.9 FPS的速度实现了50.1 mAP的速度和精度的最佳平衡。

  • YOLOX引入了先进的无锚方法,配备了动态标签分配,提高了探测器的性能,在精度上明显优于YOLOv5。受YOLOX的启发,我们进一步优化了之前的作品PP-YOLOv2。PP-YOLOv2是一款高性能一级探测器,在特斯拉V100上具有49.5 mAP, 68.9 FPS的速度。在PP-YOLOv2的基础上,提出了YOLO的演进版本,命名为PP-YOLOE。PP-YOLOE避免使用可变形卷积和矩阵NMS等算子,以便在各种硬件上得到很好的支持。此外,PPYOLOE可以轻松扩展到具有不同计算能力的各种硬件的一系列模型。这些特点进一步推动了PP-YOLOE在更广泛的实际场景中的应用。

  • 如图所示,PP-YOLOE在速度和精度权衡方面优于YOLOv5和YOLOX。具体而言,pp - yoloe - 1以 78.1 FPS的速度在640 × 640分辨率的COCO上实现了51.4 mAP,比pp - yolo2 和yolox - 1分别高出1.9%和1.3% AP。此外,PP-YOLOE有一系列型号,可以像YOLOv5一样通过宽度乘倍器和深度乘倍器进行简单配置。我们的代码已经在PaddleDetection上发布,支持TensorRT和ONNX。

    • 在这里插入图片描述

    • PP-YOLOE与其他先进型号的比较。pp - yoloe - l在COCO测试开发上实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,比pp - yoloe - v2获得了1.9 AP和9.2 FPS的提升。

  • PP-YOLOv2的总体情况包括:(1)backbone:具有可变形卷积的ResNet50-vd;(2)neck:具有SPP层的PAN,DropBlock;(3)head:轻量级的IoU感知;(4)激活函数:在backbone中使用ReLU激活,neck中使用Mish激活;(5)标签分配:为每个ground truth目标分配一个anchor box;(6)损失:分类损失、回归损失、目标损失,IoU损失和IoU感知损失;

  • PP-YOLOE是基于PP-YOLOv2的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE有一系列的模型,即s/m/l/x,可以通过width multiplier和depth multiplier配置。PP-YOLOE避免了使用诸如Deformable Convolution或者Matrix NMS之类的特殊算子,以使其能轻松地部署在多种多样的硬件上

  • PPYOLOE中的anchor free方法,主要就是将之前anchor base中预测相较于anchor的xywh,改进为预测ltrb(left,top,right,bottom),并将ltrb结果乘上当前特征图的stride。

Method

  • 在本节中,我们将首先回顾我们的基线模型,然后从网络结构、标签分配策略、头部结构和损失函数等方面详细介绍PP-YOLOE的设计(下图)。

    • 在这里插入图片描述

    • 我们PP-YOLOE的模型架构。主干是CSPRepResNet,颈部是Path Aggregation Network (PAN),头部是Efficient Task-aligned head (ET-head)。

A Brief Review of PP-YOLOv2

  • PP-YOLOv2的整体架构包括具有可变形卷积的ResNet50-vd 主干、具有SPP层和DropBlock的PAN主干和轻量级IoU感知头。在PPYOLOv2中,主干使用ReLU激活函数,颈部使用mish激活函数。继YOLOv3之后,PP-YOLOv2只为每个 GT 值对象分配一个锚框。除了分类损失、回归损失和对象损失外,PP-YOLOv2还使用IoU损失和IoU感知损失来提高性能。

Improvement of PP-YOLOE

  • Anchor-free。如上所述,PP-YOLOv2以基于锚点的方式分配基础真理。然而,锚定机制引入了许多超参数,并且依赖于手工设计,这可能不能很好地推广到其他数据集。基于以上原因,我们在PP-YOLOv2中引入无锚法。根据FCOS[26]在每个像素上贴合一个锚点,我们为三个检测头设置上下限,将ground truth分配给相应的feature map。然后,计算边界框的中心,选择最接近的像素作为正样本。根据YOLO序列,预测一个四维向量(x, y, w, h)进行回归。这个修改使模型更快了一点,损失了0.3 AP,如表2所示。虽然根据PPYOLOv2的锚点尺寸仔细设置了上界和下界,但基于锚点和无锚点的赋值结果仍然存在一些小的不一致,这可能导致精度下降不大。PPYOLOE解析1 Backbone - 飞桨AI Studio (baidu.com)

  • Backbone and Neck。残差连接和密集连接在现代卷积神经网络中得到了广泛的应用。残差连接引入了解决梯度消失问题的捷径,也可以看作是一种模型集成方法。密集连接集合了具有不同接收域的中间特征,在目标检测任务中表现出良好的性能。CSPNet利用跨级密集连接来降低计算负担而不损失精度,这种方法在YOLOv5、YOLOX等有效的目标检测器中很流行。VoVNet和随后的TreeNet在对象检测和实例分割方面也表现出优异的性能。受这些作品的启发,我们提出了一种结合残差连接和密集连接的新型RepResBlock,用于我们的Backbone and Neck。

  • 源自TreeBlock,我们的RepResBlock在训练阶段如下图(b)所示,在推理阶段如下图©所示。首先,我们对原始TreeBlock进行简化(下图(a))。然后,我们用元素相加操作代替连接操作(下图(b)),因为RMNet在某种程度上显示了这两种操作的近似。因此,在推理阶段,我们可以将RepResBlock重新参数化为ResNet-34以RepVGG风格使用的基本残差块(下图©)。

    • 在这里插入图片描述

    • 我们的RepResBlock和CSPRepResStage的结构

  • 我们使用所提出的RepResBlock来构建Backbone and Neck。与ResNet类似,我们的主干名为CSPRepResNet,包含一个由三个卷积层组成的主干,以及由我们的RepResBlock堆叠的四个后续阶段,如上图(d)所示。在每一步中,采用跨阶段部分连接,避免了大量 3 × 3 卷积层带来的大量参数和计算负担。ESE(有效挤压和提取)层也用于在构建主干时在每个CSPRepResStage中施加信道注意。我们在PP-YOLOv2之后使用所提出的RepResBlock和CSPRepResStage构建颈部。与主干不同的是,主干去掉了RepResBlock中的残差链接和CSPRepResStage中的ESE层。

  • 我们使用宽度乘法器α和深度乘法器β像YOLOv5一样对基本 Backbone and Neck 进行联合缩放。因此,我们可以得到一系列具有不同参数和计算量的检测网络。基本骨干宽度设置为[64,128,256,512,1024]。除主干外,基本主干的深度设置为[3,6,6,3]。基本颈宽设置为[192,384,768],深度设置为3。下表给出了不同模型的宽度乘法器α和深度乘法器β的规格。

    • 在这里插入图片描述

    • 宽度乘法器α和深度乘法器β规范的一系列网络

  • 这样的修改使AP性能提高了0.7%,即49.5%,如下表所示。

    • 在这里插入图片描述

    • pp - yoloe - l在COCO val上的烧蚀研究。我们使用640×640分辨率作为输入,采用fp32精度,在特斯拉V100上进行测试,不进行后处理。

  • 任务一致性学习(TAL)。为了进一步提高准确性,标签分配是另一个需要考虑的方面。YOLOX使用SimOTA作为标签分配策略来提高性能。然而,为了进一步克服分类和定位的错位,在 TOOD 中提出了任务对齐学习(task alignment learning, TAL),它由动态标签分配和任务对齐损失组成。动态标签分配意味着预测/损失意识。根据预测,为每个真值分配动态的正锚点个数。通过显式地对齐这两个任务,TAL可以同时获得最高的分类分数和最精确的边界框。在PP-YOLOE训练时,前5个epoch是使用ATSS中的分配方式,后续的epochs才使用TAL作为label assign方式。主要原因是TAL需要模型具有一定表现的基础上,才能具有比较好的分配效果。

  • 比较值得注意的是,往常我们在计算class分支的loss时候,使用BCEloss时候,输入分别是pred_score和label_one_hot向量。而在PP-YOLOE中,将label_one_hot向量替换成了TAL分配时的alignment metric。alignment metric中分数越高,就意味着越是高质量样本,模型希望高质量样本拥有更高的class score。

  • 对于与任务对齐的损失,TOOD使用一个归一化的 t,即 t ^ \hat{t} t^ 来代替损失中的目标。它采用每个实例中最大的IoU作为规范化。分类的二进制交叉熵(Binary Cross Entropy, BCE)可以重写为:

    • L c l s − p o s = ∑ i = 1 N p o s B C E ( p i , t i ^ ) , ( 1 ) L_{cls-pos}=\sum_{i=1}^{N_{pos}}BCE(p_i,\hat{t_i}),(1) Lclspos=i=1NposBCE(pi,ti^),(1)
  • 我们研究了使用不同标签分配策略的性能。本文以CSPRepResNet为骨干,在上述改进的模型上进行了实验。为了快速得到验证结果,我们只在COCO train2017上训练了36个epoch,并在COCO val上进行验证,如下表所示,TAL达到了最佳的45.2% AP性能。我们使用TAL替代标签分配,如FCOS样式,并实现0.9% AP改进- 50.4% AP,如上表所示。

    • 在这里插入图片描述

    • 不同的标签分配在基本模型上。我们使用CSPRepResStage作为主干和颈部,一个1×1 conv层作为头部,在COCO train2017上只训练了36个epoch。

  • 高效任务对齐头(ET-head)。在目标检测中,分类与定位之间的任务冲突是一个众所周知的问题。许多文献都提出了相应的解决方案。YOLOX的解耦头吸取了大多数一级和二级检测器的经验,并成功应用于YOLO模型,提高了精度。但是,解耦的头部可能会使分类和定位任务分离和独立,缺乏针对任务的学习。在TOOD的基础上,我们改进了头,提出了以速度和精度为目标的ET-head。如图上所示,我们使用ESE取代了tod中的层关注,将分类分支的对齐简化为shortcut,将回归分支的对齐替换为分布焦损(distributed focal loss, DFL)层。通过上述变化,ET-head在V100上增加了0.9ms。

  • 对于分类和定位任务的学习,我们分别选择了变焦损失(VFL)和分布焦损失(DFL)。PP-Picodet成功地将VFL和DFL应用于目标检测器,并获得了性能提升。对于VFL,与[Generalized focal loss]中的质量焦点损失(quality focal loss, QFL)不同,VFL使用目标分数来加权阳性样本的损失。这种实现使得高IoU的阳性样本对损失的贡献相对较大。这也使得模型在训练时更加关注高质量的样本,而不是那些低质量的样本。相同的是,两者都使用IACS作为预测的目标。这可以有效地学习分类分数和定位质量估计的联合表示,使训练和推理之间具有较高的一致性。对于DFL,为了解决边界框表示不灵活的问题,[Generalized focal loss]提出使用一般分布来预测边界框。我们的模型由损失函数监督:

    • L o s s = α ⋅ L o s s V F L + β ⋅ L o s s G I O U + γ ⋅ L o s s D F L ∑ i N p o s t ^ , ( 2 ) Loss=\frac{\alpha·Loss_{VFL}+\beta ·Loss_{GIOU}+\gamma ·Loss_{DFL}}{\sum^{N_{pos}}_i\hat t},(2) Loss=iNpost^αLossVFL+βLossGIOU+γLossDFL,(2)

    • 其中, t ^ \hat t t^表示归一化目标得分,见式(1)。如上表所示,ET-head获得0.5% AP改善- 50.9% AP

  • 分类分支:VFL提出了非对称的加权操作。正负样本有不平衡的问题,同样在正样本中也有不等权的问题,意思就是要更多的发现有价值的正样本。在为负样本的时候,不同的负样本的weight主要由当前pred_score决定,pred_score越大,weight越大,loss越大。而在为正样本的时候,weight为gt_score,而gt_score来源于TAL assign时。这也就达到了①正样本和负样本权重计算方式不同,②每个正负样本在计算loss时的权重都是不同的,达到了非对称的加权操作

  • 回归分支:目标检测任务中做回归一般是直接预测某个回归值,或者预测相较于anchor的比例,而distribution focal loss (DFL)作者认为之前的bbox regression 采用的表示不够灵活,没有办法建模复杂场景下的uncertainty。用直接回归一个任意分布来建模框的表示可以有更好的效果。在PP-YOLOE中,将回归看作是一个分布预测任务

Experiment

  • 在本节中,我们给出了实验的细节和结果。所有实验都在MS COCO-2017训练集上进行训练,该训练集有80个类,118k张图像。对于消融研究,我们在5000张图像的MS COCO-2017验证集上使用具有单一尺度的标准COCO AP度量。我们使用MS COCO-2017 test-dev报告最终结果。

Implementation details

  • 我们使用随机梯度下降(SGD),动量= 0.9,权重衰减= 5e-4。我们使用余弦学习率计划,总epochs为300次,热身次数为5次,基本学习率为0.01。在8 × 32 G V100 GPU设备上,总批大小默认为64个,我们遵循线性缩放规则来调整学习率。在训练过程中也采用衰减= 0.9998的指数移动平均(EMA)策略。我们只使用一些基本的数据增强,包括随机裁剪、随机水平翻转、颜色失真和多尺度。特别地,输入大小均匀地从320绘制到768,步幅为32。

Comparsion with Other SOTA Detectors

  • 下表显示了MS-COCO测试分裂与其他最先进的目标检测器的结果比较。我们使用官方代码库重新评估YOLOv5和YOLOX,因为它们有非预定的更新。我们比较了批处理大小= 1(没有数据预处理和非最大抑制)的模型推理速度。而PP-YOLOE系列采用桨叶推理引擎。此外,为了公平比较,我们还在相同的环境下测试了基于tensorRT 6.0的FP16精度速度。应该强调的是,PaddlePaddle2正式支持用于模型部署的tensorRT。因此,PPYOLOE可以直接使用带有tensorRT的桨叶推理,其他测试遵循官方指南。

    • 在这里插入图片描述

    • 不同目标检测器在COCO 2017测试开发中的速度和精度比较。标注“+”的结果为官方发布的更新结果。用“*”标记的结果在我们的环境中使用官方代码库和模型进行测试。在验证和速度测试中,YOLOv5的输入大小不是640 × 640的平方,所以我们在表中跳过它。默认精度的速度是FP32的无trt和FP16的有trt。此外,我们为YOLOX w/o trt场景提供了FP32和FP16, FP32的速度在分割线的左侧,FP16的速度在右侧。PP-YOLOE+使用在Objects365数据集上预训练的模型。

Conclusion

  • 在本报告中,我们提出了PPYOLOv2的几个更新,包括可扩展的主干颈架构,高效的任务对齐头,先进的标签分配策略和改进的目标损失函数,形成了一系列高性能的目标检测器,称为PP-YOLOE。同时,我们提出了s/m/l/x模型,可以覆盖不同的实际场景。此外,在PaddlePaddle官方支持下,这些模型可以顺利过渡到部署。我们希望这些令人鼓舞的设计可以为开发人员和研究人员提供灵感。

  • Backbone 翻译为主干网络的意思,既然说是主干网络,就代表其是网络的一部分,那么是哪部分呢?翻译的很好,主干部分,哈哈哈哈,文字游戏了哈。这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用。这些网络经常使用的是resnet VGG等,而不是我们自己设计的网络,因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对他进行微调,使得其更适合于我们自己的任务。(14 封私信 / 80 条消息) 深度学习网络中backbone是什么意思? - 知乎 (zhihu.com)

SAHI:超大图片中对小目标检测的切片辅助超推理库

  • 目标检测和实例分割是迄今为止计算机视觉中最重要的应用领域。然而,小物体的检测和大图像的推理仍然是实际使用中的主要问题。切片推理的概念基本上是;对原始图像的较小切片执行推理,然后合并原始图像上的切片预测。可以用下图表示:

    • 在这里插入图片描述
  • 为了提高你的模型在小目标上的性能,推荐以下技术:medium.com

    • 提高图像采集的分辨率
    • 增加模型的输入分辨率
    • tile你的图像
    • 通过增强生成更多数据
    • 自动学习模型anchors
    • 过滤掉无关的类别
  • 检测小物体的另一个重要策略是将图像切割后形成batch,这个操作叫做tile,作为预处理步骤。tile可以有效地将检测器聚焦在小物体上,但允许你保持所需的小输入分辨率,以便能够运行快速推断。

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

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

相关文章

【C语言数据结构】模拟·顺序表·总项目实现

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

文件系统总结

《本文件系统默认linux文件系统》 一、文件系统基本概念 文件系统是操作系统中负责存取和管理信息的模块,它用统一的方式管理用户和系统信息的存储、检索、更新、共享和保护,并为用户提供一整套方便有效的文件使用和操作方法文件系统是操作系统中管理文…

【Quartus FPGA】EMIF DDR3 读写带宽测试

在通信原理中,通信系统的有效性用带宽来衡量,带宽定义为每秒传输的比特数,单位 b/s,或 bps。在 DDR3 接口的产品设计中,DDR3 读/写带宽是设计者必须考虑的指标。本文主要介绍了 Quartus FPGA 平台 EMIF 参数配置&#…

JAVA基础多线程-模拟线程死锁以及预防和避免死锁

引言 线程死锁描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 一,模拟死锁 示例代码: public class LockT1 {Object o …

最全面的msvcp110.dll丢失修复方法分享,快速修复msvcp110.dll文件

今天主要给大家详细的介绍一下msvcp110.dll丢失修复的方法,因为在网上看到很多人因为这个问题而烦恼,其实这个问题不难解决的,下面就给大家分享多种方法,一起来看看吧。 一. 修复msvcp110.dll丢失的方法 重新安装相关程序 首先&…

干翻Dubbo系列第四篇:Dubbo3第一个应用程序细节补充

前言 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。 如…

从源码分析Handler面试问题

Handler 老生常谈的问题了,非常建议看一下Handler 的源码。刚入行的时候,大佬们就说 阅读源码 是进步很快的方式。 Handler的基本原理 Handler 的 重要组成部分 Message 消息MessageQueue 消息队列Lopper 负责处理MessageQueue中的消息 消息是如何添加…

githack的安装步骤+一次错误体验

一.githack的安装步骤 1.要在Kali Linux上安装GitHack工具,您可以按照以下步骤操作: 打开终端并使用以下命令克隆GitHack存储库: git clone https://github.com/lijiejie/GitHack.git2.进入GitHack目录: cd GitHack3.安装依赖项…

『HarmonyOS』万物互联,分布式操作系统

👨‍🎓作者简介:一位喜欢写作,计科专业大二菜鸟 🏡个人主页:starry陆离 🕒首发日期:2022年7月5日星期二 🌌上期文章:『首期文章』 📚订阅专栏&…

leetcode刷题(柠檬水找零、接雨水、宝石与石头、将数组和减半的最少操作次数、更新数组后处理求和查询、删除每行中的最大值、并行课程③)

目录 1、柠檬水找零 2、接雨水 3、宝石与石头 4、将数组和减半的最少操作次数 5、更新数组后处理求和查询 6、删除每行中的最大值 7、并行课程③ 1、柠檬水找零 class Solution:def lemonadeChange(self, bills: List[int]) -> bool:dollars [0, 0] # 美元数组&am…

每日一题——有序链表去重

题目 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次。 例如:给出的链表为1→1→2,返回1→2。 给出的链表为1→1→2→3→3,返回1→2→3。 数据范围:链表长度满足 0≤n≤100&#…

深度学习训练营之DCGAN网络学习

深度学习训练营之DCGAN网络学习 原文链接环境介绍DCGAN简单介绍生成器(Generator)判别器(Discriminator)对抗训练 前置工作导入第三方库导入数据数据查看 定义模型初始化权重定义生成器generator定义判别器 模型训练定义参数模型训…

7.28

1.思维导图 2.qt的sever #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> …

计组 [指令系统] 预习题目

PPT第5章 第2部分预习题目 预习内容及相关问题 什么是R,I,J型指令&#xff0c;它们的特点&#xff1f; &#xff08;二&#xff09;R型指令的数据通路 &#xff08;指令功能与其对应的逻辑结构&#xff09; 功能&#xff1a;R[rd] ← R[rs] op R[rt]&#xff0c;如&#xff1a…

React的UmiJS搭建的项目集成海康威视h5player播放插件H5视频播放器开发包 V2.1.2

最近前端的一个项目&#xff0c;大屏需要摄像头播放&#xff0c;摄像头厂家是海康威视的&#xff0c;网上找了一圈都没有React集成的&#xff0c;特别是没有使用UmiJS搭脚手架搭建的&#xff0c;所以记录一下。 海康威视的开放平台的API地址&#xff0c;相关插件和文档都可以下…

行列转换.

表abc&#xff1a; &#xff08;建表语句在文章末尾&#xff09; 想要得到&#xff1a; 方法一 with a as(select 年,产 from abc where 季1), b as(select 年,产 from abc where 季2), c as(select 年,产 from abc where 季3), d as(select 年,产 from abc where 季4) selec…

图像识别概述

图像识别的过程 图像识别技术的过程分以下几步&#xff1a; 1. 信息的获取&#xff1a; 是指通过传感器&#xff0c;将光或声音等信息转化为电信息。也就是获取研究对象的基本信息并通过某种方法将其转变为机器能够认识的信息。 2. 预处理&#xff1a; 主要是指图像处理中的…

行业追踪,2023-07-28

自动复盘 2023-07-28 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

Android中绘制的两个天气相关的View

文章目录 一、前言二、降雨的代码三、风向代码 一、前言 开发天气相关软件时候&#xff0c;做了两个自定义View&#xff0c;这里进行记录&#xff0c;由于涉及类较多&#xff0c;这里仅包含核心代码&#xff0c;需要调整后才可以运行&#xff0c;自定义View范围仅包含网格相关…

机器学习伦理:探讨隐私保护、公平性和透明度

文章目录 &#x1f340;引言&#x1f340;隐私保护&#x1f340;公平性&#x1f340;透明度&#x1f340;结论 随着机器学习技术的不断发展和应用&#xff0c;我们必须面对伦理问题&#xff0c;以确保这些智能系统的发展和使用是符合道德和法律规范的。本文将就机器学习伦理的关…