集智书童 | YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷

本文来源公众号“集智书童”,侵权删,干货满满。YOLOv5重出江湖! 

原文链接:https://mp.weixin.qq.com/s/vb7HsA0fKDgRc3uC8Z-2yw

在工业生产过程中,由于低效率、不统一的评估、高成本以及缺乏实时数据,传统的手动检测焊接缺陷不再被应用。

为了解决表面贴装技术中焊接缺陷检测的低准确率、高误检率和计算成本问题,提出了一种新方法。该方法是一种专门针对焊接缺陷检测算法的混合注意力机制,通过增加准确度并降低计算成本来提高制造过程中的质量控制。混合注意力机制包括提出的增强多头自注意力机制和协调注意力机制,以增加注意力网络感知上下文信息的能力,并提高网络特征利用率。协调注意力机制增强了不同通道之间的连接,减少了位置信息损失。混合注意力机制增强了网络感知长程位置信息和学习局部特征的能力。

改进的算法模型具有良好的焊接缺陷检测能力,mAP达到91.5%,比Yolov5高4.3%,并优于其他比较算法。与版本相比,平均精确率、精确度、召回率和每秒帧数指标也有所提高。在满足实时检测要求的同时,检测准确度的提高是可以实现的。

1 Introduction

表面贴装器件(SMD)引脚在自动生产过程中容易产生焊接缺陷,如引脚短路和引脚偏移,如图1所示。在焊接缺陷检测中,传统的手动检测方法已不再适应工业生产的发展。手动检测效率低、评估不统一、成本高且缺乏实时数据。

计算机视觉是计算机硬件和软件的结合,与工业相机和光源一起捕捉图像。它在各种工业场景中得到应用,用于自动化制造并提高产品质量。基于计算机视觉的焊接缺陷检测系统具有实时、连续和无接触的特点。这种方法可以取代手动检测并提高结果的准确性。目前,计算机视觉在缺陷检测中已得到广泛应用。因此,使用计算机视觉检测焊接缺陷已成为主流趋势。近年来,深度学习技术作为计算机视觉的一个分支得到了迅速发展。正在开发的自动化焊接缺陷检测方法还比较缺乏。焊接缺陷检测方法可以分为三个主要组,即基于特征的方法,统计方法和深度学习方法

深度学习方法由于其卷积神经网络(CNN)结构,可以从焊接接头图像中学习有效信息和规则,解决人工设计规则难以提取有效特征的问题。深度学习神经网络(DNN)的结构可以分为单阶段和两阶段网络。尽管两阶段DNN比单阶段更准确,但浅层特征需要谨慎利用,以避免在特征提取阶段丢失信息,导致检测率降低。此外,单阶段方法在实时性能方面表现良好,但检测效果对小缺陷区域和低分辨率图像不佳。在缺陷检测的特征提取模块中,目标特征信息丢失过多,导致小缺陷检测率不理想,从而造成严重的漏检问题。深度学习方法使用深度神经网络提取特征,但随着深度神经网络层数的加深,一些浅层信息容易丢失,导致小尺寸目标的漏检。为解决这一问题,采用多尺度特征融合方法在特征提取过程中融合深层和浅层特征,增强不同网络层之间的信息传输。因此,优化特征融合方法可以提高小尺寸目标的检测准确性。

Feature Pyramid Network(FPN)通过多次上采样输入图像,获取不同尺度的特征图像。它将高 Level 的抽象语义信息与特征提取过程中的低级细节,如从上到下提取的轮廓纹理信息相结合,以实现特征提取增强的目标。然而,尽管FPN系统地提取了低级和高级特征,但其特征融合能力仍然无法满足需求,使得浅层特征信息难以保留。

