当前位置: 首页 > news >正文

论文阅读】 ICCV-2021-3D Local Convolutional Neural Networks for Gait Recognition

motivation :现有方法方法无法准确定位身体部位,不同的身体部位可以出现在同一个条纹(如手臂和躯干),一个部分可以出现在不同帧(如手)的不同条纹上。其次,不同的身体部位具有不同的尺度,即使是不同帧中的同一部分也可以出现在不同的位置和尺度上。第三,不同的部分也表现出不同的运动模式

核心思想:

意义作用与优势:可以作为作为 3D 步态识别主干的通用家族构建块,在实践中,现有 3D 主干 CNN 的任何构建块都可以被视为全局路径,并且所提出的局部路径可以很容易地插入到这些块中,而不会改变训练方案。此外,局部操作中每个组件的架构对于不同的配置非常灵活。

代码 

https://github。com/Huangtownhz/3DLocalCNN

摘要

步态识别的目标是从人体形状的时间变化特征中学习独特的时空模式。由于不同的身体部位在行走过程中表现不同,因此分别对每个部分的时空模式进行建模是直观的。然而,现有的基于部分的方法将每一帧的特征图平均划分为固定的水平条纹stripes(HP操作),得到局部部分。很明显,这些基于条纹分区的方法无法准确定位身体部位。首先,不同的身体部位可以出现在同一个条纹(如手臂和躯干),一个部分可以出现在不同帧(如手)的不同条纹上。其次,不同的身体部位具有不同的尺度,即使是不同帧中的同一部分也可以出现在不同的位置和尺度上。第三,不同的部分也表现出不同的运动模式(例如,运动开始的帧、位置变化频率、持续时间)。为了克服这些问题,我们提出了一种新的 3D 局部操作作为 3D 步态识别主干的通用家族构建块。所提出的 3D 局部操作支持在具有自适应空间和时间尺度、位置和长度的序列中提取身体部位的局部 3D 体积。通过这种方式,身体部位的时空模式是从特定部分尺度、位置、频率和长度的 3D 局部邻域中很好地学习的。实验表明,我们的 3D 局部卷积神经网络在流行的步态数据集上实现了最先进的性能。、

1. Introduction

Gait是最重要和有效的生物特征模式之一,因为它可以在一定距离的距离上进行身份验证而无需受试者配合,步态识别在预防犯罪、法医鉴定和社会安全保险方面有着广泛的应用[2,14]。在现实世界的场景中,除了行走运动引起的体型变化外,携带袋、外衣和相机视点切换等变化也会导致身体外观的巨大变化,导致步态识别面临重大挑战。步态识别的基本目标是从人体形状的时间变化特征中学习独特且不变的表示。步态识别的早期工作集中于使用卷积神经网络(CNNs)提取全局特征[35,20,29,19]。GaitNet[41,40]提出了一种自动编码器框架,从原始RGB图像中提取步态相关特征,然后使用LSTMs对步态序列的时间变化进行建模。Thomas等人[33]直接应用3DCNN使用在自然图像分类任务上预训练的模型提取顺序信息。然而,全局特征没有考虑空间结构和局部细节,因此,在面对视点变化时没有足够的辨别力。一个自然的选择是学习与全局特征互补的详细的基于部分的局部特征,或者学习两者的特征嵌入。

