【最新综述】基于机器学习的超声焊接缺陷无损检测

news2024/9/25 9:32:44

Machine learning for ultrasonic nondestructive examination of welding defects: A systematic review

ABSTRACT 

        近年来,机器学习(ML)在无损检测(NDE)数据自动分析中的应用大幅增加。其中一个值得关注的应用是使用 ML 分析核电和其他行业焊缝在役检查的数据。这些类型的检查是根据 ASME 锅炉和压力容器规范中描述的标准进行的,需要使用可靠的无损检测技术。ML 方法的快速发展和可能方法的多样性表明,有必要评估当前用于无损检测的 ML 和自动数据分析的能力,并找出当前应用于无损检测数据自动分析的 ML 技术中存在的差距或不足。特别是,需要确定 ML 对无损检测可靠性的影响。本文讨论了有关用于自动分析焊接缺陷超声无损检测数据的 ML 现状的文献调查结果。本文概述了核电和其他行业用于焊缝检测的超声波无损检测。概述了文献中使用的数据集和 ML 模型,以及普遍适用的 ML 工作流程。讨论了特征选择、数据选择和 ML 模型优化方面的能力、局限性和潜在差距。论文确定了量化和验证超声无损检测 ML 方法性能的若干需求,包括对通用数据集的需求。

Introduction

        使用无损检测 (NDE) 方法进行定期在役检查 (ISI) 是核工业深度防御战略的一部分,旨在提供合理的安全保证。在美国,在役检查是根据美国机械工程师协会 (ASME) 的《锅炉和压力容器规范》(BPVC) 进行的,并采用该规范中定义的验收标准。美国商业核舰队正逐渐采用风险知情的方法来确定检查的优先次序,并推迟或取消不必要的检查 [1,2]。鉴于这一趋势,有必要确保无损检测在检测安全关键(1 级)部件的缺陷方面具有高度可靠性。

        随着计算机能力的提高和合格无损检测人员数量的减少,业界对无损检测数据分析自动化的兴趣日益浓厚。计算能力的进步、云计算的随时可用性以及机器学习(ML) 算法使这种自动数据分析成为可能。与其他科学和工程应用一样,ML(特别是深度学习 [DL])被视为提高无损检测数据分析可靠性的潜在解决方案。尽管最近有关无损检测机器学习的出版物数量大幅增加,但机器学习的应用方式似乎存在许多差异,方法本身也存在很大的多样性。行业在使用 ML 算法训练计算机系统从无损检测数据集中检测缺陷方面取得了进展。例如,蒸汽发生器管检测目前使用自动数据分析来帮助人工检测人员[3],利用蒸汽发生器检测的大量数据,以及与目视和超声波检测相比相对简单的分析性质。

        这些方法的快速发展和可能方法的多样性表明,有必要评估当前无损检测的 ML 和自动数据分析能力,并找出任何差距或当前 ML 技术的不足之处。为弥补已发现的不足而开展的未来研究的成果,可能对开发 ML 在核电站 (NPP) 部件无损检测自动数据分析中的适用性的技术基础很有价值。

        本文介绍了对焊接缺陷超声无损检测的 ML 现状进行文献调查的结果。在这项工作中,假定 ML 包括从数据中学习的元素(大多数自动分析方法使用经典统计技术)。虽然 ML 也被广泛应用于结构健康监测 (SHM) [4-6] 和条件评估 (CS) [7,8],但本研究将把文献综述的重点放在 ML 在焊缝超声无损检测中的应用上。作者还假设读者熟悉超声波无损检测,并对 ML 的基本原理有一定的了解。有关超声无损检测的背景信息可从多个来源获取(例如 [9,10] 等文献)。有关 ML 的背景信息可从多个来源获取(例如,[11-13]),其中包括对用于无损检测的常见 ML 模型的简要概述。此外,文献中描述的无损检测中的 ML 应用范围很广,因此需要为这项工作确定明确的界限。本研究的重点是将焊缝检测的超声波测量结果分为两个或多个缺陷类别,基本分类问题是将测量结果分为缺陷和非缺陷。本文献评估未考虑其他应用,如图像重建或检测规划和优化。本次评估所关注的无损检测方法仅限于纵波和剪切波超声波测试 (UT),包括相控阵探头和传统的单元件和双元件探头,用于检查焊缝和邻近热影响区 (HAZ) 是否存在缺陷。虽然也有少数研究报告称超声波导波和声发射技术可用于焊接缺陷表征[14-17],但这两种技术在实际应用中并未广泛用于在役焊缝检测。因为超声波导波用于远距离检测,聚焦在焊缝上的能量有限,而声发射是一种被动传感技术,因此不适合用于在役检测。

        文章首先简要概述了核工业中使用的超声波无损检测。然后概述了通常用于超声波分类问题的整体工作流程,讨论了已应用于该问题的典型 ML 算法,最后介绍了研究空白。这项工作的动机是核工程中超声波无损检测对 ML 的需求,所讨论的超声波无损检测技术与其他行业用于焊缝检测的技术完全相同。文献综述并不局限于核工程,研究结果也可应用于将 ML 与超声波无损检测结合起来进行在役检查的任何应用。

