无线感知会议系列【15】DPSense-2

news2024/11/22 22:50:14

接:

  无线感知会议系列【15】DPSense-1


目录: 

  1.      实验
  2.      讨论
  3.      结论
  4.      附录

一  实验


      在本节中,我们通过全面的实验验证了所提出的DPSense系统的有效性。首先,我们将我们的方法与三种最先进的技术进行了比较。然后,基于比较结果,我们重新设计了一个名为DPSense-WiGesture的手势识别系统,该系统结合了DPSense,并遵循WiGesture [8]中的相同识别方案,以进行进一步的评估。我们使用了三组不同的手势集以及多种现实因素来评估DPSense-WiGesture的通用性和鲁棒性。

1.1  Experiment Setup

     1.1.1 设备部署

       在我们的方法中,发射器(Tx)可以是无线接入点(例如路由器或笔记本电脑),而接收器(Rx)可以是任何具备WiFi功能的设备。具体来说,我们配置了三台配备Intel 5300网络接口卡(NIC)的迷你电脑作为收发器。我们使用信道状态信息(CSI)工具[10]来记录CSI。

 1.1.2 数据采集

  接收器在注入模式下配置为从发射机。具体来说,所有设备都安装在垂直平面内的三脚架上,以更好地捕捉手部如图16所示。WiFi信号的频率设置为5.24GHz,带宽为40MHz。什么时候?在收集样本时,用户被要求伸展手臂并在空中挥手。CSI流通过插槽同时发送到服务器(具有i7-7700HQ CPU和16GB RAM的笔记本电脑)连接。对于采样率为400Hz的1秒CSI数据,计算结果需要0.4秒。

1.2  Comparison with State-of-the-Art Methods 

       我们现在通过与最先进的基于WiFi的手势识别方法进行比较,包括WiFinger [13]、FingerDraw [36]和WiGesture [8],来验证我们提出的DPSense的优越性。

 1.2.1手势样本收集。

    

        我们收集了数字集(如图20所示)的手势样本,这些样本的位置和方向如图15所示。具体来说,我们首先将方向保持在o1,并在5个不同位置收集手势。然后,我们将位置保持在E,并在三个不同方向上收集手势。在每个场景下,每个手势都重复了50次。

 

1.2.2 先进技术的实现

          WiFinger[13]通过时域中的信道状态信息(CSI)波形模式来识别手势。为了实现这项工作,我们首先选择数据集的六分之一来构建参考轮廓,然后应用WiFinger[13]中提出的基于动态时间规整(DTW)的方法来提取剩余数据的时域表示,并将其与参考轮廓进行比较。

         为了评估FingerDraw[36],我们提取手势的轨迹,并将它们转换为固定大小(44×33像素)的图像。这些图像被输入到Microsoft Azure的光学字符识别(OCR)系统中,以识别相关手势的类型[36]。WiGesture[8]通过估计手的移动方向变化来生成手势笔画序列,从而进行识别。

1.2.3 对比方法

     如第4.5节所述,FingerDraw[36]和WiGesture[8]利用从两对收发器中提取的动态相位变化来提取与手势相关的物理特征以进行识别。为了进行对比,我们将FingerDraw[36]和WiGesture[8]中原有的动态相位变化提取方法替换为DPSense,分别记为DPSense-FingerDraw和DPSense-WiGesture。将重构的动态相位变化Δθ视为输入信号,并遵循[8, 36]中提取Δθ之后的相同算法。然后,我们将DPSense-FingerDraw/WiGesture与原始的FingerDraw/WiGesture进行对比,以展示我们方法的有效性。

1.2.4 Comparison with Unfixed Locations and Orientations.

       我们首先使用来自所有不同位置和方向的样本来对比当前最先进的技术。最终结果如图12所示。我们可以观察到,使用我们重构的动态相位变化作为输入,FingerDraw[36]和WiGesture[8]的性能分别平均提高了9.7%和7.2%。而WiFinger[13]的性能非常差,这是因为它利用的是CSI波形的模式,这种模式不仅受手势运动的影响,还受手的位置的影响,并且会随着不同位置和方向的变化而发生显著变化。

