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

视频理解之Actionclip(论文宏观解读)

 配合解读代码解读

1.研究背景

1. 视频行为识别的重要性

视频行为识别是视频理解领域的核心任务之一,旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值,例如智能监控、人机交互、自动驾驶、医疗健康等。随着视频数据的爆炸式增长,如何高效、准确地识别视频中的行为成为计算机视觉领域的研究热点。

2. 发展历程

视频行为识别的研究主要经历了两个阶段:特征工程阶段架构工程阶段

  • 特征工程阶段:在大规模标注数据集出现之前,研究者主要依赖手工设计的特征来提取视频中的时空信息。例如,早期方法包括基于光流的特征(如光流金字塔)、基于轨迹的特征(如密集轨迹)和基于局部特征的描述符(如3D HOG)。这些方法虽然在小规模数据集上取得了一定的成果,但由于缺乏对复杂视频内容的深度学习能力,其泛化能力和性能提升有限。

  • 架构工程阶段:随着深度学习的兴起和大规模视频数据集(如Kinetics)的出现,视频行为识别进入了一个新的阶段。研究者开始设计各种深度神经网络架构来自动学习视频中的时空特征。这些架构主要包括:

    • 双流网络(Two-stream Networks):通过分别处理RGB帧和光流帧来捕捉视频的外观和运动信息,然后将两部分特征融合进行分类。

    • 3D卷积神经网络(3D CNNs):通过在传统2D CNN的基础上引入时间维度,直接从RGB帧中学习时空特征。

    • 计算高效网络(Compute-efficient Networks):为了在精度和速度之间取得平衡,研究者设计了多种轻量级网络架构,例如I3D、X3D等。

    • 基于Transformer的网络:近年来,Transformer架构在图像识别和自然语言处理中取得了巨大成功。一些研究开始将其应用于视频行为识别,例如ViViT、TimeSformer等,通过建模长距离时空依赖关系来提升性能。

3. 现有方法的局限性

尽管现有的视频行为识别方法在大规模数据集上取得了显著的性能提升,但它们大多基于单模态框架,即将视频内容映射为固定类别标签的分类问题。这种框架存在以下局限性:

  • 泛化能力受限:模型只能识别训练时见过的类别,难以泛化到新的、未见过的行为类别。这限制了模型在新数据集或新任务上的应用能力。

  • 依赖大量标注数据:为了适应新的行为类别,需要重新收集和标注大量数据,这在实际应用中成本高昂且耗时。

  • 缺乏语义信息:现有方法通常将类别标签映射为数字或独热向量,忽略了标签文本本身的语义信息。这导致模型无法充分利用自然语言的丰富语义来增强视频表示。

4. 本文提出的解决方案

为了解决上述问题,本文提出了一种新的视角,将视频行为识别建模为视频-文本匹配问题,并基于多模态学习框架进行建模。具体来说:

  • 多模态学习框架:通过引入自然语言的语义信息,将视频和标签文本分别编码为语义特征,并通过相似性计算模块将它们匹配起来。这种框架不仅增强了视频表示的语义信息,还支持零样本行为识别,无需额外的标注数据。

  • “预训练、提示、微调”范式:为了充分利用大规模网络数据并降低预训练成本,本文提出了一种新的范式。该范式通过预训练模型、提示工程(将下游任务调整为类似于预训练任务的形式)和目标数据集上的微调,实现了高效的行为识别。这一范式不仅避免了大规模预训练的高昂计算成本,还通过提示设计充分利用了预训练模型的强大能力。

2.创新点

1.多模态学习框架

通过引入自然语言的语义信息,将视频和标签文本分别编码为语义特征,并通过相似性计算模块将它们匹配起来。这种框架不仅增强了视频表示的语义信息,还支持零样本行为识别,无需额外的标注数据。(利用clip进行预训练)

2. 文本提示(Textual Prompt):任务适配与语义增强

文本提示的作用