由于人体由定义明确的部位组成,即头部、手臂、腿和躯干,因此基于部位的模型有可能解决步态识别中的变化。以前的基于零件的模型通过将特征映射均匀地划分为固定的水平条纹来提取零件特征。在GaitPart[7]中,首先对每个输入帧的输出CNN特征图进行预定义的水平分割,提取二维外观特征。然后,通过局部近程二维部分特征的时序拼接,聚合所有帧中同一条纹对应的特征;在GaitSet[3]和GLN[11]中,首先将最后一个二维卷积的帧级特征映射分割成均匀的条纹,然后沿集合维数对其进行max-pooling提取集合级部分特征。在MT3D[18]中,使用多个时间尺度的3D cnn来探索序列中的时间关系。然后,将输出的特征映射也划分为多个条纹。然而,这些基于分割的步态识别方法忽略了两个问题。首先,人体的不同部位出现在不同的尺度上,甚至同一部位在不同的帧中出现在不同的位置和尺度上[3]。其次,不同的部分表现出不同的运动模式,例如,运动从哪一帧开始,位置变化的频率,以及持续的时间。因此,在步态周期中,视觉外观和时间运动变化是相互依赖的,并且人体不同自然部位的特征是彼此不同的。这表明步态识别模型应该支持对人体各个特定部位的自适应三维局部体积的提取和处理

为了克服上述步态识别问题,我们提出了一种新的 3D 局部操作作为 3D 步态识别主干的通用构建块家族。我们的 3D 局部操作支持在具有自适应空间和时间尺度、位置和长度的序列中提取局部 3D 体积。这样,不同身体部位的三维局部邻域在特定的部位尺度、位置和运动位置、频率、长度进行处理,如图1所示。二维局部操作已被证明在图像识别中是有效的[10,36],Local Convolutional Neural Networks for Person Re-Identification其中利用可微二维注意机制生成平滑变化位置和尺度的二维图像/特征块。然而,由于时间注视[21]的机制不同,将这一思想应用于3D局部操作是非常具有挑战性的。原因有两个。1)像素的空间采样遵循人眼的焦点,而帧的时间采样在光流分布。2)空间采样处理二维patch,时间采样处理一维序列,时空采样处理3D视频卷积。因此,需要一种新的 2D 和 1D 联合采样策略。

  我们的本地操作由四个模块组成:定位、采样、特征提取和融合

定位模块旨在学习六个身体部位(头部、躯干、左臂、右臂、左腿和右腿)的自适应空间和时间尺度、位置和时间长度

采样模块对平滑变化的位置、尺度和时间长度的局部体积进行采样

特征提取模块由几个卷积和 ReLU [22] 层组成,就像在一般卷积块中一样。

融合模块形成全局和局部输出的连接层,然后是1×1卷积层。

在实践中,现有 3D 主干 CNN 的任何构建块都可以被视为全局路径,并且所提出的局部路径可以很容易地插入到这些块中,而不会改变训练方案。此外,局部操作中每个组件的架构对于不同的配置非常灵活。

这项工作的主要贡献总结如下:

• 与 C3D [30]、P3D [24] 和非本地网络 [31] 相比,我们为主干 3D CNN 设计了一个新的构建块,它结合了特定于部分的顺序信息,称为 3D 局部卷积神经网络。

• 我们实现了一种简单而有效的 3D 局部 CNN 形式用于步态识别。该模型在CASIA-B和OU-MVLP两个最流行的数据集CASIA-B和OU-MVLP上优于最先进的步态识别方法。

•据我们所知,我们是第一个提出一个框架,该框架能够在3D cnn的任何层中交互/增强全局和局部3D体积信息。

2. Related Works

Local-based模型

基于部分的模型已在许多视觉任务中得到利用。在细粒度图像分类中,许多作品 [37, 26, 5, 42, 8, 32] 自动定位信息区域以捕获微妙的判别细节,使从属类彼此不同。Sun等人[26]利用多通道注意来学习几个相关区域。Wang等人[32]使用一组卷积滤波器来捕获特征图中的判别区域。Zheng等人[42]提出了三线性注意采样网络,从不同细节学习特征。在Person Reid中,Li等人。[15]将第一卷积层的输出特征映射水平平均划分为m个局部区域,并分别学习局部/全局。程等人。 [6] 将低级特征图水平分为四个相等的部分,并在最后一个全连接层之前将它们与全局流连接。Yang等人[36]提出了一组操作来定位静态图像中人体的关键位置。所有这些以前的基于局部的模型都旨在提取静态图像中空间局部区域的模式。对于步态识别,很自然地将这种见解扩展到步态序列的时空维度,并在提取特定时间间隔内特定人体部位的时空运动模式。