为了在高层和低层特征之间解决缺失信息的问题,刘等人设计了一种Path Aggregation Network(PANet),在特征金字塔的底部连接自下而上的增强路径。这个过程是为了缩短信息融合的传输路径,以增加特征金字塔架构的检测能力。双向特征金字塔网络(BiFPN)是在PANet的基础上构建的,其中只有一个输入的节点被删除,以减少参数计算的数量。通过额外的跳跃传输路径,直接将输入和输出层特征连接,以增强浅层特征的融合能力。BiFPN为每个层赋予自适应学习的权重,并通过权重分配使网络感知不同层的重要性。

多尺度特征融合在小型目标检测中得到广泛应用,通过结合高层语义信息和低层详细信息,显著提高了小型物体的检测性能。然而,FPN的构建主要分为跨层连接和并行分支。虽然这种机制提高了性能,但增加了额外的参数计算和存储空间。因此,需要研究设计一种能够增强缺陷检测器特征融合能力的金字塔特征网络架构。作者提出了一种混合注意力机制来提高特征金字塔网络的特征融合能力。作者将增强的FPN应用到YOLOv5检测模型中。本文设计了比较实验和消融实验,以验证所提出方法在焊接缺陷数据集上的有效性。本文的整体流程图如图2所示。

本文的主要工作和创新点如下。

  1. 提出了一种新颖的增强多头自注意力机制(EMSA),以增强网络感知上下文信息的能力,扩大网络特征利用率范围,并使网络具有更强的非线性表达能力。

  2. 本文将坐标注意力机制(CA)与EMSA相结合,设计了一种混合注意力机制(HAM)网络,以解决特征金字塔网络中浅层特征损失问题,增加网络感知远程位置信息和学习局部特征的能力。

  3. 混合注意力机制改进了FPN,并提高了其将功能和网络通道之间的信息传递进行融合的能力。

  4. 改进的FPN被应用到YOLOv5检测模型中,这提高了YOLOv5的焊接缺陷检测能力,显著解决了小缺陷的低检测率问题,同时增强了缺陷检测模型的通用适用性。

2 Related Work

2.1 Feature Pyramid Network

Feature Pyramid Network(FPN)是一种常用的特征融合方法,用于目标检测,它是一种提取金字塔特征表示的网络模型。通常在目标检测的特征融合阶段使用。在对 Backbone 网络进行底向上特征提取操作后,将FPN连接到相应层的前后相邻特征图,从上到下、横向依次结合 Backbone 网络特征层次中的两个相邻层,构建一个特征金字塔。尽管FPN简单且有效,但仍有某些方面的缺陷。在每一层的特征融合之前,不同层之间存在语义鸿沟,直接融合将对多尺度特征表示能力产生负面影响。在特征融合过程中,金字塔网络高级特征信息在缩放过程中可能会丢失。

基于FPN结构的Path Aggregation Network(PANet)在YOLO目标检测框架及其变体中得到了广泛应用。该网络具有两条特征融合路径,即自上而下和自下而上。这种方法减少了深层和浅层特征之间的融合距离,优化了FPN网络的特征融合方法,提高了目标检测效果。然而,由于添加了自下而上的路径,低级特征信息可能会在网络层加深时丢失,额外的路径增加了计算复杂性和网络参数,降低了网络模型的检测速度。双向特征金字塔网络(BIFPN)引入了跳跃连接,利用跳跃连接在特征输入和输出层之间传递信息。因为操作在同一层,这种方法可以与较少的参数结合更多的特征。为了实现更多的特征融合,BIFPN计算同一层参数多次,将每条双向路径视为一个特征网络层。

自适应空间特征融合(ASFF) 是在2019年提出的一种具有自适应能力的特征融合算法。它可以通过权重选择自适应地获取重要信息,从而提高特征融合的有效性。通过学习不同特征图之间的连接,ASFF可以解决特征金字塔中不同大小的特征之间的不一致问题。它具有易实现、低成本和广泛应用的优点。钱等人[1]提出了一种中心化特征金字塔(CFP),它基于全局显式中心化特征规则,可以在目标检测模型中使用。这种方案提出了一种通用的内层特征调整方法,使用轻量级多层感知机(MLP)捕获全长度距离相关性,并强调使用内层特征规则,可以有效地获取全面但差异化的特征表示。CFP网络可以有效提高YOLOv5和YOLOX的目标检测能力。它在公共数据集MS-COCO上提高了mAP值1.4%,但计算复杂性相对较高。