文本提示的核心思想是通过自然语言的语义信息来增强模型对标签的理解和匹配能力。具体来说,文本提示通过以下方式实现任务适配与语义增强:

  1. 任务适配

    • 将下游任务转化为预训练任务的形式:预训练模型(如CLIP)通常在大规模的图像-文本对上进行训练,学习如何将图像与描述它们的文本匹配起来。通过设计文本提示,可以将视频行为识别任务转化为一个视频-文本匹配问题,从而让预训练模型能够更好地适应下游任务。

    • 灵活调整任务目标:文本提示允许对任务目标进行灵活调整。例如,通过添加前缀、后缀或填空形式的提示(如“这是一个关于[标签]的视频”或“人类正在[标签]”),可以将行为识别任务转化为更接近预训练任务的形式,使模型能够更好地利用预训练阶段学到的语义信息。

  2. 语义增强

    • 丰富标签的语义信息:传统的标签映射方式忽略了标签的语义信息,而文本提示通过自然语言描述来增强标签的语义。例如,将“跑步”扩展为“一个人在户外跑步”或“运动员在田径场上跑步”,可以为模型提供更丰富的语义背景,从而更好地理解视频内容。

    • 提升模型的泛化能力:通过文本提示,模型能够学习到标签的多种语义表达方式,从而在面对未见过的类别或新任务时,能够更好地利用语义信息进行推理。例如,在零样本识别任务中,模型可以通过匹配视频特征与文本提示的语义表示,识别出未见过的行为类别。

具体实现

  • 前缀提示(Prefix Prompt):在标签前添加固定文本,如“一个人正在[标签]”。

  • 后缀提示(Suffix Prompt):在标签后添加固定文本,如“[标签]的行为”。

  • 填空提示(Cloze Prompt):设计填空形式的文本,如“这是一个关于[标签]的视频”。


3. 视觉提示(Visual Prompt):任务适配与语义增强

视觉提示的作用

视觉提示的核心思想是通过调整视频输入的结构或特征提取方式,使预训练模型能够更好地处理视频数据。具体来说,视觉提示通过以下方式实现任务适配与语义增强:

  1. 任务适配

    • 将视频数据转化为预训练模型的输入形式:预训练模型通常在图像数据上进行训练,而视频数据包含多个帧的时空信息。视觉提示通过设计特定的时空特征提取方式,将视频数据转化为预训练模型能够处理的形式。例如,通过添加时间维度的特征或设计特定的时空编码器,可以使预训练模型更好地理解视频内容。

    • 避免对预训练模型进行大规模修改:视觉提示通常通过在预训练模型的输入阶段或输出阶段进行调整,而不是直接修改预训练模型的结构。这种设计避免了因修改模型结构而导致的“灾难性遗忘”,同时保留了预训练模型的强大语义理解能力。

  2. 语义增强

    • 增强视频的时空语义信息:视觉提示通过设计特定的时空特征提取方式,能够更好地捕捉视频中的时空信息。例如,通过添加时间位置编码(Temporal Positional Embedding)或使用时间卷积(Temporal Convolution)等方法,可以增强视频的时空语义信息,从而提升模型对视频内容的理解能力。

    • 提升模型对视频数据的适应能力:通过视觉提示,模型能够更好地处理视频数据中的时空变化,从而在面对复杂的视频内容时,能够更准确地识别行为类别。例如,在处理长视频或包含多种行为的视频时,视觉提示能够帮助模型更好地捕捉关键帧和行为片段。

具体实现

  • 前网络提示(Pre-network Prompt):在视频帧输入预训练模型之前,添加额外的时间位置编码或时空特征提取模块。例如,将视频帧的时空信息编码为一个整体输入,使预训练模型能够更好地理解视频的时空结构。

  • 中网络提示(In-network Prompt):在预训练模型的内部结构中插入特定的时空模块,如时间偏移模块(Temporal Shift Module),以增强模型对视频时空信息的处理能力。

  • 后网络提示(Post-network Prompt):在预训练模型提取的特征之后,使用特定的时空聚合模块(如均值池化、卷积、LSTM或Transformer)对视频帧的特征进行进一步处理,从而增强视频的时空语义信息。

4结果

1. 性能提升

