Python基于滑动窗口CNN损伤梁桥数据、故宫城墙图像数据分类可视化|数据分享

全文链接:https://tecdat.cn/?p=38442

分析师:Yufei Guo

在现代土木结构工程领域,结构损伤的准确识别与定位对于保障基础设施的安全性和耐久性具有极为关键的意义。传统的人工检查方法,如目视检查以及借助专业设备进行检测,在很长一段时间内占据着主导地位,成为识别和评估砖石历史建筑等土木结构表面损伤的常用手段点击文末“阅读原文”获取完整代码数据)。

然而,这种传统方式存在着诸多局限性。其成本高昂,需要投入大量的人力、物力和时间资源。在面对一些偏远地区的结构或部件时,由于地理条件限制、交通不便等因素,人工检查往往难以有效实施,导致这些区域的结构健康状况无法及时、准确地被掌握。

随着科技的飞速发展,深度学习技术在图像识别、目标检测等领域取得了令人瞩目的成就,为土木结构损伤检测带来了新的契机。卷积神经网络(CNN)作为深度学习中的重要分支,已在众多领域展现出强大的特征提取和模式识别能力。但现有的基于 CNN 的损伤检测方法大多并非专门针对砖石历史建筑的多种损伤识别而设计,难以满足这类特殊结构的检测需求。

针对我国连续梁桥数量众多且分布广泛,以及现场测试信号容易受到各种干扰的现状,本研究提出了一种创新的方法。通过一个或几个加速度传感器监测信号,依据车桥耦合理论,并借助正弦函数型呼吸裂缝模型来模拟连续梁桥的损伤情况。在此基础上,采用 Tsfresh 特征提取方法与 1D - CNN 模型相结合的方式,有效提升模型的特征提取能力,进而提高 CNN 的计算效率,实现对桥梁损伤的精准识别。

同时,在土木结构损伤检测领域的另一个重要研究方向 —— 砖石历史建筑损伤检测方面,本项目利用卷积神经网络(基于 LeNet - 5、AlexNet - 8、ZFNet - 8 和 GoogLeNet (inception v1) - 22)开发了一种专门的损伤识别与定位技术。通过基于区域的卷积神经网络(Faster - RCNN)应用于实时损伤检测,并采用基于滑动窗口的 CNN 方法,能够对完好、裂缝、泛碱和剥落等四类损伤进行准确的识别与定位,准确率高达 94.3%。本研究的数据仅来自中国故宫城墙图像查看文末了解数据免费获取方式的训练和测试,通过对不同数据集和网络架构的深入研究与实验,为基础设施工程中的人工智能应用提供了有价值的见解和实践经验,有望推动整个土木结构损伤检测技术朝着更加高效、精准和智能化的方向发展。

 Tsfresh-CNN损伤梁桥数据分类

针对我国连续梁桥量大面广及现场测试信号易受干扰等问题,根据一个或几个加速度传感器监测信号,基于车桥耦合理论和正弦函数型呼吸裂缝模型模拟连续梁桥的损伤,通过对监测信号的特征提取以达到减少数据维数,降低数据噪声的效果,进而采用卷积神经网络实现桥梁损伤识别。

数据源准备

为准确考虑车辆上桥对桥梁的振动影响,引入车桥耦合振动模型,将车辆简化为1/4车模型与桥梁进行车桥耦,通过正弦函数呼吸裂缝模型模拟桥梁损伤,车辆与桥梁的耦合振动根据车、桥之间位移与作用力的协调关系建立动力学方程求解

特征转换

Tsfresh特征提取方法与1D-CNN模型结合,可以有效提高模型的特征提取能力,提高CNN计算效率

划分训练集和测试集

在对1D-CNN进行搭建之前需要对Tsfresh算法进行合理设置,每种工况得到70000×3个数据点。为保证每段数据的数据量相等,对其进行合理分割,令单个传感器每段的数据量_λ_=500,即每段数据含有500×3个数据点,则每种工况一共有140段数据。

建模

考虑到节省计算资源,本文搭建的卷积神经网络加入较少卷积层,经过多次实验比对,在网络中加入4层卷积层,下采样适当地加入用来优化网络架构对于其余超参数的设置,本文将Ts-CNN的网络参数首先根据经验进行初始化,再利用网格搜索法对超参数进行优化。

模型优化

d105447201f8c976e01039ccaca76da4.png

af42ff9f5ee8399ec20e21f38bc0548e.png

6bfe43580d5d1e54045bda2e6a04910e.png