骨干cnn。通常使用的主干 CNN [13, 30, 24, 31] 表明,从局部邻域中提取局部特征有助于提高视觉模型。如图1所示,C2D[13]和C3D[30]捕获局部邻域内的短程依赖关系。它们的局部邻域是一个固定的2D补丁(k × k)或3D体积(k × k × k)。P3D[24]在空间域上将3 × 3 × 3卷积分割成1×3×3卷积滤波器,在时域上分割3×1×1卷积。在非局部神经网络[31]中,其中整个输入可以看作是一个固定的全局邻域。我们的3D局部CNN针对不同的局部路径定位一个自适应的3D局部体积,而不是固定的局部邻域。

3. Method

三维局部卷积可以看作是神经网络中一般卷积运算的一种特殊形式。

考虑一个三维输入x∈R H×W ×T,对应输出y的卷积块,其三维局部卷积定义为:

 这个公式和non_local 神经网络类似 只是j 的取值范围不同

这里i是要计算响应的输出位置(在RH×W ×T中)的索引,j是x附近一个可能位置Ω(x)的索引。f 是计算xi和xj之间的相关系数。g计算输入信号在位置j的表示形式。响应通过因子C归一化。

神经网络中不同形式的卷积运算在于邻域Ω ( x )的定义。如图 1 所示,2D 卷积和 3D 卷积聚合来自固定局部邻域切片或体积的特征在非局部神经网络中,邻域被定义为所有的特征图。与这些操作不同的是,3D 局部卷积将邻域定义为具有自适应空间和时间尺度、位置和时间长度的 3D 局部体积

论文分享[cvpr2018]Non-local Neural Networks非局部神经网络-CSDN博客其中V为特定局部部件的自适应3D局部体积。我们的3D局部卷积操作的基本目标是从给定的输入x中采样自适应3D体积V,并从这些体积中提取相应的局部特征。论文分享[cvpr2018]Non-local Neural Networks非局部神经网络-CSDN博客

3.2. 实例化

如图2展示了3D Local cnn中的构建块实例。

该块由一个全局路径(与其他3D骨干构建块一样)和几个局部路径组成。我们的局部操作有四个组成部分:定位模块(L)、采样模块(S)、特征提取模块(FE)和融合模块(FS)。定位模块根据全局特征生成对应局部部件的局部体的位置/尺度。然后,采样模块对给定位置/尺度的特定局部3D体进行采样。特征提取模块用于从采样的局部体中提取特征。特征融合模块用于合成生成的全局特征和局部特征

图 2.3D局部CNN的构建块。有四个组成部分:定位模块、采样模块、特征提取模块和融合模块。定位模块旨在定位每个身体部位的位置。采样模块被公式化为应用于输入的特定滤波器(高斯或三线性或混合)。特征提取模块由几个卷积层和ReLU层组成。融合模块由全局和局部输出的级联层形成,后跟1 × 1 × 1 卷积层。为简单起见,这里仅说明三个局部路径(头部、左手和右腿)

 3.2.1定位

可微分注意机制的启发,我们通过七个独立参数(∆x,∆y,∆t, δx, δy, δt, σ2, γ)来指定我们的定位模块。它们是为每一帧动态确定的。(∆x,∆y)为采样网格中心到每帧对应部分的预定义中心的实值高度和宽度偏移量,∆t为整个序列的帧偏移量。(δx, δy)为采样网格的实值空间步幅,δt为时间步幅。σ2为高斯滤波器的各向同性方差。δ和σ2的组合控制了局部的“变焦”。γ作为与滤波器响应相乘的置信度分数。理想情况下,γ表示聚焦部分的存在,即当面对遮挡时,它应该接近于0。给定H ×W ×T输出全局路径的特征映射,我们利用卷积块,ReLU,批处理归一化,最大池化和全连接层来推断以下参数:

