T-CNN——利用张量 CNN 增强缺陷检测

1. 摘要

缺陷检测是制造业中一个重要而具有挑战性的问题。本研究引入了张量卷积神经网络(T-CNN),并在罗伯特-博世制造工厂生产的超声波传感器组件缺陷检测的实际应用中验证了其性能。与同类 CNN 模型相比,作者的量子启发 T-CNN 通过缩小模型参数空间,显著提高了训练速度和性能。具体来说,作者的研究表明,T-CNN 最多可以减少 15 倍的参数,训练时间缩短 4% 到 19%,却能达到相同的性能。作者的研究结果表明,T-CNN 明显优于传统的人类视觉检测结果,在实际制造应用中具有重要价值。
论文地址:https://arxiv.org/abs/2401.01373
原文地址:https://ai-scholar.tech/articles/other/T-CNN

2.研究概述

在制造过程中,区分优质部件和故障部件是产品装配过程中的关键。在结构复杂的大规模生产线上,这项任务尤其具有挑战性。传统上,质量控制是由经验丰富的人工检查员通过目测产品图像来完成的。这种方法需要每小时分析成百上千张图像,疲劳会影响结果,而且结果主观且难以量化。因此,必须超越人工检测,实现质量控制流程自动化,以提高缺陷检测的准确性和性能,减少错误分类产品的数量。

大数据革命推动了利用大量数据的新算法和新技术的发展。现代深度学习技术已广泛应用于各个领域,包括图像分类、物体识别和物体检测。卷积神经网络(CNN)能够从不同类别的图像中提取和学习最相关的特征(颜色、形状和其他模式),因此在图像分类方面非常成功。它们在制造业缺陷检测等关键应用领域也取得了巨大成功。然而,真实世界环境中的缺陷检测是一项极具挑战性的任务。缺陷往往微小、多样且难以识别,因此需要足够复杂的模型架构来捕捉这些微小特征。这通常与参数较大的模型有关,会对 CNN 的速度和准确性造成瓶颈,需要更多的计算资源来进行训练和推理,并可能降低结果的质量。

在能源(智能电网)、医疗保健(病人监控)、电信(移动网络)和制造(质量控制、预测性维护)等领域,尽可能将模型置于靠近数据源的位置已被证明非常重要。这就是所谓的边缘计算。对于这些应用,开发性能好、计算效率高、资源使用率低的模型非常重要。这使得在小型边缘计算设备和 FPGA 设备上部署模型成为可能。因此,在不牺牲性能的前提下减少 CNN 参数的数量非常重要。

减少 CNN 的参数数量并不像看起来那么容易。无论学习到的信息量有多少,盲目减少部分参数都会导致准确率的显著下降和图像分类的错误。剪枝是有效减少网络参数的最常用方法之一。剪枝删除的权重和滤波器值较小,对网络学习到的信息贡献不大;减少 CNN 中参数数量的关键在于瞄准参数空间的正确部分,只删除那些对学习最不重要的参数。量子启发张量网络方法是高效、系统地完成这一任务的最佳候选方法。它可以对大多数现代机器学习技术中使用的大型张量进行高效分解。例如,一种张量分解方法–典型多重积分解法(CP 分解法)或奇异值分解法(SVD)及其对高阶张量的扩展–塔克分解法,可以对多维张量进行因式分解,并舍弃原始张量中相关性较低的部分。这些因式分解方法应用于多个领域,包括图像识别、成分分析、字典学习和回归建模。

本研究采用量子启发的张量网络方法和张量分解思想来提高 CNN 的效率,并通过只保留需要训练的重要网络参数来减少训练权重张量中的参数数量。所生成的张量卷积神经网络(T-CNN)的价值在一个基于图像的实际制造业缺陷检测应用中得到了验证。

为了证明 T-CNN 的潜力,该研究在罗伯特-博世生产线的实际质量控制应用中对 T-CNN 进行了测试,检测超声波传感器中的缺陷部件。超声波传感器设计用于在短距离内快速、准确地检测障碍物,帮助在狭窄空间内操控和停车,并通过对障碍物的快速反应在低速行驶时提供紧急制动功能。它们还可用于物流、建筑和农业自动化移动设备的防撞。由于这些传感器在日常生活中被广泛使用,因此生产高质量的超声波传感器就显得尤为重要。为此,作者构建了一个 T-CNN 来检测已制造的超声波传感器组件中的缺陷,并将其应用于一个图像数据集,该数据集包含从几条生产线上收集的数千个示例。作者的研究结果表明,在质量控制方面,T-CNN 明显优于传统的视觉检测,其质量指标与传统 CNN 相同,同时在参数数量和训练时间方面具有显著优势。