Ultrasonic NDE in the nuclear industry

        核工业中的超声波检查通常侧重于管道和压力容器焊点。为了分析数据,检查人员依赖于多种因素,包括对焊缝和管道几何形状的了解、多个检查角度以及从多个方向(如 B 扫描、C 扫描和 D 扫描)查看数据的能力 [18]。最重要的是,检测人员要依靠经验和即时决策的能力。例如,在管道检测中,焊冠、结构支撑或绝缘层可能会限制探头的覆盖范围[19],这就要求检测人员区分来自部分声纳化缺陷、嵌入式缺陷或几何反射的回波。再比如,检测人员需要能够辨别剪切回波和纵向回波。当使用纵波(如奥氏体焊接检测中的纵波)时,纵波到剪切波的模式转换信号会在超声波扫描中产生大量额外的回波响应。同时,有经验的分析师通常会使用模式转换信号来提供有关缺陷位置和尺寸的线索。最后一个例子是检测人员需要从噪声中分辨出相关信号。这在粗晶粒材料和奥氏体焊接中尤为重要,因为晶粒边界会产生相干反射。检测人员通常会使用回声动态线索来检测噪声条件下的缺陷,因为与几何回声不同,多面裂纹通常会表现出不同的信号响应,可以在时基上蜿蜒或 "行走"。

        无损检测人员最初必须满足性能演示要求,在此期间,他们必须证明自己有能力在超声波扫描中检测和描述缺陷[20]。检查员必须满足探伤率、长度尺寸和深度尺寸的最低要求,以保持进行规范指定检查的能力。这种性能演示活动对于确保检查员的能力和保持专业知识至关重要 [21]。

        要使经验丰富的检测人员的探伤能力自动化,必须考虑上述所有检测和性能演示问题。由于严重依赖经验和决策,仅使用信号强度、回波尺寸和回波位置等基本参数的算法是不够的。即便如此,此类算法仍可用于筛选出假信号,从而减轻检测人员的负担,这样检测人员就可以将注意力集中在潜在的缺陷信号上 [22]。然而,分析方法和算法的多样性通常需要对超声波检测有深入的了解,而算法本身的知识和结果在很大程度上取决于操作人员的经验。

Machine learning for NDE: Review methodology

图 1.按以下排序的已审文章百分比汇总表(a) 超声波数据类型,(b) 检测频率,(c) 试样材料。

        图 1 显示了所调查物品的检测设置摘要。图 1a 显示了以下物品的大致百分比 ,这些研究使用了不同的信号组合(A 扫描与 B 扫描)和检测方法(相控阵与脉冲回波 (PE)飞行时间衍射 (TOFD))。图 1b 总结了这些研究中使用的检测频率,图 1c 显示了检测的材料。这些数据表明,ML 方法的应用范围相对较广,涵盖了典型核电厂检查中可能遇到的大多数情况。