FPN在多个涉及缺陷检测的实例中得到了应用。Chen等人[14]使用YOLOv3进行SMD LED芯片缺陷检测,使用基本FPN作为特征融合模块。它对缺失组件、缺失线和反向极性缺陷的检测率合理,但对表面缺陷的检测率较低。原因是表面缺陷的大小相对较小且分布位置不确定,因此难以检测。Yang等人[17]使用YOLOv5进行钢材表面缺陷检测,使用Path Aggregation Feature Pyramid Network(PAFPN)作为特征融合模块检测钢材表面六种缺陷,实现了良好的实时检测结果,但对小型缺陷目标的检测率较低。Du等人[15]使用增强的YOLOv5进行PCB缺陷检测,使用BiFPN作为特征融合模块检测PCB表面缺陷。mAP50指数达到95.3%,但对任务孔和开路缺陷的小型缺陷的mAP值较低。任务孔缺陷是指由于PCB上的焊盘插座中缺乏焊料而形成的孔效应。开路缺陷指的是PCB上的电路断开。

Han等人[10]设计了一种YOLO改进方案,用BiFPN代替原始PAFPN,并在BiFPN中使用自注意力机制将上采样和下采样处理模块嵌入,以提高表面缺陷检测任务中模型的检测率。然而,检测较小缺陷的能力较弱。因此,为了提高缺陷检测网络的检测性能,有必要设计一种增强的注意力机制来提高FPN的特征融合能力,从而减少对小尺寸缺陷的漏检率。近年来,许多研究利用注意力机制来增强缺陷检测框架的检测能力。注意力机制是一种使神经网络能够专注于特定目标的功能。

2.2 Attention Mechanism

众多的输入信息包括任务所需的关键和无关信息。注意力机制可以关注这些关键信息,同时过滤无关信息。注意力机制的灵感来源于人类视觉系统,它可以快速浏览图像,定位感兴趣的目标区域,并增强对目标区域的关注,从而获取该区域的重要信息并抑制来自其他无关区域的干扰。胡等人提出了一个名为Squeeze and Stimulation(SE)的注意力模块。这个注意力模块通过挖掘特征通道之间的互依赖关系来自适应地修正每个通道的权重参数,使网络能够关注更多的关键特征信息。吴等人[17]扩展了空间维度,并设计了卷积块注意力模块(CBAM)。

通过顺序构建通道注意力模块(CAM)和空间注意力模块(SAM),增强了网络分离和增强特征信息的能力。有效通道注意力(ECA)模块[18]使用一维卷积操作来提取通道之间的依赖关系,实现跨通道交互。它解决了SE由于压缩维度减少而无法有效提取通道之间依赖关系的问题。ECA具有较低的计算复杂性,对网络速度的影响较小。

张等人[19]将ECA嵌入YOLOv5的特征融合网络中,用于太阳能电池表面缺陷检测,增强了PAFPN融合太阳能电池表面缺陷特征的能力,从而进一步提高缺陷检测率。在数据集上的mAP50值为84.23%。然而,ECA对较小特征图的计算开销较大。

为了更好地检测钢表面的表面缺陷,钱等人[18]将CA机制引入检测网络。mAP值为79.23%,而召回值为62.4%。CA机制需要计算整个特征图的注意力权重,因此无法捕捉长程依赖关系。为了解决小面积检测中的长程依赖关系,收集语义信息至关重要。另一方面,视觉Transformer(ViT)完全依赖自注意力来捕捉长程全局关系,其准确性优于卷积神经网络(CNN)。ViT在2020年被引入计算机视觉领域,并在视觉领域取得了良好的性能。

2.3 Vision Transformer

视觉Transformer在计算机视觉领域取得了良好的性能,因为它使用了多头自注意力(MSA)机制。MSA机制是一种与CNN不同的特征提取方法,可以建立全局依赖关系并扩展图像的感知场。与CNN相比,ViT的感知面积更大,可以收集更多的上下文信息。