3.相关研究

图像分类和物体识别

深度学习技术可用于许多领域,包括图像分类、物体识别和物体检测。 CNN 擅长提取和学习图像中最相关的特征(颜色、形状和其他模式)。

生产过程中的缺陷检测。

CNN 也已成功用于制造业的缺陷检测,并已成为多项研究的主题。 Tabernik 等人使用了一种基于分割的深度学习方法来检测制造业中的表面缺陷。

∙ 使用边缘计算

许多行业都使用边缘计算,将模型放置在靠近数据源的地方。 应用领域包括智能电网、医疗保健、移动网络、质量控制和制造业的预测性维护。

减少 CNN 的参数

CNN 通常参数过高,在处理大型数据集时造成计算资源瓶颈。 剪枝方法被广泛用于有效减少 CNN 的参数。

张量网络方法的应用。

量子启发的张量网络方法可以对张量进行高效分解,是减少 CNN 中参数数量的一种有前途的方法。 张量分解方法(CP 分解、SVD、Tucker 分解)可用于图像视觉、成分分析、字典学习和回归建模。

∙ 在实际生产环境中的应用

大多数研究都是在标准数据集上开发和测试的,并不能完全代表真实制造环境中的性能。 本研究利用张量分解技术提高了 CNN 的效率,并展示了 CNN 在现实世界中基于图像的制造业缺陷检测应用中的价值。

4. 问题简介

本节概述了问题和数据集的特征。被检测的产品组件是一个压电元件,其上焊接了两根导线。焊接过程可能会产生微小缺陷,因此在进入下一个制造步骤之前检测出这些缺陷非常重要。因此,这个问题被自然地表述为二元图像分类问题,以区分优质部件和缺陷部件。以下各小节将详细介绍数据集以及本研究采用的方法。

数据集说明

随着大数据和工业 4.0 的发展,制造企业正在收集生产过程中不断产生的大量数据。本研究中使用的数据集是这些数据中的一小部分,是为训练识别缺陷部件的监督模型而人工标注的。数据集共包含 11,728 张标注过的图像,每张图像的分辨率为 1280x1024 像素。产品部件中存在以下九种类型的缺陷,每种缺陷都标有 1 到 9 的数字:

  1. 压电元件损坏
  2. 焊接的弱点
  3. 焊接强度
  4. 焊接错位
  5. 压电元件错位。
  6. 异物
  7. 损坏的电线
  8. 无价值的形象。
  9. 导线短路、长度不足或无导线

这个问题带来了多重挑战。首先,数据是从多条孪生生产线上采集的,光照条件的变化和摄像头位置的细微差别都会导致数据分布大相径庭。这就给模型训练过程带来了困难,并可能带来不必要的偏差。此外,每条生产线上的缺陷类型及其绝对数量各不相同,因此很难训练出一个在所有生产线上都能保持良好性能的单一模型。最后,压电元件可能由不同来源提供,这使得识别变得更加困难,因为缺陷的结构和材料可能各不相同。

这些数据特征会对性能产生明显影响。为了克服这一挑战,下文将介绍数据预处理策略,并在训练过程中应用数据增强策略。

问题的提出

由于数据集由从几条生产线上收集的图像组成,因此每种缺陷类型的分布和绝对数量都不尽相同。这导致某些缺陷类别的数据不足。为解决这一问题,我们将所有缺陷类型合并为一个类别,并将其表述为二元分类问题。

此外,还引入了数据预处理阶段,以调整每条生产线上的照明条件差异,使所有图像的颜色更加统一和标准化。具体来说,所有图像的对比度都会提高,使颜色更加统一,压电元件的形状和边界也会突出显示,从而更容易区分高质量和有缺陷的部件。此外,还将所有图像调整为 256x256 像素的分辨率,并对像素值进行归一化处理。