Machine learning for ultrasonic NDE

        计算技术和数据科学的快速发展导致了依赖于 ML 的 "智能 "分析技术的发展。Harley 和 Sparkman[23]从高层次总结了用于解决无损检测问题的 ML 模型,并提出了三个重大挑战,而 Wunderlich 等人[24]则总结了 ML 在无损检测中的应用。Bowler 等人[25] 综述了超声波传感和机器学习在各种工业应用中的应用,包括焊缝检测。如果有足够的经验教学数据集,完全依赖于 ML 的 "智能 "算法最终可能会取代人类检测员[26]。不过,鉴于缺陷类型、检测技术、检测参数以及分析算法和流程的多样性,"智能 "自动数据分析可能没有放之四海而皆准的方法。

        目前,市场上还没有用于管道检测的 "智能 "UT 焊接检测数据分析软件包。有几款软件包具有自动分析功能,但其算法基本上基于信号强度,依赖于用户定义的参数,具有很大的局限性。例如,ULTIS(TD NDETM,加拿大魁北克省蒙特利尔)和 NDTkit(Testia,法国图卢兹)这两款商业软件包提供侧重于航空航天工业的自动数据分析工具。ADT PRO® (VeriPhase®, Inc., Birmingham, Alabama, USA)是目前可用于管道焊缝检测的数据分析软件包,目前正在对其在核工业中的应用进行评估。尽管它有一些局限性--目前只允许一种输入数据格式,而且只针对碳钢的剪切波进行了审核,管道厚度、检测角度和探头频率的范围有限,但该软件代表了自动化管道检测分析的重要进步。WesDyne、Eddyfi 或 Zetec 提供的软件包可以帮助过滤信号响应,供检测人员进一步分析。同样,这些软件包都还没有使用 "智能 "方法。有几家公司正在开发使用人工智能和机器学习自动分析无损检测数据的产品或服务。Ondia(Ondia,加拿大魁北克省)是一个基于网络的平台,可以使用人工智能自动分析二维和三维超声相控阵数据。Trueflaw (Trueflaw 有限公司,芬兰埃斯波)开发了一种基于机器学习的自动探伤嵌入式系统。该系统结合客户数据和 Trueflaw 的虚拟裂纹进行预训练,以获得与人类分析师相当的性能

Ultrasonic data sets for machine learning

        用于开发 ML 算法的数据至关重要,因为这些数据驱动的缺陷分类方法的性能取决于数据中的可用信息。如前所述,有关超声波无损检测的 ML 文献包括各种检测设置,以及一系列频率、数据类型和评估的试样材料。因此,关于超声波无损检测的 ML 文献在用于开发和评估 ML 算法性能的可用数据方面具有很大的多样性。

        表 1 和表 2 总结了第一栏中的缺陷类型以及每类缺陷的测量次数(信号)和第二栏中的总数。研究中常见的缺陷类型包括裂纹 (CK)、气孔 (PO)、未熔透 (LP)、未熔合 (LF) 和夹渣 (SI),干净试样的数据作为无缺陷 (NF) 的示例,如图 2 所示。裂纹是焊接接头最严重的缺陷类型。当局部拉应力超过焊缝或母材强度时,焊点就会开裂。气孔是由残留气体造成的充满气体的缺陷。当母材和焊接材料不能正常熔合,导致两个区域之间出现缝隙时,就会产生熔合不足缺陷。当焊接材料没有完全穿透厚度时,就会产生未熔透缺陷。当杂质滞留在焊缝内部时会形成夹渣[27,28]。这些缺陷会大大降低焊缝的强度,成为应力集中点,降低焊缝的结构完整性。飞溅和重叠等现象通常存在于焊接件表面,一般被认为是一种缺陷。

        在表格的第三列,按裂纹、非裂纹缺陷和非缺陷三类总结了数据分布信息。考虑到收集和编制检测数据的困难,大多数研究使用 1000 个或更少的信号进行训练和测试,只有少数研究 [26,29-32] 使用了 1000 个以上的信号,这并不奇怪;不过,这些研究大多使用了数据扩增方法来增加数据集的规模。 

        一些研究记录了缺陷的数量,但忽略了缺陷类型的具体信息[26,29,31,57]。还有一些研究利用射线照相术验证了试样中缺陷的存在和特征,以确保数据标注正确[36,50,52,53,56]。不过,大多数研究都没有提及是否对缺陷的存在进行了独立验证。

        如上文所述,许多被审查的文章都没有包含所用试样的详细信息,有几篇文章是基于数量有限的试样(在某些情况下只有一个试样)[26,37,53,56,59]。这些研究倾向于通过重复测试使用同一组缺陷的多组测量值。因此,这些研究中使用的数据可能无法代表现场检测环境中遇到的情况。此外,使用这些多样性较低的数据训练的 ML 模型可能显示出较低的泛化能力(对训练中未使用的数据的分类准确性较低),报告的性能可能对研究之外的影响有限。在某些情况下,数据是通过模拟或 "虚拟缺陷 "技术生成的[26,35,61,62]。其他研究使用了与试样中存在的物理缺陷数量相同的测量值,可以增加数据的多样性/代表性。然而,如果缺陷数量较少,或缺陷的物理特征相似,则对 ML 性能的影响可能有限 [34,38,43,45,52]。