1.2.5 与固定位置和不固定方向的对比。

          我们现在对比在固定位置和不固定方向下的当前最先进技术。具体来说,我们使用在图15中所示位置E处采集的、具有三个不同方向(O1、O2、O3)的样本。为了全面展示结果,对于对比方法中的每个手势,我们将其在不同方向上准确率最低的最差情况进行了对比。如前所述,对于现有工作[8, 13, 36],如果特定方向上的手势包含许多对应动态相位变化较小的段,则该手势的信号质量将更容易受到环境噪声的影响,从而导致识别准确率下降。对比结果如图13所示。DPSense-WiGesture在每个方向上的具体识别准确率如图26所示。与原始的FingerDraw[36]和WiFinger[13]相比,我们的方法在不同方向上能实现更稳定的性能,平均准确率分别提高了17.8%和12.2%。这是因为我们的方法能够克服不同方向上环境噪声的负面影响,从而重构出精细的动态相位变化。

 

5.2.6 与不固定位置和固定方向的对比

      最后,我们对比了不固定位置和固定方向下的当前最先进技术。具体来说,我们使用了在五个不同位置(A-E)采集的样本,并保持方向为O1。同样地,对于每个手势,我们比较了它们在不同位置上准确率最低的最差情况。具体而言,对比系统在距离收发器最远的位置D上表现最差。结果如图14所示。DPSense-WiGesture在每个位置上的具体识别准确率如图26所示。我们的方法显著提高了FingerDraw[36]和WiFinger[13]的性能,平均分别提高了11.5%和9.2%,因为它能够减少环境噪声对不同位置动态相位变化的影响。

为了进一步评估我们的方法,我们在后续的实验中采用了我们提出的动态相位变化提取技术与最先进的手势感应系统的最佳组合,即DPSense-WiGesture,以验证其通用性和鲁棒性。

1.3  Comparison with Competing Metrics
      为了展示所提出的EDP-index的有效性,我们将其与其他四个竞争指标进行了对比。所选的基线指标如下:

    

 a) SNR(信噪比)https://en.wikipedia.org/wiki/Signal-to-noise_ratio
b) CSI的振幅方差

1 Human respiration detection
with commodity wifi devices: do user location and body orientation matter?

2  QGesture: Quantifying Gesture Distance and Direction with WiFi Signals

c) CSI的相位方差PhaseBeat: Exploiting CSI phase data for vital sign monitoring with commodity WiFi
devices.
 d) 多普勒频移的最大功率IndoTrack: Device-free indoor human tracking
with commodity Wi-Fi.

             为了进行对比,我们用这些竞争指标替换了EDP指数,并遵循了与图6中所示相同的流程。使用了第5.2节中的相同数据集。如图17所示的结果,EDP指数显著优于其他指标。如第4.2节所述,其他指标无法有效区分输入信号的感知质量,可能会错误地将良好的感知质量判定为不良,或将不良的感知质量判定为良好,因此无法保证手势识别的鲁棒性。

1.4 Evaluation of DPSense-WiGesture

     从这里面也看出来感知为什么难,主要收集到工作量太大了。 比如每个场景有10个可能

,有10个场景对应的组合就是10^{10} 方个测试场景,其数据集也是炸裂,而现实应用的复杂性远远超过这个。

    

我们从多个丰富的角度验证了DPSense-WiGesture的通用性和鲁棒性,这些角度包括

1  手势集的多样性
2  环境的多样性
3  位置和方向的变化
4   用户的多样性
5  手部不同的移动速度
6  手势的不同大小
7   环境运动
8  收发器不同的视线(Line-of-Sight,LoS)条件
10   以及不同的采样率

在评估某一特定因素时,其他因素均保持不变,如图18所示