5. 张量卷积神经网络

它介绍了如何利用量子启发张量网络方法来提高 CNN 架构的效率。首先,介绍了张量网络的基本概念,并介绍了构建 T-CNN 的方法,说明与 CNN 相比如何减少参数数量。

卷积神经网络(CNN)

本小节概述了 CNN,介绍了其架构的各个组成部分以及卷积层在特征提取中的作用。经典的 CNN 由两个主要部分组成

  1. 特征提取网络:通过多个卷积层和池化层提取输入图像和数据中最相关的特征。
  2. 分类网络:在所有耦合层的序列中处理经过训练的特征,以预测图像和数据的标签。

每个卷积层学习特定的特征,如颜色、边缘和裂缝。池化层缩小了所学表示的大小,并用平均值或最大值替换数据块。学习到的特征被输入分类网络,用于最终的标签预测。

然而,要处理复杂的图像结构,可能需要使用许多卷积层。这就增加了模型参数的数量,增加了训练时间,并可能导致分类错误和准确率下降。因此,必须在网络的表现力和参数数量之间取得平衡。理想的情况是,只保留包含关键信息的参数,删除多余参数,以免影响模型的性能和准确性。

张量网络的基本概念

张量网络(TN)最初出现于物理学领域,用于有效表示量子系统的基态。特别是,张量网络在分类、聚类、异常检测和微分方程求解等机器学习任务中取得了巨大成功。

张量是复数的多维数组,其中每个维度对应张量的秩[见图 1]。张量网络图是表示张量的直观符号。秩为 n 的张量表示为具有 n 条连接线的对象。这减轻了张量数学表示的负担。

图 1:张量网络图。每个秩-n 张量由一个具有 n 个连接链接的对象表示,每个链接代表张量的一个维度。标量、矢量、矩阵和秩-n 张量分别有 0、1、2 和 n 个连接脚。

张量收缩(相当于一般矩阵乘法)也可以用张量网络图来表示。例如,秩为 2 的张量(矩阵)的收缩用连接共享线表示[见图 2]。

图 2:张量收缩。的收缩等同于共享下标上的跟踪。它通过连接共享链接来表示。在这里,R 和 S 张量沿着共享脚 β 被连接起来。这种收缩操作相当于矩阵乘法。相当于矩阵乘法。

张量分解的关键技术之一是奇异值分解(SVD),它将输入矩阵分解为两个单元矩阵和一个奇异值对角矩阵的乘积。

图 3:通过 SVD 将矩阵分解为两个 3 级张量。称为矩阵积算子(MPO)

CNN 的张量化

下一节将介绍如何使用张量网络和塔克分解对 CNN 进行张量化:考虑一个二维 CNN,其中每一层的权重都是张量网络的权重。经典 CNN 的每个卷积层都有一个 4 级权重张量[见图 6],CNN 的训练过程就是为每一层找到权重张量的最佳参数。

应用张量分解法对权重张量进行因式分解,去除冗余部分,同时保留最相关的信息。使用塔克分解法将原始张量近似为核心张量与四个因子矩阵的乘积。然后,因子矩阵的维度控制压缩率。以这种方式将 CNN 张量化的模型称为 T-CNN。

图 4:卷积 HOSVD(塔克)因子分解 将权重张量分解为一个核心张量和四个因子矩阵,其中 χ 是因子矩阵的因子化(截断)秩。是矩阵的因式分解秩。

T-CNN 的训练采用自动微分和梯度下降反向传播技术;与传统 CNN 不同的是,T-CNN 在每个卷积层更新四个小因子矩阵和核心张量,而不是一个大型的 4 级权重张量。张量化模型的训练直接在新张量表示的压缩空间中进行。

参数计数

在经典的 CNN 中,模型参数主要分为三类

  1. 卷积层参数 (Nc)
  2. 偏差参数 (Nb)
  3. 分类层参数 (Nr)

CNN 参数总数(NCNN)的计算公式如下

张量卷积层的参数数计算如下

T-CNN (NT-CNN) 的参数总数如下

参数压缩比(Cr)的定义如下:

6. 实验装置

本节介绍在缺陷检测应用中构建、训练和测试模型所使用的实验装置。

模型架构