Machine learning workflow for ultrasonic NDE

        文献综述显示,"智能 "自动数据分析有一个普遍适用的工作流程(图 3)。概括地说超声波无损检测数据通常经过预处理,以消除异常值、解决数据缺失问题并减少噪音特征--可提高缺陷数据与非缺陷数据之间辨别能力的基本特征--通常会被提取出来,并作为 ML 算法的输入。可用数据的一部分(称为训练数据集)用于训练 ML 模型。训练过程会优化 ML 模型参数和超参数,以最大限度地提高分类准确率或其他相关性能指标。训练步骤之后通常会有一个验证步骤,即使用 ML 算法未遇到过的数据集来确保 ML 模型不会过度拟合训练数据集。在 ML 中,过拟合指的是 ML 模型基本上记住了训练数据,无法将其学习推广到其他类似的数据集。为了找到最佳的 ML 模型参数集,训练和验证阶段可能需要进行多次。然后使用单独的测试数据集来评估训练好的 ML 模型的真正泛化性能。

        这个一般工作流程有足够的空间容纳各种变化。图 3 中的几个阶段是可选应用的(虚线框),而其他阶段可能会多次使用同一阶段来实现不同的目标。例如,参考文献[33,36,48]使用了两个阶段的特征提取和 ML 算法块;第一阶段用于筛选缺陷和非缺陷,第二阶段用于识别缺陷类型。现代深度学习算法通常跳过特征提取阶段,而是让算法在学习阶段提取相关特征的隐式表示。 

        特征提取步骤通常以信号预处理为前提。对于 A 扫描信号(如脉冲回波和 TOFD),可从时域信号中提取以下信号参数:到达时间、波速、波衰减、最大振幅、上升时间和下降时间。如果存在多个回波,还可以提取与回波相关的特征。在频谱中,可以使用峰值频率、最大振幅、平均频率和最大值个数。统计参数可从时域信号和频谱中提取A 扫描信号的预处理包括振幅归一化、时间缩放、噪声消除、频谱处理(如快速傅立叶变换 [FFT] 和离散小波变换 [DWT])等。与 DWT 一样,小波特征是超声波信号中另一种广泛使用的特征对于 B 扫描图像,纹理特征是最直接的特征,包括对比度、相关性、能量、熵、共生矩阵等。与 A 扫描信号类似,统计参数可直接应用于 B 扫描图像的像素值。小波特征也可通过二维小波变换用于 B 扫描图像。可以从 B 扫描图像中提取焊接缺陷尺寸和位置信息等物理参数。B 扫描图像还可直接用作卷积神经网络等深度学习模型的输入特征。在特征提取之前,还需要对 Bscan 图像进行预处理,如归一化、缩放、去噪、灰度转换和分割。特征提取和预处理的细节将在后面节中明确讨论。

        表 3 总结了综述论文中研究的主要 ML 模型以及使用的特征。在此简要介绍并回顾一下这些 ML 模型:核模型、集合模型、神经网络模型和无监督学习方法。支持向量机(SVM)是核机器模型在模式分析中的代表方法,被广泛用于二元类分类。对于多类分类,可能需要一些特殊的策略,如一对一[64]、一对全[34]和二叉决策树策略[82]。

        集合方法是一种机器学习算法,它综合了多个学习模型的结果。由于所使用模型的多样性,它能提供比单一模型更好的性能[106-108]。模型的多样性可以通过使用不同的模型参数和训练数据集来实现不同的决策边界和不同类型的误差[109]。随机森林法是一种典型的 Bootstrap 聚合集合方法,它使用多个决策树进行建模。Nunes 等人[40]使用最优路径森林和贝叶斯分类器对不同热老化损伤的焊接钢试样进行分类。Camacho-Navarro 等人[110] 将决策树算法与袋集算法相结合,检测碳钢管道的损伤。Polikar 等人[69]开发了一种基于集合学习模型的增量学习算法,用于识别存在反孔和焊缝的应力腐蚀裂纹的超声波信号。Martín 等人[41] 利用基于树的学习模型开发了一个框架,用于评估电阻点焊的焊接质量。波参数和统计参数被用作集合方法的特征。

        人工神经网络是一个具有多层的连接图,每层有多个节点(神经元)。神经网络的输入可以是时域特征 [42,47,49,54,85]、频域特征、小波特征、时域信号和频谱。浅层前馈神经网络的结构相对简单,有一个输入层、一到两个中间(隐藏)层和一个输出层(见图 4(a))。大多数研究使用只有一个或两个隐藏层的浅层神经网络进行焊接缺陷分类。可以对隐藏层的神经元数量进行优化,以获得最佳的模型性能。另一个超参数是激活函数,它定义了给定输入或一组输入的节点输出。典型的激活函数包括高斯函数[42]、sigmoid 函数[43,74]、双曲正切函数[46,49,50,53]和径向基函数(RBF)[44,52]。应用的学习算法包括梯度下降法 [56]、牛顿法、准牛顿法和列文伯格-马夸特法 [46,49,53,54,79]。

        过去几年,深度神经网络等深度学习模型已被应用于无损检测中的缺陷自动表征,主要用于具有一维或二维特征的问题,如无线电断层扫描图像[111,112]、红外热成像图像[113,114]以及超声波 A 扫描信号和 B 扫描图像。与浅层神经网络相比,全连接 DNN 包含更多的输入节点和隐藏层(见图 4(b)),并可接受时域或频域信号作为输入特征[29,57]。不过,应引入模型正则化来防止过拟合。针对全连接神经网络提出的正则化方法包括 dropout、早期停止、l1 和 l2 正则化以及 maxnorm [57]正则化。丢弃是最常用的正则化方法[115],典型的 DNN 有一个或多个丢弃层(见图 4(b))。

        卷积神经网络(CNN)是另一种具有卷积层的 DNN,广泛应用于视觉图像分析。与其他图像分类算法相比,它对输入数据的预处理要求相对较低。CNN 已被用于以时域信号和 B 扫描图像为输入的焊缝缺陷分类 [29,30,32,67,89,90]。在 CNN 中,卷积层和池化层作为特征提取层,全连接层用于分类(见图 4(c))。这种架构允许 CNN 专注于低层次特征,然后在后面的层中将这些特征组合成更高层次的特征。根据 Zhang 等人的研究[116],第一卷积层的滤波器尺寸可以保持较大,以便在信号有噪声时提高性能。跨距大小控制着感受野的重叠程度,跨距越大,感受野的重叠程度越小。Munir 等人[29]使用了较大的步幅来取代池化层。整流线性单元(ReLu)是用于卷积层的典型激活函数,而指数线性单元(Elu)可用于卷积层,以避免梯度消失问题[117]。池化层用于对输入进行子采样,减少计算负荷,避免过度拟合,但会带来更多复杂性 [115]。CNN 中的全连接层与 DNN 中用于分类功能的层类似,可由 SVM 等其他分类模型取代 [32,118]。 

        无监督学习使用未标记的数据,提取特征,对数据进行分组,并在最少的人工监督下提供输出结果。K-means 聚类是划分特征空间最常用的聚类方法。Polikar 等人[44] 使用 K-means 聚类对焊接缺陷进行分类,发现其性能明显低于神经网络的性能。此外,k-均值聚类的结果取决于所使用的聚类数量和所选择的初始聚类中心。Murta 等人[99]使用 k-means 聚类对模拟 TOFD 超声波信号进行焊接缺陷分类,并使用 Silhouette 指数[119]和 DaviesBouldin 指数[120]决定聚类的数量。Virupakshappa 等人[100] 在超声波探伤中使用了几种聚类方法,包括 k 均值聚类、高斯混合建模 (GMM) 和均值偏移聚类 (MSC)。主成分分析(PCA)通常与 SVM [35]、神经网络 [53]、均值聚类 [99] 和异常检测 [101] 等其他 ML 方法相结合,用于降维和特征选择。PCA 将原始数据集转换为线性不相关的低维数据集,通常会使分类任务变得更容易。异常检测是另一种从正常数据中识别异常的无监督学习方法。Cassels 等人[101] 将 PCA 和异常检测结合起来检测缺陷。自组织图(SOM)是一种无监督神经网络,它能对训练样本的输入空间进行低维离散表示。Seyedtabaii [52] 使用带有多层感知器的 SOM 对缺陷进行分类。Martín 等人[103] 使用 PCA 和 SOM 根据视觉检测数据对轧钢缺陷进行分类。这些无监督学习模型通常与其他模型一起用于缺陷分类。从查阅的文献来看,使用多种学习模型的例子多于使用单一学习模型的例子。表 3 最后两行总结了无监督学习模型和使用多重学习模型的研究。

        从整体工作流程和文献中看到的 ML 方法的多样性来看,已经探索出了多种方法,包括 ML 模型和特征选择方法的不同组合。训练 ML 的损失函数似乎主要是标准损失函数(均方误差和交叉熵损失)。报告的性能指标包括分类准确率、真阳性率和假阳性率、交叉熵损失、效率乘积,有时还包括接收者操作特征曲线(ROC)(评估对模型参数的敏感性)。报告的结果通常是在一个单独的(ML 模型之前未见过)数据集上得出的,也称为测试数据集。