其中G为全局模块,I为输入模块,L为局部模块,σ(γ) = 11 +exp(−γ)。(∆x,∆y,∆t)归一化并缩放为(- 1,1),以确保网格中心在采样输入内。方差和步幅以对数尺度发出,以确保正性。置信度分数γ被缩放到(0,1)。我们的定位模块的架构在补充细节的表1中详细说明。在输入和每个卷积层后采用批处理归一化和ReLU非线性。值得注意的是,为了确保全局路径只关注表示,该模块的梯度不会传播到全局路径。

3.2.2采样

为了从给定的输入中采样局部三维体积,我们考虑一个明确的三维形式的注意力。一组3D滤波器应用于输入序列,产生一系列具有平滑变化位置和缩放的局部补丁。给定期望的局部输出大小M ×N ×L,根据网格中心的坐标和相邻滤波器之间的步距,对输入应用采样滤波器的M ×N ×L网格。步幅越大,注意体积中可见的输入区域越大,但注意体积的有效分辨率越低。各向同性方差越大,输出的体积越平滑,但局部体积的细节越不清晰。根据定位模块提供的归一化先验体中心位置(cx, cy, ct)、体中心偏移量(∆x,∆y,∆t)和步长(δx, δy, δt)(均为实值),得到体在第i行,第j列,第k帧处的网格位置(μX, μY, μT)为:

空间滤波。受[36,10,9]中模仿人眼注视焦点的可微分注意技术[10]的启发,我们采用高斯滤波器进行空间滤波。对于高斯滤波器,采样网格的坐标也是滤波器的平均位置。给定定位模块输出的各向同性方差σ2,水平和垂直滤波器组权重矩阵GX和gy(维度分别为M × W和N × H)定义如下:

式中(i, j)为注意三维体中某点的空间索引,(p, q)为输入中某点的空间索引。ZX和ZY是保证∑p GX [i, p] = 1和∑k GY [j, k] = 1的归一化常数。

时间过滤。受cnn[12]和视频插值[21]中的可微运动层技术的启发,对体积进行时间采样的自然选择是三线插值。与高斯滤波器类似,这里我们将时间三线性插值函数表述为权重矩阵TT(维度L×T)。目标位置的插值值被计算为天花板和地板整数位置值的线性组合:

其中b·c是底函数,d·e是顶函数。k为注意三维体积中的帧索引,r为输入中的帧索引。最后,将整体混合采样操作表述为三个一维采样,其中结合了模拟人眼注视点的空间高斯滤波器[10]和假设连续帧之间的光流局部线性的时间线性滤波器。基于(GX, GY, TT)和定位模块提供的置信度分数γ,从输入I输出的3D局部体积V被采样为:

)有趣的是,我们将通过实验(表4)表明,我们的3D局部模型对采样滤波器的选择并不敏感。只有使用高斯滤波器或线性滤波器才能显示与上述组合滤波器相当的性能。这一结果表明,一般的局部行为是观察到的改进的主要原因。

3.2.3特征提取

如图2所示,特征提取模块用于提取局部路径的特征。所有类型的卷积块,如C3D[30], P3D[24]和MT3D[18],都是候选的。本文的特征提取模块目前的体现仅限于过滤器大小3×3×3的一个卷积层,然后是ReLU,并且这种设计更多地是基于方便而不是必要性。特征提取模块中更复杂的架构可能会带来更大的性能提升,但这不是本文的重点。该模块的输出特征映射的数量被设置为全局路径的一半。特征提取模块的输出和输入具有相同的高度、宽度和长度。3.2.4特征融合特征融合模块旨在通过综合给定的全局和局部输出来产生更鲁棒和有区别的表示。在本文中,特征融合模块形成了一个沿通道维度的全局和局部输出的拼接层,然后是一个带有ReLU的a1 × 1 × 1卷积层,基于局部和全局信息的综合对表示进行细化,并保证基数不变。像注意力这样更复杂的机制可能会带来更多的性能提升,但这不是本文的重点。将该模块的输出特征映射的数量设置为与全局路径相同