标准 VGG16 架构的简化版被用作参考模型。该 CNN 模型的结构经过逐步调整和优化,以获得最佳性能。根据优化后的 CNN 模型,对该架构进行了张量化处理,并从头开始训练一个新的 T-CNN 模型,用张量卷积层取代常规卷积层[见图 1]。每一层的秩设置都作为超参数进行了优化。

不同的张量分解方案可用于构建 T-CNN,如 MPS、Tucker 分解和 CP 分解,但本研究发现 Tucker 分解提供了最稳定的训练和更好的结果。此外,CNN 的分类层也可以使用标准的张量化方案进行张量化。其中,张量回归层是一种有趣的方法,因为它直接连接卷积层的输出,而不对其进行扁平化处理。不过,引入张量回归层对本研究的性能指标并无益处,因此没有将其纳入最终模型。

培训设置

所有模型均使用 PyTorch 实现,并利用混合精度训练技术来减少内存使用和计算需求。所有模型均使用亚当优化器在 80 个历元内完成训练。使用多步固定学习率调度器,学习率从 3×10-4 到 1×10-6不等。模型在配备 16 GB 内存的英伟达 T4 GPU 上进行训练,该 GPU 专为硬件加速深度学习训练和推理而设计。

整个数据集分为三部分,80% 用于训练,10% 用于验证,10% 用于测试。因此,在 11,728 张标记图像中,9,382 张用于训练,1,173 张用于验证,其余 1,173 张用于测试。第一部分仅用于训练模型,第二部分用于模型选择和超参数调整,最后一部分用于测试模型在未见数据上的性能并生成所有结果。

目前的深度神经网络模型需要大量数据才能获得良好的结果,并防止过度拟合。因此,为了在训练过程中增加数据的多样性,我们实施了数据扩展,对现有数据稍作修改,以创建新的训练示例。这一过程消除了每条生产线特有的虚假相关性(如残留颜色模式或摄像机方向的细微差别),使模型更加稳健。具体来说,对所有图像都使用了随机颜色变化、大小调整和剪切扩展的组合,并对其进行了调整,以获得最佳性能。这种预处理和增强方法使模型更能适应每条生产线的具体特征。

此外,由于原始数据集中缺陷产品图片的数量多于正常产品图片的数量,模型可能只学会正确识别大多数类别(正常产品)。为了缓解这种类别不平衡的问题,我们收集了更多的缺陷产品图片,并使用加权随机抽样技术来提高少数类别的重要性。

性能指数

在不平衡的数据集中,准确率等性能指标可能会产生误导。因此,在本研究中,使用准确率、召回率和 F1 分数作为质量指标来评估模型的性能。这些指标定义如下:

此外,还引入了 "漏检 "指标,以衡量在质量控制流程中漏检的有问题图像的比例。该指标用于衡量漏检的故障图像比例。漏检的定义是: 漏 检=1-召回

为衡量神经网络的效率,我们选择了压缩率和训练时间改进的综合衡量标准。训练时间改进 (T) 定义为 T-CNN 的训练时间优势除以 CNN 的训练时间:

7.结果

本节详细分析了 T-CNN 在对高质量和有缺陷的压电元件进行分类方面的性能。

T-CNN 性能。

在本小节中,我们将从质量指标、参数数量和训练时间等方面,分析采用不同张量卷积层等级设置的 T-CNN 与经典 CNN 的性能对比。

模型细节和等级设置

每个张量卷积层的参数都是一个四阶张量。输入通道数(rin )和输出通道数(rout )与卷积滤波器的大小(瘳h和𝑤w)有关[见表 1]。作为上限。

表 1:具有多种等级配置的 T-CNN 模型的性能(以质量指数、压缩率和学习时间改进为衡量标准)。 优化 CNN 的压缩率和学习时间改进。第 2 列至第 5 列显示了优化 CNN 中 T-CNN 每个张量卷积层的四个底层张量。维度等级。对于每个模型,结果都是 20 个不同随机种子的平均值,因此也是 20 个不同网络初始化的平均值,不确定性相当于一个标准差。不确定性相当于一个标准差。