然而,由于过滤器效率低下,一些对检测至关重要的信息被移除。ViT没有利用特征定位、翻译不变性和图像尺度的先验知识。ViT捕获充分信息的能力比CNN弱,且不能利用图像本身特征定位、翻译不变性和图像尺度的先验知识。ViT模型设计采用缩放点积注意力机制。ViT首先将图像分成非重叠、固定大小的图像块,并将图像块 flatten 成一维向量进行线性投影,以实现特征提取。

Swin Transformer是另一种Transformer类型。Swin Transformer利用局部注意力和位移窗口多头自注意力机制(SW-MSA)实现局部和全局特征之间的交互,在各种视觉任务中取得良好结果,并解决了ViT局部信息易受损害的问题。

自注意力机制和注意力机制之间的区别在于, Query 和键来自不同的来源,而自注意力机制的 Query 和键来自同一组元素。朱等人设计了一个用于无人机图像中微小目标检测的Transformer预测头YOLOv5(TPH-YOLOv5)模型。该模型使用Transformer检测低分辨率特征图,增强网络提取不同局部信息的能力,并实现高密度目标更好的性能。然而,将Transformer模块分布在模型的多个部分导致了显著的计算工作量。

3 Proposed Enhanced Feature Pyramid Network

3.1 Hybrid Attention Feature Pyramid Network Architecture

在焊接接头缺陷检测任务中,有些小缺陷难以检测。增强FPN的特征融合能力可以帮助提高小缺陷的检测效果。为了增强FPN的特征融合能力,本研究提出了一种混合注意力特征金字塔网络(HA-FPN),如图3(a)所示。

在基本FPN中添加混合注意力机制(HAM)可以增强FPN感知上下文信息的能力。同时,它还扩大了对特征信息的利用,解决了位置信息严重损失的问题。HAM网络结构如图3(b)所示。

3.2 Hybrid attention mechanism

混合注意力机制(HAM)模块是基于Transformer结构的。首先,输入特征经过深度卷积(DWConv)残差块以实现参数共享并增强局部特征的学习。

接下来,使用Layer Normalization(LN)进行规范化处理。然后,通过两个注意力机制模块,即增强多头自注意力(EMSA)和坐标注意力(CA),对输出进行处理。最后,经过LN层进行规范化,并最终通过MLP层输出处理结果。

整个处理过程如图1所示。

在公式(1)中,X表示输入特征,Y表示输出特征,X1、X2和X3是中间特征。DWconv表示深度可分卷积,LN表示层规范化,CA表示坐标注意力,EMSA表示增强多头自注意力。MLP是多层感知机。

3.2.1 (1)Enhanced Multi-head Self Attention

提出了一种新颖的EMSA模块,如图3(b)所示,用于同时获取上下文信息和全局特征,使用CA机制捕捉准确的位置特征并有效地捕捉通道间的信息。

然后,执行由EMSA和CA捕获的信息特征的融合,以增强特征金字塔网络的特征融合能力。

设计概念基于Transformer中的MSA机制,如图4(a)所示。EMSA的结构如图4(b)所示。EMSA的整个处理过程如图3.2所示。

在公式(3.2)中,表示输入特征,表示输出特征,和表示中间特征。Q、K和V分别表示 Query 矩阵、Key矩阵和Value矩阵。线性是线性变换操作,SiLU是Sigmoid线性单元激活函数,FC表示全连接处理,d是标量因子。

首先,Q、K和V组件通过全连接(FC)层形成,然后对三个组件分别进行线性变换。将变换后的Q和K矩阵相乘,然后对它们进行一系列非线性处理。然后,使用全连接层输入SiLU激活函数,这与神经元内的信号传输模型非常相似,因此更符合某些生物实现机制,更好地模拟人脑的信息处理机制。经过全连接层后,使用Tanh激活函数进行处理,输出结果是一个与线性变换的V组件相乘的矩阵。