1.4.2 不同环境的影响。

     我们评估了DPSense-WiGesture在三种典型的室内环境中的表现,如图25所示,这些环境包括一个办公室(4m × 5m)、一个客厅(5m × 7m)和一个会议室(7m × 9m)。所有房间都摆放了许多家具,是多径丰富的环境。我们部署系统的位置用浅红色标记。在每个环境中,每个手势都执行了50次。然后,为了评估环境变化引起的静态多径变化的影响,我们通过移动收发器旁边的白板(距离1米以内)来改变会议室的布局。我们还移动了房间内的椅子和桌子。总体结果如图28所示(“会议室-2”表示布局改变后的会议室)。我们发现,不同的环境和静态多径对准确性的影响非常有限。这是合理的,因为我们提出的识别方案旨在抵抗环境噪声,使系统对不同环境具有鲁棒性。

 1.4.3  不同移动速度的影响。

       SignFi 里面有讨论过采样率对其影响  

      我们研究了手部移动速度对识别准确率的影响。要求用户分别以大约4厘米/秒、8厘米/秒、15厘米/秒和20厘米/秒的三种不同速度执行手势。对于S2中的每个手势,每种速度都执行了50次。结果如图29所示。当用户快速移动手部时,动态相位变化更快,但执行的手势轨迹可能与图20中定义的手势轨迹有很大差异,从而导致性能下降。

1.4.4 不同用户的影响

    为了评估不同用户对DPSense-WiGesture的影响,我们招募了12名年龄在19至40岁之间的用户(4名女性和8名男性)。其中三人(图30中的U1-U3)是本文的作者,对系统相对熟悉。其他九人对系统一无所知。参与者包括学生和工作人员。图30中的结果显示,系统性能稳定,平均准确率为96.4%。然而,我们注意到U9的准确率略低。可能的原因是她的手相对较小(因此反射面也小),导致反射信号较弱。

 1.4.5 干扰影响评估

    为了评估人为干扰的影响,我们进行了三个实验,如图31所示。在第一个实验中,当用户(ua)执行手势时,我们安排另一名用户(ub)站在三个不同距离(1米、2米和4米)处,保持上臂静止,然后通过左右摆动肘部(摆动范围约30厘米)来挥手。

     在第二个实验中,我们在不同距离(1米、2米和4米)处放置了一个尺寸为40厘米×60厘米的旋转台式风扇。

      在第三个实验中,我们安排ub沿着三条不同路径(路径A、B和C)来回走动。

      实验结果如图32所示。由此可知,在2米范围内,风扇对我们的系统影响很小,挥手会略微降低系统性能,而走动会严重扭曲系统性能。

      这可以解释为,非目标用户会产生强烈的非随机反射路径,而我们在第3节中的模型并未考虑这一点。然而,当另一名用户挥手距离超过3米或走动距离超过4米时,引入的非随机干扰信号较弱,系统性能不会受到影响。

 1.4.6 不同视距(LoS)长度的影响

         收发器的默认视距长度设置为120厘米。我们评估了Tx(发射器)和Rx(接收器)之间不同视距长度(80厘米、120厘米、160厘米和200厘米)的影响。要求用户在每个设置下执行手势50次。图33显示了实验结果。值得注意的是,在200厘米的长度下,性能略有下降,因为信号在更长的传播路径上会经历更多的衰减。

 5.4.7 不同采样率的影响。

         DPSense-WiGesture中CSI(信道状态信息)的默认采样率设置为400 Hz。然而,实际上我们的方法可以在较低的采样率下运行。具体来说,我们分别用50Hz、100Hz、200Hz和400Hz这四种不同的采样率对系统进行了评估。如图34所示,一般来说,系统的性能会随着采样率的提高而提高。然而,当采样率为50Hz时,识别准确率会下降到58%,因为较低的采样率可能无法捕捉到手部运动的所有细节


二  讨论

     

2.1 多目标手势感知


      多目标感知因其对WiFi信号带宽要求极高而被认为是极具挑战性的任务。我们的方法是基于手势存在一个主要反射路径的假设构建的。因此,目前我们的方法仅适用于处理单只手在空中移动的手势。对于多目标手势感知的进一步研究,仍是未来研究的重要课题。