表 1 显示了张量卷积层不同秩设置下五个 T-CNN 模型的详细分析。每个模型的等级设置分别为(96,96,3,3)、(64,64,3,3)、(32,32,3,3)、(16,16,3,3)和(8,8,3,3)。这些设置代表了质量指标、压缩率和训练时间之间的平衡。

质量指标和压缩率

为了评估 T-CNN 的性能,使用了准确率、召回率和 F1 分数作为质量指标。表 1 中的结果显示,等级为(96,96,3,3)的 T-CNN 与优化后的 CNN 性能相同,参数减少了 20%,训练时间相似。此外,等级为 (64, 64, 3, 3) 和 (32, 32, 3, 3) 的 T-CNN 也达到了类似的质量指标,显示出参数数量和训练时间的显著减少。

结果表明,压缩参数空间的性能优于 CNN,因为张量卷积层能有效捕捉数据中的关键相关性,并在忽略噪声的同时保留基本信息。排名较低的 T-CNN 在质量指标和计算效率之间进行了权衡,实现了非常高的压缩率,但性能略有下降。

误差分析

表 2 对最佳 T-CNN 模型进行了误差分析。目的是为今后改进模型提供有价值的见解。

表 2:最优 T-CNN 模型在等级配置(32、32、3、3)测试数据上的性能,以质量指标、压缩率和改进的训练时间来衡量。在这种情况下,无论决策阈值如何,AUC 指标也可作为模型性能的衡量标准。在这种情况下,无论决策阈值如何,也将 AUC 指标作为衡量模型性能的指标。图中显示了最佳 CNN 的结果,以供比较。在所有情况下,根据验证数据的 F1 分数衡量,所选模型都显示出最佳性能。所有指标都是固定的 这是降低滑通的关键。作为参考,在一个典型的生产线班次中,人工检测的漏检率估计为 10%。

分类错误的原因

对错误分类的缺陷图像进行详细分析后得出以下结论

  1. 通过降低判定阈值以减少漏判,可以对一些图像进行正确分类。
  2. 有些图像的标注不正确,需要重新标注样本。
  3. 发现属于弱焊缝、强焊缝、位置偏离焊缝和异物类别的图像难以识别。

为了改善这些错误分类,必须增加这些故障类别的数据并将其添加到训练集中。此外,还需要对整个数据集进行仔细检查。

最佳 T-CNN 模型的性能。

最佳的 T-CNN 模型在等级(32,32,3,3)上达到了与经典 CNN 相当的质量指标,参数数量减少了 4.6 倍,训练时间减少了 16%。这表明,压缩参数空间能有效捕捉关键相关性,忽略不必要的信息。此外,该模型在质量控制流程中的缺陷检测漏检率从 10% 降至 4.6%,大大优于人工检测。

这些成果为制造质量控制系统带来了重要的经济和质量保证效益,提高了产品质量和可靠性。将 T-CNN 模型集成到质量控制系统中还能减少人工检测人员的工作量,提高效率和生产率。

8.结论和前景

在大规模生产中实现质量控制自动化并检测不完美和有缺陷的产品,是制造业中最重要和最具挑战性的任务之一。传统方法依赖于人工对产品图像进行目视检测,由于缺陷细微且难以识别,因此容易出错。这不仅提高了检测结果的质量,也加重了人工检测人员的负担。本研究将张量网络方法集成到 CNN 结构中,创建了张量卷积神经网络 (T-CNN);T-CNN 模型被用于罗伯特-博世制造工厂实际质量控制流程中的自动化缺陷检测和改进。

T-CNN 模型是用基于高阶张量分解的张量卷积层取代经典 CNN 的卷积层而建立的。经典 CNN 每个卷积层的 4 级权重张量被分解为四个因子矩阵和一个核心张量。因子张量的互连维度控制着数据压缩率和因子部分之间的相关性。作者在新张量表示的压缩参数空间内从头开始训练 T-CNN 模型。结果表明,与传统的 CNN 相比,T-CNN 有两个优势:参数数量显著减少,训练时间更短,同时训练性能相当。这些优势在计算成本、训练时间、鲁棒性和可解释性方面提供了重要的好处。