Machine learning for NDE: Takeaways

        本节讨论文献评估的主要结论,分为以下几个方面:选择相关特征、数据适当性、ML 模型和模型超参数选择以及验证和确认 (V&V)。

Feature extraction and selection

        文献表明,ML 可成功应用于 Ascans、B-scan 和 D-scan,并可使用各种特征提取方法来实现分析目标。一维时间序列数据(A 扫描,如图 8a)是分析中最常用的数据形式,但 B 扫描图像(如图 8b)也有使用,尤其是相控阵分析 [26,31,97,101] 和 TOFD(包括 TOFD 时域信号和 TOFD D 扫描图像,如图 8c)[34,55,81,83]。然而,TOFD 图像中存在较高的晶粒结构噪声[125],可能需要应用去噪或后处理[83]。

        审查结果表明,根据超声波测量的类型,许多不同类型的特征提取方法都是适用的。表 4 总结了可能适用的各种特征提取方法。在应用特征提取技术之前,可能会对数据进行预处理,以进行归一化(将数据缩放至标准范围)和降噪(去噪)。此外,还可能使用其他滤波器来提高信噪比(SNR)。

        随着 DL 模型的广泛应用,时域信号或频谱也可直接用作 ML 算法的输入,从而绕过特征提取和选择步骤。这种方法适用于以时间序列(A 扫描)和图像(B 扫描)表示的数据。在图像表示法中,CNN 是常用的分析方法,不过 B 扫描图像可能需要额外的预处理,如灰度转换和分割,以进一步提高信噪比。

        值得注意的是,虽然使用某些特征可能有助于提高数据分析的准确性,但过多的特征或判别信息较少的特征可能会对分类性能产生有害影响。加入此类特征可能会导致过度拟合和 ML 算法泛化不良,即在训练(学习)过程中未使用的数据上表现不佳。虽然这种影响部分是由于训练数据选择不当造成的,但也有部分是由于特征选择不当造成的。

        理想情况下,好的特征与输出数据/标签有很强的对应关系,这些特征表现出很高的独立性。冗余和不相关的特征可能彼此相关,与输出的相关性较弱。保留好的特征,去除不相关和冗余的特征,可以使学习模型更简单、更稳健。因此,为输入选择合适的特征对于建立高效的学习模型和高模型性能至关重要。无损检测文献中使用的选择方法包括人工选择 [50,56]、使用主成分分析 (PCA) [35] 和各种统计测试来识别最相关的特征 [53]。

        

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

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