2.2 在严重环境噪声中感知手势


       尽管我们提出的框架能够有效减轻环境噪声对信道状态信息(CSI)测量的影响,但它并不能保证在任何环境下都能表现出色。如果手势的反射信号非常微弱,且电磁环境对CSI信号引入了严重的环境噪声,那么噪声将淹没手部运动的动态分量,并在所有位置和方向上主导CSI。在这种情况下,WiFi信号将不具备在此场景下感知手势的能力,而我们的方法也只能在性能上实现有限的提升。


 三  结论

     在这项工作中,我们构建了一个真正无处不在且位置无关的手势识别系统,该系统具有高准确性和识别鲁棒性。我们首先揭示了手势内部不同感知质量的现象,这些现象将影响感知的鲁棒性。我们推导出一个模型来解释这一现象并描述感知质量。基于该模型,我们开发了一个独特的度量标准,能够准确量化手势信号的质量。我们进一步提出了一个以质量为导向的信号处理框架,该框架能够最大化手势内部高质量信号段的贡献,同时最小化低质量信号段对最终识别准确性的影响。广泛的实验结果表明,与最先进的解决方案相比,我们的系统在准确性方面有了显著提高。


四  附录 

A.1 手势信号与环境噪声相对关系的统计分析

       在本节中,我们推导了动态相位(即图35中所示的θ)的分布,并分析了在第3.3节中方程3定义的感知质量的统计特性。这些特性能够严格解释第3节中手势位置和方向的影响,并作为所提出指标(即第4.2节中的EDP-index)的基础。

如方程3中先前所述,感知质量可以通过手势信号与环境噪声之间的相对关系来表征,该关系表示为η(t) .根据第3节中的模型,环境噪声是时间样本空间上的随机变量,因此η(t)在每个时间样本上也是随机变量。以下我们关注于某一特定的时间样本,因此为简化起见,将η(t)表示为η,其他变量也采用类似的简写方式。

在第3节的假设下,环境噪声是一个遵循零均值、各向同性双变量正态分布的随机向量,并在图35中标记为E。G和D分别是CSI(信道状态信息)中的手势信号和动态相位分量。θ是D的相位,p(θ)是D所遵循分布的角边缘化。p(θ)具有如下方程的闭式表达式[A Toolbox for the Radial and Angular Marginalization of Bivariate Normal Distributions]:

其中:

  1.       r=\frac{d}{\sigma}
  2.       d 和 φ 分别是 G 的幅度和相位
  3.      Φ(·) 表示标准正态分布的累积分布函数
  4.       \sigma  噪声方差
  5.      我们引入 α = θ − φ,它对应于环境噪声对 θ 的贡献。

α 的分布如下 

 

由于 α = θ − φ,Δα = Δθ − Δφ,因此 η 可以表示为

其中\alpha_{t+1}\alpha_{t} 是在两个连续时间样本中对应的 α 值。因此。我们合理地假设在采样间隔内,环境噪声的方差(σ)和手势信号的幅度(d)保持不变,因此

然后,使用以下积分来计算p(a_{t+1}-a_{t})的值:

尽管 p(a_{t+1}-a_t) 没有闭合形式的表达式,但由于 p(α) 的解如方程 8 中所示存在,我们可以通过数值积分来获得p(a_{t+1}-a_t)p(a_{t+1}-a_t)的数值积分结果如图 36 所示。

在图 36 中,\bigtriangleup \alpha = a_{t+1} - a_t 的取值区间被设定为 [-π, π].

  其理由如下:

        在信号处理阶段,为了校正 θ 的连续性,会对 θ 进行相位展开。相位展开确保了  Δθ ∈ [-π, π],进而 Δα ∈ [-π - Δφ, π - Δφ]。考虑到我们系统中使用的采样率为 400Hz,且典型的手势速度不超过 1m/s,()因此手势信号的相位变化满足 Δφ < 0.3 ≪ 2π。因此,在实际处理中,可以近似认为 Δα ∈ [-π, π]。

基于 p(Δα) 在 [-π, π] 上的数值积分结果,我们分析得出 Δα 和 η 的一些简洁性质。具体来说,p(Δα) 在对称区间 [-π, π] 上关于 Δα = 0 对称,这表明 Δα 的期望值为 0,即