最后,将全连接层与原始输入特征相融合,以获得最终输出结果。与原始的MS-A相比,EMSA具有更多的非线性变换,这可以使注意力网络具有更强的上下文感知能力,进一步增强网络对特征利用范围的使用,并使网络具有更强的非线性表达能力。

3.2.2 (2)Coordinate attention

本研究将坐标注意力(CA)机制引入HAM,以增强FPN的位置信息融合能力。CA机制可以有效地增强不同通道之间的关联,并提高网络对远程位置信息的感知能力。CA机制的操作过程如图5所示。

对于输入H(输入特征图的高度)W(输入特征图的宽度)C(输入特征图的通道数),首先,从图像的高度和宽度维度进行全局平均池化,得到具有尺寸H1C和1WC的特征图;然后,将两个尺寸的特征图拼接在一起,并通过共享卷积从通道维度降低维数,得到尺寸为1(W+H)C/r的特征图。经过非线性层处理后,非线性表达能力得到提高。

接着,为了增加维数,使用11卷积,将特征图从宽度和高度维度恢复到A和B尺度,并通过HardSigmaid分配权重。为了加速CA机制的处理速度,使用HardSigmoid替换原来的Sigmoid激活函数进行权重分配。HardSigmoid不需要指数运算,因此其计算速度比Sigmoid快。最后,特征图的尺寸变为HWC。

3.3 Improved Feature Fusion Network In YOLOv5

作者将HAFPN作为特征融合模块使用在YOLOv5中,替换了原来的PAFPN结构。

原始特征融合网络架构如图6(a)所示。它包括卷积(Convolution)、批量归一化(Batch Normalization)和SiLu激活函数(CBS)、跨阶段部分(CSP)瓶颈结构,其中包含3个卷积(C3)和空间金字塔池化快速(SPPF)。

与FPN相比,PAFPN具有更好的网络准确性,但对于焊接接头中一些小缺陷的检测效果不佳,网络尺寸较大且参数较多。作者提出的强化方法增强了FPN网络的特征融合能力,以提高识别准确性,同时确保检测速度。原始特征融合网络架构如图6(b)所示。

4 Experiment

4.1 Experimental Environment

实验的硬件和软件环境如表1所示。

4.2 Datasets

焊接接头缺陷数据集包含3154张缺陷焊接接头图像,这些图像是通过Couple-Charged Device(CCD)工业相机获得的。其中两种缺陷类型,分别是无效和足部偏移。其中,1680个是无效缺陷,1474个是足部偏移缺陷。数据集被随机分为训练集、验证集和测试集,其中训练集、验证集和测试集的比例分别为80%、10%和10%,用于模型训练、验证和测试。数据集的准备方法是参考进行适应和修改的。

4.3 Evaluation criterion

本次实验的评价指标包括公式(4.1)计算的精确度(Precision)、公式(4.2)计算的召回率(Recall)、公式(4.3)计算的平均精确度(Mean Average Precision,mAP)以及每秒帧数(Frames Per Second,FPS)。在公式中,TP表示正确预测的阳性样本数量,FP表示错误预测的阳性样本数量,FN表示实际为阳性但预测为阴性的样本数量。P表示精确度,R表示召回率。

4.4 Experiments and analysis of results

4.4.1(1) Comparative experiment

为了验证本研究中提出的混合注意力机制的效果,使用 Heatmap 可视化方法比较了不同注意力机制在缺陷区域的聚焦能力,如图7所示。

如果不使用注意力机制,YOLOv5对焊接接头缺陷的注意力较弱。添加多个注意力机制后,显示了一定的改进。其中,SE和ECA的缺陷注意力改进较小,甚至出现了下降效果。CBAM和CA注意力对缺陷注意力有增强作用。Transformer和Swin Transformer对小尺寸的移动缺陷的注意力较差。