本文提出的 ActionCLIP 方法在多个视频行为识别数据集上取得了显著的性能提升,验证了“预训练、提示、微调”范式的有效性。

  • Kinetics-400 数据集上,ActionCLIP 使用 ViT-B/16 作为骨干网络,达到了 83.8% 的 top-1 准确率,超越了大多数现有方法,包括一些使用更大模型或更多输入帧的方法。这一结果表明,通过多模态学习框架和提示机制,模型能够更好地利用语义信息进行行为识别。

  • Charades 数据集上,ActionCLIP 达到了 44.3% 的 mAP(Mean Average Precision),在多标签视频分类任务中表现出色,进一步证明了该方法在复杂场景下的有效性。

2. 零样本(Zero-shot)和少样本(Few-shot)识别能力

ActionCLIP 在零样本和少样本行为识别任务中表现出色,展示了强大的泛化能力:

  • Kinetics-400 数据集上,ActionCLIP 能够在没有任何目标类别标注的情况下进行零样本识别,并且在少样本情况下(每类别仅有少量标注样本)的性能显著优于传统单模态方法(如 3D-ResNet-50 和 STM)。

  • UCF-101HMDB-51 数据集上,ActionCLIP 使用在 Kinetics-400 上预训练的模型,能够直接进行零样本识别,而传统方法在这种情况下无法工作。这表明多模态学习框架和提示机制能够显著提升模型对未见过类别的识别能力。

5 未来不足

  1. 预训练数据限制:尽管本文提出了“预训练、提示、微调”范式,但由于大规模视频-文本数据预训练的计算成本高昂,本文未直接进行预训练,而是使用了预训练的CLIP模型。未来可以探索更高效的预训练方法,以充分利用大规模网络数据。

  2. 提示设计的局限性:虽然本文设计了多种提示方法,但提示的设计仍然依赖于人工经验和启发式方法,缺乏自动化的提示生成机制。未来可以研究如何自动设计更有效的提示,以进一步提高模型性能。

  3. 多模态融合的深度:本文的多模态学习框架主要通过视频和标签文本的相似性计算来实现融合,未来可以探索更深层次的多模态融合方法,如联合建模视频和文本的语义信息,以进一步提升模型的泛化能力和识别性能。

  4. 模型规模和输入帧数的限制:虽然本文已经展示了较大模型和更多输入帧数对性能的提升作用,但目前的模型规模和输入帧数仍有提升空间。未来可以尝试更大规模的模型和更多输入帧数的配置,以进一步提高行为识别的性能。

6 图像解读

图a为整体框架-(神经网络)

图b为文本text

图c为前缀 pre-visual prompt(vit)

图d为中间visual-prompt

图g temproal Transfom(后缀)

相关文章:

视频理解之Actionclip(论文宏观解读)

配合解读代码解读 1.研究背景 1. 视频行为识别的重要性 视频行为识别是视频理解领域的核心任务之一,旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值,例如智能监控、人机交互、自动驾驶、医疗健康等。随…...

【论文精读】Deformable DETR:用于端到端目标检测可变形 Transformer

论文:DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 代码:Deformable-DETR 摘要 DETR 最近被提出用于消除目标检测中许多手工设计组件的需求,同时展示了良好的性能。然而,它存在收敛速度慢和特征空…...

Odoo18 Http鉴权+调用后端接口

最近在调研Odoo18,包括它的前后端原理、源码等。发现官方的开发文档并不十分实用,比如标题这种简单的实用需求,竟然浪费了一点时间,特此记录。 官方文档:External API — Odoo 18.0 documentation 前提:首…...

doris:SQL 方言兼容

提示 从 2.1 版本开始,Doris 可以支持多种 SQL 方言,如 Presto、Trino、Hive、PostgreSQL、Spark、Clickhouse 等等。通过这个功能,用户可以直接使用对应的 SQL 方言查询 Doris 中的数据,方便用户将原先的业务平滑的迁移到 Doris…...

Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组

Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组 前言一、用户和组概念用户类型对比表格主要组和补充组对比表格: 二、本地用户账户增删改查三、本地组账户 前言 上篇博客我们详细了解了从红帽和 DNF 软件仓库下载…...

【Repos系列】yum install nginx 是怎么从仓库中下载并安装的?

