【论文阅读】UNIT: Backdoor Mitigation via Automated Neural Distribution Tightening
ECCV2024
https://github.com/Megum1/UNIT
我们的主要贡献总结如下:
- 我们引入了UNIT(“AUtomated Neural DIstribution Tightening”),这是一种创新的后门缓解方法,它为每个神经元近似独特的分布边界,用于有效消除由后门引起的恶意大幅激活。
- UNIT利用优化技术动态细化和收紧不同神经元的独特边界。这一过程由少量干净样本上的代理精度引导,作为测试集上真实精度的近似值。
- 广泛的实验表明,UNIT对14种现有攻击(包括2种高级攻击)有效,优于7种基线防御。此外,UNIT可推广到不同的数据集、网络结构和激活函数。我们进一步表明,UNIT能够抵御3种自适应攻击。
UNIT为模型中的每个神经元近似一个独特且紧密的激活分布。然后,它主动消除超出近似边界的大幅激活值。
现有的后门缓解技术对先前的攻击有效,但它们在消除由高级攻击引起的后门效应方面却力不从心。这是因这些方法要么在没有精确指导以减少后门效应的情况下重新训练整个模型,要么直接修剪一些特定神经元。这种粗粒度的方法无法对抗最近的高级攻击。例如,高级攻击可能会将后门行为隐藏在主要处理正常特征的良性神经元内。在这种情况下,修剪这些神经元会不必要地影响良性效用。另一方面,保留这些神经元会保留模型中的后门行为。
该方法基于这样的观察结果:对于各种带有后门的模型,存在一组后门神经元,负责后门行为。这些神经元对中毒输入的激活值明显高于对干净样本的激活值。需要注意的是,后门神经元也可能参与良性特征提取。鉴于没有中毒样本用于准确识别后门神经元,我们建议使用少量干净样本为每个单独的神经元近似一个干净的分布。该近似限定了每个神经元的最大激活值。在推理过程中,我们的防御机制UNIT将大幅激活值剪辑到近似的边界。一个直接的想法是对所有神经元的激活值应用统一的百分位边界(例如,覆盖98%值的阈值)。我们在第4节的图4中的结果揭示了这种方法对高级攻击的局限性,因为它忽略了不同神经元具有不同贡献的事实。虽然一些神经元可能完全被攻陷,但其他神经元可能仍然完全良性。为解决这一挑战,UNIT采用了一个优化过程,为不同的神经元定制独特的边界。该优化过程由少量干净样本上的代理精度引导,作为测试集上真实精度的近似值。这一过程使UNIT能够精心收紧边界以减轻后门效应,同时确保精度符合防御者的预期。
现有后门缓解方法的局限性
为了应对消除中毒模型中的后门效应这一挑战,提出了各种方法。它们主要分为两类:(1)遗忘和(2)剪枝。遗忘方法利用基于训练的技术,如微调、蒸馏和克隆,以根除后门行为。这些方法基于灾难性遗忘假设,即神经网络在持续学习其他模式时自然倾向于忘记特定行为。例如,NAD采用标准微调创建教师模型,然后通过知识蒸馏将仅良性知识传递给学生模型。相比之下,剪枝方法涉及识别和移除恶意神经元。它们推测存在一个小的神经元子集负责后门行为,移除这些神经元可以消除后门影响。例如,ANP基于对干净样本的敏感性分析识别恶意神经元,并有效地剪枝它们。接下来,我们将深入探讨遗忘和剪枝方法固有的局限性,并介绍我们的想法以应对这些挑战。
粗粒度修复:最近的高级攻击设法将后门行为隐藏在良性神经元内,创造了能够抵抗现有缓解方法的混合神经元。当前技术的一个普遍局限性在于它们的粗粒度特性,这在对抗高级攻击时是不足够的。本质上,这些方法难以在单个神经元内部操作,以消除后门成分,同时保留良性部分。此外,后门缓解的一个隐含要求是保留良性功能。换句话说,修复后的模型的良性精度不应遭受显著退化。这一约束限制了遗忘和剪枝方法的效力。例如,剪枝可能会移除或保留整个神经元。在处理混合神经元时,直接剪枝它们会显著降低干净分类性能。相反,保留这些神经元会保持后门行为。图1概念性地说明了现有方法的这种局限性。左侧虚线框显示了对高级攻击的缓解。左半部分展示了中毒图像(描绘为左上角有红色触发器的熊猫)在后门模型中的处理过程。值得注意的是,该模型包含三种类型的神经元:(1)良性神经元(描绘为卡通熊猫),主要提取良性特征;(2)后门神经元(描绘为红色恶魔),处理后门行为;(3)混合神经元(描绘为半熊猫半恶魔),同时服务于这两种目的。在模型推理后,输出对应于被误分类的攻击目标标签,用红色十字表示。左侧图形的右半部分描绘了通过遗忘和剪枝修复后的模型。观察到后门神经元被有效地遗忘或剪枝,而混合神经元,表现出良性与恶意行为,仍然不受影响。这是因为消除这些混合神经元可能导致良性任务的准确性大幅下降。然而,这些混合神经元的存在仍然有助于维持高攻击成功率,因为它们参与了后门行为。这突显了现有缓解技术的局限性。
严重依赖精细参数调整:现有方法严重依赖精细的参数调整,以在各种攻击中实现最佳性能。例如,剪枝技术需要仔细确定剪枝率,根据具体情况调整。神经元移除的程度直接影响模型的整体精度;过度剪枝会降低性能,而剪枝不足可能无法充分对抗后门效应。我们在附录A.3中详细的经验分析突出了现有方法对参数调整的敏感性。这种敏感性是一个显著的局限性,削弱了这些方法的泛化能力和实际应用性。
我们的想法:自动神经分布收紧:我们引入了一种新技术UNIT,它自动近似并收紧每个神经激活的独特分布边界。随后在推理过程中,它剪辑超出边界的激活值,针对潜在的后门激活。UNIT采用基于优化的方法自动细化单个神经元的激活边界。它由少量干净样本(<5%)上的代理精度引导,该精度近似真实测试精度。这一近似通常是准确的,如我们在第A.5节中详细描述的消融研究所证明的那样。该过程涉及边界的动态调整:如果观察到的代理精度退化低于防御者的预期,则进一步收紧边界。相反,放松边界以恢复精度。这确保了在维持良性精度的同时消除后门的平衡方法。UNIT以高度粒度运行,分析并调整单个神经元的独特边界。图1中的右侧图形可视化了通过UNIT实现的积极结果。值得注意的是,后门神经元和混合神经元的后门部分都被停用。
此外,与现有方法相比,UNIT是一种自动化技术,不需要精细的参数调整。防御者只需要指定一个精度退化的界限,以平衡良性精度和后门缓解。UNIT的参数高效特性强调了它的泛化能力和实用性。
神经激活的关键观察
后门行为可以通过后门模型上的触发器激活。为了说明这种输入模式如何改变输出预测,我们深入研究模型内部,特别是检查干净样本和中毒样本的神经激活值。我们使用CIFAR-10数据集和ResNet18架构作为研究对象,并通过各种攻击(包括BadNets、Trojan、IA、SIG、WaNet、ISSBA、LIRA、Reflection、Instagram、DFST和Adap-Blend)可视化干净模型和一系列后门模型的神经激活分布。为了深入了解中毒样本对模型行为的影响,我们使用Shap(一个深度学习解释器)来识别每个模型在处理中毒样本时第12层中最重要的1%的神经元。这些选定的神经元被称为后门神经元,它们负责后门行为。随后,我们的分析涉及比较这些神经元在1000个干净样本和1000个中毒样本之间的激活值。值得注意的是,由于干净模型没有预定义的触发器,我们使用BadNets触发器生成虚拟中毒样本进行分析。通过应用PCA进行降维,我们在图2中可视化了神经激活分布。蓝色图表代表干净输入的激活分布,而红色图表描绘了中毒样本的分布。观察到在干净模型中,干净和中毒样本的神经激活分布无法区分。相反,在遭受后门攻击的模型中,很明显存在干净和中毒样本之间分布的显著变化。值得注意的是,中毒输入的神经激活值明显大于干净输入的值。这种差异强调了后门触发器显著改变了特定后门神经元的神经激活分布,随后导致目标误分类。
独特的细粒度观察:现有论文已经观察到干净和中毒样本之间的潜在可分离性,主要关注整个层的特征。然而,最近的高级攻击和我们在第A.4节中详细描述的自适应攻击设法减少了这种层级特征区分。然而,这些方法未能消除神经激活水平上的可分离性,如图2所示。这突出了我们的细粒度观察与现有文献之间的明显区别。
method
我们的观察发现,在后门神经元上,中毒样本的神经激活与良性样本相比有显著增加。基于这一发现,我们引入了UNIT,这是一种新方法,它基于少量干净训练数据为每个神经元近似一个紧密的良性分布。然后,UNIT战略性地剪辑超出分布边界的激活值。这种近似的必要性源于在典型情况下中毒样本不可用。因此,很难精确识别后门神经元。为了解决这个问题,UNIT将其近似应用于所有神经元,包括良性神经元和后门神经元。此外,我们将近似的良性分布尽可能收紧,旨在有效减轻后门行为。图3展示了UNIT的概览,以一个典型的神经元为例。x轴表示不同样本的神经激活值,而y轴表示这些值对应的样本密度。在这个图中,良性神经激活用蓝色表示,中毒神经激活用红色表示。UNIT基于少量干净样本近似一个紧密的分布,如图中绿色区域所示。为了在模型推理过程中减轻后门效应,UNIT通过剪辑超出近似边界的激活值来限制神经激活值。在放大图中,UNIT确保激活值保持在绿色边界内,而不是沿着红色线(代表恶意的大值)延伸。尽管这种策略可能会对干净样本的精度造成轻微损失,但它在中和中毒样本的后门效应方面非常有效,从而增强了模型的安全性和完整性。
一个直接的想法是为所有神经激活值采用统一的百分位阈值。然而,这种方法可能不准确且粗粒度,因为不同神经元对后门效应的贡献各不相同。图4展示了这种方法对DFST攻击(使用CIFAR-10和ResNet-18发起)的有效性,其中原始模型实现了92.25%的干净精度和99.77%的攻击成功率(ASR)。x轴表示各种统一剪辑百分位,而y轴显示剪辑后对应的精度和ASR。“Max”表示将边界设置在每个神经元的最大激活值处。在其他情况下,我们假设激活呈高斯分布,并采用Z分数进行百分位近似。例如,“Z=3.0”表示将边界设置在平均激活值加上三倍标准差处,对应于0.98百分位。我们可以观察到,即使在中等干净精度为90%(Z=3.5)的情况下,ASR仍然显著高达20%。相反,将ASR降低到4%(Z=1.5)会导致精度急剧下降至40%。这突显了该方法对抗高级攻击的局限性。
另一方面,我们的方法采用基于优化的技术,精心为每个单独的神经元近似和收紧独特的边界,如图4中的蓝色和红色虚线所示。注意,UNIT能够将ASR降低到4.0%,同时保持91.6%的高精度。UNIT的详细信息概述在算法1中,该算法包含两个主要阶段:(1)初始化(第1-3行),收集干净的训练样本以近似一个宽松的良性边界;(2)自动收紧(第4-16行),致力于在干净精度的指导下细化近似的边界。
相关文章:
【论文阅读】UNIT: Backdoor Mitigation via Automated Neural Distribution Tightening
ECCV2024 https://github.com/Megum1/UNIT 我们的主要贡献总结如下: 我们引入了UNIT(“AUtomated Neural DIstribution Tightening”),这是一种创新的后门缓解方法,它为每个神经元近似独特的分布边界,用于…...
Android逆向学习(十) IDA逆向编辑Android so文件
Android逆向学习(十) IDA逆向编辑Android so文件 一、 写在前面 这是吾爱破解论坛正己大大的第10个教程 native code在我之前的博客中讲到过,所以这里就不讲了 简单来说,native code就是在android中使用c或c语言进行开发 这样…...
OpenCV + PyAutoGUI + Tkinter + FastAPI + Requests 实现的远程控制软件设计方案
以下是基于 OpenCV PyAutoGUI Tkinter FastAPI Requests 实现的远程控制软件设计方案。该方案分为 被控端(服务端) 和 控制端(客户端),支持屏幕实时查看、键盘映射和鼠标操作。 1. 系统架构 ------------------- …...
C++.神经网络与深度学习(赶工版)(会二次修改)
神经网络与深度学习 1. 神经网络基础1.1 神经元模型与激活函数1.2 神经网络结构与前向传播2.1 损失函数与优化算法均方误差损失函数交叉熵损失函数梯度下降优化算法 2.2 反向传播与梯度计算神经元的反向传播 3.1 神经元类设计与实现神经元类代码实现代码思路 3.2 神经网络类构建…...
砷化镓太阳能电池:开启多元领域能源新篇
砷化镓太阳能电池作为一种高性能的光伏产品,具有诸多独特优势。其中,锗衬底砷化镓太阳能电池表现尤为突出,它具备高转化效率、耐辐照和高电压等特性。在空间供电电源领域,这些优势使其成为人造卫星、太空站、太空探测器和登陆探测…...
[Linux] vim及gcc工具
目录 一、vim 1.vim的模式 2.vim的命令集 (1):命令模式 (2):底行模式 3.vim配置 二、gcc 1.gcc格式及选项 2.工作布置 三、自动化构建工具makefile 1.基本使用方法 2.配置文件解析 3.拓展 在linux操作系统的常用工具中,常用vim来进行程序的编写;…...
java加强 -stream流
Stream流是jdk8开始新增的一套api,可以用于操作集合或数组的内容。 Stream流大量的结合了Lambda的语法风格来编程,功能强大,性能高效,代码简洁,可读性好。 体验Stream流 把集合中所有以三开头并且三个字的元素存储到…...
RHCE认证通过率
红帽RHCE考试总体通过率38%(2023年数据),细分数据显示自学者通过率18%,参加官方培训者47%,企业团体考生53%。通过率差异由备考资源和考试策略决定。 RHCE考试重点考Ansible自动化运维,需在3.5小时内完成12…...
OpenEvidence AI临床决策支持工具平台研究报告
平台概述 OpenEvidence是一个专为医疗专业人士设计的临床决策支持工具,旨在通过整合各类临床计算器和先进的人工智能技术,提高医生的诊疗决策效率和准确性。作为一款综合性医疗平台,OpenEvidence将复杂的医学计算流程简化,同时提供个性化的临床建议,使医生能够更快、更准…...
gd32e230c8t6 keil6工程模板
下载固件gd32e230c8t6固件官方下载(需登录) 或 蓝奏云 新建一个文件夹,把固件压缩包里的里的Firmware和Template拖进去 keil新建gd32e230c8工程 必须勾选CMSIS-CORE 新建一个文件夹,双击任意改名 点击manage project it…...
正向代理与反向代理区别及应用
正向代理和反向代理是两种常见的代理服务器类型,它们在网络架构中扮演不同角色,核心区别在于代理对象和使用场景。 1. 正向代理(Forward Proxy) 定义:正向代理是客户端(如浏览器)主动配置的代理…...
自然语言处理入门级项目——文本分类
文章目录 前言1.数据预处理1.1数据集介绍1.2数据集抽取1.3划分数据集1.4数据清洗1.5数据保存 2.样本的向量化表征2.1词汇表2.2向量化2.3自定义数据集2.4备注 结语 前言 本篇博客主要介绍自然语言处理领域中一个项目案例——文本分类,具体而言就是判断评价属于积极还…...
UOS专业版上通过源码安装 Python 3.13 并保留系统默认版本
在 UOS 专业版上通过源码安装 Python 3.13 并保留系统默认版本,可按照以下步骤操作: 1. 安装依赖 首先安装编译 Python 所需的依赖库: sudo apt update sudo apt install -y build-essential zlib1g-dev libncurses5-dev \ libgdbm-dev li…...
【论文笔记】ViT-CoMer
【题目】:ViT-CoMer: Vision Transformer with Convolutional Multi-scale Feature Interaction for Dense Predictions 【引用格式】:Xia C, Wang X, Lv F, et al. Vit-comer: Vision transformer with convolutional multi-scale feature interaction…...
kaggle薅羊毛
参考:https://pytorch-tutorial.readthedocs.io/en/latest/tutorial/chapter05_application/5_1_kaggle/#512-kaggle https://github.com/girls-in-ai/Girls-In-AI/blob/master/machine_learning_diary/data_analysis/kaggle_intro.md 1,code training…...
Python 之 Flask 入门学习
安装 Flask 在开始使用 Flask 之前,需要先安装它。可以通过 pip 命令来安装 Flask: pip install Flask创建第一个 Flask 应用 创建一个简单的 Flask 应用,只需要几行代码。以下是一个最基本的 Flask 应用示例: from flask imp…...
SpringBoot Vue MySQL酒店民宿预订系统源码(支付宝沙箱支付)+代码讲解视频
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
Oracle日期计算跟Mysql计算日期差距问题-导致两边计算不一致
Oracle数据库对日期做加法时,得到的时间是某天的12:00:00 例: Oracle计算 select (TO_DATE(2025-04-14, YYYY-MM-DD)1.5*365) from dual; 结果:2026/10/13 12:00:00Mysql计算 select DATE_ADD( str_to_date( 2025-04-14, %Y-%m-%d ), INTER…...
多线程(三)
上一期关于线程的执行,咱们说到线程是 “ 随机调度,抢占式执行 ”。所以我们对于线程之间执行的先后顺序是难以预知的。 例如咱们打篮球的时候,球场上的每一位运动员都是一个独立的 “ 执行流 ”,也可以认为是一个线程࿰…...
微服务商城(1)开篇、服务划分
参考:https://mp.weixin.qq.com/s?__bizMzg2ODU1MTI0OA&mid2247485597&idx1&sn7e85894b7847cc50df51d66092792453&scene21#wechat_redirect 为什么选择go-zero go-zero 为我们提供了许多高并发场景下的实用工具,比如为了降低接口耗时…...
刘强东 “猪猪侠” 营销:重构创始人IP的符号革命|创客匠人热点评述
当刘强东身着印有外卖箱猪猪侠的 T 恤漫步东京涩谷街头时,这场看似荒诞的行为艺术实则揭开了互联网商业竞争的新篇章。这位曾经以严肃企业家形象示人的京东创始人,正通过二次元 IP 的深度绑定,完成从商业领袖到文化符号的华丽转身。 一、IP …...
MQ消息队列的深入研究
目录 1、Apache Kafka 1.1、 kafka架构设 1.2、最大特点 1.3、功能介绍 1.4、Broker数据共享 1.5、数据一致性 2、RabbitMQ 2.1、架构图 2.2、最大特点 2.3、工作原理 2.4、功能介绍 3、RocketMQ 3.1、 架构设计 3.2、工作原理 3.3、最大特点 3.4、功能介绍 3…...
填涂颜色(bfs)
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝 含泪播种的人一定能含笑收获! 题目描述 由数字 0 0 0 组成的方阵中,有一任意形状的由数字 1 1 1 构成的闭合圈。现…...
FFplay 音视频同步机制解析:以音频为基准的时间校准与动态帧调整策略
1.⾳视频同步基础 1.2 简介 看视频时,要是声音和画面不同步,体验会大打折扣。之所以会出现这种情况,和音视频数据的处理过程密切相关。音频和视频的输出不在同一个线程,就像两个工人在不同车间工作,而且不一定会同时…...
【Linux笔记】——进程信号的捕捉——从中断聊聊OS是怎么“活起来”的
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux笔记】——进程信号的保存 🔖流水不争,争的是滔滔不息 一、信号捕捉的流程二、…...
VCS X-PROP建模以及在方针中的应用
VCS X-PROP建模以及在方针中的应用 摘要:VCS X-Prop(X-Propagation)是 Synopsys VCS 仿真工具中的一种高级功能,用于增强 X 态(未知态)和 Z 态(高阻态)在 RTL 仿真中的建模和传播能力…...
OpenSHMEM 介绍和使用指南
OpenSHMEM 介绍和使用指南 什么是 OpenSHMEM? OpenSHMEM 是一个用于并行计算的标准化 API,它提供了一种分区全局地址空间 (PGAS) 编程模型。OpenSHMEM 最初由 Cray 公司开发,后来成为一个开源项目,旨在为高性能计算提供高效的通…...
Electron入门指南:用前端技术打造桌面应用
🌟 目录速览 什么是Electron?为什么要用Electron?核心概念三分钟掌握快速创建第一个应用典型应用场景开发注意事项常见问题解答 一、什么是Electron?🤔 Electron就像魔法转换器,它能将你熟悉的࿱…...
机器学习第十讲:异常值检测 → 发现身高填3米的不合理数据
机器学习第十讲:异常值检测 → 发现身高填3米的不合理数据 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南 一、幼儿…...
【Redis】缓存穿透、缓存雪崩、缓存击穿
1.缓存穿透 是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,导致请求直接穿透缓存到达数据库,给数据库带来压力的情况。 常见的解决方案有两种: 缓存空对象:实现简单,维护方便&am…...
科学养生指南:打造健康生活
在快节奏的现代生活中,健康养生成为人们关注的焦点。科学养生无需复杂理论,掌握以下几个关键要素,就能为身体构筑坚实的健康防线。 合理饮食是健康的基础。世界卫生组织建议,每天应摄入至少 5 份蔬菜和水果,保证维生…...
解锁健康生活:现代养生实用方案
早上被闹钟惊醒后匆忙灌下咖啡,中午用外卖应付一餐,深夜刷着手机迟迟不肯入睡 —— 这样的生活模式,正在不知不觉侵蚀我们的健康。科学养生并非遥不可及的目标,只需从生活细节入手,就能逐步改善身体状态。 饮食管理…...
深入解析JVM字节码解释器执行流程(OpenJDK 17源码实现)
一、核心流程概述 JVM解释器的核心任务是将Java字节码逐条翻译为本地机器指令并执行。其执行流程可分为以下关键阶段: 方法调用入口构建:生成栈帧、处理参数、同步锁等。 字节码分派(Dispatch):根据字节码跳转到对应…...
【HCIA】BFD
前言 前面我们介绍了浮动路由以及出口路由器的默认路由配置,可如此配置会存在隐患,就是出口路由器直连的网络设备并不是运营商的路由器,而是交换机。此时我们就需要感知路由器的存活状态,这就需要用到 BFD(Bidirectio…...
vue使用路由技术实现登录成功后跳转到首页
文章目录 一、概述二、使用步骤安装vue-router在src/router/index.js中创建路由器,并导出在vue应用实例中使用router声明router-view标签,展示组件内容 三、配置登录成功后跳转首页四、参考资料 一、概述 路由,决定从起点到终点的路径的进程…...
用户模块 - IP归属地框架吞吐测试
一、引言 在很多用户系统中,我们常常需要知道一个IP地址来自哪里,比如判断一个用户是否来自国内、识别异常登录等。而实现这个功能,通常会使用一个“IP归属地解析框架”,它可以根据IP地址返回国家、省份、城市等信息。 不过&#…...
生活实用小工具-手机号归属地查询
一、接口定义 手机号码归属地接口(又称手机号查询API)是一种通过输入手机号码,快速返回其归属地信息(如省份、城市、运营商、区号等)的应用程序接口。其数据基础来源于运营商(移动、联通、电信)…...
鸿蒙-5.1.0-release源码下载
源码获取 前提条件 注册码云gitee帐号。注册码云SSH公钥,请参考码云帮助中心。安装git客户端和git-lfs并配置用户信息。 git config --global user.name "yourname" # 这得和gitee的账号对的上 git config --global user.email "your-email-ad…...
2020年下半年试题三:论云原生架构及其应用
论文库链接:系统架构设计师论文 论文题目 近年来,随着数字化转型不断深入,科技创新与业务发展不断融合,各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下,以容器盒微服务…...
Flutter到HarmonyOS Next 的跨越:memory_info库的鸿蒙适配之旅
Flutter到鸿蒙的跨越:memory_info库的鸿蒙适配之旅 本项目作者:kirk/坚果 您可以使用这个Flutter插件来更改应用程序图标上的角标 作者仓库:https://github.com/MrOlolo/memory_info/tree/master/memory_info 在数字化浪潮的推动下&#…...
昆士兰科技大学无人机自主导航探索新框架!UAVNav:GNSS拒止与视觉受限环境中的无人机导航与目标检测
作者: Sebastien Boiteau, Fernando Vanegas, Felipe Gonzalez 单位:昆士兰科技大学电气工程与机器人学院,昆士兰科技大学机器人中心 论文标题:Framework for Autonomous UAV Navigation and Target Detection in Global-Naviga…...
uniapp设置 overflow:auto;右边不显示滚动条的问题
设置了overflow:auto;或者其它overflow的属性不显示滚动条是因为在uniapp中默认隐藏了滚动条 解决方法: //强制显示滚动条 ::-webkit-scrollbar {width: 8px !important;background: #ccc !important;display: block !important;}//设置滚动条颜色.cu-…...
基于SIP协议的VOIP话机认证注册流程分析与抓包验证
话机的认证注册报文怎么看? 在SIP协议中,当VOIP话机首次启动的时候,他会向SIP服务器发送一个Register请求来注册自己的信息地址,,告诉服务器 话机当前在线话机的IP地址和端口是什么话机希望接收通话的联系方式 认证注…...
JS,ES,TS三者什么区别
Java Script(JS)、ECMAScript(ES)、TypeScript(TS) 的核心区别与关联的详细解析,结合技术背景、设计目标及应用场景展开说明: 一、核心定义与关系 JavaScript(JS) 定义:一种动态类型、基于原型的脚本语言,由 Netscape 公司于 1995 年首次开发,用于网页交互功能。角…...
深度理解指针(2)
🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 深入理解指…...
笔记本/台式机加装PCIe 5.0固态硬盘兼容性与安装方法详解 —— 金士顿Kingston FURY Renegade G5装机指南
在2025年,存储设备市场迎来了革命性的升级浪潮。作为最高性能PCIe 5.0固态硬盘的代表,Kingston FURY Renegade G5 PCIe 5.0 NVMe M.2 固态硬盘不仅刷新了读写速度新高,更以优异的能耗和温控表现成为高端PC、游戏本和工作站升级的“定心丸”。…...
使用libUSB-win32的简单读写例程参考
USB上位机程序的编写,函数的调用过程. 调用 void usb_init(void); 进行初始化 调用usb_find_busses、usb_find_devices和usb_get_busses这三个函数,获得已找到的USB总线序列;然后通过链表遍历所有的USB设备,根据已知的要打开USB设…...
Tailwind CSS 实战教程:从入门到精通
Tailwind CSS 实战教程:从入门到精通 前言 在Web开发的世界里,CSS框架层出不穷。从早期的Bootstrap到现在的Tailwind CSS,前端开发者们总是在寻找更高效、更灵活的样式解决方案。今天,我们就来深入探讨这个被称为"实用优先…...
【IC】如何获取良好的翻转数据来改进dynamic IR drop分析?
动态电压降分析是一个复杂的过程。为了成功执行适当的分析,需要组合多个输入文件和不同的配置设置。 切换场景是任何动态压降分析的关键。设计中的所有门电路和实例不会同时处于活动状态。此外,对于更复杂的单元,可能的切换模式会非常多。这…...
WebGL知识框架
一、WebGL 基础概念 1. WebGL 简介 是什么? 基于 OpenGL ES 的浏览器 3D 图形 API,直接操作 GPU 渲染。 核心特点 底层、高性能、需手动控制渲染管线。 依赖 JavaScript 和 GLSL(着色器语言)。 与 Three.js 的关系 Three.js…...