本研究中提出的混合注意力机制显著增加了缺陷位置的 Heatmap 覆盖效果。它对小缺陷的聚焦能力更关键,位置定位更准确,证明了混合注意力可以结合上下文内容聚焦更多像素,证明了混合注意力的有效性。

为了验证HAFPN算法的优越性,作者在同一数据集上比较了不同FPN算法的缺陷检测性能。CSPDarknet53始终作为特征提取 Backbone 网络。比较的特征融合算法包括FPN、PAFPN、A。

Table 1. 实验环境2. 所有缺陷的检测指标均高于FPN、PAFPN、BiFPN和CFPNet。不足缺陷的精度略低于ASHF。HAFPN的整体精确度、召回率和mAP值均优于其他网络,其中精确度为3.8%、9.4%、1.3%、9.7%、6.9%更高,召回率为0.5%、4.8%、0.7%、1.5%、1.2%更高,mAP值为3%、4.3%、0.9%、3.2%和3.4%更高。

本研究使用HAFPN改进YOLOv5缺陷检测模型,并在焊接接头缺陷数据集上与不同检测模型进行比较。比较模型包括一阶段检测模型如YOLOv4 [DCL21],YOLOv5 [G22],YOLOv7 [WBL23]和YOLOv8 [G23],改进后的YOLOv5检测模型如STC-YOLOv5,TPH-YOLOv5和两阶段检测模型Faster R-CNN [RHGS15]。

表3记录了实验结果。与YOLO系列算法相比,作者的模型在整体精确度、召回率和mAP指标上取得了最佳表现。在检测速度方面,尽管FPS低于原始YOLOv5模型,但高于其他模型,其精确度、召回率和mAP分别为9.4%、4.8%和4.3%,比YOLOv5高9.4%、4.8%、4.3%。

与Faster R-CNN相比,召回值较低,但速度快三倍,提出的算法具有有效的实时性能。与STC-YOLOv5和TPH-YOLOv5相比,作者的模型在精确度上增加了6.4%、2.4%,召回率增加了3.1%、2.2%,mAP增加了2.8%、0.6%,FPS增加了22.5%、31.6%。

作者使用改进后的YOLOv5网络对原始YOLOv5网络的检测性能进行了视觉比较,如图8所示。

在12个引脚中,前9个存在缺陷。可以发现,原始YOLOv5网络在检测小尺寸的不足缺陷目标时,对于移位缺陷(前两个引脚)的检测存在遗漏。改进后的网络检测能力得到了增强,避免了遗漏和误检的发生。在图8(b)中,所有缺陷都被正确检测到,实现了更好的检测结果。

4.4.2 (2) Ablation Study

为了验证改进方法中注意力模块对网络检测性能的影响,作者设计了使用CSPDarknet53作为 Backbone 的网络剪枝实验。将CA和EMSA添加到FPN和PAFPN的两个特征金字塔中,比较了它们在网络检测效果上的差异,如表4所示。

如表2所示,在FPN中,将EMSA添加到FPN导致精确度、召回率和mAP分别提高了3.3%、0.2%和2.1%。在将EMSA和CA的混合注意力机制添加到PAFPN中后,精确度、召回率和mAP分别提高了2.9%、4.2%和3%。在将EMSA和CA的混合注意力机制添加到PAFPN中后,精确度、召回率和mAP分别提高了2.4%、4%和1.7%。

5 Conclusions

为了提高工业场景中SMT焊点缺陷检测的准确性并减少缺陷焊点的漏检率和误报率,作者提出了一种深度学习的增强多头自注意力机制用于SMT焊点缺陷检测方法,以提高特征利用率,并使网络具有更强的非线性表达能力。作者将CA机制与EMSA机制相结合,构建了一种混合注意力机制网络。该混合注意力机制用于增强FPN,提高其融合特征的能力,并增强网络通道之间的信息传输。增强后的FPN应用于YOLOv5模型,从而提高了YOLOv5对焊点缺陷的检测能力,特别是解决了小尺寸缺陷的低检测率问题,同时提高了缺陷检测模型的泛化能力。