yum install nginx 是 YUM 包管理工具从配置的软件仓库中下载并安装软件包的核心操作。以下是其完整工作流程的详细步骤(结合缓存机制和依赖处理): ​1. 隐式元数据同步(若缓存过期)​ ​检查缓存有效性:…...

《JavaScript高级程序设计(第5版)》学习大纲

《JavaScript高级程序设计(第5版)》学习大纲 《JavaScript高级程序设计(第5版)》是JavaScript领域的经典“红宝书”,它从基础语法讲到高级特性,还包含浏览器环境和前端工程化等内容。本书2024年12月出版&a…...

基于微信小程序开发的宠物领养平台——代码解读

项目前端 一、项目的技术架构概况 一句话概括:该项目是基于微信小程序开发的宠物领养平台,采用原生小程序框架进行用户界面的构建,使用 wx.request 进行 API 请求,并通过 getApp() 和本地存储来管理全局状态和用户信息。 一&am…...

KICK第五课:Mac 系统下安装 Xcode 或 Clang

Mac 系统下安装 Xcode 或 Clang 详细指南 一、安装前的准备 确认系统版本 macOS 10.9 及以上版本支持 Xcode 和 Clang。若版本过低,需先升级系统。 了解工具区别 Xcode:苹果官方 IDE,包含完整开发环境、模拟器、调试工具等,适合…...

PHP语法基础

PHP语法基础 一,变量 在PHP中,变量是存储数据的容器,其灵活性和动态类型系统是PHP的核心特性之一。以下是PHP变量的详细解析,涵盖声明、作用域、类型转换及最佳实践: 1. 变量基础 声明与命名规则 无需显式声明类型&…...

嵌入式硬件: GPIO与二极管基础知识详解

1. 前言 在嵌入式系统和硬件开发中,GPIO(通用输入输出)是至关重要的控制方式,而二极管作为基础电子元件,广泛应用于信号整流、保护电路等。本文将从基础原理出发,深入解析GPIO的输入输出模式,包…...

母婴商城系统Springboot设计与实现

项目概述 《母婴商城系统Springboot》是一款基于Springboot框架开发的母婴类电商平台,旨在为母婴产品提供高效、便捷的在线购物体验。该系统功能全面,涵盖用户管理、商品分类、商品信息、商品资讯等核心模块,适合母婴电商企业或个人开发者快…...

Redis相关面试题

以下是150道Redis相关面试题: Redis基础概念 1. Redis是什么? Redis是一个开源的、基于内存的高性能键值存储数据库,常用于缓存、消息队列等场景。 2. Redis的特点有哪些? • 高性能,读写速度快。 • 支持多种数据…...

ArcGIS助力水文分析:数据处理、地图制作与流域特征提取

在水文水环境保护中,对于信息的采集、处理和分析是关键步骤。水文水环境及其相关数据均具有空间分布特征,传统的方法难以发挥作用。地理信息系统(GIS)强大的空间数据管理和分析功能,在空间信息处理上有独到的优势&…...

docker桌面版启动redis,解决无法连接

docker run -d --name redis -p 6379:6379 -v E:\2\redis\redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf 在本地创建一个目录,里面有个redis.conf文件,内容如下,启动时绑定这个配置文件目…...

Vue 项目中 CDN 引入的利弊及解决方案

在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏的体验。通过调试发送时间主要消耗…...

【QT】】qcustomplot的使用

1.下载并添加qcustomplot.c和qcustomplot.h文件 拖动一个Widget,提升为qcustomplot 成功后是这样的, 改第三行:greaterThan(QT_MAJOR_VERSION, 4): QT widgets printsupport 编译,不报错,出现带坐标轴的界面&#…...

第三周日志-web(2)

原本计划的web不是这个,但是b站上一个大佬讲web做到了连我都能听懂,不趁热打铁学一学记一记就怕忘记了 指路:Shiro反序列化漏洞(一)-shiro550流程分析_哔哩哔哩_bilibili khttps://www.zhihu.com/question/486555909 学模板先看看结构和功…...

KICK第四讲Linux 系统下安装 GCC 编译器全指南