3.3.3D Local CNN for Gait Recognition

为了将我们的3D局部CNN块插入骨干CNN,我们需要基于先验知识定义以下设置:1)局部路径的数量,2)每条路径的采样网格中心的先验位置(cx, cy, ct),以及3)每条路径的局部采样输出的期望维数(M, N, L)。对于步态识别的特征学习,定义头部、左臂、右臂、躯干、左腿和右腿对应的6条局部路径是很自然的。(如图3所示)。根据[1]和常识,人体的头部、左臂、右臂、躯干、左腿、右腿的一般比例(身高、宽度、长度)(pH、pW、pL)汇总在附录的表3中

为了验证三维局部cnn的有效性,我们在骨干网络的每两层之后插入提出的局部操作。如[7,3,11]所示,骨干网由三个构建块组成。每个块由两个卷积层组成,然后是ReLU层。我们采用了来自GaitPart[7]的空间池化和时间池化,以及来自GLN[11]的紧凑块和线性模块。

实验结果

(ICCV-2021)用于步态识别的3D局部卷积神经网络(一)_3d卷积网络,用于ct分类-CSDN博客

相关文章:

论文阅读】 ICCV-2021-3D Local Convolutional Neural Networks for Gait Recognition

motivation :现有方法方法无法准确定位身体部位,不同的身体部位可以出现在同一个条纹(如手臂和躯干),一个部分可以出现在不同帧(如手)的不同条纹上。其次,不同的身体部位具有不同的尺度,即使是不同帧中的同一部分也可以出现在不同…...

同一局域网如何从Windows系统拷贝文件到银河麒麟系统

1. 先将Windows下的、被拷贝文件所在文件夹设置为共享目录:在文件夹上单击右键选择“属性”菜单,弹出如下对话框: 按数字顺序单击鼠标左键,弹出如下对话框: 并将权限开放为Everyone,单击“共享”按钮。 在…...

2024年华为OD机试真题-数的分解-(C++)-OD统一考试(C卷D卷)

题目描述: 给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述: 输入数据为一整数,范围为(1, 2^30] 输出描述: 比如输入为: 21 输出: 21=10+11 补…...

vue-img-cutter 图片裁剪详解

前言&#xff1a;vue-img-cutter 文档&#xff0c;本文档主要讲解插件在 vue3 中使用。 一&#xff1a;安装依赖 npm install vue-img-cutter # or yarn add vue-img-cutter # or pnpm add vue-img-cutter 二&#xff1a;构建 components/ImgCutter.vue 组件 <script se…...

PCL 点云中的平面点云提取

平面点云提取 一. 索引提取1.1 算法概念1.2 算法流程1.3 主要函数二.代码示例三.结果示例一. 索引提取 1.1 算法概念 平面点云提取:是指从点云数据中提取出属于平面的点的过程。 1.2 算法流程 使用pcl::SACSegmentation类进行点云分割的基本步骤如下: 创建一个pcl::SACSegm…...

4.用python爬取保存在text中的格式为m3u8的视频

文章目录 一、爬取过程详解1.寻找视频的m3u8链接2.从网页源码中寻找视频的m3u8链接的第二部分内容3.从视频的m3u8链接获取视频 二、完整的代码 一、爬取过程详解 1.寻找视频的m3u8链接 这个文档承接了爬虫专栏的 第一节.python爬虫爬取视频网站的视频可下载的源url&#xff0…...

240503-关于Unity的二三事

240503-关于Unity的二三事 1 常用快捷键 快捷键描述CtrlP播放/停止Ctrl1打开Scene窗口Ctrl2打开Game窗口Ctrl3打开Inspect窗口Ctrl4打开Hierarchy窗口Ctrl5打开Project窗口Ctrl6打开Animation窗口 2 关联VisualStudio2022 3 节约时间&#xff1a;将最新声明的参数移动到最上…...

顺序栈的操作

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;既然选择了远方&#xff0c;当不负青春…...