本方法通过改进注意力机制增强了网络的特征融合能力。实验结果显示,作者的方法在焊点缺陷数据集上实现了91.5%的mAP,比比较模型高4.3%。与流行的自注意力改进模型STC-YOLO和TPH-YOLOv5相比,mAP分别提高了2.8%和0.6%,FPS指数分别提高了159.8,比STC-YOLO和TPH-YOLOv5分别高22.5和31.6。这表明作者的模型在实时性方面表现良好,对工业场景的应用有益。下一步将是继续改进网络,使其模型参数更轻量化,同时进一步提高焊点缺陷的检测准确性。

参考

[1].YOLO ALGORITHM WITH HYBRID ATTENTION FEATURE PYRAMID NETWORK FOR SOLDER JOINT DEFECT DETECTION

论文下载链接:YOLO algorithm with hybrid attention feature pyramid network for solder joint defect detection (arxiv.org)

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

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

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

相关文章

C语言-指针(上)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 本篇文章将为大家介绍C语言中的核心内容-指针,指针在C语言的中知识内容比…

Java 小项目开发日记 04(文章接口的开发、oss图片上传)

Java 小项目开发日记 04&#xff08;文章接口的开发、oss图片上传&#xff09; 项目目录 配置文件&#xff08;pom.xml&#xff09; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

机器学习:集成学习(Python)