Linux 系统下安装 GCC 编译器全指南 GCC(GNU Compiler Collection)是 Linux 系统下最常用的编译器之一,支持 C/C、Java 等多种编程语言。本文将介绍不同 Linux 发行版下的安装方法,帮助开发者快速配置开发环境。 一、使用包管理…...

SpringCloud 学习笔记1(Spring概述、工程搭建、注册中心、负载均衡、 SpringCloud LoadBalancer)

文章目录 SpringCloudSpringCloud 概述集群和分布式集群和分布式的区别和联系 微服务什么是微服务?分布式架构和微服务架构的区别微服务的优缺点?拆分微服务原则 什么是 SpringCloud ?核心功能与组件 工程搭建父项目的 pom 文件 注册中心Rest…...

go 安装swagger

1、依赖安装: # 安装 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安装 gin-swagger 和 swagger 文件的依赖 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、测试 cmd中输入: swag -v 如果…...

Java中关于Optional的 orElse 操作,以及 orElse 与 orElseGet 的区别

文章目录 1. 大概说明2. 详细分析2.1 .orElse 操作2.2 .orElse 的作用:避免空指针异常2.3 为什么要用?2.4 orElseGet如何使用2.5 orElse和orElseGet的区别 1. 大概说明 这篇文章的目的是为了说明: orElse 如何使用orElseGet 如何使用两者的…...

Sqlmap注入工具简单解释

安装 1. 安装 Python SQLMap 是基于 Python 开发的,所以要先安装 Python 环境。建议安装 Python 3.9 或更高版本,可从 Python 官方网站 下载对应操作系统的安装包,然后按照安装向导完成安装。 2. 获取 SQLMap 可以从 SQLMap 的官方 GitHu…...

petalinxu 在zynq的FPGA下的ST7735S的驱动配置

spi的接线: 【TFT模块排针8】 【开发板spi,gpio】【antminers9】 VCC ----------- 3.3V ----------- 3.3V GND ----------- GND ----------- GND BLK(背光)-------GPIO----------- BANK34_L4N_RXD2(w13; j2.12; gpio[2]) RST(复位&#xff…...

数据篇| App爬虫入门(一)

App 的爬取相比 Web 端爬取更加容易,反爬虫能力没有那么强,而且数据大多是以 JSON 形式传输的,解析更加简单。在 Web 端,我们可以通过浏览器的开发者工具监听到各个网络请求和响应过程,在 App 端如果想要查看这些内容就需要借助抓包软件。常见抓包软件有: ‌工具名称‌‌…...

【6】拓扑排序学习笔记

前言 有向无环图和拓扑排序直接关联到中后期的图论建模思想,是很重要的基础知识。这个如果不彻底弄懂,以后图论会很困难。 有向无环图 正如其名,一个边有向,没有环的图,也叫DAG。 DAG图实际运用:描述含…...

OpenCV实现图像特征提取与匹配

‌一、特征检测与描述子提取‌ ‌选择特征检测器‌ 常用算法包括: ‌ORB‌:一种高效的替代SIFT和SURF的算法,主要用于移动机器人和增强现实等领域。适合实时应用,结合FAST关键点与BRIEF描述子‌。‌SIFT(尺度不变特征变…...

MyBatis 的核心配置文件是干什么的? 它的结构是怎样的? 哪些是必须配置的,哪些是可选的?

MyBatis 的核心配置文件&#xff08;通常命名为 mybatis-config.xml&#xff09;是 MyBatis 应用程序的入口点&#xff0c;它定义了 MyBatis 的全局配置信息 。 核心配置文件的作用&#xff1a; 配置 MyBatis 的运行时行为: 通过 <settings> 标签设置全局参数&#xff…...

VLAN,DHCP实验访问物理机

目标 三层交换机完成DHCP自动分配IP地址不同vlan间完成通信DNS服务器能够解析www.baidu.com&#xff0c;使PC机能够访问连接真实物理机&#xff0c;PC机与物理机能够互相访问 步骤 一、创建VLAN&#xff0c;配置好PC机和交换机的IP地址 LSW1 [LSW1]vlan batch 10 20 Info: T…...

六十天前端强化训练之第十七天React Hooks 入门:useState 深度解析

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识讲解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本语法解析 4. 工作原理 5. 参数详解 a) 初始值设置方式 b) 更新函数特性 6. 注意事项 7. 类组…...