STM32 各外设GPIO配置

高级定时器TIM1/TIM8 通用定时器TIM2/3/4/5 USART SPI I2S I2C接口 BxCAN SDIO ADC/DAC 其它I/O功能...

React-hooks相关知识点总结

前言 随着函数式组件的不断流行&#xff0c;React从类式组件走上了函数式组件的时代&#xff0c;那么在新的React函数式编程中&#xff0c;hooks也成为了这个时期最广泛使用的一种方式。现在让我们总结下react hooks吧。 Hooks 是什么 react-hooks是react16.8以后&#xff0c…...

20240508日记

今天工作内容&#xff1a; 1.二号机S3点位焊接测试&#xff0c;调整位置精度。 2.一号机送针位置调整 3.自定义焊接功能测试 4.EAP服务启动测试 明日计划&#xff1a; 1.EAP流程修改功能开发 1.1 Read Barcode Complete 事件&#xff0c;上传料盘码和设备ID&#xff0c;等EA…...

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 &#xff08;1&#xff09;进入环境后看到一篇php代码&#xff0c;开始我简单的以为是一题常规的php伪协议&#xff0c;多次试错后发现它并没有那么简单&#xff0c;它包含了基础的文件包含&#xff0c;伪协议还有反序列化 &#xff08;2&#x…...

JavaSE——方法详解

1. 方法的概念 方法就是一个代码片段 . 类似于 C 语言中的 " 函数 " 。 方法存在的意义 : 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可以在多个位置使用. 3. 让代码更好理解更简单. 4. 直接调用现有方法开发, 不…...

iBarcoder for Mac:一站式条形码生成软件

在数字化时代&#xff0c;条形码的应用越来越广泛。iBarcoder for Mac作为一款专业的条形码生成软件&#xff0c;为用户提供了一站式的解决方案。无论是零售、出版还是物流等行业&#xff0c;iBarcoder都能轻松应对&#xff0c;助力用户实现高效管理。 iBarcoder for Mac v3.14…...

学习R语言第六天

文章目录 绘制图形的方式计算字符的数量的方式提取字符变量的方式根据名称查询前缀的方式转化大小写的方式大写小写的获取数据长度的方式生成一个序列的方式从1开始到10&#xff0c;每次增加2从1到3 重复2次将函数到数据框中的方式生成数据rnorm 生成30行数据,nrow是6列数据计算…...

LeetCode算法题:9. 回文数(Java解法)

给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&#xff0c…...

VALSE 2024 Workshop报告分享┆面向实际场景体验的多模态大模型DeepSeek VL

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…...

RFC 791 (1)-导论

目录 浅论 IP是啥 IP可以管啥 操作 范例查看 提示&#xff1a;本系列将会开始RFC文档阅读&#xff0c;这里会给出我的一些笔记 浅论 我们这篇RFC文档描述的是IP和ICMP协议&#xff0c;我们都知道&#xff0c;在传统的OSI七层或者是现在被简化的五层&#xff1a;应用层&…...

力扣hot100:199. 二叉树的右视图/437. 路径总和 III(dfs/回溯/树上前缀和/哈希表)

文章目录 一、LeetCode&#xff1a;199. 二叉树的右视图二、LeetCode&#xff1a;437. 路径总和 III 一、LeetCode&#xff1a;199. 二叉树的右视图 LeetCode&#xff1a;199. 二叉树的右视图 差点因为是个中等题打退堂鼓。其实比较简单。 右视图实际上只需要找到&#xff0c…...

浅谈 HTTPS

文章目录 HTTPS 简介HTTPS 特点HTTPS 缺点与 HTTP 的区别HTTPS 工作流程1. 服务端生成密钥对2. 服务端申请数字证书3. 服务端发送数字证书4. 客户端验证数字证书5. 客户端解析证书内容6. 客户端传送加密信息7. 服务端解密信息8. 双方协商生成会话密钥并交换9. 使用会话密钥进行…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...