相应地,E(Δθ) = Δφ 且 E(η) = 0。此外,p(Δα) 在 [-π, π] 上是一个单峰函数,且 p(Δα) 的形状仅由 γ = d/σ 决定。

    如图 35 所示,如果 γ 较大,则 Δα 的分布将更加集中,且环境噪声引起的偏差预计会更小。在 p(Δα) 中,集中程度实际上与其方差等价。

      因此,Δα 的方差仅由 γ 决定。如果 γ 较大,则 Δα 的方差较小。Δα 的方差可以定义为 D(Δα) = f(γ),其中 f(·) 是一个单调递减函数。由于 p(η = Δα/Δφ) = p(Δα),p(η) 具有与 p(Δα) 相似的性质。η 的方差对应于手势信号和环境噪声对动态相位变化贡献的预期比例,且 D(η) = D(Δα)/(Δφ)^2。因此,手势信号与环境噪声之间的相对关系由以下方程表示:

其中,γ = d/σ,f(γ) 随 γ 的增加而单调递减,Δφ 是手势信号的相位变化。当 D(η) 较大时,相对于手势信号,环境噪声的贡献预计会更大,这表明传感质量较低。

第 4.2 节利用 D(η) 来开发 EDP 指数。

           显然,较大的 Δφ 会导致较小的 D(η),这表明传感质量较高。d 是手势信号的幅度,它随着手与收发器之间距离的增加而单调递减。因此,如果手离收发器更远,D(η) 会更大,这表明传感质量较低。这些结论与我们在第 3.3 节中的分析完全吻合。

A.2 Validation of the Impact of Location and Orientation on Sensing Quality

           在本节中,我们进行了一项实证实验,以验证第3.3节中提到的位置和方向对传感质量的影响。实验在一个多径丰富的环境(一个有家具的大厅)中进行。具体来说,如图37所示,我们部署了一条可编程的滑动轨道,上面放置了一个金属圆柱作为反射器。我们通过移动圆柱到不同的距离和方向来评估传感质量。

为了验证不同方向的影响,我们设置滑动轨道以不同的方向移动固定的距离和速度,如图37所示。滑动轨道放置在距离收发器1.5米的位置。由于方向的不同,目标的动态相位变化Δφ也会有所不同。我们在每个方向上进行了600次实验。我们提取了600个样本的Δθ,以计算动态相位上的相对误差η = (Δθ - Δφ) / Δφ,该误差指示了传感质量。如附录A.1所述,η的方差越大,传感质量越低。图38显示了η的方差。如果方向的角度较大,我们可以观察到其η的方差也较小,这表明环境噪声在动态相位变化上引入的相对误差较小。因此,我们可以得出结论,环境噪声的影响取决于运动方向(因此也取决于目标方向)。

为了验证不同位置的影响,我们将滑动轨道放置在距离收发器4.5米的位置,但保持了与上述实验相同的四个不同方向。为此,由于信号衰减,与金属圆柱反射路径相关的动态分量D的信号强度将较小。我们在每个方向上进行了600次实验。我们计算了相对误差η的方差,并将其绘制在图38中。结果表明,如果用户在更远的位置进行手势(因此|D|会较小),则环境噪声将相对较大。

我们还通过用盒子替换圆柱来改变从目标反射的多径信号,以验证其对传感质量的影响,并进行了第二轮数据收集。图38中的结果表明,圆柱和盒子的结果非常相似,我们的结论对于来自反射物体的不同多径信号仍然有效

A.3 A Toolbox for the Radial and Angular Marginalization of Bivariate Normal Distributions

《A Toolbox for the Radial and Angular Marginalization of Bivariate Normal Distributions》是一篇关于双变量正态分布(二维高斯分布)的径向和角向边缘化的研究报告。以下是对该文章及其算法的简单介绍:

一、文章概述

该文章由Emily A. Cooper和Hany Farid共同撰写,发表于2023年。文章主要关注双变量正态分布(bivariate normal distributions)的径向和角向边缘化(polar marginalization),即相对于坐标系原点的极坐标变换下的边缘化。这种边缘化在许多领域,如电信、气象学、弹道学和计算神经科学中都有广泛应用。

