YOLOv5+混合注意力机制再涨4.3%,Transformer混合设计依旧可以卷

news2024/10/2 14:21:48

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

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

改进的算法模型具有良好的焊接缺陷检测能力,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是多层感知机。

(1) Enhanced Multi-head Self Attention

提出了一种新颖的EMSA模块,如图3(b)所示,用于同时获取上下文信息和全局特征,使用CA机制捕捉准确的位置特征并有效地捕捉通道间的信息。然后,执行由EMSA和CA捕获的信息特征的融合,以增强特征金字塔网络的特征融合能力。

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

(2) Coordinate attention

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

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

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

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

 为了验证本研究中提出的混合注意力机制的效果,使用 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)中,所有缺陷都被正确检测到,实现了更好的检测结果。 

 参考文献

YOLO ALGORITHM WITH HYBRID ATTENTION FEATURE PYRAMID NETWORK FOR SOLDER JOINT DEFECT DETECTION

 

 

 

 

 

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

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

相关文章

node:全局对象事件环buffer

node:全局对象&事件环&buffer 全局对象 exports/module/require/__dirname/__filename:这些是参数 global全局对象,挂载global上的 process process 进程,代码node服务都是跑在一个进程里面。进程和集群 process上常用属性…

适配最新微信小程序隐私协议开发指南

准备工作 小程序后台设置用户隐私保护指引,需要等待审核通过:设置-基本设置-服务内容声明-用户隐私保护指引 小程序的基础库版本从 2.32.3 开始支持,所以要选这之后的版本 在 app.json 中加上这个设置 “usePrivacyCheck”: true 具体步骤可以…

【方法】PPT设置密码后如何修改?

PowerPoint是我们日常和工作中经常用到的办公软件,有时候为了保护文件,还会设置密码,那设置密码后又想要修改密码,怎么操作呢?下面来看看PPT常用的两种密码是如何修改的。 1. “打开密码” 想要修改PPT的“打开密码”…

C++性能优化- perf 和火焰图的安装使用

工欲善其事必先利其器,要想做Linux下的程序性能优化,就得先知道当前性能的瓶颈在哪里。 这里主要介绍一下常用的工具:perf工具和火焰图的使用方法 本文中的命令都是自己在Ubuntu18.04系统上测试可用的,在其他系统可能会需要不同的…

64.Go整洁代码架构实践

文章目录 一、为什么要有代码架构二、好的代码架构是如何构建的1、整洁架构2、洋葱架构三、六边形架构4、COLA (Clean Object-oriented and Layered Architecture)架构 三、Go 代码架构实践1、目录设计2、Adapter 层 : 负责http路由或者rpc接口管理3、Ap…

关于谷歌Gemini大模型

2023年12月7日,谷歌AI宣布发布新一代基于Transformer架构的大模型Gemini。 Gemini的名字来源于双子座,象征着模型的双重性质: 一方面,它是一个强大的训练模型,可以在各种下游任务上进行微调,如文本摘要、机…

真空引水罐 虹吸抽水机 负压虹吸罐 农业灌溉工作原理动画介绍

​ 1:真空引水罐虹吸抽水机虹吸罐介绍 真空引水罐是一种水泵吸水设备,也被称为真空罐、吸水罐或自动引水装置。它是一个密封的罐体,被串联在泵前的吸水管上,能够使水泵的吸水口从负压吸水变为正压吸水。使用真空引水罐可以节省真…

[蓝桥 2023 ]三带一

问题描述 小蓝和小桥玩斗地主,小蓝只剩四张牌了,他想知道是否是“三带一”牌型。 所谓“三带一”牌型,即四张手牌中,有三张牌一样,另外一张不与其他牌相同,换种说法,四张手牌经过重新排列后&am…

前端结合MQTT实现连接 订阅发送信息等操作 VUE3

MQTT客户端下载 使用测试 在我之前文章中 MQTT下载基础使用 下面记录一下前端使用的话的操作 1.安装 npm i mqtt引入 import * as mqtt from "mqtt/dist/mqtt.min"; //VUE3 import mqtt from mqtt //VUE2 一、MQTT协议中的方法 Connect。等待与服务器建立连接…

体系化的进阶学习内容

UWA学堂:传播游戏行业的体系化的进阶学习内容。UWA学堂作为面向开发者的在线学习平台,目前已经上线272门课程,涵盖了3D引擎渲染、UI、逻辑代码等多个模块,拥有完整的学习体系,一直致力于为广大的开发者提供更丰富、更优…

线程同步及互斥锁

一、线程同步 1. 线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进 行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作,而其他线程则处 于等待状态。 2. 临界区是指访问某…

junit单元测试:使用@ParameterizedTest 和 @CsvSource注解简化单元测试方法

在平常的开发工作中,我们经常需要写单元测试。比如,我们有一个校验接口,可能会返回多种错误信息。我们可以针对这个接口,写多个单元测试方法,然后将其场景覆盖全。那么,怎么才能写一个测试方法,…

CSDN的Markdown编辑器使用教程

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

YOLOv5改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)

一、本文介绍 本文给大家带来的改进内容是SCConv,即空间和通道重构卷积,是一种发布于2023.9月份的一个新的改进机制。它的核心创新在于能够同时处理图像的空间(形状、结构)和通道(色彩、深度)信息,这样的处理方式使得SCConv在分析图像时更加精细和高效。这种技术不仅适…

【Flink精讲】双流Join之Regular Join(即普通Join)

Regular Join 普通Join 通过条件关联两条实时数据流:动态表Join动态表支持Inner Join、Left Join、Right Join、Full Join。 1. Inner Join(Join):只有两边数据流都关联上才输出[L,R] 2. Left Join(Left Outer Join):只要左流有数据即输出[…

听GPT 讲Rust源代码--compiler(26)

File: rust/compiler/rustc_target/src/abi/call/mips.rs 在Rust源代码中的rust/compiler/rustc_target/src/abi/call/mips.rs文件是关于MIPS架构的函数调用ABI(Aplication Binary Interface)定义。ABI是编程语言与底层平台之间的接口规范,用于定义函数调用、参数传…

三英战吕布web3游戏项目启动全流程

项目是一个学习相关的很好的例子并且开源,原本的项目是连接goerli网络,但我把它修改为可连接ganache网络的项目了,更方便启动。 智能合约部分 进入文件 hardhat.config.js ,增加一个钱包私钥 2.执行npm install 3.测试合约 npx ha…

乔布斯在斯坦福大学经典演讲

今天,很荣幸来到各位从世界上最好的学校之一毕业的毕业典礼上。我从来没从大学毕业过,说实话,这是我离大学毕业最近的一刻。 今天,我只说三个故事,不谈大道理,三个故事就好。 第一个故事,是关于…

机器人相关知识

机器人学(Robotics) 一些基础概念 位姿 位姿位置姿态 位姿的表示 刚体 刚性物体是一组粒子的集合,其中任意两个粒子之间的距离保持固定,不受物体运动或施加在物体上的力的影响。 “完全不可变形”的物体就是刚体。 刚体位置 刚性连杆 …

web——德州扑克

1.此案例只用于学习 2.未接入游戏规则 HTML代码部分 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width"><meta name"Poker Skin" content&quo…