点击标题查阅往期内容

14056c54d586df3f104b7a390d813722.jpeg

MATLAB贝叶斯优化混合Bayes-CNN-RNN分析股票市场数据与浅层网络超参数优化

outside_default.png

左右滑动查看更多

outside_default.png

01

075d78074d1feff12bd48ebe3d147e92.png

02

4daa09696fd530034495ff1f7f52e142.png

03

e651aa7b596472e6b56395cb8e7eeef7.png

04

264522c1192a361ba97687a86be1efdb.png

基于深度学习的结构损伤检测|附数据代码

本项目利用卷积神经网络(基于 LeNet - 5、AlexNet - 8、ZFNet - 8 和 GoogLeNet(inception v1) - 22)开发了一种用于土木结构的损伤识别与定位技术。同时将基于区域的卷积神经网络(Faster - RCNN)应用于实时损伤检测。
注意:本项目主要是对砖石历史建筑应用微调后的深度学习算法。若您对 CNN 架构或实现更感兴趣,可能此处细节不足。本项目旨在为基础设施工程中的人工智能提供见解。

摘要

目前,人工检查(即目视检查和/或使用专业设备)是识别和评估砖石历史建筑表面损伤的主要方法。然而,该方法成本高昂,有时难以应用于偏远结构或部件。现有的基于卷积神经网络(CNN)的损伤检测方法并非专门针对砖石历史建筑的多种损伤识别而设计。为克服这些局限,本文提出了一种用于砖石历史建筑的 CNN 损伤分类技术的深度架构,采用基于滑动窗口的 CNN 方法来识别和定位四类损伤(完好、裂缝、泛碱和剥落),准确率达 94.3%。这是首次尝试基于 CNN 技术识别历史砖石建筑的多种损伤并取得优异分类结果。数据仅来自中国故宫城墙图像的训练和测试,顺砖图像和丁砖图像的像素分辨率分别为 480×105 和 210×105。两个 CNN(AlexNet 和 GoogLeNet)均在小数据集(2000 张图像用于训练,400 张图像用于验证和测试)和大数据集(20000 张图像用于训练,4000 张图像用于验证和测试)上进行训练。在五张 1860×1260 像素分辨率的新图像上检验训练模型的性能(准确率 94.3%)。

实现

数据集:

您可以使用我们的中国故宫城墙图像数据,也可以创建自己的数据集!只需尽可能多地拍摄您感兴趣研究的对象的照片。您可能还想使用众包技术让其他人帮您收集数据!

训练:

训练环境取决于您的数据集和 CNN。例如,如果您的数据集很大(GB/TB/PB 级),您可能考虑使用分布式工作站而非个人电脑,这同样适用于更深层次的 CNN(ResNet、Inception v - 4 等)。由于 GPU 计算比仅使用 CPU 快得多,您可能还需要 GPU 进行计算。
对于训练数据集的工具,我建议使用 TensorFlow 或 PyTorch。但如果您仅关注应用,Caffe 也可以。如果您选择 Caffe,您只需更改文件中的超参数。

uid = caffe.NCCL.new_uid()

    caffe.init_log()
    caffe.log('Using devices %s' % str(gpus))

    procs = \[\]
    for rank in range(len(gpus)):
        p = Process(target=solve,
                    args=(solver, snapshot, gpus, timing, uid, rank))
        p.daemon = True
        p.start()
        procs.append(p)
    for p in procs:
        p.join()

应用与可视化:

如果您要将深度学习应用于实际工程问题,仅以计算机视觉方式对目标进行分类是不够的。您应该弄清楚如何呈现或处理输出。此外,适用性和可重复性也非常重要。例如,您可能会问自己:成本是多少?效率如何?或者它在实际问题中是否有效?

图示与部分结果

在图 1 中,我们可以清晰地看到砖单元图像分类示意图。它展示了对砖单元图像进行分类的整体框架和流程,为后续基于 CNN 的损伤识别奠定了基础。从图中可以初步了解到图像分类所涉及的各个环节以及它们之间的相互关系,这有助于理解整个损伤检测系统如何对输入的砖单元图像进行预处理和初步分类判断。

5cfaf72cc1df1b80fa63da3518babe15.png

图 1:砖单元图像分类示意图
图 2 呈现的是基于 CNN 的砖单元损伤识别与分类示意图。此图详细说明了 CNN 在砖单元损伤识别与分类过程中的架构和工作原理。通过该图,能够直观地认识到 CNN 如何提取砖单元图像的特征,以及如何依据这些特征对不同类型的损伤进行区分和归类。例如,CNN 的不同层可能会对图像中的纹理、颜色、形状等特征进行逐步抽象和分析,最终确定损伤的类别。