二、算法介绍

  1. 背景

    • 双变量正态分布常用于描述一对随机变量的联合概率密度。
    • 在实际应用中,经常需要相对于坐标系的原点对联合概率分布进行径向和角向的边缘化。
    • 对于零均值、各向同性(isotropic)的分布,这种边缘化是简单的;但对于非零均值、各向异性(anisotropic)且协方差矩阵非对角的情况,则变得复杂。
  2. 算法目标

    • 提供一种方法,用于计算双变量正态分布在极坐标下的径向和角向边缘化。
    • 这种方法应适用于各种情况,包括非零均值、各向异性和协方差矩阵非对角的分布。
  3. 算法实现

    • 文章提出了一种解析解的方法,用于计算极坐标下的边缘化。
    • 为了实现这一方法,作者开发了RAMBiNo Toolbox(Radial and Angular Marginalization of Bivariate Normals),这是一个Matlab和R的工具箱,提供了闭式和数值实现。
    • RAMBiNo Toolbox允许用户高效地计算双变量正态分布的径向和角向边缘化。
  4. 算法应用

    • RAMBiNo Toolbox可用于各种领域,如信号处理、图像处理、统计分析等,其中需要处理双变量正态分布并进行极坐标变换下的边缘化。
    • 通过使用该工具箱,研究人员可以更方便地分析和处理相关数据,提高研究的效率和准确性。

三、结论

   《A Toolbox for the Radial and Angular Marginalization of Bivariate Normal Distributions》一文提出了一种新的方法来计算双变量正态分布在极坐标下的径向和角向边缘化,并开发了相应的Matlab和R工具箱RAMBiNo。这一方法和工具箱为处理双变量正态分布提供了有力的工具,具有广泛的应用前景。

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

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

相关文章

AI编程入门指南002:API、数据库和应用部署

进阶概念教程&#xff1a;API、数据库和应用部署 在学习了编程的基础概念后&#xff0c;我们将进入更高级的内容。本文将详细介绍API、数据库和应用部署三个进阶概念&#xff0c;并通过丰富的示例和形象的说明帮助你更好地理解这些内容。 1. API&#xff08;应用程序接口&#…

Docker3:docker基础1

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

《Django 5 By Example》阅读笔记:p645-p650

《Django 5 By Example》学习第8天&#xff0c;p645-p650总结&#xff0c;总计6页。 一、技术总结 1.django-rest-framework (1)serializer p648, Serializer: Provides serialization for normal Python class instances。Serializer又细分为Serializer, ModelSerializer,…

【机器学习】回归模型(线性回归+逻辑回归)原理详解

线性回归 Linear Regression 1 概述 线性回归类似高中的线性规划题目。线性回归要做的是就是找到一个数学公式能相对较完美地把所有自变量组合&#xff08;加减乘除&#xff09;起来&#xff0c;得到的结果和目标接近。 线性回归分为一元线性回归和多元线性回归。 2 一元线…

【大模型推理】vLLM 源码学习

强烈推荐 https://zhuanlan.zhihu.com/p/680153425 sequnceGroup 存储了相同的prompt对应的不同的sequence, 所以用字典存储 同一个Sequence可能占据多个逻辑Block&#xff0c; 所以在Sequence 中用列表存储 同一个block 要维护tokens_id 列表, 需要添加操作。 还需要判断blo…

FIFO和LRU算法实现操作系统中主存管理

FIFO&#xff0c;用数组实现 1和2都是使用nextReplace实现新页面位置的更新 1、不精确时间&#xff1a;用ctime输出运行时间都是0.00秒 #include <iostream> #include <iomanip> #include<ctime>//用于计算时间 using namespace std;// 页访问顺序 int pa…

【Ubuntu24.04】VirtualBox安装ubuntu-live-server24.04

目录 0 背景1 下载镜像2 安装虚拟机3 安装UbuntuServer24.044 配置基本环境5 总结0 背景 有了远程连接工具之后,似乎作为服务器的Ubuntu24.04桌面版有点备受冷落了,桌面版的Ubuntu24.04的优势是图形化桌面,是作为一个日常工作的系统来用的,就像Windows,如果要作为服务器来…

《SpringBoot、Vue 组装exe与套壳保姆级教学》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

Flowable第一篇、快速上手(Flowable安装、配置、集成)