相关文章

JS_阿里云oss视频上传后,如何获取视频封面

当您需要获取视频封面、提取视频关键帧图像进行视频编辑,或者提取视频中特定场景帧图像用于视频监控等时,可以将视频上传至OSS存储空间,然后通过本文所示方法进行视频截帧。 使用示例 本文示例使用的Bucket为杭州地域名为oss-console-img-de…

基于WhatsApp打造高效的CRM系统

背景 在 2023 年的统计数据中,WhatsApp 成为了印尼最常用的社交媒体,拥有高达 2.2 亿的用户量,占据印尼互联网人群的 90%之多。 WhatsApp 开发的 WhatsApp Business API 为企业开辟了一条与客户进行大规模、高效且合规沟通的崭新途径。它使…

美联储降息在即:加密市场风云再起,机遇与挑战并存

随着全球金融市场日益与加密货币市场的波动紧密相连,美联储的货币政策调整正成为加密市场的重要风向标。今年以来,比特币等主流加密货币反复跟随全球市场震荡,宏观经济指标对加密市场的影响愈加显著。尤其是美国联邦基金利率的变动&#xff0…

【QA】软件产品在确定使用期限时应关注哪些问题?

版权说明:本文来源【国家药品监督管理局】,如果您认为我们的文中描述与事实不符或有侵权行为,请及时联系我们。感谢您的关注。