9d962a4fa8804e3098f909f6d28de0d5.png

图 2:基于 CNN 的砖单元损伤识别与分类示意图
图 3 是全连接模式与局部连接模式对比图,包括全连接模式(a)和局部连接模式(b)。

parser = ArgumentParser(description=\_\_doc\_\_,
                            formatter_class=ArgumentDefaultsHelpFormatter)

    parser.add\_argument('input\_net\_proto\_file',
                        help='Input network prototxt file')
    parser.add\_argument('output\_image_file',

全连接模式中,每个神经元都与前一层的所有神经元相连,这种连接方式虽然能够充分整合信息,但也会带来大量的参数,容易导致过拟合现象,并且计算复杂度较高。而局部连接模式则只连接局部区域的神经元,它在减少参数数量的同时,能够保留一定的局部特征信息,更适合于图像这类具有局部相关性的数据处理。在本项目的 CNN 架构设计中,对这两种模式的理解和选择对于优化网络性能、提高损伤检测的准确性有着重要意义。

749f2b595ab940046a25b87f48d93c58.png

图 3:全连接模式与局部连接模式对比:(a)全连接模式,(b)局部连接模式
图 4 展示了 4 类训练样本,即完好(a)、剥落(b)、裂缝(c)和泛碱(d)用于 CNN 的情况。这些训练样本是模型学习和识别不同损伤类型的基础。从图中可以观察到不同损伤类型在图像上呈现出的不同特征。例如,完好的砖单元图像表面相对平整,无明显瑕疵;剥落的部分可能会有块状缺失;裂缝则呈现出线状的破损;泛碱区域可能会有颜色和纹理的变化。通过大量这样的训练样本,CNN 能够逐渐学习到不同损伤类型的图像特征模式,从而在实际检测中准确判断损伤类别。

eef781c0bd881e07ca62c5acc65bbe71.png

图 4:4 类训练样本:(a)完好,(b)剥落,©裂缝,(d)泛碱(用于 CNN)
图 5 为 Faster - RCNN 训练样本。Faster - RCNN 是一种用于目标检测的有效算法,其训练样本的特点和质量直接影响到模型对损伤目标的检测效果。从图中可以推测样本的多样性、代表性以及标注信息等方面的情况。例如,样本是否涵盖了不同角度、不同光照条件下的损伤情况,标注是否准确地框定了损伤区域等。这些因素都对 Faster - RCNN 能否准确地在实际场景中检测到损伤并定位有着关键作用。

b6b46d78fb0899a029239b8aa968197c.png

图 5:Faster - RCNN 训练样本
图 6 给出了使用 AlexNet - 8 训练结果,包括训练损失(a)和验证准确率(b)。训练损失曲线反映了模型在训练过程中预测值与真实值之间的差异程度。随着训练的进行,损失值逐渐降低,说明模型在不断学习和优化,逐渐拟合数据。而验证准确率曲线则展示了模型在验证集上的性能表现。在训练初期,验证准确率可能会有波动,随着训练的深入,准确率逐渐上升并趋于稳定。通过对这两条曲线的分析,可以判断 AlexNet - 8 模型的训练效果,如是否存在过拟合或欠拟合现象,从而调整训练策略,如调整学习率、增加训练数据量等。

7efdf760d40445aaf8dbbe25dd3b7643.png

图 6:使用 AlexNet - 8 训练结果:(a)训练损失,(b)验证准确率
图 7 展示了使用 GoogLeNet - 22 训练结果,同样包含训练损失(a)和验证准确率(b)。与 AlexNet - 8 类似,通过对这些曲线的研究,可以深入了解 GoogLeNet - 22 模型的训练动态。比较两者的曲线,可以分析不同网络架构在本项目损伤检测任务中的优劣。例如,可能发现 GoogLeNet - 22 在处理某些复杂损伤特征时具有更好的表现,而 AlexNet - 8 在计算资源消耗或训练速度上有一定优势,这有助于根据实际需求选择更合适的网络架构。

0b973f955d5d6aea05ca5c90ca4f5775.png

图 7:使用 GoogLeNet - 22 训练结果:(a)训练损失,(b)验证准确率
图 8 的滑动窗口策略是本项目中的一个重要技术手段。滑动窗口在图像上逐步移动,对每个窗口内的图像区域进行 CNN 分析,从而实现对整个图像的全面检测。这种策略能够有效地处理不同尺寸和位置的损伤,提高损伤检测的覆盖率和准确性。例如,对于较大尺寸的图像,通过滑动窗口可以避免因一次性处理整个图像而导致的计算资源不足或特征提取不充分的问题。

7400898fd9469348042dc21631923c2e.png

图 8:滑动窗口策略
最后,图 9 呈现了基于 GoogLeNet - 22 与滑动窗口算法的测试结果。从图中可以直观地看到模型在实际测试中的表现,如对不同损伤类型的检测准确性、是否存在误判或漏判情况等。这些结果是对整个基于深度学习的结构损伤检测系统性能的综合评估,通过对测试结果的详细分析,可以进一步优化模型和算法,提高系统在实际工程应用中的可靠性和有效性。

34136f603bc7d3d330cf0b39fb074e73.png

图 9:基于 GoogLeNet - 22 与滑动窗口算法的测试结果

关于分析师

8872afced5a39cf9a70bd45176b7bb41.png

在此对 Yufei Guo 对本文所作的贡献表示诚挚感谢,他在重庆大学完成了结构健康监测专业的硕士学位,专注深度学习领域。擅长 Python、Matlab 仿真、数据清洗、神经网络、数据分析 。

数据获取

在公众号后台回复“城墙数”,可免费获取完整数据。


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

b35380c53a2c7511d76036e3d85b987b.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python基于滑动窗口CNN损伤梁桥数据、故宫城墙图像数据分类可视化|附数据代码》。

点击标题查阅往期内容

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用CNN-LSTM、ARIMA、Prophet股票价格预测的研究与分析|附数据代码

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

用PyTorch机器学习神经网络分类预测银行客户流失模型

PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言深度学习Keras循环神经网络(RNN)模型预测多输出变量时间序列

R语言KERAS用RNN、双向RNNS递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感

Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化

Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析

R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告

R语言深度学习:用keras神经网络回归模型预测时间序列数据

Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

f8271033a4e0d48bf0620ef7cb90e27a.jpeg

f5c26fd5841507eb528e3e388222b488.png

17092e1ddc583cc4e66b6dced3ace354.png

60324a75523918bdf4a969e9d237edd1.jpeg

6fc76acbb95431f9233333b702839b52.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Pytorch的CIFAR100数据集上从ResNet50到VGG16的知识蒸馏实验记录

知识蒸馏的概念 可以参照NeurIPS2015的论文“Distilling the Knowledge in a Neural Network”了解知识蒸馏的概念。 知识蒸馏的狭义概念就是从复杂模型中迁移知识来提升简单模型的性能。复杂模型称之为教师模型,简单模型称之为学生模型。最近,笔者重温…

jQuery九宫格抽奖,php处理抽奖信息

功能介绍 jQuery九宫格抽奖是一种基于jQuery库的前端抽奖效果。通过九宫格的形式展示抽奖项,用户点击抽奖按钮后,九宫格开始旋转,最终停在一个随机位置上,此位置对应的抽奖项为用户的中奖结果。 本文实现九宫格的步骤为&#xf…

鸿蒙修饰符

文章目录 一、引言1.1 什么是修饰符1.2 修饰符在鸿蒙开发中的重要性1.3 修饰符的作用机制 二、UI装饰类修饰符2.1 Styles修饰符2.1.1 基本概念和使用场景2.1.2 使用示例2.1.3 最佳实践 2.2 Extend修饰符2.2.1 基本概念2.2.2 使用示例2.2.3 Extend vs Styles 对比2.2.4 使用建议…

输入json 达到预览效果

下载 npm i vue-json-pretty2.4.0 <template><div class"newBranchesDialog"><t-base-dialogv-if"addDialogShow"title"Json数据配置"closeDialog"closeDialog":dialogVisible"addDialogShow":center"…

MDETR - Modulated Detection for End-to-End Multi-Modal Understanding

Abstract 多模态推理系统&#xff08;如视觉问答系统或图像与文本之间的匹配系统&#xff09;通常依赖于一个预训练的物体检测器&#xff0c;用于从图像中提取感兴趣的区域。这些物体检测器通常是作为“黑盒”使用的&#xff0c;也就是说&#xff0c;它们在被训练时独立于下游…

pytest+allure生成报告显示loading和404

pytestallure执行测试脚本后&#xff0c;通常会在电脑的磁盘上建立一个临时文件夹&#xff0c;里面存放allure测试报告&#xff0c;但是这个测试报告index.html文件单独去打开&#xff0c;却显示loading和404, 这个时候就要用一些办法来解决这个报告显示的问题了。 用命令产生…

【MyBatis】验证多级缓存及 Cache Aside 模式的应用

文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口&#xff0c; 采用 Redis 会引入什么问题&#xff1f;万一遇到需强一致场景&#x…

MySQL —— MySQL 程序

目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 &#xff08;1&#xff09;指定选项的方式 &#xff08;2&#xff09;mysql 客户端命令常用选项 &#xff08;3&#xff09;在命令行中使…

统一功能(2异常)

RequestMapping("/r1")public String returnString(){return "asdfghjkl";} 如果在RequestMapping中返回的类型是String但是统一返回结果是Result类就会报错。 原因&#xff1a;源码中需要Result类型但是传入的是String类型 统一异常处理&#xff1a; 比如…

浅谈js中onmouseleave和onmouseout的区别

同步发布于我的网站 &#x1f680; 背景介绍基本概念区别详解 无子元素的情况有子元素的情况 实际应用场景 使用 onmouseleave使用 onmouseout 注意事项总结 背景介绍 在前端开发中&#xff0c;我们经常需要为元素绑定鼠标事件&#xff0c;以实现各种交互效果。onmouseleave…

python+django自动化部署日志采用‌WebSocket前端实时展示

一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…

【小白学机器学习37】用numpy计算协方差cov(x,y) 和 皮尔逊相关系数 r(x,y)

目录 1 关于1个数组np.array&#xff08;1组数据&#xff09;如何求各种统计数据 2 关于2个数组np.array&#xff08;2组数据&#xff09;如何求数组的相关关系&#xff1f; 2.1 协方差公式和方差公式 2.2 协方差 公式 的相关说明 2.3 用np.cov(x,y,ddof0) 直接求协方差矩…

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 &#xff08;超详细图文详情&#xff09;Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹&#xff0c;如&#xff1a;D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer&#xff0c;登…

学习视频超分辨率扩散模型中的空间适应和时间相干性(原文翻译)

文章目录 摘要1. Introduction2. Related Work3. Our Approach3.1. Video Upscaler3.2. Spatial Feature Adaptation Module3.3. Temporal Feature Alignment Module3.4. Video Refiner3.5. Training Strategy 4. Experiments4.1. Experimental Settings4.2. Comparisons with …

设计模式---建造者模式

建造者模式 一种创建型设计模式&#xff0c;它允许你一步一步地构建复杂对象。通过使用建造者模式&#xff0c;你可以将对象的构建过程与其表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。说白点就是&#xff0c;解决了构造函数创建对象的问题。 适用于那种构造函…

AtomicIntegerFieldUpdater能否降低内存

1. 代码如下&#xff1a; import java.util.LinkedList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger;public class AtomicIntegerTest {final AtomicInteger startPosition new AtomicInteger(0);final AtomicInteger wrotePosition new Atom…

element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*

element的el-table表格标题用css自定义是否必填添加伪类红色 * 效果图如下&#x1f447; el-table组件的html部分 css部分 /deep/.el-table__header-wrapper{.el-table__header{.has-gutter tr .el-table__cell:nth-of-type(3) .cell:before{content: *;color:red}.has-gutte…

数据库的⽤户和权限管理

数据库的⽤户和权限管理 应⽤场景⽤户查看⽤户创建⽤户语法注意事项示例 修改密码语法示例 删除⽤户语法 权限与授权给⽤户授权语法⽰例 回收权限语法⽰例 应⽤场景 数据库服务安装成功后默认有⼀个root⽤户&#xff0c;可以新建和操纵数据库服务中管理的所有数据库。在真实的…

C语言数据结构-栈和队列

C语言数据结构-栈和队列 1.栈1.1概念与结构1.2栈的实现1.2.1结构体定义1.2.2初始化1.2.3销毁1.2.4入栈1.2.5出栈1.2.6取栈顶处的元素1.2.7获取栈中有效的个数 2.队列2.1概念与结构2.2队列的实现2.2.1结构体定义2.2.2入队列2.2.3判断是否为空2.2.4队列中的有效元素个数2.2.5删除…

[CTF/网络安全] 攻防世界 upload1 解题详析

[CTF/网络安全] 攻防世界 upload1 解题详析 考察文件上传&#xff0c;具体原理及姿势不再赘述。 姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下&#xff1a; 查看源代码&#xff1a; Array.prototype.contains function (obj) { var i this.…