目录 Flowable 概述Flowable的安装与配置 2.1. FlowableUI安装 2.2. Flowable BPMN插件下载 2.3 集成Spring Boot流程审核操作 3.3 简单流程部署 3.4 启动流程实例 3.5 流程审批 一、Flowable 概述 Flowable是一个轻量级、高效可扩展的工作流和业务流程管理&#xff08;BPM&…

Docker搭建有UI的私有镜像仓库

Docker搭建有UI的私有镜像仓库 一、使用这个docker-compose.yml文件&#xff1a; version: 3services:registry-ui:image: joxit/docker-registry-ui:2.5.7-debianrestart: alwaysports:- 81:80environment:- SINGLE_REGISTRYtrue- REGISTRY_TITLEAtt Docker Registry UI- DE…

容器安全检测和渗透测试工具

《Java代码审计》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484219&idx1&sn73564e316a4c9794019f15dd6b3ba9f6&chksmc0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene21#wechat_redirect Docker-bench-…

Day10_CSS过度动画

Day10_CSS过度动画 背景 : PC和APP项目我们已经开发完毕, 但是再真正开发的时候有些有些简易的动态效果我们可以使用CSS完成 ; 本节课我们来使用CSS完成基础的动画效果 今日学习目标 CSS3过度CSS3平面动态效果CSS3动画效果案例 1. CSS3过渡 ​ 含义 :过渡指的是元素从一种…

iOS应用网络安全之HTTPS

移动互联网开发中iOS应用的网络安全问题往往被大部分开发者忽略, iOS9和OS X 10.11开始Apple也默认提高了安全配置和要求. 本文以iOS平台App开发中对后台数据接口的安全通信进行解析和加固方法的分析. 1. HTTPS/SSL的基本原理 安全套接字层 (Secure Socket Layer, SSL) 是用来…

excel版数独游戏(已完成)

前段时间一个朋友帮那小孩解数独游戏&#xff0c;让我帮解&#xff0c;我看他用电子表格做&#xff0c;只能显示&#xff0c;不能显示重复&#xff0c;也没有协助解题功能&#xff0c;于是我说帮你做个电子表格版的“解题助手”吧&#xff0c;不能直接解题&#xff0c;但该有的…

金融数据中心容灾“大咖说” | 美创科技赋能“灾备一体化”建设

中国人民银行发布的《金融数据中心容灾建设指引》&#xff08;JR/T 0264—2024&#xff09;已于2024年7月29日正式实施。这一金融行业标准对金融数据中心容灾建设中的“组织保障、需求分析、体系规划、建设要求、运维管理”进行了规范和指导。面对不断增加的各类网络、业务、应…

Qt:信号槽

一. 信号槽概念 信号槽 是 Qt 框架中一种用于对象间通信的机制 。它通过让一个对象发出信号&#xff0c;另一个对象连接到这个信号的槽上来实现通信。信号槽机制是 Qt 的核心特性之一&#xff0c;提供了一种灵活且类型安全的方式来处理事件和数据传递。 1. 信号的本质 QT中&a…

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域&#xff0c;NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB&#xff0c;作为一款领先的NoSQL数据库&#xff0c;以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

大数据调度组件之Apache DolphinScheduler

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用。 主要特性 易于部署&#xff0c;提供四种部署方式&#xff0c;包括Standalone、Cluster、Docker和…

ThinkPHP6门面(Facade)

门面 门面&#xff08;Facade&#xff09; 门面为容器中的&#xff08;动态&#xff09;类提供了一个静态调用接口&#xff0c;相比于传统的静态方法调用&#xff0c; 带来了更好的可测试性和扩展性&#xff0c;你可以为任何的非静态类库定义一个facade类。 系统已经为大部分…

MySQL win安装 和 pymysql使用示例

目录 一、MySQL安装 下载压缩包&#xff1a; 编写配置文件&#xff1a; 配置环境变量&#xff1a; 初始化服务和账户 关闭mysql开机自启&#xff08;可选&#xff09; 建议找一个数据库可视化软件 二、使用pymysql操作数据库 安装pymysql 示例代码 报错处理 一、My…