2025届必备:如何打造Java SpringBoot大型超市数据处理系统,提升管理效率,最新攻略!

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

生信软件33 - Wgsim生成双端(PE) fastq模拟数据

1. Wgsim(Whole genome simulation)简介 wgsim是可用于高通量数据模拟的软件,可以模拟出illumina测序数据,并且可以自由调整测序reads的读长,插入片段大小以及错误率等, 是开发BWA等大牛Li heng编写的基因…

Windows bat脚本学习九(srec_cat)

一、简介 srec_cat是一个在嵌入式开发中,使用非常频繁的软件,这里做个常用功能的介绍。 二、常用参数 文件类型 在使用srec_cat指令时,在输入文件和输出文件时,要指明文件的类型,如: input.hex -intel …

木舟0基础学习Java的第二十六天(JavaWeb)

设置响应头 resp.setHeader("key","nihao");//推荐使用英文 中文会乱码 案例:模拟登录 jdbc.properties driverClasscom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/test?verifyServerCertificatefalse&useSSLfalse nameroot p…

Qt:玩转QPainter后转之太极图(步骤详细、包含源码)

前言 简单了解了QPainter之后还是要做两个小例子练一练,不实际去做,只看看函数是没啥太大提升的,这里就简单画一个太极图。 正文 我们都知道太极分为阴阳鱼两部分,阴鱼(黑色)有个白色鱼眼,阳鱼(白色)有个黑色鱼眼&am…

Notes,无代码应用开发王者归来!

大家好,才是真的好。 连续一个星期都在讲HCL Notes Domino 14.5 EAP1,大家是不是已经感到疲惫了?和大家一样,我并没有。 因此,看了一下9月4号晚上的HCL Notes Domino 14.5 EAP1在线广播回顾,发现了几个大…