解决 HTTP 请求中的编码问题:从乱码到正确传输

文章目录 解决 HTTP 请求中的编码问题&#xff1a;从乱码到正确传输1. **问题背景**2. **乱码问题的原因**2.1 **客户端编码问题**2.2 **请求头缺失**2.3 **服务器编码问题** 3. **解决方案**3.1 **明确指定请求体编码**3.2 **确保请求头正确**3.3 **动态获取响应编码** 4. **调…...

跨国企业网络案例分析:SD-WAN智能组网

跨国企业面临的网络问题日益增加&#xff0c;如全球供应链协同、跨国研发协作及实时生产数据传输等场景&#xff0c;对网络质量提出更高要求。本文将深度解析某跨国工业集团如何通过SD-WAN实现网络架构智能化转型。 该集团以上海全球总部为核心&#xff0c;构建了覆盖亚欧美三大…...

视频孪生与三维视频融合:重构工业现场的“数字视网膜“

在浙江某精密制造企业的总控中心&#xff0c;30米长的曲面屏上实时跳动着工厂的每个生产细节&#xff1a;机械臂的运动轨迹与数字模型完全同步&#xff0c;质检工位的操作误差被自动标记&#xff0c;AGV小车的行进路径在三维空间中以光带形式可视化呈现。这种虚实交融的场景并非…...

STM32Cubemx-H7-7-OLED屏幕

如何把江科大的OLED标准库文件换成hal库的文件 前言 本文讲解如在hHAL库中使用OLED&#xff0c;其实江科大做的文件好已经很好了 只讲操作&#xff0c;不讲废话&#xff0c;默认大家都有32基本操作 创建工程 首先创建工程 把那两个引脚设置成开漏 获取标准库文件 打开江科大O…...

FPGA为何要尽量减少组合逻辑的使用

在FPGA设计中&#xff0c;组合逻辑的使用确实需要谨慎&#xff0c;尤其是要尽量减少它的复杂性。这并不是因为组合逻辑本身不好&#xff0c;而是因为它在实际应用中容易引发一系列问题&#xff0c;而这些问题往往与FPGA的设计哲学和硬件特性相冲突。让我从几个关键点来和你聊聊…...

缓存使用的具体场景有哪些?缓存的一致性问题如何解决?缓存使用常见问题有哪些?

缓存使用场景、一致性及常见问题解析 一、缓存的核心使用场景 1. 高频读、低频写场景 典型场景&#xff1a;商品详情页、新闻资讯、用户基本信息。特点&#xff1a;数据更新频率低&#xff0c;但访问量极高。策略&#xff1a; Cache-Aside&#xff08;旁路缓存&#xff09;&a…...

基于 RWA 模型与 AI - Agent 协同的企业级 aPAAS 架构设计

一、引言 在企业数字化转型不断深化的当下&#xff0c;现实世界资产&#xff08;RWA&#xff09;模型与人工智能智能体&#xff08;AI - Agent&#xff09;的协同融合&#xff0c;为企业级应用平台即服务&#xff08;aPAAS&#xff09;架构的创新发展带来了新契机。这种架构旨在…...

基于“动手学强化学习”的知识点(一):第 14 章 SAC 算法(gym版本 >= 0.26)

第 14 章 SAC 算法&#xff08;gym版本 &#xff1e; 0.26&#xff09; 摘要SAC 算法&#xff08;连续&#xff09;SAC 算法&#xff08;离散&#xff09; 摘要 本系列知识点讲解基于动手学强化学习中的内容进行详细的疑难点分析&#xff01;具体内容请阅读动手学强化学习&…...

【QT:信号和槽】

QT信号涉及的三要素&#xff1a;信号源、信号类型、信号的处理方式。 QT的信号槽机制&#xff1a; 给按钮的点击操作关联一个处理函数&#xff0c;用户点击按钮时触发&#xff0c;对应的处理函数就会执行 QT中使用connect函数将信号和槽关联起来&#xff0c;信号触发&#xf…...