作者的研究结果表明,等级高的 T-CNN 在参数数量和训练时间上都有适度改善,同时在准确率、召回率和 F1 分数等质量指标上与传统 CNN 的性能相同。等级较低的 T-CNN 在保持质量指标的同时,通过大幅减少参数数量缩短了训练时间。其中,每层最大秩为(32,32,3,3)的 T-CNN 的参数数量减少了 4.6 倍,训练时间缩短了 16%。这些结果表明,由张量卷积层定义的压缩参数空间在捕捉数据中的主要相关性和忽略不必要的噪声方面优于传统的 CNN。

此外,作者的模型性能明显优于人工检测,将未检测到的故障图像比例从 10% 降至 4.6%。在典型的生产线上,这 54% 的改进转化为成本的节约和产品质量与可靠性的提高。此外,将 T-CNN 模型集成到质量管理系统中,可将人工检测人员从单调耗时的视觉检测任务中解放出来,将人力资源调配到需要创造性和解决问题技能的领域。这有望提高效率和生产力。

T-CNN 模型快速、准确、高效,还可用于移动设备、T-CNN 模型快速、准确、高效,适用于移动设备、边缘计算设备,并可部署在 FPGA 等小型设备中。此外,T-CNN 的参数数量少,提高了其能效,使其适用于能源资源和电池较少的设备。

最后,T-CNN 的因式分解等级作为一个超参数,控制着张量卷积层的参数数量。虽然本研究使用多种等级设置进行了大量分析,但仍建议进行系统的超参数优化,以获得最佳性能。

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

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

相关文章

【后端开发实习】Python基于Quart框架实现SSE数据传输

Python基于Quart框架实现SSE数据传输 前言SSE简介理论分析代码实现 前言 在类似Chatgpt的应用中要实现数据的流式传输,模仿实现打字机效果,SSE是不二之选。传统的Flask框架不能满足异步处理的要求,没有异步处理就很难实现实时交互的需求&…

C++客户端Qt开发——Qt窗口(对话框)

5.对话框 ①对话框介绍 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。Qt常用的内置对话框有:QFiledialog…

【第四天】计算机网络知识 HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP3.0

HTTP1.0,HTTP1.1与HTTP2.0的区别 HTTP1.0 默认是短链接,可以强制开启长连接。HTTP1.1默认长连接。HTTP2.0采用多路复用。 HTTP1.0: 默认使用短链接,每次请求都需要建立一个TCP连接。它可以设置:Connection: keep-aliv…

利用OSMnx求路网最短路径并可视化(二)

书接上回,为了增加多路径的可视化效果和坐标匹配最近点来实现最短路可视化,我们使用图形化工具matplotlib结合OSMnx的绘图功能来展示整个路网图,并特别高亮显示计算出的最短路径。 多起终点最短路路径并计算距离和时间 完整代码#运行环境 P…

洛谷 P9854 [CCC 2008 J1] Body Mass Index

这题让我们计算出 BMI 值,随后判断属于哪个等级。 BMI 值计算公式: ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​。 BMI 范围 对应信息 …

【JVM基础08】——类加载器-说一下类加载的执行过程?

目录 1- 引言:类加载的执行过程1-1 类加载的执行过程是什么?(What) 2- ⭐核心:详解类加载的执行过程(How)2-1 加载——>加载到运行时数据区2-2 验证——>类的安全性检查2-3 准备——>为类变量分配内存并设置初始值2-4 解析——>把…

Web网页端IM产品RainbowChat-Web的v7.1版已发布

一、关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIMSDK (Github地址) 的产品级移动端IM系统)。 ► 详细介绍:http://www.52im.net/thread-2…

每天一个设计模式之职责链模式(第一天)

特别感谢刘伟老师,看他的书我学到了很多东西,从今天开始我要开始更新啦! 在csdn个人博客来总结知识,把他们变成自己的能力。 对三,要不起,张三李四王五几个人在玩斗地主,过过过,一…

Codeforces Round 962 (Div. 3)

链接 C题&#xff1a; 思路&#xff1a; 直接暴力求每个字母的前缀和&#xff0c;对于区间l&#xff0c;r的最小操作就是区间不同数的一半&#xff0c;因为可以把一个数变成另一个不一样的数&#xff0c;一下抵消两个。 #include<bits/stdc.h> using namespace std; //…

MySQL中不等于筛选时会漏掉null值的问题