模拟RabbitMQ实现消息队列【项目】

文章目录 1. 项目介绍什么是RabbitMQ? 2. 开发环境3. 技术选型3.1ProtoBuf使用介绍:3.2 Muduo库3.3 SQLite3什么是SQLIte?为什么要用SQLite? 3.4 Gtest什么是Gtest 4. 需求分析4.1 核心概念4.2 核心API4.3 交换机类型4.4 持久化4.…

UVa1389/LA3709 Hard Life

UVa1389/LA3709 Hard Life 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2006年icpc欧洲区域赛东北欧赛区的H题 题意 约翰是一家公司的CEO。公司的股东决定让他的儿子斯科特成为公司的经理。约翰十分担心,儿子会因为在经理岗位上表现优异而威胁到他CE…

IPv4地址学习

今天学习了IPv4,做下学习笔记: 什么是IPv4? IPv4地址是网络层地址,用于标识网络中的每个节点。 什么是子网?什么是主类子网划分? 我们将IP地址划分为网络位和主机位 一个地址为192.168.1.2/24&#xff…

【HTML】置换元素(替换元素)

● 它的内容不是由元素的标签内的内容决定的,而是由元素的属性决定的 ● 可以通过CSS设置宽度和高度。 常见的置换元素主要包括以下几种: <img> 元素:用于嵌入图像,通过 src 属性指定图像的路径。例如:<img src="example.jpg" alt="示例图片&quo…

场景感知技术带您重塑未来生活的新篇章

在科技日新月异的今天&#xff0c;场景感知技术正以前所未有的速度渗透到我们生活的方方面面&#xff0c;成为连接物理世界与数字世界的桥梁&#xff0c;重塑着人类的认知方式与生活体验。这项技术通过综合运用传感器、大数据分析、人工智能等前沿科技&#xff0c;实现对周围环…

C++多态 学习笔记(上)

本文涉及的指针都是 4bytes 。 如果要其他平台下&#xff0c;部分代码需要改动。比如&#xff1a;如果是 x64 程序&#xff0c;则需要考虑指针是 8bytes 问题 等等。 什么是多态&#xff1f; 举个例子&#xff1a;比如 买票这个行为 &#xff0c;当 普通人 买票时&#xff0c;…

短剧APP系统搭建,短剧市场的发展机遇

短剧作为近几年内发展快速的行业&#xff0c;一直深受大众的欢迎&#xff0c;各种让观众上头的短剧层出不穷&#xff0c;深深吸引着大众。短剧的巨大发展前景也吸引了大量资本涌入市场&#xff0c;目前&#xff0c;短剧入局者也都获得了不菲的经济收益&#xff01; 随着短剧行…

C++下标+【】、迭代器、范围for、迭代器对于其他容器都是通用的、迭代器可以更好的跟算法配合、rbegin和rend函数、const修饰的迭代器等的介绍

文章目录 前言一、 下标 【】二、 迭代器1.begin2. end3. 使用迭代器遍历string类对象 三、范围for(语法糖)五、迭代器对于其他容器都是通用的六、迭代器可以更好地跟算法配合七、 rbegin 和 rend函数八、 const 修饰的迭代器总结 前言 C下标【】、迭代器、范围for、迭代器对…

JavaEE---Spring MVC(5)

MVC学习小案例3 留言板案例 后端代码 测试 点击刷新的时候页面的这些记录仍在 一个小tips 我们在日常中写的时候会经常写到get和set方法,这会使整个代码看起来非常多不好看,这里我们引入一个新的依赖解决这个问题 引入LomBok依赖 那要是个别情况下我们不想获取他的ge…

高集成度双通道差分式电容型传感芯片-MC11

工采电子代理的MC11S、MC11T是一款高集成度双通道电容型传感芯片&#xff0c;芯片直接与被测物附近的差分电容极板相连&#xff0c;通过谐振激励并解算测量微小电容的变化。激励频率在0.1~20MHz范围内可配置&#xff0c;其频率测量输出为16bit数字信号&#xff0c;对应的电容感…