Oracle中的INHERIT PRIVILEGES权限

Oracle中的INHERIT PRIVILEGES权限 存储过程和用户函数的AUTHID属性调用者权限vs定义者权限一个简单的示例INHERIT PRIVILEGES权限的含义INHERIT PRIVILEGES权限的安全隐患注意到Oracle 19c数据库中有如下权限信息: SQL> select grantor,grantee,table_name,privilege fro…...

Compose笔记(九)--Checkbox

这一节主要了解一下Compose中的Checkbox&#xff0c;它是Jetpack Compose UI框架中的一个组件&#xff0c;用于创建复选框功能。它允许用户从一个集合中选择一个或多个项目&#xff0c;可以将一个选项打开或关闭。与传统的Android View系统中的Checkbox相比&#xff0c;Compose…...

CSS中粘性定位

1.如何设置为粘性定位? 给元素设置posttion:sticky 即可实现粘性定位. 可以使用left, right ,top, bottom 四个属性调整位置,不过最常用的是top 值. 2.粘性定位的参考点在哪里? 离他最近的一个拥有"滚动机制"的祖先元素,即便这个祖先不是最近的真实可滚动祖先. 3.粘…...

日本IT|AWS工作内容及未来性、以及转职的所需资质和技能

AWSとは AWSはAmazon Web Services&#xff08;アマゾンウェブサービス&#xff09;の略称です。 名称から分かるとおり、ネットを通じた通販などを事業として行っているAmazon.com社がクラウドサービスとして運営しています。 本来であれば自分たちでインフラ環境を構築する…...

《Spring日志整合与注入技术:从入门到精通》

1.Spring与日志框架的整合 1.Spring与日志框架进行整合&#xff0c;日志框架就可以在控制台中&#xff0c;输出Spring框架运行过程中的一些重要的信息。 好处&#xff1a;方便了解Spring框架的运行过程&#xff0c;利于程序的调试。 Spring如何整合日志框架 Spring5.x整合log4j…...

如何判断一个项目用的是哪个管理器

如何判断一个项目用的是哪个管理器 npm: 如果项目中存在 package-lock.json 文件&#xff0c;这通常意味着项目使用 npm 作为包管理器。package-lock.json 文件会锁定项目的依赖版本&#xff0c;确保在不同环境中安装相同的依赖。 pnpm: 如果项目中存在 pnpm-lock.yaml 文件&a…...

软件工程概述

软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析&#xff0c;任务是确定软件开发的总目标。 问题定义可行性研究&#xff08;经济、技术、操作、社会可行性&#xff0c;确定问题和解决办法&#xff09;需求分析&#xff08;确定功能需求&#xff0c;性…...

文件系统 linux ─── 第19课

前面博客讲解的是内存级文件管理,接下来介绍磁盘级文件管理 文件系统分为两部分 内存级文件系统 : OS加载进程 ,进程打开文件, OS为文件创建struct file 和文件描述符表 ,将进程与打开的文件相连, struct file 内还函数有指针表, 屏蔽了底层操作的差异,struct file中还有内核级…...

一篇博客搞定时间复杂度

时间复杂度 1、什么是时间复杂度&#xff1f;2、推导大O的规则3、时间复杂度的计算3.1 基础题 13.2 基础题 23.3基础题 33.4进阶题 13.5进阶题 23.6 偏难题 13.7偏难题 2&#xff08;递归&#xff09; 前言&#xff1a; 算法在编写成可执行程序后&#xff0c;运行时要耗费时间和…...

微信小程序实现根据不同的用户角色显示不同的tabbar并且可以完整的切换tabbar

直接上图上代码吧 // login/login.js const app getApp() Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函…...

S_on@atwk的意思

S_onatwk 可能是某种自动化或控制系统中的符号或标记&#xff0c;尤其在PLC&#xff08;可编程逻辑控制器&#xff09;编程中&#xff0c;类似的表达方式通常用于表示特定的信号、状态或操作。 我们可以分析这个表达式的各个部分&#xff1a; S_on&#xff1a;通常&#xff0…...