一、Adaboost算法 1.1 Adaboost分类算法 adaboost_discrete_c.py import numpy as np import copy from ch4.decision_tree_C import DecisionTreeClassifierclass AdaBoostClassifier:"""adaboost分类算法&#xff1a;既可以做二分类、也可以做多分类&#…

uniapp的h5端在线预览文件

步骤如下&#xff1a; 1、下载需要准备的工具文件包 2、将其解压到/static/pdf文件夹下,如图&#xff1a; 3、创建在线查看文件的页面&#xff1a; <template><view><web-view :src"path"></web-view></view> </template>&l…

JavaScript练手小技巧:一文看懂<script>标签的 ansyc 和 defer

<script>标签的 ansyc 和 defer 属性。只对外部加载 JS 文件有效。 <script src"js/app.js" async></script> <script src"js/app.js" defer></script> 普通加载 js&#xff08;同步加载&#xff09;&#xff1a;会打断 …

Vue3 isProxy,isReactive,isReadonly 三者解析

1、isProxy 作用&#xff1a;判断当前数据是否为代理数据。 注意&#xff1a;它只对通过 reactive&#xff0c;readonly&#xff0c;shallowReactive&#xff0c;shallowReadonly 这四个方法包裹的数据返回true&#xff0c;对于 ref 以及通过 new Proxy 代理的数据返回都是fal…

ChatGPT科研与AI绘图及论文高效写作教程

原文链接&#xff1a;ChatGPT科研与AI绘图及论文高效写作教程 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电…

HPE ProLiant MicroServer Gen8更换坏硬盘(RAID 1+0)

HPE ProLiant MicroServer Gen8今天硬盘告警&#xff0c;坏了一块硬盘&#xff08;估计还是由于上次突然断电导致的&#xff09;&#xff0c;关机&#xff0c;拆下坏硬盘&#xff0c;更换新硬盘&#xff0c;开机后按了一次F1键&#xff0c;系统继续启动并正常使用&#xff0c;同…

高性能MySQL 第4版

第一章MySQL架构 MySQL提供了多种锁的颗粒度&#xff0c;每种MySQL存储引擎都可以实现自己的锁策略和锁力度。 行级锁是在存储引擎而不是在服务器中实现的。 隔离界别 READ UNCOMMITTED - 脏读 在事务中可以可以查看到其他事务中还没有提交的修改。实际中很少用。 READ C…

Linux网络编程——socket 通信基础

Linux网络编程——socket 通信基础 1. socket 介绍2. 字节序2.1 简介2.2 字节序举例2.3 字节序转换函数 3. socket 地址3.1 通用 socket 地址3.2 专用 socket 地址 4. IP地址转换&#xff08;字符串ip -> 整数&#xff0c;主机、网络字节序的转换 &#xff09;5. TCP 通信流…

算法------(13)KMP

例题&#xff1a;&#xff08;1&#xff09;AcWing 831. KMP字符串 。。其实写完也不太理解。。随便写点吧 KMP就是求next数组和运用next的数组的过程。相比传统匹配模式一次更新一单位距离的慢速方法&#xff0c;next数组可以让下表字符串一次更新n - next【n】个距离&#x…

Java读取文件

读取文件为String 、访问链接直接跳转html 环境&#xff1a;SpringMVC 、前端jsp InputStreamReader FileInputStream fileInputStream new FileInputStream(formatFile.getHtmlpath());InputStreamReader reader new InputStreamReader(fileInputStream, StandardCharsets…

【EAI 026】RoboGen: 通过自动数据生成管线实现机器人技能学习

Paper Card 论文标题&#xff1a;RoboGen: Towards Unleashing Infinite Data for Automated Robot Learning via Generative Simulation 论文作者&#xff1a;Yufei Wang, Zhou Xian, Feng Chen, Tsun-Hsuan Wang, Yian Wang, Zackory Erickson, David Held, Chuang Gan 作者单…

C++:菱形继承问题

目录 1、什么是菱形继承 2、虚拟继承 3、一些常见问题 1. 什么是菱形继承&#xff1f;菱形继承的问题是什么&#xff1f; 2. 什么是菱形虚拟继承&#xff1f;如何解决数据冗余和二义性的 3. 继承和组合的区别&#xff1f;什么时候用继承&#xff1f;什么时候用组合&#…

Qt 自定义长条进度条(类似播放器进度条)

1.运行界面 2.步骤 其实很简单。 2.1绘制底图圆角矩形 2.2绘制播放进度圆角矩形 参考&#xff1a;painter绘图 3.源码 #pragma once#include <QWidget> #include <QLabel> #include <QHBoxLayout> #include <QMouseEvent> #include <QDebug&g…

Slicer学习笔记(六十五) 3DSlicer的医学图像数据增强扩展模块

1. 医学图像数据增强扩展模块 基于3D Slicer5.1.0 编写了一个测试医学图像的数据增强测试扩展模块。 扩展模块名&#xff1a;DataAugementation 项目地址&#xff1a;DataAugmentation 下载该项目后&#xff0c;可以将该扩展模块添加到3D Slicer的扩展中。 关于如何给3DSlicer…

微信自动回复,基于python

#!/usr/bin/python3 # -*- coding: utf-8 -*-import numpy as np import pandas as pd from uiautomation import WindowControl import csvwx WindowControl(Name微信,searchDepth1 ) # 切换窗口 wx.ListControl() wx.SwitchToThisWindow() # 寻找会话控件绑定 hw wx.…

LaTeX-设置表格大小

文章目录 LaTeX-设置表格大小1.创建表格2.设置表格的宽度2.1控制表格每一列的宽度2.2控制整个表格的宽度 3.设置表格的外观4.LaTeX绘制三线表 LaTeX-设置表格大小 本文介绍了LaTeX如何设置表格的大小、改变表格的外观以及如何绘制三线表。 1.创建表格 在LaTeX中创建表很耗时…

【前端素材】推荐优质后台管理系统网页my-Task平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的工具&#xff0c;通常由管理员使用。后台管理系统是一种用于管理和控制网站、应用程序或系统的管理界面。它通常被设计用来让网站或应用程序的管理员或运营人员管理内容、用户、数据以及其他相关功…

2023年NOC大赛软件创意编程(学而思)赛道图形化小低高组决赛试题

2023NOC 决赛-小低组 每个小朋友从小会有梦寐以求的愿望,或是拥有孙悟空七十二变的能 力,或是像神笔马良一样想要什么画什么,或是成为人见人爱的国宝 大熊猫,或是变身全能机器人……今天,你可以用编程实现自己愿望! 【题目要求】 请以“假如我是_____”为题,自选主…