一、问题描述 MySQL中使用不等于进行筛选数据时&#xff0c;若筛选值为null&#xff0c;则该条数据不会被选中&#xff0c;如何解决该问题&#xff1f; 表示不等于的方式如下&#xff1a; ! <> not in二、案例验证 1、创建数据表 -- ---------------------------- -…

【2024最新版】Stable diffusion汉化版安装教程(附SD安装包),一键激活,永久免费!

目前广泛使用的Stable Diffusion Web UI简称(SDWebUI)是发布在开源平台Github上的一个Python项目,与通常的软件安装方法不同,这个项目并不是下载并安装即可使用的应用程序,而是需要准备执行环境,编译源码. 如果你是一个新手不会安装,现在可以直接使用一键启动包. 例如:国内的…

AI驱动的在线面试系统:技术革新与初步面试的新体验

一、引言 在数字化和智能化的时代背景下&#xff0c;人工智能&#xff08;AI&#xff09;技术正日益渗透到各行各业&#xff0c;为人们的生活和工作带来前所未有的变革。其中&#xff0c;AI驱动的在线面试系统&#xff0c;凭借其高效、便捷、公正等特性&#xff0c;逐渐成为企业…

ATF-541M4全解析(一)

目录 一、描述二、规格三、各参数最大值四、25℃下的典型值 一、描述 安华高科技 (Avago Technologies) 的 ATF-541M4 是一款高线性度、低噪声、单电源供电的E-PHEMT&#xff0c;封装在一个微型无引脚封装中。 ATF-541M4 的小尺寸和低外形使其非常适合用于混合模块和其他空间…

matplotlib 画图函数,最常用的

并排显示2个图片 import os import numpy as np from PIL import Image import matplotlib.pyplot as pltimage1 Image.open(a.png) image2 Image.open(a2.png)# Create a figure with two subplots (1 row, 2 columns) fig, axes plt.subplots(1, 2, figsize(10, 5))# Di…

【Git-驯化】一文搞懂git中rm命令的使用技巧

【Git-驯化】一文搞懂git中rm命令的使用技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#xff1a;微信公…

git学习笔记(总结了常见命令与学习中遇到的问题和解决方法)

前言 最近学习完git&#xff0c;学习过程中也遇到了很多问题&#xff0c;这里给大家写一篇总结性的博客&#xff0c;主要大概讲述git命令和部分难点问题&#xff08;简单的知识点这里就不再重复讲解了&#xff09; 一.git概述 1.1什么是git Git是一个分布式的版本控制软件。…

【推研小灶】复旦与南大之间:一次独特的计算机保研之旅

写在前面 上午10点填完志愿等待复试通知&#xff0c;利用这段时间记录一下我简短的夏令营和预推免。今年变为线下之后&#xff0c;部分学校的入营情况、考核方式有明显变化。加上CS方向保研名额总体变多&#xff0c;形势有点小乱&#xff0c;甚至填报系统都在9.29中秋节当天&a…

嵌入式C++、Raspberry Pi、LoRa和Wi-Fi技术、TensorFlow、ROS/ROS2:农业巡检数据导航机器人设计流程(代码示例)

随着科技的不断进步&#xff0c;农业领域也在逐渐向智能化发展。农业巡检机器人作为农业智能化的重要组成部分&#xff0c;能够自动化地监测农作物生长状况&#xff0c;提高农业管理的效率和精确度。本文将介绍一个基于Raspberry Pi和NVIDIA Jetson的农业巡检机器人&#xff0c…

【我的养猪日记】区块链游戏

剧情介绍 年少无知留给了故乡&#xff0c;谦卑有礼送给了远方&#xff0c;有工作的地方没家&#xff0c;有家的地方没工作&#xff0c;他乡留不下灵魂&#xff0c;故乡安不了肉身&#xff0c;从此便有了漂泊。在外漂泊数年的你每天过着&#xff0c;挤不完的公交地铁、交不完的房…

VUE3学习第三篇:报错记录

1、在我整理好前端代码框架后&#xff0c;而且也启动好了对应的后台服务&#xff0c;访问页面&#xff0c;正常。 2、报错ReferenceError: defineModel is not defined 学到这里报错了 在vue网站的演练场&#xff0c;使用没问题 但是在我自己的代码里就出问题了 3、watchEffec…